
Tengo un problema con knitr
y tikzDevice
, como alguien antes que yo. (VertikzDevice no obtiene los tamaños correctos (knitr).) Solía dev.args
deshacerse de este error, pero si ejecuto este código knitr
(con rstudio
), el tamaño de fuente todavía está en mal estado. dev.args=list(pointsize=12)
no me funciona. Lo único que funciona es eliminar a4paper,12pt
. ¿Alguna idea sobre lo que hice mal?
\documentclass[a4paper,12pt]{scrartcl}
\begin{document}
\begin{figure}
<<dev='tikz', dev.args=list(pointsize=12)>>=
x<-1
plot(x)
@
\end{figure}
\end{document}
Respuesta1
Yihui respondió la pregunta:
Esto resulta ser un error del tikzDevice
paquete, que ha sidoreportado hace mucho tiempo(pero aún no solucionado). El problema es que la expresión regular utilizada para detectar el tamaño del punto era incorrecta (deberían haberla usado pt
en lugar de [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))
}
}
Hay varias formas de solucionar este problema. La mejor manera es arreglarlo tikzDevice
, por supuesto. Antes de que eso suceda, puedes utilizar este sencillo truco:
\documentclass[12pt,a4paper]{scrartcl}
Es decir, cambie 12pt
con a4paper
para que se pueda detectar 12
en lugar de .4