我在这个问题中发现了以下很好的代码使用 Tikz 制作多项选择题答案网格但我想在answergrid
以下是代码:
\documentclass{article}
\usepackage{tikz}
\usepackage{xparse}
\ExplSyntaxOn
\NewDocumentCommand{\answergrid}{ O{1} m m m }{
\begin{tikzpicture}[y=.5cm]
\seq_set_split:Nnn \l_tmpa_seq{;}{#4}
\int_step_inline:nnnn {1} {1} {#3} {\node at (##1+1,#2) {\int_to_Alph:n{##1}};}
\int_step_inline:nnnn {#1} {1} {#1+#2-1} {
\node at (0, #1+#2-##1-1) {Question}; \node at (1, #1+#2-##1-1) {##1};
\int_step_inline:nnnn {1} {1} {#3} {
\node[draw,minimum~width=7mm,minimum~height=4mm] at (####1+1, ##1-#1) {};
\int_compare:nNnTF {####1} = {\seq_item:Nn \l_tmpa_seq {#1+#2-##1}} {\node[fill,minimum~width=7mm,minimum~height=4mm] at (####1+1, ##1-#1) {};}{}
}
}
\end{tikzpicture}
}
\ExplSyntaxOff
\begin{document}
\sffamily\small
\answergrid {20} {4} {0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0}
\answergrid [21] {20} {4} {0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0}
\end{document}
这是输出
答案1
您只需添加以下行即可完成此操作(根据需要更改使用的值):
\hfill Name: \hspace{2cm}\vspace{1cm}
附完整代码
\documentclass{article}
\usepackage{tikz}
\usepackage{xparse}
\ExplSyntaxOn
\NewDocumentCommand{\answergrid}{ O{1} m m m }{
\begin{tikzpicture}[y=.5cm]
\seq_set_split:Nnn \l_tmpa_seq{;}{#4}
\int_step_inline:nnnn {1} {1} {#3} {\node at (##1+1,#2) {\int_to_Alph:n{##1}};}
\int_step_inline:nnnn {#1} {1} {#1+#2-1} {
\node at (0, #1+#2-##1-1) {Question}; \node at (1, #1+#2-##1-1) {##1};
\int_step_inline:nnnn {1} {1} {#3} {
\node[draw,minimum~width=7mm,minimum~height=4mm] at (####1+1, ##1-#1) {};
\int_compare:nNnTF {####1} = {\seq_item:Nn \l_tmpa_seq {#1+#2-##1}} {\node[fill,minimum~width=7mm,minimum~height=4mm] at (####1+1, ##1-#1) {};}{}
}
}
\end{tikzpicture}
}
\ExplSyntaxOff
\begin{document}
\sffamily\small
\hfill Name: \hspace{2cm}\vspace{1cm} % <===============================
\answergrid {20} {4} {0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0}
\answergrid [21] {20} {4} {0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0}
\end{document}
得到结果: