
LaTeX には多数の疑似コード パッケージが存在します。これらのうち、C のリンク リスト ノードのようなものを記述できるものはありますか。
struct Node
{
Node* parent;
// other stuff
};
それともカスタムマクロを作らなければならないのか
答え1
を使用した 1 つの可能なアプローチ。キーワード で始まり、構造体名をタイプセットし、キーワード を出力し、構造体の終わりがキーワード で示されるalgorithm2e
「プログラムのような」ブロックを定義しました。MyStruct
Struct
contains
end
\SetKwProg{MyStruct}{Struct}{ contains}{end}
これらすべてを心ゆくまでカスタマイズできます。
アルゴリズム内での使用法は次のようになります。
\MyStruct{Node}{
Node* parent\;
int size\;
\tcp{other stuff}
}
完全な簡単な例と出力は次のとおりです。
\documentclass{article}
\usepackage{algorithm2e}
\SetAlgoLined
\SetKwProg{MyStruct}{Struct}{ contains}{end}
\begin{document}
\begin{algorithm}[H]
\MyStruct{Node}{
Node* parent\;
int size\;
\tcp{other stuff}
}
\end{algorithm}
\end{document}
この定義はグローバル パッケージ オプションとローカル スイッチを尊重するため、たとえば、キーワードとブロックを区切る垂直線[noend,noline]
のタイプセットを無効にするパッケージ オプションとして使用できます。end
\documentclass{article}
\usepackage[noend,noline]{algorithm2e}
\SetAlgoLined
\SetKwProg{MyStruct}{Struct}{ contains}{end}
\begin{document}
\begin{algorithm}[H]
\MyStruct{Node}{
Node* parent\;
int size\;
\tcp{other stuff}
}
\end{algorithm}
\end{document}