Я хочу установить один аргумент функции на постоянное значение. В моем случае это функция, \TextField
которая имеет аргумент bordercolor
. Я хочу установить его глобально на "ничего" вместо того, чтобы писать \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}