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}