texlive[67729] Master/texmf-dist: fcolumn (25jul23)

commits+karl at tug.org commits+karl at tug.org
Tue Jul 25 21:33:57 CEST 2023


Revision: 67729
          http://tug.org/svn/texlive?view=revision&revision=67729
Author:   karl
Date:     2023-07-25 21:33:57 +0200 (Tue, 25 Jul 2023)
Log Message:
-----------
fcolumn (25jul23)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/fcolumn/README
    trunk/Master/texmf-dist/doc/latex/fcolumn/fcolumn.pdf
    trunk/Master/texmf-dist/doc/latex/fcolumn/makefile
    trunk/Master/texmf-dist/source/latex/fcolumn/fcolumn.dtx
    trunk/Master/texmf-dist/source/latex/fcolumn/fcolumn.ins
    trunk/Master/texmf-dist/tex/latex/fcolumn/fcolumn.sty

Modified: trunk/Master/texmf-dist/doc/latex/fcolumn/README
===================================================================
--- trunk/Master/texmf-dist/doc/latex/fcolumn/README	2023-07-25 13:33:12 UTC (rev 67728)
+++ trunk/Master/texmf-dist/doc/latex/fcolumn/README	2023-07-25 19:33:57 UTC (rev 67729)
@@ -16,7 +16,7 @@
 digits and grouping is done on 3 digits.  The grouping character is 
 ``.'' and the decimal separator is ``,'', thereby coding for the 
 continental European standard.  People in the Anglo-Saxon world would
-rather code |\newcolumntype{f}{F{,}{.}{3,2}{}}|.
+rather code |\newcolumntype{f}{F,.{3,2}{}}|.
 
 To show where and how the f-column is used, let's look at a typical
 financial table.
@@ -40,7 +40,7 @@
 \end{tabular}
 
 The column specifier ``f'' (for ``finance'') is able to do the 
-typesetting.  It constructs the sum line, typesets the numbers,
+typesetting.  It constructs the sumline, typesets the numbers,
 calculates the totals, makes rules of the correct widths, and 
 checks whether the two columns are in balance; if not, the user
 is warned via a message.  A special command \resetsumline exists
@@ -53,9 +53,9 @@
 
 To install:
 -----------
-Run the file fcolumn.ins through (La)TeX (in a directory also
-containing fcolumn.dtx) or type ``make install'' and move the 
-resultant file fcolumn.sty to a place searched by TeX.
+Type ``make install'' or run the file fcolumn.ins through
+(La)TeX (in a directory also containing fcolumn.dtx) and move
+the resultant file fcolumn.sty to a place searched by TeX.
 
 To generate the documentation:
 ------------------------------

Modified: trunk/Master/texmf-dist/doc/latex/fcolumn/fcolumn.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/fcolumn/makefile
===================================================================
--- trunk/Master/texmf-dist/doc/latex/fcolumn/makefile	2023-07-25 13:33:12 UTC (rev 67728)
+++ trunk/Master/texmf-dist/doc/latex/fcolumn/makefile	2023-07-25 19:33:57 UTC (rev 67729)
@@ -1,4 +1,4 @@
-.SUFFIXES: .dtx .glo .gls .idx .ind .ins .pdf .sty 
+.SUFFIXES: .dtx .glo .gls .idx .ind .ins .pdf .sty .tex
 DIST=fcolumn.dtx fcolumn.ins fcolumn.pdf makefile README
 
 .ins.sty:
@@ -19,13 +19,16 @@
 .dtx.pdf:
 	pdflatex $<
 
-all: fcolumn.sty fcolumn.pdf
+.tex.pdf:
+	pdflatex $<
 
+all: fcolumn.pdf
+
 install:
 	pdftex fcolumn.ins
 
 dist: $(DIST)
-	mkdir FCv1.4.1temp; cp $(DIST) FCv1.4.1temp; tar -czf fcolumn.tgz FCv1.4.1temp; rm -r FCv1.4.1temp
+	mkdir FCv1.4.2temp ; cp $(DIST) FCv1.4.2temp/ ; tar -czf fcolumn.tgz FCv1.4.2temp/ ; rm -r FCv1.4.2temp/
 
 fcolumn.pdf: fcolumn.dtx fcolumn.gls fcolumn.ind fcolumn.sty
 fcolumn.glo  fcolumn.idx: fcolumn.dtx

Modified: trunk/Master/texmf-dist/source/latex/fcolumn/fcolumn.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/fcolumn/fcolumn.dtx	2023-07-25 13:33:12 UTC (rev 67728)
+++ trunk/Master/texmf-dist/source/latex/fcolumn/fcolumn.dtx	2023-07-25 19:33:57 UTC (rev 67729)
@@ -1,5 +1,5 @@
 % \iffalse meta-comment
-% Copyright (C) 2015--2022 by Edgar Olthof
+% Copyright (C) 2015--2023 by Edgar Olthof
 %
 % This file may be distributed and/or modified under the
 % conditions of the LaTeX Project Public License, either
@@ -14,7 +14,7 @@
 % \fi
 % \iffalse
 %<package>\ProvidesPackage{fcolumn}
-%<package>          [2022/02/01 v1.4.1 Automatic Currency Package (EHTO)]
+%<package>          [2023/07/25 v1.4.2 Automatic Currency Package (EHTO)]
 %<package>\NeedsTeXFormat{LaTeX2e}
 %<package>\RequirePackage{array}[v2.4k]
 %<*driver>
@@ -24,15 +24,16 @@
 \usepackage{fcolumn}
 \usepackage{booktabs}
 \usepackage[tableposition=top,aboveskip=0pt]{caption}
-\DeclareCaptionStyle{normal}{labelfont={rm,bf,small},textfont={rm,small},%
+\DeclareCaptionStyle{normal}{labelfont={rm,bf,small},textfont={rm,small},
 indention=0pt,labelsep=colon,justification=raggedright}
 \captionsetup[table]{style=normal}
 \captionsetup{singlelinecheck=false}
 \usepackage{paralist}
 \usepackage{url}
-\usepackage[hyperfootnotes=false,hidelinks]{hyperref}
 \usepackage{eurosym}
 \usepackage{color}
+\usepackage[hang,symbol*]{footmisc}
+\usepackage[hidelinks]{hyperref}
 \EnableCrossrefs
 \CodelineIndex
 \begin{document}
@@ -39,230 +40,226 @@
    \DocInput{fcolumn.dtx}
 \end{document}
 %</driver>
-% \fi
-% \RecordChanges
-% \CheckSum{1200}
-% \CharacterTable
-%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-%   Digits        \0\1\2\3\4\5\6\7\8\9
-%   Exclamation   \!     Double quote  \"     Hash (number) \#
-%   Dollar        \$     Percent       \%     Ampersand     \&
-%   Acute accent  \'     Left paren    \(     Right paren   \)
-%   Asterisk      \*     Plus          \+     Comma         \,
-%   Minus         \-     Point         \.     Solidus       \/
-%   Colon         \:     Semicolon     \;     Less than     \<
-%   Equals        \=     Greater than  \>     Question mark \?
-%   Commercial at \@     Left bracket  \[     Backslash     \\
-%   Right bracket \]     Circumflex    \^     Underscore    \_
-%   Grave accent  \`     Left brace    \{     Vertical bar  \|
-%   Right brace   \}     Tilde         \~}
+%\fi
+%\RecordChanges
+%\CheckSum{1224}
+%\CharacterTable
+% {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%  Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%  Digits        \0\1\2\3\4\5\6\7\8\9
+%  Exclamation   \!     Double quote  \"     Hash (number) \#
+%  Dollar        \$     Percent       \%     Ampersand     \&
+%  Acute accent  \'     Left paren    \(     Right paren   \)
+%  Asterisk      \*     Plus          \+     Comma         \,
+%  Minus         \-     Point         \.     Solidus       \/
+%  Colon         \:     Semicolon     \;     Less than     \<
+%  Equals        \=     Greater than  \>     Question mark \?
+%  Commercial at \@     Left bracket  \[     Backslash     \\
+%  Right bracket \]     Circumflex    \^     Underscore    \_
+%  Grave accent  \`     Left brace    \{     Vertical bar  \|
+%  Right brace   \}     Tilde         \~}
 %
-% \changes{v0.1}{2015/02/06}{First working version.}
-% \changes{v1.0}{2015/03/07}{Three-argument version is working properly.}
-% \changes{v1.1}{2015/09/14}{Automatic checking of column balance performed when number of
-%   F-columns is even (behaviour can be overridden).  Empty entries are now recognised and 
-%   correctly treated as such, except for the one ended by the double backslash. Not serious;
-%   workaround possible. Furthermore optimisation of code: minimised the number of private 
-%   counts and resetting of column counter done in a nicer way.}
-% \changes{v1.1.1}{2015/09/27}{Installation procedure changed from .ins-in-.dtx to separate
-%   .ins and .dtx after discussion with Karl Berry as well as some minor code improvements.}
-% \changes{v1.1.2}{2015/09/29}{Some inconsistencies between explanatory text and actual 
-%   code removed.}
-% \changes{v1.2}{2019/03/06}{Input parsing changed after comment from Frank
-%   Mittelbach.  He (Frank) also gave various suggestions for improving robustness
-%   or user friendlyness of this package.  This version is only backwards compatible
-%   when zero decimal digits were and are specified as modifier.}
-% \changes{v1.3}{2021/01/03}{Christian Hoff requested the possibility to provide extra formatting
-%   information to a column, e.g., colouring.  That was implemented by having an extra parameter
-%   to the generic F-column.  The current solution is not very robust, as font and/or size change
-%   in math environment are very tricky, but providing colour information works, see the example
-%   in the main text.  This version is now compatible with package longtable.  Version~1.3 is 
-%   backwards compatible to~1.2: it only adds functionality.}
-% \changes{v1.4}{2021/11/21}{More robust version on the extra formatting information: alternative
-%   formatting after the comma (if any), instead of additional information.  Corrected a few typos.}
-% \changes{v1.4.1}{2022/01/31}{Definition needed for longtable only if that package is loaded.
-%   General update, streamlining code.  Excess digits silently ignored when all zero.}
-% \GetFileInfo{fcolumn.sty}
-% \DoNotIndex{\@@endpbox,\@@startpbox,\@acol,\@arstrut,\@arstrutbox,\@classiv,\@classz,\@depth}
-% \DoNotIndex{\@firstampfalse,\@firstamptrue,\@gobble,\@halignto,\@height,\@mkpream,\@ne,\@nextchar}
-% \DoNotIndex{\@preamble,\@sharp,\@tempdima,\@tempswafalse,\@tempswatrue,\@\temptokena,\@tfor}
-% \DoNotIndex{\@whilesw,\@width,\advance,\arraystretch,\baselineskip,\begingroup,\bgroup,\count}
-% \DoNotIndex{\count@,\cr,\csname,\def,\divide,\do,\dp,\edef,\egroup,\hfil,\hline,\ht,\if,\if at firstamp}
-% \DoNotIndex{\if at tempswa,\ifcase,\kill,\lineskip,\LT@@hl,\LT@@tabarray,\LT at bchunk,\LT at caption,\LT at endpbox}
-% \DoNotIndex{\LT at hline,\LT at kill,\LT at LL@FM at cr,\LT at make@row,\LT at mcol,\LT at no@pgbk,\LT at nofcols,\LT at rows}
-% \DoNotIndex{\LT at setprevdepth,\LT at startpbox,\LT at tabularcr,\LTleft,\LTright,\loop,\m at ne,\m at th,\message}
-% \DoNotIndex{\multiply,\or,\par,\prepnext at tok,\protect,\refstepcounter,\repeat,\setbox,\space,\string}
-% \DoNotIndex{\strutbox,\tabskip,\tabularnewline,\the,\the at toks,\thr@@,\tw@,\unhbox,\vbox,\vcenter,\vrule}
-% \DoNotIndex{\vskip,\vtop,\wd,\xdef,\z@,\z at skip}
-% \title{The \textsf{fcolumn} package\thanks{This file has version number \fileversion, last 
-% revised \filedate.}}
-% \author{Edgar Olthof\\
-% \texttt{edgar <dot> olthof <at> inter <dot> nl <dot> net}}
-% \date{Printed \today}
-% \maketitle
-% \begin{abstract}
-% In financial reports, text and currency amounts are regularly put in
-% one table, e.g., a year balance or a profit-and-loss overview.  This
-% package provides the settings for automatically typesetting and checking
-% such columns, including the sum line (preceded by a rule of the correct
-% width), using the specifier |f|.
-% \end{abstract}
+%\changes{v0.1}{2015/02/06}{First working version.}
+%\changes{v1.0}{2015/03/07}{Three-argument version is working properly.}
+%\changes{v1.1}{2015/09/14}{Automatic checking of column balance performed when number of
+% F-columns is even (behaviour can be overridden).  Empty entries are now recognised and 
+% correctly treated as such, except for the one ended by the double backslash. Not serious;
+% workaround possible. Furthermore optimisation of code: minimised the number of private 
+% counts and resetting of column counter done in a nicer way.}
+%\changes{v1.1.1}{2015/09/27}{Installation procedure changed from .ins-in-.dtx to separate
+% .ins and .dtx after discussion with Karl Berry, as well as some minor code improvements.}
+%\changes{v1.1.2}{2015/09/29}{Some inconsistencies between explanatory text and actual 
+% code removed.}
+%\changes{v1.2}{2019/03/06}{Input parsing changed after comment from Frank
+% Mittelbach.  He (Frank) also gave various suggestions for improving robustness
+% or user friendliness of this package.  This version is only backwards compatible
+% when zero decimal digits were and are specified as modifier.}
+%\changes{v1.3}{2021/01/03}{Christian Hoff requested the possibility to provide extra formatting
+% information to a column, e.g., colouring.  That was implemented by having an extra parameter
+% to the generic F-column.  The current solution is not very robust, as font and/or size change
+% in math environment are very tricky, but providing colour information works, see the example
+% in the main text.  This version is now compatible with package longtable and backwards
+% compatible to fcolumn v1.2: it only adds functionality.}
+%\changes{v1.4}{2021/11/21}{More robust version on the extra formatting information: alternative
+% formatting after the comma (if any), instead of additional information.  Corrected a few typos.}
+%\changes{v1.4.1}{2022/02/01}{Definition needed for longtable only if that package is loaded.
+% General update, streamlining code.  Excess digits silently ignored when all zero.}
+%\changes{v1.4.2}{2023/07/25}{Better documentation.  Removed redundant endgroup/begingroup 
+% pairs and other small improvements.  Unbalanced columns are reported by stating their
+% difference.  Implementation of option ``red''. No changes in user experience.}
+%\GetFileInfo{fcolumn.sty}
+%\DoNotIndex{\@@endpbox,\@@startpbox,\@acol,\@arstrut,\@arstrutbox,\@classiv,\@classz,\@depth}
+%\DoNotIndex{\@endpbox,\@firstampfalse,\@firstamptrue,\@gobble,\@halignto,\@height,\@mkpream}
+%\DoNotIndex{\@ne,\@nextchar,\@preamble,\@sharp,\@startpbox,\@tabacol,\@tabarray,\@tabclassiv}
+%\DoNotIndex{\@tabclassz,\@tempdima,\@tempswafalse,\@tempswatrue,\@\temptokena,\@tfor,\@whilesw}
+%\DoNotIndex{\@width,\advance,\arraystretch,\baselineskip,\bgroup,\break,\count,\count@,\cr}
+%\DoNotIndex{\def,\divide,\do,\dp,\edef,\else,\egroup,\fi,\global,\hfil,\hline,\ht,\hsize}
+%\DoNotIndex{\if,\if at firstamp,\if at tempswa,\ifcase,\ifdim,\ifnum,\ifodd,\ifx,\kill,\lineskip}
+%\DoNotIndex{\LT@@hl,\LT@@tabarray,\LT at bchunk,\LT at caption,\LT at endpbox,\LT at hline,\LT at kill}
+%\DoNotIndex{\LT at LL@FM at cr,\LT at make@row,\LT at mcol,\LT at no@pgbk,\LT at nofcols,\LT at rows,\LT at setprevdepth}
+%\DoNotIndex{\LT at startpbox,\LT at tabularcr,\LTleft,\LTright,\let,\loop,\m at ne,\m at th,\message}
+%\DoNotIndex{\multiply,\newpage,\nopagebreak,\or,\pagebreak,\par,\prepnext at tok,\protect}
+%\DoNotIndex{\refstepcounter,\relax,\repeat,\rlap,\setbox,\space,\stepcounter,\string}
+%\DoNotIndex{\strutbox,\tabcolsep,\tabskip,\tabularnewline,\the,\the at toks,\thr@@,\tw@}
+%\DoNotIndex{\unhbox,\vbox,\vcenter,\vrule,\vskip,\vtop,\wd,\xdef,\z@,\z at skip}
+%\title{The \textsf{fcolumn} package\thanks{This file has version number~\fileversion,
+%last revised~\filedate.}}
+%\author{Edgar Olthof\\
+%\texttt{edgar <dot> olthof <at> inter <dot> nl <dot> net}}
+%\date{Printed \today}
+%\maketitle
+%\begin{abstract}
+%\noindent In financial reports, text and currency amounts are regularly put in
+%one table, e.g., a year balance or a profit-and-loss overview.  This
+%package provides the settings for automatically typesetting and checking
+%such columns, including the sum line (preceded by a rule of the correct
+%width), using the specifier |f|.
+%\end{abstract}
 %
-% \section{Introduction}\label{intro}
-% The package |fcolumn| provides the macros for an extra tabular specifier
-% that makes creating financial tables easy.  The column specifier |f| 
-% itself is rather simple; it is the predefined version of a generic 
-% column |F|.  The generic version expects four arguments: 1)~grouping 
-% character of the integer part on output, 2)~decimal mark used on output,
-% 3)~compact additional information on input/output characteristics, and
-% 4)~anything, but primarily used for providing formatting information, see below.
+%\section{Introduction}\label{intro}
+%The package |fcolumn| provides the macros for an extra tabular specifier
+%that makes creating financial tables easy.  The column specifier~|f| 
+%itself is rather simple; it is the predefined version of a generic 
+%column~|F|.  The generic version expects four arguments: 1)~grouping 
+%character of the integer part on output, 2)~decimal mark used on output,
+%3)~compact additional information on input/output characteristics, and
+%4)~anything, but primarily used for providing formatting information, see below.
 %
-% The f-column in the current version of the package is defined for the 
-% continental European standard: |\newcolumntype{f}{F{.}{,}{3,2}{}}|.  This
-% means that a number like 12345,67 will be typeset as $12{.}345{,}67$.  
-% People in the Anglo-Saxon world would rather code 
-% |\newcolumntype{f}{F{,}{.}{3,2}{}}| for the same input, yielding 
-% $12{,}345{.}67$ as output for the number given above.  The default
-% value for |#3| is |3,2|, indicating that grouping of the integer 
-% part is by three digits, that a comma is used in the \TeX-source to
-% indicate the decimal mark, and that the decimal part consists of
-% two digits.  However, if in your country or company grouping is done 
-% with a thinspace every four digits, that the decimal mark in the
-% source should be the character |p|, and there are three digits after
-% the decimal mark---that happens to be a |\cdot|---, then simply specify
-% |\newcolumntype{f}{F{\,}{\cdot}{4p3}{}}| in that case.  The input could
-% be 123456p78 then, yielding $12{\,}3456{\cdot}780$ as output.
+%The f-column in the current version of the package is defined for the 
+%continental European standard: |\newcolumntype{f}{F.,{3,2}{}}|.  This
+%means that a number like 12345,67 will be typeset as $12{.}345{,}67$.  
+%People in the Anglo-Saxon world would rather code 
+%|\newcolumntype{f}{F,.{3,2}{}}| for the same input, yielding 
+%$12{,}345{.}67$ as output for the number given above.  The default
+%value for |#3| is |3,2|, indicating that grouping of the integer 
+%part is by three digits, that a comma is used in the \TeX-source to
+%indicate the decimal mark, and that the decimal part consists of
+%two digits.  However, if in your country or company grouping is done 
+%with a thinspace every four digits, that the decimal mark in the
+%source should be the character |p|, and there are three digits after
+%the decimal mark---that happens to be a |\cdot|---, then simply specify
+%|\newcolumntype{f}{F{\,}{\cdot}{4p3}{}}| in that case.  The input could
+%be 123456p78 then, yielding $12{\,}3456{\cdot}780$ as output.
 %
-% By default two digits are used for the decimal part, so if you really
-% want no decimal digits (in that case of course also skipping the decimal
-% mark) you have to explicitly specify |x,0|. If you want no grouping
-% character, specify |0,x|.
+%By default two digits are used for the decimal part, so if you really
+%want no decimal digits (in that case of course also skipping the decimal
+%mark) you have to explicitly specify~|x,0|. If you want no grouping
+%character, specify~|0,x|.
 %
-% As the fourth parameter you can insert anything just before the typesetting 
-% of an amount in a column takes place.  Its purpose is to add additional 
-% formatting information, e.g., |\color{red}| to have the contents of a column
-% coloured red, but it can be misused, so use with care. And it can't do all!
+%As the fourth parameter you can insert anything just before the typesetting 
+%of an amount in a column takes place.  Its purpose is to add additional 
+%formatting information, e.g., |\color{blue}| to have the contents of a column
+%coloured blue, but it can be misused, so use with care. And it can't do all!
 %
-% This package requires and loads the |array| package~\cite{array}.  To
-% show where and how the |F|-column is used, let's look at some typical 
-% financial information as shown in Table~\ref{tab:ex1}
-% \begin{table}[htb]
-% \caption{Example Table.}
-% \label{tab:ex1}
-% \begin{tabular}{@{}lflf@{}}
-% \multicolumn4c{\bfseries Balance sheet}\\
-% \toprule
-% properties & \leeg{31 dec 2014} & debts & \leeg{31 dec 2014}\\
-% \midrule
-% house &        200000    & equity capital & 50000    \\
-% bank account &   -603,23 & mortgage &      150000    \\
-% savings &       28000    \\
-% cash &            145,85 & profit &         27542,62 \\
-% \sumline
-% \bottomrule
-% \end{tabular}
-% \end{table}
-% and how this is entered in \LaTeX\ (Table~\ref{tab:ex2}).
-% \begin{table}[htb]
-% \caption{Verbatim version of Example Table~\ref{tab:ex1}.}
-% \label{tab:ex2}
-% \begin{verbatim}
+%\floatsep=5pt plus 2pt minus 3pt
+%\textfloatsep=5pt plus 2pt minus 3pt
+%\renewcommand{\bottomfraction}{0.9}
+%\renewcommand{\textfraction}{0.1}
 %\begin{table}[htb]
-%\caption{Example Table.}
-%\label{tab:ex1}
+%\caption{Example Table.} \label{tab:ex1}
 %\begin{tabular}{@{}lflf@{}}
-%\multicolumn4c{\bfseries Balance sheet}\\
+%\multicolumn4{@{}c@{}}{\bfseries Balance sheet}\\
 %\toprule
 %properties & \leeg{31 dec 2014} & debts & \leeg{31 dec 2014}\\
 %\midrule
-%house &        200000    & equity capital & 50000    \\
-%bank account &   -603,23 & mortgage &      150000    \\
-%savings &       28000    \\
-%cash &            145,85 & profit &         27542,62 \\
+%house        & 200000    & equity capital &  50000    \\
+%bank account &   -603,23 & mortgage       & 150000    \\
+%savings      &  28000                                 \\
+%cash         &    145,85 & profit         &  27542,62 \\
 %\sumline
 %\bottomrule
 %\end{tabular}
 %\end{table}
-% \end{verbatim}
-% \end{table}
-% All the work was done by the column specifier ``f'' (for ``finance'').  
-% In this case it constructs the |\sumline|, typesets the numbers, 
-% calculates the totals, determines the widths of the sumrules, and checks
-% whether the two columns are in balance; if not, the user is warned via a
-% |\PackageWarning|.  Of course for nice settings the |booktabs| 
-% package~\cite{booktabs} was used, but that is not the point here.
+%This package requires and loads the |array| package~\cite{array}.  To
+%show where and how the |F|-column is used, let's look at some typical 
+%financial information as shown in Table~\ref{tab:ex1}
+%and how this is entered in \LaTeX\ (Table~\ref{tab:ex2}).
+%\begin{table}[htb]
+%\caption{Verbatim version of Example Table~\ref{tab:ex1}.}
+%\label{tab:ex2} \topsep0pt
+%\begin{verbatim}
+%\begin{table}[htb]
+%\caption{Example Table.} \label{tab:ex1}
+%\begin{tabular}{@{}lflf@{}}
+%\multicolumn4{@{}c@{}}{\bfseries Balance sheet}\\
+%\toprule
+%properties & \leeg{31 dec 2014} & debts & \leeg{31 dec 2014}\\
+%\midrule                                     
+%house        & 200000    & equity capital &  50000    \\
+%bank account &   -603,23 & mortgage       & 150000    \\
+%savings      &  28000                                 \\
+%cash         &    145,85 & profit         &  27542,62 \\
+%\sumline
+%\bottomrule
+%\end{tabular}
+%\end{table}
+%\end{verbatim}
+%\end{table}
+%All the work was done by the column specifier~|f| (for ``finance'').  
+%In this case it constructs the |\sumline|, typesets the numbers, 
+%calculates the totals, determines the widths of the sumrules, and checks
+%whether the two columns are in balance; if not, the user is warned via a
+%|\PackageWarning|.  Of course for nice settings the |booktabs| 
+%package~\cite{booktabs} was used, but that is not the point here.
 %
-% This package is heavily inspired by the |dcolumn| package by
-% David Carlisle~\cite{dcolumn}; some constructions are more or less 
-% copied from that package.  From version~1.3 onwards it incorporates the idea
-% of Christian Hoff of providing additional (formatting) information per column.
-% A rather contrived example is given in Table~\ref{tab:ex3}, combining colour and fonts.
-% \newcolumntype{q}[1]{F{.}{,}{3,2}{#1}}
-% \begin{table}[htb]
-% \caption{Example Table with column formatting.}
-% \label{tab:ex3}
-% \begin{tabular}{@{}lq{\color{red}\mathsf,\mathbf}lq{\color{green}}@{}}
-% \multicolumn4c{\bfseries Balance sheet}\\
-% \toprule
-% properties & \leeg{31 dec 2014} & debts & \leeg{31 dec 2014}\\
-% \midrule
-% house &        200000    & equity capital & 50000    \\
-% bank account &   -603,23 & mortgage &      150000    \\
-% savings &       28000   \\
-% cash &            145,85 & profit &         27542,62 \\
-% \sumline
-% \bottomrule
-% \end{tabular}
-% \end{table}
-% How this is entered in \LaTeX\ is shown in Table~\ref{tab:ex4}.
-% \begin{table}[htb]
-% \caption{Almost verbatim version of Example Table~\ref{tab:ex3}.}
-% \label{tab:ex4}
-% \begin{verbatim}
-%\newcolumntype{q}[1]{F{.}{,}{3,2}{#1}}
+%This package is heavily inspired by the |dcolumn| package by
+%David Carlisle~\cite{dcolumn}; some constructions are more or less 
+%copied from that package.  From version~1.3 onwards it incorporates the idea
+%of Christian Hoff of providing additional (formatting) information per column.
+%A rather contrived example is given in Table~\ref{tab:ex3}, combining colour and fonts.
+%\newcolumntype{q}[1]{F.,{3,2}{#1}}
 %\begin{table}[htb]
-%\caption{Example Table with column formatting.}
-%\label{tab:ex3}
-%\begin{tabular}{@{}lq{\color{red}\mathsf,\mathbf}lq{\color{green}}@{}}
-%\multicolumn4c{\bfseries Balance sheet}\\
+%\caption{Example Table with column formatting.} \label{tab:ex3}
+%\begin{tabular}{@{}lq{\color{blue}\mathsf,\mathbf}lq{\color{magenta}}@{}}
+%\multicolumn4{@{}c@{}}{\bfseries Balance sheet}\\
+%\toprule
+%properties & \leeg{31 dec 2014} & debts & \leeg{31 dec 2014}\\
+%\midrule
+%house        & 200000    & equity capital &  50000    \\
+%bank account &   -603,23 & mortgage       & 150000    \\
+%savings      &  28000                                 \\
+%cash         &    145,85 & profit         &  27542,62 \\
+%\sumline
+%\bottomrule
+%\end{tabular}
+%\end{table}
+%How this is entered in \LaTeX\ is shown in Table~\ref{tab:ex4}. The font changing commands
+%like |\mathsf| and |\mathbf| act on an argument, hence require braces,
+%but these are already provided internally for this purpose.  For that reason this
+%type of commands must be given last, without braces (and if you don't specify a font 
+%changing command, these extra internal braces are just redundant).  The fourth argument to the
+%\begin{table}[htb]
+%\caption{Almost verbatim version of Example Table~\ref{tab:ex3}.}
+%\label{tab:ex4} \topsep0pt
+%\begin{verbatim}
+%\newcolumntype{q}[1]{F.,{3,2}{#1}}
+%\begin{table}[htb]
+%\caption{Example Table with column formatting.} \label{tab:ex3}
+%\begin{tabular}{@{}lq{\color{blue}\mathsf,\mathbf}lq{\color{magenta}}@{}}
+%\multicolumn4{@{}c@{}}{\bfseries Balance sheet}\\
 %...
 %... (Same financial contents as in Table 1.)
 %...
 %\end{tabular}
 %\end{table}
-% \end{verbatim}
-% \end{table}
-% The font changing commands like |\mathsf| and |\mathbf| act on an argument, hence require
-% braces, but these are already provided internally for this purpose.  For that reason this
-% type of commands must be given last, without braces (and if you don't specify a font 
-% changing command, these extra internal braces are just redundant).  The fourth argument to the
-% new columntype may consist of two parts, separated by a comma.  In that case, the part to
-% the left of the comma is applied to the data entered by the user and the right part
-% is applied to the result.  The example in Table~\ref{tab:ex3} shows this: the bold font
-% is only used in the |\sumline| and there is no colour specification, so that's back to
-% the default (black).  If you want formatting for the whole column, like green colour as
-% in the last column of Table~\ref{tab:ex3}, leave out the comma.  
+%\end{verbatim}
+%\end{table}
+%new columntype may consist of two parts, separated by a comma.  In that case, the part to
+%the left of the comma is applied to the data entered by the user and the right part, if
+%non-empty, is the replacement formatting for the result.  The example in Table~\ref{tab:ex3}
+%shows this: the bold font is only used in the |\sumline| and there is no colour specification,
+%so that's back to the default (black).  If you want formatting for the whole column, like magenta
+%in the case of the last column of Table~\ref{tab:ex3}, leave out the comma.
+%Font size changes, e.g., ``|\huge|'' in ``|\huge\mathbf|''
+%as parameter to column type |q| are ignored by \LaTeX, since the formatting 
+%information is used in math environment, which has its own way of handling this.
+%This isn't bad, as size changes in one column, without overall changes to the 
+%table look terrible.  If you want something huge, make a |\huge| table.
 %
-% Note that changes in font size, e.g., ``|\huge|'' in ``|\huge\color{red}\mathbf|''
-% as parameter to column type |q| are ignored by \LaTeX, since the formatting 
-% information is used in math environment, which has its own way of handling this.
-% This isn't bad, as size changes in one column, without overall changes to the 
-% table look terrible.  If you want something huge, make a |\huge| table.
-% 
-% This package now also works with |longtable|~\cite{longtable}, provided
-% |longtable| is loaded before |fcolumn|; it checks for that.  For a change, 
-% the raw formatting of the multipage table is shown first, in Table~\ref{tab:ex5}.
-% For more information on how to handle |\endhead| and related commands, see the 
-% documentation of |longtable|~\cite{longtable}.
-% \begin{table}[htb]
-% \caption{Almost verbatim version of Example Table~\ref{tab:ex6}.}
-% \label{tab:ex5}
-% \begin{verbatim}
 %\begin{longtable}[l]{@{}lflf@{}}
-%\caption{\label{tab:ex6}Table showing compatibility of fcolumn and 
+%\caption{\label{tab:ex5}Table showing compatibility of fcolumn and 
 %  longtable.}\\
-%\multicolumn4c{\bfseries Balance sheet}\\
+%\multicolumn4{@{}c@{}}{\bfseries Balance sheet}\\
 %\toprule
 %properties & \leeg{31 dec 2014} & debts & \leeg{31 dec 2014}\\
 %\midrule
@@ -273,11 +270,47 @@
 %\midrule
 %\endhead
 %\bottomrule
-%\multicolumn4{r@{}}{\small\textit{(Table continues on next page)\/}}\\
+%\multicolumn4{@{}r@{}}{\small\textit{(Table continues on next page)\/}}\\
 %\endfoot
 %\bottomrule
 %\endlastfoot
-%house &        200000    & equity capital & 50000    \\
+%house        & 200000    & equity capital &  50000    \\
+%bank account &   -603,23 & mortgage       & 150000    \\
+%savings 1    &   7000                                 \\
+%savings 2    &   7000                                 \\
+%savings 3    &   7000                                 \\
+%savings 4    &   7000                                 \\
+%cash         &    145,85 & profit         &  27542,62 \\
+%\sumline
+%\end{longtable}
+%As is demonstrated in the preceding page break, the package |fcolumn| now also works
+%with |longtable|~\cite{longtable}, provided |longtable| is loaded 
+%before~|fcolumn|; it checks
+%for that. The raw formatting of the multipage table
+%is shown in Table~\ref{tab:ex6}.
+%\begin{table}[htb]
+%\caption{Almost verbatim version of Example Table~\ref{tab:ex5}.}
+%\label{tab:ex6} \topsep0pt
+%\begin{verbatim}
+%\begin{longtable}[l]{@{}lflf@{}}
+%\caption{\label{tab:ex5}Table showing compatibility of fcolumn and 
+%  longtable.}\\
+%\multicolumn4{@{}c@{}}{\bfseries Balance sheet}\\
+%\toprule
+%properties & \leeg{31 dec 2014} & debts & \leeg{31 dec 2014}\\
+%\midrule
+%\endfirsthead
+%\caption[]{\textit{(continued from previous page)\/}}\\
+%\toprule
+%properties & \leeg{31 dec 2014} & debts & \leeg{31 dec 2014}\\
+%\midrule
+%\endhead
+%\bottomrule
+%\multicolumn4{@{}r@{}}{\small\textit{(Table continues on next page)\/}}\\
+%\endfoot
+%\bottomrule
+%\endlastfoot
+%house        & 200000    & equity capital &  50000    \\
 %...
 %... (Somewhat altered financial contents compared to
 %...  Table 1 to demonstrate the page break.)
@@ -284,289 +317,288 @@
 %...
 %\sumline
 %\end{longtable}
-% \end{verbatim}
-% \end{table}
+%\end{verbatim}
+%\end{table}
+%For more information on how to handle |\endhead| and its ilk, see the 
+%documentation of |longtable|~\cite{longtable}. Not shown here are the new |fcolumn|
+%formatting possibilities (like new fonts and/or colours), but it has been 
+%checked they do work in combination with |longtable|.  |fcolumn| also works happily 
+%together with |supertabular|~\cite{supertabular}, so you can choose which package you
+%want if you need this.  There is no race condition with |supertabular|: you can load
+%it before or after |fcolumn|.
 %
-% \noindent And here is the result (it's ugly, but it had to be this long to 
-% demonstrate the page break).  Not shown here are the new |fcolumn|
-% formatting possibilities (like new fonts and/or colours), but it has been 
-% checked they do work in combination with |longtable|.
-% \begin{longtable}[l]{@{}lflf@{}}
-% \caption{\label{tab:ex6}Table showing compatibility of fcolumn and 
-%   longtable.}\\
-% \multicolumn4c{\bfseries Balance sheet}\\
-% \toprule
-% properties & \leeg{31 dec 2014} & debts & \leeg{31 dec 2014}\\
-% \midrule
-% \endfirsthead
-% \caption[]{\textit{(continued from previous page)\/}}\\
-% \toprule
-% properties & \leeg{31 dec 2014} & debts & \leeg{31 dec 2014}\\
-% \midrule
-% \endhead
-% \bottomrule
-% \multicolumn4{r@{}}{\small\textit{(Table continues on next page)\/}}\\
-% \endfoot
-% \bottomrule
-% \endlastfoot
-% house &        200000    & equity capital & 50000    \\
-% bank account &   -603,23 & mortgage &      150000    \\
-% savings 1 &      4000    \\
-% savings 2 &      4000    \\
-% savings 3 &      4000    \\
-% savings 4 &      4000    \\
-% savings 5 &      4000    \\
-% savings 6 &      4000    \\
-% savings 7 &      4000    \\
-% cash &            145,85 & profit &         27542,62 \\
-% \sumline
-% \end{longtable}
-% \section{Commands}
-% The user only needs to know six commands or constructions.  These six are given here.
-% \begin{macro}{F}
-% In the tabular the column specifier |F| can be given with arguments, or 
-% the predefined version~|f|, where the four arguments of |F| are |{.}|, 
-% |{,}|, |{3,2}|, and |{}|.  If you want |g| to be your own definition like the 
-% curious one given in Section~\ref{intro}, then specify 
-% |\newcolumntype{g}{F{\,}{\cdot}{4p3}{}}| prior to using |g| in a tabular.
-% 
-% Entries in an F-column are, from that moment on, treated as numbers unless
-% explicitly escaped by |\leeg|, see below.  The numbers are typeset 
-% according to the template the user gives with his/her |F|-column.
-% The ``middle'' character of |#3| is an important switch: it does more
-% than just setting the input decimal mark.  By default the input grouping 
-% character is the dot, except when the dot is specified as input decimal
-% mark; in that case the comma is acting as input grouping character.  With 
-% this convention continental Europe and the Anglo-Saxon part of the world 
-% is served.  And using input grouping markers is optional anyway.
-% \end{macro}
-% \begin{macro}{\sumline}
-% The numbers in an |F|-column are typeset as a financial amount, but the real
-% benefit comes with the |\sumline|. It does three things:
-% \begin{compactenum}[1)]
-% \item It calculates the total of the column so far and the maximum width 
-% encountered so far, including the width of the total;
-% \item It generates a rule with width calculated in the first item;
-% \item It checks the columns that are supposed to balance whether or not they
-% actually do.  If so, nothing happens.  If not, a |\PackageWarning| is given 
-% that column~$i$ and~$j$ do not balance, where $i$ and $j$ are the relevant 
-% columns.  This is only done if the total number of |F|-columns is even, 
-% e.g., if there are six |F|-columns, then~1 is checked against~4, 2 against~5, 
-% and 3 against~6.  If the number of |F|-columns is odd then anything could be
-% possible in that table and nothing is assumed about structure within the 
-% table.  This behaviour can be overridden, see below.
-% \end{compactenum}
-% By default the vertical separation between the rule and the total is 
-% 2\thinspace pt, but this can be changed by the optional argument to 
-% |\sumline|. Give, e.g., |\sumline[10pt]|, in case you want this spacing
-% to be 10\thinspace pt.  And you may even give two options, like in 
-% |\sumline[10pt][5pt]|, in which the second option is the extra space below
-% the summary row.  In fact that second option is parsed to |\\|, that is
-% implicit in |\sumline|.
-% \end{macro}
-% \begin{macro}{\resetsumline}
-% Suppose you want to typeset one tabular with the profit-and-loss of many
-% projects individually.  The layout of those tabulars is the same and it 
-% were nice if all columns were aligned.  This can be done by making it one
-% big tabular with a fresh start for each project.  The macro 
-% |\resetsumline| is used for that: it resets all totals and all column 
-% widths, see for example Table~\ref{tab:ex7}.
-% \begin{table}[htb]
-% \caption{Example: multiple projects.}
-% \label{tab:ex7}
-% \begin{tabular}{@{}lfflff@{}}
-% \multicolumn6c{\bfseries Project~1}\\
-% \toprule
-% expense & \leeg{actual} & \leeg{budget} & 
-% income & \leeg{actual} & \leeg{budget} \\
-% \midrule
-% food &         450,20 & 500    & tickets &  1200    &  1000    \\
-% drinks &       547,5  & 400    \\
-% music &        180    & 100    \\
-% profit &        22,3  \\
-% \sumline
-% \resetsumline
-% \multicolumn6c{\bfseries Project~2}\\
-% \toprule
-% expense & \leeg{actual} & \leeg{budget} & 
-% income & \leeg{actual} & \leeg{budget} \\
-% \midrule
-% food &         250    & 300    & tickets &  400    &  450    \\
-% drinks &       100    &  80    \\
-% music &         80    &  70    & loss &      30    \\
-% \sumline
-% \bottomrule
-% \end{tabular}
-% \end{table}
-% Note that the rules in the first and third |F|-columns of project~1 cover
-% $1{.}200{,}00$ whereas in project~2 those rules are narrower since they 
-% only cover $430{,}00$; still the columns are aligned.  The verbatim way
-% of setting up Table~\ref{tab:ex7} is given in Table~\ref{tab:ex8}.
-% \begin{table}[htb]
-% \caption{Verbatim version of Table~\ref{tab:ex7}.}
-% \label{tab:ex8}
-% \begin{verbatim}
+%Unlike in the package |dcolumn|~\cite{dcolumn}, the alignment on the decimal mark in 
+%|fcolumn| is achieved by right aligning numbers that all have the same number of
+%digits to the right of this mark, in combination with the fact that all decimal glyphs
+%have the same width\footnote{No common font is known in which this is not the case, but
+%exceptions may exist.}. This width is font specific, so changing fonts within a table
+%may ruin the alignment, see e.g., the first |F|-column in Table~\ref{tab:ex3}.
+%\section{Commands}
+%The user only needs to know six commands or constructions.  These six are given here.
+%\begin{macro}{F}
+%In the tabular the column specifier |F| can be given with arguments, or 
+%the predefined version~|f|, where the four arguments of |F| are |{.}|, 
+%|{,}|, |{3,2}|, and |{}|.  If you want |g| to be your own definition like the 
+%curious one given in Section~\ref{intro}, then specify 
+%|\newcolumntype{g}{F{\,}{\cdot}{4p3}{}}| prior to using |g| in a tabular.
+%
+%Entries in an |F|-column are, from that moment on, treated as numbers unless
+%explicitly escaped by |\leeg|, see below.  The numbers are typeset 
+%according to the template the user gives with his/her |F|-column.
+%The ``middle'' character of |#3| is an important switch: it does more
+%than just setting the input decimal mark.  By default the input grouping 
+%character is the dot, except when the dot is specified as input decimal
+%mark; in that case the comma is acting as input grouping character.  With 
+%this convention continental Europe and the Anglo-Saxon part of the world 
+%are served.  This is hard coded, but using input grouping markers is optional anyway.
+%\end{macro}
+%\begin{macro}{\sumline}
+%The numbers in an |F|-column are typeset as a financial amount, but the real
+%benefit comes with the |\sumline|. It does three things:
+%\begin{compactenum}[1)]
+%\item It calculates and shows the total of the column so far and the maximum
+%width encountered so far, including the width of the total;
+%\item It generates a rule with width calculated in the first item;
+%\item It checks the columns that are supposed to balance whether or not they
+%actually do.  If so, nothing happens.  Otherwise a |\PackageWarning| is given 
+%that column~$i$ and~$j$ do not balance, where $i$ and $j$ are the relevant 
+%columns.  This is only done if the total number of |F|-columns is even, 
+%e.g., if there are six |F|-columns, then~1 is checked against~4, 2 against~5, 
+%and 3 against~6.  If the number of |F|-columns is odd then anything could be
+%possible in that table and nothing is assumed about structure within the 
+%table.  This behaviour can be overridden, see below.
+%\end{compactenum}
+%By default the vertical separation between the rule and the total is 
+%2\thinspace pt, but this can be changed by the optional argument to 
+%|\sumline|. Give, e.g., |\sumline[10pt]|, in case you want this spacing
+%to be 10\thinspace pt.  And you may even give two options, like in 
+%|\sumline[10pt][5pt]|, in which the second option is the extra space below
+%the summary row.  In fact that second option is parsed to |\\|, that is
+%implicit in |\sumline|.
+%\end{macro}
+%\begin{macro}{\resetsumline}
+%Suppose you want to typeset one tabular with the profit-and-loss of many
+%projects individually.  In case the layout of those tabulars is similar it
+%were nice if all columns were aligned.  This can be done by making it one
+%big tabular with a fresh start for each project.  The macro |\resetsumline|
+%is used for that: it resets all totals and all column widths, see for example
+%Table~\ref{tab:ex7}.
 %\begin{table}[htb]
-%\caption{Example: multiple projects.}
-%\label{tab:ex3}
+%\caption{Example: multiple projects.} \label{tab:ex7}
 %\begin{tabular}{@{}lfflff@{}}
-%\multicolumn6c{\bfseries Project~1}\\
+%\multicolumn6{@{}c@{}}{\bfseries Project~1}\\
 %\toprule
 %expense & \leeg{actual} & \leeg{budget} & 
+%income  & \leeg{actual} & \leeg{budget} \\
+%\midrule
+%food   &  450,20 & 500    & tickets & 1200    & 1000    \\
+%drinks &  547,5  & 400                                  \\
+%music  &  180    & 100                                  \\
+%profit &   22,3                                         \\
+%\sumline[2pt][10pt]
+%\resetsumline
+%\multicolumn6{@{}c@{}}{\bfseries Project~2}\\
+%\toprule
+%expense & \leeg{actual} & \leeg{budget} & 
 %income & \leeg{actual} & \leeg{budget} \\
 %\midrule
-%food &         450,2  & 500    & tickets &  1200    &  1000    \\
-%drinks &       547,5  & 400    \\
-%music &        180    & 100    \\
-%profit &        22,3  \\
+%food   &  250    & 300    & tickets &  400    &  450    \\
+%drinks &  100    &  80                                  \\
+%music  &   80    &  70    & loss    &   30              \\
 %\sumline
+%\bottomrule
+%\end{tabular}
+%\end{table}
+%Note that the rules in the first and third |F|-columns of Project~1 cover
+%$1{.}200{,}00$ whereas in Project~2 those rules are narrower since they 
+%only cover $430{,}00$; still the columns are aligned (similar story for 
+%|F|-columns two and four).  The verbatim way of setting up Table~\ref{tab:ex7}
+%is given in Table~\ref{tab:ex8}.
+%\begin{table}[htb]
+%\caption{Verbatim version of Table~\ref{tab:ex7}.}
+%\label{tab:ex8} \topsep0pt
+%\begin{verbatim}
+%\begin{table}[htb]
+%\caption{Example: multiple projects.} \label{tab:ex7}
+%\begin{tabular}{@{}lfflff@{}}
+%\multicolumn6{@{}c@{}}{\bfseries Project~1}\\
+%expense & \leeg{actual} & \leeg{budget} & 
+%income  & \leeg{actual} & \leeg{budget} \\
+%\midrule
+%food   &  450,20 & 500    & tickets & 1200    & 1000    \\
+%drinks &  547,5  & 400                                  \\
+%music  &  180    & 100                                  \\
+%profit &   22,3                                         \\
+%\sumline[2pt][10pt]
 %\resetsumline
-%\multicolumn6c{\bfseries Project~2}\\
+%\multicolumn6{@{}c@{}}{\bfseries Project~2}\\
 %\toprule
 %expense & \leeg{actual} & \leeg{budget} & 
-%income & \leeg{actual} & \leeg{budget} \\
+%income  & \leeg{actual} & \leeg{budget} \\
 %\midrule
-%food &         250    & 300    & tickets &  400    &  450    \\
-%drinks &       100    &  80    \\
-%music &         80    &  70    & loss &      30    \\
+%food   &  250    & 300    & tickets &  400    &  450    \\
+%drinks &  100    &  80                                  \\
+%music  &   80    &  70    & loss    &   30              \\
 %\sumline
 %\bottomrule
 %\end{tabular}
 %\end{table}
-% \end{verbatim}
-% \end{table}
-% \end{macro}
-% \begin{macro}{\leeg}
-% If an |F|-column should be empty then simply leave it empty.  If however
-% it should not be empty but the entry should be treated as text---even 
-% if it is a number---, this can be done with |\leeg|.  It expects an 
-% argument and this argument is typeset in the column.  The common case is
-% where |p.m.| (\textit{pro memoria}) is entered.  In contrast to v1.1.2 
-% of this package, now even an empty |F|-column followed by |\\| is allowed.
-% \end{macro}
-% \begin{macro}{\checkfcolumns}
-% The automatic column balance check can also be done manually.  If 
-% |F|-columns~1 and~4 should balance and you want them to be checked,
-% then simply say |\checkfcolumns14|.  With more than nine |F|-columns
-% you may be forced to say something like |\checkfcolumns{10}{12}|.  If
-% |\checkfcolumns| is used, the automatic check is disabled.  Multiple
-% |\checkfcolumns|s are supported; if |F|-columns~1, 2, and~3 should 
-% balance, you specify |\checkfcolumns12| and |\checkfcolumns23|.
-% There is no explicit command to disable all checking, but
-% |\checkfcolumns11| obviously does the trick.
-% \end{macro}
-% \begin{macro}{\ifstrict at ccounting}
-% In the rare occasion that a negative number occurs in a financial table,
-% the sign of that number can be an explicit minus sign~($-$) or the number
-% is coloured red, or it is typeset between parentheses, and there may be
-% even other ways.  By default (for aesthetic reasons) |fcolumn| typesets
-% it with a minus~sign, but strict accounting prescibes that the number 
-% should be put between parentheses.  The latter can be accomplished by 
-% setting |\strict at ccountingtrue|, but since this contains a non-letter,
-% it is also possible to invoke |fcolumn| with the option |strict|, i.e.,
-% |\usepackage[strict]{fcolumn}|, which sets this flag.
-% \end{macro}
-% \StopEventually{\PrintChanges\PrintIndex}
-% \section{The macros}
-% Here follows the actual code.
-% \subsection{Option}
-% \begin{macro}{option strict}
-% There is one option. If set, strict accounting rules are used in display.
+%\end{verbatim}
+%\end{table}
+%\end{macro}
+%\begin{macro}{\leeg}
+%If an |F|-column should be empty then simply leave it empty.  If however
+%it should not be empty but the entry should be treated as text---even 
+%if it is a number---, this can be done with |\leeg|.  It expects an 
+%argument and this argument is typeset in the column.  The common case is
+%where |p.m.| (\textit{pro memoria}) is entered.  In contrast to v1.1.2 
+%of this package, now even an empty |F|-column followed by |\\| is allowed.
+%\end{macro}
+%\begin{macro}{\checkfcolumns}
+%The automatic column balance check can also be done manually.  If 
+%|F|-columns~1 and~4 should balance and you want them to be checked,
+%then simply say |\checkfcolumns14|.  With more than nine |F|-columns
+%you may be forced to say something like |\checkfcolumns{10}{12}|.  If
+%|\checkfcolumns| is used, the automatic check is disabled.  Multiple
+%|\checkfcolumns|s are supported; if |F|-columns~1, 2, and~3 should 
+%balance, you specify |\checkfcolumns12| and |\checkfcolumns23|.
+%There is no explicit command to disable all checking, but
+%|\checkfcolumns11| obviously does the trick at the expense of
+%some trivial calculations.
+%\end{macro}
+%\begin{macro}{\ifstrict at ccounting}
+%\begin{macro}{\ifminusr at d}
+%In the rare occasion that a negative number occurs in a financial table,
+%the sign of that number can be an explicit minus sign, i.e.,~`$-$' or the
+%number is coloured red, or it is typeset between parentheses, and there 
+%may be even other ways.  By default (for aesthetic reasons) |fcolumn| 
+%typesets it with a minus~sign, but strict accounting prescribes that the
+%number should be put between parentheses.  The latter can be accomplished
+%by setting |\strict at ccountingtrue|, but since this contains a non-letter,
+%it is also possible to invoke |fcolumn| with the option |strict|, i.e.,
+%|\usepackage[strict]{fcolumn}|, which sets this flag.  If you want the
+%negative numbers to be coloured red, use the option |red|, i.e.,
+%|\usepackage[red]{fcolumn}|, but note that |strict| and |red| 
+%are mutually exclusive: if both are used, |red| is reset because
+%|strict| is strict.
+%\end{macro}
+%\end{macro}
+%\StopEventually{\PrintChanges\PrintIndex}
+%\section{The macros}
+%Here follows the actual code.
+%\subsection{Options}
+%\begin{macro}{option red}
+%\begin{macro}{option strict}
+%There are two options. If |red| is set, negative numbers are displayed in red.
+%If |strict| is set, strict accounting rules are used in display and this overrules
+%a possibly set |red|.  Depending on the two booleans associated with these options
+%the |color| package~\cite{color} will be loaded or not.
 %    \begin{macrocode}
+\newif\ifminusr at d \minusr at dfalse
 \newif\ifstrict at ccounting \strict at ccountingfalse
+\DeclareOption{red}{\minusr at dtrue}
 \DeclareOption{strict}{\strict at ccountingtrue}
-\ProcessOptions
+\ProcessOptions \ifminusr at d \ifstrict at ccounting \minusr at dfalse
+\PackageWarningNoLine{fcolumn}{Option `red' is reset due to use 
+ of `strict'}\else\usepackage{color}\fi\fi
 %    \end{macrocode}
-% \end{macro}
+%\end{macro}
+%\end{macro}
 %\subsection{Definitions}
-% \begin{macro}{column F}
-% \begin{macro}{column f}
-% The column specifier |F| is the generic one, and |f| is the default 
-% (continental European) one for easy use. Note that the definition of the
-% column type |f| does not use private macros (no~|@|), so overriding its 
-% definition is easy for a user.
+%\begin{macro}{column F}
+%\begin{macro}{column f}
+%The column specifier |F| is the generic one, and |f| is the default 
+%(continental European) one for easy use. Note that the definition of the
+%column type |f| does not use private macros (no~|@|), so overriding its 
+%definition is easy for a user.
 %    \begin{macrocode}
 \newcolumntype{F}[4]{>{\b at fi{#1}{#2}{#3}{#4}}r<{\e at fi}}
-\newcolumntype{f}{F{.}{,}{3,2}{}}
+\newcolumntype{f}{F.,{3,2}{}}
 %    \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \begin{macro}{\FCsc at l}
-% \begin{macro}{\FCtc at l}
-% Two \meta{count}s are defined, that both start at zero: the \meta{count} 
-% |\FCsc at l|, that keeps track at which F-column the tabular is working on 
-% and the \meta{count} |\FCtc at l|, that records the number of F-columns 
-% that were encountered so far.  Later in the package the code can be 
-% found for generating a new \meta{count} and a new \meta{dimen} if the
-% number of requested |F|-columns is larger than currently available.  
-% This is of course the case when an |F|-column is used for the first time.
+%\end{macro}
+%\end{macro}
+%\begin{macro}{\FCsc at l}
+%\begin{macro}{\FCtc at l}
+%Two \meta{count}s are defined, that both start at zero: the \meta{count} 
+%|\FCsc at l|, that keeps track at which |F|-column the tabular is working on 
+%and the \meta{count} |\FCtc at l|, that records the number of |F|-columns 
+%that were encountered so far.  Later in the package the code can be 
+%found for generating a new \meta{count} and a new \meta{dimen} if the
+%number of requested |F|-columns is larger than currently available.  
+%This is of course the case when an |F|-column is used for the first time.
 %    \begin{macrocode}
 \newcount\FCsc at l \FCsc at l=0 \newcount\FCtc at l \FCtc at l=0
 %    \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \begin{macro}{\geldm at cro}
-% The macro |\geldm at cro| takes a number and by default interprets this as
-% an amount expressed in cents (dollar cents, euro cents, centen, Pfennige,
-% centimes, kopecks, groszy) and typesets it as the amount in entire 
-% currency units (dollars, euros, guldens, Marke, francs, rubles, z\l oty)
-% with comma as decimal mark and the dot as grouping character
-% (thousand separator if the first part of |#1| is~3).
-% As explained, this can be changed.  It uses two private booleans: 
-% |\withs at p| and |\strict at ccounting|.  The latter is used to typeset
-% negative numbers between parentheses.  By default it doesn't do this:
-% a minus sign is used.
+%\end{macro}
+%\end{macro}
+%\begin{macro}{\geldm at cro}
+%The macro |\geldm at cro| takes a number and by default interprets this as
+%an amount expressed in cents (dollar cents, euro cents, centen, Pfennige,
+%centimes, kopecks, groszy) and typesets it as the amount in entire 
+%currency units (dollars, euros, guldens, Marke, francs, rubles, z\l oty)
+%with comma as decimal mark and the dot as grouping character
+%(thousand separator if the first part of |#1| is~3).
+%As explained, this can be changed.  It uses three private booleans: 
+%|\ifwiths at p|, |\ifstrict at ccounting|, and |\ifminusr at d|.  The latter two
+%are used to typeset negative numbers in a special way.  By default it
+%doesn't do this: a minus sign is used.
 %    \begin{macrocode}
 \newif\ifwiths at p
 %    \end{macrocode}
-% Actually |\geldm at cro| is only a wrapper around |\g at ldm@cro|.
+%Actually |\geldm at cro| is only a wrapper around |\g at ldm@cro|.
 %    \begin{macrocode}
 \def\geldm at cro#1#2{\withs at pfalse
 \afterassignment\g at ldm@cro\count@#1\relax{#2}}
 %    \end{macrocode}
-% \end{macro}
-% \begin{macro}{\g at ldm@cro}
-% After setting the environment for formatting, this macro starts by looking 
-% at the sign of |#2|: if it is negative, it prints 
-% the correct indicator (a parenthesis or a minus sign), assigns the absolute value 
-% of~|#2| to |\count2| and goes on.  Note that |\geldm at cro| and therefore |\g at ldm@cro|
-% are always used within |$|s, so it is really a minus sign that is printed, not a hyphen.
-% All calculations are done with |\count0|, |\count1|, etc.\ i.e., without |F|-column-specific
-% \meta{count}s because it is all done locally.  Leaving the tabular environment will 
-% restore their values.  This is also true for the effect of |\FCform at t|, so that 
-% formatting information is local to this column.  The reason for inserting the |{|
-% between |\FCform at t| and |\ifnum| (and the accompanying |}| just before finishing 
-% this definition) is to facilitate the possible use of |\mathbf| or any other font 
-% changing command as the last item in |\FCform at t|.
+%\end{macro}
+%\begin{macro}{\g at ldm@cro}
+%After setting the environment for formatting, this macro starts by looking 
+%at the sign of |#2|: if it is negative, it prints 
+%the correct indicator (a parenthesis or a minus sign), assigns the absolute value 
+%of~|#2| to |\count2| and goes on.  Note that |\geldm at cro| and therefore |\g at ldm@cro|
+%are always used within |$|s, so it is really a minus sign that is printed, not a hyphen.
+%All calculations are done with |\count0|, |\count1|, etc.\ i.e., without |F|-column-specific
+%\meta{count}s because it is all done locally.  Leaving the tabular environment will 
+%restore their values.  This is also true for the effect of |\FCform at t|, so that 
+%formatting information is local to this column.  The reason for inserting the |{|
+%between |\FCform at t| and |\ifnum| (and the accompanying |}| just before finishing 
+%this definition) is to facilitate the possible use of |\mathbf| or any other font 
+%changing command as the last item in |\FCform at t|.
+% 
+%When |\FCform at t| includes a colour change, this is overruled for negative numbers
+%when option |red| is set.  For that reason it is unwise to use a red colour for the
+%whole column in combination with the option |red|: sign information is obscured then.
 %    \begin{macrocode}
-\def\g at ldm@cro#1\relax#2{\FCform at t{\ifnum#2<0 \ifstrict at ccounting 
-  (\else -\fi \count2=-#2 \else\count2=#2 \fi
+\def\g at ldm@cro#1\relax#2{\ifstrict at ccounting\def\bm at nus{(}
+ \def\em at nus{)}\else\def\em at nus{}\ifminusr at d\def\bm at nus{\color{red}}
+ \else\def\bm at nus{-}\fi\fi\FCform at t{\ifnum#2<0 \bm at nus\count2=-#2
+ \else\count2=#2 \fi
 %    \end{macrocode}
-% Calculate the entire currency units: this is the result of $x/a$ as integer
-% division, with $a=10^n$ and $n$ the part of |#1| after the separator (if any).
-% Here the first character of |#1| is discarded, so the separator in |#1| is not strict:
-% you could also specify |3.2| instead of |3,2| (or even |3p2|).
-%   \begin{macrocode}
-\count4=\ifx\relax#1\relax 2 \else \@gobble#1\relax\fi
+%Calculate the entire currency units: this is the result of $x/a$ as integer
+%division, with $a=10^n$ and $n$ the part of |#1| after the separator (if any).
+%Here the first character of |#1| is discarded, so the separator in |#1| is not strict:
+%you could also specify |3.2| instead of |3,2| (or even |3p2|).
+%    \begin{macrocode}
+\count4=\ifx\relax#1\relax 2 \else\@gobble#1\relax\fi
 \count3=0
 \loop\ifnum\count3<\count4 
   \divide\count2 by 10 \advance\count3 by \@ne
 \repeat
 %    \end{macrocode}
-% Note that |\count3| now equals |\count4|: this going up-and-down will be used more often,
-% it saves several assignments.  The value in |\count2| is then output by |\g at ldens| using 
-% the separation given (and stored in |\count@|).
+%Note that |\count3| now equals |\count4|: this going up-and-down will be used more often,
+%it saves several assignments.  The value in |\count2| is then output by |\g at ldens| using 
+%the separation given (and stored in |\count@|).
 %    \begin{macrocode}
 \g at ldens{\the\count@}%
 %    \end{macrocode}
-% If there is a decimal part\dots
+%If there is a decimal part\dots
 %    \begin{macrocode}
-\ifnum\count3>0\decim at lmark
+\ifnum\count3>0 {\decim at lmark}
 %    \end{macrocode}
-% Next the decimal part is dealt with.  Now $x\bmod a$ is calculated in the 
-% usual way: $x-(x/a)*a$ with integer division.  The minus sign necessary 
-% for this calculation is introduced in the next line by changing the 
-% comparison from |<| to |>|.
+%Next the decimal part is dealt with.  Now $x\bmod a$ is calculated in the 
+%usual way: $x-(x/a)*a$ with integer division.  The minus sign necessary 
+%for this calculation is introduced in the next line by changing the 
+%comparison from |<| to |>|.
 %    \begin{macrocode}
   \ifnum#2>0 \count2=-#2\else\count2=#2 \fi
   \loop\ifnum\count3>0
@@ -573,7 +605,7 @@
     \divide\count2 by 10 \advance\count3 by \m at ne
   \repeat
 %    \end{macrocode}
-% The value of |\count3| is now~0, so counting up again.
+%The value of |\count3| is now~0, so counting up again.
 %    \begin{macrocode}
   \loop\ifnum\count3<\count4
     \multiply\count2 by 10 \advance\count3 by \@ne
@@ -584,62 +616,52 @@
   \zerop at d{\number\count3}{\number\count2}%
 \fi
 %    \end{macrocode}
-% If the negative number is indicated by putting it between parentheses,
-% then the closing parenthesis should stick out of the column, otherwise
-% the alignment of this entry in the column is wrong.  This is done by an
-% |\rlap| and therefore does not influence the column width.  For the last
-% column this means that this parenthesis may even stick out of the table.
-% I don't like this, therefore I chose to put |\strict at ccountingfalse|.
-% Change if you like, by setting the option |strict|.
-% 
-% If overflow was detected, an exclamation mark is output to the right of
-% the value that caused this.  This of course ruins the appearance of the
-% table, but in this case that serves a clear goal: there's something wrong
-% and you should know.
+%If the negative number is indicated by putting it between parentheses,
+%then the closing parenthesis should stick out of the column, otherwise
+%the alignment of this entry in the column is wrong.  This is done by an
+%|\rlap| and therefore does not influence the column width.  For the last
+%column this means that this parenthesis may even stick out of the table.
+%I don't like this, therefore I chose to put |\strict at ccountingfalse|.
+%Change if you like, by setting the option |strict|.
+%
+%If overflow was detected, an exclamation mark is output to the right of
+%the value that caused this.  This of course ruins the appearance of the
+%table, but in this case that serves a clear goal: there's something wrong
+%and you should know.
 %    \begin{macrocode}
-\ifx\FCs at gn\m at ne \ifnum#2<0 \ifstrict at ccounting
-  \rlap{)~!}\else\rlap{~!}\fi\else\ifstrict at ccounting
-  \rlap{\phantom{)}~!}\else\rlap{~!}\fi\fi
-\else \ifnum#2<0 \ifstrict at ccounting\rlap{)}\fi\fi
-\fi}}
+\ifx\FCs at gn\m at ne\ifnum#2<0 \rlap{\em at nus~!}
+ \else\rlap{\phantom{\em at nus}~!}\fi
+\else\ifnum#2<0 \rlap{\em at nus}\fi\fi}}
 %    \end{macrocode}
 % \end{macro}
-% \begin{macro}{\g at ldens}
-% Here the whole currency units are dealt with.  The macro |\g at ldens| is 
-% used recursively, therefore the double braces; this allows to use 
-% |\count0| locally.  This also implies that tail recursion is not 
-% possible here, but that is not very important, as the largest number
-% (which is $2^{31}-1$) will only cause a threefold recursion using the
-% default |3,2| (ninefold when using~|1,0|, but who does that?).  The 
-% largest amount this package can deal with is therefore 2.147.483.647 
-% (using |3,0|).  For most people this is probably more than enough if
-% the currency is euros or dollars.  And otherwise make clear that you
-% use a currency unit of~k\EUR{} (or even M\EUR{} for the very rich).
-% The author is thinking of ways to use two counters for each number.
-% The maximum then becomes $2^{63}-1$.  Even expressed in cents this 
-% would lead to a maximum of slightly more than 92.2\thinspace P\EUR{};
-% about 100 times the current world economy~\cite{world_economy}. Yet
-% another method is to use Heiko Oberdiek's package |bigintcalc|:
-% then only memory restrictions apply.  This, however, would require
-% a major rewrite of |fcolumn|.
+%\begin{macro}{\g at ldens}
+%Here the whole currency units are dealt with.  The macro |\g at ldens| is 
+%used recursively, therefore the double braces; this allows to use 
+%|\count0| locally.  This also implies that tail recursion is not 
+%possible here, but that is not very important, as the largest number
+%(which is $2^{31}-1$) will only cause a threefold recursion using the
+%default |3,2| (ninefold when using~|1,0|, but who does that?).  The 
+%largest amount this package can deal with is therefore 2.147.483.647 
+%(using |3,0|).  For most people this is probably more than enough if
+%the currency is euros or dollars.  And otherwise clearly state that you
+%use a currency unit of~k\EUR{} (or even M\EUR{} for the very rich).
 %
-% There is no straightforward interpretation of |#1| being zero or 
-% negative, therefore this is used as an indicator that no grouping
-% character should be used.
+%There is no obvious interpretation of |#1| being zero or negative, 
+%therefore this is used as an indicator that no grouping character should be used.
 %    \begin{macrocode}
 \def\g at ldens#1{{\count3=\count2 \count0=#1
 %    \end{macrocode}
-% First divide by $10^n$, where $n$ is |#1|.
+%First divide by $10^n$, where $n$ is |#1|.
 %    \begin{macrocode}
 \ifnum\count0<1 \count0=3 \fi
 \loop \ifnum\count0>0 \divide\count2 by 10 \advance\count0 by \m at ne
 \repeat
 %    \end{macrocode}
-% Here is the recursive part,
+%Here is the recursive part,
 %    \begin{macrocode}
 \ifnum\count2>0 \g at ldens{#1}\fi
 %    \end{macrocode}
-% and then reconstruct the rest of the number.
+%and then reconstruct the rest of the number.
 %    \begin{macrocode}
 \count0=#1
 \ifnum\count0<1 \count0=3 \fi
@@ -648,38 +670,38 @@
 \count2=-\count2
 \advance\count2 by \count3 \du at zendprint{#1}}}
 %    \end{macrocode}
-% \end{macro}
-% \begin{macro}{\du at zendprint}
-% The macro |\du at zendprint| takes care for correctly printing the separator
-% and possible trailing zeros. The former, however, is only done if |#1|
-% is larger than zero.
+%\end{macro}
+%\begin{macro}{\du at zendprint}
+%The macro |\du at zendprint| takes care for correctly printing the separator
+%and possible trailing zeros. The former, however, is only done if |#1|
+%is larger than zero.
 %    \begin{macrocode}
-\def\du at zendprint#1{\ifwiths at p\ifnum#1>0 \sep at rator\fi
+\def\du at zendprint#1{\ifwiths at p\ifnum#1>0 {\sep at rator}\fi
  \zerop at d{#1}{\number\count2}%
 \else\zerop at d1{\number\count2}\fi\global\withs at ptrue}
 %    \end{macrocode}
-% \end{macro}
-% \begin{macro}{\zerop at d}
-% The macro |\zerop at d| uses at least |#1| digits for printing the 
-% number |#2|, padding with zeros when necessary. Note: |#1| being
-% zero or negative is a flag that it should be interpreted as 3.
-% A bit ugly, but it works, since the related code knows about this.
+%\end{macro}
+%\begin{macro}{\zerop at d}
+%The macro |\zerop at d| uses at least |#1| digits for printing the 
+%number |#2|, padding with zeros when necessary. Note: |#1| being
+%zero or negative is a flag that it should be interpreted as 3.
+%A bit ugly, but it works, since the related code knows about this.
 %
-% It is done within an extra pair of braces, so that |\count0| 
-% and |\count1| can be used without disturbing their values in other macros.
+%It is done within an extra pair of braces, so that |\count0| 
+%and |\count1| can be used without disturbing their values in other macros.
 %    \begin{macrocode}
 \def\zerop at d#1#2{{\count0=1 \count1=#2
 %    \end{macrocode}
-% First determine the number of digits of |#2| (expressed in the decimal
-% system).  This number is in |\count0| and is at least~1.
+%First determine the number of digits of |#2| (expressed in the decimal
+%system).  This number is in |\count0| and is at least~1.
 %    \begin{macrocode}
 \loop \divide \count1 by 10 \ifnum\count1>0 \advance\count0 by \@ne
 \repeat
 %    \end{macrocode}
-% If |#1| is positive, the number of zeros to be padded is 
-% $\max(0,|#1-\count0|)$ (the second argument can be negative), so a
-% simple loop suffices.  If it is zero or negative, this is a signal
-% that it should be interpreted as 3 (and no separator will be output).
+%If |#1| is positive, the number of zeros to be padded is 
+%$\max(0,|#1-\count0|)$ (the second argument can be negative), so a
+%simple loop suffices.  If it is zero or negative, this is a signal
+%that it should be interpreted as 3 (and no separator will be output).
 %    \begin{macrocode}
 \ifnum#1>0
  \loop \ifnum\count0<#1\relax 0\advance\count0 by \@ne
@@ -690,21 +712,21 @@
  \repeat 
 \fi\number#2}}
 %    \end{macrocode}
-% \end{macro}
-% \begin{macro}{\zetg at ld}
-% This macro takes care for several things: it increases the subtotal for a
-% given F-column, it checks whether or not that subtotal has overflown, it
-% records the largest width of the entries in that column and it typesets 
-% |#1| via |\geldm at cro|.
+%\end{macro}
+%\begin{macro}{\zetg at ld}
+%This macro takes care for several things: it increases the subtotal for a
+%given |F|-column, it checks whether or not that subtotal has overflown, it
+%records the largest width of the entries in that column and it typesets 
+%|#1| via |\geldm at cro|.
 %    \begin{macrocode}
 \def\zetg at ld#1#2{\count0=#2\relax \let\FCs at gn=\@ne
 %    \end{macrocode}
-% First it checks whether there is a risk of overflow in this step.  If
-% $A$ and $B$ are two \TeX-registers and $B$ is to be added to $A$, 
-% overflow will not occur if one is (or both are) zero or if $A$ and~$B$
-% have different signs; otherwise be careful.  Note that \TeX\ does not
-% check for overflow when performing an |\advance| (done in section~1238
-% of Ref.~\cite{CandTB}), in contrast to |\multiply|, see section~105.
+%First it checks whether there is a risk of overflow in this step.  If
+%$A$ and $B$ are two \TeX-registers and $B$ is to be added to $A$, 
+%overflow cannot occur if 1)~one is (or both are) zero or 2)~if $A$ and~$B$
+%have different signs; otherwise be careful.  Note that \TeX\ does not
+%check for overflow when performing an |\advance| (done in section~1238
+%of Ref.~\cite{CandTB}), in contrast to |\multiply|, see section~105.
 %    \begin{macrocode}
 \ifnum\count0<0 
   \ifnum\csname FCtot@\romannumeral\FCsc at l\endcsname<0
@@ -719,37 +741,36 @@
 \global\advance\csname FCtot@\romannumeral\FCsc at l\endcsname by \count0
 \ifx\FCs at gn\m at ne 
 %    \end{macrocode}
-% They have the same sign, hence risk of overflow.  Record the sign
-% of |\count0| (and of the original total of this column; we just established
-% they were the same) in |\FCs at gn|. Table~\ref{tab:ex9} 
-% \begin{table}[htb]
-% \def\PackageError#1#2#3{\PackageWarning{#1}{#2: #3}}
-% \caption{Examples on overflow.}
-% \label{tab:ex9}
-% \begin{tabular}{@{}lfff@{}}
-% \multicolumn4c{\bfseries Projects}\\
-% \toprule
-% income & \leeg{31 dec 2014} & \leeg{31 dec 2015} & \leeg{31 dec 2016} \\
-% \midrule
-% item~1 &  20000000 & 20000000 &20000000 \\
-% item~2 &  10000000 &  2000000 &-1500000 \\
-% item~3 &   5000000 & -1500000 & 2000000 \\
-% \checkfcolumns12
-% \checkfcolumns23
-% \sumline
-% \bottomrule
-% \end{tabular}
-% \end{table}
-% shows what can go wrong if the numbers are too large: in the left
-% |F|-column the sumline is incorrect and the number that caused 
-% the overflow is indicated by an exclamation mark. In the middle 
-% |F|-column, overflow occurs twice and because this is once positive,
-% once negative here, cancellation of errors occurs and the sumline
-% is correct in the end.  Nevertheless, it is advised to swap the two
-% items that caused the overflow, as shown in the right |F|-column.
+%They have the same sign, hence risk of overflow.  Record the sign
+%of |\count0| (and of the original total of this column; we just established
+%they were the same) in |\FCs at gn|. Table~\ref{tab:ex9} 
+%\begin{table}[htb]
+%\def\PackageError#1#2#3{\PackageWarning{#1}{#2: #3}}
+%\caption{Examples on overflow.}
+%\label{tab:ex9}
+%\begin{tabular}{@{}lfff@{}}
+%\multicolumn4{@{}c@{}}{\bfseries Projects}\\
+%\toprule
+%income & \leeg{31 dec 2014} & \leeg{31 dec 2015} & \leeg{31 dec 2016} \\
+%\midrule
+%item~1 &  20000000 & 20000000 & 20000000 \\
+%item~2 &  10000000 &  2000000 & -1500000 \\
+%item~3 &   5000000 & -1500000 &  2000000 \\
+%\checkfcolumns23
+%\sumline
+%\bottomrule
+%\end{tabular}
+%\end{table}
+%shows what can go wrong if the numbers are too large: in the left
+%|F|-column the sumline is incorrect and the number that caused 
+%the overflow is indicated by an exclamation mark. In the middle 
+%|F|-column, overflow occurs twice and because this is once positive,
+%once negative here, cancellation of errors occurs and the sumline
+%is correct in the end.  Nevertheless, it is advised to swap the two
+%items that caused the overflow, as shown in the right |F|-column.
 %
-% Check that the sign of the updated column total is still correct.
-% If so, |\FCs at gn| is reset (to |\@ne|) at the end of this chunk.
+%Check that the sign of the updated column total is still correct.
+%If so, |\FCs at gn| is reset (to |\@ne|) at the end of this chunk.
 %    \begin{macrocode}
   \ifnum\count0>0 \let\FCs at gn\@ne \fi
   \count0=\csname FCtot@\romannumeral\FCsc at l\endcsname
@@ -756,16 +777,16 @@
   \ifnum\FCs at gn<0 \count0=-\count0 \fi
   \ifnum\count0<0 
     \let\FCs at gn=\m at ne
-    \PackageError{fcolumn}{Register overflow}{Overflow occurred
-    in fcolumn \number\FCsc at l.\MessageBreak You can press <enter> 
-    now and I'll proceed, but check\MessageBreak your table. The
-    offending entry is indicated with an\MessageBreak exclamation
-    mark in the output.}%
+    \PackageError{fcolumn}{Register overflow}{Overflow occurred in 
+    fcolumn \number\FCsc at l\space near or at line \the\inputlineno.
+    You can\MessageBreak press <enter> now and I'll proceed, but check
+    your table.\MessageBreak The offending entry is indicated with an
+    exclamation mark\MessageBreak in the output.}%
   \else\let\FCs at gn=\@ne
   \fi
 \fi
 %    \end{macrocode}
-% The value of |\FCs at gn| is used in |\geldm at cro| below.
+%The value of |\FCs at gn| is used in |\geldm at cro| below.
 %    \begin{macrocode}
 \setbox0=\hbox{$\geldm at cro{#1}{#2}$}%
 \ifdim\wd0>\csname FCwd@\romannumeral\FCsc at l\endcsname
@@ -772,134 +793,128 @@
  \global\csname FCwd@\romannumeral\FCsc at l\endcsname=\wd0
 \fi\unhbox0}
 %    \end{macrocode}
-% \end{macro}
+%\end{macro}
 %
-% The \meta{count}s |\FC at l| and |\FC at r| capture the parts to the left and to the 
-% right of the decimal mark, respectively.
+%The \meta{count}s |\FC at l| and |\FC at r| capture the parts to the left and to the 
+%right of the decimal mark, respectively.
 %    \begin{macrocode}
 \newcount\FC at l \newcount\FC at r
 %    \end{macrocode}
-% Some auxiliary definitions for capturing compacted information.
+%Some auxiliary definitions for capturing compacted information.
 %    \begin{macrocode}
 \def\setucc at de#1#2\relax{\uccode`\~=`#1 }
 \def\assignform at t#1,#2,#3\assignform at t{\def\FCform at t{#1}%
   \def\FCform at tt{#2}\ifx\FCform at tt\@empty \def\FCform at tt{#1}\fi}
 %    \end{macrocode}
-% \begin{macro}{\m at thcodeswitch}
-% As will be shown below, once the first digit, or sign, or decimal mark, or
-% grouping character is scanned, the decimal digits should loose their
-% activeness.  That is done here for the digits in a rather blunt way, by putting their
-% |\mathcode|s to zero if |#1| equals~0, since the actual |\mathcode| is not important---as 
-% long as it is not |"8000|---because the digits are not used for typesetting.
-% (And even if they were; it's inside |\box0|, whose contents will be discarded.)  
-% When the |$| in |\e at fi| is encountered, the digits get back their original
-% |\mathcode|s so that the actual typesetting in |\zetg at ld| is correct again.
-% With a non-zero |#1| the activeness is switched on.
+%\begin{macro}{\m at thcodeswitch}
+%As will be shown below, once the first digit, or sign, or decimal mark, or
+%grouping character is scanned, the decimal digits should loose their activeness.
+%That is done here for the digits in a rather blunt way, by putting their
+%|\mathcode|s to zero if |#1| equals~0, since the actual |\mathcode| is not 
+%important---as long as it is not |"8000|---because the digits are not used for 
+%typesetting. (And even if they were; it's inside |\box0|, whose contents will be
+%discarded.)  When the |$| in |\e at fi| is encountered, the digits get back their 
+%original |\mathcode|s so that the actual typesetting in |\zetg at ld| is correct again.
+%With a non-zero |#1| the activeness is switched on.
 %    \begin{macrocode}
 \def\m at thcodeswitch#1{\count0=10 \loop\ifnum\count0>0 
 \advance\count0 by \m at ne\mathcode\expandafter`\the\count0=
 \ifnum#1=0 0 \else "8000 \fi\repeat}
 %    \end{macrocode}
-% \end{macro}
-% \def\<#1>{\leavevmode\hbox{$\langle$#1\/$\rangle$}}
-% \begin{macro}{\b at fi}
-% The macro |\b at fi| provides the beginning of the financial column.  It
-% will be inserted in the column to capture the number entered by the user.
-% The separator and decimal mark are within a math environment, so you
-% can indeed specify |\,| instead of |\thinspace|, but there is an extra
-% brace around, so it doesn't affect the spacing between the digits 
-% (trick copied from |dcolumn|, Ref.~\cite{dcolumn}).
+%\end{macro}
+%\def\<#1>{\leavevmode\hbox{$\langle$#1\/$\rangle$}}
+%\begin{macro}{\b at fi}
+%The macro |\b at fi| provides the beginning of the financial column.  It
+%will be inserted in the column to capture the number entered by the user.
+%The separator and decimal mark are within a math environment, so you
+%can indeed specify |\,| instead of |\thinspace|, but there are extra
+%braces around them in the code where they are used, so it doesn't 
+%affect the spacing between the digits (trick copied from |dcolumn|,
+%Ref.~\cite{dcolumn}).
 %    \begin{macrocode}
-\def\b at fi#1#2#3#4{%
+\def\b at fi#1#2#3#4{\sep at xt#1\sep at xt\def\decim at lmark{#2}\def\sp at l{#3}%
+\assignform at t#4,,\assignform at t\global\advance\FCsc at l by \@ne
+\global\FC at l=0 \global\FC at r=1
 %    \end{macrocode}
-% An intermediate macro |\sep at xt| to extract the first character
-% of |#1|, which in most cases will be the only character.
-%    \begin{macrocode}
-\def\sep at xt##1##2\end{\def\sep at rator{{##1}}}\sep at xt#1\end
-\def\decim at lmark{{#2}}\def\sp at l{#3}\assignform at t#4,,\assignform at t
-\global\advance\FCsc at l by \@ne\global\FC at l=0 \global\FC at r=1
-%    \end{macrocode}
-% The value specified by the user is then captured by |\FC at l| and 
-% this is done in a special way: |\FC at l| is assigned globally within
-% |\box0|.  Why?  To use it as scribbling paper to examine what the 
-% user entered, without dumping it into the horizontal list.
+%The value specified by the user is then captured by |\FC at l| and 
+%this is done in a special way: |\FC at l| is assigned globally within
+%|\box0|.  Why?  To use it as scribbling paper to examine what the 
+%user entered, without dumping it into the horizontal list.
 %
-% There are four parts to an |F|-column entry, all parts optional,
-% making 16 combinations.  The sequence is
-% (in the Backus--Naur notation of Ref.~\cite{CandTA}):
-% \<sign> \<integer constant> \<decimal mark>
-% \<integer constant>. Here \<sign> is a plus or minus character with 
-% category code~12, \<integer constant> is a sequence of zero
-% or more (decimal) \<digit>s, and \<decimal mark> is the middel 
-% part of |#3|, i.e., the comma in |3,2| or the period in |3.2|.  If
-% the \<decimal mark> is absent with no space characters between the
-% two \<integer constant> terms, these merge, making four redundant
-% entries.  One of the combinations is \<empty>, a sequence of characters
-% outside the ones that are made active, e.g., plain text or nothing at all:
-% this is the only combination that doesn't put anything in an |F|-column---and
-% was the most difficult part to handle.
+%There are four parts to an |F|-column entry, all parts optional,
+%making 16 combinations.  The sequence is
+%(in the Backus--Naur notation of Ref.~\cite{CandTA}):
+%\<sign> \<integer constant> \<decimal mark>
+%\<integer constant>. Here \<sign> is a plus or minus character with 
+%category code~12, \<integer constant> is a sequence of zero
+%or more (decimal) \<digit>s, and \<decimal mark> is the middel 
+%part of |#3|, i.e., the comma in |3,2| or the period in |3.2|.  If
+%the \<decimal mark> is absent with no space characters between the
+%two \<integer constant> terms, these merge, making four redundant
+%entries.  One of the combinations is \<empty>, a sequence of characters
+%outside the ones that are made active, e.g., plain text or nothing at all:
+%this is the only combination that doesn't put anything in an |F|-column---and
+%was the most difficult part to handle.
 %
-% The minus sign must be captured separately, because in an entry like
-% |-0,07| the 7~cents are negative, but this cannot be seen from the
-% part to the left of the decimal mark, since $-0$ is~$0$ in \TeX\ (in 
-% fact in most computer languages, but not in~MIX~\cite{TAOCP1}), so 
-% |\ifnum-0<0| yields |false|. |\FCs at gn| is a general purpose flag.  Its 
-% first use is to capture the sign.
+%The minus sign must be captured separately, because in an entry like
+%|-0,07| the 7~cents are negative, but this cannot be seen from the
+%part to the left of the decimal mark, since $-0$ is~$0$ in \TeX\ (in 
+%fact in most computer languages, but not in~MIX~\cite{TAOCP1}), so 
+%|\ifnum-0<0| yields |false|. |\FCs at gn| is a general purpose flag.  Its 
+%first use is to capture the sign.
 %    \begin{macrocode}
 \let\FCs at gn=\@ne\relax \setbox0\hbox\bgroup$
 %    \end{macrocode}
-% Do the scan inside a box and inside math mode.  Start with defining all
-% characters that may appear as the first one in an |F|-column as active; 
-% digits first. This needs a complicated |\edef| with accompanying |\noexpand|
-% because the starting digit for |\FC at l| must be packed inside each definition.
+%Do the scan inside a box and inside math mode.  Start with defining all
+%characters that may appear as the first one in an |F|-column as active; 
+%digits first. This needs a complicated |\edef| with accompanying |\noexpand|
+%because the starting digit for |\FC at l| must be packed inside each definition.
 %    \begin{macrocode}
 \count@=10 \loop\ifnum\count@>0 \advance\count@ by \m at ne
  \uccode`\~=\expandafter`\the\count@ \uppercase{\edef~}{\noexpand
  \m at thcodeswitch0 \global\FC at l=\the\count@}\repeat
 %    \end{macrocode}
-% For the input decimal mark something extra is needed: if it is the
-% first character in an |F|-column (like in |,07|), it should also
-% restore the |\mathcode|s of the digits.  Checking whether or not it
-% is the first is easy, since in that case the |\mathcode|s of the 
-% decimal digits is still |"8000|.  The assignment to |\FC at r| starts 
-% with~1, so that appended digits get captured correctly, even if they
-% start with~0; postprocessing of |\FC at r| is done in |\e at fi|.
-% The input decimal mark switches itself off as active character, 
-% so at most one input decimal mark is allowed (N.B.:
-% this makes sense).
+%For the input decimal mark something extra is needed: if it is the
+%first character in an |F|-column (like in |,07|), it should also
+%restore the |\mathcode|s of the digits.  Checking whether or not it
+%is the first is easy, since in that case the |\mathcode|s of the 
+%decimal digits are still |"8000|.  The assignment to |\FC at r| starts 
+%with~1 (with no space following), so that appended digits get captured
+%correctly, even if they start with~0; postprocessing of |\FC at r| is done
+%in |\e at fi|.  The input decimal mark switches itself off as active 
+%character, so at most one input decimal mark is allowed (N.B.:
+%this makes sense).
 %    \begin{macrocode}
-\def\deactdecm at rk##1##2\relax{\mathcode`##1=0 }%
 \afterassignment\setucc at de\count@#3\relax
 \uppercase{\def~}{\ifnum\mathcode`\0="8000 \m at thcodeswitch0 \fi
 \afterassignment\deactdecm at rk\count@#3\relax \global\FC at r=1}%
 %    \end{macrocode}
-% The input grouping character effectively expands to ``nothing, i.e.,
-% ignore'' in a complicated way: it ignores the character and resumes 
-% scanning the number.  The test prior to that action is needed if
-% the grouping character is the first character encountered in the
-% |F|-column.  Which part to continue with depends on whether or not an
-% input decimal mark was encountered; that can be checked by looking
-% at its |\mathcode|.
-% 
-% The input grouping character is the dot ``|.|'', except when that character
-% was already chosen as input decimal mark.  In that case, the grouping 
-% character will be the comma.  This is easy to check because the |\uccode|
-% of |`\~| is still preserved.  
+%The input grouping character effectively expands to ``nothing, i.e.,
+%ignore'' in a complicated way: it ignores the character and resumes 
+%scanning the number.  The test prior to that action is needed if
+%the grouping character is the first character encountered in the
+%|F|-column.  Which part to continue with depends on whether or not an
+%input decimal mark was encountered; that can be checked by looking
+%at its |\mathcode|.
+%
+%The input grouping character is the dot ``|.|'', except when that character
+%was already chosen as input decimal mark.  In that case, the grouping 
+%character will be the comma.  This is easy to check because the |\uccode|
+%of |`\~| is still preserved.  
 %    \begin{macrocode}
-\def\d at cm##1##2{\count@=\mathcode`##1 }
 \ifnum\uccode`\~=`. \uccode`\~=`,\relax\else \uccode`\~=`.\relax\fi
 \uppercase{\def~}{\ifnum\mathcode`\0="8000 \m at thcodeswitch0 \fi
 \afterassignment\d at cm\count@#3\relax
 %    \end{macrocode}
-% The |\expandafter| below is necessary because the global assignment
-% should act after the |\fi|.
+%The |\expandafter| below is necessary because the global assignment
+%should act after the |\fi|.
 %    \begin{macrocode}
 \ifnum\count@=\mathcode`- \expandafter\global\FC at l=\the\FC at l
 \else \expandafter\global\FC at r=\the\FC at r\fi}%
 %    \end{macrocode}
-% The signs are relatively simple: record the sign, restore |\mathcode|s if
-% needed (it should be: a minus sign between digits screws up everything),
-% and start scanning the number.
+%The signs are relatively simple: record the sign, restore |\mathcode|s if
+%needed (it should be: a minus sign between digits screws up everything),
+%and start scanning the number.
 %    \begin{macrocode}
 \uccode`\~=`+\relax \uppercase{\def~}{\ifnum\mathcode`\0="8000
 \m at thcodeswitch0 \fi\global\FC at l=0}
@@ -906,282 +921,303 @@
 \uccode`\~=`-\relax \uppercase{\def~}{\ifnum\mathcode`\0="8000
 \m at thcodeswitch0 \fi\global\let\FCs at gn\m at ne \global\FC at l=0}%
 %    \end{macrocode}
-% Now actually activate all these codes.
+%Now actually activate all these codes.
 %    \begin{macrocode}
 \mathcode`-="8000 \mathcode`+="8000 \mathcode`.="8000
 %    \end{macrocode}
-% These three remain active until the |$| in |\e at fi| is encountered.
-% The following ones will, except in the \<empty> case, have their activeness 
-% turned off at some time.
+%These three remain active until the |$| in |\e at fi| is encountered.
+%The following ones will, except in the \<empty> case, have their activeness 
+%turned off at some time.
 %    \begin{macrocode}
-\m at thcodeswitch1 \def\actdecm at rk##1##2\relax{%
-\ifx##1.\relax \mathcode`,="8000 \else \mathcode`##1="8000 \fi}%
-\afterassignment\actdecm at rk\count@#3\relax}
+\m at thcodeswitch1 \afterassignment\actdecm at rk\count@#3\relax}
 %    \end{macrocode}
-% \end{macro}
-% \begin{macro}{\e at fi}
-% If the digits are still active then either nothing was entered or only
-% characters that did not deactivate the digits were entered.  In 
-% both cases the output should be \<empty>.  To flag this outside
-% the group that started with the opening |$| of |\b at fi|, |\FC at r| is set
-% globally to a negative value.  This doesn't harm, because it didn't 
-% contain relevant information anyway.  Outside the group, the sign
-% of |\FC at r| can then be tested.  This is a slight misuse of this
-% |\count|, but now it's documented.  In effect, |\FC at r| can only be~|-1|, 
-% |1|, or at least~|10|, so the comparison |\ifnum\FC at r>0| does not miss~0.
+%\end{macro}
+%\begin{macro}{\sep at xt}
+%\begin{macro}{\actdecm at rk}
+%\begin{macro}{\deactdecm at rk}
+%\begin{macro}{\d at cm}
+%Again a few small macros to do important work. At first |\sep at xt| to extract
+%the first character of |#1|, which in most cases will be the only character.
+%Then |\actdecm at rk| and |\deactdecm at rk| to activate and deactive respectively the
+%decimal mark.  Finally, |\d at cm| captures a |\mathcode| for further investigation.
 %    \begin{macrocode}
+\def\sep at xt#1#2\sep at xt{\def\sep at rator{#1}}
+\def\actdecm at rk#1#2\relax{\ifx#1.\relax \mathcode`,="8000
+ \else \mathcode`#1="8000 \fi}
+\def\deactdecm at rk#1#2\relax{\mathcode`#1=0 }%
+\def\d at cm#1#2{\count@=\mathcode`#1 }
+%    \end{macrocode}
+%\end{macro}
+%\end{macro}
+%\end{macro}
+%\end{macro}
+%\begin{macro}{\e at fi}
+%If the digits are still active then either nothing, or only
+%characters that did not deactivate the digits were entered.  In 
+%both cases the output should be \<empty>.  To flag this situation outside
+%the group that started with the opening |$| of |\b at fi|, |\FC at r| is set
+%globally to a negative value.  This doesn't harm, because it didn't 
+%contain relevant information anyway.  Outside the group, the sign
+%of |\FC at r| can then be tested.  This is a slight misuse of this
+%|\count|, but now it's documented.  In effect, |\FC at r| can only be~$-1$, 
+%1, or at least~10, so the comparison |\ifnum\FC at r>0| does not miss~0.
+%    \begin{macrocode}
 \def\e at fi{\ifnum\mathcode`\0="8000 \global\FC at r=\m at ne\fi$\egroup
 \ifnum\FC at r>0
 %    \end{macrocode}
-% If there was no decimal mark or if there was a decimal mark but no 
-% decimal part, |\FC at r| will still be~1, which doesn't parse well with
-% |\secd at xt|, so a zero is appended, i.e., yielding~|10|.
+%If there was no decimal mark or if there was a decimal mark but no 
+%decimal part, |\FC at r| will still be~1, which doesn't parse well with
+%|\secd at xt|, so a zero is appended, i.e., yielding~|10|.
 %    \begin{macrocode}
  \ifnum\FC at r=1 \FC at r=10 \fi
 %    \end{macrocode}
-% Next is a loop for bringing the decimal part in the correct way to
-% the integer part.  The loop is performed the number of decimal
-% digits to be printed (the~2 in |3,2| of the default setting).
+%Next is a loop for bringing the decimal part in the correct way to
+%the integer part.  This loop is performed the number of decimal
+%digits to be printed (the~2 in |3,2| of the default setting).  The higher 
+%this number is, e.g., 6~when |3,6| is chosen as |#3|---but who does that?---,
+%the lower the maximum initial value for |\FC at l| can be, before a low-level 
+%\TeX\ arithmetic overflow will occur, so don't overdo it.
 %    \begin{macrocode}
- \def\i at ts##1##2{\count0=##2}
- \afterassignment\i at ts\count@\sp at l
- \loop\ifnum\count0>0 \multiply\FC at l by 10
-  \expandafter\secd at xt\number\FC at r\secd at xt \advance\count0 by \m at ne
- \repeat
+\afterassignment\i at ts\count@\sp at l
+ \loop\ifnum\count0>0 \multiply\FC at l by 10 \expandafter\secd at xt
+ \number\FC at r\secd at xt \advance\count0 by \m at ne \repeat
 %    \end{macrocode}
-% This also means that if you provided more decimal digits than this, the excess 
-% digit(s) will not be handled.  This is truncation, not rounding!  If all 
-% truncated digits are zero, this truncation is a no-op and they are silently ignored,
-% see the example Table~\ref{tab:ex10}, 
-% \begin{table}[htb]
-% \newcolumntype{d}{D{,}{,}{-1}}
-% \caption{Truncating excess digits.}
-% \label{tab:ex10}
-% \begin{tabular}{@{}ldfl@{}}
-% \toprule
-% composer & \multicolumn1c{raw entry} & \leeg{debt} & remark \\
-% \midrule
-% Berg   &      123,450  & 123,450  & ``0'' silently ignored \\
-% Eisler &      234,567  & 234,567  & ``7'' ignored with warning \\
-% Sch\"onberg & 345,6709 & 345,6709 & ``09'' ignored with warning \\
-% Webern &        2,3456 &   2,3456 & ``56'' ignored with warning \\
-% \sumline
-% \bottomrule
-% \end{tabular}
-% \end{table}
-% that was created with |@{}ldfl@{}| (|d| for centering on the decimal
-% mark~\cite{dcolumn}) as tabular key. If, however, at least one of them is 
-% not zero, a |\PackageWarning| will be given, showing the excess digit(s). 
+%This also means that if more decimal digits than this are provided, the excess 
+%digit(s) will not be handled.  This is truncation, not rounding!  If all 
+%truncated digits are zero, this truncation is exact and they are silently ignored,
+%see the example Table~\ref{tab:ex10}, 
+%\begin{table}[htb]
+%\newcolumntype{d}{D{,}{,}{-1}}
+%\caption{Truncating excess digits.}
+%\label{tab:ex10}
+%\begin{tabular}{@{}ldfl@{}}
+%\toprule
+%composer & \multicolumn1c{raw entry} & \leeg{debt} & remark \\
+%\midrule
+%Berg        & 123,450  & 123,450  & silently ignoring digit ``0''   \\
+%Eisler      & 234,563  & 234,563  & warning: digit ``3'' ignored    \\
+%Sch\"onberg & 345,6704 & 345,6704 & warning: digits ``04'' ignored  \\
+%Webern      &   2,3456 &   2,3456 & warning: digits ``56'' ignored, i.e.,\\
+%            &          &          & \quad without rounding this entry to 2,35  \\
+%\sumline
+%\bottomrule
+%\end{tabular}
+%\end{table}
+%that was created with |@{}ldfl@{}| (|d| for centering on the decimal
+%mark~\cite{dcolumn}) as tabular key. If, however, at least one of them is 
+%not zero, a |\PackageWarning| will be given, showing the discarded digit(s). 
+%There is nothing magical about the constant~19 below: it is simply the
+%concatenation of~|1| and the largest decimal digit.  The smallest next value
+%that |\FC at r| can have is~100, so all values from~19 up to and including~99
+%would have worked here.
 %    \begin{macrocode}
  \ifnum\expandafter\@gobble\number\FC at r>0
-   \def\tw at l##1##2\relax{##2}
    \PackageWarning{fcolumn}{Excess digit\ifnum\FC at r>19 s\fi\space
    ``\expandafter\tw at l\number\FC at r\relax'' in decimal part
    \MessageBreak ignored near or}
  \fi
 %    \end{macrocode}
-% Don't forget to correct for the sign (once this is done, |\FCs at gn|
-% is free again and can and will be used for other purposes).
-% Then output the result.
+%Don't forget to correct for the sign (once this is done, |\FCs at gn|
+%is free again and can and will be used for other purposes).
+%Then output the result.
 %    \begin{macrocode}
- \ifx\FCs at gn\m at ne\relax \FC at l=-\FC at l \fi
- \zetg at ld{\sp at l}{\FC at l}%
+ \ifx\FCs at gn\m at ne\relax\FC at l=-\FC at l\fi\zetg at ld{\sp at l}{\FC at l}%
 \fi}
 %    \end{macrocode}
-% \end{macro}
-% \begin{macro}{\secd at xt}
-% The second digit from the left is needed from a string of characters
-% representing a decimal number. The macro |\secd at xt| extracts that digit,
-% provided that the number has at least two digits, but that is guaranteed by
-% |\e at fi|.  That second digit is then added to |\FC at l|. 
-% A new number is assigned to |\FC at r|, that consists 
-% of the digits of |#1#3|.  If |#3| was empty, 10 is assigned.  In this way
-% |\FC at r| is prepared for insertion in the next invocation of |\secd at xt|.  
-% In iterating: 1234 yields~134, yields~14, yields~10, stays~10, etc. 
+%\end{macro}
+%\begin{macro}{\i at ts}
+%\begin{macro}{\tw at l}
+%Macro |\e at fi| uses two very tiny macros, given here.  In previous versions
+%these were defined inside |\e at fi|, so they also got undefined when |\e at fi|
+%ended.  The current solution makes execution a bit faster.
 %    \begin{macrocode}
-\def\secd at xt#1#2#3\secd at xt{\advance\FC at l by #2
-\FC at r=#1#3 \ifnum\FC at r=1 \FC at r=10 \fi}
+\def\i at ts#1#2{\count0=#2} \def\tw at l#1#2\relax{#2}
 %    \end{macrocode}
-% \end{macro}
-% \subsection{Adaptations to existing macros}
-% \begin{macro}{\@array}
-% The definition of |\@array| had to be extended slightly because it should
-% also include |\@mksumline| (acting on the same |#2| as |\@mkpream| gets).
-% This change is transparant: it only adds functionality and if you don't 
-% use that, you won't notice the difference.  It starts by just copying the
-% original definition from v2.4k of the |array| package~\cite{array},
-% compacted.
+%\end{macro}
+%\end{macro}
+%\begin{macro}{\secd at xt}
+%The second digit from the left is needed from a string of characters
+%representing a decimal number (that should be at least 10 and start with
+%a~|1|, but that is guaranteed by |\e at fi|).  The macro |\secd at xt| extracts
+%that digit, which is then added to |\FC at l|. A new number is assigned to 
+%|\FC at r|, that consists of the digits of |1#2|, unless |#2| was empty; in 
+%that case~10 is assigned.  In this way |\FC at r| is prepared for insertion 
+%in the next invocation of |\secd at xt|.  In iterating: 1234 yields~134, 
+%yields~14, yields~10, stays~10, etc. 
 %    \begin{macrocode}
+\def\secd at xt1#1#2\secd at xt{\advance\FC at l by #1 
+ \FC at r=1#2 \ifnum\FC at r=1 \FC at r=10 \fi}
+%    \end{macrocode}
+%\end{macro}
+%\subsection{Adaptations to existing macros}
+%\begin{macro}{\@array}
+%The definition of |\@array| had to be extended slightly because it should
+%also include |\@mksumline| (acting on the same |#2| as |\@mkpream| gets).
+%This change is transparant: it only adds functionality and if you don't 
+%use that, you won't notice the difference.  It starts by just copying the
+%original definition from v2.4k (or later) of the |array| package~\cite{array},
+%compacted.
+%    \begin{macrocode}
 \def\@array[#1]#2{\@tempdima\ht\strutbox\advance\@tempdima by
  \extrarowheight\setbox\@arstrutbox\hbox{\vrule\@height\arraystretch 
  \@tempdima\@depth\arraystretch\dp\strutbox\@width\z@}%
 %    \end{macrocode}
-% Here comes the first change: after each |\\| (or |\cr| for that matter)
-% the \meta{count} |\FCsc at l| should be reset.  This is easiest done with
-% |\everycr|, but |\everycr| is put to |{}| by |\ialign|, so that definition
-% should change.  The resetting should be done globally.
+%Here comes the first change: after each |\\| (or |\cr| for that matter)
+%the \meta{count} |\FCsc at l| should be reset.  This is easiest done with
+%|\everycr|, but |\everycr| is put to |{}| by |\ialign|, so that definition
+%should change.  The resetting should be done globally.
 %    \begin{macrocode}
 \def\ialign{\everycr{\noalign{\global\FCsc at l=0 }}\tabskip\z at skip\halign}
 %    \end{macrocode}
-% Then the definition is picked up again.
+%Then the definition is picked up again.
 %    \begin{macrocode}
 \begingroup\@mkpream{#2}\xdef\@preamble{\noexpand\ialign\@halignto
 \bgroup\@arstrut\@preamble\tabskip\z@\cr}%
-\endgroup 
 %    \end{macrocode}
-% The combination |\endgroup| in the previous chunk followed by |\begingroup|
-% in the next chunk seems redundant, but that is not the case: the |\endgroup|
-% restores everything that was not |\global|.  With the following |\begingroup|
-% it is ensured that |\@mksumline| experiences the same settings as |\@mkpream| did.
+%Before ending the |\begingroup|, the sumline is created.
+%As a side product of |\@mksumline| also the \meta{count}s for the totals 
+%and \meta{dimen}s for the widths of the columns are created.  All columns 
+%should start fresh, i.e., totals are~0 and widths are 0\thinspace pt.
 %    \begin{macrocode}
-\begingroup\@mksumline{#2}\endgroup
+\@mksumline{#2}\endgroup\res at tsumline
 %    \end{macrocode}
-% As a side product of |\@mksumline| also the \meta{count}s for the totals 
-% and \meta{dimen}s for the widths of the colums are created.  The columns 
-% should start fresh, i.e., totals are~0 and widths are 0\thinspace pt.
+%From here on it is just the old definition of |array.sty|.
 %    \begin{macrocode}
-\res at tsumline
-%    \end{macrocode}
-% From here on it is just the old definition of |array.sty|.
-%    \begin{macrocode}
 \@arrayleft\if #1t\vtop\else\if#1b\vbox\else\vcenter\fi\fi\bgroup 
 \let\@sharp ##\let\protect\relax\lineskip\z@\baselineskip\z@
 \m at th \let\\\@arraycr \let\tabularnewline\\\let\par\@empty \@preamble} 
 %    \end{macrocode}
-% Because |\@array| was changed here and it is this version that should
-% be used, |\@@array| should be |\let| equal to |\@array| again.
+%Because |\@array| was changed here and it is this version that should
+%be used, |\@@array| should be |\let| equal to |\@array| again.
 %    \begin{macrocode}
 \let\@@array=\@array
 %    \end{macrocode}
-% \end{macro}
-% Much of the techniques here are repeated in |\LT at array|.
-% \subsection{The sumline, close to a postamble}
-% \begin{macro}{\@mksumline}
-% The construction of the sumline is much easier than that of the preamble
-% for several reasons.  It may be safely assumed that the preamble specifier
-% is grammatically correct because it has already been screened by |\@mkpream|.
-% Furthermore, most entries will simply add nothing to |\s at ml@ne|, e.g., |@|, |!|,
-% and \verb+|+ can be fully ignored. Ampersands are only inserted by |c|, |l|, |r|,  
-% |p|, |m|, and |b|.  So, if |\a| is a macro that prints the desired result of the
-% column (see below), then a specifier like |@{}lflf@{}| will yield the sumline 
-% |&\a&&\a\\|.  Had the specifier been \verb+l|f||@{   }l|f+, then the same
-% sumline must be constructed: all difficulties are already picked up and 
-% solved in the creation of the preamble.
+%\end{macro}
+%Much of the techniques here are repeated in |\LT at array|, see Section~\ref{multipage}.
+%\subsection{The sumline, close to a postamble}
+%\begin{macro}{\@mksumline}
+%The construction of the sumline is much easier than that of the preamble
+%for several reasons.  It may be safely assumed that the preamble specifier
+%is grammatically correct because it has already been screened by |\@mkpream|.
+%Furthermore, most entries will simply add nothing to |\s at ml@ne|, e.g., |@|, |!|,
+%and \verb+|+ can be fully ignored. Ampersands are only inserted by |c|, |l|, |r|,  
+%|p|, |m|, and |b|.  So, if |\a| is a macro that prints the desired result of the
+%column (see below), then a specifier like |@{}lflf@{}| will yield the sumline 
+%|&\a&&\a\\|.  Had the specifier been \verb+l|f||@{   }l|f+, then the same
+%sumline must be constructed: all difficulties are already picked up and 
+%solved in the creation of the preamble.
 %
-% In reality the sumline must be constructed from the expanded form of the
-% specifier, so |@{}lf@{}| will expand as
-% |@{}l>{\b at fi{.}{,}{3,2}{}}r<{\e at fi}@{}|. The rules for constructing the 
-% sumline are now very simple:
-% \begin{compactitem}[$\bullet$]
-% \item add an ampersand when |c|, |l|, |r|, |p|, |m|, or |b| is found, 
-% unless it is the first one (this is the same as in the preamble);
-% \item add a |\a| when |<{\e at fi}| is found;
-% \item ignore everything else;
-% \item close with a |\\|.
-% \end{compactitem}
-% (For completeness' sake it should be mentioned that prior to the |\\| also the column
-% check is inserted, see |\aut at check|.)
-% To discriminate, a special version of |\@testpach|~\cite{array}
-% could be written, but that is not necessary: |\@testpach| can do all the work,
-% although much of it will be discarded.  Here speed is sacrificed for space
-% and this can be afforded because the creation of the sumline is done only 
-% once per |\tabular| or |\longtable|.
-% 
-% The start is copied from |\@mkpream|.
+%In reality the sumline must be constructed from the expanded form of the
+%specifier, so |@{}lf@{}| will expand as
+%|@{}l>{\b at fi.,{3,2}{}}r<{\e at fi}@{}|. The rules for constructing the 
+%sumline are now very simple:
+%\begin{compactitem}[$\bullet$]
+%\item add an ampersand when |c|, |l|, |r|, |p|, |m|, or |b| is found, 
+%unless it is the first one (this is the same as in the preamble);
+%\item add a |\a| when |<{\e at fi}| is found;
+%\item ignore everything else;
+%\item close with a |\\|.
+%\end{compactitem}
+%(For completeness' sake it should be mentioned that prior to the |\\| also the column
+%check is inserted, see |\aut at check|.)
+%To discriminate, a special version of |\@testpach|~\cite{array}
+%could be written, but that is not necessary: |\@testpach| can do all the work,
+%although much of it will be discarded.  Here speed is sacrificed for space
+%and this can be afforded because the creation of the sumline is done only 
+%once per |tabular| or |longtable|.
+%
+%The start is copied from |\@mkpream|.
 %    \begin{macrocode}
 \def\@mksumline#1{\gdef\s at ml@ne{}\@lastchclass 4 \@firstamptrue
 %    \end{macrocode}
-% At first the column number is reset and the actual code for what was
-% called |\a| above is made inactive.
+%At first the column number is reset and the actual code for what was
+%called |\a| above is made inactive.
 %    \begin{macrocode}
-\global\FCsc at l=0
-\let\prr at sult=\relax
+\global\FCsc at l=0 \let\prr at sult=\relax
 %    \end{macrocode}
-% Then |\@mkpream| is picked up again.
+%Then |\@mkpream| is picked up again.
 %    \begin{macrocode}
 \@temptokena{#1}\@tempswatrue\@whilesw\if at tempswa\fi{\@tempswafalse
 \the\NC at list}\count0\m at ne\let\the at toks\relax\prepnext at tok
 %    \end{macrocode}
-% Next is the loop over all tokens in the expanded form of the specifier.  The change
-% with respect to |\@mkpream| is that the body of the loop is now only dealing
-% with F-classes~0, 2, and 10.  What to do in those cases is of course different from
-% what to do when constructing the preamble, so special definitions are created, see
-% below.
+%Next is the loop over all tokens in the expanded form of the specifier.  The change
+%with respect to |\@mkpream| is that the body of the loop is now only dealing
+%with F-classes~0, 2, and 10.  What to do in those cases is of course different from
+%what to do when constructing the preamble, so special definitions are created, see
+%below.
 %    \begin{macrocode}
 \expandafter\@tfor\expandafter\@nextchar\expandafter:\expandafter=\the
 \@temptokena\do{\@testpach\ifcase\@chclass\@classfz\or\or\@classfii\or
 \or\or\or\or\or\or\or\@classfx\fi\@lastchclass\@chclass}%
 %    \end{macrocode}
-% And the macro is finished by applying the |\aut at check| and appending the 
-% |\\| to the sumline.  Note that the |\aut at check| is performed {\itshape 
-% in\/} the last column, but since it does not put anything in the 
-% horizontal list---it only writes to screen and transcript file---, this
-% is harmless.
+%And the macro is finished by applying the |\aut at check| and appending the 
+%|\\| to the sumline.  Note that the |\aut at check| is performed {\itshape 
+%in\/} the last column, but since it does not put anything in the 
+%horizontal list---it only writes to screen and transcript file---, this
+%is harmless.
 %    \begin{macrocode}
 \xdef\s at ml@ne{\s at ml@ne\noexpand\aut at check\noexpand\\}}
 %    \end{macrocode}
-% \end{macro}
-% \begin{macro}{\@addtosumline}
-% Macro |\@addtosumline|, as its name already suggests, adds something to the 
-% sumline, like its counterpart |\@addtopreamble| did to the preamble.
+%\end{macro}
+%\begin{macro}{\@addtosumline}
+%Macro |\@addtosumline|, as its name already suggests, adds something to the 
+%sumline, like its counterpart |\@addtopreamble| did to the preamble.
 %    \begin{macrocode}
 \def\@addtosumline#1{\xdef\s at ml@ne{\s at ml@ne #1}}
 %    \end{macrocode}
-% \end{macro}
-% \begin{macro}{\@classfx}
-% Class~f10 for the sumline creation is a stripped down version of |\@classx|: add an
-% ampersand unless it is the first.  It deals with the specifiers |b|, |m|, |p|, |c|,
-% |l|, and |r|.
+%\end{macro}
+%\begin{macro}{\@classfx}
+%Class~f10 for the sumline creation is a stripped down version of |\@classx|: add an
+%ampersand unless it is the first.  It deals with the specifiers |b|, |m|, |p|, |c|,
+%|l|, and |r|.
 %    \begin{macrocode}
 \def\@classfx{\if at firstamp \@firstampfalse \else \@addtosumline &\fi} 
 %    \end{macrocode}
-% \end{macro}
-% \begin{macro}{\@classfz}
-% Class~f0 is applicable for specifiers |c|, |l|, and |r|, and if the arguments
-% of |p|, |m|, or |b| are given.  The latter three cases, with |\@chnum| is 0, 
-% 1, or~2 should be ignored and the first three cases are now similar to class~f10.
+%\end{macro}
+%\begin{macro}{\@classfz}
+%Class~f0 is applicable for specifiers |c|, |l|, and |r|, and if the arguments
+%of |p|, |m|, or |b| are given.  The latter three cases, with |\@chnum| is 0, 
+%1, or~2 should be ignored and the first three cases are now similar to class~f10.
 %    \begin{macrocode}
 \def\@classfz{\ifnum\@chnum<\thr@@ \@classfx\fi}
 %    \end{macrocode}
 % \end{macro}
-% \begin{macro}{\@classfii}
-% Here comes the nice and nasty part.  Class~f2 is applicable if a~|<| is 
-% specified.  This is tested by checking |\@lastchclass|, which should be 
-% equal to~8.  Then it is checked that the argument to |<| is indeed 
-% |\e at fi|.  This check is rather clumsy but this was the first way, after
-% many attempts, that worked.  It is necessary because the usage of |<|
-% is not restricted to |\e at fi|: the user may have specified other 
-% \LaTeX-code using~|<|.
+%\begin{macro}{\@classfii}
+%Here comes the nice and nasty part.  Class~f2 is applicable if a~|<| is 
+%specified.  This is tested by checking |\@lastchclass|, which should be 
+%equal to~8.  Then it is checked that the argument to |<| is indeed 
+%|\e at fi|.  This check is rather clumsy but this was the first way, after
+%many attempts, that worked.  It is necessary because the usage of |<|
+%is not restricted to |\e at fi|: the user may have specified other 
+%\LaTeX-code using~|<|.
 %    \begin{macrocode}
 \def\@classfii{\ifnum\@lastchclass=8 
  \edef\t at stm{\expandafter\string\@nextchar}
- \edef\t at stn{\string\e at fi}
- \ifx\t at stm\t at stn
+ \edef\t at stn{\string\e at fi} \ifx\t at stm\t at stn
 %    \end{macrocode}
-% If both tests yield |true|, i.e., we encountered a |<{\e at fi}| where we expect
-% one to find, then add the macro to typeset everything.
+%If both tests yield |true|, i.e., we encountered a |<{\e at fi}| where we expect
+%one to find, then add the macro to typeset everything.
 %    \begin{macrocode}
   \@addtosumline{\prr at sult}
 %    \end{macrocode}
-% But we're not done yet: in the following lines of code the appropriate 
-% \meta{count}s and \meta{dimen}s are created, if necessary.  Note that 
-% |\FCsc at l| was set to~0 in the beginning of |\@mksumline|, so it is
-% well-defined when |\@classfii| is used.
+%But we're not done yet: in the following lines of code the appropriate 
+%\meta{count}s and \meta{dimen}s are created, if necessary.  Note that 
+%|\FCsc at l| was set to~0 in the beginning of |\@mksumline|, so it is
+%well-defined when |\@classfii| is used.
 %    \begin{macrocode}
-  \global\advance\FCsc at l by \@ne 
-  \ifnum\FCsc at l>\FCtc at l
+  \global\advance\FCsc at l by \@ne \ifnum\FCsc at l>\FCtc at l
 %    \end{macrocode}
-% Apparently the number of requested columns is larger than the currently
-% available number of relevant \meta{count}s and \meta{dimen}s, so new ones
-% should be created.  What is checked here is merely the existence of 
-% |\FCtot@<some romannumeral>|.  If it already exists---although it may not
-% even be a \meta{count}; that cannot be checked---it is not created by 
-% |fcolumn| and an error is given.  In case it is a \meta{count} you're just
-% lucky, and you could ignore that error, although any change to this 
-% \meta{count} is global anyway, so things will be overwritten.  In the
-% case it is not a \meta{count}, things will go haywire and you'll soon
-% find out.  The remedy then is to rename your \meta{count} prior to 
-% |fcolumn| to avoid this name clash.
+%Apparently the number of requested columns is larger than the currently
+%available number of relevant \meta{count}s and \meta{dimen}s, so new ones
+%should be created.  What is checked here is merely the existence of 
+%|\FCtot@<some romannumeral>|.  If it already exists---although it may not
+%even be a \meta{count}; that cannot be checked---it is not created by 
+%|fcolumn| and an error is given.  In case it is a \meta{count} you're just
+%lucky, and you could ignore that error, although any change to this 
+%\meta{count} is global anyway, so things will be overwritten.  In the
+%case it is not a \meta{count}, things will go haywire and you'll soon
+%find out.  The remedy then is to rename your \meta{count} prior to 
+%|fcolumn| to avoid this name clash.
 %    \begin{macrocode}
    \expandafter\ifx\csname FCtot@\romannumeral\FCsc at l\endcsname\relax
     \expandafter\newcount\csname FCtot@\romannumeral\FCsc at l\endcsname
@@ -1193,14 +1229,14 @@
     will get overwritten.}%
    \fi
 %    \end{macrocode}
-% And the same is applicable for the \meta{dimen}: in case of a name 
-% clash you have to rename your \meta{dimen} prior to |fcolumn|.
+%And the same is applicable for the \meta{dimen}: in case of a name 
+%clash you have to rename your \meta{dimen} prior to |fcolumn|.
 %    \begin{macrocode}
    \expandafter\ifx\csname FCwd@\romannumeral\FCsc at l\endcsname\relax
     \expandafter\newdimen\csname FCwd@\romannumeral\FCsc at l\endcsname
 %    \end{macrocode}
-% If the creation was successful, the \meta{count} |\FCtc at l| should be 
-% increased.
+%If the creation was successful, the \meta{count} |\FCtc at l| should be 
+%increased.
 %    \begin{macrocode}
     \global\FCtc at l=\FCsc at l
    \else
@@ -1214,40 +1250,41 @@
  \fi
 \fi}
 %    \end{macrocode}
-% Once created, it is not necessary to initialise them here because that
-% is done later in one go.
-% \end{macro}
-% \begin{macro}{\sumline}
-% The command for the sumline has one optional argument: the separation
-% between the rule and the total. By default this is 2\thinspace pt, but
-% the user may specify |\sumline[10pt]| if that separation needs to be
-% 10\thinspace pt.  The assignment needs to be global, because it is done
-% in the first column of the tabular, but is valid for the whole line.
+%Once created, it is not necessary to initialise them here because that
+%is done later in one go.
+%\end{macro}
+%\begin{macro}{\sumline}
+%The command for the sumline has one optional argument: the separation
+%between the rule and the total. By default this is 2\thinspace pt, but
+%the user may specify |\sumline[10pt]| if that separation needs to be
+%10\thinspace pt.  The assignment needs to be global, because it is done
+%in the first column of the tabular, but is valid for the whole line.
 %    \begin{macrocode}
 \newdimen\s at mlinesep
 \def\sumline{\@ifnextchar[\s at mline{\s at mline[2pt]}}
 \def\s at mline[#1]{\global\s at mlinesep=#1 \s at ml@ne}
 %    \end{macrocode}
-% In the introduction it was stated that |\sumline| has two options, but in 
-% reality that second option is the option to |\\| that is issued by |\s at ml@ne|.
-% \end{macro}
-% \begin{macro}{\prr at sult}
-% The macro |\prr at sult| actually puts the information together.  It starts
-% like |\leeg|.
+%In the introduction it was stated that |\sumline| has two options, but in 
+%reality that second option is the option to |\\| that is issued by |\s at ml@ne|.
+%\end{macro}
+%\begin{macro}{\prr at sult}
+%The macro |\prr at sult| actually puts the information together.  It starts
+%like |\leeg|.
 %    \begin{macrocode}
 \def\prr at sult{$\egroup \let\e at fi=\relax \let\FCform at t=\FCform at tt
 %    \end{macrocode}
-% Then the information for the last line is computed.  It is not sufficient
-% to calculate the width of the result (in points) to use that as the width
-% of the rule separating the individual entries and the result.  It may happen
-% that the sum is wider (in points) than any of the entries, e.g., when the
-% result of $6+6$ (using specifier~|3,2|) is typeset. The width of the rule 
-% should be equal to the width of |\hbox{$12{,}00$}| then.  On the other
-% hand the width of the rule when summing $24$ and $-24$ should be that of 
-% |\hbox{$-24{,}00$}| (or |\hbox{$(24{,}00$}|, see above), not the width of
-% the result |\hbox{$0{,}00$}|.  Therefore the maximum of all entry widths,
-% including the result, was calculated.
-%    \begin{macrocode}
+%Then the information for the last line is computed.  It is not sufficient
+%to calculate the width of the result (in points) to use that as the width
+%of the rule separating the individual entries and the result.  It may happen
+%that the sum is wider (in points) than any of the entries, e.g., when the
+%result of $6+6$ (using specifier~|3,2|) is typeset. The width of the rule 
+%should be equal to the width of |\hbox{$12{,}00$}| then.  On the other
+%hand the width of the rule when summing $24$ and $-24$ should be that of 
+%|\hbox{$-24{,}00$}| (or |\hbox{$(24{,}00$}|, see above), not the width of
+%the result |\hbox{$0{,}00$}|.  Therefore the maximum of all entry widths,
+%including the result, was calculated.  This excludes the extension to the
+%right in case parentheses are used, again for aesthetic reasons.
+%    \begin{macrocode}   
 \setbox0=\hbox{$\geldm at cro{\sp at l}{\number\csname
 FCtot@\romannumeral\FCsc at l\endcsname}$}%
 \ifdim\wd0>\csname FCwd@\romannumeral\FCsc at l\endcsname
@@ -1257,42 +1294,42 @@
 \vskip\s at mlinesep
 \hbox to \csname FCwd@\romannumeral\FCsc at l\endcsname{\hfil\unhbox0}}}
 %    \end{macrocode}
-% \end{macro}
-% \subsection{Other checks}
-% \begin{macro}{\leeg}
-% This macro is used to overrule the default behaviour of the pair |\b at fi| 
-% and |\e at fi|.  It starts with ending the groups in the 
-% same way that |\e at fi| would normally do.  Then the effect of |\e at fi|
-% (that is still in the preamble) is annihilated by |\let|ting it to 
-% be |\relax|.  This |\let| is only local to the current column.  Then
-% the argument to |\leeg| is treated in a similar way as |\e at fi| would
-% do with a typeset number.
+%\end{macro}
+%\subsection{Other checks}
+%\begin{macro}{\leeg}
+%This macro is used to overrule the default behaviour of the pair |\b at fi| 
+%and |\e at fi|.  It starts with ending the groups in the 
+%same way that |\e at fi| would normally do.  Then the effect of |\e at fi|
+%(that is still in the preamble) is annihilated by |\let|ting it to 
+%be |\relax|.  This |\let| is only local to the current column.  Then
+%the argument to |\leeg| is processed in the normal way for a right 
+%aligned column.
 %
-% Since the user may from time to time also need a column entry other than 
-% a number in the table, e.g., |\leeg{p.m.}|, this definition is without 
-% at-sign. By defining |\leeg| in this way, instead of |\multicolumn1r{}|
-% (which contains |\omit|), the default spacing in the column is retained.
-% It doesn't alter the width of the sumrule, but has its normal effect on
-% the column width, so be careful: don't insert the unabridged version of
-% Romeo and Juliet~\cite{RJ} here.  It is not typeset in math mode, nor 
-% does it use the extra (formatting) information of |#4| of the fcolumn,
-% so you're completely free here.
+%Since the user may from time to time also need a column entry other than 
+%a number in the table, e.g., |\leeg{p.m.}|, this definition is without 
+%at-sign. By defining |\leeg| in this way, instead of |\multicolumn1r{}|
+%(which contains |\omit|), the default spacing in the column is retained.
+%It doesn't alter the width of the sumrule, but has its normal effect on
+%the column width, so be careful: don't insert the unabridged version of
+%Romeo and Juliet~\cite{RJ} here.  It is not typeset in math mode, nor 
+%does it use the extra (formatting) information of |#4| of the fcolumn,
+%so you're completely free here.
 %    \begin{macrocode}
 \def\leeg#1{$\egroup \let\e at fi=\relax #1}
 %    \end{macrocode}
-% Note that anything may be given as argument to |\leeg|, so in principle
-% it can also be used to cheat: |\leeg{0,03}| will insert the text~|0,03|
-% in the table but it doesn't increase the totals of that column by~3 
-% (assuming |3,2| coding for the separations).  But you won't cheat, won't you?
-% \end{macro}
-% \begin{macro}{\res at tsumline}
-% Since all changes to the totals and widths of the columns are global,
-% they have to be reset actively at the start of a tabular or array.
-% That is an action by itself, but it may occur more often, on request
-% of the user, therefore a special macro is defined.  A side effect of
-% this macro is that |\FCsc at l| is reset to~0. This is an advantage:
-% it should be zero at the beginning of a line in the table (for other
-% lines this is done by the |\\|).
+%Note that anything may be given as argument to |\leeg|, so in principle
+%it can also be used to cheat: |\leeg{0,03}| will insert the text~|0,03|
+%in the table but it doesn't increase the totals of that column by~3 
+%(assuming |3,2| coding for the separations).  But you won't cheat, won't you?
+%\end{macro}
+%\begin{macro}{\res at tsumline}
+%Since all changes to the totals and widths of the columns are global,
+%they have to be reset actively at the start of a tabular or array.
+%That is an action by itself, but it may occur more often, on request
+%of the user, therefore a special macro is defined.  A side effect of
+%this macro is that |\FCsc at l| is reset to~0. This is an advantage:
+%it should be zero at the beginning of a line in the table (for other
+%lines this is done by the |\\|).
 %    \begin{macrocode}
 \def\res at tsumline{\FCsc at l=\FCtc at l\loop\ifnum\FCsc at l>0
  \global\csname FCtot@\romannumeral\FCsc at l\endcsname=0
@@ -1299,102 +1336,107 @@
  \global\csname FCwd@\romannumeral\FCsc at l\endcsname=\z@
  \advance\FCsc at l by \m at ne\repeat}
 %    \end{macrocode}
-% \end{macro}
-% \begin{macro}{\resetsumline}
-% To reset a sumline within a table, it should be done within a |\noalign|.
+%\end{macro}
+%\begin{macro}{\resetsumline}
+%To reset a sumline within a table, it should be done within a |\noalign|.
 %    \begin{macrocode}
 \def\resetsumline{\noalign{\res at tsumline}}
 %    \end{macrocode}   
-% \end{macro}
-% \begin{macro}{\aut at check}
-% If the number of F-columns is even, it is assumed that they are part of 
-% two sets of columns of which each column of the first set should balance
-% the appropriate column of the second set.  If on the other hand the number
-% of columns is odd, then at least one column has nothing to balance against
-% and no checking occurs.  It is correct to check for oddness of |\FCsc at l| 
-% since this |\aut at check| is only performed in the last column of the 
-% tabular: the value of |\FCsc at l| now equals the number of columns used 
-% in the current tabular (and may differ from |\FCtc at l|).
+%\end{macro}
+%\begin{macro}{\aut at check}
+%If the number of |F|-columns is even, it is assumed that they are part of 
+%two sets of columns of which each column of the first set should balance
+%the appropriate column of the second set.  If on the other hand the number
+%of columns is odd, then at least one column has nothing to balance against
+%and no checking occurs.  It is correct to check for oddness of |\FCsc at l| 
+%since this |\aut at check| is only performed in the last column of the 
+%tabular: the value of |\FCsc at l| now equals the number of columns used 
+%in the current tabular (and may be less than |\FCtc at l|).
 %
-% The output is only to screen and the transcript file; it doesn't change
-% the appearance of your document, so in case the assumption is wrong you
-% can safely ignore the result and go on.  The \meta{count}s 0 and~1 are 
-% used here and this can be done because any content of those \meta{count}s
-% from previous calculations has become irrelevant at this moment.
+%The output is only to screen and the transcript file; it doesn't change
+%the appearance of your document, so in case the assumption is wrong you
+%can safely ignore the result and go on.  The \meta{count}s~0 and~1 are 
+%used here and this can be done because any content of those \meta{count}s
+%from previous calculations has become irrelevant at this moment.
 %
-% If the list |\FC at chklist| is empty, the list for the automatic check is
-% generated (which will remain empty if |\FCsc at l| is odd).
+%If the list |\FC at chklist| is empty, the list for the automatic check is
+%generated (which will remain empty if |\FCsc at l| is odd).
 %    \begin{macrocode}
 \def\FC at chklist{}
 \def\aut at check{\ifx\@empty\FC at chklist\relax
  \ifodd\FCsc at l\else 
-  \count0=\@ne \count1=\FCsc at l 
-  \divide\count1 by \tw@
-  \loop\ifnum\count1<\FCsc at l
-   \advance\count1 by \@ne
+  \count0=\@ne \count1=\FCsc at l \divide\count1 by \tw@
+  \loop\ifnum\count1<\FCsc at l \advance\count1 by \@ne
    \xdef\FC at chklist{\FC at chklist\number\count0,\number\count1;}%
-   \advance\count0 by\@ne
-  \repeat
+   \advance\count0 by\@ne \repeat
  \fi
 \fi
 %    \end{macrocode}
-% Then this list is peeled off and processed.
+%Then this list is peeled off and processed.
+%The comparison is done between the internal representation of the totals,
+%so this only makes sense when the decimal part, i.e., the |2| of |3,2| in
+%the default value for |#3| of~|f| is the same for both columns.  That is
+%almost always the case due to the nature of this type of tabulars.  The 
+%\meta{count} |\FC at l| is free to be used for the calculations needed here.
 %    \begin{macrocode}
-\loop 
-\ifx\FC at chklist\@empty\let\FCs at gn=\@ne\else\let\FCs at gn=\m at ne\fi
-\ifx\FCs at gn\m at ne
- \expandafter\fre at t\FC at chklist\end
- \ifnum\csname FCtot@\romannumeral\count0\endcsname=
-  \csname FCtot@\romannumeral\count1\endcsname\else
-  \PackageWarning{fcolumn}{F-columns \number\count0 \space and
-  \number\count1 \space do not balance due to \string\sumline
-  \MessageBreak near or}%
+\loop\ifx\FC at chklist\@empty\else
+ \expandafter\fre at t\FC at chklist\fre at t
+ \FC at l=\csname FCtot@\romannumeral\count0\endcsname 
+ \advance\FC at l by -\csname FCtot@\romannumeral\count1\endcsname
+ \ifnum\FC at l=0 \else \ifnum\FC at l<0 \FC at l=-\FC at l \fi
+  \PackageWarning{fcolumn}{Representations of F-columns \number\count0
+  \space and \number\count1 \space differ by\MessageBreak
+  \number\FC at l\space due to \string\sumline\space near or}%
  \fi
 \repeat}
 %    \end{macrocode}
-% When |\aut at check| is finished, |\FC at chklist| is empty again, i.e., well
-% prepared for the next time it is used.  This also means that the default
-% behaviour kicks in again: if that's not what you want, you should
-% specify the appropriate |\checkfcolumns| lines again.
-% \end{macro}
-% \begin{macro}{\fre at t}
-% This function eats the first two numbers off |\FC at chklist|.
+%When |\aut at check| is finished, |\FC at chklist| is empty again, i.e., well
+%prepared for the next time it is used.  This also means that the default
+%behaviour kicks in again: if that's not what you want, you should
+%specify the appropriate |\checkfcolumns| lines again.
+%\end{macro}
+%\begin{macro}{\fre at t}
+%This function eats the first two numbers off |\FC at chklist|.
 %    \begin{macrocode}
-\def\fre at t#1,#2;#3\end{\count0=#1 \count1=#2 \xdef\FC at chklist{#3}}
+\def\fre at t#1,#2;#3\fre at t{\count0=#1 \count1=#2 \xdef\FC at chklist{#3}}
 %    \end{macrocode}
-% \end{macro}
-% \begin{macro}{\checkfcolumns}
-% But the assumptions for |\aut at check| may be wrong, therefore manual
-% control on this checking is also made possible here. The macro 
-% |\checkfcolumns| provides a way to the user to check that the appropriate 
-% columns are balanced (as it should in a balance).  Arguments |#1| and 
-% |#2| are the |F|-column numbers to compare.  It is the responsibility of 
-% the user to provide the correct numbers here, otherwise bogus output 
-% is generated.  If this manual check is inserted, the automatic check
-% will not be performed.
+%\end{macro}
+%\begin{macro}{\checkfcolumns}
+%But the assumptions for |\aut at check| may be wrong, therefore manual
+%control on this checking is also made possible here. The macro 
+%|\checkfcolumns| provides a way to the user to check that the appropriate 
+%columns are balanced (as it should in a balance).  Arguments |#1| and 
+%|#2| are the |F|-column numbers to compare.  It is the responsibility of 
+%the user to provide the correct numbers here, otherwise bogus output 
+%is generated.  If this manual check is inserted, the automatic check
+%will not be performed.
 %    \begin{macrocode}
 \def\checkfcolumns#1#2{\noalign{\xdef\FC at chklist{\FC at chklist #1,#2;}}}
 %    \end{macrocode}
-% \end{macro}
-% \subsection{Support for package longtable}
-% Package |longtable| is used for tables that may span multiple pages.  The
-% packages |fcolumn| and |longtable| work together provided |longtable| is 
-% loaded first, so that |fcolumn| can adapt one definition of |longtable|. If
-% |longtable| is not loaded, it's a waste of memory having that definition, so
-% it is only defined when necessary.  For that reason the user is warned (not 
-% loading |longtable| is obviously not an error if you don't use it) if 
-% |fcolumn| is loaded without prior loading of |longtable|.
+%\end{macro}
+%\subsection{Support for multipage tables}\label{multipage}
+%Packages |longtable|~\cite{longtable} and |supertabular|~\cite{supertabular}
+%can be used for tables that span multiple pages.  Package |supertabular| works
+%with |fcolumn| out of the box (no changes needed), but may lead to different 
+%column widths on individual pages.  If you don't want that, use |longtable|.
+%The packages |fcolumn| and |longtable| also work together provided |longtable|
+%is loaded first, so that |fcolumn| can adapt one definition of |longtable|.
+%It's a long definition, so if |longtable| is not loaded, it's a waste of memory
+%having it; that's why it is only defined when necessary.  For that reason the 
+%user is politely warned (not loading |longtable| is obviously not an error if 
+%you don't use it) if |fcolumn| is loaded without prior loading of |longtable|.
 %    \begin{macrocode}
 \ifx\longtable\@undefined
- \PackageWarningNoLine{fcolumn}{fcolumn is loaded without longtable.
- That's OK, but\MessageBreak if you want to load longtable as well, 
- make sure \MessageBreak it is done before loading fcolumn}\else
+ \PackageWarningNoLine{fcolumn}{fcolumn is loaded without package
+ longtable.\MessageBreak That's perfectly OK, but if you want to
+ load\MessageBreak longtable as well, make sure it is done before 
+ \MessageBreak loading fcolumn}\else
 %    \end{macrocode}
-% \begin{macro}{\LT at array}
-% And here is the only definition of |longtable| that needs to be extended
-% to make |fcolumn| work with that package.  The lines are compacted a bit
-% w.r.t.\ the original |longtable| code; if you want to study the
-% code, have a look at the documentation~\cite{longtable}.
+%\begin{macro}{\LT at array}
+%And here is the only definition of |longtable| that needs to be extended
+%to make |fcolumn| work with that package.  The lines are compacted a bit
+%w.r.t.\ the original |longtable| code; if you want to study the
+%code, have a look at the documentation~\cite{longtable}.
 %    \begin{macrocode}
  \def\LT at array[#1]#2{\refstepcounter{table}\stepcounter{LT at tables}\if
   l#1 \LTleft\z@\LTright\fill\else\if r#1 \LTleft\fill\LTright\z@\else
@@ -1415,17 +1457,17 @@
   \begingroup\@mkpream{#2}\xdef\LT at bchunk{\global\advance\c at LT@chunks
   \@ne\global\LT at rows\z@\setbox\z@\vbox\bgroup\LT at setprevdepth\tabskip
   \LTleft\noexpand\halign to\hsize\bgroup\tabskip\z@\@arstrut\@preamble
-  \tabskip\LTright\cr}\endgroup
+  \tabskip\LTright\cr}
 %    \end{macrocode}
-% Until this line it was just the code for |\LT at array| from package~|longtable|.
-% The two lines of the next chunk are new to |\LT at array|.  Their 
-% purpose is the same as in |\@array| above.
+%Until this line it was just the code for |\LT at array| from package~|longtable|.
+%The two lines of the next chunk are new to |\LT at array|.  Their 
+%purpose is the same as in |\@array| above.
 %    \begin{macrocode}
-  \begingroup\@mksumline{#2}\endgroup\res at tsumline 
+  \@mksumline{#2}\endgroup\res at tsumline
   \everycr{\noalign{\global\FCsc at l=0 }}% 
 %    \end{macrocode}
-% From here on |\LT at array| is picked up again, ending with the |\fi| that belongs
-% to the |\ifx| that started this definition.
+%From here on |\LT at array| is picked up again, ending with the |\fi| that belongs
+%to the |\ifx| that started this definition.
 %    \begin{macrocode}
   \expandafter\LT at nofcols\LT at bchunk&\LT at nofcols\LT at make@row\m at th\let
   \par\@empty\lineskip\z@\baselineskip\z@\LT at bchunk}
@@ -1432,29 +1474,34 @@
 \fi
 %    \end{macrocode}
 % \end{macro}
-% That's it!
-% \section*{Acknowledgement}
-% Thanks to Karl Berry for valuable comments regarding the consistency of the
-% installation procedure of this version.  Frank Mittelbach gave various useful
-% suggestions for improving the input parsing as well as hints to make the package
-% more \LaTeX-like.  He also challenged me to make |fcolumn| compatible with 
-% |longtable|.  Christian Hoff's request on column formatting triggered many
-% happy hours of coding.
-% \bibliographystyle{plain}
-% \begin{thebibliography}{9}
-% \itemsep0pt
-% \parsep0pt
-% \parskip0pt
-% \bibitem{array} Frank Mittelbach and David Carlisle. 
-%    A new implementation of \LaTeX's |tabular| and |array| environment.
-% \bibitem{booktabs} Simon Fear.  The |booktabs| package.  Publication quality tables in \LaTeX.
-% \bibitem{dcolumn} David Carlisle.  The |dcolumn| package.
-% \bibitem{longtable} David Carlisle.  The |longtable| package.
-% \bibitem{world_economy} According to the IMF \url{www.imf.org}.
-% \bibitem{CandTB} Donald Knuth, Computers \& Typesetting/B, \TeX: the program.
-% \bibitem{CandTA} Donald Knuth, Computers \& Typesetting/A, The \TeX book.
-% \bibitem{TAOCP1} Donald Knuth, The Art of Computers Programming, volume~1.
-% \bibitem{RJ} William Shakespeare, Romeo and Juliet, a tragedy (1597).
-% \end{thebibliography}
-% \Finale
+%That's it!
+%
+%\section*{Acknowledgement}
+%Thanks to Karl Berry for valuable comments regarding the consistency of the
+%installation procedure of this version.  Frank Mittelbach gave various useful
+%suggestions for improving the input parsing as well as hints to make the package
+%more \LaTeX-like.  He also challenged me to make |fcolumn| compatible with 
+%|longtable|.  Christian Hoff's request on column formatting triggered many
+%happy hours of coding.
+%\bibliographystyle{plain}
+%\begin{thebibliography}{10}
+%\itemsep0pt \parsep0pt \parskip0pt
+%\bibitem{array} Frank Mittelbach and David Carlisle. 
+%   A new implementation of \LaTeX's |tabular| and |array| environment.
+%\bibitem{booktabs} Simon Fear.  The |booktabs| package.  Publication quality tables in \LaTeX.
+%\bibitem{dcolumn} David Carlisle.  The |dcolumn| package.
+%\bibitem{longtable} David Carlisle.  The |longtable| package.
+%\bibitem{supertabular} Theo 
+%   Jurriens \iffalse I checked with Theo that `Jurriens' is correct; not `Jurri\"ens'. \fi
+%   and Johannes Braams. The |supertabular| package.
+%\bibitem{color} David Carlisle.  The |color| package.
+%\bibitem{CandTB} Donald Knuth, {\it Computers \& Typesetting/B, ``\TeX: the program,''\/}
+%   Addison-Wesley, Reading (1991).
+%\bibitem{CandTA} Donald Knuth, {\it Computers \& Typesetting/A, ``The \TeX book,''\/} 
+%   Addison-Wesley, Reading (1991).
+%\bibitem{TAOCP1} Donald Knuth, {\it The Art of Computers Programming, volume~1, 
+%   ``Fundamental Algorithms,''\/} Addison-Wesley, Reading (1997).
+%\bibitem{RJ} William Shakespeare, Romeo and Juliet, a tragedy (1597).
+%\end{thebibliography}
+%\Finale
 \endinput

Modified: trunk/Master/texmf-dist/source/latex/fcolumn/fcolumn.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/fcolumn/fcolumn.ins	2023-07-25 13:33:12 UTC (rev 67728)
+++ trunk/Master/texmf-dist/source/latex/fcolumn/fcolumn.ins	2023-07-25 19:33:57 UTC (rev 67729)
@@ -15,10 +15,8 @@
 \keepsilent
 \preamble
 
-This is a generated file.
+Copyright (C) 2015--2023 by Edgar Olthof
 
-Copyright (C) 2015--2022 by Edgar Olthof
-
 This file may be distributed and/or modified under the
 conditions of the LaTeX Project Public License, either
 version 1.3 of this license or (at your option) any later
@@ -32,14 +30,12 @@
 \askforoverwritefalse
 \usedir{tex/latex/tools}
 \generate{\file{fcolumn.sty}{\from{fcolumn.dtx}{package}}}
-
 \obeyspaces
 \Msg{*******************************************************}
 \Msg{*                                                     *}
-\Msg{* To finish the installation you have to move the     *}
-\Msg{* following file                                      *}
+\Msg{* To finish the installation you should move the file *}
 \Msg{*                                                     *}
-\Msg{*   fcolumn.sty                                       *}
+\Msg{*  fcolumn.sty                                        *}
 \Msg{*                                                     *}
 \Msg{* into a directory searched by TeX.                   *}
 \Msg{*    To generate the documentation, type ``make'' or  *}
@@ -46,12 +42,12 @@
 \Msg{* run the file fcolumn.dtx through LaTeX.  Make sure  *}
 \Msg{* the glossary and index are updated by makeindex:    *}
 \Msg{*                                                     *}
-\Msg{*   makeindex -s gglo.ist -o fcolumn.gls fcolumn.glo  *}
-\Msg{*   makeindex -s gind.ist -o fcolumn.ind fcolumn.idx  *}
+\Msg{*  makeindex -s gglo.ist -o fcolumn.gls fcolumn.glo   *}
+\Msg{*  makeindex -s gind.ist -o fcolumn.ind fcolumn.idx   *}
 \Msg{*                                                     *}
 \Msg{* and then LaTeX again; presto!                       *}
 \Msg{*                                                     *}
-\Msg{* Happy TeXing!                                       *}
+\Msg{*    Happy TeXing!                                    *}
 \Msg{*                                                     *}
 \Msg{*******************************************************}
 \endbatchfile

Modified: trunk/Master/texmf-dist/tex/latex/fcolumn/fcolumn.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/fcolumn/fcolumn.sty	2023-07-25 13:33:12 UTC (rev 67728)
+++ trunk/Master/texmf-dist/tex/latex/fcolumn/fcolumn.sty	2023-07-25 19:33:57 UTC (rev 67729)
@@ -6,10 +6,8 @@
 %%
 %% fcolumn.dtx  (with options: `package')
 %% 
-%% This is a generated file.
+%% Copyright (C) 2015--2023 by Edgar Olthof
 %% 
-%% Copyright (C) 2015--2022 by Edgar Olthof
-%% 
 %% This file may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either
 %% version 1.3 of this license or (at your option) any later
@@ -20,27 +18,33 @@
 %% and version 1.3 or later is part of all distributions of
 %% LaTeX version 1999/12/01 or later.
 \ProvidesPackage{fcolumn}
-          [2022/02/01 v1.4.1 Automatic Currency Package (EHTO)]
+          [2023/07/25 v1.4.2 Automatic Currency Package (EHTO)]
 \NeedsTeXFormat{LaTeX2e}
 \RequirePackage{array}[v2.4k]
+\newif\ifminusr at d \minusr at dfalse
 \newif\ifstrict at ccounting \strict at ccountingfalse
+\DeclareOption{red}{\minusr at dtrue}
 \DeclareOption{strict}{\strict at ccountingtrue}
-\ProcessOptions
+\ProcessOptions \ifminusr at d \ifstrict at ccounting \minusr at dfalse
+\PackageWarningNoLine{fcolumn}{Option `red' is reset due to use
+ of `strict'}\else\usepackage{color}\fi\fi
 \newcolumntype{F}[4]{>{\b at fi{#1}{#2}{#3}{#4}}r<{\e at fi}}
-\newcolumntype{f}{F{.}{,}{3,2}{}}
+\newcolumntype{f}{F.,{3,2}{}}
 \newcount\FCsc at l \FCsc at l=0 \newcount\FCtc at l \FCtc at l=0
 \newif\ifwiths at p
 \def\geldm at cro#1#2{\withs at pfalse
 \afterassignment\g at ldm@cro\count@#1\relax{#2}}
-\def\g at ldm@cro#1\relax#2{\FCform at t{\ifnum#2<0 \ifstrict at ccounting
-  (\else -\fi \count2=-#2 \else\count2=#2 \fi
-\count4=\ifx\relax#1\relax 2 \else \@gobble#1\relax\fi
+\def\g at ldm@cro#1\relax#2{\ifstrict at ccounting\def\bm at nus{(}
+ \def\em at nus{)}\else\def\em at nus{}\ifminusr at d\def\bm at nus{\color{red}}
+ \else\def\bm at nus{-}\fi\fi\FCform at t{\ifnum#2<0 \bm at nus\count2=-#2
+ \else\count2=#2 \fi
+\count4=\ifx\relax#1\relax 2 \else\@gobble#1\relax\fi
 \count3=0
 \loop\ifnum\count3<\count4
   \divide\count2 by 10 \advance\count3 by \@ne
 \repeat
 \g at ldens{\the\count@}%
-\ifnum\count3>0\decim at lmark
+\ifnum\count3>0 {\decim at lmark}
   \ifnum#2>0 \count2=-#2\else\count2=#2 \fi
   \loop\ifnum\count3>0
     \divide\count2 by 10 \advance\count3 by \m at ne
@@ -53,11 +57,9 @@
   \fi
   \zerop at d{\number\count3}{\number\count2}%
 \fi
-\ifx\FCs at gn\m at ne \ifnum#2<0 \ifstrict at ccounting
-  \rlap{)~!}\else\rlap{~!}\fi\else\ifstrict at ccounting
-  \rlap{\phantom{)}~!}\else\rlap{~!}\fi\fi
-\else \ifnum#2<0 \ifstrict at ccounting\rlap{)}\fi\fi
-\fi}}
+\ifx\FCs at gn\m at ne\ifnum#2<0 \rlap{\em at nus~!}
+ \else\rlap{\phantom{\em at nus}~!}\fi
+\else\ifnum#2<0 \rlap{\em at nus}\fi\fi}}
 \def\g at ldens#1{{\count3=\count2 \count0=#1
 \ifnum\count0<1 \count0=3 \fi
 \loop \ifnum\count0>0 \divide\count2 by 10 \advance\count0 by \m at ne
@@ -69,7 +71,7 @@
 \repeat
 \count2=-\count2
 \advance\count2 by \count3 \du at zendprint{#1}}}
-\def\du at zendprint#1{\ifwiths at p\ifnum#1>0 \sep at rator\fi
+\def\du at zendprint#1{\ifwiths at p\ifnum#1>0 {\sep at rator}\fi
  \zerop at d{#1}{\number\count2}%
 \else\zerop at d1{\number\count2}\fi\global\withs at ptrue}
 \def\zerop at d#1#2{{\count0=1 \count1=#2
@@ -101,11 +103,11 @@
   \ifnum\FCs at gn<0 \count0=-\count0 \fi
   \ifnum\count0<0
     \let\FCs at gn=\m at ne
-    \PackageError{fcolumn}{Register overflow}{Overflow occurred
-    in fcolumn \number\FCsc at l.\MessageBreak You can press <enter>
-    now and I'll proceed, but check\MessageBreak your table. The
-    offending entry is indicated with an\MessageBreak exclamation
-    mark in the output.}%
+    \PackageError{fcolumn}{Register overflow}{Overflow occurred in
+    fcolumn \number\FCsc at l\space near or at line \the\inputlineno.
+    You can\MessageBreak press <enter> now and I'll proceed, but check
+    your table.\MessageBreak The offending entry is indicated with an
+    exclamation mark\MessageBreak in the output.}%
   \else\let\FCs at gn=\@ne
   \fi
 \fi
@@ -120,19 +122,16 @@
 \def\m at thcodeswitch#1{\count0=10 \loop\ifnum\count0>0
 \advance\count0 by \m at ne\mathcode\expandafter`\the\count0=
 \ifnum#1=0 0 \else "8000 \fi\repeat}
-\def\b at fi#1#2#3#4{%
-\def\sep at xt##1##2\end{\def\sep at rator{{##1}}}\sep at xt#1\end
-\def\decim at lmark{{#2}}\def\sp at l{#3}\assignform at t#4,,\assignform at t
-\global\advance\FCsc at l by \@ne\global\FC at l=0 \global\FC at r=1
+\def\b at fi#1#2#3#4{\sep at xt#1\sep at xt\def\decim at lmark{#2}\def\sp at l{#3}%
+\assignform at t#4,,\assignform at t\global\advance\FCsc at l by \@ne
+\global\FC at l=0 \global\FC at r=1
 \let\FCs at gn=\@ne\relax \setbox0\hbox\bgroup$
 \count@=10 \loop\ifnum\count@>0 \advance\count@ by \m at ne
  \uccode`\~=\expandafter`\the\count@ \uppercase{\edef~}{\noexpand
  \m at thcodeswitch0 \global\FC at l=\the\count@}\repeat
-\def\deactdecm at rk##1##2\relax{\mathcode`##1=0 }%
 \afterassignment\setucc at de\count@#3\relax
 \uppercase{\def~}{\ifnum\mathcode`\0="8000 \m at thcodeswitch0 \fi
 \afterassignment\deactdecm at rk\count@#3\relax \global\FC at r=1}%
-\def\d at cm##1##2{\count@=\mathcode`##1 }
 \ifnum\uccode`\~=`. \uccode`\~=`,\relax\else \uccode`\~=`.\relax\fi
 \uppercase{\def~}{\ifnum\mathcode`\0="8000 \m at thcodeswitch0 \fi
 \afterassignment\d at cm\count@#3\relax
@@ -143,28 +142,28 @@
 \uccode`\~=`-\relax \uppercase{\def~}{\ifnum\mathcode`\0="8000
 \m at thcodeswitch0 \fi\global\let\FCs at gn\m at ne \global\FC at l=0}%
 \mathcode`-="8000 \mathcode`+="8000 \mathcode`.="8000
-\m at thcodeswitch1 \def\actdecm at rk##1##2\relax{%
-\ifx##1.\relax \mathcode`,="8000 \else \mathcode`##1="8000 \fi}%
-\afterassignment\actdecm at rk\count@#3\relax}
+\m at thcodeswitch1 \afterassignment\actdecm at rk\count@#3\relax}
+\def\sep at xt#1#2\sep at xt{\def\sep at rator{#1}}
+\def\actdecm at rk#1#2\relax{\ifx#1.\relax \mathcode`,="8000
+ \else \mathcode`#1="8000 \fi}
+\def\deactdecm at rk#1#2\relax{\mathcode`#1=0 }%
+\def\d at cm#1#2{\count@=\mathcode`#1 }
 \def\e at fi{\ifnum\mathcode`\0="8000 \global\FC at r=\m at ne\fi$\egroup
 \ifnum\FC at r>0
  \ifnum\FC at r=1 \FC at r=10 \fi
- \def\i at ts##1##2{\count0=##2}
- \afterassignment\i at ts\count@\sp at l
- \loop\ifnum\count0>0 \multiply\FC at l by 10
-  \expandafter\secd at xt\number\FC at r\secd at xt \advance\count0 by \m at ne
- \repeat
+\afterassignment\i at ts\count@\sp at l
+ \loop\ifnum\count0>0 \multiply\FC at l by 10 \expandafter\secd at xt
+ \number\FC at r\secd at xt \advance\count0 by \m at ne \repeat
  \ifnum\expandafter\@gobble\number\FC at r>0
-   \def\tw at l##1##2\relax{##2}
    \PackageWarning{fcolumn}{Excess digit\ifnum\FC at r>19 s\fi\space
    ``\expandafter\tw at l\number\FC at r\relax'' in decimal part
    \MessageBreak ignored near or}
  \fi
- \ifx\FCs at gn\m at ne\relax \FC at l=-\FC at l \fi
- \zetg at ld{\sp at l}{\FC at l}%
+ \ifx\FCs at gn\m at ne\relax\FC at l=-\FC at l\fi\zetg at ld{\sp at l}{\FC at l}%
 \fi}
-\def\secd at xt#1#2#3\secd at xt{\advance\FC at l by #2
-\FC at r=#1#3 \ifnum\FC at r=1 \FC at r=10 \fi}
+\def\i at ts#1#2{\count0=#2} \def\tw at l#1#2\relax{#2}
+\def\secd at xt1#1#2\secd at xt{\advance\FC at l by #1
+ \FC at r=1#2 \ifnum\FC at r=1 \FC at r=10 \fi}
 \def\@array[#1]#2{\@tempdima\ht\strutbox\advance\@tempdima by
  \extrarowheight\setbox\@arstrutbox\hbox{\vrule\@height\arraystretch
  \@tempdima\@depth\arraystretch\dp\strutbox\@width\z@}%
@@ -171,16 +170,13 @@
 \def\ialign{\everycr{\noalign{\global\FCsc at l=0 }}\tabskip\z at skip\halign}
 \begingroup\@mkpream{#2}\xdef\@preamble{\noexpand\ialign\@halignto
 \bgroup\@arstrut\@preamble\tabskip\z@\cr}%
-\endgroup
-\begingroup\@mksumline{#2}\endgroup
-\res at tsumline
+\@mksumline{#2}\endgroup\res at tsumline
 \@arrayleft\if #1t\vtop\else\if#1b\vbox\else\vcenter\fi\fi\bgroup
 \let\@sharp ##\let\protect\relax\lineskip\z@\baselineskip\z@
 \m at th \let\\\@arraycr \let\tabularnewline\\\let\par\@empty \@preamble}
 \let\@@array=\@array
 \def\@mksumline#1{\gdef\s at ml@ne{}\@lastchclass 4 \@firstamptrue
-\global\FCsc at l=0
-\let\prr at sult=\relax
+\global\FCsc at l=0 \let\prr at sult=\relax
 \@temptokena{#1}\@tempswatrue\@whilesw\if at tempswa\fi{\@tempswafalse
 \the\NC at list}\count0\m at ne\let\the at toks\relax\prepnext at tok
 \expandafter\@tfor\expandafter\@nextchar\expandafter:\expandafter=\the
@@ -192,11 +188,9 @@
 \def\@classfz{\ifnum\@chnum<\thr@@ \@classfx\fi}
 \def\@classfii{\ifnum\@lastchclass=8
  \edef\t at stm{\expandafter\string\@nextchar}
- \edef\t at stn{\string\e at fi}
- \ifx\t at stm\t at stn
+ \edef\t at stn{\string\e at fi} \ifx\t at stm\t at stn
   \@addtosumline{\prr at sult}
-  \global\advance\FCsc at l by \@ne
-  \ifnum\FCsc at l>\FCtc at l
+  \global\advance\FCsc at l by \@ne \ifnum\FCsc at l>\FCtc at l
    \expandafter\ifx\csname FCtot@\romannumeral\FCsc at l\endcsname\relax
     \expandafter\newcount\csname FCtot@\romannumeral\FCsc at l\endcsname
    \else
@@ -240,32 +234,29 @@
 \def\FC at chklist{}
 \def\aut at check{\ifx\@empty\FC at chklist\relax
  \ifodd\FCsc at l\else
-  \count0=\@ne \count1=\FCsc at l
-  \divide\count1 by \tw@
-  \loop\ifnum\count1<\FCsc at l
-   \advance\count1 by \@ne
+  \count0=\@ne \count1=\FCsc at l \divide\count1 by \tw@
+  \loop\ifnum\count1<\FCsc at l \advance\count1 by \@ne
    \xdef\FC at chklist{\FC at chklist\number\count0,\number\count1;}%
-   \advance\count0 by\@ne
-  \repeat
+   \advance\count0 by\@ne \repeat
  \fi
 \fi
-\loop
-\ifx\FC at chklist\@empty\let\FCs at gn=\@ne\else\let\FCs at gn=\m at ne\fi
-\ifx\FCs at gn\m at ne
- \expandafter\fre at t\FC at chklist\end
- \ifnum\csname FCtot@\romannumeral\count0\endcsname=
-  \csname FCtot@\romannumeral\count1\endcsname\else
-  \PackageWarning{fcolumn}{F-columns \number\count0 \space and
-  \number\count1 \space do not balance due to \string\sumline
-  \MessageBreak near or}%
+\loop\ifx\FC at chklist\@empty\else
+ \expandafter\fre at t\FC at chklist\fre at t
+ \FC at l=\csname FCtot@\romannumeral\count0\endcsname
+ \advance\FC at l by -\csname FCtot@\romannumeral\count1\endcsname
+ \ifnum\FC at l=0 \else \ifnum\FC at l<0 \FC at l=-\FC at l \fi
+  \PackageWarning{fcolumn}{Representations of F-columns \number\count0
+  \space and \number\count1 \space differ by\MessageBreak
+  \number\FC at l\space due to \string\sumline\space near or}%
  \fi
 \repeat}
-\def\fre at t#1,#2;#3\end{\count0=#1 \count1=#2 \xdef\FC at chklist{#3}}
+\def\fre at t#1,#2;#3\fre at t{\count0=#1 \count1=#2 \xdef\FC at chklist{#3}}
 \def\checkfcolumns#1#2{\noalign{\xdef\FC at chklist{\FC at chklist #1,#2;}}}
 \ifx\longtable\@undefined
- \PackageWarningNoLine{fcolumn}{fcolumn is loaded without longtable.
- That's OK, but\MessageBreak if you want to load longtable as well,
- make sure \MessageBreak it is done before loading fcolumn}\else
+ \PackageWarningNoLine{fcolumn}{fcolumn is loaded without package
+ longtable.\MessageBreak That's perfectly OK, but if you want to
+ load\MessageBreak longtable as well, make sure it is done before
+ \MessageBreak loading fcolumn}\else
  \def\LT at array[#1]#2{\refstepcounter{table}\stepcounter{LT at tables}\if
   l#1 \LTleft\z@\LTright\fill\else\if r#1 \LTleft\fill\LTright\z@\else
   \if c#1 \LTleft\fill\LTright\fill\fi\fi\fi\let\LT at mcol\multicolumn
@@ -285,8 +276,8 @@
   \begingroup\@mkpream{#2}\xdef\LT at bchunk{\global\advance\c at LT@chunks
   \@ne\global\LT at rows\z@\setbox\z@\vbox\bgroup\LT at setprevdepth\tabskip
   \LTleft\noexpand\halign to\hsize\bgroup\tabskip\z@\@arstrut\@preamble
-  \tabskip\LTright\cr}\endgroup
-  \begingroup\@mksumline{#2}\endgroup\res at tsumline
+  \tabskip\LTright\cr}
+  \@mksumline{#2}\endgroup\res at tsumline
   \everycr{\noalign{\global\FCsc at l=0 }}%
   \expandafter\LT at nofcols\LT at bchunk&\LT at nofcols\LT at make@row\m at th\let
   \par\@empty\lineskip\z@\baselineskip\z@\LT at bchunk}



More information about the tex-live-commits mailing list.