
У меня есть этот код, который я получил некоторое время назад с этого сайта (извините, я не знаю точного источника). Он позволяет мне создавать лист с несколькими вариантами ответов.
Я немного изменил его и хотел бы узнать, как нарисовать регулируемый прямоугольник вокруг пузырей, как показано ниже.
Мой МВЭ:
\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}
решение1
Если вы хотите продолжать использовать свой код, то это решение вам подойдет.
По сути, я переименовал вашу команду во что-то другое и поместил ее внутрь другой, \newcommand
которая позже добавит поля, которые вы можете настроить, изменив цвет или ширину границы.
Я добавил счетчик к вашим \foreach
командам и использовал их для переименования ваших узлов row-column
для лучшей справки. Затем я использовал их для получения якорей, необходимых для ящиков.
Это решение предполагает:
- что вы будете продолжать использовать 4 ответа, т.е.
A, B, C, D
- что вы продолжите использовать этот формат для шпаргалки
Так что если вам нужна дополнительная настройка, это возможно, но я бы предпочел переписать ваш код с нуля, чтобы быть уверенным, что он надежен и подходит для других вариантов использования.
Примечание:Если вы измените количество вопросов, вам придется выполнить компиляцию дважды!
Выход
Код
\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}