2010-04-22 41 views

Respuesta

9

intentar algo como esto:

\documentclass{article} 

\usepackage{listings} 
\usepackage{color} 
\usepackage{textcomp} 
\definecolor{listinggray}{gray}{0.9} 
\definecolor{lbcolor}{rgb}{0.9,0.9,0.9} 
\lstset{ 
    language=c, 
    basicstyle=\scriptsize, 
    upquote=true, 
    aboveskip={1.5\baselineskip}, 
    columns=fullflexible, 
    showstringspaces=false, 
    extendedchars=true, 
    breaklines=true, 
    showtabs=false, 
    showspaces=false, 
    showstringspaces=false, 
    identifierstyle=\ttfamily, 
    keywordstyle=\color[rgb]{0,0,1}, 
    commentstyle=\color[rgb]{0.133,0.545,0.133}, 
    stringstyle=\color[rgb]{0.627,0.126,0.941}, 
} 

\begin{document} 

\begin{lstlisting} 

#include <stdio.h> 

int main() 
{ 
    // A line comment 
    printf("A really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, REALLY long line. && & \n"); 
    return 0; 
} 

\end{lstlisting} 

\end{document} 

que produce:

alt text http://img260.imageshack.us/img260/1608/codes.png

+0

¿cómo puedo obtener latex para escapar & y \ n automáticamente? – KP65

+0

ok gracias, editó el op – KP65

+1

Una nota estética: columns = fixed a menudo da malos resultados (como aquí, las letras están espaciadas demasiado). Prefiero columnas = fullflexible, incluso con una fuente de ancho fijo, le da un aspecto mucho más natural al código. –

2

¿Consideró

\lstset{...} 
breaklines=true -> sets automatic line breaking 
breakatwhitespace=false -> automatic breaks happen at whitespace 

?

1

Uso breaklines=true e. g .:

\lstnewenvironment{bash}
{\lstset{language=bash,breaklines=true,frame=trBL}}
{}

2

que desea convertir en la línea de ruptura con

\lstset{breaklines=true} 

en las opciones de comando. Ahora puede que no te gusten sus elecciones, pero esa es otra pregunta.

2

En lugar de incluir la fuente directamente, incluye desde un archivo:

\lstinputlisting{/Volumes/docs/p2k_files_in_qt.sh} 

Usted' Ahorrará mucho trabajo haciéndolo de esa manera. Alternativamente, si tiene que incluir la fuente en el archivo, hay lgrind.

\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=1,     % 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{Blue}, % 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 
% size, font 
commentstyle=\fontsize{7}{7}\selectfont, 
basicstyle=\ttfamily\fontsize{7}{7}\selectfont, 
keywordstyle=\color{red}, 
commentstyle=\color{blue}, 
stringstyle=\color{green} 
}