我写在列表内的代码行有时太长。所以最后会出现换行符。但有时这些换行符选择不当,会使代码更难读。
有没有办法预定义地方休息应该出现如果有必要?
我的文件:
\documentclass{book}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{listings}
\lstdefinestyle{General} {
basicstyle=\small\ttfamily,
breaklines=true
}
\lstset{style=General}
\begin{document}
\begin{lstlisting}
This is a very long listing which eventually needs a break at the end of this beautiful line.
\end{lstlisting}
\end{document}
在这种情况下,换行符出现在“break”之后。例如,最好在“listing”之后定义换行符。或者,如果有足够的空间(可能在更改某些文档设置(如边框或格式)后),可以在“beautiful”之后定义第二个换行符。在这种情况下,应该忽略第一个换行符。
答案1
- 也许我误解了你的问题,“有时这些中断选择得不太好”对于典型的列表材料来说没有多大意义。
- 列表的内容被视为
verbatim
(又名:按字面意思,按原样)。 - 因此,您可以在任何需要的地方添加手动换行符。
- 此外,该软件包还提供自动换行功能(您已启用此功能)。我在默认缩进之外
listings
还标记了自动换行。$\hookrightarrow$
- 此外,您还可以将其更改
linewidth
为选项(未显示)。
顺便说一句:我不知道为什么我需要使用
\mbox
。\mbox{{$\hookrightarrow$}\space}
此外,~
而不是\space
导致了错误。
\documentclass{book}
\usepackage{listings}
\lstdefinestyle{myListingStyle}
{
basicstyle = \small\ttfamily,
breaklines = true,
postbreak = \mbox{{$\hookrightarrow$}\space} % See https://tex.stackexchange.com/questions/116534 for example
}
\begin{document}
\begin{lstlisting}[
style = myListingStyle,
caption = {Natural/Automatic line break.}
]
This is a very long listing which eventually needs a break at the end of this beautiful line.
\end{lstlisting}
\begin{lstlisting}[
style = myListingStyle,
caption = {Manual line break.}
]
This is a very long listing which eventually
needs a break at the end of this beautiful line.
\end{lstlisting}
\end{document}