diff options
Diffstat (limited to 'tex/context/base/thrd-tab.tex')
| -rw-r--r-- | tex/context/base/thrd-tab.tex | 388 | 
1 files changed, 196 insertions, 192 deletions
| diff --git a/tex/context/base/thrd-tab.tex b/tex/context/base/thrd-tab.tex index 2abd3fb3d..a2123efef 100644 --- a/tex/context/base/thrd-tab.tex +++ b/tex/context/base/thrd-tab.tex @@ -1,22 +1,22 @@  % Since this file is not available in every distribution, we -% have copied the original in this file. The manuals to  -% Wichura's PiCTeX and TaBlE packages are not available on  +% have copied the original in this file. The manuals to +% Wichura's PiCTeX and TaBlE packages are not available on  % line and are distributed by respectively the TeX Users Group -% and Personal TeX Inc. Many macros of TaBlE are overloaded  -% and/or extended in core-tab.tex. The extensions concern  -% splitting over pages, color and consistent spacing.  +% and Personal TeX Inc. Many macros of TaBlE are overloaded +% and/or extended in core-tab.tex. The extensions concern +% splitting over pages, color and consistent spacing. -% TABLE 1.0  +% TABLE 1.0  % Copyright Michael J. Wichura August 1988  % The TABLE macros are divided into sections, roughly according to  % function: -  +  % Section Name        Function -% a       Allocation  Allocates storage registers for parameters.   +% a       Allocation  Allocates storage registers for parameters.  % f       Format      Reads format section; builds preamble for \halign;  %                      processes \ReFormat command. -% g       Get Value   Converts "spec"'s (as in spec_{LT}) to  +% g       Get Value   Converts "spec"'s (as in spec_{LT}) to  %                      corresponding "values"'s (as in value_{LT}).  % h       Hacks       Utility macros; error messages; miscellaneous commands.  % k       Keys        Definition and scanning of format keys. @@ -24,51 +24,51 @@  % s       Struts      Macros for struts.  % t       Tables      Sets up \halign for table; end-of-row processing;  %                      alternate vertical rules; spanning; horizontal -%                      lines; stretching and shrinking; repositioning  +%                      lines; stretching and shrinking; repositioning  %                      commands. -  -% The name of each internal macro begins with the prefix "\!t", the  -% "!" having category code 11, followed by the letter of the section  -% in which the macro is defined. For example, a macro beginning "\!th"  + +% The name of each internal macro begins with the prefix "\!t", the +% "!" having category code 11, followed by the letter of the section +% in which the macro is defined. For example, a macro beginning "\!th"  % is defined in Section h (Hacks). There a few exceptions:  % the general purpose macros "\!ttemp", "\!ttempa", "\!ttempb", and  % "\!tnext" are repeatedly defined on the spot as the need arises. -  -% External macros (and active characters) are defined in the following  + +% External macros (and active characters) are defined in the following  % sections:  %    Macro                    Section  %    "                        t  %    \-                       t  %    \=                       t -%    \ActivateBarAndQuote     h  -%    \AugmentedTableStrut     s  +%    \ActivateBarAndQuote     h +%    \AugmentedTableStrut     s  %    \BackSpace               h  %    \BeginFormat             f  %    \BeginTable              t  %    \BeginTableParBox        a  %    \Center                  t -%    \ColumnWidthFactor       a  +%    \ColumnWidthFactor       a  %    \ColumnWidthUnit         a -%    \DQuote                  h  +%    \DQuote                  h  %    \EndFormat               k  (\EndFormat is actually a key)  %    \EndTable                t  %    \EndTableParBox          a  %    \Enlarge                 s  %    \enlarge                 s -%    \EveryTable              a  +%    \EveryTable              a  %    \EveryTableParBox        a  %    \Expand                  t -%    \InterColumnSpaceFactor  a  +%    \InterColumnSpaceFactor  a  %    \InterColumnSpaceUnit    a  %    \JustCenter              t  %    \JustLeft                t  %    \JustRight               t -%    \KernFactor              a  -%    \KernUnit                a  +%    \KernFactor              a +%    \KernUnit                a  %    \Left                    t  %    \LeftTabskip             a -%    \LineThicknessFactor     a  -%    \LineThicknessUnit       a  +%    \LineThicknessFactor     a +%    \LineThicknessUnit       a  %    \LongLines               t  %    \Lower                   h  %    \MakeStrut               s @@ -89,41 +89,45 @@  %    \SetTableToWidth         t  %    \Smash                   h  %    \StandardTableStrut      s -%    \StrutDepthFactor        a  -%    \StrutHeightFactor       a  -%    \StrutUnit               a  +%    \StrutDepthFactor        a +%    \StrutHeightFactor       a +%    \StrutUnit               a  %    \TaBlE                   h  %    \TracingFormats          a  %    \TracingKeys             a  %    \Use                     t  %    \use                     t -%    \VBar                    h  +%    \VBar                    h  %    \Vspace                  h -%    \VspaceFactor            a  +%    \VspaceFactor            a  %    \WidenTableBy            t -%    \\                       t  +%    \\                       t  %    \_                       t  %    \|                       t  %    |                        t  %    ~                        t -%  +% +  \catcode `\!=11  \catcode `\@=11 +\newif\ifh@ % normally in plain tex +\newif\ifv@ % normally in plain tex +  % Don't try to read the TABLE macros until after you've read the  % TABLE manual. The internal documentation of the macros is  % sketchy; you need the manual to understand what's going on.  % You should also review the material on \halign s in the TeXbook,  % since TABLE uses an \halign to perform its alignments. -  +  % In studying the TABLE macros, you should start by skimming the  % macros in the "miscellaneous hacks", "error messages", and "loops"  % subsections of Section h, as well as the "\GetValue" macro in  % Section g; these macros are called many times by the other macros. -% To continue with a "bottom-up" approach, read next Sections k,  -% f, and t. (Top-downers should reverse the order.) The other  +% To continue with a "bottom-up" approach, read next Sections k, +% f, and t. (Top-downers should reverse the order.) The other  % Sections can be looked at as the need arises. -  +  % ********************************************************************* @@ -136,10 +140,10 @@  % TABLE PARAMETERS: Units  % ********************************************************************* -\newdimen\LineThicknessUnit  -\newdimen\StrutUnit             -\newskip \InterColumnSpaceUnit   -\newdimen\ColumnWidthUnit      +\newdimen\LineThicknessUnit +\newdimen\StrutUnit +\newskip \InterColumnSpaceUnit +\newdimen\ColumnWidthUnit  \newdimen\KernUnit  \let\!taLTU=\LineThicknessUnit % Used in preamble @@ -168,11 +172,11 @@    \InterColumnSpaceUnit=\the\NormalTICSU    \ColumnWidthUnit     =\the\NormalTCWU    \KernUnit            =\the\NormalTKU} -  +  \NormalTableUnits -% The user should issue \NormalTableUnits when setting a table  -% in a different point size, since the Table...Units themselves  +% The user should issue \NormalTableUnits when setting a table +% in a different point size, since the Table...Units themselves  % are static while the Normal...Units vary with the point size. @@ -180,11 +184,11 @@  % TABLE PARAMETERS: Factors  % ********************************************************************* -\newcount\LineThicknessFactor     -\newcount\StrutHeightFactor       -\newcount\StrutDepthFactor        -\newcount\InterColumnSpaceFactor  -\newcount\ColumnWidthFactor       +\newcount\LineThicknessFactor +\newcount\StrutHeightFactor +\newcount\StrutDepthFactor +\newcount\InterColumnSpaceFactor +\newcount\ColumnWidthFactor  \newcount\KernFactor  \newcount\VspaceFactor @@ -212,13 +216,13 @@  % *********************************************************************  \def\BeginTableParBox#1{% -  \vtop\bgroup  +  \vtop\bgroup      \hsize=#1 -    \normalbaselines  +    \normalbaselines      \let~=\!ttTie      \let\-=\!ttDH -    \the\EveryTableParBox}  -   +    \the\EveryTableParBox} +  \def\EndTableParBox{%      \MakeStrut{0pt}{\StrutDepthFactor\StrutUnit}    \egroup} % finishes the \vtop begun by \BeginTableParbox @@ -228,7 +232,7 @@    \parindent=0pt    \raggedright    \rightskip=0pt plus 4em %   Provide more stretch -  \relax}  +  \relax}  % ********************************************************************* @@ -296,7 +300,7 @@  % ACTIVATE BAR AND QUOTE: Makes | and " active if they aren't  % already active (in which case the user will probably have given  % them special meanings); definitions are provided which effectively -% undoes the activeness outside a Table.  +% undoes the activeness outside a Table.  {\catcode`\|=13 \catcode`\"=13    \gdef\ActivateBarAndQuote{% @@ -315,11 +319,11 @@        \catcode`\"=13        \def"{\char`\"}%      \fi}} -  +  % ****************************************************************  % Macros for | and " having category code 12.  % **************************************************************** -{\catcode `\|=12 \catcode `\"=12  +{\catcode `\|=12 \catcode `\"=12  \gdef\VBar{|}  \gdef\DQuote{"}} @@ -330,15 +334,15 @@  % MESSAGE <Message>: Writes out <Message> to terminal and log file.  \def\!thMessage#1{\immediate\write16{#1}\ignorespaces} -  +  % X: Abbreviation for expandafter  \let\!thx=\expandafter  % GOBBLE: Eats next token -\def\!thGobble#1{}  +\def\!thGobble#1{}  % SPACE TOKEN -\def\\{\let\!thSpaceToken= }\\  +\def\\{\let\!thSpaceToken= }\\  % HEIGHT, DEPTH, AND WIDTH  \def\!thHeight{height} @@ -377,7 +381,7 @@      \edef\!ttemp{#2}%      \errhelp=\!thx{\!ttemp}%      \!thMessage{% -      ^^J\!thReadErrorMsg\!thErrorMsgA  +      ^^J\!thReadErrorMsg\!thErrorMsgA        ^^J\!thReadErrorMsg\!thErrorMsgB}%      \errmessage{#1}%    \endgroup} @@ -399,7 +403,7 @@  % **************************************************************** -% LOOP MACRO  +% LOOP MACRO  % ****************************************************************  % LOOP ... REPEAT macro from TUGboat Vol 8 #2: 1987 @@ -409,7 +413,7 @@      #1%      \!thx \!thIterate      \fi}% -  \!thIterate  +  \!thIterate    \let\!thIterate\relax} @@ -427,21 +431,21 @@    \else      \expandafter\!thDoVCS    \fi} -                       +  % DO VCS  \def\!thDoVCS#1{%    \setbox\z@\hbox{#1}%    \!thFinishVCS} -                       +  % DO MATH VCS  \def\!thDoMathVCS#1#2{%    \setbox\z@\hbox{$\m@th#1{#2}$}%    \!thFinishVCS} -                       +  % FINISH VCS  \def\!thFinishVCS{%    \vbox to\z@{\vss\box\z@\vss}} -  +  % ***************************************************************  % RAISE AND LOWER @@ -450,7 +454,7 @@  % Like TeX's \raise and \lower, except: (1) The first argument  % to these commands is a dimension expressed in TABLE's usual conventions;  % the default is (StrutHeightFactor+StrutDepthFactor)*StrutUnit/2 -% (2) like \smash, these commands function in math mode as well  +% (2) like \smash, these commands function in math mode as well  % as horizontal mode; (3) again like \smash, the result is declared  % to have height and depth 0pt @@ -490,12 +494,12 @@    \else      \expandafter\!thDoSimpleRaise    \fi} -                       +  % DO SIMPLE RAISE  \def\!thDoSimpleRaise#1{%    \setbox\z@\hbox{\raise \!taDimenA\hbox{#1}}%    \!thFinishRaise} % From Plain TeX: \ht0=0pt \dp0=0pt \box0 -                       +  % DO MATH RAISE  \def\!thDoMathRaise#1#2{%    \setbox\z@\hbox{\raise \!taDimenA\hbox{$\m@th#1{#2}$}}% @@ -504,10 +508,10 @@  % FINISH RAISE. This is the same as Plain's \finsm@sh; some macro  % packages redefine \finsm@sh.  \def\!thFinishRaise{% -  \ht\z@\z@  +  \ht\z@\z@    \dp\z@\z@    \box\z@} -                       +  % ***************************************************************  % BACK SPACE @@ -517,14 +521,14 @@  \def\!thKernBack{%    \kern - -  \ifnum \!tgCode=1  -    \ifx \!tgValue\empty  +  \ifnum \!tgCode=1 +    \ifx \!tgValue\empty        \the\KernFactor      \else        \!tgValue    % user-specified integer      \fi      \KernUnit -  \else  +  \else      \!tgValue      % user-specified dimension    \fi    \ignorespaces}% @@ -540,14 +544,14 @@  \def\!thVspace{%    \vskip -    \ifnum \!tgCode=1  -      \ifx \!tgValue\empty  +    \ifnum \!tgCode=1 +      \ifx \!tgValue\empty          \the\VspaceFactor        \else          \!tgValue    % user-specified integer        \fi        \StrutUnit -    \else  +    \else        \!tgValue      % user-specified skip      \fi    \egroup} % Ends the \noalign @@ -565,25 +569,25 @@  %     +(n+1)     (rule columns)  %     + 2        (dummy data columns)  %     ____ -%      2n+3  +%      2n+3  % columns. -   +  % FORMATs job is to create an \halign preamble for the alignment  % of these (2n+3) columns. The preamble consists of templates  % for the various columns, strung together with &'s and interlaced  % with \tabskip glue specifications. -   +  % FORMAT constructs the template for a nomimal data column according  % to the user-specified format keys. As the keys are read from left -% to right, the template is built up "from the inside out" (as  +% to right, the template is built up "from the inside out" (as  % illustrated in Section 3.1.9 of the manual), the inner-most part  % being the "#" sign. A "|" in the format terminates template -% building; the completed template is adjoined to preamble along  +% building; the completed template is adjoined to preamble along  % with the template for the following rule column.  % Minimum column widths, if specified, are implemented by creating -% an "artificial row" with data entries of the form  -%   \hskip <minimum column width>.  +% an "artificial row" with data entries of the form +%   \hskip <minimum column width>.  % This row has zero height and depth and is completely invisible. @@ -591,14 +595,14 @@  \def\BeginFormat{%    \catcode`\|=12 % Inhibit expansion if | immediately follows a <number>    \catcode`\"=12 %  read by \getvalue. -  \!taPreamble={}%  +  \!taPreamble={}%    \!taColumnNumber=0    \skip0 =\InterColumnSpaceUnit    \multiply\skip0 \InterColumnSpaceFactor    \divide\skip0 2    \!taRuleColumnTemplate=\!thx{%      \!thx\tabskip\the\skip0 }% -  \!taLastRegularTabskip=\skip0  +  \!taLastRegularTabskip=\skip0    \!taOnceOnlyTabskipfalse    \!taBeginFormattrue % Used to intercept key "]"    \def\!tfRowOfWidths{}%  Artificial Table Row with horizontal struts @@ -618,11 +622,11 @@               \ifnum \!taCountA<\!taColumnNumber               \advance\!taCountA 1               \aftergroup \!tfAOAO -           \repeat  +           \repeat             \aftergroup }%        \endgroup      \fi -  \fi       +  \fi    \ifx [\!ttemp % \!tgGetValue sets \!ttemp = token after w      \!thx\!tfSetWidthText    \else @@ -634,22 +638,22 @@    &\omit&\omit}  % SET WIDTH TEXT -\def\!tfSetWidthText [#1]{% #1 = specified text  +\def\!tfSetWidthText [#1]{% #1 = specified text    \def\!tfWidthText{#1}%    \ReadFormatKeys}  % SET WIDTH VALUE  \def\!tfSetWidthValue{% -  \!taMinimumColumnWidth =  -    \ifnum \!tgCode=1  +  \!taMinimumColumnWidth = +    \ifnum \!tgCode=1        \ifx\!tgValue\empty % Use default multiplier if user didn't specify one          \ColumnWidthFactor        \else -        \!tgValue  +        \!tgValue        \fi        \ColumnWidthUnit      \else -      \!tgValue  +      \!tgValue      \fi    \def\!tfWidthText{}%      Override possible prior `w[sample entry]'    \ReadFormatKeys} @@ -659,7 +663,7 @@  \def\!tfSetTabskip{%    \ifnum \!tgCode=1      \skip0 =\InterColumnSpaceUnit -    \multiply\skip0  +    \multiply\skip0        \ifx \!tgValue\empty          \InterColumnSpaceFactor         % Default integer        \else @@ -669,13 +673,13 @@      \skip0 =\!tgValue                   % User-specified <skip>    \fi    \divide\skip0 by 2 -  \ifnum\!taColumnNumber=0  +  \ifnum\!taColumnNumber=0      \!thToksEdef\!taRuleColumnTemplate={% -      \the\!taRuleColumnTemplate  +      \the\!taRuleColumnTemplate        \tabskip \the\skip0 }    \else      \!thToksEdef\!taDataColumnTemplate={% -      \the\!taDataColumnTemplate  +      \the\!taDataColumnTemplate        \tabskip \the\skip0 }    \fi    \if!taOnceOnlyTabskip @@ -706,10 +710,10 @@      \noexpand\hfil      \the\!taRuleColumnTemplate}       % has \tabskips, when column number=0    \!tfAdjoinPriorColumn} -  +  % SET ALTERNATE VRULE: Invoked by the key "\|", in the form  %   \|{<template for (rule) column>}. The "{" and "}" are mandatory, -% and the <template for column> must contain a "#". The key system  +% and the <template for column> must contain a "#". The key system  % CAN'T be used to set up this template.  The <template> can have the  % form  "\span\macro".  \def\!tfSetAlternateVrule{% @@ -725,7 +729,7 @@  \def\!tfAdjoinPriorColumn{%    \ifnum \!taColumnNumber=0      \!taPreamble=\!taRuleColumnTemplate % New \tabskip may have been added -    \ifnum \TracingFormats>0              +    \ifnum \TracingFormats>0        \!tfShowRuleTemplate      \fi    \else @@ -754,7 +758,7 @@    \advance \!taColumnNumber 1    % Initialize data-column template, restoring last "regular" tabskip    % after a "once only" tabskip -  \if!taOnceOnlyTabskip               +  \if!taOnceOnlyTabskip      \!thToksEdef\!taDataColumnTemplate={%         ####\tabskip \the\!taLastRegularTabskip}    \else @@ -763,7 +767,7 @@    % Remaining initializations    \!taRuleColumnTemplate{}% # is inserted by \SetVrule, or \SetAlternateVrule    \!taLeftGlue{\hfil}%         % Default positioning is "center" -  \!taRightGlue{\hfil}%          +  \!taRightGlue{\hfil}%    \!taMinimumColumnWidth=0pt    \def\!tfWidthText{}%    \!taOnceOnlyTabskipfalse    % Set true by key "o" @@ -771,7 +775,7 @@  % UPDATE ROW OF WIDTHS  \def\!tfUpdateRowOfWidths{% -  % If user had a "w[<Text>]" key, set <Text> according to the  +  % If user had a "w[<Text>]" key, set <Text> according to the    % template for this column, and find the width of the result    \ifx \!tfWidthText\empty    \else % set specified text according to current template & find width @@ -818,7 +822,7 @@      \!thMessage{%        \space \space w: \the\!taMinimumColumnWidth}    \fi} -       +  % FINISH UP: Invoked by the keys "." and \EndFormat  \def\!tfFinishFormat{% @@ -842,7 +846,7 @@         ^^J\!thReadErrorMsg\!tkFixIt}%    \fi    \!thToksEdef\!taPreamble={% -    ####\tabskip\LeftTabskip  +    ####\tabskip\LeftTabskip      &      \the\!taPreamble \tabskip\RightTabskip      & @@ -860,7 +864,7 @@  % ERROR MESSAGE FOR NOT ENOUGH "|"'s  \!thStoreErrorMsg\!tfTooFewBarsA{% -  There must be at least 2 "|"'s (and/or "\string \|"'s)} +  There must be at least 2 "\string|"'s (and/or "\string \|"'s)}  \!thStoreErrorMsg\!tfTooFewBarsB{%    between \string\BeginFormat\space and \string\EndFormat\space (or ".").} @@ -871,8 +875,8 @@  \def\ReFormat[{%    \omit    \!taDataColumnTemplate{##}% -  \!taLeftGlue{}%  -  \!taRightGlue{}%  +  \!taLeftGlue{}% +  \!taRightGlue{}%    \catcode`\|=12  % Inhibit expansion if | immediately follows a <number>    \catcode`\"=12  % read by \getvalue. Actually, '|' and '"' shouldn't    \ReadFormatKeys}% appear in a \ReFormat cmd; this is here as a safeguard. @@ -880,7 +884,7 @@  % END REFORMAT: Invoked by the key "]"  \def\!tfEndReFormat{%    \ifnum \TracingFormats>0 -    \!thMessage{ReF:  +    \!thMessage{ReF:         \the\!taLeftGlue         \hbox{\the\!taDataColumnTemplate}%   White lie         \the\!taRightGlue} @@ -905,11 +909,11 @@  % GET_VALUE{<return macro>}<tokens> functions as follows: -% If <tokens> has the form <(stuff)>, then  +% If <tokens> has the form <(stuff)>, then  %    code=2   and   value=<stuff>  % Otherwise <tokens> has the form <DDDXYZ> where <DDD> denotes (a possibly -% empty) string of consecutive digits (0,1,2,...,9) terminated by the first  +% empty) string of consecutive digits (0,1,2,...,9) terminated by the first  % character <X> (possibly a blank) that is not a digit. In this case  %    code=1   and   value=<DDD>  (= <null>,  if <DDD> is non-empty). @@ -924,10 +928,10 @@  %  "\GetValue{\macro} (1in)"           1       null -% GET_VALUE{<macro to execute after value is found>}  +% GET_VALUE{<macro to execute after value is found>}  \def\!tgGetValue#1{%    \def\!tgReturn{#1}%          Set return -  \futurelet\!ttemp\!tgCheckForParen}%  Now \!ttemp is the token  +  \futurelet\!ttemp\!tgCheckForParen}%  Now \!ttemp is the token                                      %  immediately after {}  % CHECK_PAREN: See if \!ttemp is a ( @@ -951,7 +955,7 @@    \ifx\!ttemp\!thSpaceToken      \!thx \!tgReturn        % <blank space> means no value was specified    \else -    \!thx \!tgCheckForDigit          +    \!thx \!tgCheckForDigit    \fi}  % CHECK_DIGIT: \!ttemp is not a <blank space>; if its a digit (0,1,...,9) @@ -1000,7 +1004,7 @@    \if!taDigit      \!thx \!tgGetNumber    \else -    \!thx \!tgReturn  +    \!thx \!tgReturn    \fi}  % GET_NUMBER @@ -1016,20 +1020,20 @@  % MISCELANEOUS "RETURNS" FROM \getvalue  % ******************************************************************** -% SET UP PAR BOX: Puts \BeginTableParBox{<user-specified \hsize>}  +% SET UP PAR BOX: Puts \BeginTableParBox{<user-specified \hsize>}  % to the left of "#" and \EndTableParBox to the right of "#".  \def\!tgSetUpParBox{%    \edef\!ttemp{%      \noexpand \ReadFormatKeys      b{\noexpand \BeginTableParBox{% -      \ifnum \!tgCode=1  -        \ifx \!tgValue\empty  +      \ifnum \!tgCode=1 +        \ifx \!tgValue\empty            \the\ColumnWidthFactor          \else            \!tgValue    % user-specified integer          \fi -        \!taCWU        % \ColumnWidthUnit  -      \else  +        \!taCWU        % \ColumnWidthUnit +      \else          \!tgValue      % user-specified dimension        \fi}}}%    \!ttemp @@ -1039,14 +1043,14 @@  \def\!tgInsertKern{%    \edef\!ttemp{%      \kern -    \ifnum \!tgCode=1  -      \ifx \!tgValue\empty  +    \ifnum \!tgCode=1 +      \ifx \!tgValue\empty          \the\KernFactor        \else          \!tgValue    % user-specified integer        \fi        \!taKU         % \KernUnit -    \else  +    \else        \!tgValue      % user-specified dimension      \fi}%    \edef\!ttemp{% @@ -1067,7 +1071,7 @@  % DEFINING NEW KEYS  % **************************************************************** -% NEW FORMAT KEY <Key Letter>: Must be followed by  +% NEW FORMAT KEY <Key Letter>: Must be followed by  %   <Parameter Text> <Replacement Text>  % Sets up a new key letter command by expanding (essentially) to  %   \expandafter \def \csname !tk<Key Letter>\endcsname @@ -1081,13 +1085,13 @@    \fi    \!thx\ifx \!ttempb \relax      \!thx\!tkDefineKey -  \else  +  \else      \!thx\!tkRejectKey    \fi}  % REPORT NEW KEY  \def\!tkReportNewKey{% -  \!taToksA\!thx{\!ttempa}%   +  \!taToksA\!thx{\!ttempa}%    \!thMessage{NEW KEY: "\the\!taToksA"}}  % DEFINE KEY @@ -1096,7 +1100,7 @@  % DUPLICATE KEY  \def\!tkRejectKey{% -    \!taToksA\!thx{\!ttempa}%  +    \!taToksA\!thx{\!ttempa}%      \!thError{Key letter "\the\!taToksA" already used}        {\!thReadErrorMsg\!tkFixIt}      \def\!tkGarbage}% @@ -1117,7 +1121,7 @@    \ifnum \TracingKeys>1      \!tkReportKey    \fi -  \!thx\ifx \!ttempb\relax  +  \!thx\ifx \!ttempb\relax      \!thx\!tkReplaceKey    \else      \!thx\!ttempb @@ -1125,7 +1129,7 @@  % REPORT KEY  \def\!tkReportKey{% -  \!taToksA\!thx{\!ttempa}%  +  \!taToksA\!thx{\!ttempa}%    \!thMessage{KEY: "\the\!taToksA"}}  % REPLACE KEY @@ -1172,17 +1176,17 @@    \!taDataColumnTemplate=\!thx{\!thx{\the\!taDataColumnTemplate}}%    \ReadFormatKeys} -% Key "*":  "*{N}{KEY LETTERS}" is equivalent to specifying   +% Key "*":  "*{N}{KEY LETTERS}" is equivalent to specifying  % <KEY LETTERS>  N  times.  % KEY LETTERS may contain further * specifications  \NewFormatKey *#1#2{%    \!taCountA=#1\relax    \!taToksA={}% -  \!thLoop  +  \!thLoop      \ifnum \!taCountA > 0      \!taToksA\!thx{\the\!taToksA #2}%      \advance\!taCountA -1 -  \repeat  +  \repeat    \!thx\ReadFormatKeys\the\!taToksA} @@ -1204,19 +1208,19 @@  % Key "c": Centered column.  \NewFormatKey c{% -  \ReadFormatKeys  +  \ReadFormatKeys    \LeftGlue\hfil    \RightGlue\hfil}  % Key "l": Left-adjusted column.  \NewFormatKey l{% -  \ReadFormatKeys  +  \ReadFormatKeys    \LeftGlue{}   % In case more than one positioning key is specified.    \RightGlue\hfil}  % Key "r": Right-adjusted column.  \NewFormatKey r{% -  \ReadFormatKeys  +  \ReadFormatKeys    \LeftGlue\hfil    \RightGlue{}} @@ -1235,19 +1239,19 @@    \h@true    \v@false    \!tgGetValue{\!tgInsertKern}} -   +  % Key "j": Adds a kern to the right of "#"  \NewFormatKey j{%    \h@false    \v@true    \!tgGetValue{\!tgInsertKern}} -   +  % ****************************************************************  % NUMERIC ITEM KEYS  % **************************************************************** -% Key "n": numeric item , non-math mode.  +% Key "n": numeric item , non-math mode.  \NewFormatKey n{%    \def\!tnStyle{}%     \futurelet\!tnext\!tnTestForBracket} @@ -1330,7 +1334,7 @@  % Key "o": Apply the \tabskip stated for this column ONLY to the  % inter-column space just to the right of this column; restore the -% the previous \tabskip for subsequent columns.  +% the previous \tabskip for subsequent columns.  \NewFormatKey o{%    \!taOnceOnlyTabskiptrue    \!tkTestForBeginFormat o{\!tgGetValue{\!tfSetTabskip}}} @@ -1355,11 +1359,11 @@  % Key ".":  PERIOD -- end of \BeginFormat section.  \NewFormatKey .{% -  \!tkTestForBeginFormat.{\!tfFinishFormat}}  +  \!tkTestForBeginFormat.{\!tfFinishFormat}}  % Key "\EndFormat": Equivalent to "."  \NewFormatKey \EndFormat{% -  \!tkTestForBeginFormat\EndFormat{\!tfFinishFormat}}  +  \!tkTestForBeginFormat\EndFormat{\!tfFinishFormat}}  % Key "]": End of \ReFormat section  \NewFormatKey ]{% @@ -1373,38 +1377,38 @@  % TEST FOR BEGIN FORMAT{<Key>}{Intended Action}: This test is run  % on keys that can only be used by \BeginFormat ---  "s",  "o",  % "|",  "\|",  "w",  ".",  and  "\EndFormat". -\def\!tkTestForBeginFormat#1#2{%  -  \if!taBeginFormat   +\def\!tkTestForBeginFormat#1#2{% +  \if!taBeginFormat      \def\!ttemp{#2}% -    \!thx \!ttemp     +    \!thx \!ttemp    \else -    \toks0={#1}%   +    \toks0={#1}%      \toks2=\!thx{\string\ReFormat}%      \!thx \!tkImproperUse -  \fi}    +  \fi}  % TEST FOR RE FORMAT{<Key>}{Intended Action}: This test is run  % on the key "]", which can only be used by \ReFormat. -\def\!tkTestForReFormat#1#2{%  -  \if!taBeginFormat   -    \toks0={#1}%   +\def\!tkTestForReFormat#1#2{% +  \if!taBeginFormat +    \toks0={#1}%      \toks2=\!thx{\string\BeginFormat}%      \!thx \!tkImproperUse    \else      \def\!ttemp{#2}% -    \!thx \!ttemp     -  \fi}    +    \!thx \!ttemp +  \fi}  % IMPROPER USE OF KEY -\def\!tkImproperUse{%  +\def\!tkImproperUse{%    \!thError{\!thReadErrorMsg\!tkBadUseA "\the\toks0 "}%      {\!thReadErrorMsg\!tkBadUseB \the\toks2 \space command.      ^^J\!thReadErrorMsg\!tkBadKey}%    \!tkReplaceKeyA} -  -% ERROR MESSAGES FOR IMPROPER USE OF KEY  -\!thStoreErrorMsg\!tkBadUseA{Improper use of key }   -\!thStoreErrorMsg\!tkBadUseB{%  + +% ERROR MESSAGES FOR IMPROPER USE OF KEY +\!thStoreErrorMsg\!tkBadUseA{Improper use of key } +\!thStoreErrorMsg\!tkBadUseB{%    The key mentioned above can't be used in a } @@ -1413,7 +1417,7 @@  % SECTION n: NUMERIC  % ********************************************************************* -% NOTE: THE SPACE BETWEEN A NUMERIC ENTRY AND THE FOLLOWING '|', '"',  +% NOTE: THE SPACE BETWEEN A NUMERIC ENTRY AND THE FOLLOWING '|', '"',  %   OR '\|' IS MANDATORY.  % EMPTY NUMERIC ENTRIES ARE NOT ALLOWED: USE '{}' OR '\omit' INSTEAD. @@ -1434,7 +1438,7 @@  \def\!tnConvertCode #1.#2.#3!{%    \begingroup      \aftergroup\edef \aftergroup\!ttemp \aftergroup{% -      \aftergroup[%  +      \aftergroup[%        \!taCountA #1        \!thLoop          \ifnum \!taCountA>0 @@ -1446,16 +1450,16 @@        \else          \aftergroup.          \!taCountA #2 -        \!thLoop  +        \!thLoop            \ifnum \!taCountA>0            \advance\!taCountA -1            \aftergroup0          \repeat -      \fi  +      \fi        \aftergroup]\aftergroup}%      \endgroup\relax      \!thx\!tnGetArgument\!ttemp} -   +  % GET ARGUMENT: [<sample left field> <optional .<sample right field>>  \def\!tnGetArgument[#1]{%    \!tnMakeNumericTemplate\!tnStyle#1..!} @@ -1554,7 +1558,7 @@      \setbox\z@=\hbox{#1}%    \fi    \!TsFinishEnlarge} -     +  \def\!TsEnlargeMath#1#2{%    \setbox\z@=\hbox{$\m@th#1{#2}$}%    \!TsFinishEnlarge} @@ -1605,14 +1609,14 @@  \def\!ttBeginTable{%    \ifx [\!tnext      \def\!tnext{\!ttBeginTableA}% -  \else  +  \else      \def\!tnext{\!ttBeginTableA[c]}%    \fi    \!tnext}  \def\!ttBeginTableA[#1]{%    \if #1u%                  % "unboxed" table -    \ifmmode                  +    \ifmmode        \def\!ttEndTable{%    % user had better be in display math mode          \relax}%            %   and have only one table at the outer level      \else                   % user had better be in vertical mode @@ -1656,7 +1660,7 @@      \catcode`\"=\active      \catcode`\~=\active      \def |{\unskip\!ttRightGlue&&}%         Use rule-column template -    \def\|{\unskip\!ttRightGlue&\omit\!ttAlternateVrule}%  +    \def\|{\unskip\!ttRightGlue&\omit\!ttAlternateVrule}%      %                                       Override rule-column template      \def"{\unskip\!ttRightGlue&\omit&}%     Omit rule-column template      \def~{\kern .5em}%                      ~ now has the width of a digit @@ -1672,7 +1676,7 @@      \the\EveryTable}  \egroup -\let\!ttRightGlue=\relax  % This may be changed, in a group, by  +\let\!ttRightGlue=\relax  % This may be changed, in a group, by                            %   \JustCenter, etc  % DO HALIGN: Invoked by END FORMAT (or the key ".") @@ -1682,8 +1686,8 @@    \halign \the\!taTableSpread \bgroup     \span\the\!taPreamble     \ifx \!tfRowOfWidths \empty -   \else  -     \!tfRowOfWidths \cr %  +   \else +     \!tfRowOfWidths \cr %     \fi}  % END TABLE @@ -1698,10 +1702,10 @@  % END OF ROW: When followed by  %   0, inserts no strut -%   +, inserts an AugmentedTableStrut (with <x-height> and <x-depth>  +%   +, inserts an AugmentedTableStrut (with <x-height> and <x-depth>  %      as arguments  %   anything else, inserts a StandardTableStrut, -% and finished off the row with a \cr.  +% and finished off the row with a \cr.  \def\!ttEndOfRow{%    \futurelet\!tnext\!ttTestForBlank} @@ -1713,7 +1717,7 @@    \else      \!thx\!ttTestForZero    \fi} -   +  % TEST FOR ZERO  \def\!ttTestForZero{%    \ifx 0\!tnext @@ -1732,16 +1736,16 @@  % DO ZERO: No strut  \def\!ttDoZero#1{% #1 eats the 0 -  \cr}  +  \cr}  % DO PLUS: Insert "Extra" strut; #2=extra height, #3=extra depth, both  % as integers (units of \StrutUnit)  \def\!ttDoPlus#1#2#3{% #1 eats the +    \AugmentedTableStrut{#2}{#3}% -  \cr}  +  \cr}  % DO STANDARD: Insert standard table strut -\def\!ttDoStandard{%  +\def\!ttDoStandard{%    \StandardTableStrut    \cr} @@ -1751,7 +1755,7 @@  % *********************************************************************  % A '\|' can appear in a rule-column in place of a '|', '"', or '&'. -  +  % If '\|' is immediately followed by a blank, a string of digits, or  % (...) [... had better be a <dimen>], a \vrule is placed in the  % rule column; the thickness of the \vrule follows TABLE's usual @@ -1759,14 +1763,14 @@  % If '\|' is immediately followed by a '*', a user-specified default  % "pseudo"-rule is placed in the rule column. This P.R. is specified -% by the parameterless macro \PseudoVrule. For example,  +% by the parameterless macro \PseudoVrule. For example,  % to place a "double rule" into a rule column, you could make the definition  %   \def\PseudoVrule{\hfil\vrule \hskip1pt \vrule\hfil}  % If none of the above cases applies, a non-space token follows '\|':  % that token is placed in the rule-column. To put a '*' in a  % rule-column, enter '\|{*}'. '\|\PseudoVrule' has the same effect -% as '\|*'.  +% as '\|*'.  % ALTERNATE VRULE  \def\!ttAlternateVrule{% @@ -1793,7 +1797,7 @@    \ifx \!ttemp\!thSpaceToken     % blank after "\|"      \!thx\!ttInsertVrule    \else -    \!thx\!ttAVTestForStar  +    \!thx\!ttAVTestForStar    \fi}  % TEST FOR STAR @@ -1806,10 +1810,10 @@  % INSERT VRULE  \def\!ttInsertVrule{% -  \hfil  +  \hfil    \vrule \!thWidth      \ifnum \!tgCode=1 -      \ifx \!tgValue\empty  +      \ifx \!tgValue\empty          \LineThicknessFactor        \else          \!tgValue @@ -1839,19 +1843,19 @@  % USE: Version of \multispan for rule-&-column tables  % ********************************************************************* -% USE  -% \use <number> spans the next <number> data columns.  +% USE +% \use <number> spans the next <number> data columns.  \def\!ttuse#1{% -  \ifnum #1>\@ne  -    \omit  +  \ifnum #1>\@ne +    \omit      \mscount=#1 %        \mscount is in Plain      \advance\mscount by \m@ne      \advance\mscount by \mscount -    \!thLoop  -      \ifnum\mscount>\@ne  +    \!thLoop +      \ifnum\mscount>\@ne        \sp@n %            from Plain (\span\omit \advance\mscount\m@ne) -    \repeat  -    \span  +    \repeat +    \span    \fi}  \def\!ttUse#1[{% @@ -1863,7 +1867,7 @@  % HRULES  % ********************************************************************* -% FULL HORIZONTAL RULE: Draws a rule across the table,  +% FULL HORIZONTAL RULE: Draws a rule across the table,  % using \noalign{\hrule}  \def\!ttFullHrule{%    \noalign @@ -1888,9 +1892,9 @@    \!ttGetHalfRuleThickness % Sets \dimen0 to half of specified thickness    \leaders \hrule \!thHeight \dimen0 \!thDepth \dimen0 \hfill    \null    % prevents an \unskip from annihilating the \leaders -  \ignorespaces}  +  \ignorespaces} -% LONG HORIZONTAL RULE: This rule requires special coding.  +% LONG HORIZONTAL RULE: This rule requires special coding.  % It must be preceded and followed by '&', instead of the usual  % '|' or '"'. However, '\_' can follow '\use' in the usual manner.  % And in fact, to insert long-rules in two or more contiguous columns, | 
