diff options
Diffstat (limited to 'macros/latex/contrib/sttools/stabular.dtx')
-rw-r--r-- | macros/latex/contrib/sttools/stabular.dtx | 263 |
1 files changed, 263 insertions, 0 deletions
diff --git a/macros/latex/contrib/sttools/stabular.dtx b/macros/latex/contrib/sttools/stabular.dtx new file mode 100644 index 0000000000..f8044720b1 --- /dev/null +++ b/macros/latex/contrib/sttools/stabular.dtx @@ -0,0 +1,263 @@ +% \iffalse meta-comment +% +% Copyright (C) 2014 by Sigitas Tolu\v{s}is <sigitas@vtex.lt> +% --------------------------------------------------------------------------- +% This work 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 version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of LaTeX +% version 2005/12/01 or later. +% +% This work has the LPPL maintenance status `maintained'. +% +% The Current Maintainer of this work is Sigitas Tolu\v{s}is. +% +% This work consists of the files stabular.dtx and stabular.ins +% and the derived filebase stabular.sty. +% +% \fi +% +% \iffalse +%<*driver> +\ProvidesFile{stabular.dtx} +%</driver> +%<*package> +%% Copyright (C) 1998-2014 by Sigitas Tolu\v{s}is <sigitas@vtex.lt> +%% VTeX Ltd., Akademijos 4, Vilnius, Lithuania +%% http://www.vtex.lt/tex/download/macros/ +%% -------------------------------------------------------------------------- +%% This work 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 version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% PURPOSE: Improve tabular environment. +%% +%</package> +%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01] +%<package>\ProvidesPackage{stabular} +%<*package> + [2014/03/20 v2.0 Improve tabular environment] +%</package> +% +%<*driver> +\documentclass{ltxdoc} +\usepackage{stabular}[2014/03/20] +\EnableCrossrefs +\CodelineIndex +\RecordChanges +\begin{document} + \DocInput{stabular.dtx} + %%\PrintChanges + %%\PrintIndex +\end{document} +%</driver> +% \fi +% +% \CheckSum{239} +% +% \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{v1.1}{2012/05/29}{Converted to DTX file} +% \changes{v1.2}{2014/01/13}{Fixed bug in the '@sarray' macro} +% \changes{v2.0}{2014/03/20}{Minimized code and extra functionality} +% +% \DoNotIndex{\newcommand,\newenvironment} +% +% \providecommand*{\url}{\texttt} +% \GetFileInfo{stabular.dtx} +% \title{The \textsf{stabular} package} +% \author{Sigitas Tolu\v{s}is \\ \url{sigitas@vtex.lt}} +% \date{\fileversion~from \filedate} +% +% \maketitle +% +% \section{Introduction} +% +% \textbf{Purpose}: improve tabular environment by allowing page break. +% +% \section{Usage} +% +% Just insert |\noalign{\eject}| after command |\\| to do a page break inside +% |stabular| environment. +% +% \DescribeMacro{stabular} +% \DescribeMacro{stabular*} +% Provides new environments: |stabular| and |stabular*|. +% It is one more multi-page version of tabular. +% +% \subsection{Package options} +% +% \DescribeMacro{array} +% \indent It is used to support tabular environment defined in array +% package. +% +% \StopEventually{} +% +% \section{Implementation} +% +% \iffalse +%<*package> +% \fi +% +% +% \begin{macrocode} +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{stabular}[2014/03/20] +% \end{macrocode} +% +% +% \begin{macrocode} +\def\use@@pkg@@array@@variant{0} +\DeclareOption{array}{\def\use@@pkg@@array@@variant{1}} +\ProcessOptions* +% \end{macrocode} +% +% +% \begin{macro}{stabular} +% \begin{macrocode} +\def\stabular{\let\@halignto\@empty\@stabular} +\def\endstabular{\crcr\egroup\egroup\egroup} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{stabular*} +% \begin{macrocode} +\@namedef{stabular*}#1{% + \setlength\dimen@{#1}% + \edef\@halignto{to\the\dimen@}% + \@tabular + } +\expandafter\let\csname endstabular*\endcsname\endstabular +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\@stabular} +% \begin{macrocode} +\def\@stabular{\leavevmode + \bgroup + \let\@acol\@tabacol + \let\@classz\@tabclassz + \let\@classiv\@tabclassiv + \let\\\@tabularcr + \@stabarray + } +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\@stabarray} +% \begin{macrocode} +\def\@stabarray{\m@th\@ifnextchar[\@sarray{\@sarray[c]}} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\@sarray} +% \begin{macrocode} +\def\@sarray[#1]#2{% + \bgroup + \setbox\@arstrutbox\hbox{% + \vrule \@height\arraystretch\ht\strutbox + \@depth\arraystretch \dp\strutbox + \@width\z@ + }% + \@mkpream{#2}% + \edef\@preamble{% + \ialign \noexpand\@halignto + \bgroup \@arstrut \@preamble \tabskip\z@skip \cr + }% + \let\@startpbox\@@startpbox \let\@endpbox\@@endpbox + \let\tabularnewline\\ + %%\let\par\@empty + \let\@sharp##% + \set@typeset@protect + \lineskip\z@skip \baselineskip\z@skip + \@preamble + } +% \end{macrocode} +% \end{macro} +% +% Definitions to provide |array| package support. +% +% \begin{macrocode} +\def\pkgarray@@sarray[#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 + \@arrayleft + \bgroup + \let\@sharp##\let\protect\relax + \lineskip\z@ \baselineskip\z@ + \m@th + \let\\\@arraycr \let\tabularnewline\\ + %%\let\par\@empty + \@preamble + } +\def\pkgarray@@stabarray{\@ifnextchar[{\pkgarray@@sarray}{\pkgarray@@sarray[c]}} +\def\pkgarray@stabular{\gdef\@halignto{}\pkgarray@@stabular} +\expandafter\def\csname pkgarray@stabular*\endcsname#1{% + \setlength\dimen@{#1}% + \xdef\@halignto{to\the\dimen@}\pkgarray@@stabular} +\def\pkgarray@@stabular{% + \leavevmode + \bgroup + \col@sep\tabcolsep + \let\d@llarbegin\begingroup + \let\d@llarend\endgroup + \pkgarray@@stabarray + } +\def\pkgarray@endstabular{\crcr\egroup\egroup\gdef\@preamble{}\egroup} +\expandafter\let\csname pkgarray@endstabular*\endcsname\pkgarray@endstabular +% \end{macrocode} +% +% +% \begin{macrocode} +\ifcase\use@@pkg@@array@@variant +\else + \@ifpackageloaded{array}{}{\RequirePackage{array}}% + \let\stabular\pkgarray@stabular + \expandafter\let\csname stabular*\expandafter\endcsname + \csname pkgarray@stabular*\endcsname + \let\endstabular\pkgarray@endstabular + \expandafter\let\csname endstabular*\expandafter\endcsname + \csname pkgarray@endstabular*\endcsname +\fi +% \end{macrocode} +% +% \iffalse +%</package> +% \fi +% +% \Finale |