When trying to write an e-mail address, there are always problems with the @ sign.
Solutions I've seen suggested are using some verbatim environment (more difficult in footnotes) and using a math-mode @.
What is the correct way to do this?
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It only takes a minute to sign up.
Sign up to join this communityWhen trying to write an e-mail address, there are always problems with the @ sign.
Solutions I've seen suggested are using some verbatim environment (more difficult in footnotes) and using a math-mode @.
What is the correct way to do this?
Another thing one can to with the hyperref package is to use the href
command
\href{mailto:[email protected]}{[email protected]}
which has the advantage that when clicked-on in an electronic document, it will (ideally) call up the mailer and cue up the e-mail address.
\email
command that expands to your \href
, automatically prepending the mailto:
part.
Jul 27, 2010 at 7:53
hyperref
.
Feb 4, 2014 at 13:35
\href
link always redirects me to an email client, which I do not use! So it makes more sense for me if I can just click on the email address and it is copied to my clipboard! Is it even possible in LaTeX
? Thanks!
\newcommand{\email}[1]{\href{mailto:#1}{#1}}
somewhere in your preamble, that'll do just fine.
You can also combine the hyperref
and url
approaches to get a working link that is formatted like an URL:
\href{mailto:[email protected]}{\nolinkurl{[email protected]}}
Just to add to Willie's good answer, in terms of the formatting (as the OP seems to be getting at) there isn't a "correct" way. Use \textsf
or \texttt
or whatever looks good for your particular document and use case and font choice. Also try the randtext
package to attempt to obfuscate the email address inside the PDF to make it less susceptible to spammers (but note that — I think — it doesn't play nice with hyperref's \href
).
If you want to "special-case" the @ sign without adding markup to your text, you could write something like this:
\documentclass{article}
\usepackage{color,hyperref}
\catcode`\_=11\relax
\newcommand\email[1]{\_email #1\q_nil}
\def\_email#1@#2\q_nil{%
\href{mailto:#1@#2}{{\emailfont #1\emailampersat #2}}
}
\newcommand\emailfont{\sffamily}
\newcommand\emailampersat{{\color{red}\small@}}
\catcode`\_=8\relax
\begin{document}
\email{[email protected]}
\end{document}
where you get the proper hyperlinking of the email address and you can customise the look of the email by changing \emailfont
and the look of the ampersat (or arrobase, or @) by changing \emailampersat
.
randtext
was exactly what I needed. Just curious... does your command still produce a working hyperlink if I wrap a randtext{}
around it? I suppose not...
Jun 4, 2017 at 9:48
You can define \at
command in the preamble:
\newcommand{\at}{\makeatletter @\makeatother}
and then use it as follows within the document:
myemail\at gmail.com
@
in \at
is the catcode that was set for @
at the time of the definition. If the catcode of @
should be "letter", then it is defined via \makeatletter\newcommand*{\at}{@}\makeatother
. However, the catcode "letter" or "other" does not matter here, thus \newcommand*{\at}{@}
would be enough or just using @
.
Feb 4, 2014 at 15:26
I know that you think you know what I said. But I'm not sure whether you understood that what you heard is what I meant.
If you don't like how the at-symbol of the default font looks (I don't), you may borrow it from the Times font, like so: youraddres{\fontfamily{ptm}\selectfont @}example.com
For the @
character I prefer the \MVAt
command from the marvosym
package, since the cmss @
looks so different from other fonts I'm used to. For the full address I use the hyperref
formatting suggested by Willie.
I don't think that there is a unique correct way to handle this. As another answer says, you can use hyperref. But, the url package can also be used to render email addresses:
\documentclass{article}
\usepackage{url}
\begin{document}
\url{[email protected]}
\end{document}
\url
because it will attempt to create a hyperlink to an actual URL with the email address you supply. See Caramdir's answer for a better solution.
Aug 18, 2010 at 10:11
\url
from the url package, not from hyperref.
\url
with the hyperlinked one. The point is that \url
is not semantically designed for email addresses.
Aug 19, 2010 at 3:32
url
via \DeclareUrlCommand\email{}
and used as \email{[email protected]}
.
Feb 4, 2014 at 15:29
I defined a command, to avoid the redundancy of Willie Wong's and Caramdir's answers, and to allow protocols other than mailto
:
\usepackage{hyperref}
\usepackage{xstring}
\newcommand{\thelink}{\@empty}
\newcommand{\link}[2]{%
\IfSubStr{#1}{:}{\renewcommand\thelink{#1}}{\renewcommand\thelink{#1:#2}}%
\href{\thelink}{\texttt{#2}}%
}
There's a long form, where the URL is different than the text, and the short form, where the protocol is catenated with the text to make up the URL:
Phone: \link{tel:1234567890}{+1 234-567-890} \\
E-mail: \link{mailto}{[email protected]}
Produces this result:
I use \texttt
instead of \nolinkurl
, because the latter removed spaces from the supplied text.
There are a number of things that you can try:
(with the hyperref package):
\url{email address}
or more simply (for monospace font):
\texttt{email address}
\url
because it will attempt to create a hyperlink to an actual URL with the email address you supply. See Caramdir's answer for a better solution.
Aug 18, 2010 at 10:10