Test latex
<diagram> %% LaTeX2e file `tmp-gen-anatomy-of-a-for-loop.tex' %% generated by the `filecontents' environment %% from source `codeanatomy.lstlisting' on 2025/10/19. %% \lstset{escapeinside={!}{!}} \begin{lrbox}{\mycodebox} \begin{lstlisting} !\iPart{init}{\bgcode{int power = 1;}}! for ( !\cPart{i}{int i = 0}!; !\cPart{c}{i <= n}!; !\cPart{u}{i++}! ) {
!\mtPoint{left}!System.out.println(i + " " + power);!\mtPoint{right}!
power *= 2;!\mbPoint{bottom}!
} \end{lstlisting} \end{lrbox}
\begin{tikzpicture}[
remember picture
,code annotation/.append style={%
font=\sffamily\itshape\scriptsize
}
] % {[on background layer]\draw[code grid debug] (-2.5,-0.5) grid (5.5,3.5);} \node(code) [anatomy] at (0,0){\usebox\mycodebox}; \fitExtrem{b}{(left) (right) (bottom)} % Annotations \codeAnnotation{initText} (-1.5,2.7) {initialize another\\
variable in a \extremPoint{initPoint}[0.75ex]\\
separate\\ statement}
\codeAnnotation{iText} (1.2,3.5) {declare and initialize\\ a loop control variable} \codeAnnotation{cText} (3.5,3) {loop-\\continuation\\condition} \codeAnnotation{uText} (6,3) {increment} \codeAnnotation{bText} (3.5,-0.25) {body} % arrows on the background {[on background layer]
\draw[->,annotation] (initPoint) -- (init.north west); \draw[->,annotation] (iText) -- (i); \draw[->,annotation] (cText) -- (c); \draw[->,annotation] (uText) -- (u); \draw[->,annotation] (bText) -- (b);
} \end{tikzpicture} </diagram>