如何自动标记 Hyperref 可填写表单 \TextField?

如何自动标记 Hyperref 可填写表单 \TextField?

有没有办法将自动标签放入 hyperref 包的\TextField参数字段,如下所示:

\newcounter{lexemeCounter}
\newcommand\lexemeCount{\stepcounter{lexeme}\lexemeCounterrabic{lexemeCounter}}

\newcommand{\formlabel}{\value{lexemeCounter}}

\TextField[name=\formlabel]{}

我需要这样做的原因是因为我有一张大约有 1000 个条目的表,并且我想添加一个可编辑的评论列。

一个最小的例子看起来像这样(虽然这是一个最小的例子,但我特意选择使用环境longtabu,因为这是现实世界的场景):

\documentclass{scrartcl}
\usepackage{fontspec} %I only use xelatex
\usepackage{tabu}
\usepackage{longtable}
\usepackage{hyperref}

\newcounter{lexemeCounter}
\newcommand\lexemeCount{\stepcounter{lexemeCounter}\arabic{lexemeCounter}}
\newcommand{\formlabel}{\value{lexemeCounter}}

\begin{document}

\begin{longtabu} to \textwidth{|[1pt black] X[.10,l] | X[.20,l] || X[.20,l] | X|[1pt black]}
   Row & English & German & Comments\\
   \hline
   \lexemeCount & apple   & Apfel  & \TextField[name=\formlabel]{}\\
   \lexemeCount & mouse   & Maus   & \TextField[name=\formlabel]{}
\end{longtabu}

\end{document}

我所有的尝试都失败了。出于某种原因,name=\formlabel保持文字不变(或不增加),因此所有编辑都应用于每个\TextField

答案1

\formlabel(即\value{lexemeCounter}})不会扩展为有用的命令名称\TextField,因此它会被忽略并且不显示任何内容。

但是使用\number\value{lexemeCounter}是可行的。必须将值明确更改为字符串标签的文字数字表示(即文本字段名称)

\documentclass{article}
\usepackage{fontspec} %I only use xelatex
\usepackage{tabu}
\usepackage{longtable}
\usepackage{hyperref}

\newcounter{lexemeCounter}
\newcommand\lexemeCount{\stepcounter{lexemeCounter}\arabic{lexemeCounter}}%
\newcommand{\formlabel}{textfield::\number\value{lexemeCounter}}%

\begin{document}

\begin{Form}
  \begin{longtabu} to \textwidth{|[1pt black] X[.10,l] | X[.20,l] || X[.20,l] | X|[1pt black]}
    Row & English & German & Comments\tabularnewline
    \hline
    \lexemeCount & apple   & Apfel  & \TextField[name=\formlabel]{} \tabularnewline
    \lexemeCount & mouse   & Maus   & \TextField[name=\formlabel]{}
  \end{longtabu}
\end{Form}

\end{document}

在此处输入图片描述

相关内容