我对乳胶中的清单包有问题。我需要在我的硕士论文'附录中嵌入以下XML文档http://www.sparxsystems.com.au/downloads/profiles/EP_Extensions.xml的源代码。问题是,无论我传递给包的选项是什么,我似乎都无法将其放在页面上。列表中的行太长了,列表包没有包装它们,这看起来很奇怪......选项的哪些组合可以解决这个问题?
目前我使用以下lstset指令:
\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
}
其中,没有设置其他选项,并结合以下命令:
\lstinputlisting{EP_Extensions.xml}
将给定文件的源列出到以下输出:
答案 0 :(得分:57)
我刚遇到这个问题......
breaklines
为我工作,虽然您确实需要将其设置为true - 默认值为false:
\lstinputlisting[style=Python,
caption=My Class,
label={mine.py},
breaklines=true,
]{../python/mine.py}
几乎就是我用过的东西
答案 1 :(得分:10)
我有这个问题,这个页面在谷歌排名很高,所以这里是我的解决方案:
我有以下内容:\usepackage[none]{hyphenat}
导致上述问题。我用它来解决乳胶自动在一个单词中间断线的问题,在某些情况下看起来真的很愚蠢。
经过多次寻找替代解决方案后,我发现没有什么合适的东西可以解决正确的断线,但是连接位置很差。
答案 2 :(得分:2)
不是一个好的答案,但有一个想法是在包含源代码之前对其进行自动换行。如果您使用的是Linux,则可以使用命令 fold 。显然,如果文本是固定宽度的字体,这种方法效果最好,我建议在任何情况下使用代码清单。
答案 3 :(得分:1)
Aaron's answer的后续跟进。我使用basicstyle=\ttfamily
作为我的商家信息。因此,我可以通过更改
\usepackage[none]{hyphenat}
到
\usepackage[htt]{hyphenat}
% ^^^
hyphenat
docs描述了htt
选项"通过\texttt
或\ttfamily
启用了...文本排版的连字符。"在我的用例中,我没有在我的列表中看到任何连字符,但我确实得到了破解。