
リストを使用して、長すぎる行が自動的にバックスラッシュで区切られるように 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
私の質問に対する回答は 2 つ見つかりました。どちらも、リストで自動改行するときにバックスラッシュを正しくスタイル設定できるようにします。
カンパの提案
\usepackage[T1]{fontenc}
をプリアンブルに追加すると、オプション\textbackslash
に が使用される場合のスタイルの問題が修正されますprebreak
。代替の解決策が見つかった質問は、私が自分の質問でリンクしていたものです。この質問はリターン記号に関するものでしたが、提供されたサンプル コードには、 を使用してバックスラッシュを指定する別の方法が含まれています
\char`\\
。 を使用して設定するprebreak
と\char`\\
、 を使用しなくても、正しいスタイルのバックスラッシュが生成されます\usepackage[T1]{fontenc}
。
について学ぶことは非常に役立ちました。将来的にはオプションに特殊文字を渡す必要があるかもしれないからです。しかし、この特定の状況やLaTeXでの一般的な記述では、で概説した利点のため、\char
を使い続けるつもりです。\usepackage[T1]{fontenc}
この答え。