Pergunta

Writing some docs with code snippets which I want to be copyable to run as written. These snippets may include lines with preceding spaces. The listings package formats the text fine, but the spaces are not copyable.

Let's say I have the following example:

\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}

If I copy and paste the listing somewhere, it becomes:

def foo():
return "bar"

which must be corrected by hand.

Is there a way to make the listings package include the original spaces? Or is there a package better suited for cases like this?

Foi útil?

Solução

This is (most likely) not a problem with listings (or latex at all), but with your PDF rendering software. For instance, with PDFKit-based (Preview, Skim, ...) on OSX, I get the behavior that you describe. By using Xpdf, however, the text is copied correctly.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top