我定义了一个新类。在这个类中,我调用 hyperref 包,并设置以下选项:
\RequirePackage{hyperref}
\hypersetup
{
pdfauthor={...},
pdfsubject={...},
pdftitle={...},
}
现在,我已经在此类中定义了某些变量(我可以用 调用它们\variablename{}
)。但是,如果我在此包中使用这些变量作为选项设置的一部分,则此操作会失败(未定义的控制序列)。我使用的语法是否不正确?
\RequirePackage{hyperref}
\hypersetup
{
pdfauthor={\variablename{}},
pdfsubject={\variablename{}},
pdftitle={\variablename{}},
}
我读过这些问题(变量名 \newcommand 带有另一个 \newcommand 中的参数和在另一个新命令中定义一个带有变量名的新命令),但它们是关于新命令的......这是我包含的一个常规包(超引用),所以我希望它不需要这么复杂)...
答案1
以下组合正确地将设置pdfauthor
为“Andrew”:
test.sty
:
\newcommand{\myname}{Andrew}
\RequirePackage{hyperref}
\hypersetup{pdfauthor={\myname}}
main.tex
:
\documentclass{article}
\usepackage{test}
\begin{document}
Text.
\end{document}
重要的是不要\hypersetup
在变量\myname
设置之前调用命令。但是,可以将其放入\AtBeginDocument
命令中以将处理延迟到该点。