Knitr e tikzDevice não funcionam juntos com opções de artigos

Knitr e tikzDevice não funcionam juntos com opções de artigos

Eu tenho um problema com knitre tikzDevice, como alguém antes de mim. (VertikzDevice não está acertando os tamanhos (knitr).) Ele costumava dev.argsse 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 tikzDevicepacote, 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 ptem 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 12ptcom a4paperpara que 12em vez de 4possa ser detectado.

informação relacionada