【问题标题】:Custom LaTeX template for bookdown用于预订的自定义 LaTeX 模板
【发布时间】:2020-06-04 17:10:49
【问题描述】:

我最近用新的操作系统、新版本的 R (4.0) 以及所有软件包升级了我的计算机。在尝试将 bookdown 文档编译为以前可以工作的 pdf 时,我现在收到错误消息

LaTeX 错误:包 xcolor 的选项冲突。

如果我查看生成的 tex 文件,我会看到 bookdown 包默认将以下包添加到文件中。

\usepackage{booktabs}
\usepackage{longtable}
\usepackage{array}
\usepackage{multirow}
\usepackage{wrapfig}
\usepackage{float}
\usepackage{colortbl}
\usepackage{pdflscape}
\usepackage{tabu}
\usepackage{threeparttable}
\usepackage{threeparttablex}
\usepackage[normalem]{ulem}
\usepackage{makecell}
\usepackage{xcolor}

我有一堆其他的 LaTeX 包,它们之前通过_output.yml 文件和in_header: latex/preamble.tex 行加载,我猜测冲突是由于其中一个引起的。如果我手动删除包含\usepackage{xcolor} 的最后一行,那么一切都编译得很好。

但是如何修改用于添加上面列出的这些默认包的自定义模板?我检查了 pandoc 列出的模板,但似乎都没有添加这些包。

按照bookdown book 中的信息可以添加自定义模板,但default LaTeX template from pandoc 也不包含这些包,那么它们来自哪里?

在哪里可以找到包含这些额外包的默认模板?或者我可以强制xcolor 在我的 LaTeX 序言中加入 \PassOptionsToPackage{something}{xcolor} 吗?

(我使用的是bookdown::tufte_book2 格式,但是在搜索tufte 包中的模板时没有找到包)

【问题讨论】:

标签: r r-markdown pandoc bookdown


【解决方案1】:

由于bookdown 0.4,您可以使用全局选项bookdown.post.latex 对 LaTeX 输出进行后处理。所以我在一个块中添加了以下代码(带有echo=FALSE)到index.Rmd

options(bookdown.post.latex = function(x) {
  # x is the content of the LaTeX output file
  c('\\PassOptionsToPackage{table}{xcolor}',x)    
})

在我的preamble.tex 我有

\setlength{\arrayrulewidth}{0.5mm}
\setlength{\tabcolsep}{18pt}
\renewcommand{\arraystretch}{2.5}

我使用的 LaTeX 表格是:

\rowcolors{3}{green!80!yellow!50}{green!70!yellow!40}
\begin{tabular}{ |p{3cm}|p{3cm}|p{3cm}|  }
\hline
\multicolumn{3}{|c|}{Country List} \\
\hline
Country Name or Area Name& ISO ALPHA 2 Code &ISO ALPHA 3 \\
\hline
American Samoa & AS & ASM \\
Andorra & AD & AND   \\
Angola & AO & AGO \\
\hline
\end{tabular}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-25
    • 1970-01-01
    • 2015-05-18
    • 2016-11-30
    • 2018-07-17
    相关资源
    最近更新 更多