tikz 노드 안에 의사코드 배치

tikz 노드 안에 의사코드 배치

패키지 에 의해 작성된 의사코드를 노드 algpseudocode내부에 어떻게 배치할 수 있나요 tikz? (단순히 코드를 꾸미는 것이 아니라 그래프 내부에서 사용하고 싶습니다)

MWE

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

결과

다음과 같은 오류가 많습니다.

뭔가 잘못되었습니다. \item이 누락되었을 수 있습니다.

결과

답변1

환경 algorithmic은 상자 안에 넣는 것을 거부하지만 minipage. 텍스트를 의사 코드 조각의 자연스러운 너비에 맞추기를 원하므로 varwidtha를 직접 사용하는 대신 패키지를 사용했습니다 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}

코드 출력

관련 정보