Configurando comando personalizado para nome e e-mails

Configurando comando personalizado para nome e e-mails

Gosto de configurar e otimizar os comandos de forma que a mesma saída do MWE a seguir seja obtida sem usar comandos separados para inserir o nome e email do professor.

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

Quero dizer, minha entrada desejada:

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

Minha saída desejada é como:

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

Quero usar o e-mail do professor como um argumento opcional no comando, \profde forma que ele não gere um hiperlink em branco se eu apenas usar o comando \prof{Dr. X}. Além disso, gosto de otimizar para \profmaillocimprimir igual ao \printprofmailmeu MWE. Quer dizer, se o e-mail for inserido como , então deverá exibir o endereço de e-mail com hiperlink e se o e-mail não for fornecido, não deverá imprimir nada.\prof{Dr. X}[[email protected]]\profemailloc\profemailloc

Minha saída desejada if \prof{Dr. X}é usada em vez de :\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 .

Deve-se notar também que meu MWE atual gera problemas de espaço em branco após os comandos, estes também devem ser corrigidos.

informação relacionada