多封电子邮件文本的服务器名称部分没有超链接

多封电子邮件文本的服务器名称部分没有超链接

我正在尝试获得类似于{name1, name2}@server.comwherename1和的name2超链接。这是我的代码:[email protected][email protected]

\usepackage{hyperref}

\{\href{mailto:[email protected]}{name1}
\href{mailto:[email protected]}{name2}\}@server.com

但在输出中,}@server.com还有一个链接}@server.com。我发现的唯一解决方案是在和之间留一个空格}@但我不喜欢这样。有没有办法禁用的超链接,以便@输出为{name1, name2}@server.comname1具有name2和的超[email protected]链接[email protected]

答案1

这是 PDF 查看器的启发式方法,可将“}@server.com”转换为链接。至少在 AR9/Linux 中,如果点来自不同的字体(例如数学字体),则启发式方法会被击败:

\documentclass{article}
\usepackage{hyperref}
\begin{document}
\{\href{mailto:[email protected]}{name1},
\href{mailto:[email protected]}{name2}\}@server$.$com
\end{document}

使用不可见的显式空格字符的不同方法

下一个示例在后面插入一个明确的空格字符,@以欺骗启发式方法,使其看到}@ server.com而不是}@server.com

\documentclass{article}
\usepackage{hyperref}

\newfont{\spacefont}{phvr8r}
\newcommand*{\dummyspace}{%
  \leavevmode
  \rlap{\spacefont\symbol{32}}%
}

\begin{document}
\{\href{mailto:[email protected]}{name1},
\href{mailto:[email protected]}{name2}\}@\dummyspace server.com
\end{document}

评论:

  • 显式空格字符有点棘手,因为 TeX 通常用水平跳过空格替换空格。因此,我使用了另一种字体,该字体在位置 32(空格)处有一个空格字符。

(在 TeX Live 2014 的 pdfTeX 3.14159265-2.6-1.40.15 预发布版本中,它触发了一个错误,请参阅pdfTeX 邮件列表上的错误报告。该错误现已(2014-05-23)修复。)

相关内容