我正在尝试创建一个 pdf 表单。据我了解,每个复选框都必须有一个唯一的名称。如果所有复选框都具有相同的名称,则所有复选框都会被同时选中。我希望名称能够自动生成。我尝试了以下代码:
\RequirePackage{pdfmanagement-testphase}
\DeclareDocumentMetadata{uncompress,pdfversion=2.0}
\documentclass[]{article}
\usepackage{l3pdffield-testphase}
\usepackage{expl3}
\usepackage{hyperref}
\newcounter{namecounter}
\ExplSyntaxOn
\newcommand{\mcheckb}[2]{%
\pdffield_checkbox:n{name=#2\thenamecounter,checked=false,width=#1,height=#1}%
\stepcounter{namecounter}
}
\newcommand{\rating}[2]{\setcounter{namecounter}{0}\hfill\prg_replicate:nn {5}{\mcheckb{#1}{#2}\hspace{.2cm}}}
\ExplSyntaxOff
\begin{document}
\Form[NeedAppearances=false]
First line with multiple checkboxes \rating{0.5cm}{first}\\
Second line with multiple checkboxes \rating{0.5cm}{second}\\
\end{document}
计数器似乎没有正确扩展。
我希望复选框具有以下名称:first1 first2 ...second1 second2 ...
任何帮助都将不胜感激!
答案1
您想在吸收论点\thenamecounter
之前进行扩展。\pdffield_checkbox:n
\RequirePackage{pdfmanagement-testphase}
\DeclareDocumentMetadata{uncompress,pdfversion=2.0}
\documentclass[]{article}
\usepackage{l3pdffield-testphase}
\usepackage{hyperref}
\newcounter{namecounter}
\ExplSyntaxOn
\NewDocumentCommand{\mcheckb}{mm}
{
\stepcounter{namecounter}
\exp_args:Ne \pdffield_checkbox:n
{
name=#2\thenamecounter,
checked=false,
width=#1,
height=#1
}
}
\NewDocumentCommand{\rating}{mm}
{
\setcounter{namecounter}{0}
\hfill\prg_replicate:nn {5}{\mcheckb{#1}{#2}\hspace{.2cm}}
}
\ExplSyntaxOff
\begin{document}
\Form[NeedAppearances=false]
First line with multiple checkboxes \rating{0.5cm}{first}
Second line with multiple checkboxes \rating{0.5cm}{second}
\end{document}
图中显示各个箱子可以彼此独立地进行检查。