46 votes

Comment forcer le retour à la ligne dans les listes?

J'ai un problème concernant les listes de forfait en latex. J'ai besoin d'intégrer un code source du document XML suivant http://www.sparxsystems.com.au/downloads/profiles/EP_Extensions.xml dans ma thèse de maîtrise de l'annexe. Le problème est que, peu importe quelles sont les options que je passe à l'emballage, je ne semble pas être en mesure de tenir sur la page. Les lignes dans la liste est trop longue, et les listes forfait n'emballe pas, ce qui me semble bizarre... Quelle combinaison d'options fera l'affaire?

Pour le moment j'utilise la suite lstset instruction:

\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, n'ayant pas d'autres options, et combiné avec la commande suivante:

\lstinputlisting{EP_Extensions.xml}

Les listes de la donnée du fichier source à la sortie suivante: alt text

63voto

PeterJCLaw Points 963

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

breaklines travaillé pour moi, bien que vous deviez le définir sur true - la valeur par défaut est false:

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

est à peu près ce que j'ai utilisé

11voto

Aaron Points 31

J'ai eu ce problème et cette page a beaucoup de rang sur Google alors voici la solution pour moi:

J'ai eu l'inclusion suivante: \usepackage[none]{hyphenat} qui cause 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 peut paraître vraiment stupide dans certaines circonstances.

Après avoir longuement cherché une alternative à cette solution, je n’ai trouvé rien d’approprié et j’ai opté pour des lignes correctement séparées, mais une césure mal placée.

5voto

dmckee Points 50318

Tout ce que je peux faire est de vous indiquer les documents listings et de suggérer qu’il contient 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 portant des noms tels que linewidth , breaklines et breakautoindent ce qui suggère certainement que listings répond à vos besoins.

2voto

second Points 11641

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 à cet effet. Clairement, cela fonctionne mieux si le texte est dans une police de largeur fixe, ce que je recommanderais dans tous les cas pour les listages de code.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X