【发布时间】:2013-05-09 18:06:15
【问题描述】:
我想使用 knitr 生成 pdf 文档,从中可以干净地剪切和粘贴示例代码,但似乎不能。
我遇到的问题的一个例子:
knitr manual pdf 包含此代码块 (p.3):
## option tidy=TRUE
for (k in 1:10) {
j <- cos(sin(k) * kˆ2) + 3
print(j - 5)
}
当从 pdf 复制然后粘贴到 R(或 SO 等)中时,它会产生:
## option tidy=TRUE
for (k in 1:10) f j <- cos(sin(k) * kˆ2) + 3
print(j - 5)
g
看看前两个代码行是如何组合成一个的,更糟糕的是,{ 和 } 被转换为 f 和 g?
我的问题:
首先,我想,这是其他人经历过的事情吗?它是仅在 Windows 上发生,还是在其他地方也发生?
如果不只是我,是否有一些简单的解决方法?编译*.tex 文件时使用不同的字体会生成更容易复制和粘贴的*.pdf 文档吗?
(FWIW,如果我改用 minted 来突出显示我的 R 代码,我没有任何相同的问题,所以我知道它是 可能 解决这个问题。)
【问题讨论】:
-
(我现在看到这个可能对于 tex.stackexchange 来说是一个更合适的问题。不过,将它留在这里,因为似乎 knitr 的 R 代码可能是导致上面显示的行为。)
-
我在我的 Mac 上也经历过同样的事情。我认为这也可能取决于您要粘贴到的文本编辑器。
-
@Carson -- 感谢您的确认!粘贴到 Emacs、WinEdt、NotePad 和 TextPad 对我来说也失败了。粘贴到 WordpPad 中确实会产生括号,但它们看起来很奇怪。我怀疑 pdf 文件中的括号没有表示为 ASCII 字符,而是表示为只有某些文本编辑器才能理解的其他非 ASCII 编码中的字符。
-
你试过 xelatex 或 luatex 编译文档吗?听起来像是字体问题
-
@baptiste -- 我想我刚刚想通了(是的,这是字体问题)。将立即发布我的修复。 (顺便说一句,从 knit'ed pdf 粘贴到 R 时,您是否遇到过同样的问题?)