清單中帶有反斜線的自動換行符

清單中帶有反斜線的自動換行符

我想使用清單來格式化 bash 命令,以便過長的行會自動用反斜線分隔。我知道這個prebreak選項,但似乎不可能將文字反斜線字元傳遞給prebreak.

我從中學到了這個答案我可以使用 指定反斜杠\textbackslash,但使用它會產生以下警告訊息:

LaTeX Font Warning: Font shape `OMS/cmtt/m/n' undefined
(Font) using `OMS/cmsy/m/n' instead for symbol `textbackslash' on input line 8.

雖然這仍然允許文件編譯,但看起來不知\textbackslash何故避免了根據basicstyle選項進行格式化。如下例所示,清單完全能夠正確設定手動輸入的反斜線樣式。

是否可以使清單自動用正確樣式的反斜線來分隔長行?

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{listings}

\begin{document}
% Automatic line break
\begin{lstlisting}[basicstyle=\ttfamily,breaklines,breakatwhitespace,prebreak={\textbackslash}]
long string of text to test line breaking for the listings package
\end{lstlisting}

% Manual line break
\begin{lstlisting}[basicstyle=\ttfamily,breaklines,breakatwhitespace]
long string of text to test line breaking for the \
    listings package
\end{lstlisting}
\end{document}

上述乳膠程式碼輸出的螢幕截圖,展示了反斜線的視覺差異

答案1

我找到了我的問題的兩個答案,這兩個答案都允許在用於列表自動換行時正確設置反斜線的樣式:

  • 坎帕的建議新增\usepackage[T1]{fontenc}到序言中修復了\textbackslash用於prebreak選項時的樣式問題。

  • 找到了替代解決方案問題我在自己的問題中已經連結到了。雖然這個問題涉及返回符號,但他們提供的範例程式碼包括使用 指定反斜線的不同方法\char`\\。事實證明,設定prebreakwith\char`\\會產生正確樣式的反斜杠,而無需使用\usepackage[T1]{fontenc}.

了解 非常有幫助\char,因為我預計在未來的情況下可能有必要將特殊字元傳遞給選項。然而,對於這種特殊情況以及一般情況下使用 LaTeX 進行寫作,我想我會堅持使用\usepackage[T1]{fontenc}因為它具有以下概述的好處這個答案

相關內容