預定義位置的清單隔間線

預定義位置的清單隔間線

我在 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}

在此輸入影像描述

相關內容