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