![如何在 LaTeX 中创建带有预定义主题的电子邮件超链接?](https://linux22.com/image/273672/%E5%A6%82%E4%BD%95%E5%9C%A8%20LaTeX%20%E4%B8%AD%E5%88%9B%E5%BB%BA%E5%B8%A6%E6%9C%89%E9%A2%84%E5%AE%9A%E4%B9%89%E4%B8%BB%E9%A2%98%E7%9A%84%E7%94%B5%E5%AD%90%E9%82%AE%E4%BB%B6%E8%B6%85%E9%93%BE%E6%8E%A5%EF%BC%9F.png)
我想知道您是否可以在 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
。