Benutzerdefinierten Befehl für Namen und E-Mails konfigurieren

Benutzerdefinierten Befehl für Namen und E-Mails konfigurieren

Ich möchte die Befehle so konfigurieren und optimieren, dass die gleiche Ausgabe des folgenden MWE erzielt wird, ohne dass separate Befehle zum Einfügen des Namens und der E-Mail-Adresse des Professors verwendet werden müssen.

\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}

Ich meine, meine gewünschte Eingabe:

\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}

Meine gewünschte Ausgabe ist wie folgt:

The course is taught by (Dr. X)[textbf and hyperlinked]. His name is Dr. X and his email is ([email protected])[texttt and hyperlinked].

Ich möchte die E-Mail-Adresse des Professors als optionales Argument im Befehl verwenden \prof, sodass kein leerer Hyperlink generiert wird, wenn ich nur den Befehl verwende \prof{Dr. X}. Außerdem möchte ich den so optimieren, dass er \profmaillocgenauso ausgedruckt wird wie \printprofmailmein MWE. Ich meine, wenn die E-Mail wie eingefügt wird , sollte die E-Mail-Adresse mit Hyperlink angezeigt werden, und wenn die E-Mail nicht angegeben ist, sollte nichts ausgedruckt werden.\prof{Dr. X}[[email protected]]\profemailloc\profemailloc

Meine gewünschte Ausgabe, wenn \prof{Dr. X}stattdessen verwendet wird :\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 .

Es sollte auch beachtet werden, dass mein aktuelles MWE nach den Befehlen Probleme mit Leerzeichen generiert. Diese sollten ebenfalls behoben sein.

verwandte Informationen