2009-06-11 6 views
37

J'ai un problème concernant le paquet d'annonces en latex. Je dois incorporer un code source du document XML suivant http://www.sparxsystems.com.au/downloads/profiles/EP_Extensions.xml dans l'annexe de ma thèse de master. Le problème est, peu importe les options que je passe au paquet, je ne semble pas pouvoir l'ajuster sur la page. Les lignes dans la liste sont trop longues, et le paquet de listes ne les enveloppe pas, ce qui semble étrange ... Quelle combinaison d'options fera l'affaire?Comment forcer l'empaquetage de ligne dans le paquet listings?

Au moment où j'utilise l'instruction lstset suivante: Source de

\lstinputlisting{EP_Extensions.xml} 

Listes le fichier donné au:

\lstset{ 
breakindent=0em, 
language=XML, 
basicstyle=\footnotesize, 
numbers=left, 
numberstyle=\footnotesize, 
stepnumber=2, 
numbersep=5pt, 
backgroundcolor=\color{white}, 
showspaces=false, 
showstringspaces=false, 
showtabs=false, 
frame=single, 
tabsize=2, 
captionpos=b, 
breaklines=true, 
breakatwhitespace=true, 
breakautoindent=true, 
escapeinside={\%*}{*)}, 
linewidth=\textwidth 
} 

qui, sans autres options définies, et combiné avec la commande suivante sortie suivante: alt text

Répondre

4

Tout ce que je peux faire est de vous pointer au the listings docs et de suggérer qu'il y a une section nommée "Marges et forme de ligne". Ces options sont-elles parmi celles que vous avez essayées?

En particulier, je vois des options avec des noms comme linewidth, breaklines et breakautoindent qui suggère que cetainly listings prend en charge vos besoins.

+0

J'ai essayé toutes les combinaisons auxquelles je pouvais penser, et cela ne fonctionne pas. – Adam

+2

Hmmm ... Je pense qu'il y a peu de choses que nous pouvons faire pour vous sans code à regarder. – dmckee

2

Pas une bonne réponse, mais une idée est d'envelopper le code source avant de l'inclure. Si vous êtes sur Linux, la commande fold peut être utilisée pour cela. De toute évidence, cela fonctionne mieux si le texte est dans une police de largeur fixe, que je recommande dans tous les cas pour les listes de codes.

51

Je viens d'avoir ce problème ...

breaklines a fonctionné pour moi, si vous avez besoin de le mettre à true - la valeur par défaut est faux:

\lstinputlisting[style=Python, 
    caption=My Class, 
    label={mine.py}, 
    breaklines=true, 
    ]{../python/mine.py} 

est à peu près ce que je

+0

Une liste complète des options est disponible à https://en.wikibooks.org/wiki/LaTeX/Packages/Listings –

7

J'ai eu ce problème et cette page sur Google occupe un rang élevé alors voici était la solution pour moi:

J'ai eu l'inclusion suivante: \usepackage[none]{hyphenat} w qui provoque le problème décrit ci-dessus. Je l'utilisais pour résoudre le problème du latex qui casse automatiquement les lignes au milieu d'un mot, ce qui semble vraiment stupide dans certaines circonstances. Après beaucoup de recherche d'une alternative à cette solution, je n'ai trouvé rien de convenable et réglé pour les lignes correctement brisées, mais la césure mal placée.

+0

Merci! J'ai eu exactement le même problème, et je ne pouvais pas comprendre pourquoi les listes ne casseraient pas mes lignes même avec breaklines = true. Vous venez de me sauver beaucoup de grattage de la tête. – Zero3

Questions connexes