【问题标题】:Diagnosing R package build warning: "LaTeX errors when creating PDF version"诊断 R 包构建警告:“创建 PDF 版本时出现 LaTeX 错误”
【发布时间】:2012-05-30 16:00:09
【问题描述】:

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

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

我什至不知道如何开始诊断。是否有工具可以告诉我问题出在哪个 .Rd 文件中?

在检查文档步骤中,我没有收到任何关于我的任何 Rd 文件的警告......

【问题讨论】:

  • 我为此使用了 devtools 包。我什至无法想象如果没有它,构建包会有多困难。
  • @Andrie 现在我正在过渡到全职论文,我接下来几个月的目标之一是投资于最佳工作流程。所以我很快就会切换到 devtools,但还没有学会。 :-(
  • FWIW,我随机开始收到这些错误,经过几天尝试调试乳胶代码并尝试在互联网上进行各种修复后,我重新安装了 mactex,所有错误都消失了.
  • 其实我收回了。它再次损坏并出现相同的错误。似乎是known issue,但这里的哈德利解决方案有效,即命令行中的R CMD build ./packageR CMD check ./....tar.gz

标签: r error-handling package


【解决方案1】:

尝试使用R CMD Rd2pdf mypackage 创建手册,并可能还设置--no-clean 选项以保留临时文件。这应该允许您调试触发错误的 LaTeX 代码。

【讨论】:

  • 做到了。谢谢。似乎该错误是由于缺少 inconsolata.sty 文件,我将其归因于 Ubuntu 在其 LaTeX 更新上严重落后。我正在手动安装 TeX Live,希望能帮助我保持最新状态。
  • 这不是我书中的正确结论。 inconsolata.sty 只是在另一个 texlive 字体包中:texlive-fonts-extra。而且我似乎也将它添加到了 r-base-dev 包的建议中。
  • 是的,这不是最合乎逻辑的咆哮。当我寻找 TexLive 来安装包含 inconsolata 的软件包时,我发现我没有在 Ubuntu 中安装 texlive。当我通过包存储库安装它时,我意识到它已经过时了 2 年多。然后我变成了一个巨大的食人魔,在互联网上发布愚蠢的东西。
  • 在我的情况下,构建文档索引所需的 texi2dvi 缺失;我用sudo apt-get install texinfo 纠正了这个问题
  • 我花了一段时间才发现,一旦你运行了R CMD Rd2pdf mypackage --no-clean,你就可以检查mypackage.Rcheck/mypackage-manual.tex 中的Latex 文件是否有错误。
【解决方案2】:

虽然@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

当然,如果第一行返回其他内容,则需要在此处调整符号链接。

【讨论】:

  • 谢谢! symlink 使用 R 3.1.3 在 OS X 上为我解决了这个问题。在我的情况下,它使用倒置的路径: ln -s /usr/bin/texi2dvi /usr/local/bin/texi2dvi
  • @Johannes 是的,你是对的。这是ln -s source_file target file。如果您先cd 到目标目的地,则只需传递源即可。
  • 对于 Linux Mint 17.1(基于 Ubuntu 14.04)的我来说,我需要 texinfo,而不是 texi2dvi。感谢您的提示和this 教我模拟的问题!
  • 我有:which texi2dvi > /usr/local/bin/texi2dvi。但是不知道是不是/usr/local/bin/texi2dvi: makeindex failedError in running tools::texi2pdf()的原因。任何想法如何跟踪错误?
【解决方案3】:

从 cmets 和我自己的经验得出结论,问题通常似乎是缺少一些 TeX 字体,最常见的是

  • inconsolata.sty
  • upquote.sty

首先,您必须找到存储 TeX 字体的正确目录 - 在我的例子中是:

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

然后你可以在这里下载它们:

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

【讨论】:

    【解决方案4】:

    ...另一个原因是您还没有安装 MikTex。

    1. here 下载 MikTex 并按照对话框提示进行安装。我发现默认设置是合理的,并且对我来说效果很好。

    2. 尝试再次构建您的 R 包。现在应该可以了。

    【讨论】:

      【解决方案5】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多