不同版本的 rMarkdown 包编译 .Rmd 的方式不同

Different versions of the rMarkdown package compile a .Rmd differently

编辑

感谢一些 SO(即 @tmpname12345)用户,我得出的结论是我的问题(如下所述)可能是由 v0.2.64v0.3.11 之间的差异引起的rmarkdown。现在的问题变成:

有什么方法可以防止 rmarkdown 版本 0.3.11knitr 在 .pdf 文件的标题后添加一行?

原问题

我发现在使用 Rstudio 和 knitr 的两台不同计算机上使用相同 yaml header 块编译 .pdf 文档之间存在奇怪的差异。不同之处在于,在一台计算机上,标题后会插入一行,而在另一台计算机上,不会插入该行(首选行为)。无论文档在哪里编译,我都想防止插入该行。

我在两台计算机上都使用 32 位 R 3.1.2。 yaml 块在两台计算机之间是相同的。

这是 .Rmd 文件:

---
title: Header Test
output: pdf_document  
---
My@gmail.com\hfill \hfill Address  
Phone number\hfill \hfill Town, State, ZIP

标题后没有附加行的证据,来自我的笔记本电脑 rmarkdown 版本 0.2.64

标题后附加行的证据,从我的桌面 rmarkdown 版本 0.3.11 生成:

最初,我认为它可能是 knitr 包版本的功能,所以我将第二张图片中的包 1.7 升级到最新可用CRAN、1.9 上的版本,但额外的行仍然存在。

我还认为这是我笔记本电脑上 Rstudio 版本的产物,但如果是,我不想升级,因为第一个图像是首选。

我经常从台式电脑和笔记本电脑编辑 Google Drive 文件夹中的 .Rmd 文件,访问同一个文件。不幸的是,它们的编译方式不同。我更喜欢标题后没有添加行。此时,我不想在笔记本电脑上更改任何内容,担心编译会开始包含额外的行。

有什么方法可以强制 knitr 添加附加行吗?

一种方法是创建您自己的 Latex 模板,按照您的需要格式化 header。您可以使用默认模板作为起点 here。然后将文件另存为 .tex 与 Rmd 文件位于同一目录中,并将其添加到 yaml header:

output:
  pdf_document:
    template: mytemplate.tex