私は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}
結果は次のとおりです。