R Markdownd:! LaTeX 错误:两个 \documentclass 或 \documentstyle 命令

问题描述

我正在尝试在 Rmarkdown 中编写 pdf,但我一遍又一遍地收到相同的错误: ! LaTeX 错误:两个 \documentclass 或 \documentstyle 命令。

我已经采用了不同的方法,例如删除一些行、将 \begin{document} 放在不同的位置或更改加载包的顺序。

这是我的代码

---
title: "Feedback"
author: "Me"
date: "09 02 2021"
toc: true
toc_depth: 2
toc-title: "Verzeichnis"
fig.caption: "Tabelle"
smooth_scroll: false
header-includes: 
  \documentclass{article}
  \PassOptionsToPackage[usenames,dvipsnames]{xcolor}
  \usepackage{fancyhdr}
  \usepackage[T1]{fontenc}
  \usepackage[default]{sourcesanspro}
  \usepackage{tikz}
mainfont: SourceSanspro
output: pdf_document
---
\begin{document}


\addtolength{\headheight}{1.0cm} 
\fancypagestyle{plain}{} 
\thispagestyle{fancy} 
\fancyhead[L]{\includegraphics[width = 500pt]{"/Users/lisak/One Drive/OneDrive/Dokumente/Masterarbeit/Erhebung/Anschreiben/alt/banner.png"}}
\renewcommand{\headrulewidth}{0pt} 


{r,echo = FALSE,message = FALSE}
.onLoad <- function(libname = find.package("kableExtra"),pkgname = "kableExtra") {
  if (knitr::is_latex_output()) {
    load_packages <- getoption("kableExtra.latex.load_packages",default = TRUE)
    if (load_packages) {
      usepackage_latex("booktabs")
      usepackage_latex("longtable")
      usepackage_latex("array")
      usepackage_latex("multirow")
      usepackage_latex("wrapfig")
      usepackage_latex("float")
      usepackage_latex("colortbl")
      usepackage_latex("pdflscape")
      usepackage_latex("tabu")
      usepackage_latex("threeparttable")
      usepackage_latex("threeparttablex")
      usepackage_latex("ulem","normalem")
      usepackage_latex("makecell")
      usepackage_latex("xcolor")   
      
    }
  }
  auto_format <- getoption("kableExtra.auto_format",default = TRUE)
  if (auto_format) auto_set_format()
  if (!is.null(rmarkdown::Metadata$output) &&
      rmarkdown::Metadata$output %in% c(
        "ioslides_presentation","slidy_presentation","gitbook","bookdown::gitbook","radix_article","radix::radix_article","distill_article","distill::distill_article"
      )) {
    options(kableExtra.html.bsTable = TRUE)
  }
  if (!is.null(knitr::opts_knit$get("rmarkdown.pandoc.to")) &&
      knitr::opts_knit$get("rmarkdown.pandoc.to") %in% c("epub3","epub")) {
    options(kableExtra.knit_print.dependency = FALSE)
  }
}

stuff....

\end{document}

我真的很绝望。在此先感谢您的任何帮助!!

干杯

解决方法

  • 在将 rmarkdown 文档转换为 tex 文档时,Rmarkdown 会自动插入诸如 \documentclass{article}\begin{document} 之类的内容。不得再次插入

  • \PassOptionsToPackage[usenames,dvipsnames]{xcolor} 必须在文档类之前使用。由于 rmarkdown 剥夺了你自己插入文档类的能力,所以你不能使用这个

  • rmarkdown 太笨了,无法正确解析可选参数的方括号。作为解决方法,您可以将这些命令隐藏在单独的 .tex 文件中

  • 你的 r 块的语法是错误的。你必须用反引号把它括起来


---
title: "Feedback"
author: "Me"
date: "09 02 2021"
toc: true
toc_depth: 2
toc-title: "Verzeichnis"
fig.caption: "Tabelle"
smooth_scroll: false
mainfont: SourceSansPro
output: 
  pdf_document:
    keep_tex: true
    includes:
      in_header: preamble.tex
---


```{r,echo = FALSE,message = FALSE}
.onLoad <- function(libname = find.package("kableExtra"),pkgname = "kableExtra") {
  if (knitr::is_latex_output()) {
    load_packages <- getOption("kableExtra.latex.load_packages",default = TRUE)
    if (load_packages) {
      usepackage_latex("booktabs")
      usepackage_latex("longtable")
      usepackage_latex("array")
      usepackage_latex("multirow")
      usepackage_latex("wrapfig")
      usepackage_latex("float")
      usepackage_latex("colortbl")
      usepackage_latex("pdflscape")
      usepackage_latex("tabu")
      usepackage_latex("threeparttable")
      usepackage_latex("threeparttablex")
      usepackage_latex("ulem","normalem")
      usepackage_latex("makecell")
      usepackage_latex("xcolor")   
      
    }
  }
  auto_format <- getOption("kableExtra.auto_format",default = TRUE)
  if (auto_format) auto_set_format()
  if (!is.null(rmarkdown::metadata$output) &&
      rmarkdown::metadata$output %in% c(
        "ioslides_presentation","slidy_presentation","gitbook","bookdown::gitbook","radix_article","radix::radix_article","distill_article","distill::distill_article"
      )) {
    options(kableExtra.html.bsTable = TRUE)
  }
  if (!is.null(knitr::opts_knit$get("rmarkdown.pandoc.to")) &&
      knitr::opts_knit$get("rmarkdown.pandoc.to") %in% c("epub3","epub")) {
    options(kableExtra.knit_print.dependency = FALSE)
  }
}
```

stuff....

preamble.tex

\usepackage{fancyhdr}
\usepackage[T1]{fontenc}
\usepackage[default]{sourcesanspro}
\usepackage{tikz}
\addtolength{\headheight}{1.0cm} 
\fancypagestyle{plain}{} 
\thispagestyle{fancy} 
\fancyhead[L]{\includegraphics[width = 500pt]{example-image}}
\renewcommand{\headrulewidth}{0pt}