2010-08-20 105 views
11

写一些文档与代码片段,我想要可复制以书面形式运行。这些片段可能包括具有前面空格的行。列表包格式化文本很好,但空格不可复制。LaTeX列表包:可复制列表

比方说,我有下面的例子:

\documentclass{article} 
\usepackage{listings} 
\begin{document} 
\lstset{ 
    basicstyle=\ttfamily, 
    frame=single, 
    columns=fullflexible 
} 
\begin{lstlisting}[language=python] 
def foo(): 
    return "bar" 
\end{lstlisting} 
\end{document} 

如果我复制和粘贴的地方上市,就成了:

def foo(): 
return "bar" 

,要靠手工来修正。

有没有办法让列表包中包含原始空间?还是有更适合这种情况的包?

+0

可以将JavaScript嵌入到PDF中并在代码附近具有“复制到剪贴板”按钮。只是一个想法,不是一个好的解决方案。 – Cloudanger 2010-08-22 10:55:23

回答

4

这是(很可能)不是列表(或乳胶)的问题,但与您的PDF渲染软件。例如,在OSX上使用PDFKit(Preview,Skim,...),我得到你描述的行为。但是,通过使用Xpdf,文本被正确复制。

+0

我的确看到了你对Xpdf的看法,这很好理解。然而,并非我所使用的每个人都在使用Linux,并且强制为Xpdf安装cygwin似乎过度... 使用适用于Linux的Adobe Acrobat 9时,空格不显示。尽管如此,还没有尝试过Windows版本。 – Vultaire 2010-08-22 05:33:08

+0

如果我使用逐字块而不是列表,我会看到与空间复制相同的问题。与普通的TeX和“\”一样。也许这是最好的,我会得到没有重大麻烦。谢谢。 – Vultaire 2010-08-23 01:45:12