構造体を文書化するために使用するパッケージ

構造体を文書化するために使用するパッケージ

LaTeX には多数の疑似コード パッケージが存在します。これらのうち、C のリンク リスト ノードのようなものを記述できるものはありますか。

struct Node
   {
   Node* parent;
// other stuff
   };

それともカスタムマクロを作らなければならないのか

答え1

を使用した 1 つの可能なアプローチ。キーワード で始まり、構造体名をタイプセットし、キーワード を出力し、構造体の終わりがキーワード で示されるalgorithm2e「プログラムのような」ブロックを定義しました。MyStructStructcontainsend

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

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

関連情報