定義済みの場所のブレークラインをリストする

定義済みの場所のブレークラインをリストする

lstlisting 内に記述するコード行が長すぎることがあります。そのため、最後に改行が入ります。しかし、これらの改行が適切に選択されていないと、コードが読みにくくなることがあります。

方法はあるか事前定義する場所ブレーク表示されるはずです必要であれば?

私の文書:

\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」の後に 2 番目の改行を追加することもできます (境界線や書式などのドキュメント設定を変更した後など)。その場合、最初の改行は無視されます。

答え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}

ここに画像の説明を入力してください

関連情報