Cambiar tamaño de tabulación y sangría automática (paquete: listados/acuñado)

Cambiar tamaño de tabulación y sangría automática (paquete: listados/acuñado)

Utilizo los paquetes listingsy mintedpara resaltar mi sintaxis en LaTeX.

Mi problema es que mi sangría es demasiado grande (tabulador normal) y no quiero usar espacio. ¿Es posible cambiar el tamaño de la pestaña aquí? Algo como tabsize=2 no funciona.

¿Y es posible sangrar automáticamente mi código de programa? Quiero decir, ese listings(o cualquier otro paquete) reconoce declaraciones if y demás y sangra automáticamente todo mi código.

Aquí hay un breve ejemplo:

\documentclass{article}
\usepackage{listings}
\usepackage{minted}

\begin{document}
\begin{minted}{bash}
#!/bin/bash

parameter1=$1

#some commentary
if [ "$parameter1" == "-h" ] || [ "$parameter1" == "--help" ] ; 
then 
echo my helpfile
else
#the rest of my programcode
\end{minted}
\end{document}

La declaración if debería verse así:

if [ "$parameter1" == "-h" ] || [ "$parameter1" == "--help" ] ; 
  then 
  echo my helpfile
else
  #the rest of my programcode

Respuesta1

Puede utilizar algunos argumentos opcionales para su mintedentorno. Agregué [obeytabs=true,tabsize=2]a su ejemplo, así como tabulaciones para el bloque ify else. Observe de cerca la sangría en el archivo de entrada y en la salida.

Por favor lea elmanual del mintedpaqueteespecialmente la nota a la obeyetabsopción -.

(Si esta respuesta no le conviene, tendrá que usar otra bonita impresora (tal vez un script SED) para modificar su código y darle el aspecto que desea, antes de introducirlo en LaTeX y minted. No lo sé. cualquier paquete LaTeX que debería poder formatear e imprimir su código original).

Nota: Tuve que reemplazar las pestañas de mi archivo de entrada por espacios por el bien de TeX.SE, para que se pareciera al aspecto de mi archivo de entrada.

\documentclass{article}
\usepackage{listings}
\usepackage{minted}

\begin{document}
\begin{minted}[obeytabs=true,tabsize=2]{bash}
#!/bin/bash

parameter1=$1

#some commentary
if [ "$parameter1" == "-h" ] || [ "$parameter1" == "--help" ] ; 
then 
         echo my helpfile
else
         #the rest of my programcode
fi
\end{minted}
\end{document}

Este es el resultado:

ingrese la descripción de la imagen aquí

información relacionada