summaryrefslogtreecommitdiff
path: root/usergrps/uktug/baskervi/5_5/hhmuf.sty
diff options
context:
space:
mode:
Diffstat (limited to 'usergrps/uktug/baskervi/5_5/hhmuf.sty')
-rw-r--r--usergrps/uktug/baskervi/5_5/hhmuf.sty600
1 files changed, 600 insertions, 0 deletions
diff --git a/usergrps/uktug/baskervi/5_5/hhmuf.sty b/usergrps/uktug/baskervi/5_5/hhmuf.sty
new file mode 100644
index 0000000000..2af77a1a0f
--- /dev/null
+++ b/usergrps/uktug/baskervi/5_5/hhmuf.sty
@@ -0,0 +1,600 @@
+% MULTINOTE (MUF) MACROS for LaTeX2e, version 1.11,
+% written by Herman Haverkort, 13 may 1995
+% See end of file for information on warranty, distribution etc.
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{hhmuf}[1995/05/13 Multinote system]
+\RequirePackage{hhqueue}[1995/02/14]
+\RequirePackage{hhutils0}[1995/03/08]
+
+% =============================================================================
+% - \muf... (to set footnotes)
+%
+% \muf:{TEXT} for a ordinary footnote
+% \muf LABEL:{TEXT} for a footnote which is labelled LABEL,
+% to make it possible to reuse the footnote
+% later on by stating:
+% \muf LABEL:{} which sets the previously defined footnote
+% labelled LABEL.
+% Labels should not contain commas, periods or colons!
+% If you use the same footnote several times, the multinote macros try
+% to ensure that the actual footnote text appears at most once on
+% every page.
+% =============================================================================
+
+\long\def\muf#1:#2{\@covermufpunct{%
+ \h@ifespecified{#1}{\@mufsymonly #1:{#2}\muftxtonly #1:}%
+ {\@mufsymonly tmp@:{#2}\muftxtonly tmp@:\muffire tmp@:}}}
+% If no label is specified, a temporary label is used.
+
+% =============================================================================
+% - \mufsym... (to postpone the setting of footnote texts)
+%
+% If you use \mufsym instead of \muf, only the footnote's marker will be
+% set. The footnote text itself will not be set until \muffin is called.
+% \mufsym's syntax is similar to \muf's: you can use \mufsym:{TEXT},
+% \mufsym LABEL:{TEXT} and \mufsym LABEL:{}. \mufsym is especially useful
+% for footnotes in `forbidden' environments, like tables and parboxes.
+% Just say \mufsym in the forbidden environment, and call \muffin as soon
+% as you get out of it.
+% =============================================================================
+
+\long\def\mufsym#1:#2{\@covermufpunct{%
+ \h@ifespecified{#1}{\edef\@@@lab{#1}}%
+ {\stepcounter{@muftmps}\edef\@@@lab{tmp@\roman{@muftmps}}}%
+ \h@enqueue{@@@lab}{mufs@postponed}%
+ \@mufsymonly \@@@lab:{#2}}}
+% If no label is specified, one of the temporary labels tmp@i, tmp@ii etc.
+% is used. The label is appended to the list of postponed footnotes.
+
+% =============================================================================
+% - \muffin (to set postponed footnote texts)
+%
+% \muffin sets all footnote texts which were postponed by using \mufsym
+% since the last call to \muffin.
+% =============================================================================
+
+\def\muffin{{%
+ \@muffin
+ \setcounter{@muftmp}{0}%
+ \@whilenum \value{@muftmp}<\value{@muftmps}\do
+ {\stepcounter{@muftmp}\muffire tmp@\roman{@muftmp}:}%
+ \setcounter{@muftmps}{0}}}
+\def\@muffin{%
+ \h@ifqnonempty{mufs@postponed}{%
+ \h@getfirst{@@@lab}{mufs@postponed}%
+ \muftxtonly \@@@lab:%
+ \@muffin}}
+% \muffin calls \@muffin to set alle postponed footnotes. Then it frees
+% all temporary labels and the markers assigned to them.
+
+% =============================================================================
+% - \mufoff
+%
+% The \mufoff macro makes handling forbidden environments even easier
+% than \mufsym. This is the way to use it:
+% \begin{ForbiddenEnvironment}
+% \mufoff
+% Lots of bla, possibly containing calls to \muf with fingers itching
+% to set a footnote. However, \mufoff guarantees that those footnotes
+% will be postponed like \muf were \mufsym.
+% \end{ForbiddenEnvironment}
+% \muffin
+%
+% Nesting several forbidden environments which all insist on calling
+% \mufoff and \muffin is no problem. \mufoff redefines \muffin to do
+% nothing, so that only the outer \muffin will result in an attempt
+% to set footnotes, and that is exactly what should be done.
+% =============================================================================
+% - \mufoff[ENVIRONMENTNAME]
+%
+% \mufoff[ENVIRONMENTNAME] makes handling forbidden environments even
+% easier than basic \mufoff en \muffin. Type \mufoff[ForbiddenEnvironment]
+% and all multinotes between \begin{ForbiddenEnvironment} and
+% \end{ForbiddenEnvironment} will be postponed to just after closing
+% the forbidden environment.
+% For example: if you type \mufoff[tabular] in the preamble of your
+% document, then \muf's in the tabular environment will be handled
+% correctly automatically. Because that is so useful I already included
+% it in this style file, like I did with \mufoff[array] and
+% \mufoff[eqnarray].
+% =============================================================================
+
+\def\mufoff{\@ifnextchar[\@mufoff{\def\muf{\mufsym}\def\muffin{}}}
+\def\@mufoff[#1]{% Stole a great deal of this macro from
+ % Kresten Krab Thorup's ftn.sty!
+ \@ifundefined{h@mf@#1}{%
+ \expandafter\let\csname h@mf@#1\expandafter\endcsname
+ \expandafter=\csname #1\endcsname
+ \expandafter\let\csname h@mf@end#1\expandafter\endcsname
+ \expandafter=\csname end#1\endcsname
+ \@namedef{#1}{\bgroup\mufoff\@nameuse{h@mf@#1}}%
+ \@namedef{end#1}{\@nameuse{h@mf@end#1}\egroup\muffin}}{}}
+
+\mufoff[tabular]
+\mufoff[array]
+\mufoff[eqnarray]
+\mufoff[minipage]
+
+% - \mufhire LABEL:{TEXT} (to define a footnote)
+%
+% The footnote labelled LABEL will be defined, but neither the text
+% nor the marker will be set.
+% =============================================================================
+
+\long\def\mufhire#1:#2{{%
+ \edef\@@@lab{#1}%
+ \h@ifnonempty{mufgrp@\@@@lab}%
+ {\PackageWarning{hhmuf}{Refusing to redefine multinote `#1'.\MessageBreak
+ Muffire it first}}%
+ {\h@ifqempty{mufsyms@avail}%
+ {\PackageWarning{hhmuf}{Out of multinote symbols.\Messagebreak
+ Using `?' instead}%
+ \@namexdef{mufsym@\@@@lab}{?}}%
+ {\h@getfirst{mufsym@\@@@lab}{mufsyms@avail}}%
+ \h@enqueue{@@@lab}{mufgrp@\arabic{@mufgrplevel}}%
+ \@namexdef{mufgrp@\@@@lab}{\arabic{@mufgrplevel}}%
+ \@namegdef{muftxt@\@@@lab}{#2}%
+ \@namexdef{mufpag@\@@@lab}{}}}}
+% If footnote symbols are available, the first one is chosen from the
+% symbol queue \mufsyms@avail. The footnote text is stored and the
+% page identifier is reset (see \muftxtonly for further explanation)
+
+% =============================================================================
+% - \muffire LABEL: (to undefine a footnote)
+%
+% \muffire frees the footnote's label and marker, to enable their use
+% for footnotes which will be defined later on.
+% =============================================================================
+
+\def\muffire#1:{{%
+ \edef\@@@lab{#1}%
+ \h@ifnonempty{mufgrp@\@@@lab}%
+ {\edef\@tempa{\@arabic{\c@@mufgrplevel}}%
+ \edef\@tempb{\@nameuse{mufgrp@\@@@lab}}%
+ \ifx\@tempa\@tempb
+ \expandafter\ifx\@nameuse{mufsym@\@@@lab}?\else
+ \h@enqueue{mufsym@\@@@lab}{mufsyms@avail}\fi
+ \h@delete{@@@lab}{mufgrp@\arabic{@mufgrplevel}}%
+ \@namegdef{mufgrp@\@@@lab}{}%
+ \else
+ \PackageWarning{hhmuf}{Multinote `#1' was defined at level \@tempb,%
+ \MessageBreak so cannot muffire it at level \@tempa}%
+ \fi}%
+ {\PackageWarning{hhmuf}{Cannot muffire multinote `#1':\MessageBreak
+ it is not defined}}%
+ }}
+% \muffire will free the footnote's label by emptying the footnote text,
+% and free the footnote's marker by appending it to the footnote symbol
+% queue \mufsyms_avail. Thus the available footnote symbols will usually be
+% used in turn, which establishes some nice variation in the type-setting
+% of your article, report or book.
+
+% =============================================================================
+% - \mufsymonly... (to set a footnote's marker without the text)
+%
+% The same as \mufsym, except for the footnote text, which will _not_
+% be set automatically by a following call to \muffin
+% =============================================================================
+
+\def\mufsymonly#1:#2{\@covermufpunct{\@mufsymonly{#1}:{#2}}}
+\def\@mufsymonly#1:#2{%
+ \h@ifspecified{#2}{\mufhire #1:{#2}}{}%
+ \h@ifnonempty{mufgrp@#1}%
+ {\@makemufmark{\@nameuse{mufsym@#1}}}%
+ {\PackageWarning{hhmuf}{Reference to undefined multinote `#1'%
+ \MessageBreak}%
+ \@makemufmark{??}}}
+
+% =============================================================================
+% - \muftxtonly LABEL: (to set a footnote's text without its marker)
+%
+% The footnote text will be set, but no marker will show up at the
+% reference point.
+% =============================================================================
+
+\def\muftxtonly#1:{{%
+ \h@ifnonempty{mufgrp@#1}%
+ {\edef\@tempa{\@arabic{\c@page}}\edef\@tempb{\@nameuse{mufpag@#1}}%
+ \ifx\@tempa\@tempb\else
+ \@mufinsert{\@nameuse{mufsym@#1}}{\@nameuse{muftxt@#1}}%
+ \@namexdef{mufpag@#1}{\@tempa}\fi}%
+ {\PackageWarning{hhmuf}{Cannot type-set multinote `#1':\MessageBreak
+ it is not defined}}}}
+% \muftxtonly checks if the identifier of the current page equals
+% the page identifier which is stored for the footnote to be set.
+% If so, the footnote is already set on this page, so it should not be set
+% again. If not so, it is set, and the current page identifier is stored.
+
+% =============================================================================
+% - \mufbegin{GROUP} (to start a multinote group)
+%
+% See \mufend for explanation
+% =============================================================================
+
+\def\mufbegin#1{%
+ \muffin
+ \stepcounter{@mufgrplevel}%
+ \h@initqueue{mufgrp@\arabic{@mufgrplevel}}{}%
+ \@namexdef{mufgrpname@\arabic{@mufgrplevel}}{#1}}
+% \mufbegin increases the nesting level counter and initializes the list
+% of footnote labels for the new level. It stores the group name for
+% matching it with the \mufend later on.
+
+% =============================================================================
+% - \mufend{GROUP} (to end a multinote group)
+%
+% \mufend sets all postponed footnotes (like \muffin), and then muffires
+% all footnotes which had been defined since the corresponding call to
+% \mufbegin{GROUP}. Thus \mufbegin and \mufend establish some kind of
+% footnote definition environment, called a mufgroup.
+% Mufgroups can be nested, but if you do nest them, nest them properly.
+% So this is not permitted:
+%
+% \mufbegin{A}\mufbegin{B}\mufend{A}\mufend{B},
+%
+% while this is OK:
+%
+% \mufbegin{A}\mufbegin{B}\mufend{B}\mufend{A}.
+%
+% Whenever you enter a new group, a \muffin is performed and then all
+% footnotes which have already been defined are frozen. You cannot fire
+% them until the new group is closed with \mufend. So the following is OK:
+%
+% \mufhire F:{Foo}\mufbegin{B}\mufend{B}\muffire F:
+%
+% while this is not:
+%
+% \mufhire F:{Foo}\mufbegin{B}\muffire F:\mufend{B}
+%
+% Whenever you are in a group, you cannot redefine footnotes which have
+% been defined already in some outer group, because in that case you
+% would have to muffire the footnote, which is not allowed. You cannot
+% even define a new footnote which is local to the group but gets the
+% same label as some footnote which has been defined in some outer group
+% (e.g. a global footnote). The muf macros are not that smart. So the
+% following is not allowed:
+%
+% \mufhire F:{Foo}\mufbegin{A}\mufhire F:{bar}
+%
+% If you have closed all the groups you had opened (or if you never
+% opened any), then you are in the outermost, nameless group. You can
+% close that group with \mufend{}. It will muffire all footnotes you
+% had defined, and automatically reopen a outermost nameless group.
+% So it is a kind of: \muffin \muffire ALL.
+% =============================================================================
+
+\def\mufend#1{{%
+ \edef\@tempa{#1}\edef\@tempb{\@nameuse{mufgrpname@\arabic{@mufgrplevel}}}%
+ \ifx\@tempa\@tempb
+ \muffin
+ {\def\\##1{\muffire ##1:}\h@processq{mufgrp@\arabic{@mufgrplevel}}}
+ \global\advance\c@@mufgrplevel-1
+ \ifnum\value{@mufgrplevel}=0\mufbegin{}\fi
+ \else
+ \PackageWarning{hhmuf}{Refusing to end multinote group \@tempb\
+ by\MessageBreak\protect\mufend{\@tempa}}
+ \fi}}
+
+% ***************************
+% * LAY-OUT *
+% ***************************
+
+% =============================================================================
+% \mufword defines the word which is used in references to multinotes.
+% It is `footnote'; redefine it if you like, preferably by defining the
+% appropriate language option (see below).
+% =============================================================================
+
+\def\mufword{footnote~}
+
+% =============================================================================
+% \@makemufword defines how to format a footnote's marker (in the text, not
+% in the insertion at the foot of the page). Redefine it if you like.
+% =============================================================================
+
+\def\@makemufmark#1{\hbox{$^{#1}$}}
+
+% =============================================================================
+% by default \@covermufpunct will pull periods and commas following a
+% footnote's marker under the marker. With some definitions of \@makemufmark
+% this will not be desirable: \@covermufpunct should be redefined to
+% \def\@covermufpunct{} then.
+% =============================================================================
+
+\def\@covermufpunct#1{\def\next{\@@covermufpunct{#1}}\futurelet\@@@tok\next}
+
+\newcount\@gsavsf
+\def\@@covermufpunct#1{\ifx\@@@tok.\def\next{\@@@covermufpunct{#1}}\else
+ \ifx\@@@tok,\def\next{\@@@covermufpunct{#1}}\else
+ \def\next{#1}\fi\fi\next}
+\def\@@@covermufpunct#1{\global\@gsavsf=\spacefactor
+ \rlap{\spacefactor=\@gsavsf\@@@tok\global\@gsavsf=\spacefactor}\nobreak #1%
+ \spacefactor=\@gsavsf\@gobble}
+
+% =============================================================================
+% \@makemuftext defines how to format a footnote. It takes two arguments:
+% #1 is the footnote's marker; #2 is the footnote text. Redefine it if you like.
+% =============================================================================
+
+\long\def\@makemuftext#1#2{%
+ \sbox\@tempboxa{ $#1$ }%
+ \@tempdima\smallunitindent{\wd\@tempboxa}%
+ \parindent\z@ \parskip\z@
+ \@setpar{%
+ \@@par \@tempdimb\hsize\advance\@tempdimb-\@tempdima
+ \parshape \@ne \@tempdima \@tempdimb}%
+ \par
+ \noindent\llap{\hbox to \smallunitindent\z@{\hss$#1$ \hss}}#2}
+
+\providecommand{\smallunitindent}[1]{10pt}
+% This is to prepare hhmuf for use with the hhtext class (when I write this it's
+% still under construction). The hhtext class will provide a \smallunitindent
+% macro with some self-scaling features.
+
+% =============================================================================
+% The following has been taken from LaTeX2e (\@footnotetext),
+% with the necessary modifications.
+% =============================================================================
+
+\long\def\@mufinsert#1#2{\insert\footins{%
+ \reset@font\footnotesize
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\footnotesep
+ \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
+ \hsize\columnwidth \@parboxrestore
+ \protected@edef\@currentlabel{\mufword\@makemufmark{#1}}%
+ \color@begingroup
+ \@makemuftext{#1}{%
+ \rule\z@\footnotesep\ignorespaces #2\@finalstrut\strutbox}
+ \color@endgroup}}
+
+% ***************************
+% * SOME INTERNAL UTILITIES *
+% ***************************
+
+\long\def\h@ifnonempty#1#2#3{%
+ \@ifundefined{#1}{#3}{\h@ifespecified{\csname #1\endcsname}{#2}{#3}}}
+
+% ******************************
+% * OPTIONS AND INITIALIZATION *
+% ******************************
+
+\newcounter{@muftmps}
+\newcounter{@muftmp}
+\newcounter{@mufgrplevel}
+\h@initqueue{mufs@postponed}{}
+\mufbegin{}
+\AtEndDocument{\mufend{}}
+
+% =============================================================================
+% Below is a list of recognized language options. Probably their only use
+% is the ability to redefine \mufword.
+% =============================================================================
+
+\DeclareOption{dutch}{\def\mufword{voetnoot~}}
+
+% =============================================================================
+% The following specifies the footnote markers which will be used for
+% multinotes. You can replace it with your own specification if you like.
+% Please note that it makes no sense to use symbols with a well-defined
+% order: the muf macros will not respect it.
+% To make it easier to choose out of the numerous possibilities for
+% footnote markers I defined some sets of markers which can be selected by
+% specification of the appropriate option. The recognized options are:
+% - black 8 black symbols (requires amssymb.sty)
+% - circlox 12 circle and box symbols (requires amssymb.sty)
+% - fuss 10 miscellaneous symbols (requires amssymb.sty)
+% - geometry 10 geometrical symbols (requires amssymb.sty)
+% - misc 19 miscellaneous symbols (default)
+% - music 3 music symbols
+% - strokes 8 symbols made of thin strokes (requires amssymb.sty)
+% Take care that you do not select a set which is too small for your purposes.
+% =============================================================================
+
+\def\@@@mufset{\mufset@misc}
+
+\DeclareOption{black}{\def\@@@mufset{\mufset@black}}
+\def\mufset@black{%
+ \RequirePackage{amssymb}
+ \h@initqueue{mufsyms@avail}{% 7 symbols
+ \\{\bullet}\\{\blacklozenge}\\{\blacktriangledown}%
+ \\{\clubsuit}\\{\blacksquare}\\{\blacktriangle}%
+ \\{\blacktriangleleft}\\{\spadesuit}}}
+
+\DeclareOption{circlox}{\def\@@@mufset{\mufset@circlox}}
+\def\mufset@circlox{%
+ \RequirePackage{amssymb}
+ \h@initqueue{mufsyms@avail}{% 12 symbols
+ \\{\oslash}\\{\odot}\\{\boxtimes}\\{\oplus}\\{\square}%
+ \\{\circledast}\\{\boxminus}\\{\otimes}\\{\circledcirc}%
+ \\{\boxdot}\\{\circleddash}\\{\boxplus}}}
+
+\DeclareOption{fuss}{\def\@@@mufset{\mufset@fuss}}
+\def\mufset@fuss{%
+ \RequirePackage{amssymb}
+ \h@initqueue{mufsyms@avail}{% 10 symbols
+ \\{\ast}\\{\diamondsuit}\\{\circledast}\\{\divideontimes}%
+ \\{\sharp}\\{\star}\\{\clubsuit}\\{\aleph}\\{\infty}%
+ \\{\circlearrowleft}}}
+
+\DeclareOption{geometry}{\def\@@@mufset{\mufset@geometry}}
+\def\mufset@geometry{%
+ \RequirePackage{amssymb}
+ \h@initqueue{mufsyms@avail}{% 10 symbols
+ \\{\blacklozenge}\\{\square}\\{\blacktriangledown}\\{\vartriangle}%
+ \\{\blacksquare}\\{\triangleleft}%
+ \\{\blacktriangle}\\{\lozenge}\\{\blacktriangleleft}\\{\triangledown}}}
+
+\DeclareOption{misc}{\def\@@@mufset{\mufset@misc}}
+\def\mufset@misc{%
+ \h@initqueue{mufsyms@avail}{% 19 symbols
+ \\{\spadesuit}\\{\triangle}\\{\ominus}\\{\clubsuit}%
+ \\{\times}\\{\diamondsuit}\\{\otimes}\\{\wr}\\{\odot}\\{\vee}%
+ \\{\oplus}\\{\infty}\\{\star}\\{\oslash}\\{+}\\{\triangleleft}%
+ \\{\top}\\{\bullet}\\{\nabla}}}
+
+\DeclareOption{music}{\def\@@@mufset{\mufset@music}}
+\def\mufset@music{% 3 symbols
+ \h@initqueue{mufsyms@avail}{\\{\sharp}\\{\flat}\\{\natural}}}
+
+\DeclareOption{strokes}{\def\@@@mufset{\mufset@strokes}}
+\def\mufset@strokes{%
+ \RequirePackage{amssymb}
+ \h@initqueue{mufsyms@avail}{% 8 symbols
+ \\{\top}\\{\times}\\{\curlyvee}\\{+}\\{\veebar}\\{\nshortparallel}%
+ \\{\barwedge}\\{\wr}}}
+
+\ProcessOptions
+\@@@mufset
+
+\endinput% ***********************
+% * FAILURES AND POSSIBLE CAUSES *
+% ********************************
+%
+% ! Package hhmuf Warning: Refusing to redefine multinote `LABEL'.
+% (hhmuf) Muffire it first.
+%
+% If you defined a footnote labelled LABEL, using \muf, \mufsym,
+% \mufsymonly or \mufhire, you should call \muffire LABEL: before
+% defining another footnote having the same label.
+%
+%
+% ! Package hhmuf Warning: Out of multinote symbols.
+% (hhmuf) Using `?' instead.
+%
+% A marker is assigned to each footnote which has been defined. Because
+% the number of markers is limited, you will run out of markers if
+% too many footnotes have been defined at the same time. To prevent this
+% from happening, use \muffire to undefine footnotes as soon as you
+% do not need them anymore.
+% Keep in mind that each call to \mufsym:{TEXT} (even without a explicit
+% label) reserves a marker, which will not be released until the
+% next call to \muffin, \mufbegin or \mufend.
+% Also each call to \muf:{TEXT} which is placed in a `forbidden' environment
+% protected by \mufoff reserves a marker, which will not be released until
+% the environment is closed.
+%
+%
+% ! Package hhmuf Warning: Reference to undefined multinote `LABEL'.
+%
+% ! Package hhmuf Warning: Cannot type-set multinote `LABEL':
+% (hhmuf) it is not defined.
+%
+% ! Package hhmuf Warning: Cannot muffire multinote `LABEL':
+% (hhmuf) it is not defined.
+%
+% Should be evident. If it is not, please check if you did not close
+% the group in which the multinote was defined already (using \mufend).
+% One other mistake you could have made, is calling \muffire LABEL:
+% somewhere between \mufsym LABEL:{OPTIONAL-TEXT} and the first \muffin
+% following it. This happens implicitely if you call \muffire LABEL:
+% somewhere between \muf LABEL:{OPTIONAL-TEXT} in a protected forbidden
+% environment and the closure of that environment.
+% Note that if the multinote LABEL is undefined, calling for example
+% \muf LABEL:{} results in two warnings: one for the in-text
+% multinote reference marker (`Reference to undefined...'), and another
+% for the type-setting of the footnote itself (`Cannot type-set...').
+%
+%
+% ! Package hhmuf Warning: Reference to undefined multinote `tmp_'.
+% (and similar messages)
+%
+% You used \muf:{} or \mufsym:{}, which does not make any sense.
+%
+%
+% ! Package hhmuf Warning: Multinote `LABEL' was defined at level 1,
+% (hhmuf) so cannot muffire it at level 3.
+% (and similar messages)
+%
+% Since you defined the multinote LABEL, you opened another group which
+% is still open. It is not possible to undefine the multinote then.
+% Muffire before opening the current group, or after closing it.
+%
+%
+% ! Package hhmuf Warning: Refusing to end multinote group `GROUPA' by
+% (hhmuf) \mufend{GROUPB}.
+% (and similar messages)
+%
+% This warning should be caused by mismatched \mufbegins and \mufends.
+% Remember mufgroups should be properly nested.
+%
+%
+% - The footnote's marker appears all right, but the text is missing
+%
+% Two possible causes:
+% 1. You used \mufsym but forgot \muffin.
+% 2. You used \muf, \muftxtonly or \muffin in some `forbidden'
+% environment. The constraints are the same as for ordinary
+% LaTeX footnotes, unless the environment is protected by
+% \mufoff[ENVIRONMENT-NAME].
+%
+%
+% - A footnote text is set although it should not be there.
+%
+% You probably forgot some \muffin some time ago, so that the footnote
+% texts, which should have been set by that \muffin, are set by a following
+% \muffin.
+%
+%
+% - A footnote text appears twice on the same page.
+%
+% LaTeX could have floated a identical footnote from the previous page to
+% this one which cannot be detected by the multinote macros.
+% Another possible cause is probably the multinote macros getting the
+% the page number of the in-text marker wrong. This problem is very
+% much like the inability to start the footnote numbering every page
+% (which - by the way - is no problem if you use multinotes, because
+% they use a shift-system for their numbering). This problem can be
+% solved, and probably will be solved as soon as I encounter it in
+% practice.
+% In both cases correct the error `manually' by using \mufsymonly once
+% instead of \muf or \mufsym, or by omitting a \muftxtonly.
+%
+%
+% **************************************************
+% * PROBLEMS TO BE SOLVED / EXTENSIONS TO BE MADE: *
+% **************************************************
+%
+% - The last mentioned failure.
+% - Enabling multinotes under minipages.
+% - A switch to force muf to set footnote texts at most once at
+% a pair of opposite pages.
+%
+%
+% *******************************
+% * WARRANTY, DISTRIBUTION ETC. *
+% *******************************
+%
+% This is a TeX style file by Herman Haverkort. This file is distributed
+% in the hope that it will be useful, but without any warranty; without
+% even the implied warranty of merchantability or fitness for a particular
+% purpose. The author does not accept any responsability for any damage,
+% loss, injury, psychosis, annoyance, marital problems, murders etc. which
+% are caused by this file.
+%
+% This style file has not been tested systematically, so there are
+% probably undiscoverd errors in it. If you find one, if you have
+% trouble using this file, if you have a suggestion for an extension or
+% another modification, or if you are just a happy user, please report
+% it to:
+% Herman Haverkort
+% Heyenoordseweg 40
+% NL-6813 GA Arnhem
+% herman@fgbbs.iaf.nl
+%
+% You are allowed to change this file, but you are not allowed to distribute
+% the changed version unless you obey the following:
+% - give the changed version another file name than the original one;
+% - record clearly in the changed version:
+% - the original name of the file;
+% - its original author;
+% - that it is a changed version;
+% - do not remove the restrictions on distributing this file.
+%
+% You are not allowed to take money for the distribution or use of either
+% this file or a changed version, except for a nominal charge for copying
+% etc.
+%
+% Have fun!
+