Estoy trabajando en algunos listados de códigos LaTeX y he decidido cambiar mi espaciado de cuatro a dos. El problema es que hay un montón de listados en mi documento (que tiene ~500 páginas)... ¿hay alguna manera de que pueda reformatear rápidamente todos los listados para usar dos espacios en lugar de cuatro/ocho/doce/... ?
Respuesta1
Puede utilizar la literate
tecla para convertir cuatro espacios consecutivos en dos espacios de salida:
\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}
Los bloques de ocho espacios son iguales que dos bloques de cuatro espacios; el reemplazo anterior mediante la literate
clave funcionará. Si necesita más reemplazos, simplemente puede agregarlos, la literate
clave toma muchas reglas de reemplazo arbitrarias como bloques de tres argumentos (qué reemplazar, el reemplazo, la cantidad de columnas virtuales que ocupará el reemplazo).
\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}