2010-08-20 4 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

ответ

4

Это (скорее всего) не проблема с листингами (или латексом), а с вашим программным обеспечением для рендеринга PDF. Например, с помощью PDFKit (Preview, Skim, ...) в OSX, я получаю описанное вами поведение. Однако, используя Xpdf, текст копируется правильно.

+0

Я действительно вижу, что вы говорите с Xpdf, и это хорошо знать. Тем не менее, не все, с кем я работаю с использованием Linux, и принудительная установка cygwin для Xpdf кажутся излишними ... С Adobe Acrobat 9 для Linux пространства не отображаются. Однако не пробовали версию Windows. – Vultaire

+0

Я вижу ту же проблему с копированием пространства, если я использую стенографический блок вместо списков. То же самое с обычными TeX и «\». Возможно, это лучшее, что я получу без особых проблем. Благодарю. – Vultaire

Смежные вопросы