我有这个.Rnw 文件:
\documentclass{article}
\begin{document}
<<>>=
data(cars)
fit <- lm(cars$speed~cars$dist)
summary(fit)
@
\end{document}
我正在使用 RStudio 构建 PDF 文件,摘要在指定重要性代码的行中输出各种特殊字符。(我没有足够的代表点来发布图片,但这里有一个截图:
在生成的 .tex 文件中,该行内容如下
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
'
这些可能是错误类型的引号;我可以通过手动输入而不是在 .tex 文件中输入来解决问题‘
。我认为这与 Sweave/pdflatex/latex 无法处理非 ASCII 字符有关?
我可以设置什么以便它在 PDF 文件中正确显示?
答案1
导致此问题的原因可能是您的源文件未使用 UTF-8 编码,但 R 生成 UTF-8 输出。您需要做的第一件事是确保您的源文件使用 UTF-8 编码。
检查 R-Studio 中的常规首选项,查看默认文本编码是什么。最好是 UTF-8,我认为这是 R-Studio 的默认编码。如果不是,您可以将其更改为 UTF-8。
如果您的原始文件已经是 UTF-8 编码,那么您只需要修复 LaTeX 源(如下所述)。如果不是,则需要使用文件菜单中的“使用编码保存”重新保存文件。
假设您的文件现在已正确编码,您需要更改源。有两种方法可以做到这一点:您可以将包添加inputenc
到源并使用 pdfLateX 作为引擎,或者您可以使用 XeLaTeX 作为引擎。引擎选择可以在 R-Studio 的 Sweave 首选项中设置。
使用 pdflatex
将以下内容添加到您的序言中:
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
使用 xelatex
将以下内容添加到您的序言中:(不要使用inputenc
)。
\usepackage{fontspec}