Поместите псевдокод внутрь узла tikz

Поместите псевдокод внутрь узла tikz

Как мне поместить псевдокод, написанный пакетом 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}

вывод кода

Связанный контент