诊断R包构建警告:“创建PDF版本时出现LaTeX错误”

kmbjn2e3  于 2023-01-06  发布在  其他
关注(0)|答案(7)|浏览(285)

在构建包时,我收到以下警告:

* checking PDF version of manual ... WARNING
LaTeX errors when creating PDF version.
This typically indicates Rd problems.

我甚至不知道如何开始诊断这个问题。有没有一个工具可以告诉我问题在哪个.Rd文件中?
在检查文档的步骤中,我没有收到任何关于Rd文件的警告......

cngwdvgl

cngwdvgl1#

尝试使用R CMD Rd2pdf mypackage创建手册,也可以设置--no-clean选项来保留临时文件,这样可以调试触发错误的LaTeX代码。

sycxhyv7

sycxhyv72#

虽然@Dirk的回答也帮助我解决了这个问题,但我想补充一点,这可能特别有助于最近的更新者。也就是说,那些在更新到3.1.3后还没有遇到其他LaTeX / R问题的人。这个问题比构建更普遍。对我来说,在OS X上,问题是R CMD Rd2pdfR CMD CHECK预期texi2dvi/usr/local/bin中,而它在/usr/bin中。符号链接帮助解决了该问题。在终端类型上:

# to check whether the same issue exists for you
which texi2dvi
# if so
cd /usr/local/bin
ln -s /usr/bin/texi2dvi

当然,如果第一行返回了其他内容,则需要修改这里的符号链接。

am46iovg

am46iovg3#

从评论和我自己的经验得出结论,问题往往似乎是一些TeX字体丢失,最常见的

  • inconsolata.sty
  • upquote.sty

首先,你必须找到正确的目录存储TeX字体-在我的情况下,这是:

C:\Program Files\R\R-3.3.0\share\texmf\tex\latex

然后您可以在这里下载:

只要将它们复制到相应的文件夹中,在许多情况下问题就会得到解决(我的情况也是如此)。这应该适用于所有操作系统。

kt06eoxx

kt06eoxx4#

...另一个原因是您尚未安装MikTex。
1.从here下载MikTex并按照对话框提示进行安装。我发现默认设置是合理的,对我来说效果很好。
1.尝试重新构建您的R包。现在应该可以了。

ca1c2owp

ca1c2owp5#

如果你在Ubuntu上,只需通过以下命令安装Tex Live:apt-get install texlive并重新启动Rstudo(如果使用)。

v8wbuo2f

v8wbuo2f6#

在我的例子中,运行devtools::check()devtools::document()时都没有错误,但运行R CMD check mypackage_version.tar.gz时出现错误:

* checking PDF version of manual ... WARNING
LaTeX errors when creating PDF version.
This typically indicates Rd problems.
LaTeX errors found:
* checking PDF version of manual without hyperrefs or index ... ERROR

RStudio Community中的这个问题中,他们指出LATEX安装有问题。我在R markdown cookbook中有建议的LATEX安装:我通过在R控制台中运行修复了这个问题

tinytex::latexmk(file = "../mypackage.Rcheck/mypackage-manual.tex")

这个命令自动更新了我的LATEX安装,所以输出文件mypackage-manual.pdf被创建了。在此之后,我在运行R CMD check时没有得到任何其他与PDF相关的错误:

* checking PDF version of manual ... OK
* DONE
qncylg1j

qncylg1j7#

首先,@dirk-eddelbuettel的approach in the current question标识了丢失的tex包(在我的例子中是“makeindex”)。

system("R CMD Rd2pdf --no-preview --output=./documentation-peek.pdf ." )

# ... <omitted pages of output> ...
# Warning in sys2(makeindex, shQuote(idxfile)) : '"makeindex"' not found
# Error in texi2dvi(file = file, pdf = TRUE, clean = clean, quiet = quiet,  : 
#    unable to run 'makeindex' on 'Rd2.idx'
# Error in running tools::texi2pdf()

然后,https://stackoverflow.com/a/69968791/1082435中的@pedro-lima的答案对我的具体情况有效。

tinytex::tlmgr_install("makeindex")

相关问题