Knitr と tikzDevice が記事オプションと連携して動作しない

Knitr と tikzDevice が記事オプションと連携して動作しない

私も、以前誰かが言ったように、knitrとに問題があります。(tikzDevicetikzDevice がサイズを正しく取得しない (knitr)。) 以前はdev.argsこのエラーを解消していましたが、このコードをknitr( を使用rstudio) で実行すると、フォント サイズがまだおかしくなります。dev.args=list(pointsize=12)は私の環境では機能しません。 唯一機能するのは、 を削除することですa4paper,12pt。 何を間違えたのか、何かアイデアはありますか?

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

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

\end{document}

答え1

Yihui 氏はこの質問に答えました。

これはパッケージのバグであることが判明しましtikzDeviceた。かなり前に報告された(ただし、まだ修正されていません)。問題は、ポイントサイズを検出するために使用された正規表現が間違っていたことです (ptの代わりにを使用すべきでした[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))
    }
}

tikzDeviceこの問題を解決するには、いくつかの方法があります。もちろん、最善の方法は で修正することです。そうなる前に、次の簡単なトリックを使用できます。

\documentclass[12pt,a4paper]{scrartcl}

つまり、の代わりにを検出できるように12ptを に切り替えます。a4paper124

関連情報