Как быстро изменить интервал в списке, чтобы использовать два пробела вместо четырех?

Как быстро изменить интервал в списке, чтобы использовать два пробела вместо четырех?

Я работаю над некоторыми листингами кода LaTeX и решил изменить интервал с четырех на два. Проблема в том, что в моем документе (около 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}

введите описание изображения здесь

Связанный контент