在预定义位置列出断线

在预定义位置列出断线

我写在列表内的代码行有时太长。所以最后会出现换行符。但有时这些换行符选择不当,会使代码更难读。

有没有办法预定义地方休息应该出现如果有必要

我的文件:

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

在此处输入图片描述

相关内容