RSweave:如何从pdf复制/粘贴到记事本避免错误?

时间:2016-01-11 19:29:14

标签: r encoding

我使用RSweave编译一个包含重音符号(例如“é”)的乳胶文档。然后我将pdflatex生成的pdf中的文本复制到记事本中。由于某些编码原因,结果会显示奇怪的字符。

有没有办法解决这个问题?

最小工作示例

\documentclass{article}

\usepackage[utf8]{inputenc}
\begin{document}
\SweaveOpts{concordance=FALSE}

Orçamentária \\
Tendência \\
saída \\
gestão \\
órgão \\
coração 

\end{document}

当我将这个词从pdf复制到记事本(pdf在Adobe Reader中打开)时,我得到:

Orcamentaria 往往^ encia 萨达 武功〜AO 组织〜AO corac〜AO

The real output

1 个答案:

答案 0 :(得分:0)

经过大量搜索,我发现了问题的根源。在C:\ Users ... \ Documents \ R \ R-3.1.2 \ share \ texmf \ tex \ latex \ Sweave.sty中有:

 \ifthenelse{\boolean{Sweave@ae}}{%
  \RequirePackage[T1]{fontenc}
  \RequirePackage{ae}
}{}%

根据https://en.wikibooks.org/wiki/LaTeX/Fonts

包ae(几乎是欧洲的)已经过时了。它为使用特殊字符的单词连字提供了一些解决方法。对于像lmodern这样的字体,这些不再是必需的。除了排版问题之外,使用ae包会导致通过pdflatex生成的PDF文件中的文本编码问题(例如文本提取和搜索)。

所以,如果我在Sweave.sty中评论这一行,我就解决了这个问题。或者只是在.tex文件中注释\ userpackage {sweave}。