Настройка пользовательской команды для имени и адресов электронной почты

Настройка пользовательской команды для имени и адресов электронной почты

Мне нравится настраивать и оптимизировать команды таким образом, чтобы получать тот же результат следующего 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].

Я хочу использовать email профессора как необязательный аргумент в команде \prof, чтобы она не генерировала пустую гиперссылку, если я просто использую команду \prof{Dr. X}. Кроме того, мне нравится оптимизировать , \profmaillocчтобы печатать то же самое, что и \printprofmailмой MWE. Я имею в виду, если email вставлен как , то должен отображаться адрес электронной почты с гиперссылкой, а если email не указан, то не должен ничего печатать.\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 генерирует проблемы с пустым пространством после команд, это также следует исправить.

Связанный контент