使用 knitr 关闭 Rmd 中的标题页
Turning off title page in Rmd using knitr
编辑:
当覆盖 pagestyle "plain" 并使用 documentclass article 时,几乎可以达到预期的结果。
\fancypagestyle{plain}{
\fancyhf{}
\fancyhead[RO,RE]{Header}
\fancyfoot[RO,RE]{\thepage}
}
我面临的问题是第一页上的 headsep(space 介于 header 和 table 之间)更大。这似乎是因为 \maketitle。删除
时
$if(title)$
\maketitle
$endif$
在(默认)pandoc 模板中,一切都按预期工作。
恕我直言,也应该可以获得相同的结果(无需编辑模板),但在我的 .rmd 文件中使用 yaml-header 中的 "title: false"。但是在查看生成的 .tex 时,“\maketitle”命令似乎仍然存在。这是为什么?
原问题:
我试图在使用 knitr 创建 pdf 时关闭标题页。该文档包含一个 longtable 和重复的 headers.
我期待一个 pdf,其中所有页面都有指定的 header 和页脚信息(和 headsep)。在下面的 运行 示例中,第 1 页的行为有所不同。尝试禁用标题页未成功。
test.Rmd
---
author: "Fabian"
output: pdf_document
documentclass: report
classoption: notitlepage
params:
testParam: !r data.frame(a = 1:100, b = 2:101)
header-includes:
\usepackage{longtable}
\usepackage{xcolor}
\usepackage{hyperref}
\hypersetup{colorlinks = false}
\usepackage{geometry}
\geometry{a4paper, landscape, left = 13mm, right = 14mm, top = 5mm, bottom = 13mm, includeheadfoot}
\headsep = 5mm
\usepackage{graphicx}
\usepackage{lastpage}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[RO,RE]{Header}
\fancyfoot[RO,RE]{\thepage}
---
```{r setup, include = F}
library(data.table)
```
\centering
\begin{longtable}{ll}
\hline
```{r createLatexheader, eval = T, echo = F, results = "asis"}
header <- names(data)
latexHaeder <- paste0(paste0(header, collapse = " & "), " \\ \n")
cat(latexHaeder)
```
\hline
\endhead
```{r createLatexdata, eval = T, echo = F, results = "asis"}
data <- params$testParam
setDT(data)
data[, ID := .I]
latexData <- data[, .(LATEX = paste0(.SD, collapse = " & ")), by = ID]$LATEX
latexData <- paste0(paste0(latexData, collapse = " \\ \n"), " \\ \n")
cat(latexData)
```
\end{longtable}
要将 \maketitle
变为空操作,请将以下内容添加到您的 header-includes
:
\AtBeginDocument{\let\maketitle\relax}
即使\maketitle
被执行,这个重定义(延迟到\begin{document}
)也不会做任何事情
编辑:
当覆盖 pagestyle "plain" 并使用 documentclass article 时,几乎可以达到预期的结果。
\fancypagestyle{plain}{
\fancyhf{}
\fancyhead[RO,RE]{Header}
\fancyfoot[RO,RE]{\thepage}
}
我面临的问题是第一页上的 headsep(space 介于 header 和 table 之间)更大。这似乎是因为 \maketitle。删除
时$if(title)$
\maketitle
$endif$
在(默认)pandoc 模板中,一切都按预期工作。 恕我直言,也应该可以获得相同的结果(无需编辑模板),但在我的 .rmd 文件中使用 yaml-header 中的 "title: false"。但是在查看生成的 .tex 时,“\maketitle”命令似乎仍然存在。这是为什么?
原问题:
我试图在使用 knitr 创建 pdf 时关闭标题页。该文档包含一个 longtable 和重复的 headers.
我期待一个 pdf,其中所有页面都有指定的 header 和页脚信息(和 headsep)。在下面的 运行 示例中,第 1 页的行为有所不同。尝试禁用标题页未成功。
test.Rmd
---
author: "Fabian"
output: pdf_document
documentclass: report
classoption: notitlepage
params:
testParam: !r data.frame(a = 1:100, b = 2:101)
header-includes:
\usepackage{longtable}
\usepackage{xcolor}
\usepackage{hyperref}
\hypersetup{colorlinks = false}
\usepackage{geometry}
\geometry{a4paper, landscape, left = 13mm, right = 14mm, top = 5mm, bottom = 13mm, includeheadfoot}
\headsep = 5mm
\usepackage{graphicx}
\usepackage{lastpage}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[RO,RE]{Header}
\fancyfoot[RO,RE]{\thepage}
---
```{r setup, include = F}
library(data.table)
```
\centering
\begin{longtable}{ll}
\hline
```{r createLatexheader, eval = T, echo = F, results = "asis"}
header <- names(data)
latexHaeder <- paste0(paste0(header, collapse = " & "), " \\ \n")
cat(latexHaeder)
```
\hline
\endhead
```{r createLatexdata, eval = T, echo = F, results = "asis"}
data <- params$testParam
setDT(data)
data[, ID := .I]
latexData <- data[, .(LATEX = paste0(.SD, collapse = " & ")), by = ID]$LATEX
latexData <- paste0(paste0(latexData, collapse = " \\ \n"), " \\ \n")
cat(latexData)
```
\end{longtable}
要将 \maketitle
变为空操作,请将以下内容添加到您的 header-includes
:
\AtBeginDocument{\let\maketitle\relax}
即使\maketitle
被执行,这个重定义(延迟到\begin{document}
)也不会做任何事情