使编织器代码块更干净利落地切割

时间:2013-05-09 18:06:15

标签: r knitr

我想使用 knitr 来制作pdf文档,从中可以干净地剪切和粘贴示例代码,但似乎无法做到。

我遇到的问题的一个例子:

knitr manual pdf包含此代码块(第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 

查看前两个代码行如何组合成一个,更糟糕的是,{}转换为fg

我的问题:

首先,我想,这是其他人经历的事情吗?它是否仅在Windows或其他地方发生?

如果不仅仅是我,是否有一些简单的解决方法?在编译*.tex文件时使用不同的字体会生成一个更容易复制粘贴的*.pdf文档吗?

(FWIW,如果我改为使用minted突出显示我的R代码,我没有任何相同的问题,所以我知道可能来做到这一点。)

1 个答案:

答案 0 :(得分:8)

根据this question and its accepted answer中的线索,我发现使用LaTeX fontenc 包将字体编码设置为T1可以解决上面报告的问题。 (See also here解释为什么使用T1或多或少是官方推荐的各种LaTeX文档的最佳实践。改进的复制和可匹配性是该链接中提到的几个很好的理由之一。)

以下是固定文档中序言的开头:

\documentclass[a4paper]{article}
\usepackage[T1]{fontenc}