我在 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」之後。例如,最好在“列出”之後定義中斷。或者,如果有足夠的空間,可能是「美麗」之後的第二個(可能是在更改某些文件設定如邊框或格式之後)。在這種情況下,第一個應該被忽略。
答案1
- 也許我誤解了你的問題,「有時這些休息時間沒有被很好地選擇」對於典型的清單材料來說沒有多大意義。
- 列表的內容被視為 a
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}