Quiero establecer un argumento de una función de forma permanente en un valor específico. En mi caso es la función \TextField
la que tiene el argumento bordercolor
. Quiero configurarlo globalmente en "nada" en lugar de escribirlo \TextField[bordercolor=,name=xyz]
cada vez. Este fue mi intento que genera un error:
\renewcommand{\TextField}{\TextField[bordercolor=]}
Respuesta1
Respuesta2
hyperref tiene un comando al que puedes agregar claves predeterminadas para el campo de texto (por defecto solo contiene "imprimir"):
\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}
La alternativa es simplemente configurar la clave con \kvsetkeys
(esto también afectará el borde de otros tipos de campos):
\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}