LaTeX’s labelling mechanism is designed for the impersonal world of the academic publication, in which everything has a number: an extension is necessary if we are to record the name of things we’ve labelled. The two packages available extend the LaTeX sectioning commands to provide reference by the name of the section.
The titleref package is a simple extension which provides
the command \titleref
; it is a stand-alone package — don’t use it
in a document in which you also need to use hyperref.
The byname package is part of the smartref bundle and works well with smartref, and works (to an extent) with hyperref, but the links it defines are not hyperlinks.
The memoir class incorporates the functionality of titleref, but doesn’t work with byname (though a search of comp.text.tex on groups.google.com will find a patch to byname to remedy the problem).
The hyperref bundle includes a package nameref, which will work standing alone (i.e., without hyperref: of course, in this mode its references are not hyperlinked). If you load hyperref itself, nameref is automatically loaded. Memoir requires the memhfixc when running with hyperref; following the sequence:
nameref commands may be used in a memoir document.\documentclass[...]{memoir} ... \usepackage[...]{hyperref} \usepackage{memhfixc}
Zref defines a proposed replacement for all of the LaTeX reference mechanisms, and among other things provides name-referencing mechanisms:
(One might hope that something of this sort would be the “way of the future”, but things move slowly in the LaTeX world: don’t hold your breath.)\usepackage[user,titleref]{zref} ... \section{hello}\zlabel{sec:one} The section name is: \ztitleref{sec:one}.
Each of titleref, byname and nameref
defines a reference command with the same name as the package:
\titleref
, \byname
and \nameref
. The nameref
package also defines a command \byshortnameref
, which uses the
optional ‘short’ title argument to the chapter and section commands.
(Although it comes from the same author, zref doesn’t
define a short-name variant.)
This question on the Web: http://www.tex.ac.uk/cgi-bin/texfaq2html?label=nameref