我想使用列表来格式化 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
选项进行格式化。如以下示例所示,listings 完全能够正确地设置手动输入的反斜杠的样式。
是否可以让列表使用正确样式的反斜杠自动断开长行?
\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`\\
。事实证明,设置prebreak
会\char`\\
产生正确样式的反斜杠,而无需使用\usepackage[T1]{fontenc}
。
了解 非常有帮助\char
,因为我预计在将来的情况下可能需要将特殊字符传递给选项。但是,对于这种特殊情况以及通常使用 LaTeX 进行写作,我认为我会坚持使用,\usepackage[T1]{fontenc}
因为它具有 中概述的好处这个答案。