2010-08-20 8 views
11

Écrire des documents avec des extraits de code que je souhaite copier pour s'exécuter comme prévu. Ces extraits peuvent inclure des lignes avec des espaces précédents. Le paquet listing met en forme le texte correctement, mais les espaces ne sont pas copiables.Paquet d'annonces LaTeX: listes modifiables

Disons que j'ai l'exemple suivant:

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

Si je copier et coller la liste quelque part, il devient:

def foo(): 
return "bar" 

qui doivent être corrigées à la main.

Existe-t-il un moyen de faire inclure les espaces d'origine dans le package d'annonces? Ou y a-t-il un paquet mieux adapté aux cas comme celui-ci?

+0

Il est possible d'incorporer JavaScript au format PDF et d'avoir des boutons "copier dans le presse-papier" près des codes. Juste une idée, pas une bonne solution. – Cloudanger

Répondre

4

Ce n'est (très probablement) pas un problème avec les listes (ou le latex du tout), mais avec votre logiciel de rendu PDF. Par exemple, avec PDFKit (Preview, Skim, ...) sous OSX, j'obtiens le comportement que vous décrivez. En utilisant Xpdf, cependant, le texte est copié correctement.

+0

Je vois bien ce que vous dites avec Xpdf, et c'est bon à savoir. Cependant, tous ceux avec qui je travaille n'utilisent pas Linux, et forcer une installation cygwin pour Xpdf semble trop ... Avec Adobe Acrobat 9 pour Linux, les espaces n'apparaissent pas. Je n'ai pas encore essayé la version Windows. – Vultaire

+0

Je vois le même problème avec la copie d'espace si j'utilise un bloc verbatim au lieu de listings. Pareil avec TeX et "\". Peut-être que c'est le meilleur que je vais obtenir sans problème majeur. Merci. – Vultaire

Questions connexes