使用 knitr 和 tikzDevice 进行编译速度极慢

使用 knitr 和 tikzDevice 进行编译速度极慢

我在使用 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}

相关内容