From cf2cbc512e7c8f18c61eb6604adc68155cf468a3 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 12 Mar 2015 22:29:57 +0000 Subject: fcolumn (12mar15) git-svn-id: svn://tug.org/texlive/trunk@36499 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/latex/fcolumn/fcolumn.sty | 189 ++++++++++++++++++++++++ 1 file changed, 189 insertions(+) create mode 100644 Master/texmf-dist/tex/latex/fcolumn/fcolumn.sty (limited to 'Master/texmf-dist/tex/latex/fcolumn') diff --git a/Master/texmf-dist/tex/latex/fcolumn/fcolumn.sty b/Master/texmf-dist/tex/latex/fcolumn/fcolumn.sty new file mode 100644 index 00000000000..f0c7225d080 --- /dev/null +++ b/Master/texmf-dist/tex/latex/fcolumn/fcolumn.sty @@ -0,0 +1,189 @@ +%% +%% This is file `fcolumn.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% fcolumn.dtx (with options: `package') +%% +%% This is a generated file. +%% +%% Copyright (C) 2015 by Edgar Olthof +%% +%% This file may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either +%% version 1.2 of this license or (at your option) any later +%% version. The latest version of this license is in +%% +%% http://www.latex-project.org/lppl.txt +%% +%% and version 1.2 or later is part of all distributions of +%% LaTeX version 1999/12/01 or later. +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{fcolumn} + [2015/03/07 v1.0 automatic currency package] +\RequirePackage{array} +\newcolumntype{F}[3]{>{\b@fi{#1}{#2}{#3}}r<{\e@fi}} +\newcolumntype{f}{F{.}{,}{3,2}} +\newcount\FCsc@l \FCsc@l0 +\newcount\FCtc@l \FCtc@l0 +\newcount\g@lda +\newcount\g@ldb +\newif\ifwiths@p +\newif\ifstrictaccounting \strictaccountingfalse +\def\geldm@cro#1#2{\withs@pfalse + \afterassignment\g@ldm@cro\count@#2\relax{#1}} +\def\g@ldm@cro#1\relax#2{% + \ifnum#2<0 \ifstrictaccounting(\else-\fi\g@lda=-#2 \else\g@lda=#2 \fi + \ifx\relax#1\relax\g@ldb=2 \else \g@ldb\@gobble#1\relax\fi + \loop + \ifnum\g@ldb>0 \divide\g@lda by 10 \advance\g@ldb by \m@ne + \repeat + \g@ldens{\the\count@}% + \ifx\relax#1\relax\g@ldb=2 \else \g@ldb\@gobble#1\relax\fi + \ifnum\g@ldb>0\decim@lmark + \ifnum#2>0 \g@lda=-#2\else\g@lda=#2 \fi + \loop + \ifnum\g@ldb>0 \divide\g@lda by 10 \advance\g@ldb by \m@ne + \repeat + \ifx\relax#1\relax\g@ldb=2 \else \g@ldb\@gobble#1\relax\fi + \loop + \ifnum\g@ldb>0 \multiply\g@lda by 10 \advance\g@ldb by \m@ne + \repeat + \ifnum#2>0 \advance\g@lda by #2 + \else \advance\g@lda by -#2 + \fi + \ifx\relax#1\relax\g@ldb=2 \else \g@ldb\@gobble#1\relax\fi + \zerop@d{\number\g@ldb}{\number\g@lda}% + \fi + \ifnum#2<0 \ifstrictaccounting\rlap{)}\fi\fi} +\def\g@ldens#1{{\g@ldb=\g@lda \count0=#1 + \loop + \ifnum\count0>0 + \divide\g@lda by 10 + \advance\count0 by \m@ne + \repeat + \ifnum\g@lda>0 \g@ldens{#1}\fi + \count0=#1 + \loop + \ifnum\count0>0 + \multiply\g@lda by 10 + \advance\count0 by \m@ne + \repeat + \g@lda=-\g@lda + \advance\g@lda by \g@ldb \du@zendprint{#1}}} +\def\du@zendprint#1{\ifwiths@p\sep@rator\zerop@d{#1}{\number\g@lda}% + \else\zerop@d{1}{\number\g@lda}\fi + \global\withs@ptrue} +\def\zerop@d#1#2{{\count0=1 \count1=#2 + \loop + \divide \count1 by 10 + \ifnum\count1>0 \advance\count0 by 1 + \repeat + \loop + \ifnum\count0<#1 0\advance\count0 by 1 + \repeat + \number#2}} +\def\zetg@ld#1#2{\global\advance\csname + FCtot@\romannumeral\FCsc@l\endcsname by #1 + \setbox0=\hbox{$\geldm@cro{#1}{#2}$}% + \ifdim\wd0>\csname FCwd@\romannumeral\FCsc@l\endcsname + \global\csname FCwd@\romannumeral\FCsc@l\endcsname=\wd0 + \fi\unhbox0} +\def\check#1#2{\noalign{\ifnum\csname FCtot@\romannumeral#1\endcsname= + \csname FCtot@\romannumeral#2\endcsname\else + \message{Columns #1 and #2 do not balance!}\fi}} +\newcount\bedr@g +\def\b@fi#1#2#3{\def\sep@rator{{#1}}\def\decim@lmark{{#2}}% + \let\ignorespaces=\@empty \def\sp@l{#3}\global\advance\FCsc@l by \@ne + \bedr@g=} +\def\e@fi{\relax \zetg@ld{\number\bedr@g}{\sp@l}} +\def\@xarraycr{\@ifnextchar [% + \@argarraycr {\ifnum 0=`{}\fi \cr\noalign{\global\FCsc@l=0 }}} +\def\@array[#1]#2{% + \@tempdima \ht \strutbox + \advance \@tempdima by\extrarowheight + \setbox \@arstrutbox \hbox{\vrule + \@height \arraystretch \@tempdima + \@depth \arraystretch \dp \strutbox + \@width \z@}% + \begingroup + \@mkpream{#2}% + \xdef\@preamble{\noexpand \ialign \@halignto + \bgroup \@arstrut \@preamble + \tabskip \z@ \cr}% + \endgroup + \begingroup + \@mksumline{#2}% + \endgroup + \res@tsumline + \@arrayleft + \if #1t\vtop \else \if#1b\vbox \else \vcenter \fi \fi + \bgroup + \let \@sharp ##\let \protect \relax + \lineskip \z@ + \baselineskip \z@ + \m@th + \let\\\@arraycr \let\tabularnewline\\\let\par\@empty \@preamble} +\let\@@array=\@array +\def\@mksumline#1{\gdef\sumline{} + \@lastchclass 4 \@firstamptrue + \global\FCsc@l=\z@ + \let\prr@sult=\relax + \@temptokena{#1} + \@tempswatrue + \@whilesw\if@tempswa\fi{\@tempswafalse\the\NC@list}% + \count@\m@ne + \let\the@toks\relax + \prepnext@tok + \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}% + \xdef\sumline{\sumline\noexpand\\}} +\def\@addtosumline#1{\xdef\sumline{\sumline #1}} +\def\@classfx{\if@firstamp \@firstampfalse \else \@addtosumline &\fi} +\def\@classfz{\ifnum\@chnum<\thr@@ \@classfx\fi} +\def\@classfii{\ifnum\@lastchclass=8 + \edef\t@stm{\expandafter\string\@nextchar} + \edef\t@stn{\string\e@fi} + \ifx\t@stm\t@stn + \@addtosumline{\prr@sult} + \global\advance\FCsc@l by \@ne + \ifnum\FCsc@l>\FCtc@l + \expandafter\ifx\csname FCtot@\romannumeral\FCsc@l\endcsname\relax + \expandafter\newcount\csname FCtot@\romannumeral\FCsc@l\endcsname + \else + \message{\noexpand\FCtot@\romannumeral\FCsc@l already exists.} + \fi + \expandafter\ifx\csname FCwd@\romannumeral\FCsc@l\endcsname\relax + \expandafter\newdimen\csname FCwd@\romannumeral\FCsc@l\endcsname + \global\FCtc@l=\FCsc@l + \else + \message{\noexpand\FCwd@\romannumeral\FCsc@l already exists.} + \fi + \fi + \fi +\fi} +\def\leeg{0\relax \let\e@fi=\relax} +\def\prr@sult{\leeg + \setbox0=\hbox{$\geldm@cro{\number\csname + FCtot@\romannumeral\FCsc@l\endcsname}{\sp@l}$}% + \ifdim\wd0>\csname FCwd@\romannumeral\FCsc@l\endcsname + \global\csname FCwd@\romannumeral\FCsc@l\endcsname=\wd0 + \fi + \vbox{\hbox to \csname + FCwd@\romannumeral\FCsc@l\endcsname{\hrulefill}\vskip2pt + \hbox to \csname + FCwd@\romannumeral\FCsc@l\endcsname{\hfil\unhbox0}}} +\def\res@tsumline{\FCsc@l\FCtc@l \loop\ifnum\FCsc@l>0 + \global\csname FCtot@\romannumeral\FCsc@l\endcsname=0 + \global\csname FCwd@\romannumeral\FCsc@l\endcsname=0pt + \advance\FCsc@l by \m@ne \repeat} +\def\resetsumline{\noalign{\res@tsumline}} +\endinput +%% +%% End of file `fcolumn.sty'. -- cgit v1.2.3