Ich arbeite an einigen LaTeX-Codelisten und habe beschlossen, meinen Zeilenabstand von vier auf zwei zu ändern. Das Problem ist, dass mein Dokument (das ca. 500 Seiten umfasst) eine Menge Listen enthält. Gibt es eine Möglichkeit, alle Listen schnell so umzuformatieren, dass zwei statt vier/acht/zwölf/... Leerzeichen verwendet werden?
Antwort1
Mit der Taste können Sie literate
aus vier aufeinanderfolgenden Feldern zwei Ausgabefelder machen:
\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}
Blöcke mit acht Leerzeichen sind dasselbe wie zwei Blöcke mit vier Leerzeichen, die obige Ersetzung über den literate
Schlüssel funktioniert. Wenn Sie mehr Ersetzungen benötigen, können Sie diese einfach hinzufügen, der literate
Schlüssel akzeptiert beliebig viele Ersetzungsregeln als Blöcke mit drei Argumenten (was ersetzt werden soll, die Ersetzung, die Anzahl der virtuellen Spalten, die die Ersetzung einnehmen wird).
\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}