私は、教授の名前と電子メールを挿入するための別のコマンドを使用せずに、次の MWE と同じ出力が得られるようにコマンドを設定および最適化することを好みます。
\documentclass{report}
\usepackage{xparse}
\usepackage{hyperref}
\newcommand{\profname}[1]{ \newcommand{\profnameloc}{#1} }
\newcommand{\profemail}[1]{ \newcommand{\profemailloc}{#1} }
\NewDocumentCommand\printprofemail{O{}O{}}{
\texttt{\href{mailto:\profemailloc}{\profemailloc}}
}
\NewDocumentCommand{\prof}{mO{}}{\newcommand\profloc{\textbf{\href{mailto:#2}{#1}}}}
\begin{document}
\title{Custom Command}
\prof{Dr. X}[[email protected]]
\profname{Dr. X}
\profemail{[email protected]}
\maketitle
The course is taught by \profloc. His name is \profnameloc and his email is \printprofemail.
\end{document}
つまり、私が望む入力は次のとおりです。
\documentclass{report}
% [necessary packages and commands]
\begin{document}
\title{Custom Command}
\prof{Dr. X}[[email protected]]
\maketitle
The course is taught by \profloc. His name is \profnameloc and his email is \profemailloc.
\end{document}
私が望む出力は次のようになります:
The course is taught by (Dr. X)[textbf and hyperlinked]. His name is Dr. X and his email is ([email protected])[texttt and hyperlinked].
\prof
コマンド だけを使用する場合に空のハイパーリンクが生成されないように、コマンドで教授の電子メールをオプションの引数として使用したいと思います\prof{Dr. X}
。また、 を最適化して、 MWE と\profmailloc
同じように印刷したいと考えてい\printprofmail
ます。つまり、電子メールが のように挿入された場合、ハイパーリンク付きの電子メール アドレスが表示され、電子メールが指定されていない場合は、何も印刷されません。\prof{Dr. X}[[email protected]]
\profemailloc
\profemailloc
\prof{Dr. X}
の代わりに を使用した場合の望ましい出力は次のとおりです。\prof{Dr. X}[[email protected]]
The course is taught by (Dr. X)[textbf but not hyperlinked]. His name is Dr. X and his email is .
また、現在の MWE ではコマンドの後に空白スペースの問題が発生することにも注意してください。これも修正される必要があります。