%% %% This is file `changebar.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% changebar.dtx (with options: `package') %% This is a generated file. %% %% Copyright (C) 1994-2004 Johannes Braams, All rights reserved. %% %% This file was generated from file(s) of the changebar package. %% -------------------------------------------------------------- %% %% It 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 2003/12/01 or later. %% %% This work has the LPPL maintenance status "maintained". %% %% The Current Maintainer of this work is Johannes Braams. %% %% This file may only be distributed together with a copy of the %% changebar package. You may however distribute thechangebar package %% without such generated files. %% %% The list of all files belonging to the changebar package is %% given in the file `manifest.txt. %% %% The list of derived (unpacked) files belonging to the distribution %% and covered by LPPL is defined by the unpacking scripts (with %% extension .ins) which are part of the distribution. %% Copyright 1994-2004 (C) Johannes Braams. All rights reserved. \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{changebar} [2004/02/20 v3.4g Indicate changes with marginal bars] \def\cb@maxpoint{80} \def\cb@minpoint{1} \def\cb@nil{0} \newcount\cb@nextpoint \cb@nextpoint=\cb@minpoint \newcount\cb@topleft \newcount\cb@topright \newcount\cb@botleft \newcount\cb@botright \newcount\cb@cnta \newcount\cb@cntb \newdimen\cb@dima \newdimen\cb@curbarwd \newcount\cb@page \newcount\cb@pagecount \cb@pagecount=0 \newif\ifouterbars \newif\if@cb@trace \newdimen\cb@odd@left \newdimen\cb@odd@right \newdimen\cb@even@left \newdimen\cb@even@right \def\cb@positions{% \global\cb@odd@left=\hoffset \global\cb@even@left\cb@odd@left \global\advance\cb@odd@left by \oddsidemargin \global\cb@odd@right\cb@odd@left \global\advance\cb@odd@right by \textwidth \global\advance\cb@odd@right by \changebarsep \global\advance\cb@odd@right by 0.5\changebarwidth \global\advance\cb@odd@left by -\changebarsep \global\advance\cb@odd@left by -0.5\changebarwidth \if@twoside \global\advance\cb@even@left by \evensidemargin \global\cb@even@right\cb@even@left \global\advance\cb@even@left by -\changebarsep \global\advance\cb@even@left by -0.5\changebarwidth \global\advance\cb@even@right by \textwidth \global\advance\cb@even@right by \changebarsep \global\advance\cb@even@right by 0.5\changebarwidth \else \global\let\cb@even@left\cb@odd@left \global\let\cb@even@right\cb@odd@right \fi } {\catcode`\p=12\catcode`\t=12 \gdef\cb@removedim#1pt{#1}} \DeclareOption{DVItoLN03}{\global\chardef\cb@driver@setup=0\relax} \DeclareOption{dvitoln03}{\global\chardef\cb@driver@setup=0\relax} \DeclareOption{DVItoPS}{\global\chardef\cb@driver@setup=1\relax} \DeclareOption{dvitops}{\global\chardef\cb@driver@setup=1\relax} \DeclareOption{DVIps}{\global\chardef\cb@driver@setup=2\relax} \DeclareOption{dvips}{\global\chardef\cb@driver@setup=2\relax} \DeclareOption{emTeX}{\global\chardef\cb@driver@setup=3\relax} \DeclareOption{emtex}{\global\chardef\cb@driver@setup=3\relax} \DeclareOption{textures}{\global\chardef\cb@driver@setup=4\relax} \DeclareOption{Textures}{\global\chardef\cb@driver@setup=4\relax} \DeclareOption{VTeX}{\global\chardef\cb@driver@setup=5\relax} \DeclareOption{vtex}{\global\chardef\cb@driver@setup=5\relax} \DeclareOption{outerbars}{\outerbarstrue} \DeclareOption{innerbars}{\outerbarsfalse} \DeclareOption{leftbars}{% \def\cb@positions{% \global\cb@odd@left=\hoffset \global\cb@even@left\cb@odd@left \global\advance\cb@odd@left by \oddsidemargin \global\advance\cb@odd@left by -\changebarsep \global\advance\cb@odd@left by -0.5\changebarwidth \if@twoside \global\advance\cb@even@left by \evensidemargin \global\advance\cb@even@left by -\changebarsep \global\advance\cb@even@left by -0.5\changebarwidth \else \global\let\cb@even@left\cb@odd@left \fi \global\let\cb@odd@right\cb@odd@left \global\let\cb@even@right\cb@even@left }} \DeclareOption{rightbars}{% \def\cb@positions{% \global\cb@odd@right=\hoffset \global\cb@even@right\cb@odd@right \global\advance\cb@odd@right by \oddsidemargin \global\advance\cb@odd@right by \textwidth \global\advance\cb@odd@right by \changebarsep \global\advance\cb@odd@right by 0.5\changebarwidth \if@twoside \global\advance\cb@even@right by \evensidemargin \global\advance\cb@even@right by \textwidth \global\advance\cb@even@right by \changebarsep \global\advance\cb@even@right by 0.5\changebarwidth \else \global\let\cb@even@right\cb@odd@right \fi \global\let\cb@odd@left\cb@odd@right \global\let\cb@even@left\cb@even@right }} \DeclareOption{traceon}{\@cb@tracetrue} \DeclareOption{traceoff}{\@cb@tracefalse} \DeclareOption{tracestacks}{% \let\cb@trace@stack\cb@@show@stack \def\cb@trace@push#1{\cb@trace{% Pushed point \the\cb@topleft\space on \noexpand#1: #1}}% \def\cb@trace@pop#1{\cb@trace{% Popped point \the\cb@topleft\space from \noexpand#1: #1}}% } \DeclareOption{grey}{% \def\cb@ps@color{\thechangebargrey\space 100 div setgray}} \DeclareOption{color}{% \def\cb@ps@color{\expandafter\c@lor@to@ps\cb@current@color\@@}} \DeclareOption*{\OptionNotUsed\PackageError {changebar}% {Unrecognised option `\CurrentOption'\MessageBreak known options are dvitoln03, dvitops, dvips,\MessageBreak emtex, textures and vtex, grey, color,\MessageBreak outerbars, innerbars, leftbars and rightbars}} \ifx\VTeXversion\undefined \ExecuteOptions{innerbars,traceoff,dvips,grey} \else \ExecuteOptions{innerbars,traceoff,vtex,grey} \fi \InputIfFileExists{changebar.cfg}{}{} \def\cb@@show@stack#1{% \cb@trace{% stack status at #1:\MessageBreak current stack: \cb@currentstack\MessageBreak \@spaces end stack: \cb@endstack\MessageBreak \space\space begin stack: \cb@beginstack\MessageBreak history stack: \cb@historystack }} \let\cb@trace@stack\@gobble \let\cb@trace@push\@gobble \let\cb@trace@pop\@gobble \ProcessOptions\relax \newcommand{\cb@trace}[1]{% \if@cb@trace \GenericWarning {(changebar)\@spaces\@spaces}% {Package changebar: #1\@gobble}% \fi } \if@compatibility \def\driver#1{% \bgroup\edef\next{\def\noexpand\tempa{#1}}% \uppercase\expandafter{\next}% \def\LN{DVITOLN03}% \def\DVItoPS{DVITOPS}% \def\DVIPS{DVIPS}% \def\emTeX{EMTEX}% \def\Textures{TEXTURES}% \def\VTeX{VTEX}% \global\chardef\cb@driver@setup=0\relax \ifx\tempa\LN \global\chardef\cb@driver@setup=0\fi \ifx\tempa\DVItoPS \global\chardef\cb@driver@setup=1\fi \ifx\tempa\DVIPS \global\chardef\cb@driver@setup=2\fi \ifx\tempa\emTeX \global\chardef\cb@driver@setup=3\fi \ifx\tempa\Textures \global\chardef\cb@driver@setup=4\fi \ifx\tempa\VTeX \global\chardef\cb@driver@setup=5\fi \egroup} {\def\do{\noexpand\do\noexpand} \xdef\@preamblecmds{\@preamblecmds \do\driver} } \fi \def\cb@trace@defpoint#1#2{% \cb@trace{% defining point \the#1 at position \the#2 \MessageBreak cb@pagecount: \the\cb@pagecount; page \thepage}} \def\cb@trace@connect#1#2#3{% \cb@trace{% connecting points \the#1 and \the#2; barwidth: \the#3 \MessageBreak cb@pagecount: \the\cb@pagecount; page \thepage}} \def\cb@setup@specials{% \ifcase\cb@driver@setup \def\cb@defpoint##1##2{% \special{ln03:defpoint \the##1(\the##2,)}% \cb@trace@defpoint##1##2} \def\cb@connect##1##2##3{% \special{ln03:connect \the##1\space\space \the##2\space \the##3}% \cb@trace@connect##1##2##3} \def\cb@resetpoints{% \special{ln03:resetpoints \cb@minpoint \space\cb@maxpoint}} \or \def\cb@defpoint##1##2{% \special{dvitops: inline \expandafter\cb@removedim\the##2\space 6.5536 mul\space /CBarX\the##1\space exch def currentpoint exch pop /CBarY\the##1\space exch def}% \cb@trace@defpoint##1##2} \def\cb@connect##1##2##3{% \special{dvitops: inline gsave \cb@ps@color\space \expandafter\cb@removedim\the##3\space 6.5536 mul\space CBarX\the##1\space\space CBarY\the##1\space\space moveto CBarX\the##2\space\space CBarY\the##2\space\space lineto stroke grestore}% \cb@trace@connect##1##2##3} \let\cb@resetpoints\relax \or \def\cb@defpoint##1##2{% \special{ps: \expandafter\cb@removedim\the##2\space Resolution\space mul\space 72.27\space div\space /CBarX\the##1\space exch def currentpoint exch pop /CBarY\the##1\space exch def}% \cb@trace@defpoint##1##2} \def\cb@connect##1##2##3{% \special{ps: gsave \cb@ps@color\space \expandafter\cb@removedim\the##3\space Resolution\space mul\space 72.27\space div\space setlinewidth CBarX\the##1\space\space CBarY\the##1\space\space moveto CBarX\the##2\space\space CBarY\the##2\space\space lineto stroke grestore}% \cb@trace@connect##1##2##3} \let\cb@resetpoints\relax \or \def\cb@defpoint##1##2{% \special{em:point \the##1,\the##2}% \cb@trace@defpoint##1##2} \def\cb@connect##1##2##3{% \special{em:line \the##1,\the##2,\the##3}% \cb@trace@connect##1##2##3} \let\cb@resetpoints\relax \or \def\cb@defpoint##1##2{% \special{rawpostscript \expandafter\cb@removedim\the##2\space /CBarX\the##1\space exch def currentpoint exch pop /CBarY\the##1\space exch def}% \if@cb@trace\cb@trace@defpoint##1##2\fi} \def\cb@connect##1##2##3{% \special{rawpostscript gsave 1 setlinecap \cb@ps@color\space \expandafter\cb@removedim\the##3\space setlinewidth CBarX\the##1\space\space CBarY\the##1\space\space moveto CBarX\the##2\space\space CBarY\the##2\space\space lineto stroke grestore}% \if@cb@trace\cb@trace@connect##1##2##3\fi} \let\cb@resetpoints\relax \or \def\cb@defpoint##1##2{% \special{pS: \expandafter\cb@removedim\the##2\space Resolution\space mul\space 72.27\space div\space /CBarX\the##1\space exch def currentpoint exch pop /CBarY\the##1\space exch def}% \cb@trace@defpoint##1##2} \def\cb@connect##1##2##3{% \special{pS: gsave \cb@ps@color\space \expandafter\cb@removedim\the##3\space Resolution\space mul\space 72.27\space div\space setlinewidth CBarX\the##1\space\space CBarY\the##1\space\space moveto CBarX\the##2\space\space CBarY\the##2\space\space lineto stroke grestore}% \cb@trace@connect##1##2##3} \let\cb@resetpoints\relax \or \else \PackageWarning{Changebar}{changebars not supported in unknown setup} \def\cb@defpoint##1##2{\cb@trace@defpoint##1##2} \def\cb@connect##1##2##3{\cb@trace@connect##1##2##3} \let\cb@resetpoints\relax \fi \global\let\cb@setup@specials\relax} \newcommand*{\cbstart}{\@ifnextchar [%] {\cb@start}% {\cb@start[\changebarwidth]}} \newcommand*{\cbend}{\cb@end} \newcommand*{\cbdelete}{\@ifnextchar [%] {\cb@delete}% {\cb@delete[\deletebarwidth]}} \def\cb@delete[#1]{\vbox to \z@{\vss\cb@start[#1]\vskip #1\cb@end}} \newenvironment{changebar}% {\@ifnextchar [{\cb@start}% {\cb@start[\changebarwidth]}}% {\cb@end} \newcommand*{\nochangebars}{% \def\cb@start[##1]{}% \def\cb@delete[##1]{}% \let\cb@end\relax} \newlength{\changebarwidth} \setlength{\changebarwidth}{2pt} \newlength{\deletebarwidth} \setlength{\deletebarwidth}{4pt} \newlength{\changebarsep} \setlength{\changebarsep}{30pt} \newcounter{changebargrey} \setcounter{changebargrey}{65} \@ifpackagewith{changebar}{color}{% \ifx\pdfoutput\undefined \RequirePackage[dvipsnames]{color}% \else \RequirePackage[pdftex,dvipsnames]{color}% \fi \DeclareRobustCommand\cbcolor{% \@ifnextchar[\@undeclaredcbcolor\@declaredcbcolor} \def\@undeclaredcbcolor[#1]#2{% \@ifundefined{color@#1}% {\c@lor@error{model `#1'}}% {\csname color@#1\endcsname\cb@current@color{#2}}% \ignorespaces} \def\@declaredcbcolor#1{% \@ifundefined{\string\color @#1}% {\c@lor@error{`#1'}}% {\expandafter\let\expandafter\cb@current@color \csname\string\color @#1\endcsname}% \ignorespaces}% }{% \def\cbcolor{\@ifnextchar[%] \@@cbcolor\@cbcolor}% \def\@@cbcolor[#1]#2{\cb@colwarn\def\@@cbcolor[##1]##2{}}% \def\@cbcolor#1{\cb@colwarn\def\@cbcolor##1{}}% \def\cb@colwarn{\PackageWarning{Changebar}% {You didn't specify the option `color';\MessageBreak your command \string\cbcolor\space will be ignored}}% } \def\cb@start[#1]{% \cb@topleft=\cb@nextpoint \cb@curbarwd#1\relax \cb@push\cb@currentstack \cb@checkpage\@ne \cb@cnta\cb@pagecount \cb@pagecount\cb@page\advance\cb@pagecount\m@ne \ifvmode \cb@setBeginPoints \else \vbox to \z@{% \vskip -\ht\strutbox \cb@setBeginPoints \vskip \ht\strutbox}% \fi \cb@pagecount\cb@cnta \cb@advancePoint} \def\cb@advancePoint{% \global\advance\cb@nextpoint by 4\relax \ifnum\cb@nextpoint>\cb@maxpoint \global\cb@nextpoint=\cb@minpoint\relax \fi} \def\cb@end{% \cb@trace@stack{end of bar on page \the\c@page}% \cb@pop\cb@currentstack \ifnum\cb@topleft=\cb@nil \PackageWarning{Changebar}% {Badly nested changebars; Expect erroneous results}% \else \cb@checkpage\tw@ \cb@cnta\cb@pagecount \cb@pagecount\cb@page\advance\cb@pagecount\m@ne \cb@setEndPoints \cb@pagecount\cb@cnta \fi \ignorespaces} \def\cb@checkpage#1{% \cb@cnta\cb@topleft\relax \cb@cntb\cb@page\relax \cb@dima\cb@curbarwd\relax \cb@pop\cb@historystack \ifnum\cb@topleft=\cb@nil \else \@whilenum\cb@topleft<\cb@cnta\do{% \cb@push\cb@tempstack \cb@pop\cb@historystack \ifnum\cb@topleft=\cb@nil \cb@trace{Ran out of history stack, new changebar?}% \cb@topleft\cb@maxpoint\advance\cb@topleft\@ne \fi }% \ifnum\cb@topleft>\cb@maxpoint\else \ifodd#1\else \cb@push\cb@tempstack \cb@pop\cb@historystack \fi \cb@cntb\cb@page \fi \@whilenum\cb@topleft>\cb@nil\do{% \cb@push\cb@historystack \cb@pop\cb@tempstack}% \fi \cb@topleft\cb@cnta\relax \cb@page\cb@cntb\relax \cb@curbarwd\cb@dima\relax } \def\cb@setBeginPoints{% \cb@topright=\cb@topleft\advance\cb@topright by\@ne \ifodd\cb@pagecount \cb@defpoint\cb@topleft\cb@even@left \cb@defpoint\cb@topright\cb@even@right \else \cb@defpoint\cb@topleft\cb@odd@left \cb@defpoint\cb@topright\cb@odd@right \fi \cb@writeAux\cb@topleft } \def\cb@setEndPoints{% \cb@topright=\cb@topleft\advance\cb@topright by\@ne \cb@botleft=\cb@topleft\advance\cb@botleft by\tw@ \cb@botright=\cb@topleft\advance\cb@botright by\thr@@ \ifodd\cb@pagecount \cb@defpoint\cb@botleft\cb@even@left \cb@defpoint\cb@botright\cb@even@right \else \if@twoside \cb@defpoint\cb@botleft\cb@odd@left \cb@defpoint\cb@botright\cb@odd@right \else \cb@defpoint\cb@botleft\cb@even@left \cb@defpoint\cb@botright\cb@even@right \fi \fi \cb@writeAux\cb@botright \edef\cb@leftbar{% \noexpand\cb@connect{\cb@topleft}{\cb@botleft}{\cb@curbarwd}}% \edef\cb@rightbar{% \noexpand\cb@connect{\cb@topright}{\cb@botright}{\cb@curbarwd}}% \if@twocolumn \if@firstcolumn\cb@leftbar\else\cb@rightbar\fi \else \ifouterbars \ifodd\cb@pagecount \cb@leftbar \else \if@twoside\cb@rightbar\else\cb@leftbar\fi \fi \else \ifodd\cb@pagecount \cb@rightbar \else \if@twoside\cb@leftbar\else\cb@rightbar\fi \fi \fi \fi }% \def\cb@writeAux#1{% \if@filesw \begingroup \edef\point{\the#1}% \edef\level{\the\cb@curbarwd}% \let\the=\z@ \edef\cb@temp{\write\@auxout {\string\cb@barpoint{\point}{\the\cb@pagecount}{\level}}}% \cb@temp \endgroup \fi} \let\ltx@makecol\@makecol \def\cb@makecol{% \cb@trace@stack{before makecol, page \the\c@page}% \let\cb@writeAux\@gobble \setbox\@cclv \vbox{% \cb@resetpoints \cb@startSpanBars \unvbox\@cclv \boxmaxdepth\maxdepth}% \global\advance\cb@pagecount by\@ne \cb@buildstack\cb@processActive \ltx@makecol \cb@trace@stack{after makecol, page \the\c@page}% } \let\@makecol\cb@makecol \let\ltx@vtryfc\@vtryfc \def\cb@vtryfc{% \let\cb@writeAux\@gobble \setbox\@outputbox \vbox{% \cb@resetpoints \cb@startSpanBars \unvbox\@cclv \boxmaxdepth\maxdepth}% \global\advance\cb@pagecount by \@ne \cb@buildstack\cb@processActive \ltx@vtryfc} \let\@vtryfc\cb@vtryfc \def\cb@processActive{% \cb@pop\cb@endstack \ifnum\cb@topleft=\cb@nil \else \setbox\@cclv\vbox{% \unvbox\@cclv \boxmaxdepth\maxdepth \advance\cb@pagecount by -1\relax \cb@setEndPoints}% \cb@push\cb@historystack \cb@push\cb@beginstack \expandafter\cb@processActive \fi} \def\cb@startSpanBars{% \cb@pop\cb@beginstack \ifnum\cb@topleft=\cb@nil \else \cb@setBeginPoints \cb@trace@stack{after StartSpanBars, page \the\c@page}% \expandafter\cb@startSpanBars \fi } \def\cb@buildstack{% \cb@initstack\cb@endstack \cb@pushNextActive} \def\cb@pushNextActive{% \cb@pop\cb@historystack \ifnum\cb@topleft=\cb@nil \else \ifnum\cb@page>\cb@pagecount \cb@push\cb@historystack \else \ifodd\cb@topleft \cb@push\cb@endstack \else \cb@pop\cb@endstack \fi \expandafter\expandafter\expandafter\cb@pushNextActive \fi \fi} \def\cb@initstack#1{\xdef#1{}} \cb@initstack\cb@historystack \newwrite\cb@write \newread\cb@read \immediate\openout\cb@write=\jobname.cb\relax \cb@initstack\cb@endstack \cb@initstack\cb@beginstack \cb@initstack\cb@tempstack \cb@initstack\cb@currentstack \def\cb@pop#1{% \ifx #1\cb@historystack \ifeof\cb@read \else {\endlinechar=-1\read\cb@read to\@temp \xdef\cb@historystack{\cb@historystack\@temp}% }% \fi \fi \ifx#1\@empty \global\cb@topleft\cb@nil \global\cb@page\z@\relax \else \expandafter\cb@carcdr#1e#1% \fi \cb@trace@pop{#1}} \def\cb@carcdr#1n#2p#3l#4e#5{% \global\cb@topleft#1\relax \global\cb@page#2\relax \global\cb@curbarwd#3\relax \xdef#5{#4}} \def\cb@push#1{% \xdef#1{\the\cb@topleft n\the\cb@page p\the\cb@curbarwd l#1}% \cb@trace@push{#1}} \def\cb@barpoint#1#2#3{\immediate\write\cb@write{#1n#2p#3l}} \AtBeginDocument{% \cb@setup@specials \global\cb@pagecount\c@page \global\advance\cb@pagecount\m@ne \cb@positions \cb@trace{% Odd left : \the\cb@odd@left\space Odd right : \the\cb@odd@right\MessageBreak Even left: \the\cb@even@left\space Even right: \the\cb@even@right }% \immediate\closeout\cb@write \immediate\openin\cb@read=\jobname.cb} \AtEndDocument{% \clearpage \cb@initstack\cb@historystack \immediate\closein\cb@read \immediate\openin\cb@read=\jobname.cb% \let\cb@barpoint\cb@checkHistory} \def\cb@checkHistory#1#2#3{% \cb@pop\cb@historystack \ifnum #1=\cb@topleft\relax \ifnum #2=\cb@page\relax \else \cb@error \fi \else \cb@error \fi} \def\cb@error{% \PackageWarning{Changebar}% {Changebar info has changed.\MessageBreak Rerun to get the bars right} \gdef\cb@checkHistory##1##2##3{}% \let\cb@barpoint\cb@checkHistory} \let\ltx@end@float\end@float \def\cb@end@float{% \cb@trace@stack{end float on page \the\c@page}% \cb@pop\cb@currentstack \ifnum\cb@topleft=\cb@nil \else \cb@push\cb@currentstack \global\cb@curbarwd=\cb@curbarwd \@endfloatbox \global\setbox\@currbox \color@vbox \normalcolor \vbox\bgroup\cb@start[\cb@curbarwd]\unvbox\@currbox\cb@end \fi \ltx@end@float} \let\end@float\cb@end@float \let\flt@float@end\float@end \def\float@end{% \cb@trace@stack{end float on page \the\c@page}% \cb@pop\cb@currentstack \ifnum\cb@topleft=\cb@nil \else \cb@push\cb@currentstack \global\cb@curbarwd\cb@curbarwd \@endfloatbox \global\setbox\@currbox \color@vbox \normalcolor \vbox\bgroup\cb@start[\cb@curbarwd]\unvbox\@currbox\cb@end \fi \let\end@float\ltx@end@float \flt@float@end } \let\ltx@end@dblfloat\end@dblfloat \def\cb@end@dblfloat{% \if@twocolumn \cb@trace@stack{end dblfloat on page \the\c@page}% \cb@pop\cb@currentstack \ifnum\cb@topleft=\cb@nil \else \cb@push\cb@currentstack \global\cb@curbarwd=\cb@curbarwd \@endfloatbox \global\setbox\@currbox \color@vbox \normalcolor \vbox\bgroup\cb@start[\cb@curbarwd]\unvbox\@currbox\cb@end \fi \@endfloatbox \ifnum\@floatpenalty <\z@ \@largefloatcheck \@cons\@dbldeferlist\@currbox \fi \ifnum \@floatpenalty =-\@Mii \@Esphack\fi \else \end@float \fi} \let\end@dblfloat\cb@end@dblfloat \let\flt@float@dblend\float@dblend \def\float@dblend{% \cb@trace@stack{end dbl float on page \the\c@page}% \cb@pop\cb@currentstack \ifnum\cb@topleft=\cb@nil \else \cb@push\cb@currentstack \global\cb@curbarwd=\cb@curbarwd \@endfloatbox \global\setbox\@currbox \color@vbox \normalcolor \vbox\bgroup\cb@start[\cb@curbarwd]\unvbox\@currbox\cb@end \fi \let\end@dblfloat\ltx@end@dblfloat \flt@float@dblend } \let\ltx@footnotetext\@footnotetext \long\def\cb@footnotetext#1{% \cb@trace@stack{end footnote on page \the\c@page}% \cb@pop\cb@currentstack \ifnum\cb@topleft=\cb@nil \ltx@footnotetext{#1}% \else \cb@push\cb@currentstack \edef\cb@temp{\the\cb@curbarwd}% \ltx@footnotetext{\cb@start[\cb@temp]#1\cb@end}% \fi} \let\@footnotetext\cb@footnotetext \let\ltx@mpfootnotetext\@mpfootnotetext \long\def\cb@mpfootnotetext#1{% \cb@pop\cb@currentstack \ifnum\cb@topleft=\cb@nil \ltx@mpfootnotetext{#1}% \else \cb@push\cb@currentstack \edef\cb@temp{\the\cb@curbarwd}% \ltx@mpfootnotetext{\cb@start[\cb@temp]#1\cb@end}% \fi} \let\@mpfootnotetext\cb@mpfootnotetext \endinput %% %% End of file `changebar.sty'.