私はいくつかの LaTeX コード リストを作成中で、スペースを 4 から 2 に変更することにしました。問題は、ドキュメント (約 500 ページ) に大量のリストがあることです。すべてのリストを 4/8/12 ではなく 2 スペースを使用するようにすばやく再フォーマットする方法はありますか?
答え1
literate
キーを使用すると、連続する 4 つのスペースを 2 つの出力スペースに変換できます。
\documentclass{article}
\usepackage{listings}
\lstset{literate={\ \ \ \ }{\space\space}{2}}
\begin{document}
\begin{lstlisting}[language=python]
if x is None:
print('yes')
# just a quick test that 3 spaces aren't touched
# just a quick test that 5 spaces are touched
\end{lstlisting}
\end{document}
8 つのスペースのブロックは 4 つのスペースのブロック 2 つと同じで、literate
キーによる上記の置換は機能します。さらに置換が必要な場合は、単に追加できます。キーliterate
は、任意の数の置換ルールを 3 つの引数 (置換対象、置換、置換が占める仮想列の数) のブロックとして受け取ります。
\documentclass{article}
\usepackage{listings}
\lstset
{
literate=
{\ \ \ \ }{\space\space}{2}
{yes}{no}{2}
}
\begin{document}
\begin{lstlisting}[language=python]
if x is None:
print('yes')
if y is None:
print('yes again')
# just a quick test that 3 spaces aren't touched
# just a quick test that 5 spaces are touched
\end{lstlisting}
\end{document}