2010-04-22 113 views

回答

9

尝试这样:

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

主要生产:

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

+0

我怎样才能让乳胶自动逃脱&n \ n? – KP65 2010-04-22 13:14:32

+0

好的,谢谢,编辑op – KP65 2010-04-22 13:22:01

+1

美学笔记:columns = fixed通常给人不好的结果(就像这里,字母间隔太多)。我更喜欢columns = fullflexible,即使使用固定宽度的字体,它也给了代码更自然的外观。 – 2010-04-23 19:10:28

2

你考虑

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

1

使用breaklines=true e。摹:

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

2

你想打开符合

\lstset{breaklines=true} 
在命令选项

打破。现在你可能不喜欢它的选择,但这是另一个问题。

2

而不是直接包括源,包括它从一个文件:

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

你”这样做可以节省很多工作。或者,如果您必须将源文件包含到文件中,则有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} 
}