diff options
Diffstat (limited to 'Master/texmf-dist/tex/generic/oberdiek/setouterhbox.sty')
-rw-r--r-- | Master/texmf-dist/tex/generic/oberdiek/setouterhbox.sty | 234 |
1 files changed, 234 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/generic/oberdiek/setouterhbox.sty b/Master/texmf-dist/tex/generic/oberdiek/setouterhbox.sty new file mode 100644 index 00000000000..debdcf5f3f0 --- /dev/null +++ b/Master/texmf-dist/tex/generic/oberdiek/setouterhbox.sty @@ -0,0 +1,234 @@ +%% +%% This is file `setouterhbox.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% setouterhbox.dtx (with options: `package') +%% +%% This is a generated file. +%% +%% Copyright (C) 2005, 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de> +%% +%% 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". +%% +%% This Current Maintainer of this work is Heiko Oberdiek. +%% +%% This work consists of the main source file setouterhbox.dtx +%% and the derived files +%% setouterhbox.sty, setouterhbox.pdf, setouterhbox.ins, setouterhbox.drv, +%% setouterhbox-example.tex. +%% +\begingroup + \expandafter\let\expandafter\x\csname ver@setouterhbox.sty\endcsname + \ifcase 0% + \ifx\x\relax % plain + \else + \ifx\x\empty % LaTeX + \else + 1% + \fi + \fi + \else + \expandafter\ifx\csname PackageInfo\endcsname\relax + \def\x#1#2{% + \immediate\write-1{Package #1 Info: #2.}% + }% + \else + \def\x#1#2{\PackageInfo{#1}{#2, stopped}}% + \fi + \x{setouterhbox}{The package is already loaded}% + \endgroup + \expandafter\endinput + \fi +\endgroup +\begingroup + \expandafter\ifx\csname ProvidesPackage\endcsname\relax + \def\x#1#2#3[#4]{\endgroup + \immediate\write-1{Package: #3 #4}% + \xdef#1{#4}% + }% + \else + \def\x#1#2[#3]{\endgroup + #2[#3]% + \ifx#1\relax + \xdef#1{#3}% + \fi + }% + \fi +\expandafter\x\csname ver@setouterhbox.sty\endcsname +\ProvidesPackage{setouterhbox}% + [2006/08/26 v1.4 Set hbox in outer horizontal mode (HO)] +\newbox\setouterhboxBox +\def\setouterhboxFailure#1#2{% + \begingroup + \expandafter\ifx\csname PackageError\endcsname\relax + \def\MessageBreak{^^J}% + \newlinechar=10\relax + \edef\z{#2}% + \errhelp\expandafter{\z}% + \errmessage{Package setouterhbox Error: #1}% + \else + \PackageError{setouterhbox}{#1}{#2}% + \fi + \endgroup +} +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname lastnodetype\endcsname\relax + \catcode`T=9 % ignore + \catcode`E=14 % comment +\else + \catcode`T=14 % comment + \catcode`E=9 % ignore +\fi +\def\setouterhboxRemove{% +E \ifnum\lastnodetype<11 % +E \else +E \ifnum\lastnodetype>13 % +E \else + \unskip\unkern\unpenalty +E \expandafter\expandafter\expandafter\setouterhboxRemove +E \fi +E \fi +}% +\def\setouterhbox#1{% + \begingroup + \def\setouterhboxNum{#1}% + \setbox0\vbox\bgroup +T \kern.123pt\relax % marker +T \kern0pt\relax % removed by \setouterhboxRemove + \begingroup + \everypar{}% + \noindent +} +\def\endsetouterhbox{% + \endgroup + \pretolerance-1 % + \tolerance10000 % + \hsize\maxdimen + \parfillskip 0pt plus 1filll\relax + \leftskip0pt\relax + \rightskip0pt plus 1fil\relax + \everypar{}% + \kern0pt% + \endgraf + \setouterhboxRemove +E \ifnum\lastnodetype=1 % +E \global\setbox\setouterhboxBox\lastbox +E \loop +E \setouterhboxRemove +E \ifnum\lastnodetype=1 % +E \setbox0=\lastbox +E \global\setbox\setouterhboxBox=\hbox{% +E \unhbox0 % +E \unskip +E \unhbox\setouterhboxBox +E }% +E \repeat +E \else +E \setouterhboxFailure{% +E Something is wrong% +E }{% +E Could not find expected line.% +E \MessageBreak +E (\string\lastnodetype: \number\lastnodetype, expected: 1)% +E }% +E \fi +E \setouterhboxRemove +T \global\setbox\setouterhboxBox\lastbox +T \loop +T \setouterhboxRemove +T \setbox0=\lastbox +T \ifcase\ifvoid0 1\else0\fi +T \global\setbox\setouterhboxBox=\hbox{% +T \unhbox0 % +T \unskip +T \unhbox\setouterhboxBox +T }% +T \repeat +T \ifdim.123pt=\lastkern +T \else +T \setouterhboxFailure{% +T Something is wrong% +T }{% +T Unexpected stuff was detected before the line.% +T }% +T \fi +T \egroup +T \ifcase \ifnum\wd0=0 \else 1\fi +T \ifdim\ht0=.123pt \else 1\fi +T \ifnum\dp0=0 \else 1\fi +T 0 % +E \ifnum\lastnodetype=-1 % + \else + \setouterhboxFailure{% + Something is wrong% + }{% + After fetching the line there is more unexpected stuff.% +E \MessageBreak +E (\string\lastnodetype: \number\lastnodetype, expected: -1)% + }% + \fi +E \egroup + \expandafter\endgroup + \expandafter\setouterhboxFinish\expandafter{% + \number\setouterhboxNum + }% +} +\def\setouterhboxCurr{setouterhbox} +\def\setouterhboxLast#1{% + \setbox#1\hbox{% + \unhbox\setouterhboxBox + \unskip % remove \rightskip glue + \unskip % remove \parfillskip glue + \unpenalty % remove paragraph ending \penalty 10000 + \unkern % remove explicit kern inserted above + }% +} +\def\setouterhboxFinish#1{% + \begingroup\expandafter\expandafter\expandafter\endgroup + \expandafter\ifx\csname @currenvir\endcsname\setouterhboxCurr + \aftergroup\setouterhboxLast + \aftergroup{% + \setouterhboxAfter #1\NIL + \aftergroup}% + \else + \setouterhboxLast{#1}% + \fi +} +\def\setouterhboxAfter#1#2\NIL{% + \aftergroup#1% + \ifx\\#2\\% + \else + \setouterhboxReturnAfterFi{% + \setouterhboxAfter#2\NIL + }% + \fi +} +\long\def\setouterhboxReturnAfterFi#1\fi{\fi#1} +\catcode69=11\relax % E +\catcode84=11\relax % T +\begingroup + \def\x{LaTeX2e}% +\expandafter\endgroup +\ifx\x\fmtname +\else + \expandafter\endinput +\fi +\DeclareOption{hyperref}{% + \long\def\Hy@setouterhbox#1#2{% + \setouterhbox{#1}#2\endsetouterhbox + }% +} +\ProcessOptions\relax +\endinput +%% +%% End of file `setouterhbox.sty'. |