タブサイズと自動インデントを変更する (パッケージ: listings/minted)

タブサイズと自動インデントを変更する (パッケージ: listings/minted)

私はLaTeX での構文強調表示にパッケージlistingsとを使用します。minted

私の問題は、インデントが大きすぎる (通常のタブ) ため、スペースを使いたくないことです。ここでタブ サイズを変更することは可能ですか? tabsize=2 のようなものは機能しません。

プログラムコードを自動的にインデントすることは可能ですか? つまり、そのパッケージlistings(または他のパッケージ) は if ステートメントなどを認識し、コード全体を自動的にインデントします。

以下に短い例を示します。

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

if ステートメントは次のようになります。

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

答え1

-environmentにいくつかのオプション引数を使用できますminted[obeytabs=true,tabsize=2]例に、およびブロックのタブストップifを追加しましたelse。入力ファイルと出力のインデントをよく確認してください。

お読みくださいmintedパッケージのマニュアル特に -option に関する注意事項obeyetabs

(この回答が気に入らない場合は、別のプリティ プリンタ (おそらく SED スクリプト) を使用して、コードを希望どおりの外観に加工してから、それを LaTeX および に入力する必要がありますminted。元のコードをフォーマットしてプリティ プリントできる LaTeX パッケージは知りません。)

注: TeX.SE のために、入力ファイルの外観に似せるために、入力ファイルのタブをスペースに置き換える必要がありました。

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

結果は次のとおりです。

ここに画像の説明を入力してください

関連情報