関数の 1 つの引数を特定の値に永続的に設定したいです。私の場合、\TextField
引数を持つのは関数ですbordercolor
。毎回書き込むのではなく、グローバルに「nothing」に設定したいです\TextField[bordercolor=,name=xyz]
。これはエラーにつながる私の試みでした:
\renewcommand{\TextField}{\TextField[bordercolor=]}
答え1
答え2
hyperref には、テキスト フィールドのデフォルト キーを追加できるコマンドがあります (デフォルトでは "print" のみが含まれます)。
\documentclass{article}
\usepackage{xcolor}
\usepackage{hyperref}
\usepackage{etoolbox}
\apptocmd\DefaultOptionsofText{,bordercolor=}{}{\fail}
\begin{document}
\begin{Form}
\TextField[name=xy]{foo}
\TextField[bordercolor=red,name=xy]{bar}
\end{Form}
\end{document}
代わりに、次のようにキーを設定するだけです\kvsetkeys
(これは他のフィールド タイプの境界にも影響します)。
\documentclass{article}
\usepackage{xcolor}
\usepackage{hyperref}
\begin{document}
\begin{Form}
\kvsetkeys{Field}{bordercolor=}
\TextField[name=x]{foo}
\TextField[bordercolor=red,name=y]{bar}
\end{Form}
\end{document}