Paquete a utilizar para documentar una estructura.

Paquete a utilizar para documentar una estructura.

Existen varios paquetes de pseudocódigo para LaTeX. ¿Alguno de estos puede describir cosas como un nodo de lista vinculada en C?

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

o tengo que inventar algunas macros personalizadas

Respuesta1

Un posible enfoque con algorithm2e. Definí un bloque "similar a un programa" MyStructque comienza con la palabra clave Struct, luego escribe el nombre de la estructura, luego genera la palabra clave containsy el final de la estructura se indica con la palabra clave end:

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

Todo esto se puede personalizar según el contenido de su corazón.

El uso dentro de un algoritmo es algo como:

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

Aquí hay un ejemplo y un resultado completos y simples:

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

ingrese la descripción de la imagen aquí

Esta definición respeta las opciones globales del paquete y también los modificadores locales, por lo que podría usar, por ejemplo, [noend,noline]como opciones del paquete para deshabilitar la composición tipográfica de las endpalabras clave y la línea vertical que delimita el bloque:

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

ingrese la descripción de la imagen aquí

información relacionada