
Ich habe ein Problem mit knitr
und tikzDevice
, wie jemand vor mir. (SiehetikzDevice ermittelt die Größen nicht richtig (knitr).) Er hat dev.args
diesen 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 ( pt
anstelle 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 tikzDevice
natürlich, es in zu beheben. Bevor das passiert, können Sie diesen einfachen Trick anwenden:
\documentclass[12pt,a4paper]{scrartcl}
Das heißt, wechseln Sie 12pt
zu a4paper
, sodass 12
anstelle von 4
erkannt werden kann.