用於記錄結構的包

用於記錄結構的包

LaTeX 存在許多偽代碼包。這些中的任何一個都可以描述諸如 C 中的鍊錶節點之類的東西嗎:

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

或者我必須發明一些自訂宏

答案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}

在此輸入影像描述

相關內容