Sweave 生成​​无效的 LaTeX

Sweave 生成​​无效的 LaTeX

当我使用 Sweave 将 .Rnw 文件转换为 .tex 文件时,我遇到了一个问题。Sweave 正在\hypersetup用值 替换 hyperref 块中的三个选项NA

这是 .Rnw 文件中的部分

\hypersetup{
baseurl={.},
%bookmarks=true,         % show bookmarks bar?
unicode=false,          % non-Latin characters in Acrobat’s bookmarks
pdftoolbar=true,        % show Acrobat’s toolbar?
pdfmenubar=true,        % show Acrobat’s menu?
pdffitwindow=false,     % window fit to page when opened
pdfstartview={FitH},    % fits the width of the page to the window

同一节的 LaTeX 结果如下:

\hypersetup{
baseurl={.},
%bookmarks=true,         % show bookmarks bar?
NA
NA
NA
pdffitwindow=false,     % window fit to page when opened
pdfstartview={FitH},    % fits the width of the page to the window

据我所知,文档的其余部分没有问题。删除有问题的部分可以编译 LaTeX。我正在运行 R 2.13.1。还有其他人遇到过这个问题吗?或者,有人能建议一下 Sweave 对这三个选项特别不满的地方吗?

答案1

问题在于您\hypersetup从 PDF 中剪切并粘贴了命令,代码中存在无效字符,特别是右单引号。如果您将这些字符替换为常规单引号',则文件应该可以编译。这是由处理输入的方式引起的Sweave,而不是由 TeX 文件本身引起的。

所以之所以是这三行是因为它们都包含字符串“Acrobat's”。

更新

经过一些故障排除后,似乎根本问题是实际文件编码与 R 在Sweave文件上运行时假定的区域设置不匹配。在我的特定情况下(Sweave从 TeXShop 内部运行),区域设置没有正确设置。解决方案是添加

export LANG=en_US.UTF-8

运行 TeXShop 中的脚本Sweave。根据您运行的方式,Sweave问题可能相同:您需要确保文件的编码与 RSweave处理文件时使用的编码相匹配。如果您在编辑器中运行,请检查它用于编译文档的脚本Sweave;如果您从命令行运行,请检查您的.bashrc或是否.profile正确设置了语言环境。

要获得显示此内容的最小测试文档,请参阅此 stackoverflow 问题:Sweave 似乎无法正确获取 .Rnw 文件编码

非常感谢亚伦帮助我解决这个问题。

相关内容