Alterar o tamanho da tabulação e o recuo automático (pacote: listagens/minted)

Alterar o tamanho da tabulação e o recuo automático (pacote: listagens/minted)

Eu uso os pacotes listingse mintedpara realce de sintaxe no LaTeX.

Meu problema é que meu recuo é muito grande (tabulador normal) e não quero usar espaço. É possível alterar o tamanho da guia aqui? Algo como tabsize=2 não funciona.

E é possível recuar automaticamente meu código de programa? Quero dizer, isso listings(ou qualquer outro pacote) reconhece instruções if e assim por diante e recua automaticamente todo o meu código.

Aqui está um pequeno exemplo:

\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}

A instrução if deve ser semelhante a esta:

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

Responder1

Você pode usar alguns argumentos opcionais para o seu mintedambiente. Adicionei [obeytabs=true,tabsize=2]ao seu exemplo, bem como Tabstops para o bloco ife else. Por favor, dê uma olhada no recuo no arquivo de entrada e na saída.

Por favor leia omanual do minted-packageespecialmente a nota para a obeyetabsopção -.

(Se esta resposta não combina com você, você terá que usar outra impressora bonita (talvez um script SED), para transformar seu código na aparência desejada, antes de alimentá-lo no LaTeX e minted. Não sei de qualquer pacote LaTeX que seja capaz de formatar e imprimir seu código original.)

Nota: tive que substituir as tabulações do meu arquivo de entrada por espaços por causa do TeX.SE, para ficar parecido com a aparência do meu arquivo 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 é o resultado:

insira a descrição da imagem aqui

informação relacionada