如何标记长线的断线?

wat*_*ain 25 latex

我有一个类似于以下的Latex代码:

\usepackage{listings}
\lstset{
    breaklines     = true,
    numbers        = left,
    stepnumber     = 5,
}
\begin{lstlisting}
for (int i = 0, j = 0, k = 1; i <= 10, j < foo; i++, j *= factor, k--) { // a comment here
    % something code here ...
}
\end{lstlisting}
Run Code Online (Sandbox Code Playgroud)

由于纸张太窄,带有for循环的长行会在中间某处自动断开.这正是我想要的,否则该线将在论文的最后消失.但现在我的问题是,是否有办法标记或表明这条线被打破了.否则,它看起来像是创建了一个新行.

这样的东西就是我想要的(用行号,注意箭头):

10   for (int i = 0, j = 0, k = 1; i <= 10, j < foo;
   ?     i++, j *= factor, k--) { // a comment here
11       % something code here ...
Run Code Online (Sandbox Code Playgroud)

les*_*ana 46

列表配置如下:

\lstset{prebreak=\raisebox{0ex}[0ex][0ex]
        {\ensuremath{\rhookswarrow}}}
\lstset{postbreak=\raisebox{0ex}[0ex][0ex]
        {\ensuremath{\rcurvearrowse\space}}}
\lstset{breaklines=true, breakatwhitespace=true}
\lstset{numbers=left, numberstyle=\scriptsize}
Run Code Online (Sandbox Code Playgroud)

文档中的示例源代码:

\begin{lstlisting}[language=C++, numbers=left, linewidth=5.1cm]
    if (line.length() > line.max_length())
    {
        line.wrap();
    }
\end{lstlisting}
Run Code Online (Sandbox Code Playgroud)

示例结果:

在此输入图像描述

注意:您必须\usepackage{MnSymbol}能够使用\rhookswarrow\rcurvearrowse.为了防止您可以使用的额外依赖项\hookrightarrow以及\hookleftarrow默认包中包含的依赖项.

资料来源:http://www.bollchen.de/blog/2011/04/good-looking-line-breaks-with-the-listings-package/.在那里阅读更详细的解释.还有pdf.


Mic*_*zyk 12

显然这可以通过prebreak/ postbreakoptions 完成.请参阅listings软件包的文档,该文档链接到其CTAN页面(它是第33页的底部和pdf中的第34页的顶部).

编辑:直接链接到列表包的手册.另外,我想我可以在这里重现相关位 - 所以这里是:

prebreak=<tokens>   (default {})
postbreak=<tokens>  (default {})
Run Code Online (Sandbox Code Playgroud)

<tokens> 当前行的末尾分别出现在下一行(断开的部分)行的开头.

因为我们内部使用,所以不得使用动态空间(特别是空格)\\discretionary.但是\\space重新定义为在内部使用<tokens>.

编辑2:对于断行标记的位置,一些接近在问题所提供的示例的外观可以通过设置实现breakindent0pt,breakautoindentfalse和手工填充所述标记与,比如说,\\space.

例如,使用postbreak={\textbf{marker}\\space\\space\\space\\space}一个漂亮的粗体标记排版,其中新行通常会开始,然后是四个空格,然后是虚线的剩余内容.这些选项在"手册" 之后prebreak/ 之后记录.:-)postbreaklistings