我写了一个命令, 作用是在页面左边中间放一个答题卡, 方便改作业,效果如图, 我想要做的是, 把题目数量弄成可变的, 自己通过输入参数控制, 但是在 node 里面用 int_map_inline:nnn 好像涉及到展开问题, 因此一团糟, 做不到. 所以求助大佬, 能不能教一下, 怎么做到. 谢谢
`ExplSyntaxOn
NewDocumentCommand{datika}{}{
begin{tikzpicture}[overlay,remember~picture]
\node[
fill=gray!10,
rounded~corners,
shift={(1,0)},
align=left,
font={\baselineskip=2.6em}
]at(current~page.west){
{\heiti 答题卡}\\
1.\underline{\hspace{1cm}}\\
2.\underline{\hspace{1cm}}\\
3.\underline{\hspace{1cm}}\\
4.\underline{\hspace{1cm}}\\
5.\underline{\hspace{1cm}}\\
6.\underline{\hspace{1cm}}\\
7.\underline{\hspace{1cm}}\\
8.\underline{\hspace{1cm}}\\
9.\underline{\hspace{1cm}}\\
10.\underline{\hspace{1cm}}\\
11.\underline{\hspace{1cm}}\\
12.\underline{\hspace{1cm}}\\
13.\underline{\hspace{1cm}}\\
14.\underline{\hspace{1cm}}
};
end{tikzpicture}
}
ExplSyntaxOff`
\documentclass{article}
\usepackage{ctex}
\usepackage{tikz}
\ExplSyntaxOn
\int_new:N \l_exercise_number_int
\NewDocumentCommand{\datika}{ m }{
\int_set:Nn \l_exercise_number_int { #1 }
\begin{tikzpicture}[overlay,remember~picture]
\node[
fill=gray!10,
rounded~corners,
shift={(1,0)},
align=left,
font={\baselineskip=2.6em}
] at (current~page.west){
{\heiti 答题卡} \\
\int_step_inline:nn
{ \l_exercise_number_int }
{ ##1.\underline{\hspace{1cm}} \\ }
};
\end{tikzpicture}
}
\ExplSyntaxOff
\begin{document}
hello\datika{15}
\end{document}
或者
\documentclass{article}
\usepackage{ctex}
\usepackage{tikz}
\ExplSyntaxOn
\int_new:N \l_exercise_number_int
\int_set:Nn \g_tmpa_int { 1 }
\NewDocumentCommand{\datika}{ m }{
\int_set:Nn \l_exercise_number_int { #1 }
\begin{tikzpicture}[overlay,remember~picture]
\node[
fill=gray!10,
rounded~corners,
shift={(1,0)},
align=left,
font={\baselineskip=2.6em}
] at (current~page.west){
{\heiti 答题卡} \\
\int_step_inline:nn
{ \l_exercise_number_int - 1 }
{ \int_use:N \g_tmpa_int.\underline{\hspace{1cm}} \int_gincr:N \g_tmpa_int \\ }
\int_use:N \l_exercise_number_int. \underline{\hspace{1cm}}
};
\end{tikzpicture}
}
\ExplSyntaxOff
\begin{document}
hello\datika{15}
\end{document}
非常感谢