3

XeLaTeX、knitr、および tikz を使用しようとしていますが、ghostscript エラーで失敗します。私は多くの異なるアプローチを試しましたが、状況は次のとおりです。

  1. XeLaTeX と Knitr: 動作
  2. Knitr を使用した PDFLaTeX: 動作
  3. Knitr と tikz を使用した PDFLaTeX: 動作
  4. Knitr と tikz を使用した XeLaTeX: 失敗する

私が作成した簡単なドキュメントはここにありますhttp://paste.lisp.org/+31GJ、主要部分は次のとおりです。

<<xetex-tikz, eval=FALSE, echo=FALSE>>=
options(tikzDefaultEngine='xetex')
@  
A plot: 
<<test, echo=FALSE,dev='tikz'>>=
plot(10,10) 
@

エラーメッセージは注釈にもありますが、ここに貼り付けます。

GPL Ghostscript 9.14: Unrecoverable error, exit code 1

** WARNING ** Filtering file via command -->rungs -q -dNOPAUSE -dBATCH -dEPSCrop -sDEVICE=pdfwrite -dCompatibilityLevel=1.5 -dAutoFilterGrayImages=false -dGrayImageFilter=/FlateEncode -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode -sOutputFile='/tmp/xdvipdfmx.45a08580e905757a9f5e6fc456cb9f8b' '/dev/null' -c quit<-- failed.
** WARNING ** Image format conversion for "/dev/null" failed...
** WARNING ** Image width=0.0!
** WARNING ** Image height=0.0!
** ERROR ** pdf_ref_obj(): passed invalid object.

古いパッケージの問題を回避するために (たとえば、RHEL5 には古いバージョンの texlive が含まれています)、以下をローカルにインストールしました。

TeXlive 2013:

$ type xelatex
xelatex is hashed (/usr/local/texlive/2013/bin/x86_64-linux/xelatex
$ xelatex -version
XeTeX 3.1415926-2.5-0.9999.3-2013060708 (TeX Live 2013)
kpathsea version 6.1.1

GNU R

$ type R
R is /usr/local/bin/R
$ R --version
R version 3.0.3 (2014-03-06) -- "Warm Puppy"
Copyright (C) 2014 The R Foundation for Statistical Computing
Platform: x86_64-unknown-linux-gnu (64-bit)

ゴーストスクリプト

$ type ghostscript
ghostscript is /usr/local/bin/ghostscript
$ ghostscript --version
9.14

R_LATEXCMD を xelatex に設定しました (pdflatex が使用される前は、XeTeX パッケージを使用しているため、knit が失敗することを意味していました)。パスは正しいようです。例:

$ kpsewhich tikz
/usr/local/texlive/2013/texmf-dist/tex/plain/pgf/frontendlayer/tikz.tex

RI でパッケージを更新し、knitr と tikzDevice をインストールしました (最新バージョン、install.package 経由)。

任意のポインタをいただければ幸いです。XeLaTeX+knitr+tikz の組み合わせは特に風変わりなものではありません。knitr グラフィック マニュアルでは tikz が推奨されており、メイン ドキュメントと同じフォントを使用する必要があります。XeLaTeX は非常に一般的なエンジンの選択肢です。 Charis SIL、IPA 文字などを使用するために提供する unicode サポート。

4

1 に答える 1

3

R 3.0.3 および TeXLive 2013 を使用して、 KnitrおよびtikzDeviceの CRAN バージョンをテストしました(基本的に、Ubuntu を使用することを除いて、あなたと同じ環境です)。これは非常に単純な問題のようです。eval=FALSE最初のチャンクで使用したため、そのチャンクは評価されず、options(tikzDefaultEngine = 'xetex')基本的に無視されました。eval=FALSEに変更すると、すべてが機能しTRUEます (実際にはデフォルト値なので、省略できます)。

\documentclass{article}
\usepackage{xltxtra} %used this to avoid pdflatex being used
\usepackage{tikz}
%\setmainfont{Charis SIL} %depends on xlxtra
\begin{document}
\title{Testing}
\maketitle

<<xetex-tikz, eval=TRUE, include=FALSE>>=
options(tikzDefaultEngine='xetex')
@

A plot:
<<test, echo=FALSE, dev='tikz'>>=
plot(10,10)
@
\end{document}

XeTeXとknitrを使用したtikzDevice

于 2014-04-08T04:22:41.153 に答える