
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" MyStruct
que comienza con la palabra clave Struct
, luego escribe el nombre de la estructura, luego genera la palabra clave contains
y 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}
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 end
palabras 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}