我正在使用 knitr 和 RStudio 编译 LaTeX。在我的实际项目中,我想使用 LaTeX 包“xcolor”中的一些选项,但当我包含时\usepackage[options]xcolor
,我收到错误消息“第 xx 行上的颜色定义不兼容”,其中“第 xx 行”对应于 knitrout 块。我注意到 knitr 会发送\usepackage[]{color}
到 .tex 文件,如果我将其更改为 xcolor,一切都会好起来。但是,我有一个更大的项目。
这是一个最小的示例 .Rnw 文件,我尝试在其中对 url 链接使用命名颜色:
\documentclass{article}
\usepackage[dvipsnames]{xcolor}
\usepackage[T1]{fontenc}
\usepackage{url}
\definecolor{Sepia}{named}{Sepia}
% hyperref setup:
\usepackage[colorlinks,pdfpagemode=UseOutlines,%
linkcolor=red,%
urlcolor=Sepia,%
plainpages=false,%
]{hyperref}
\begin{document}
<<setup, cache=FALSE, include=FALSE>>=
library(knitr)
# Global chunk options
opts_chunk$set(keep.source=TRUE, fig.align='center')
@
A quick example. I like \texttt{knitr}: \url{http://yihui.name/knitr/}.
And now for some boring input and output.
<<quickexample>>=
sessionInfo()
x <- rnorm(100, 1, 0)
mean(x)
sd(x)
sessionInfo()
@
\end{document}
我尝试使用\PassOptionsToPackage{dvipsnames}{xcolor}
在 xcolor 上的其他帖子中看到的解决方法,但无济于事。
虽然这个最小的例子确实给了我一个带有棕褐色链接的 .pdf,但在更大的项目中,大量不兼容的颜色警告使得我很难找到需要修复的其他 LaTeX 错误。(所以我想我需要更干净的日志文件。)
答案1
答案2
我遇到了同样的问题,@Yihui 的修复没有解决它。我找到了解决方案,通过添加以下代码修改修复程序桌子xcolor 包的选项(参见xcolor 文档)并使用此评论纠正后续错误问题。
我找到的解决方案如下:
首先,在前言中,从 kableExtra 包中添加要使用的包。省略彩色包裹。
\documentclass{article} \usepackage{float} \usepackage{booktabs}`
接下来,在调用库之前禁用 kableExtra 自动加载包。
options(kableExtra.latex.load_packages = FALSE library(kableExtra)
最后,使用上面的解决方案,但添加表格选项。
knit_hooks$set(document = function(x) {sub('\\usepackage[]{color}', `\\usepackage[table]{xcolor}', x, fixed = TRUE)})`