              footmisc —

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

Robin Fairbairns^{†}

June 3, 1998

CAVEAT

This package replaces my earlier footnote package, which I have now withdrawn. Please remove all instances of footnote.sty from your system: bug reports for footnote.sty will be ignored.

Support

Some support of this package is available for unchanged copies of the package via email to me at the address given above; it will remain so 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…).

Redistribution and Modification

This package may be freely redistributed; you may not charge for copies other than to recoup your distribution costs. This package may be included in distributions of TEX-ware, provided that no extra charge is made for its inclusion.

If you choose to combine my code with code from any freely-distributable (but non-CopyLeft) source, and you consider that there may be some value in redistributing your modified version, please contact me at the address above.

If you choose to combine my source with code subject to the GNU Public License (CopyLeft), plrease rename the package thus created, and remove my name as its author; if you feel moved to acknowledge my contribution, in some other way, you are welcome so to do.

∗This file has version number v3.3j, last revised 1998/05/12

†University of Cambridge Computer Laboratory, Pembroke St., Cambridge, CB2 3QG, UK (rf@cl.cam.ac.uk)

If I can no longer be contacted via the email address above, or via an address quoted in a revised version of the package to be found on CTAN, you may do what you like about redistribution, so long as you acknowledgement my contribution, as suggested above.

1 User interface

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 very simple — each one is presented as an option in the \usepackage command. For example, to use a useful and consistent set, the author invokes the package with the command

\usepackage[perpage,para,symbol]{footmisc}.

1.1 Option perpage

This option resets footnote numbering for each page of the document. It is derived from pagefoots.sty by Brian T. Schellenberger (bts@unx.sas.com), but I’ve done quite a lot of L^{A}TEX(2ε)-isation of the code. It needs 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 Options PPwarn and PPaux

Bugs in this code have been known in the past to cause the process of re-running L^{A}TEX to eliminate ‘Label(s) may have changed’ messages not to terminate. The author fondly believes (after yet another campaign starting in the Christmas holiday of 1996) that he has finally squashed all those bugs.

Notwithstanding, being a pragmatic sort of a guy (on a good day), the author makes provision for these two debugging options. PPwarn makes record (‘Package footmisc warning’) in the log of a footnote whose processing is in error, giving the apparent page on which it appears, its ‘natural’ number, and its recorded value (or the fact that it doesn’t seem to have a recorded value). The warnings sometimes mention that the footnote is ‘unprocessed’; this can happen in two situations:

• when there’s no mention of the footnote in any .aux file, in which case the footnote is reported as ‘not recorded’, and • when the footnote has somehow got awry despite being in a file excluded from

the present run by virtue of its omission from an \includeonly command.

The PPaux option writes even more cryptic debugging messages to the .aux file; these are really only of any use to one who is conversant with the extraordinary inner workings of the perpage option.

Since the warnings can only be regarded as distractions for the ordinary user, and the .aux output is a mere inefficiency in the ordinary course of events, their very existence is suppressed in the distribution of the package. Budding macrodebuggers should enable docstrip option PPdebug in file footmisc.ins to cause their code to be generated, or use the alternative installation file footmisc.din that is created by the basic installation process.

1.3 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. This arrangement can save considerable space, but one should bear in mind Jill Knuth’s admonition on page 125 of the TEXbook: Don’t use footnotes in your books, Don. 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. One imagines that even Jill Knuth would accept such usage…

1.4 Option symbol

This option causes footnotes within the document to be ‘numbered’ with symbols rather than numbers; since the symbol set (derived from command \fnsymbol) is somewhat restricted (it contains only 9 distinct symbols, and does not wrap round), this option only makes sense in documents which have very few footnotes in total, or which invoke option perpage.

1.5 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 (10 and higher) in place of symbols, when the footnote number was too large.

1.6 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.

1.7 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.)
1.8 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.9 Option norule

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

1.10 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.11 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.12 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}

(one assumes that such an author has a multiplicity of footnotes: this sort of case occurs in literary analysis, for example).

What the multiple 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.