当我使用 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 文件编码。
非常感谢亚伦帮助我解决这个问题。