我的knitr
和tikzDevice
有问题,就像我之前的某个人一样。 (请参阅https://tex.stackexchange.com/questions/106057/tikzdevice-is-not-getting-sizes-right-knitr/106595#106595。)他使用dev.args
消除了此错误,但是如果我通过knitr
(使用rstudio
)运行此代码,则fontsize仍然混乱。 dev.args=list(pointsize=12)
对我不起作用。唯一有效的方法是删除a4paper,12pt
。关于我做错的任何想法?
\documentclass[a4paper,12pt]{scrartcl}
\begin{document}
\begin{figure}
<<dev='tikz', dev.args=list(pointsize=12)>>=
x<-1
plot(x)
@
\end{figure}
\end{document}
最佳答案
原来这是tikzDevice
包的一个错误,该错误已被reported long time ago(但仍未修复)。问题是用于检测磅值的正则表达式是错误的(它们应该使用pt
而不是[pt]
):
> tikzDevice:::getDocumentPointsize
function (docString)
{
psLocation <- regexpr("\\d+[pt]", docString, ignore.case = T,
perl = T)
if (psLocation == -1) {
return(NA)
}
else {
pointsize <- substr(docString, psLocation, psLocation +
attr(psLocation, "match.length") - 2)
return(as.numeric(pointsize))
}
}
有很多方法可以解决此问题。最好的方法当然是用
tikzDevice
修复它。在此之前,您可以使用以下简单技巧:\documentclass[12pt,a4paper]{scrartcl}
即,用
12pt
切换a4paper
,以便可以检测到12
而不是4
。关于font-size - Knitr和tikzDevice无法与文章选项一起使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15801683/