2009-02-04 8 views
4

J'ai du code que j'écris dans l'environnement verbatim. Parfois, les lignes sont trop longues et le pdf généré semble moche - la ligne de texte passe sur la marge de droite. Que puis-je faire pour briser automatiquement ces longues lignes? Y a-t-il quelque chose de mieux que le verbatim env?Longues lignes dans LaTeX

Merci, Lucian

Répondre

9

Pouvez-vous utiliser une police à largeur fixe, par exemple \texttt{}? Si vous avez besoin de quelque chose de plus sophistiqué, essayez les packages moreverb, listings ou algorithmicx.

2

Vous pourriez essayer un joli paquet d'impression comme LGrind. Sinon, vous devrez manuellement casser les lignes.

11

Bien sûr, vous avez le merveilleux package "listings" pour cela. Il prend en charge (si vous le souhaitez) même l'impression de beaucoup de langages de code source, ainsi qu'une "rupture intelligente" des longues lignes en fonction de la langue affichée.

3

Je vous recommande vivement d'utiliser le paquet d'annonces pour cela. Il forme un code bien, et prend en charge un grand nombre de langues (Voir Pg12), et est effectivement utilisé de trois façons:

  1. extraits de ligne sont inclus à l'aide de la commande \lstinline!int x = 0;!
  2. typées blocs de code, dans le lstlisting environnement, telles que les suivantes

    \begin{lstlisting} 
    for i:=maxint to 0 do 
    begin 
    { do nothing } 
    end; 
    \end{lstlisting} 
    
  3. blocs de code importés où le code est intégré dans un document directement à partir d'un fichier de code source, en utilisant, par exemple, \lstinputlisting{source.py}

Il y a beaucoup, beaucoup d'options qui peuvent être configurées avec ce paquet, par exemple, les lignes envelopper et comprennent les numéros de ligne et les détails peuvent être trouvés dans le package documentation, mais une bonne configuration de base est fournie dans le wikibook entry:

\lstset{ % 
language=C,      % choose the language of the code 
basicstyle=\footnotesize,  % the size of the fonts that are used for the code 
numbers=left,     % where to put the line-numbers 
numberstyle=\footnotesize,  % the size of the fonts that are used for the line-numbers 
stepnumber=2,     % the step between two line-numbers. If it's 1 each line will be numbered 
numbersep=5pt,     % how far the line-numbers are from the code 
backgroundcolor=\color{white}, % choose the background color. You must add \usepackage{color} 
showspaces=false,    % show spaces adding particular underscores 
showstringspaces=false,   % underline spaces within strings 
showtabs=false,     % show tabs within strings adding particular underscores 
frame=single,     % adds a frame around the code 
tabsize=2,     % sets default tabsize to 2 spaces 
captionpos=b,     % sets the caption-position to bottom 
breaklines=true,    % sets automatic line breaking 
breakatwhitespace=false,  % sets if automatic breaks should only happen at whitespace 
escapeinside={\%*}{*)}   % if you want to add a comment within your code 
}