Как мне поместить псевдокод, написанный пакетом algpseudocode
, внутрь tikz
узла? (Я не хочу просто украшать код, а использовать его внутри графика)
МВЭ
\documentclass{article}
\usepackage{tikz}
\usepackage{algpseudocode}
\begin{document}
\begin{tikzpicture}
\node[draw, rounded corners] {%
\begin{algorithmic}
\If{$\mathrm{n}=\mathrm{np}$}
\State Have fun
\EndIf
\end{algorithmic}%
};
\end{tikzpicture}
\end{document}
Результат
Множество ошибок типа:
Что-то не так — возможно, отсутствует какой-то \элемент.
решение1
Окружение algorithmic
сопротивляется размещению внутри блоков, но вы можете поместить его в minipage
. Поскольку вы хотите, чтобы текст соответствовал естественной ширине фрагмента псевдокода, я использовал пакет varwidth
вместо использования minipage
напрямую.
\documentclass{article}
\usepackage{tikz}
\usepackage{varwidth}
\usepackage{algpseudocode}
\begin{document}
\begin{tikzpicture}
\node[draw, rounded corners] {%
\begin{varwidth}{\linewidth}
\begin{algorithmic}
\If{$\mathrm{n}=\mathrm{np}$}
\State Have fun
\EndIf
\end{algorithmic}%
\end{varwidth}
%
};
\end{tikzpicture}
\end{document}