我在使用 knitr 和 tikzDevice 时遇到了一些编译困难。编译成功了,但我发现编译时间长达 10 分钟,而且随着文档的增长,编译时间还在不断增加(我正在写论文,目前编译一章需要 10 分钟,后面还会有更多章节!)。
如果我将设备设置为 tikz 以外的其他设备,则没有问题。不幸的是,我需要 tikz,这样我才能在 R 图中使用 LaTeX。
我有一个主文件main.Rnw
,它将每个章节作为子文档合并在一起,例如使用\Sexpr{knit_child('chapter3.Rnw')}
。
在章节文件中,我通过使用例如\Sexpr{knit_child('ch3-fig-nitrogenPH.Rnw')}
插入图形环境来包含来自 R 的图表等。
我的主文件为 knitr 设置指定了以下选项:
<<setup, include=FALSE, cache=FALSE>>=
library(knitr)
library(tikzDevice)
library(tidyverse)
library(ggpubr)
library(multcomp)
library(multcompView)
library(DescTools)
plotTextSize <- 8
cbbPalette<-c("#E69F00", "#56B4E9", "#009E73", "#0072B2", "#D55E00", "#CC79A7")
opts_knit$set(child.command = 'include')
opts_chunk$set(dev = 'tikz', external=TRUE)
opts_chunk$set(fig.align='center', fig.pos='!htbp', fig.width=5.5, fig.height=4, out.width="5.5in", out.height="4in")
options(tikzDefaultEngine='xetex')
options(tikzXelatexPackages = c(
getOption('tikzXelatexPackages'),
"\\usepackage{amsmath,amssymb,amsfonts}",
"\\usepackage{tikz}",
"\\usetikzlibrary{calc}",
"\\usepackage[british]{babel}",
"\\selectlanguage{british}"
))
options(tikzMetricPackages = c(
"\\usetikzlibrary{amssymb}",
"\\usetikzlibrary{calc}",
"\\usepackage{hyperref}"
))
knit_hooks$set(document = function(x) {sub('\\usepackage[]{color}', '\\usepackage{xcolor}', x, fixed = TRUE)})
@
最后,还有一件事表明我哪里出了问题,那就是当我尝试使用 tikz 时,它会忽略 pointsize arurmet,例如dev.args=list(pointsize=10)
没有效果。请参阅我之前的问题在 tikzDevice 中设置字体大小。
如果有人能指出正确的解决方法,我将不胜感激。
我将尝试整理一个可以复制该问题的 MWE。
我正在使用这些包:
% -*- program: xelatex -*-
\documentclass[12pt,twoside,headings=big,open=right]{scrreprt}
\usepackage{scrhack,graphicx,subcaption,nomencl,setspace,xltxtra,fontspec,microtype,csquotes,tocbibind,xspace,floatrow,tikz,textcomp,rotating,xpatch,amssymb,amsfonts,xcolor,xunicode}
\defaultfontfeatures{Ligatures=TeX}
\graphicspath{ {images/} }
\usepackage[a4paper,width=150mm,top=25mm,bottom=25mm,bindingoffset=6mm]{geometry}
\usepackage[british]{babel}