Eu uso os pacotes listings
e minted
para 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 minted
ambiente. Adicionei [obeytabs=true,tabsize=2]
ao seu exemplo, bem como Tabstops para o bloco if
e 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 obeyetabs
opçã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: