Typesetting URLs

URLs tend to be very long, and contain characters that would naturally prevent them being hyphenated even if they weren’t typically set in \ttfamily, verbatim. Therefore, without special treatment, they often produce wildly overfull \hboxes, and their typeset representation is awful.

There are three packages that help solve this problem:

The author of this answer prefers the (rather newer) url package (directly or indirectly); both path and url work well with Plain TeX (though of course, the fancy LaTeX facilities of url don’t have much place there). (hyperref isn’t available in a version for use with Plain TeX.)

Note that neither \path (from package path) nor \url (from package url) is robust (in the LaTeX sense). If you need a URL to go in a moving argument, you need the command \urldef from the url package. So one might write:

\urldef\faqhome\url{http://www.tex.ac.uk/faq}
after which, \faqhome is robust.

Documentation of both package path and package url is in the package files.

hyperref.sty
hyperref
miniltx.tex
Distributed as part of graphics-plain
path.sty
path
url.sty
url