我有這個代碼,是我不久前從這個網站獲得的(抱歉,我不知道確切的來源)。它允許我創建多項選擇答案紙。
我對它進行了一定程度的修改,想知道如何在氣泡周圍繪製一個可調整的矩形,如下所示。
我的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}
答案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}