Knitr und tikzDevice funktionieren nicht zusammen mit Artikeloptionen

Knitr und tikzDevice funktionieren nicht zusammen mit Artikeloptionen

Ich habe ein Problem mit knitrund tikzDevice, wie jemand vor mir. (SiehetikzDevice ermittelt die Größen nicht richtig (knitr).) Er hat dev.argsdiesen Fehler behoben, aber wenn ich diesen Code durchführe knitr(mit rstudio), ist die Schriftgröße immer noch durcheinander. dev.args=list(pointsize=12)funktioniert bei mir nicht. Das einzige, was funktioniert, ist zu entfernen a4paper,12pt. Irgendwelche Ideen, was ich falsch gemacht habe?

\documentclass[a4paper,12pt]{scrartcl}
\begin{document}

\begin{figure}
<<dev='tikz', dev.args=list(pointsize=12)>>=
x<-1
plot(x)
@
\end{figure}

\end{document}

Antwort1

Yihui beantwortete die Frage:

Es handelt sich um einen Paketfehler tikzDevice, derschon vor längerer Zeit gemeldet(aber immer noch nicht behoben). Das Problem ist, dass der reguläre Ausdruck zur Erkennung der Punktgröße falsch war ( ptanstelle von hätte verwendet werden sollen [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))
    }
}

Es gibt mehrere Möglichkeiten, dieses Problem zu beheben. Am besten ist es tikzDevicenatürlich, es in zu beheben. Bevor das passiert, können Sie diesen einfachen Trick anwenden:

\documentclass[12pt,a4paper]{scrartcl}

Das heißt, wechseln Sie 12ptzu a4paper, sodass 12anstelle von 4erkannt werden kann.

verwandte Informationen