如何在 LaTeX 中创建带有预定义主题的电子邮件超链接?

如何在 LaTeX 中创建带有预定义主题的电子邮件超链接?

我想知道您是否可以在 PDF 中包含一个电子邮件超链接,这样不仅可以打开带有指定邮件地址的邮件应用程序,还可以插入我在 LaTeX 中指定的主题?

我发现了一些提示正确方向的东西,但是我似乎无法让它工作。有一个“pracjourn”类,它应该在以下宏中实现这一点http://ctan.uib.no/macros/latex/contrib/pracjourn/pracjourn.pdf(第 15 页):

此宏使用三个参数来排版 mailto 电子邮件超链接。#1 取电子邮件地址,#2 取电子邮件的默认主题,#3 是作为超链接出现在输出中的文本。

230 \newcommand\tpj@compose@mailto[3]{%
231 \edef\@tempa{mailto:#1?subject=#2 }%
232 \edef\@tempb{\expandafter\html@spaces\@tempa\@empty}%
233 \href{\@tempb}{#3}}

我真的不知道该用那个宏做什么...即使使用 pracjourn 类也不支持这个命令,这显然是由于命令名称中的 @,我只能猜测,这不是为 LaTeX 准备的,而是为 TeX 准备的?!

答案1

您复制的代码片段并不完整。如果您查看 pdf,您会发现还有几行。

我把所有内容放在一起,形成了一个编译的MWE:

\documentclass{report} 

\usepackage{etoolbox}
\makeatletter
\newcommand\myemail[3]{%                %\newcommand\tpj@compose@mailto[3]{%
\edef\@tempa{mailto:#1?subject=#2 }%
\edef\@tempb{\expandafter\html@spaces\@tempa\@empty}%
\href{\@tempb}{#3}}

\catcode\%=11
\def\html@spaces#1 #2{#1%20\ifx#2\@empty\else\expandafter\html@spaces\fi#2}
\catcode\%=14
\makeatother

\usepackage{hyperref}


\begin{document}
\section{Test Email}

An email adress: \myemail{[email protected]}{Subjekt}{Text in pdf}

\end{document}

我将宏重命名为\myemail,它需要 3 个参数,要发送到的电子邮件地址 ( [email protected])、主题 ( Subjekt) 和要在链接的结果 PDF 中显示的文本 ( Text in pdf)(如果您愿意,可以是电子邮件地址)。宏\html@space将空白更改为%20

相关内容