Knit 和 tikzDevice 無法與文章選項一起使用

Knit 和 tikzDevice 無法與文章選項一起使用

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}

即,切換12ptwitha4paper以便可以檢測到12替代。4

相關內容