Dibujar un rectángulo ajustable en Tikz

Dibujar un rectángulo ajustable en Tikz

Tengo este código que obtuve hace algún tiempo de este sitio (lo siento, no sé la fuente exacta). Me permite crear una hoja de respuestas de opción múltiple.

Lo modifiqué hasta cierto punto y me gustaría saber cómo dibujo un rectángulo ajustable alrededor de las burbujas como se muestra a continuación.

Mi MWE:

\documentclass{exam}
\usepackage{tikz}
\usepackage{multicol}

\newcommand\encircle[2][]{% 
    \indent\tikz[baseline=(X.base)]
    \node (X)    [draw, shape=circle, inner sep=1pt, #1] {\strut$#2$};
}

\ExplSyntaxOn

\newcommand{\answerspace}[1]{%
    
            \foreach \x in {1,...,#1}  {%
            \noindent\hspace*{10mm}\llap{\textbf{\x}}\hspace{5mm}\space
            \foreach \y in {1,2,3,4} {% 
                \l_encircle {\x}{\y} \ %
            }\newline\newline%
        }%

    }


\cs_new_protected:Npn \l_encircle #1#2 {    { \encircle{\int_to_Alph:n{#2}} }
}
\ExplSyntaxOff

\begin{document}
\begin{center}

\begin{multicols}{2}
\normalsize 
\answerspace{24}
\end{multicols}

\end{center}



\end{document}

Resultados

Respuesta1

Si desea seguir usando su código, entonces esta solución funciona.

Básicamente, cambié el nombre de tu comando por otro y lo puse dentro de otro \newcommandque agregará los cuadros más adelante, que puedes personalizar cambiando el color o el ancho del borde.

Agregué un contador a sus \foreachcomandos y los usé para cambiar el nombre de sus nodos row-columnpara una mejor referencia. Luego los usé para conseguir los anclajes necesarios para las cajas.

Esta solución supone:

  • que seguirás usando 4 respuestas, es decirA, B, C, D
  • que seguirás usando este formato para la hoja de referencia

Entonces, si desea una mayor personalización, es posible, pero prefiero reconstruir su código desde cero para estar seguro de que sea sólido y funcione para otros casos de uso.

Nota:Si cambia la cantidad de preguntas, ¡debe compilar dos veces!

Producción

ingrese la descripción de la imagen aquí

Código

\documentclass{exam}
\usepackage{tikz}
\usepackage{multicol}

\newcommand\encircle[2][]{% 
    \indent\tikz[baseline=(\nx-\ny.base), remember picture]{
    \node (\nx-\ny) [draw, shape=circle, inner sep=1pt, outer sep=10pt, #1] 
    {\strut$#2$};
    }
}

\ExplSyntaxOn

\newcommand{\createrows}[1]{%
            \foreach \x [count=\nx] in {1,...,#1}  {%
            \noindent\hspace*{10mm}\llap{\textbf{\x}}\hspace{5mm}\space
            \foreach \y [count=\ny] in {1,2,3,4} {% 
                \l_encircle {\x}{\y} \ %
            }\newline\newline%
        }%
    }
\cs_new_protected:Npn \l_encircle #1#2 {    { \encircle{\int_to_Alph:n{#2}} }
}
\ExplSyntaxOff

\newcommand\answerspace[2][]{%
\createrows{#2}%
\begin{tikzpicture}[overlay, remember picture]
    \pgfmathtruncatemacro\halfofrows{#2/2}
    \pgfmathtruncatemacro\secondhalfofrows{#2/2+1}
    \draw[line width=1pt,#1] (1-1.north west) rectangle (\halfofrows-4.south east);
    \draw[line width=1pt,#1] (\secondhalfofrows-1.north west) rectangle (#2-4.south east);
\end{tikzpicture}
}

\begin{document}
\begin{multicols}{2}
    \centering
\normalsize 
\answerspace{24}
\end{multicols}
\end{document}

información relacionada