summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/sttools/stabular.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/sttools/stabular.dtx')
-rw-r--r--macros/latex/contrib/sttools/stabular.dtx263
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