我正在處理一些 LaTeX 程式碼清單,並決定將間距從 4 更改為 2。問題是我的文件中有大量清單(約 500 頁)...有什麼方法可以快速重新格式化所有清單以使用兩個空格而不是四個/八/十二/... ?
答案1
您可以使用literate
鍵將四個連續空格變成兩個輸出空格:
\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}
八個空格的區塊與兩個四個空格的區塊相同,透過密鑰進行上述替換literate
即可。如果您需要更多替換,您可以簡單地添加它們,該literate
鍵將任意多個替換規則作為三個參數的區塊(替換什麼,替換,替換將佔用的虛擬列數)。
\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}