Pacote a ser usado para documentar uma estrutura

Pacote a ser usado para documentar uma estrutura

Existem vários pacotes de pseudocódigo para LaTeX. Qualquer um deles pode descrever coisas como um nó de lista vinculada em C:

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

ou terei que inventar algumas macros personalizadas

Responder1

Uma abordagem possível com algorithm2e. Eu defini um bloco "semelhante a um programa" MyStructque começa com a palavra-chave Struct, depois digita o nome da estrutura, depois gera a palavra-chave containse o final da estrutura é indicado com a palavra-chave end:

\SetKwProg{MyStruct}{Struct}{ contains}{end}

Tudo isso pode ser personalizado de acordo com sua preferência.

O uso dentro de um algoritmo é algo como:

\MyStruct{Node}{
  Node* parent\;
  int size\;
  \tcp{other stuff}
}

Aqui está um exemplo simples e completo e uma saída:

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

insira a descrição da imagem aqui

Esta definição respeita as opções globais do pacote e também as opções locais, então você pode usar, por exemplo, [noend,noline]como opções de pacote para desabilitar a composição da end(s) palavra(s)-chave e a linha vertical que delimita o bloco:

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

insira a descrição da imagem aqui

informação relacionada