              footmisc —

a portmanteau package for customising footnotes in L^{A}TEX^{∗}

Robin Fairbairns^{†}

May 2, 2004

Support

Some support of this package is available for unchanged copies of the package via email to me at the address given in the footnote. Support will remain available at least as long as the address remains valid. I don’t guarantee anything, but I will probably look at any bug reports you may submit, and may correct problems reported (either in my code or in yours…).

Copyright statement

Program: footmisc.dtx

Copyright 1995 1996 1998 1999 2001–2003 Robin Fairbairns

This program may redistributed and/or modified under the terms of the La-TeX Project Public License in file lppl.txt (available from CTAN directory macros/latex/base; either version 1.2 of the License, or (at your option) any later version.

1 User interface — package options

The footmisc package provides several different customisations of the way foonotes are represented in L^{A}TEX 2ε documents (the sources of the code in this package are various, but all of it has been massaged by the author; where the code comes from elsewhere, there are attributions given below, somewhere or other).

The interface to the package’s options is mostly rather simple — each one is presented as an option in the \usepackage command, and for most, nothing else needs to be done. For example, to use a useful and consistent set, the author invokes the

package with the command \usepackage[perpage,para,symbol*]{footmisc}.

For a small number of options, there are additional parameters available; these are described in the subsections below.

∗This file has version number v5.3c, last revised 2004/05/02

†University of Cambridge Computer Laboratory, William Gates Building, J. J. Thompson Avenue, Cambridge, CB2 0FD, UK (rf10<at>cam.ac.uk)

1.1 Option perpage

This option resets footnote numbering for each page of the document. It needs at least two passes to do this correctly (though it comes as close as possible on the first pass). You generally have to make two passes with L^{A}TEX anyway, to get the cross-references right, so an additional pass for this purpose shouldn’t cause any additional problem. The option includes code to report that ‘Label(s) may have changed’, which will help the poor user to realise that (yet) another run is in order.

1.2 Option para

This option (derived from code by Dominik Wujastyk and Chris Rowley) causes footnotes to be typeset as a single paragraph at the bottom of the page on which they occur. In the case that there is only one footnote on the page, no effect will be observed. However, if there are several footnotes on the page, they will be run together in the page foot, each introduced by its footnote mark. The original demand for the option came from the needs of those preparing critical editions; such documents typically have large numbers of small footnotes, which look ridiculous if each is typeset in a paragraph of its own; in most other disciplines, such multiplicities of footnotes represent mere self-indulgence: the author of this package is disgracefully guilty of this.

1.3 Option side

This option (suggested by Frank Mittelbach) causes footnotes to be typeset using the \marginpar command: this has the advantage that the note appears close to its “call-up”, but has all the disadvantages associated with the \marginpar command (which consumes ‘float’ slots, and doesn’t always place itself correctly at the top of pages in two-sided documents). Since the measure in which the footnote is to be typeset is likely to be pretty narrow, users of the side option are recommended also to use the ragged option, to avoid ugly spacing and line breaks.

There is a further problem (apart from the occasional failure to place the marginal note on the correct side of the page) in two-sided documents: one would like ‘raggedness’ to appear differently in different margins (setting the left, rather than the right, side ragged in the left margin). (The author would welcome suggestions on means of addressing the problem.)

1.4 Option ragged and \footnotelayout

The package provides facilities for ragged right setting of footnotes (so long as the para option isn’t in effect). The change is effected by use of the command \footnotelayout; the package inserts this command into the start of the argument of \footnotetext (in effect: \footnote works, roughly, by calling the guts

of \footnotetext at its end).

If you want to use some special effect other than ragged right, feel free to change \footnotelayout yourself: some intriguing (and completely undesirable) results are no doubt available. The ragged option simply sets \footnotelayout to \raggedright. (Hint: if you intend to use the ragged2e package, load it before footmisc — if footmisc finds \RaggedRight available, it uses it in place of

\raggedright.)

1.5 Option symbol

This option simply establishes that footnotes are “labelled” by a symbol sequence. The command used is equivalent to that suggested in L^{A}TEX manuals such as Lamport’s )the job performed by the option is very simple, and doesn’t really need a package).

Using symbols to ‘number’ your footnotes can be problematic: there is a limited number of symbols, and L^{A}TEX will report an error if your footnotes exceed that limit. To avoid such problems, consider the symbol* option, or the \setfnsymbol command (see the next two sections), or number your footnotes by the page (see section 1.1).

1.6 Option symbol*

This is the symbol option, but with protection against the tedium that arises because of the instability of the perpage option. When executing the perpage option, the package often allocates footnotes to the wrong pages, only to correct itself on a later run (having warned the user of the need for the later run with a ‘Label(s) may have changed’ message). In these circumstances the symbol option is prone to producing L^{A}TEX errors, which stop processing, and confound automatic generation procedures. In the same situation, the symbol* option produces information messages and a warning message at end document, and the user may scan the log for those messages after processing has stabilised. The option produces numbers (17 and higher, in the case of the default symbol set) in place of symbols, when the footnote number is too large.

1.7 The \setfnsymbol and \DefineFNsymbols commands

These commands permit the definition and use of alternative (ordered) sets of symbols for numbering footnotes. L^{A}TEX of course comes with such a set readydefined, but the choice of symbols isn’t universally loved.

You may define a set of symbols with the \DefineFNsymbols command. L^{A}TEX’s default set would be defined by the command:

         \DefineFNsymbols*{lamport}{*\dagger\ddagger\S\P\|%
                   {**}{\dagger\dagger}{\ddagger\ddagger}}

Defined this way, the symbol set produces a “counter too large” error; a robust version of the set (cf. the symbol* option (see 1.6) using the \DefineFNsymbols command without the optional *. You may select a set of symbols by use of the \setfnsymbol command; so to restore use of the default set, you would type:

                       \setfnsymbol{lamport}

This package defines a small selection of alternative sets of symbols, using

\DefineFNsymbol:

                      bringhurst ∗ † ‡ § ∥ ¶
                      chicago  ∗ † ‡ § ∥ #

wiley  ∗ ∗∗ † ‡ § ¶ ∥

together with a version of Lamport’s original set that (with doubled versions of § and ¶, and tripled versions of everything but the vertical bars, provides a symbol range to cover counters up to 16.

This last set, known as lamport* is selected as the default symbol set by the package.

1.8 Option bottom

This option forces footnotes to the bottom of the page; this is only noticeably useful in case that \raggedbottom is in effect, when L^{A}TEX would normally set the footnotes a mere \skip\footins distant from the bottom of the text.

There’s a further infelicity in L^{A}TEX’s placing of footnotes of the bottom of pages: if a bottom float appears on a page, L^{A}TEX places the footnote above it. The bottom option places the footnote at the foot of the page.

1.9 Option marginal

This option adjusts the position of footnote mark relative to the start of the line in which they appear (the the option is incompatible with option para, for obvious reasons).

When this option is in effect, the footnote is set \footnotemargin relative to the left margin of the page; the default setting for \footnotemargin is -0.8em, which means that the footnote mark will be set jutting 0.8em into the margin. If \footnotemargin is a positive length, the footnote mark will be set with its right edge \footnotemargin from the margin. (In the absence of the option, \footnotemargin is set to 1.8em; you may change that value with a \setlength command.)

1.10 Option flushmargin

This option is as option marginal, but sets the footnote marker flush with, but just inside the margin from, the text of the footnote.

1.11 Option hang

This option sets the footnote mark flush with the margin, and makes the body of the footnote hang at an indentation of \footnotemargin (if that is a positive distance), or the width of the marker (if \footnotemargin≤ 0). The option code itself leaves \footnotemargin at its default value of 1.8em.

The footnote itself may of course be longer than one paragraph; if so, the paragraphs will be separated by the vertical space specified by \hangfootparskip, and the second and subsequent paragraphs are indented by \hangfootparindent. Default values are:

    \hangfootparskip  0.5\baselineskip \hangfootparindent 0em The user may redefine these val-

ues (using \renewcommand): it is best to use the font-size-dependent measures (multiples of \baselineskip for the skip, multiples of em for the indent). Note that the default has only one of the two values non-zero; both zero may result in easily-missed paragraph breaks, and both non-zero is not generally thought to be a good-looking option.

1.12 Option norule

This option suppresses the ‘normal’ footnote rule, and advances \skip\footins a bit to compensate

1.13 Option splitrule

This option makes puts a full-width rule above the split-off part of a split footnote. (Remember that split footnotes don’t happen if you’re doing paragraph footnotes.)

The option provides three different \footnoterule commands:

\mpfootnoterule  for use in minipages
\pagefootnoterule for normal footnotes on regular pages
\splitfootnoterule for the tail of a split footnote

By default, \mpfootnoterule and \pagefootnoterule retain the original definition of \footnoterule (which nay have been modified by a norule option), while \splitfootnoterule becomes a full-width rule.

1.14 The stable option

This option deals with the problem of placing footnotes in section titles (and so on). While there is (sometimes, just) justification for putting footnotes in titles, L^{A}TEX’s treatment of the content of titles militates against them. Of course, the title argument is ordinarily a moving one, and \footnote is a fragile command, but the real problem comes from the way the argument actually moves — which is to two places. The argument moves to the table of contents, where the footnote will (at least) look odd. But the argument also moves to the marks that make up page headers, etc., and there it creates havoc, since page headers are executed in page make-up, and page make-up must not create footnotes.

If you use the stable option, the footnote won’t move to the table of contents or the page headers, but it will be typeset correctly within the title itself.

The situation with \footnotemark is less dire (it could in principle appear in page headers, for example); footnote marks appearing on pages other than where their text appears are none the less confusing, and the stable option treats \footnotemark in the same way that it treats \footnote.

1.15 The multiple option

This option deals with the case where the author needs to type things like

   mumble\footnote{blah}\footnote{grumble}

Without special treatment, L^{A}TEX would output something like

mumble^{1314}

What the multiple option makes of the above is

mumble^{13,14}

which is what most people would expect. The comma separator actually derives from the definition of \multfootsep, which may be changed by \renewcommand if the option is in effect.

The option also treats \footnotemark in the same way.

1.16 User interface — miscellaneous commands

The package also defines some miscellaneous footnote-related commands. The present group provides alternative means of producing footnote marks: \footref

and \mpfootnotemark.

When you’re in a minipage, \footnote numbers run according to the minipage’s own footnote counter, and the marks are set in italic letters. However, the numbers used by \footnotemark make reference to the ‘main’ footnote counter, and are set in whatever is the current style for that: this behaviour often surprises, and there’s no obvious way in standard L^{A}TEX to “get around” it. The command \mpfootnotemark gets around this problem in a minipage, by generating footnote marks in the same way as those used by \footnote.

In fact, making reference to footnotes in general can be problematic: it can be done by noting down the value of the footnote marker in a counter (or the like) and then using the value in a subsequent \footnotemark or \mpfootnotemark. This is a tedious way of going about things, and doesn’t allow representation of all possible forms of footnote mark; \footref is a form of reference command that sets the reference as if it were a footnote. The label should be set within the argument of the footnote command that is being labelled:

 ...\footnote{Note text\label{fnlabel}}
 ...
 ... potato head\footref{fnlabel}

2 User interface — interactions with other packages

The footmisc package modifies several parts of the L^{A}TEX kernel; what gets modified depends on the options you select. This behaviour can cause problems with other packages, particularly those that also modify the kernel.

Known interactions are:

setspace The setspace package modifies the line spacing is calculated in footnotes. Footmisc knows about this, and preserves the change. However, you must load setspace before footmisc.

hyperref The hyperref package has ambitions to make hyperlinks from footnote marks to the corresponding footnote body; naturally this causes grief to footmisc, and unfortunately no remedy is currently known. If you use footmisc, suppress hyperref’s hyper-footnotes, by loading it as:

     \usepackage[hyperfootnotes=false,...]{hyperref}

Further work on the interaction between the two packages is proposed, but not yet scheduled. manyfoot The manyfoot package permits several independent sequences of foot-

notes. Some preliminary work towards interworking with footmisc has been completed, but more remains to be done at the time of writing.