Пакет листингов 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"

, который должен быть исправлен вручную.

Есть ли способ сделать так, чтобы пакет объявлений включал оригинальные пробелы? Или есть пакет, который лучше подходит для таких случаев?

12
задан Vultaire 20 August 2010 в 01:27
поделиться

1 ответ

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

4
ответ дан 2 December 2019 в 23:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: