
Eu tenho um problema com knitr
e tikzDevice
, como alguém antes de mim. (VertikzDevice não está acertando os tamanhos (knitr).) Ele costumava dev.args
se livrar desse erro, mas se eu executar esse código knitr
(com rstudio
), o tamanho da fonte ainda fica confuso. dev.args=list(pointsize=12)
não funciona para mim. A única coisa que funciona é remover a4paper,12pt
. Alguma idéia sobre o que eu fiz de errado?
\documentclass[a4paper,12pt]{scrartcl}
\begin{document}
\begin{figure}
<<dev='tikz', dev.args=list(pointsize=12)>>=
x<-1
plot(x)
@
\end{figure}
\end{document}
Responder1
Yihui respondeu à pergunta:
Isso acaba sendo um bug do tikzDevice
pacote, que foirelatado há muito tempo(mas ainda não corrigido). O problema é que a expressão regular usada para detectar o tamanho do ponto estava errada (eles deveriam ter usado pt
em vez 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))
}
}
Existem várias maneiras de corrigir esse problema. A melhor maneira é consertar isso tikzDevice
, é claro. Antes que isso aconteça, você pode usar este truque simples:
\documentclass[12pt,a4paper]{scrartcl}
Ou seja, alterne 12pt
com a4paper
para que 12
em vez de 4
possa ser detectado.