Quero definir permanentemente um argumento de uma função para um valor específico. No meu caso é a função \TextField
que tem o argumento bordercolor
. Quero defini-lo globalmente como "nada" em vez de escrever \TextField[bordercolor=,name=xyz]
sempre. Esta foi minha tentativa que leva a um erro:
\renewcommand{\TextField}{\TextField[bordercolor=]}
Responder1
Responder2
hyperref possui um comando ao qual você pode anexar chaves padrão para o campo de texto (por padrão ele contém apenas "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}
A alternativa é simplesmente definir a chave com \kvsetkeys
(isso também afetará a borda de outros tipos de campo):
\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}