web-dev-qa-db-ja.com

長い行の改行をマークする方法は?

私は次のようなラテックスコードを持っています:

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

用紙が狭すぎるため、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 ...
25
watain

どうやらこれはprebreak/postbreakオプションで達成できます。 そのCTANページ からリンクされているlistingsパッケージのドキュメントを参照してください(PDFの33ページの下部と34ページの上部です)。

編集: リストパッケージのマニュアル への直接リンク。また、私はここで関連するビットを再現できると思います-だからここに行きます:

prebreak=<tokens>   (default {})
postbreak=<tokens>  (default {})

<tokens>は、現在の行の終わり、次の(壊れた部分の)行の先頭にそれぞれ表示されます。

内部的には\\discretionaryを使用するため、動的スペース(特にスペース)を使用しないでください。ただし、\\space<tokens>内で使用されるように再定義されています。

編集2:改行マーカーの配置については、質問で提供されている例の外観に近いものを、breakindent0ptに設定し、breakautoindentfalseに設定し、マーカーをたとえば、 \\space

たとえば、改行が通常開始されるニースの太字マーカータイプセットには、postbreak={\textbf{marker}\\space\\space\\space\\space}を使用し、次に4つのスペース、次に破線の残りの内容を使用します。これらのオプションは、prebreak 'マニュアルのpostbreak/listingsの直後に記載されています。 :-)

12
Michał Marczyk

次のようにリストを構成します。

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

ドキュメントのソースコードの例:

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

結果の例:

enter image description here

注:\usepackage{MnSymbol}および\rhookswarrowを使用するには、\rcurvearrowseが必要です。余分な依存関係を防ぐために、デフォルトのパッケージに含まれている\hookrightarrow\hookleftarrowを使用できます。

出典: http://www.bollchen.de/blog/2011/04/good-looking-line-breaks-with-the-listings-package/ 。詳細な説明については、こちらをお読みください。また pdf

46
lesmana