
knitr
我對和有疑問tikzDevice
,就像我之前的某人一樣。 (看tikzDevice 的尺寸不正確 (knitr).)他曾經dev.args
消除過這個錯誤,但是如果我通過knitr
(with rstudio
)運行這段程式碼,字體大小仍然很混亂。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}
答案1
憶慧回答了問題:
事實證明這是一個tikzDevice
包的錯誤,已被修復很久以前報道過(但仍未修復)。問題是用於檢測點大小的正則表達式是錯誤的(他們應該使用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
witha4paper
以便可以檢測到12
替代。4