diff options
author | Manuel Pégourié-Gonnard <mpg@elzevir.fr> | 2008-08-05 13:31:12 +0000 |
---|---|---|
committer | Manuel Pégourié-Gonnard <mpg@elzevir.fr> | 2008-08-05 13:31:12 +0000 |
commit | 353b09dc769b5720eac184d14e1885b31072c6bb (patch) | |
tree | 664b3c4139ad4bb19da26cb6751c5ef32c31de81 /Master | |
parent | e2bfc77b4c18f77c6fef592230d326438d9c4f63 (diff) |
rm xor
git-svn-id: svn://tug.org/texlive/trunk@10095 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
43 files changed, 0 insertions, 26545 deletions
diff --git a/Master/texmf-dist/doc/latex3/xor/cat.eps b/Master/texmf-dist/doc/latex3/xor/cat.eps deleted file mode 100644 index 0042ea088fe..00000000000 --- a/Master/texmf-dist/doc/latex3/xor/cat.eps +++ /dev/null @@ -1,305 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%BoundingBox: 44 527 80 559 -%%Creator: COREL DRAW -%%Title: CAT.TMP -%%CreationDate: Sat Jan 18 17:29:05 1992 - -%%DocumentFonts: -%%EndComments -%%BeginProlog -% -------------- POSTSCRIPT PROLOG FOR CORELDRAW 2.X ------ -% Copyright Corel Systems Corporation 1990 -/AutoFlatness 0 def/wCorelDict 300 dict def -wCorelDict begin/bd{bind def}bind def/ld{load def}bd -/xd{exch def}bd/_ null def/$c 0 def/$m 0 def -/$y 0 def/$k 0 def/$t 1 def/$n _ def/$o 0 def -/$fil 0 def/$C 0 def/$M 0 def/$Y 0 def/$K 0 def -/$T 1 def/$N _ def/$O 0 def/$PF false def -/$pan 0 def/$h false def/$al 0 def/$tr 0 def -/$le 0 def/$lx 0 def/$ly 0 def/$ctm matrix currentmatrix def -/$ptm matrix def/$ttm matrix def/$stm matrix def -/$skm matrix def/$fst 128 def/$pad 0 def/$rox 0 def -/$roy 0 def currentscreen/@dsp xd/$dsp/@dsp def -/$dsa xd/$dsf xd/$sdf false def/$SDF false def -/$Scra 0.0 def statusdict/pageparams known{statusdict begin -pageparams end 1 ne{/$Scra -90.0 def}if pop pop pop}if -/$sv 0 def/@cp/closepath ld/@gs/gsave ld/@gr/grestore ld -/@np/newpath ld/@sv{/$sv save def}bd/@rs{$sv restore}bd -/@ss{load setscreen}bd AutoFlatness 1 eq{/$cpx ([Error: PathTooComplex; OffendingCommand: AnyPaintingOperator;\n) def -/@err1{$cpx print flush newpath}bd/@ifl{currentflat dup 10 gt{pop @err1 exit}if 2 add setflat}bd -/@fill/fill ld/fill{currentflat{{@fill}stopped{@ifl}{exit}ifelse}bind loop setflat}bd -/@eofill/eofill ld/eofill{currentflat{{@eofill}stopped{@ifl}{exit}ifelse}bind loop setflat}bd -/@clip/clip ld/clip{currentflat{{@clip}stopped{initclip @ifl}{exit}ifelse}bind loop setflat}bd -/@eoclip/eoclip ld/eoclip{currentflat{{@eoclip}stopped{initclip @ifl}{exit}ifelse}bind loop setflat}bd -/@stroke/stroke ld/stroke{currentflat{{@stroke}stopped{@ifl}{exit}ifelse}bind loop setflat}bd -}if/InRange{3 -1 roll 2 copy le{pop}{exch pop}ifelse -2 copy ge{pop}{exch pop}ifelse}bd/wDstChck{2 1 roll dup 3 -1 roll -eq{1 add}if}bd/@dot{dup mul exch dup mul add 1 exch sub 2 div}bd -/@lin{exch pop abs 1 exch sub}bd/@MN{2 copy le{pop}{exch pop}ifelse}bd -/setcmykcolor where{pop}{/setcmykcolor{4 1 roll -3{3 index add 1 @MN 1 exch sub 3 1 roll}repeat -setrgbcolor pop}bd}ifelse/colorimage where{pop}{/colorimage{/$ncl xd -pop pop pop pop{currentfile $dat readhexstring pop}repeat -pop}bd}ifelse/@tc{dup 1 ge{pop}{4{dup 6 -1 roll -mul exch}repeat pop}ifelse}bd/@spc{7 2 roll -ColorSeparationMode 1 eq{6 index @tc 0 4 $ink sub index -exch pop}{5 index dup _ eq{pop 0 4 $ink sub index -exch pop}{CurrentInkName eq{6 index}{0}ifelse}ifelse}ifelse -5 1 roll 8 -2 roll 6{pop}repeat 1 exch sub dup setgray -1 eq exch 1 eq and not}bd/@scc{$ink -1 eq -{$c $m $y $k $t @tc setcmykcolor true}{$o $c $m $y $k $t $n @spc -}ifelse}bd/@SCC{$ink -1 eq{$C $M $Y $K $T @tc setcmykcolor true}{ -$O $C $M $Y $K $T $N @spc}ifelse}bd/@sft{ -/$tx $tllx $pxf add dup $tllx gt{$pwid sub}if def -/$ty $tury $pyf sub dup $tury lt{$phei add}if def}bd -/@stb{pathbbox/$ury xd/$urx xd/$lly xd/$llx xd}bd -/@ep{{cvx exec}forall}bd/@tp{@sv/$in true def -2 copy dup $lly le{/$in false def}if $phei sub $ury ge{/$in false def}if -dup $urx ge{/$in false def}if $pwid add $llx le{/$in false def}if -$in{@np 2 copy moveto $pwid 0 rlineto 0 $phei neg rlineto -$pwid neg 0 rlineto 0 $phei rlineto clip @np -$pn cvlit load aload pop 7 -1 roll 5 index sub -7 -1 roll 3 index sub translate/$ctm matrix currentmatrix def -@ep pop pop pop pop}{pop pop}ifelse @rs}bd/@th{@sft -0 1 $tly 1 sub{dup $psx mul $tx add{dup $llx gt{$pwid sub}{exit}ifelse -}loop exch $phei mul $ty exch sub 0 1 $tlx 1 sub{$pwid mul -3 copy 3 -1 roll add exch @tp pop}for pop pop}for}bd -/@tv{@sft 0 1 $tlx 1 sub{dup $pwid mul $tx add -exch $psy mul $ty exch sub{dup $ury lt{$phei add}{exit}ifelse}loop -0 1 $tly 1 sub{$phei mul 3 copy sub @tp pop}for -pop pop}for}bd/@pf{@gs $ctm setmatrix $pm concat -@stb @gs ColorSeparationMode 0 eq{1 setgray eofill}{ -$o 0 0 0 0 0 (Black) @spc{eofill}if}ifelse -@gr eoclip Bburx Bbury $pm itransform/$tury xd/$turx xd -Bbllx Bblly $pm itransform/$tlly xd/$tllx xd -/$wid $turx $tllx sub def/$hei $tury $tlly sub def -$wid 0 gt $hei 0 gt and{$pn cvlit load aload pop -/$pd xd 3 -1 roll sub/$phei xd exch sub/$pwid xd -/$tlx $wid $pwid div ceiling 1 add def/$tly $hei $phei div ceiling 1 add def -$psx 0 eq{@tv}{@th}ifelse}if @gr @np}bd/@dlt{ColorSeparationMode 0 eq{ -/$dc $toc $tot mul $frc $frt mul dup/$c xd sub $fst 1 sub div def -/$dm $tom $tot mul $frm $frt mul dup/$m xd sub $fst 1 sub div def -/$dy $toy $tot mul $fry $frt mul dup/$y xd sub $fst 1 sub div def -/$dk $tok $tot mul $frk $frt mul dup/$k xd sub $fst 1 sub div def -true}{$o $frc $frm $fry $frk $frt $frn @spc -dup{/$frk 1 currentgray sub def}{/$frk 0 def}ifelse -$o $toc $tom $toy $tok $tot $ton @spc dup{/$tok 1 currentgray sub def} -{/$tok 0 def}ifelse or dup{/$c 0 def/$m 0 def/$y 0 def/$k $frk def -/$dc 0 def/$dm 0 def/$dy 0 def/$dk $tok $frk sub $fst 1 sub div def}if -}ifelse}bd/@ftl{1 index 4 index sub dup $pad mul dup/$pdw xd -2 mul sub $fst div/$wid xd 2 index sub/$hei xd -pop translate $c $m $y $k 4 copy ColorSeparationMode 0 ne -{1 exch sub setgray pop pop pop}{setcmykcolor}ifelse -0 0 moveto 0 $hei lineto $pdw $hei lineto $pdw 0 lineto 0 0 lineto fill -$pdw 0 translate $fst{4 copy ColorSeparationMode 0 ne -{1 exch sub setgray pop pop pop}{setcmykcolor}ifelse -0 0 moveto 0 $hei lineto $wid $hei lineto $wid 0 lineto 0 0 lineto fill -$wid 0 translate $dk add 4 1 roll $dy add 4 1 roll -$dm add 4 1 roll $dc add 4 1 roll}repeat $dk sub 4 1 roll -$dy sub 4 1 roll $dm sub 4 1 roll $dc sub 4 1 roll -ColorSeparationMode 0 ne{1 exch sub setgray pop pop pop} -{setcmykcolor}ifelse 0 0 moveto 0 $hei lineto $pdw $hei lineto $pdw 0 lineto 0 0 lineto fill -}bd/@ftr{1 index 4 index sub dup $rox mul/$row xd -2 div 1 index 4 index sub dup $roy mul/$roh xd -2 div 2 copy dup mul exch dup mul add sqrt -$row dup mul $roh dup mul add sqrt add dup/$hei xd $fst div/$wid xd -4 index add $roh add exch 5 index add $row add -exch translate pop pop pop pop currentflat 5 mul setflat -$c $m $y $k 4 copy ColorSeparationMode 0 ne -{1 exch sub setgray pop pop pop}{setcmykcolor}ifelse -$wid 0 moveto 0 0 $hei 0 360 arc fill 1.0 $pad 2 mul sub dup scale -$fst{4 copy ColorSeparationMode 0 ne{1 exch sub setgray pop pop pop} -{setcmykcolor}ifelse $wid 0 moveto 0 0 $hei 0 360 arc fill -/$hei $hei $wid sub def $dk add 4 1 roll $dy add 4 1 roll -$dm add 4 1 roll $dc add 4 1 roll}repeat pop pop pop pop}bd -/@ff{@gs @dlt{$ctm setmatrix eoclip newpath Bbllx Bblly moveto -Bbllx Bbury lineto Bburx Bbury lineto Bburx Bblly lineto -$fan rotate pathbbox newpath $fty 1 eq{@ftr}{@ftl}ifelse}if -@gr @np}bd/@Pf{@sv ColorSeparationMode 0 eq $ink 3 eq or{$ctm setmatrix -72 1000 div dup matrix scale dup concat dup Bburx exch Bbury exch itransform -ceiling cvi/Bbury xd ceiling cvi/Bburx xd Bbllx exch Bblly exch itransform -floor cvi/Bblly xd floor cvi/Bbllx xd $Prm aload pop -$Psn load exec}{1 setgray eofill}ifelse @rs -@np}bd/@ftx{{(0) dup 3 -1 roll 0 exch put -@gs true charpath currentpoint $ctm setmatrix -@@txt @gr @np moveto $tr 0 rmoveto}forall pop}bd -/@sm{/$ctm $ctm currentmatrix def}bd/@lorg{$lx $ly moveto -/$ly $ly $le sub def}bd/@ft{matrix currentmatrix 3 1 roll -$sdf{$scf $sca $scp @ss}if $fil 1 eq{/@@txt/@pf ld @ftx}{$fil 2 eq -{/@@txt/@ff ld @ftx}{$fil 3 eq{/@@txt/@Pf ld @ftx}{@scc -{dup $tr exch 0 exch ashow}if pop pop}ifelse}ifelse}ifelse -$sdf{$dsf $dsa $dsp @ss}if setmatrix}bd/@st{ -matrix currentmatrix 3 1 roll $SDF{$SCF $SCA $SCP @ss}if -@SCC{{(0) dup 3 -1 roll 0 exch put @gs true charpath currentpoint -$ctm setmatrix $ptm concat stroke @gr moveto $tr 0 rmoveto}forall -pop}{pop pop}ifelse $SDF{$dsf $dsa $dsp @ss}if -setmatrix}bd/@pt{dup length exch}bd/@te{@pt -@lorg @ft cleartomark [}bd/@tr{@pt @lorg @st cleartomark [}bd -/@ta{@pt @lorg 2 copy @gs @ft @gr @st cleartomark [}bd -/@t@a{@pt @lorg 2 copy @gs @st @gr @ft cleartomark [}bd -/g{1 exch sub/$k xd/$c 0 def/$m 0 def/$y 0 def/$t 1 def/$n _ def/$fil 0 def -}bd/G{1 exch sub/$K xd/$C 0 def/$M 0 def/$Y 0 def/$T 1 def/$N _ def}bd -/k{/$k xd/$y xd/$m xd/$c xd/$t 1 def/$n _ def/$fil 0 def}bd -/K{/$K xd/$Y xd/$M xd/$C xd/$T 1 def/$N _ def}bd -/x{1 exch sub/$t xd/$n xd/$k xd/$y xd/$m xd/$c xd/$fil 0 def}bd -/X{1 exch sub/$T xd/$N xd/$K xd/$Y xd/$M xd/$C xd}bd -/d/setdash ld/i{dup 0 ne{setflat}{pop}ifelse}bd -/j/setlinejoin ld/J/setlinecap ld/M/setmiterlimit ld -/w/setlinewidth ld/O{/$o xd}bd/R{/$O xd}bd -/c/curveto ld/C/c ld/v{4 -2 roll 2 copy 6 -2 roll curveto}bd -/V/v ld/y{2 copy curveto}bd/Y/y ld/l/lineto ld -/L/l ld/m/moveto ld/n/newpath ld/N/newpath ld -/F{matrix currentmatrix $sdf{$scf $sca $scp @ss}if -$fil 1 eq{@pf}{$fil 2 eq{@ff}{$fil 3 eq{@Pf}{@scc{eofill}{@np}ifelse -}ifelse}ifelse}ifelse $sdf{$dsf $dsa $dsp @ss}if -setmatrix}bd/f{@cp F}bd/S{matrix currentmatrix -$ctm setmatrix $SDF{$SCF $SCA $SCP @ss}if @SCC{$skm currentmatrix -$ptm concat stroke setmatrix}{@np}ifelse $SDF{$dsf $dsa $dsp @ss}if -setmatrix}bd/s{@cp S}bd/B{@gs F @gr S}bd/b{@cp B}bd -/W{eoclip}bd/p{/$pm xd 7{pop}repeat/$pyf xd/$pxf xd -/$pn xd/$fil 1 def}bd/P{11{pop}repeat}bd/z{/$al xd -/$tr xd/$le xd exch findfont exch scalefont setfont}bd -/Z{dup type 0 type eq{/$bDir xd}if findfont -dup maxlength 1 add dict exch dup{1 index/FID ne{3 index -3 1 roll put}{pop pop}ifelse}forall pop dup dup/Encoding get -256 array copy dup/$fe xd/Encoding exch put -dup/Fontname 3 index put 3 -1 roll dup length 0 ne{0 exch{ -dup type 0 type eq{exch pop}{$fe exch 2 index exch put -1 add}ifelse}forall pop}if definefont pop}bd -/e{@sm concat [/t{@te}def}bd/r{@sm concat [/t{@tr}def}bd -/o{@sm concat [/t{pop}def}bd/a{@sm concat [/t{@ta}def}bd -/t{@te}def/T{cleartomark @np/$lx 0 def/$ly 0 def -$ctm setmatrix/$ttm matrix def}bd/u{}bd/U{}bd -/A{pop}bd/H{/$h true def}bd/h{@cp H}bd/q/@gs ld -/Q/@gr ld/E{5 array astore exch cvlit exch def}bd -/`{}bd/~{}bd/@{}bd/&{}bd/CorelDrawRencodeVect [ -16#80/grave/circumflex/tilde/dotlessi/florin/quotedblleft/quotedblright/guilsinglleft -16#88/guilsinglright/fi/fl/dagger/daggerdbl/endash/periodcentered/breve -16#90/quotedblbase/ellipsis/perthousand/trademark/Pt/fractionbar -16#98/divide 16#a1/exclamdown/cent/sterling/currency/yen/bar/section -16#a8/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/emdash/registered/overbar -16#b0/ring/plusminus/twosuperior/threesuperior/acute/mu/paragraph/bullet -16#b8/cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf/threequarters/questiondown -16#c0/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla -16#c8/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis -16#d0/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/OE -16#d8/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls -16#e0/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla -16#e8/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis -16#f0/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/oe -16#f8/oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis -] def/@cc{currentfile $dat readhexstring pop}bd -/@ii{concat 3 index 3 index m 3 index 1 index l -2 copy l 1 index 3 index l 3 index 3 index l -clip pop pop pop pop}bd/@E{/Bbury xd/Bburx xd -/Bblly xd/Bbllx xd}bd/@c{@cp}bd/@p{/$fil 1 def -/$pm xd/$psy xd/$psx xd/$pyf xd/$pxf xd/$pn xd}bd -/@P{/$fil 3 def/$Psn xd array astore/$Prm xd}bd -/@k{/$fil 2 def/$roy xd/$rox xd/$pad xd/$fty xd/$fan xd -$fty 1 eq{/$fan 0 def}if/$tok xd/$toy xd/$tom xd/$toc xd -/$frk xd/$fry xd/$frm xd/$frc xd/$frn _ def/$frt 1 def/$ton _ def/$tot 1 def -}bd/@x{/$fil 2 def/$roy xd/$rox xd/$pad xd -/$fty xd/$fan xd 1 exch sub/$tot xd/$ton xd/$tok xd/$toy xd/$tom xd/$toc xd -1 exch sub/$frt xd/$frn xd/$frk xd/$fry xd/$frm xd/$frc xd}bd -/@i{@sm @gs @ii 5 index 1 ne{@gs 1 g F @gr}if -1 eq 5 index 1 eq and{@gs $ctm setmatrix F @gr}if -@np/$ury xd/$urx xd/$lly xd/$llx xd/$bts xd -/$hei xd/$wid xd/$dat $wid $bts mul 8 div ceiling cvi string def -$bts 1 eq{@SCC/$frg xd}{1 G @SCC/$frg xd}ifelse -$frg{$SDF{$SCF $SCA $SCP @ss}if $llx $lly translate -$urx $llx sub $ury $lly sub scale $wid $hei abs -$bts 1 eq{false}{$bts}ifelse [ $wid 0 0 $hei neg 0 -$hei 0 gt{$hei}{0}ifelse]/@cc load $bts 1 eq{imagemask}{image}ifelse -$SDF{$dsf $dsa $dsp @ss}if}{$hei{@cc pop}repeat}ifelse -@gr $ctm setmatrix}def/@M {@sv}bd/@N{/@cc{}def -12 -1 roll neg 12 1 roll @i @rs}bd/@I{@sm @gs -@ii @np/$ury xd/$urx xd/$lly xd/$llx xd/$ncl xd -/$bts xd/$hei xd/$wid xd/$dat $wid $bts mul $ncl mul 8 div ceiling cvi string def -$llx $lly translate $urx $llx sub $ury $lly sub scale -$wid $hei $bts [ $wid 0 0 $hei neg 0 $hei]/@cc load -false $ncl colorimage @gr $ctm setmatrix}bd -/@t{/$lx 0 def/$ly 0 def/$stm $stm currentmatrix def -3 1 roll translate $ttm concat 1 exch t $stm setmatrix}def -/@n{/$ttm exch matrix rotate def}bd/@z{ exch findfont exch scalefont setfont -}bd/@s{}bd/@l{}bd/@B{@gs S @gr F}bd/@b{@cp @B}bd -/@a{@sm concat [/t{@t@a}def}bd/@w{5 2 roll dup/$pan xd -matrix rotate/$ptm xd matrix scale $ptm dup concatmatrix/$ptm xd -1 eq{$ptm exch dup concatmatrix/$ptm xd}{pop}ifelse -1 w}bd/@g{1 eq dup/$sdf xd{/$scp xd/$sca xd -/$scf xd}if}bd/@G{1 eq dup/$SDF xd{/$SCP xd -/$SCA xd/$SCF xd}if}bd/@D{3 copy @ss/$dsp xd -/$dsa xd/$dsf xd}bd/@j{@sv @np}bind def/@J{@rs}bind def -/@sep{/ColorSeparationMode where{pop}{/ColorSeparationMode 0 def -/CurrentInkName (Composite) def}ifelse ColorSeparationMode 0 eq -{/CurrentInkName (Composite) def}if/CurrentInkName where{pop}{ -/CurrentInkName (Composite) def}ifelse CurrentInkName (Composite) eq{/$ink -1 def} -{CurrentInkName (Cyan) eq{/$ink 0 def} {CurrentInkName (Magenta) eq{/$ink 1 def} -{CurrentInkName (Yellow) eq{/$ink 2 def} {CurrentInkName (Black) eq{/$ink 3 def} -{/$ink 4 def}ifelse}ifelse}ifelse}ifelse}ifelse}bd -@sep/@whi{@gs -72000 dup moveto -72000 72000 lineto -72000 dup lineto 72000 -72000 lineto closepath 1 setgray fill -@gr}bd/@neg{ [{1 exch sub}/exec cvx currenttransfer/exec cvx] cvx settransfer -@whi}bd/@reg{[] 0 d 0 setgray .3 setlinewidth -2 copy 5.4 0 360 arc closepath 2 copy moveto 9 0 rlineto -2 copy moveto -9 0 rlineto 2 copy moveto 0 9 rlineto -moveto 0 -9 rlineto stroke}bd/leftbracket{(\050)}def -/rightbracket{(\051)}def - -%%EndProlog -%%BeginSetup -11.4737 setmiterlimit -1.00 setflat -/$fst 128 def - -%%EndSetup -@sv -/$ctm matrix currentmatrix def -u -%%Note: Object -45.22 528.19 78.98 558.14 @E -0 J 0 j [] 0 d 0 R 0 @G -0.00 0.00 0.00 1.00 K -1.01 1.01 0.00 [1.00000 0.00000 0.00000 1.00000 0.00000 0.00000] 0 @w -%%CURV 106 -73.30 539.78 m -73.08 538.42 72.22 537.26 71.78 536.33 C -72.79 534.67 73.73 531.43 74.81 530.64 C -74.59 530.64 77.04 528.84 73.87 529.06 C -73.08 529.34 73.08 530.93 70.20 533.81 C -69.70 533.74 70.56 530.57 71.50 529.63 c -73.15 528.19 70.27 528.55 70.13 528.62 C -68.98 529.34 68.62 534.60 67.03 536.26 c -66.24 537.19 65.16 536.98 64.30 536.90 C -63.22 536.62 60.62 537.19 60.55 534.02 C -60.62 532.66 62.14 530.21 62.86 529.78 c -65.30 528.41 62.06 528.34 61.70 528.77 C -61.13 529.34 60.19 530.64 59.26 531.65 C -57.74 532.44 56.38 533.66 56.02 534.96 C -54.94 534.74 53.86 534.17 53.64 533.23 C -53.42 532.22 53.86 531.58 54.86 530.14 C -56.02 529.85 56.38 529.27 56.02 528.98 c -55.87 528.84 53.71 528.62 53.57 528.91 C -52.70 529.49 51.70 531.86 51.19 533.16 c -50.90 533.88 49.97 535.82 51.55 537.77 C -51.98 538.49 51.91 539.86 51.77 540.65 c -51.55 541.94 51.55 542.74 52.42 544.46 C -49.75 546.77 45.22 551.23 49.61 557.14 C -50.11 557.64 51.55 558.14 50.76 556.27 C -49.82 553.68 46.66 551.45 53.42 546.19 C -54.50 546.91 58.97 546.48 60.48 546.19 c -64.66 545.33 65.52 545.33 68.40 546.05 C -68.76 546.19 68.83 547.99 70.34 549.22 C -70.06 550.15 72.00 551.45 72.22 552.53 C -72.65 553.39 73.66 550.73 73.66 550.66 C -73.58 551.23 74.66 552.31 74.81 552.96 C -75.74 553.25 75.10 550.94 75.89 549.50 c -76.32 548.93 76.68 549.07 77.11 547.70 C -77.47 546.34 78.98 545.18 76.54 543.89 c -75.17 543.17 74.59 543.31 73.58 542.88 C -73.58 542.23 73.51 540.79 73.30 539.78 c -@c -S -U -@rs -%%Trailer - end diff --git a/Master/texmf-dist/doc/latex3/xor/escher.eps b/Master/texmf-dist/doc/latex3/xor/escher.eps deleted file mode 100644 index 87e6b36a84f..00000000000 --- a/Master/texmf-dist/doc/latex3/xor/escher.eps +++ /dev/null @@ -1,63 +0,0 @@ -%! -%%BoundingBox: 0 0 236 236 -% M. C. Escher style impossible triangle -% written by Guy Shaw - -% Things that are easy to play with: -% Position on paper, overall size, and linewidth -/inch { 72 mul } bind def - -gsave - -.15 inch 0 translate -3 inch dup scale -1 3 inch div setlinewidth - -% Thickness parameter: -% /Thick is the thickness of the structural members of the triange, -% as a fraction of the height of the triangle. -% Reasonable looking impossible triangles can be obtained with Thick <= 1/6. -% right at /Thick == 1/6, there is no space left inside the triangle. -% /Thick > 1/6 yields bizarre, but not very interesting results. -% /Thick < 1/20 is less interesting, because the "impossibility" -% is not so striking when the structural members are that thin. -% A good "standard" value is 1/8. - -/Thick 1 8 div def - -% You would not normally want to change anything that follows. - -/Tall 1 def -/HalfThick Thick .5 mul def - -newpath - HalfThick Thick moveto - Thick 0 lineto - 1 Thick sub 0 lineto - 1 HalfThick sub Thick lineto - .5 HalfThick add Tall Thick sub lineto - - 1 Thick sub 0 moveto - .5 HalfThick add Tall 3 Thick mul sub lineto - Thick 3 mul Thick 2 mul lineto - - 1 Thick 2.5 mul sub Thick moveto - .5 Tall Thick 4 mul sub lineto -stroke - -newpath - HalfThick Thick moveto - 1 Thick 2.5 mul sub Thick lineto - HalfThick neg Thick rlineto - Thick Thick add Thick Thick add lineto - .5 HalfThick add Tall Thick sub lineto - Thick neg 0 rlineto - closepath -fill -grestore -/Helvetica findfont 30 scalefont setfont -0 5 moveto (L) show -3.1 inch 5 moveto (R) show -1.6 inch 2.7 inch moveto (T) show -showpage - diff --git a/Master/texmf-dist/doc/latex3/xor/europe.eps b/Master/texmf-dist/doc/latex3/xor/europe.eps deleted file mode 100644 index c0b0c013f8f..00000000000 --- a/Master/texmf-dist/doc/latex3/xor/europe.eps +++ /dev/null @@ -1,3227 +0,0 @@ -%!PS-Adobe-2.0 EPSF-1.2
-%%Creator: FreeHand -%%Title: #13 -%%CreationDate: 12/3/90 15:59 -%%BoundingBox: 105 61 747 537 -%%DocumentProcSets: FreeHand_header 2 0 -%%DocumentSuppliedProcSets: FreeHand_header 2 0 -%%ColorUsage: Color -%%CMYKProcessColor: 0 0 0 0.1 (10% gray) -%%+ 0 0 0 0.2 (20% gray) -%%+ 0 0 0 0.4 (40% gray) -%%+ 0 0 0 0.6 (60% gray) -%%+ 0 0 0 0.8 (80% gray) -%%EndComments -%%BeginProcSet: FreeHand_header 2 0 -/FreeHandDict 200 dict def -FreeHandDict begin -/currentpacking where{pop true setpacking}if -/bdf{bind def}bind def -/bdef{bind def}bdf -/xdf{exch def}bdf -/ndf{1 index where{pop pop pop}{dup xcheck{bind}if def}ifelse}bdf -/min{2 copy gt{exch}if pop}bdf -/max{2 copy lt{exch}if pop}bdf -/dr{transform .25 sub round .25 add -exch .25 sub round .25 add exch itransform}bdf -/curveto{dr curveto}bdf -/lineto{dr lineto}bdf -/moveto{dr moveto}bdf -/graystep 1 256 div def -/bottom -0 def -/delta -0 def -/frac -0 def -/left -0 def -/numsteps -0 def -/numsteps1 -0 def -/radius -0 def -/right -0 def -/top -0 def -/x -0 def -/y -0 def -/df currentflat def -/tempstr 1 string def -/clipflatness 3 def -/inverted? -0 currenttransfer exec .5 ge def -/concatprocs{ -/proc2 exch cvlit def/proc1 exch cvlit def -/newproc proc1 length proc2 length add array def -newproc 0 proc1 putinterval newproc proc1 length proc2 putinterval -newproc cvx}bdf -/storerect{/top xdf/right xdf/bottom xdf/left xdf}bdf -/rectpath{newpath left bottom moveto left top lineto -right top lineto right bottom lineto closepath}bdf -/sf{dup 0 eq{pop df dup 3 mul}{dup} ifelse /clipflatness xdf setflat}bdf -version cvr 38.0 le -{/setrgbcolor{ -currenttransfer exec 3 1 roll -currenttransfer exec 3 1 roll -currenttransfer exec 3 1 roll -setrgbcolor}bdf}if -/gettint{0 get}bdf -/puttint{0 exch put}bdf -/vms{/vmsv save def}bdf -/vmr{vmsv restore}bdf -/vmrs{vmr vms}bdf -/CD{/NF exch def -{exch dup/FID ne{exch NF 3 1 roll put} -{pop pop}ifelse}forall NF}bdf -/MN{1 index length/Len exch def -dup length Len add string dup -Len 4 -1 roll putinterval dup 0 4 -1 roll putinterval}bdf -/RC{256 string cvs(|______)anchorsearch -{1 index MN cvn/NewN exch def cvn -findfont dup maxlength dict CD dup/FontName NewN put dup -/Encoding MacVec put NewN exch definefont pop}{pop}ifelse}bdf -/RF{dup FontDirectory exch known{pop}{RC}ifelse}bdf -/FF{dup 256 string cvs(|______)exch MN cvn dup FontDirectory exch known -{exch}if pop findfont}bdf -userdict begin /BDFontDict 20 dict def end -BDFontDict begin -/bu{}def -/bn{}def -/setTxMode{pop}def -/gm{moveto}def -/show{pop}def -/gr{pop}def -/fnt{pop pop pop}def -/fs{pop}def -/fz{pop}def -/lin{pop pop}def -end -/MacVec 256 array def -MacVec 0 /Helvetica findfont -/Encoding get 0 128 getinterval putinterval -MacVec 127 /DEL put MacVec 16#27 /quotesingle put MacVec 16#60 /grave put -/NUL/SOH/STX/ETX/EOT/ENQ/ACK/BEL/BS/HT/LF/VT/FF/CR/SO/SI -/DLE/DC1/DC2/DC3/DC4/NAK/SYN/ETB/CAN/EM/SUB/ESC/FS/GS/RS/US -MacVec 0 32 getinterval astore pop -/Adieresis/Aring/Ccedilla/Eacute/Ntilde/Odieresis/Udieresis/aacute -/agrave/acircumflex/adieresis/atilde/aring/ccedilla/eacute/egrave -/ecircumflex/edieresis/iacute/igrave/icircumflex/idieresis/ntilde/oacute -/ograve/ocircumflex/odieresis/otilde/uacute/ugrave/ucircumflex/udieresis -/dagger/degree/cent/sterling/section/bullet/paragraph/germandbls -/register/copyright/trademark/acute/dieresis/notequal/AE/Oslash -/infinity/plusminus/lessequal/greaterequal/yen/mu/partialdiff/summation -/product/pi/integral/ordfeminine/ordmasculine/Omega/ae/oslash -/questiondown/exclamdown/logicalnot/radical/florin/approxequal/Delta/guillemotleft -/guillemotright/ellipsis/nbspace/Agrave/Atilde/Otilde/OE/oe -/endash/emdash/quotedblleft/quotedblright/quoteleft/quoteright/divide/lozenge -/ydieresis/Ydieresis/fraction/currency/guilsinglleft/guilsinglright/fi/fl -/daggerdbl/periodcentered/quotesinglbase/quotedblbase -/perthousand/Acircumflex/Ecircumflex/Aacute -/Edieresis/Egrave/Iacute/Icircumflex/Idieresis/Igrave/Oacute/Ocircumflex -/apple/Ograve/Uacute/Ucircumflex/Ugrave/dotlessi/circumflex/tilde -/macron/breve/dotaccent/ring/cedilla/hungarumlaut/ogonek/caron -MacVec 128 128 getinterval astore pop -/fps{currentflat exch dup 0 le{pop 1}if -{dup setflat 3 index stopped -{1.3 mul dup 3 index gt{pop setflat pop pop stop}if}{exit}ifelse -}loop pop setflat pop pop -}bdf -/fp{100 currentflat fps}bdf -/rfp{clipflatness currentflat fps}bdf -/fcp{100 clipflatness fps}bdf -/fclip{{clip}fcp}bdf -/feoclip{{eoclip}fcp}bdf -end %. FreeHandDict -%%EndProcSet -%%BeginSetup -FreeHandDict begin -/ccmyk{dup 5 -1 roll sub 0 max exch}ndf -/setcmykcolor{1 exch sub ccmyk ccmyk ccmyk pop setrgbcolor}ndf -/setcmykcoloroverprint{4{dup -1 eq{pop 0}if 4 1 roll}repeat setcmykcolor}ndf -/findcmykcustomcolor{5 /packedarray where{pop packedarray}{array astore readonly}ifelse}ndf -/setcustomcolor{exch aload pop pop 4{4 index mul 4 1 roll}repeat setcmykcolor pop}ndf -/setseparationgray{1 exch sub dup dup dup setcmykcolor}ndf -/setoverprint{pop}ndf -/currentoverprint false ndf -/colorimage{pop pop -[5 -1 roll/exec cvx 6 -1 roll/exec cvx 7 -1 roll/exec cvx 8 -1 roll/exec cvx -/exch cvx/pop cvx/exch cvx/pop cvx/exch cvx/pop cvx/invbuf cvx]cvx image} -%. version 47.1 of Postscript defines colorimage incorrectly (rgb model only) -version cvr 47.1 le{userdict begin bdf end}{ndf}ifelse -/customcolorimage{pop image}ndf -/separationimage{image}ndf -/newcmykcustomcolor{6 /packedarray where{pop packedarray}{array astore readonly}ifelse}ndf -/inkoverprint false ndf -/setinkoverprint{pop}ndf -/overprintprocess{pop}ndf -/setspotcolor -{spots exch get 0 5 getinterval exch setcustomcolor}ndf -/currentcolortransfer{currenttransfer dup dup dup}ndf -/setcolortransfer{systemdict begin settransfer end pop pop pop}ndf -/setimagecmyk{dup length 4 eq -{aload pop} -{aload pop spots exch get 0 4 getinterval aload pop 4 -{4 index mul 4 1 roll}repeat 5 -1 roll pop} ifelse -systemdict /colorimage known{version cvr 47.1 gt}{false}ifelse -not{pop 1 currentgray sub}if -/ik xdf /iy xdf /im xdf /ic xdf -}ndf -/setcolor{dup length 4 eq -{aload overprintprocess setcmykcolor} -{aload 1 get spots exch get 5 get setinkoverprint setspotcolor} -ifelse}ndf -/bc2[0 0]def -/bc4[0 0 0 0]def -/c1[0 0 0 0]def -/c2[0 0 0 0]def -/absmax{2 copy abs exch abs gt{exch}if pop}bdf -/calcstep -{c1 length 4 eq -{ -0 1 3 -{c1 1 index get -c2 3 -1 roll get -sub -}for -absmax absmax absmax -} -{ -bc2 c1 1 get 1 exch put -c1 gettint c2 gettint -sub abs -}ifelse -graystep div abs round dup 0 eq{pop 1}if -dup /numsteps xdf 1 sub dup 0 eq{pop 1}if /numsteps1 xdf -}bdf -/cblend{ -c1 length 4 eq -{ -0 1 3 -{bc4 exch -c1 1 index get -c2 2 index get -1 index sub -frac mul add put -}for bc4 -}{ -bc2 -c1 gettint -c2 gettint -1 index sub -frac mul add -puttint bc2 -}ifelse -setcolor -}bdf -/logtaper{/frac frac 9 mul 1 add log def}bdf -/imbits 1 def -/iminv false def -/invbuf{0 1 2 index length 1 sub{dup 2 index exch get 255 exch sub 2 index 3 1 roll put}for}bdf -/cyanrp{currentfile cyanbuf readhexstring pop iminv{invbuf}if}def -/magentarp{cyanbuf magentabuf copy}bdf -/yellowrp{cyanbuf yellowbuf copy}bdf -/blackrp{cyanbuf blackbuf copy}bdf -/fixtransfer{ -dup{ic mul ic sub 1 add}concatprocs exch -dup{im mul im sub 1 add}concatprocs exch -dup{iy mul iy sub 1 add}concatprocs exch -{ik mul ik sub 1 add}concatprocs -currentcolortransfer -5 -1 roll exch concatprocs 7 1 roll -4 -1 roll exch concatprocs 6 1 roll -3 -1 roll exch concatprocs 5 1 roll -concatprocs 4 1 roll -setcolortransfer -}bdf -/currentpacking where{pop false setpacking}if -%%EndSetup -/spots[1 0 0 0 (Process Cyan) false newcmykcustomcolor -0 1 0 0 (Process Magenta) false newcmykcustomcolor -0 0 1 0 (Process Yellow) false newcmykcustomcolor -0 0 0 1 (Process Black) false newcmykcustomcolor -]def -vms -0 sf -newpath -106.3 534.9 moveto -746 534.9 lineto -746 62 lineto -106.3 62 lineto -closepath -gsave -[0 0 0 0.1]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -268 477.6 moveto -268 477.6 lineto -closepath -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -270.2 475.4 moveto -270.2 475.4 lineto -274.8 475.4 lineto -277 473.1 lineto -283.8 473.1 lineto -281.6 468.6 lineto -274.8 466.3 lineto -272.5 461.8 lineto -270.2 459.5 lineto -268 457.2 lineto -270.2 455 lineto -274.8 457.2 lineto -279.3 457.2 lineto -283.8 455 lineto -283.8 455 lineto -288.4 455 lineto -286.2 450.4 lineto -283.8 445.8 lineto -281.6 441.4 lineto -277 439 lineto -274.8 436.8 lineto -272.5 436.8 lineto -274.8 434.6 lineto -272.5 432.2 lineto -265.7 434.6 lineto -270.2 432.2 lineto -274.8 430 lineto -277 427.8 lineto -277 423.2 lineto -277 421 lineto -274.8 418.6 lineto -270.2 416.4 lineto -263.4 414.2 lineto -258.9 414.2 lineto -254.4 416.4 lineto -249.8 411.8 lineto -249.8 416.4 lineto -247.6 421 lineto -249.8 423.2 lineto -254.4 427.8 lineto -254.4 432.2 lineto -256.6 434.6 lineto -254.4 436.8 lineto -254.4 439 lineto -249.8 436.8 lineto -245.3 432.2 lineto -247.6 436.8 lineto -249.8 441.4 lineto -254.4 443.6 lineto -254.4 448.2 lineto -258.9 450.4 lineto -252.1 448.2 lineto -252.1 452.7 lineto -256.6 455 lineto -256.6 461.8 lineto -256.6 464 lineto -258.9 468.6 lineto -263.4 466.3 lineto -263.4 470.8 lineto -265.7 473.1 lineto -270.2 475.4 lineto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -245.3 468.6 moveto -247.6 473.1 lineto -247.6 477.6 lineto -252.1 477.6 lineto -254.4 479.9 lineto -256.6 479.9 lineto -256.6 475.4 lineto -252.1 473.1 lineto -245.3 468.6 lineto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -302 489 moveto -302 493.5 lineto -304.2 495.8 lineto -304.2 500.3 lineto -306.6 498 lineto -306.6 493.5 lineto -302 489 lineto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -231.7 427.8 moveto -227.2 427.8 lineto -227.2 425.4 lineto -222.6 425.4 lineto -222.6 423.2 lineto -218.1 421 lineto -220.3 416.4 lineto -224.9 414.2 lineto -229.4 416.4 lineto -231.7 411.8 lineto -231.7 409.6 lineto -236.2 409.6 lineto -240.8 414.2 lineto -243 414.2 lineto -240.8 418.6 lineto -240.8 425.4 lineto -236.2 427.8 lineto -231.7 427.8 lineto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -231.7 427.8 moveto -227.2 427.8 lineto -227.2 425.4 lineto -222.6 425.4 lineto -222.6 423.2 lineto -218.1 421 lineto -220.3 416.4 lineto -224.9 414.2 lineto -229.4 416.4 lineto -231.7 411.8 lineto -229.4 405 lineto -229.4 398.2 lineto -227.2 393.7 lineto -224.9 386.9 lineto -220.3 384.6 lineto -220.3 380.1 lineto -220.3 380.1 lineto -215.8 382.4 lineto -211.3 380.1 lineto -204.5 382.4 lineto -199.9 380.1 lineto -193.1 380.1 lineto -186.3 380.1 lineto -186.3 384.6 lineto -188.6 384.6 lineto -184.1 384.6 lineto -186.3 386.9 lineto -181.8 389.2 lineto -184.1 391.4 lineto -186.3 391.4 lineto -181.8 393.7 lineto -186.3 396 lineto -188.6 396 lineto -193.1 396 lineto -199.9 396 lineto -197.7 398.2 lineto -190.9 398.2 lineto -195.4 400.6 lineto -197.7 405 lineto -202.2 405 lineto -199.9 407.4 lineto -195.4 409.6 lineto -193.1 414.2 lineto -197.7 416.4 lineto -199.9 416.4 lineto -197.7 421 lineto -197.7 423.2 lineto -197.7 425.4 lineto -202.2 425.4 lineto -206.7 421 lineto -211.3 421 lineto -213.5 423.2 lineto -215.8 423.2 lineto -213.5 427.8 lineto -215.8 430 lineto -218.1 430 lineto -218.1 434.6 lineto -222.6 434.6 lineto -227.2 432.2 lineto -231.7 434.6 lineto -234 432.2 lineto -231.7 427.8 lineto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -259.8 411.2 moveto -258.2 407.2 lineto -261.4 403.2 lineto -261.4 402.4 lineto -261.4 399.2 lineto -259 396 lineto -258.2 392 lineto -260.6 388.8 lineto -257.4 387.2 lineto -258.2 383.2 lineto -255.8 381.6 lineto -254.2 377.6 lineto -252.6 372.8 lineto -250.2 368 lineto -251.8 362.4 lineto -254.2 360 lineto -249.4 356.8 lineto -247 353.6 lineto -243 355.2 lineto -239 355.2 lineto -235.8 358.4 lineto -233.4 356 lineto -231 356 lineto -227 352.8 lineto -222.2 349.6 lineto -217.4 347.2 lineto -213.4 346.4 lineto -217.4 344 lineto -218.2 340.8 lineto -223 344 lineto -227 344 lineto -231.8 344 lineto -234.2 340 lineto -237.4 342.4 lineto -237.4 346.4 lineto -246.2 344.8 lineto -250.2 341.6 lineto -252.6 344.8 lineto -255.8 343.2 lineto -259.8 345.6 lineto -263 341.6 lineto -267 342.4 lineto -271.8 340 lineto -279.8 340 lineto -283.8 342.4 lineto -291 344 lineto -287.8 345.6 lineto -283.8 347.2 lineto -282.2 350.4 lineto -285.4 350.4 lineto -286.2 350.4 lineto -286.2 353.6 lineto -290.2 355.2 lineto -295.8 359.2 lineto -297.4 364.8 lineto -296.6 369.6 lineto -292.6 370.4 lineto -288.6 372.8 lineto -285.4 370.4 lineto -283.8 374.4 lineto -287 379.2 lineto -285.4 384.8 lineto -282.2 388 lineto -286.2 389.6 lineto -287 393.6 lineto -283.8 399.2 lineto -280.6 403.2 lineto -280.6 409.6 lineto -279 414.4 lineto -279.8 420.8 lineto -277.4 424.8 lineto -277 423.2 lineto -277 421 lineto -274.8 418.6 lineto -270.2 416.4 lineto -263.4 414.2 lineto -259.8 411.2 lineto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -258.2 407.2 moveto -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -257.4 387.2 moveto -258.2 383.2 lineto -255.8 381.6 lineto -254.2 377.6 lineto -252.6 372.8 lineto -250.2 368 lineto -251.8 362.4 lineto -254.2 360 lineto -246.2 359.2 lineto -243 360.8 lineto -239.8 364 lineto -239 365.6 lineto -236.6 368 lineto -233.4 366.4 lineto -230.2 366.4 lineto -232.6 368.8 lineto -229.4 370.4 lineto -228.6 373.6 lineto -235 372.8 lineto -239.8 373.6 lineto -242.2 377.6 lineto -244.6 380.8 lineto -244.6 384.8 lineto -240.6 385.6 lineto -247 388 lineto -251 389.6 lineto -254.2 387.2 lineto -257.4 389.6 lineto -257.4 387.2 lineto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -404.6 535.2 moveto -399.8 532.8 lineto -402.2 530.4 lineto -396.6 530.4 lineto -394.2 528.8 lineto -392.6 532.8 lineto -387.8 531.2 lineto -383 527.2 lineto -383 523.2 lineto -378.2 524 lineto -372.6 524.8 lineto -371.8 521.6 lineto -375 520.8 lineto -372.6 517.6 lineto -368.6 519.2 lineto -368.6 516 lineto -364.6 514.4 lineto -360.6 514.4 lineto -357.4 512 lineto -359.8 509.6 lineto -355.8 508 lineto -355.8 508.8 lineto -356.6 504 lineto -352.6 502.4 lineto -355.8 500.8 lineto -355 497.6 lineto -359 496.8 lineto -363 496 lineto -355.8 494.4 lineto -355 490.4 lineto -353.4 488 lineto -357.4 486.4 lineto -353.4 484 lineto -355.8 480.8 lineto -361.4 481.6 lineto -359 477.6 lineto -355.8 474.4 lineto -357.4 471.2 lineto -353.4 469.6 lineto -351.8 469.6 lineto -348.6 467.2 lineto -350.2 462.4 lineto -353.4 464.8 lineto -355.8 466.4 lineto -356.6 461.6 lineto -354.2 458.4 lineto -350.2 459.2 lineto -351 454.4 lineto -355 448.8 lineto -359 447.2 lineto -361.4 442.4 lineto -368.6 442.4 lineto -374.2 444.8 lineto -378.2 448.8 lineto -383.8 452.8 lineto -388.6 452.8 lineto -390.2 456 lineto -393.4 458.4 lineto -393.4 463.2 lineto -395.8 468 lineto -397.4 464 lineto -397.4 457.6 lineto -399.8 453.6 lineto -403 452 lineto -403.8 459.2 lineto -405.4 464.8 lineto -408.6 472 lineto -412.6 478.4 lineto -411.8 485.6 lineto -411 490.4 lineto -415 492 lineto -414.2 496.8 lineto -410.2 500 lineto -412.6 510.4 lineto -412.6 518.4 lineto -411.8 528 lineto -411.8 527.2 lineto -414.2 532 lineto -415.8 535.2 lineto -404.6 535.2 lineto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -472.6 535.2 moveto -465.4 528 lineto -461.4 524.8 lineto -457.4 520 lineto -458.2 520 lineto -453.4 512.8 lineto -449.4 505.6 lineto -447.8 496 lineto -449.4 486.4 lineto -451.8 480 lineto -456.6 472.8 lineto -460.6 464.8 lineto -459 458.4 lineto -458.2 453.6 lineto -454.2 448.8 lineto -451.8 450.4 lineto -447 447.2 lineto -442.2 445.6 lineto -445.4 440.8 lineto -445.4 435.2 lineto -443.8 431.2 lineto -444.6 424 lineto -441.4 418.4 lineto -439 409.6 lineto -437.4 404 lineto -431 402.4 lineto -426.2 404 lineto -422.2 400.8 lineto -422.2 396 lineto -419 392.8 lineto -413.4 393.6 lineto -408.6 392 lineto -409.4 396 lineto -408.6 400 lineto -409.4 405.6 lineto -406.2 410.4 lineto -409.4 413.6 lineto -406.2 418.4 lineto -405.4 424 lineto -402.2 428.8 lineto -401.4 436 lineto -402.2 440.8 lineto -399 444 lineto -399 449.6 lineto -399 454.4 lineto -399.8 453.6 lineto -403 452 lineto -403.8 459.2 lineto -405.4 464.8 lineto -408.6 472 lineto -412.6 478.4 lineto -411.8 485.6 lineto -411 490.4 lineto -415 492 lineto -414.2 496.8 lineto -410.2 500 lineto -412.6 510.4 lineto -412.6 518.4 lineto -411.8 528 lineto -411.8 527.2 lineto -414.2 532 lineto -415.8 535.2 lineto -472.6 535.2 lineto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -499.8 535.2 moveto -555 535.2 lineto -562.2 532.8 lineto -565.4 528 lineto -563 520.8 lineto -559 512.8 lineto -558.2 507.2 lineto -554.2 503.2 lineto -547 488 lineto -543 482.4 lineto -539.8 484.8 lineto -535.8 482.4 lineto -530.2 481.6 lineto -528.6 478.4 lineto -523.8 476 lineto -518.2 473.6 lineto -512.6 471.2 lineto -507 467.2 lineto -506.2 472 lineto -503.8 476.8 lineto -500.6 480 lineto -494.2 478.4 lineto -491.8 484.8 lineto -491 492 lineto -493.4 497.6 lineto -490.2 504.8 lineto -490.2 511.2 lineto -489.4 516.8 lineto -491 520.8 lineto -490.2 526.4 lineto -495 525.6 lineto -499.8 535.2 lineto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -447 421.6 moveto -446.2 414.4 lineto -443 407.2 lineto -443 415.2 lineto -447 421.6 lineto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -460.6 433.6 moveto -457.4 429.6 lineto -455.8 422.4 lineto -455.8 417.6 lineto -459 418.4 lineto -460.6 424.8 lineto -462.2 429.6 lineto -460.6 433.6 lineto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -501.4 446.4 moveto -503 439.2 lineto -506.2 442.4 lineto -511 446.4 lineto -506.2 448 lineto -501.4 446.4 lineto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -503.8 455.2 moveto -502.2 452.8 lineto -507 450.4 lineto -507.8 453.6 lineto -503.8 455.2 lineto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -391.8 434.4 moveto -391 429.6 lineto -391 424 lineto -384.6 425.6 lineto -379.8 424.8 lineto -374.2 424 lineto -371 420.8 lineto -370.2 424 lineto -374.2 427.2 lineto -380.6 427.2 lineto -384.6 430.4 lineto -391.8 434.4 lineto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -368.6 388.8 moveto -369.4 395.2 lineto -369.4 400.8 lineto -365.4 403.2 lineto -367 411.2 lineto -368.6 417.6 lineto -372.6 416.8 lineto -376.6 419.2 lineto -379 416 lineto -378.2 421.6 lineto -381.4 423.2 lineto -386.2 423.2 lineto -387 420 lineto -383.8 417.6 lineto -388.6 415.2 lineto -391.8 412.8 lineto -390.2 408.8 lineto -387.8 411.2 lineto -384.6 406.4 lineto -382.2 403.2 lineto -380.6 399.2 lineto -378.2 395.2 lineto -376.6 392 lineto -379.8 389.6 lineto -376.6 388 lineto -368.6 388.8 lineto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -381.4 397.6 moveto -385.4 398.4 lineto -388.6 396.8 lineto -389.4 393.6 lineto -386.2 390.4 lineto -383 394.4 lineto -381.4 397.6 lineto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -vmrs -0 sf -newpath -394.2 405.6 moveto -395 401.6 lineto -391.8 400 lineto -393.4 397.6 lineto -393.4 392.8 lineto -397.4 392.8 lineto -396.6 388.8 lineto -400.6 388.8 lineto -400.6 389.6 lineto -400.6 392.8 lineto -404.6 394.4 lineto -402.2 397.6 lineto -405.4 400 lineto -405.4 406.4 lineto -400.6 405.6 lineto -400.6 401.6 lineto -397.4 401.6 lineto -394.2 405.6 lineto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -331 328 moveto -330.2 332 lineto -330.2 335.2 lineto -327 336.8 lineto -327 339.2 lineto -323.8 339.2 lineto -320.6 340 lineto -317.4 337.6 lineto -314.2 337.6 lineto -305.4 340 lineto -312.6 342.4 lineto -315.8 341.6 lineto -318.2 344 lineto -315.8 347.2 lineto -319 347.2 lineto -319 350.4 lineto -323 355.2 lineto -326.2 360 lineto -327.8 364 lineto -331 362.4 lineto -331 358.4 lineto -328.6 355.2 lineto -327 350.4 lineto -334.2 355.2 lineto -335 359.2 lineto -335 362.4 lineto -334.2 366.4 lineto -337.4 368 lineto -341.4 369.6 lineto -343.8 368 lineto -346.2 369.6 lineto -350.2 370.4 lineto -350.2 369.6 lineto -351 364.8 lineto -350.2 359.2 lineto -346.2 354.4 lineto -348.6 350.4 lineto -345.4 346.4 lineto -340.6 344 lineto -336.6 342.4 lineto -336.6 337.6 lineto -335 332.8 lineto -334.2 325.6 lineto -331 328 lineto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -334.2 325.6 moveto -331 328 lineto -330.2 332 lineto -330.2 335.2 lineto -327 336.8 lineto -327 339.2 lineto -323.8 339.2 lineto -320.6 340 lineto -317.4 337.6 lineto -314.2 337.6 lineto -305.4 340 lineto -301.4 340 lineto -302.2 334.4 lineto -306.2 331.2 lineto -307.8 327.2 lineto -312.6 322.4 lineto -314.2 319.2 lineto -315.8 316 lineto -319.8 319.2 lineto -320.6 313.6 lineto -323 310.4 lineto -327 306.4 lineto -330.2 308.8 lineto -330.2 304.8 lineto -334.2 306.4 lineto -334.2 305.6 lineto -336.6 310.4 lineto -334.2 314.4 lineto -331.8 317.6 lineto -333.4 320 lineto -334.2 325.6 lineto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -393.4 313.6 moveto -389.4 316 lineto -384.6 317.6 lineto -383.8 318.4 lineto -384.6 312.8 lineto -380.6 316 lineto -375.8 319.2 lineto -374.2 324.8 lineto -376.6 328 lineto -375 332 lineto -380.6 333.6 lineto -380.6 333.6 lineto -382.2 339.2 lineto -385.4 341.6 lineto -385.4 346.4 lineto -385.4 352.8 lineto -390.2 354.4 lineto -393.4 355.2 lineto -390.2 359.2 lineto -385.4 362.4 lineto -387.8 367.2 lineto -387.8 372.8 lineto -387 373.6 lineto -391 371.2 lineto -393.4 374.4 lineto -398.2 374.4 lineto -401.4 377.6 lineto -404.6 380 lineto -404.6 377.6 lineto -407.8 376.8 lineto -411 377.6 lineto -411 382.4 lineto -414.2 380.8 lineto -415 377.6 lineto -410.2 375.2 lineto -413.4 372.8 lineto -416.6 369.6 lineto -420.6 366.4 lineto -421.4 362.4 lineto -419.8 356.8 lineto -419 356.8 lineto -417.4 353.6 lineto -418.2 349.6 lineto -421.4 347.2 lineto -421.4 342.4 lineto -421.4 335.2 lineto -423 330.4 lineto -423.8 324.8 lineto -422.2 320.8 lineto -418.2 323.2 lineto -414.2 320 lineto -410.2 316 lineto -406.2 316 lineto -403 313.6 lineto -396.6 312.8 lineto -393.4 313.6 lineto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -426.2 319.2 moveto -430.2 316.8 lineto -435 312.8 lineto -436.6 308 lineto -441.4 306.4 lineto -441.4 310.4 lineto -446.2 309.6 lineto -450.2 305.6 lineto -457.4 302.4 lineto -463 298.4 lineto -469.4 299.2 lineto -473.4 295.2 lineto -477.4 298.4 lineto -483 298.4 lineto -487 300 lineto -493.4 299.2 lineto -498.2 296.8 lineto -501.4 300 lineto -505.4 297.6 lineto -510.2 297.6 lineto -513.4 294.4 lineto -517.4 292.8 lineto -518.2 299.2 lineto -519.8 304.8 lineto -525.4 311.2 lineto -531.8 316 lineto -531.8 322.4 lineto -529.4 325.6 lineto -528.6 329.6 lineto -526.2 333.6 lineto -526.2 340.8 lineto -524.6 345.6 lineto -528.6 354.4 lineto -527 362.4 lineto -523.8 370.4 lineto -519.8 377.6 lineto -515.8 381.6 lineto -511 379.2 lineto -504.6 379.2 lineto -499 380 lineto -491 379.2 lineto -480.6 378.4 lineto -475 378.4 lineto -471 376 lineto -467.8 376 lineto -471.8 380.8 lineto -465.4 376.8 lineto -460.6 379.2 lineto -458.2 380.8 lineto -459.8 384 lineto -448.6 382.4 lineto -442.2 380.8 lineto -435.8 375.2 lineto -431 372.8 lineto -426.2 372.8 lineto -423 367.2 lineto -423.8 362.4 lineto -421.4 363.2 lineto -421.4 362.4 lineto -419.8 356.8 lineto -419 356.8 lineto -417.4 353.6 lineto -418.2 349.6 lineto -421.4 347.2 lineto -421.4 342.4 lineto -421.4 335.2 lineto -423 330.4 lineto -423.8 324.8 lineto -422.2 320.8 lineto -426.2 319.2 lineto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -422.2 320.8 moveto -418.2 323.2 lineto -414.2 320 lineto -410.2 316 lineto -406.2 316 lineto -403 313.6 lineto -396.6 312.8 lineto -393.4 313.6 lineto -394.2 308 lineto -398.2 304.8 lineto -399.8 299.2 lineto -403.8 293.6 lineto -410.2 287.2 lineto -408.6 282.4 lineto -413.4 281.6 lineto -416.6 285.6 lineto -419.8 289.6 lineto -426.2 285.6 lineto -431.8 284 lineto -435.8 281.6 lineto -439 279.5 lineto -440.6 273.6 lineto -448.6 268.8 lineto -455 266.4 lineto -459.8 268.8 lineto -463 272.8 lineto -471.8 276 lineto -478.2 280 lineto -486.2 281.6 lineto -494.2 283.2 lineto -504.6 284 lineto -508.6 281.6 lineto -512.6 282.4 lineto -515 288 lineto -516.6 292.8 lineto -517.4 292.8 lineto -513.4 294.4 lineto -510.2 297.6 lineto -505.4 297.6 lineto -501.4 300 lineto -498.2 296.8 lineto -493.4 299.2 lineto -487 300 lineto -483 298.4 lineto -477.4 298.4 lineto -473.4 295.2 lineto -469.4 299.2 lineto -463 298.4 lineto -457.4 302.4 lineto -450.2 305.6 lineto -446.2 309.6 lineto -441.4 310.4 lineto -441.4 306.4 lineto -436.6 308 lineto -435 312.8 lineto -430.2 316.8 lineto -426.2 319.2 lineto -422.2 320.8 lineto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -440.6 273.6 moveto -448.6 268.8 lineto -455 266.4 lineto -459.8 268.8 lineto -463 272.8 lineto -471.8 276 lineto -478.2 280 lineto -486.2 281.6 lineto -494.2 283.2 lineto -504.6 284 lineto -508.6 281.6 lineto -512.6 282.4 lineto -512.6 283.2 lineto -512.6 278.4 lineto -519 276 lineto -513.4 270.4 lineto -507.8 264 lineto -505.4 256.8 lineto -499 250.4 lineto -496.6 244.8 lineto -492.6 240.8 lineto -485.4 239.2 lineto -478.2 240 lineto -471 239.2 lineto -463 238.4 lineto -457.4 235.2 lineto -454.2 232.8 lineto -447.8 234.4 lineto -440.6 236.8 lineto -435 243.2 lineto -433.4 248 lineto -430.2 252 lineto -434.2 258.4 lineto -436.6 261.6 lineto -435.8 265.6 lineto -440 267 lineto -440.6 273.6 lineto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -526.4 275.6 moveto -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -492.6 240.8 moveto -485.4 239.2 lineto -478.2 240 lineto -471 239.2 lineto -463 238.4 lineto -457.4 235.2 lineto -454.2 232.8 lineto -447.8 234.4 lineto -440.6 236.8 lineto -435 243.2 lineto -433.4 248 lineto -430.2 252 lineto -428 250 lineto -421.6 250 lineto -417.6 247.6 lineto -412.8 246 lineto -405.6 247.6 lineto -403.2 246 lineto -405.6 243.6 lineto -403.2 239.6 lineto -404.8 237.2 lineto -405.6 232.4 lineto -401.6 229.2 lineto -403.2 224.4 lineto -405.6 219.6 lineto -408 223.6 lineto -408.8 227.6 lineto -412.8 227.6 lineto -416 222.8 lineto -418.4 215.6 lineto -423.2 213.2 lineto -424.8 209.2 lineto -420 209.2 lineto -425.6 203.6 lineto -431.2 198 lineto -436 198 lineto -443.2 194 lineto -447.2 188.4 lineto -444 188.4 lineto -447.2 186.8 lineto -452.8 185.2 lineto -460.8 180.4 lineto -465.6 175.6 lineto -468.8 171.6 lineto -471.2 174.8 lineto -468.8 178.8 lineto -474.4 181.2 lineto -481.6 181.2 lineto -484.8 178 lineto -490.4 181.2 lineto -496 180.4 lineto -499.2 174.8 lineto -497.6 168.4 lineto -500.8 163.6 lineto -500.8 158.8 lineto -504 154 lineto -511.2 157.2 lineto -516 158.8 lineto -519.2 162.8 lineto -525.6 158 lineto -528 161.2 lineto -530.4 169.2 lineto -528 173.2 lineto -524 177.2 lineto -520.8 181.2 lineto -521.6 187.6 lineto -520.8 191.6 lineto -527.2 195.6 lineto -524 198 lineto -521.6 202 lineto -520 207.6 lineto -524 210.8 lineto -524 210 lineto -520 214 lineto -523.2 216.4 lineto -518.4 219.6 lineto -515.2 217.2 lineto -507.2 219.6 lineto -509.6 222.8 lineto -505.6 226.8 lineto -501.6 229.2 lineto -499.2 237.2 lineto -492.6 240.8 lineto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -430.2 252 moveto -428 250 lineto -421.6 250 lineto -417.6 247.6 lineto -412.8 246 lineto -405.6 247.6 lineto -396.8 249.2 lineto -392 254 lineto -388 257.2 lineto -382.4 256.4 lineto -379.2 253.2 lineto -376 254 lineto -372 257.2 lineto -367.2 257.2 lineto -362.4 261.2 lineto -363.2 266 lineto -365.6 270 lineto -366.2 269.6 lineto -371 266.4 lineto -371 266.4 lineto -376.6 269.6 lineto -379.8 268 lineto -385.4 267.2 lineto -389.4 269.6 lineto -394.2 269.6 lineto -394.2 269.6 lineto -395.8 269.6 lineto -399 265.6 lineto -402.2 263.2 lineto -402.2 269.6 lineto -399 272.8 lineto -402.2 276 lineto -405.4 280.8 lineto -408.6 282.4 lineto -413.4 281.6 lineto -416.6 285.6 lineto -419.8 289.6 lineto -426.2 285.6 lineto -431.8 284 lineto -435.8 281.6 lineto -439.5 279.5 lineto -440.6 273.6 lineto -440 267.5 lineto -435.8 265.6 lineto -436.6 261.6 lineto -434.2 258.4 lineto -430.2 252 lineto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -372.8 254.8 moveto -372 257.2 lineto -367.2 257.2 lineto -362.4 261.2 lineto -363.2 266 lineto -365.6 270 lineto -362.2 269.6 lineto -355.8 271.2 lineto -352.6 274.4 lineto -350.2 270.4 lineto -344.6 272 lineto -342.2 270.4 lineto -342.4 271.6 lineto -338.4 270.8 lineto -334.4 267.6 lineto -330.4 265.2 lineto -326.4 260.4 lineto -324 252.4 lineto -328 255.6 lineto -332 256.4 lineto -333.6 254 lineto -333.6 251.6 lineto -334.4 247.6 lineto -339.2 246.8 lineto -343.2 246 lineto -347.2 249.2 lineto -348.8 253.2 lineto -351.2 253.2 lineto -352 248.4 lineto -354.4 242.8 lineto -356.8 246 lineto -359.2 247.6 lineto -359.2 251.6 lineto -362.4 249.2 lineto -365.6 249.2 lineto -368 245.2 lineto -369.6 248.4 lineto -368 253.2 lineto -373.6 251.6 lineto -372.8 254.8 lineto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -334.4 247.6 moveto -339.2 246.8 lineto -343.2 246 lineto -347.2 249.2 lineto -348.8 253.2 lineto -351.2 253.2 lineto -352 248.4 lineto -354.4 242.8 lineto -356.8 246 lineto -359.2 247.6 lineto -359.2 251.6 lineto -362.4 249.2 lineto -365.6 249.2 lineto -368 245.2 lineto -369.6 248.4 lineto -368 253.2 lineto -373.6 251.6 lineto -373.6 253.2 lineto -376 254 lineto -379.2 253.2 lineto -382.4 256.4 lineto -388 257.2 lineto -392 254 lineto -396.8 249.2 lineto -405.6 247.6 lineto -403.2 246 lineto -405.6 243.6 lineto -403.2 239.6 lineto -404.8 237.2 lineto -405.6 232.4 lineto -405.6 232.4 lineto -400.8 233.2 lineto -397.6 230.8 lineto -391.2 230 lineto -389.6 226 lineto -392.8 222.8 lineto -391.2 218.8 lineto -391.2 213.2 lineto -394.4 206.8 lineto -400 202.8 lineto -404.8 198 lineto -407.2 189.2 lineto -408.8 182 lineto -413.6 176.4 lineto -420 171.6 lineto -427.2 170 lineto -433.6 169.2 lineto -431.2 165.2 lineto -435.2 162.8 lineto -440.8 158.8 lineto -448 154 lineto -455.2 149.2 lineto -459.2 145.2 lineto -461.6 139.6 lineto -460.8 134 lineto -456.8 137.2 lineto -453.6 141.2 lineto -448.8 144.4 lineto -444.8 146 lineto -440.8 142 lineto -439.2 137.2 lineto -437.6 133.2 lineto -441.6 131.6 lineto -444.8 128.4 lineto -444.8 122 lineto -440.8 119.6 lineto -437.6 116.4 lineto -436.8 112.4 lineto -432.8 107.6 lineto -429.6 104.4 lineto -426.4 102.8 lineto -426.4 107.6 lineto -428 111.6 lineto -428.8 115.6 lineto -432 119.6 lineto -431.2 127.6 lineto -428 134 lineto -423.2 138.8 lineto -416 141.2 lineto -416 146.8 lineto -409.6 149.2 lineto -408 153.2 lineto -404.8 154.8 lineto -402.4 158.8 lineto -396.8 160.4 lineto -392 162 lineto -391.2 166.8 lineto -386.4 168.4 lineto -382.4 174.8 lineto -376.8 178.8 lineto -374.4 183.6 lineto -370.4 187.6 lineto -366.4 192.4 lineto -365.6 202 lineto -360.8 210 lineto -356.8 213.2 lineto -351.2 216.4 lineto -345.6 217.2 lineto -341.6 213.2 lineto -337.6 210 lineto -333.6 208.4 lineto -333.6 213.2 lineto -330.4 215.6 lineto -328 218 lineto -328.8 223.6 lineto -328 229.2 lineto -325.6 233.2 lineto -330.4 235.6 lineto -334.4 237.2 lineto -332 244.4 lineto -334.4 247.6 lineto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -301.4 340 moveto -302.2 334.4 lineto -306.2 331.2 lineto -307.8 327.2 lineto -312.6 322.4 lineto -314.2 319.2 lineto -315.8 316 lineto -319.8 319.2 lineto -320.6 313.6 lineto -323 310.4 lineto -327 306.4 lineto -330.2 308.8 lineto -330.2 304.8 lineto -334.2 306.4 lineto -337.4 300.8 lineto -341.4 296.8 lineto -346.2 296 lineto -350.2 292.8 lineto -346.2 288.8 lineto -342.2 283.2 lineto -341.4 275.2 lineto -342.2 270.4 lineto -342.4 271.6 lineto -338.4 270.8 lineto -334.4 267.6 lineto -330.4 265.2 lineto -326.4 260.4 lineto -324 252.4 lineto -328 255.6 lineto -332 256.4 lineto -333.6 254 lineto -333.6 251.6 lineto -334.4 247.6 lineto -332 244.4 lineto -334.4 237.2 lineto -330.4 235.6 lineto -325.6 233.2 lineto -328 229.2 lineto -328.8 223.6 lineto -328 218 lineto -330.4 215.6 lineto -333.6 213.2 lineto -333.6 208.4 lineto -333.6 208.4 lineto -328 207.6 lineto -323.2 203.6 lineto -317.6 202.8 lineto -312 204.4 lineto -308.8 206 lineto -308 209.2 lineto -303.2 210 lineto -298.4 209.2 lineto -293.6 213.2 lineto -288 211.6 lineto -280.8 208.4 lineto -279.2 202 lineto -278.4 196.4 lineto -272.8 196.4 lineto -266.4 198 lineto -260.8 200 lineto -258.4 203.6 lineto -254.4 207.6 lineto -250.4 210 lineto -250.4 210 lineto -242.4 210.8 lineto -240 214 lineto -235.2 215.6 lineto -232 219.6 lineto -228 222 lineto -225.6 227.6 lineto -231.2 233.2 lineto -236 241.2 lineto -237.6 245.2 lineto -240 249.2 lineto -240.8 254 lineto -241.6 259.6 lineto -245.6 253.2 lineto -245.6 258.8 lineto -243.2 262 lineto -244 265.2 lineto -245.6 270.8 lineto -240 275.6 lineto -238.4 282.8 lineto -237.6 288.4 lineto -236 293.2 lineto -235.2 298 lineto -231.2 298 lineto -227.2 303.6 lineto -220.8 306.8 lineto -216.8 310.8 lineto -218.4 313.2 lineto -221.6 312.4 lineto -220 316.4 lineto -216 318.8 lineto -221.6 319.6 lineto -226.4 318.8 lineto -232 319.6 lineto -236 317.2 lineto -238.4 313.2 lineto -243.2 313.2 lineto -247.2 311.6 lineto -252.8 310 lineto -252 316.4 lineto -251.2 322.8 lineto -252 328.4 lineto -255.2 326.8 lineto -258.4 324.4 lineto -259.2 320.4 lineto -264.8 318 lineto -270.4 315.6 lineto -276.8 315.6 lineto -273.6 319.6 lineto -277.6 322 lineto -283.2 322.8 lineto -286.4 325.2 lineto -291.2 327.6 lineto -290.4 332.4 lineto -292.8 337.2 lineto -296.8 339.6 lineto -301.4 340 lineto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -528 161.2 moveto -529.6 169.2 lineto -530.4 169.2 lineto -530.4 169.2 lineto -528 173.2 lineto -524 177.2 lineto -520.8 181.2 lineto -521.6 187.6 lineto -520.8 191.6 lineto -527.2 195.6 lineto -524 198 lineto -521.6 202 lineto -520 207.6 lineto -524 210 lineto -525.6 206.8 lineto -530.4 206.8 lineto -534.4 205.2 lineto -538.4 203.6 lineto -543.2 205.2 lineto -547.2 202.8 lineto -555.2 204.4 lineto -560.8 209.2 lineto -567.2 213.2 lineto -576 214 lineto -583.2 212.4 lineto -589.6 209.2 lineto -589.6 210 lineto -589.6 206.8 lineto -585.6 206 lineto -584 200.4 lineto -583.2 194 lineto -580 190.8 lineto -583.2 189.2 lineto -588 183.6 lineto -584 182.8 lineto -578.4 183.6 lineto -574.4 182.8 lineto -569.6 179.6 lineto -566.4 176.4 lineto -566.4 172.4 lineto -560.8 170.8 lineto -557.6 168.4 lineto -551.2 169.2 lineto -546.4 170 lineto -540.8 170 lineto -538.4 167.6 lineto -528.8 165.2 lineto -528.9 169.2 lineto -528 161.2 lineto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -533.6 165.2 moveto -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -504.8 149.2 moveto -501.6 143.6 lineto -496 142.8 lineto -490.4 142 lineto -487.2 140.4 lineto -483.2 139.6 lineto -481.6 133.2 lineto -478.4 138 lineto -474.4 143.6 lineto -469.6 146 lineto -469.6 146.8 lineto -472.8 148.4 lineto -471.2 152.4 lineto -473.6 155.6 lineto -472 158.8 lineto -472.8 165.2 lineto -473.6 169.2 lineto -469.6 171.6 lineto -468.8 171.6 lineto -471.2 174.8 lineto -468.8 178.8 lineto -474.4 181.2 lineto -481.6 181.2 lineto -484.8 178 lineto -490.4 181.2 lineto -496 180.4 lineto -499.2 174.8 lineto -497.6 168.4 lineto -500.8 163.6 lineto -500.8 158.8 lineto -504 154 lineto -504.8 149.2 lineto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -65.1 502.5 moveto -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -301.4 340 moveto -302.2 334.4 lineto -306.2 331.2 lineto -307.8 327.2 lineto -312.6 322.4 lineto -314.2 319.2 lineto -315.8 316 lineto -319.8 319.2 lineto -320.6 313.6 lineto -323 310.4 lineto -327 306.4 lineto -330.2 308.8 lineto -330.2 304.8 lineto -334.2 306.4 lineto -334.2 305.6 lineto -336.6 310.4 lineto -334.2 314.4 lineto -331.8 317.6 lineto -333.4 320 lineto -334.2 325.6 lineto -331 328 lineto -330.2 332 lineto -330.2 335.2 lineto -327 336.8 lineto -327 339.2 lineto -323.8 339.2 lineto -320.6 340 lineto -317.4 337.6 lineto -314.2 337.6 lineto -305.4 340 lineto -301.4 340 lineto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -390.4 375.6 moveto -392 379.6 lineto -388 378.8 lineto -384.8 380.4 lineto -384 378 lineto -380 382.8 lineto -382.4 386.8 lineto -380.8 390.8 lineto -379.8 389.6 lineto -376.6 388 lineto -368.6 388.8 lineto -370.4 384.4 lineto -369.6 381.2 lineto -371.2 376.4 lineto -374.4 370 lineto -369.6 372.4 lineto -366.4 372.4 lineto -365.6 367.6 lineto -364 370.8 lineto -360.8 367.6 lineto -360.8 372.4 lineto -356 373.2 lineto -352 374 lineto -349.6 370 lineto -350.2 370.4 lineto -350.2 369.6 lineto -351 364.8 lineto -350.2 359.2 lineto -346.2 354.4 lineto -348.6 350.4 lineto -345.4 346.4 lineto -340.6 344 lineto -336.6 342.4 lineto -336.6 337.6 lineto -335 332.8 lineto -334.2 325.6 lineto -333.4 320 lineto -331.8 317.6 lineto -334.2 314.4 lineto -336.6 310.4 lineto -334.2 305.6 lineto -334.2 306.4 lineto -337.4 300.8 lineto -341.4 296.8 lineto -346.2 296 lineto -350.2 292.8 lineto -346.2 288.8 lineto -342.2 283.2 lineto -341.4 275.2 lineto -342.2 270.4 lineto -350.2 270.4 lineto -352.6 274.4 lineto -355.8 271.2 lineto -362.2 269.6 lineto -365.6 270 lineto -366.2 269.6 lineto -371 266.4 lineto -371 266.4 lineto -376.6 269.6 lineto -379.8 268 lineto -385.4 267.2 lineto -389.4 269.6 lineto -394.2 269.6 lineto -394.2 269.6 lineto -395.8 269.6 lineto -399 265.6 lineto -402.2 263.2 lineto -402.2 269.6 lineto -399 272.8 lineto -402.2 276 lineto -405.4 280.8 lineto -408.6 282.4 lineto -410.2 287.2 lineto -403.8 293.6 lineto -399.8 299.2 lineto -398.2 304.8 lineto -394.2 308 lineto -393.4 313.6 lineto -389.4 316 lineto -384.6 317.6 lineto -383.8 318.4 lineto -384.6 312.8 lineto -380.6 316 lineto -375.8 319.2 lineto -374.2 324.8 lineto -376.6 328 lineto -375 332 lineto -380.6 333.6 lineto -380.6 333.6 lineto -382.2 339.2 lineto -385.4 341.6 lineto -385.4 346.4 lineto -385.4 352.8 lineto -390.2 354.4 lineto -393.4 355.2 lineto -390.2 359.2 lineto -385.4 362.4 lineto -387.8 367.2 lineto -387.8 372.8 lineto -390.4 375.6 lineto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -518.4 444.4 moveto -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -vmrs -0 sf -newpath -589.6 209.2 moveto -589.6 210 lineto -589.6 206.8 lineto -585.6 206 lineto -584 200.4 lineto -583.2 194 lineto -580 190.8 lineto -583.2 189.2 lineto -588 183.6 lineto -584 182.8 lineto -578.4 183.6 lineto -574.4 182.8 lineto -569.6 179.6 lineto -566.4 176.4 lineto -566.4 172.4 lineto -560.8 170.8 lineto -557.6 168.4 lineto -551.2 169.2 lineto -546.4 170 lineto -540.8 170 lineto -538.4 167.6 lineto -528.8 165.2 lineto -529.2 165.6 lineto -529.6 169.2 lineto -530.4 169.2 lineto -530.4 169.2 lineto -528 173.2 lineto -524 177.2 lineto -520.8 181.2 lineto -521.6 187.6 lineto -520.8 191.6 lineto -527.2 195.6 lineto -524 198 lineto -521.6 202 lineto -520 207.6 lineto -524 210 lineto -525.6 206.8 lineto -530.4 206.8 lineto -534.4 205.2 lineto -538.4 203.6 lineto -543.2 205.2 lineto -547.2 202.8 lineto -555.2 204.4 lineto -560.8 209.2 lineto -567.2 213.2 lineto -576 214 lineto -583.2 212.4 lineto -589.6 209.2 lineto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -519 276 moveto -513.4 270.4 lineto -507.8 264 lineto -505.4 256.8 lineto -499 250.4 lineto -496.6 244.8 lineto -492.6 240.8 lineto -499.2 237.2 lineto -501.6 229.2 lineto -505.6 226.8 lineto -509.6 222.8 lineto -507.2 219.6 lineto -515.2 217.2 lineto -518.4 219.6 lineto -523.2 216.4 lineto -520 214 lineto -524 210 lineto -524 210.8 lineto -525.6 206.8 lineto -530.4 206.8 lineto -534.4 205.2 lineto -538.4 203.6 lineto -543.2 205.2 lineto -547.2 202.8 lineto -555.2 204.4 lineto -560.8 209.2 lineto -567.2 213.2 lineto -576 214 lineto -583.2 212.4 lineto -589.6 209.2 lineto -588.8 216.4 lineto -590.4 220.4 lineto -592 225.2 lineto -592 229.2 lineto -592.8 233.2 lineto -595.2 226.8 lineto -599.2 230 lineto -599.2 234.8 lineto -600 239.6 lineto -596 240.4 lineto -592.8 238.8 lineto -587.2 238 lineto -581.6 241.2 lineto -582.4 246.8 lineto -582.4 254 lineto -582.4 262 lineto -578.4 268.4 lineto -573.6 271.6 lineto -569.6 274.8 lineto -568.8 280.4 lineto -564.8 284.4 lineto -561.6 282.8 lineto -556.8 281.2 lineto -550.4 278 lineto -545.6 276.4 lineto -540 275.6 lineto -533.6 276.4 lineto -530.4 274.8 lineto -527.2 274.8 lineto -519 276 lineto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -589.6 209.2 moveto -589.6 210 lineto -589.6 206.8 lineto -585.6 206 lineto -584 200.4 lineto -583.2 194 lineto -580 190.8 lineto -583.2 189.2 lineto -588 183.6 lineto -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -539.2 154.8 moveto -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -569.6 179.6 moveto -566.4 176.4 lineto -566.4 172.4 lineto -560.8 170.8 lineto -557.6 168.4 lineto -551.2 169.2 lineto -546.4 170 lineto -540.8 170 lineto -538.4 167.6 lineto -528.8 165.2 lineto -528 161.2 lineto -525.6 158 lineto -519.2 162.8 lineto -516 158.8 lineto -511.2 157.2 lineto -504 154 lineto -504.8 149.2 lineto -501.6 143.6 lineto -496 142.8 lineto -490.4 142 lineto -487.2 140.4 lineto -483.2 139.6 lineto -481.6 133.2 lineto -481.6 133.2 lineto -485.6 130 lineto -489.6 130 lineto -495.2 130 lineto -500 127.6 lineto -504 125.2 lineto -504 122 lineto -507.2 119.6 lineto -510.4 116.4 lineto -516 115.6 lineto -522.4 117.2 lineto -527.2 116.4 lineto -532 114.8 lineto -533.6 111.6 lineto -537.6 110.8 lineto -540.8 111.6 lineto -544.8 106.8 lineto -547.2 104.4 lineto -548.8 110 lineto -545.6 114.8 lineto -541.6 118 lineto -537.6 120.4 lineto -532.8 122.8 lineto -528.8 123.6 lineto -532 126.8 lineto -530.4 130 lineto -529.6 132.4 lineto -532.8 133.2 lineto -535.2 129.2 lineto -537.6 128.4 lineto -536.8 133.2 lineto -532 136.4 lineto -528 139.6 lineto -525.6 146 lineto -526.4 150.8 lineto -529.6 153.2 lineto -529.6 149.2 lineto -532.8 147.6 lineto -536 143.6 lineto -539.2 140.4 lineto -540.8 142 lineto -536.8 146 lineto -539.2 146 lineto -543.2 141.2 lineto -545.6 142.8 lineto -543.2 146 lineto -540 149.2 lineto -540 150 lineto -543.2 148.4 lineto -548 144.4 lineto -550.4 145.2 lineto -548.8 148.4 lineto -544.8 151.6 lineto -544 152.4 lineto -539.2 154 lineto -544.8 154.8 lineto -546.4 158 lineto -552 158 lineto -556 161.2 lineto -558.4 158.8 lineto -564 158.8 lineto -568 156.4 lineto -571.2 161.2 lineto -572 166.8 lineto -573.6 170.8 lineto -571.2 174.8 lineto -569.6 179.6 lineto -569.6 179.6 lineto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -504.8 110.8 moveto -501.6 114 lineto -501.6 116.4 lineto -497.6 116.4 lineto -497.6 113.2 lineto -492.8 113.2 lineto -494.4 110 lineto -500 110.8 lineto -504.8 110.8 lineto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -519.2 114 moveto -516.8 111.6 lineto -512.8 111.6 lineto -511.2 107.6 lineto -517.6 101.2 lineto -517.6 95.6 lineto -518.4 91.6 lineto -522.4 87.6 lineto -524 93.2 lineto -526.4 91.6 lineto -527.2 87.6 lineto -529.6 83.6 lineto -531.2 87.6 lineto -532 90.8 lineto -534.4 86.8 lineto -540 84.4 lineto -537.6 88.4 lineto -536 93.2 lineto -532 99.6 lineto -530.4 103.6 lineto -534.4 102.8 lineto -537.6 98.8 lineto -541.6 101.2 lineto -538.4 104.4 lineto -537.6 104.4 lineto -534.4 108.4 lineto -529.6 110 lineto -519.2 114 lineto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -548 74 moveto -551.2 70 lineto -552 71.6 lineto -555.2 71.6 lineto -558.4 70 lineto -563.2 71.6 lineto -568.8 70 lineto -576 71.6 lineto -575.2 69.2 lineto -579.2 68.4 lineto -584.8 71.6 lineto -584.8 66.8 lineto -579.2 66 lineto -573.6 66 lineto -570.4 65.2 lineto -568 63.6 lineto -564 62 lineto -561.6 66.8 lineto -555.2 67.6 lineto -554.4 69.2 lineto -548 66.8 lineto -548 74 lineto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -456.8 83.6 moveto -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -569.6 179.6 moveto -566.4 176.4 lineto -566.4 172.4 lineto -560.8 170.8 lineto -557.6 168.4 lineto -551.2 169.2 lineto -546.4 170 lineto -540.8 170 lineto -538.4 167.6 lineto -528.8 165.2 lineto -529.2 165.6 lineto -529.6 169.2 lineto -530.4 169.2 lineto -530.4 169.2 lineto -528 173.2 lineto -524 177.2 lineto -520.8 181.2 lineto -521.6 187.6 lineto -520.8 191.6 lineto -527.2 195.6 lineto -524 198 lineto -521.6 202 lineto -520 207.6 lineto -524 210 lineto -525.6 206.8 lineto -530.4 206.8 lineto -534.4 205.2 lineto -538.4 203.6 lineto -543.2 205.2 lineto -547.2 202.8 lineto -555.2 204.4 lineto -560.8 209.2 lineto -567.2 213.2 lineto -576 214 lineto -583.2 212.4 lineto -589.6 209.2 lineto -589.6 210 lineto -589.6 206.8 lineto -585.6 206 lineto -584 200.4 lineto -583.2 194 lineto -580 190.8 lineto -583.2 189.2 lineto -588 183.6 lineto -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -576 158 moveto -571.2 150.8 lineto -570.4 147.6 lineto -577.6 154.8 lineto -581.6 158 lineto -586.4 163.6 lineto -592.8 168.4 lineto -599.2 167.6 lineto -602.4 168.4 lineto -603.2 172.4 lineto -595.2 174.8 lineto -589.6 178.8 lineto -588 184.4 lineto -588 183.6 lineto -584 182.8 lineto -578.4 183.6 lineto -574.4 182.8 lineto -569.6 179.6 lineto -571.2 174.8 lineto -573.6 170.8 lineto -572 166.8 lineto -571.2 161.2 lineto -568 156.4 lineto -576 158 lineto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -424 110 moveto -424 106.8 lineto -421.6 103.6 lineto -420 98.8 lineto -420.8 93.2 lineto -421.6 89.2 lineto -418.4 86 lineto -412.8 86.8 lineto -408.8 90 lineto -405.6 92.4 lineto -399.2 93.2 lineto -395.2 98 lineto -388.8 102 lineto -385.6 106 lineto -388.8 110.8 lineto -391.2 108.4 lineto -396 110.8 lineto -400.8 109.2 lineto -404.8 106.8 lineto -410.4 106.8 lineto -416 110 lineto -420 110 lineto -424 110 lineto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -353.6 195.6 moveto -352.8 184.4 lineto -352.8 178.8 lineto -350.4 174.8 lineto -347.2 167.6 lineto -343.2 170.8 lineto -342.4 175.6 lineto -344 179.6 lineto -341.6 184.4 lineto -343.2 188.4 lineto -347.2 190.8 lineto -353.6 195.6 lineto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -348 165.2 moveto -342.4 162.8 lineto -337.6 161.2 lineto -333.6 162.8 lineto -332.8 158.8 lineto -335.2 155.6 lineto -334.4 151.6 lineto -334.4 147.6 lineto -335.2 144.4 lineto -335.2 144.4 lineto -333.6 138.8 lineto -333.6 134 lineto -336.8 131.6 lineto -340.8 131.6 lineto -341.6 135.6 lineto -346.4 132.4 lineto -349.6 134 lineto -348.8 140.4 lineto -351.2 147.6 lineto -350.4 152.4 lineto -352.8 154.8 lineto -352.8 161.2 lineto -348 165.2 lineto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -674.4 250.8 moveto -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -661.6 253.2 moveto -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -645.6 264.4 moveto -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -600 239.6 moveto -600 244.4 lineto -598.4 247.6 lineto -602.4 246 lineto -604.8 249.2 lineto -608.8 251.6 lineto -604.8 254.8 lineto -605.6 258.8 lineto -609.6 255.6 lineto -611.2 262 lineto -616 265.2 lineto -620.8 266 lineto -622.4 272.4 lineto -624.8 267.6 lineto -627.2 264.4 lineto -623.2 262.8 lineto -624.8 261.2 lineto -628.8 258.8 lineto -633.6 260.4 lineto -638.4 261.2 lineto -641.6 262.8 lineto -640.8 262.8 lineto -644 260.4 lineto -644 257.2 lineto -640.8 254.8 lineto -640.8 255.6 lineto -635.2 248.4 lineto -639.2 248.4 lineto -639.2 248.4 lineto -640.8 244.4 lineto -644 246 lineto -647.2 242 lineto -646.4 234.8 lineto -650.4 233.2 lineto -653.6 235.6 lineto -657.6 240.4 lineto -663.2 243.6 lineto -665.6 247.6 lineto -668.8 250 lineto -668.8 250 lineto -672.8 250 lineto -676 253.2 lineto -677.6 257.2 lineto -674.4 258 lineto -672 255.6 lineto -668 256.4 lineto -668 257.2 lineto -665.6 254 lineto -660.8 253.2 lineto -656.8 255.6 lineto -656 258.8 lineto -651.2 261.2 lineto -650.4 262 lineto -647.2 264.4 lineto -652 266 lineto -656 262.8 lineto -661.6 269.2 lineto -661.6 264.4 lineto -665.6 268.4 lineto -668.8 274 lineto -678.4 278 lineto -680 282.8 lineto -679.2 284.4 lineto -684 283.6 lineto -684.8 287.6 lineto -691.2 289.2 lineto -694.4 290.8 lineto -700 294.8 lineto -700 288.4 lineto -696 284.4 lineto -696 284.4 lineto -697.6 281.2 lineto -692.8 281.2 lineto -688 279.6 lineto -691.2 277.2 lineto -696.8 274.8 lineto -698.4 270.8 lineto -694.4 270.8 lineto -695.2 266.8 lineto -691.2 270 lineto -690.4 264.4 lineto -690.4 258.8 lineto -687.2 255.6 lineto -683.2 258 lineto -683.2 255.6 lineto -681.6 250.8 lineto -685.6 253.2 lineto -688.8 250.8 lineto -693.6 249.2 lineto -700.8 248.4 lineto -709.6 245.2 lineto -716 242 lineto -721.6 238 lineto -728.8 234 lineto -733.6 234 lineto -740.8 231.6 lineto -746.4 226.8 lineto -746.4 226.8 lineto -746.4 535.6 lineto -557.7 535.7 lineto -562.2 532.8 lineto -565.4 528 lineto -563 520.8 lineto -559 512.8 lineto -558.2 507.2 lineto -554.2 503.2 lineto -547 488 lineto -545.6 485.2 lineto -553.6 490 lineto -553.6 484.4 lineto -558.4 482 lineto -562.4 483.6 lineto -568 480.4 lineto -566.4 477.2 lineto -562.4 478.8 lineto -557.6 478 lineto -556 475.6 lineto -552 476.4 lineto -552 471.6 lineto -549.6 474 lineto -549.6 473.2 lineto -549.6 466.8 lineto -543.2 466.8 lineto -535.2 466 lineto -532 467.6 lineto -527.2 464.4 lineto -521.6 464.4 lineto -517.6 460.4 lineto -513.6 456.4 lineto -516.8 451.6 lineto -514.4 449.2 lineto -518.4 447.6 lineto -517.6 443.6 lineto -523.2 446 lineto -523.2 446 lineto -524 445.2 lineto -522.4 438.8 lineto -521.6 432.4 lineto -522.4 424.4 lineto -518.4 423.6 lineto -514.4 426.8 lineto -510.4 430.8 lineto -507.2 435.6 lineto -504 431.6 lineto -499.2 430.8 lineto -499.2 426 lineto -497.6 418.8 lineto -495.2 412.4 lineto -496.8 402.8 lineto -499.2 394.8 lineto -496.8 387.6 lineto -494.4 386.8 lineto -496 396.4 lineto -493.6 390 lineto -488.8 386.8 lineto -483.2 385.2 lineto -477.6 386 lineto -473.6 384.4 lineto -475.2 378.8 lineto -475 378.4 lineto -480.6 378.4 lineto -491 379.2 lineto -499 380 lineto -504.6 379.2 lineto -511 379.2 lineto -515.8 381.6 lineto -519.8 377.6 lineto -523.8 370.4 lineto -527 362.4 lineto -528.6 354.4 lineto -524.6 345.6 lineto -526.2 340.8 lineto -526.2 333.6 lineto -528.6 329.6 lineto -529.4 325.6 lineto -531.8 322.4 lineto -531.8 316 lineto -525.4 311.2 lineto -519.8 304.8 lineto -518.2 299.2 lineto -516.6 292.8 lineto -515 288 lineto -512.6 282.4 lineto -512.6 283.2 lineto -512.6 278.4 lineto -518.4 277.2 lineto -527.2 274.8 lineto -530.4 274.8 lineto -533.6 276.4 lineto -540 275.6 lineto -545.6 276.4 lineto -550.4 278 lineto -556.8 281.2 lineto -561.6 282.8 lineto -564.8 284.4 lineto -568.8 280.4 lineto -569.6 274.8 lineto -573.6 271.6 lineto -578.4 268.4 lineto -582.4 262 lineto -582.4 254 lineto -582.4 246.8 lineto -581.6 241.2 lineto -587.2 238 lineto -592.8 238.8 lineto -596 240.4 lineto -600 239.6 lineto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -746.4 208.4 moveto -739.2 202.8 lineto -733.6 198 lineto -726.4 199.6 lineto -717.6 194.8 lineto -708.8 190.8 lineto -704.8 193.2 lineto -699.2 190.8 lineto -694.4 193.2 lineto -689.6 191.6 lineto -683.2 196.4 lineto -677.6 194 lineto -671.2 198 lineto -669.6 201.2 lineto -665.6 196.4 lineto -651.2 193.2 lineto -640.8 187.6 lineto -633.6 182 lineto -629.6 176.4 lineto -622.4 173.2 lineto -616 173.2 lineto -608.8 171.6 lineto -604.8 170 lineto -605.6 167.6 lineto -612 166.8 lineto -607.2 163.6 lineto -600 161.2 lineto -600 161.2 lineto -596.8 158 lineto -590.4 157.2 lineto -586.4 155.6 lineto -580.8 154.8 lineto -576.8 151.6 lineto -572 146 lineto -572 142.8 lineto -570.4 138 lineto -575.2 140.4 lineto -579.2 141.2 lineto -580.8 142 lineto -579.2 138 lineto -581.6 133.2 lineto -580.8 132.4 lineto -584 131.6 lineto -580.8 127.6 lineto -585.6 123.6 lineto -581.6 122 lineto -578.4 125.2 lineto -575.2 126 lineto -577.6 121.2 lineto -574.4 119.6 lineto -579.2 117.2 lineto -582.4 118.8 lineto -582.4 118 lineto -586.4 116.4 lineto -586.4 116.4 lineto -588 115.6 lineto -588 111.6 lineto -589.6 107.6 lineto -592.8 106 lineto -588.8 102.8 lineto -594.4 102.8 lineto -602.4 104.4 lineto -595.2 98 lineto -600.8 98.8 lineto -600.8 95.6 lineto -604.8 100.4 lineto -609.6 98 lineto -608.8 98 lineto -612 98.8 lineto -615.2 94 lineto -620 91.6 lineto -625.6 91.6 lineto -629.6 94.8 lineto -635.2 95.6 lineto -634.4 101.2 lineto -637.6 105.2 lineto -644.8 104.4 lineto -652.8 102 lineto -656 98.8 lineto -661.6 98.8 lineto -668 99.6 lineto -674.4 102 lineto -680 104.4 lineto -682.4 109.2 lineto -685.6 114.8 lineto -689.6 113.2 lineto -696 112.4 lineto -699.2 115.6 lineto -702.4 120.4 lineto -705.6 116.4 lineto -702.4 110.8 lineto -704.8 106.8 lineto -704 99.6 lineto -706.4 94 lineto -708 86.8 lineto -709.6 82.8 lineto -705 62 lineto -746 62 lineto -746.4 208.4 lineto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -278.4 196.4 moveto -272.8 196.4 lineto -266.4 198 lineto -261.6 199.2 lineto -258.4 203.6 lineto -254.4 207.6 lineto -250.4 210 lineto -250.4 210 lineto -242.4 210.8 lineto -240 214 lineto -235.2 215.6 lineto -232 219.6 lineto -228 222 lineto -225.6 227.6 lineto -225.6 228.4 lineto -220.8 228.4 lineto -215.2 231.6 lineto -208.8 232.4 lineto -202.4 235.6 lineto -196 237.2 lineto -188 240.4 lineto -180.8 246 lineto -174.4 246 lineto -165.6 250 lineto -161.6 255.6 lineto -155.2 254.8 lineto -155.2 254.8 lineto -155.2 251.6 lineto -148 252.4 lineto -141.6 249.2 lineto -145.6 246 lineto -142.4 242.8 lineto -142.4 242.8 lineto -146.4 242 lineto -144 238.8 lineto -146.4 237.2 lineto -143.2 234.8 lineto -141.6 231.6 lineto -148 233.2 lineto -151.2 230.8 lineto -149.6 226.8 lineto -154.4 227.6 lineto -157.6 224.4 lineto -156.8 224.4 lineto -160 222.8 lineto -163.2 224.4 lineto -167.2 221.2 lineto -166.4 221.2 lineto -167.2 218 lineto -170.4 214.8 lineto -168 212.4 lineto -162.4 210.8 lineto -156.8 210.8 lineto -158.4 206.8 lineto -157.6 201.2 lineto -156 196.4 lineto -153.6 195.6 lineto -152.8 195.6 lineto -152.8 190.8 lineto -150.4 186.8 lineto -146.4 187.6 lineto -145.6 182.8 lineto -147.2 178 lineto -144 174 lineto -141.6 170.8 lineto -142.4 166.8 lineto -139.2 161.2 lineto -136 158 lineto -134.4 151.6 lineto -140 146.8 lineto -143.2 142 lineto -143.2 137.2 lineto -142.4 133.2 lineto -146.4 128.4 lineto -149.6 124.4 lineto -154.4 126 lineto -158.4 129.2 lineto -162.4 128.4 lineto -167.2 130 lineto -173.6 128.4 lineto -180 126.8 lineto -187.2 124.4 lineto -193.6 124.4 lineto -196.8 122 lineto -201.6 128.4 lineto -208.8 130.8 lineto -215.2 130.8 lineto -219.2 137.2 lineto -224 140.4 lineto -231.2 144.4 lineto -228.8 151.6 lineto -228.8 158 lineto -236 164.4 lineto -242.4 171.6 lineto -248 174 lineto -252 178 lineto -259.2 178.8 lineto -268 181.2 lineto -275.2 184.4 lineto -278 188 lineto -278 193 lineto -278.4 196.4 lineto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -vmrs -0 sf -newpath -166.4 218 moveto -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -128.8 150.8 moveto -124 153.2 lineto -119.2 155.6 lineto -113.6 154.8 lineto -114.4 154.8 lineto -120.8 168.4 lineto -123.2 174.8 lineto -125.6 176.4 lineto -124.8 178.8 lineto -120.8 178 lineto -118.4 181.2 lineto -119.2 181.2 lineto -120 181.2 lineto -124.8 182.8 lineto -123.2 186 lineto -123.2 185.2 lineto -117.6 184.4 lineto -120.8 188.4 lineto -122.4 194 lineto -126.4 194.8 lineto -129.6 200.4 lineto -133.6 206.8 lineto -136.8 212.4 lineto -140.8 224.4 lineto -141.6 231.6 lineto -141.6 231.6 lineto -148 233.2 lineto -151.2 230.8 lineto -149.6 226.8 lineto -154.4 227.6 lineto -157.6 224.4 lineto -156.8 224.4 lineto -160 222.8 lineto -163.2 224.4 lineto -167.2 221.2 lineto -166.4 221.2 lineto -167.2 218 lineto -170.4 214.8 lineto -168 212.4 lineto -162.4 210.8 lineto -156.8 210.8 lineto -158.4 206.8 lineto -157.6 201.2 lineto -156 196.4 lineto -153.6 195.6 lineto -152.8 195.6 lineto -152.8 190.8 lineto -150.4 186.8 lineto -146.4 187.6 lineto -145.6 182.8 lineto -147.2 178 lineto -144 174 lineto -141.6 170.8 lineto -142.4 166.8 lineto -139.2 161.2 lineto -136 158 lineto -134.4 151.6 lineto -128.8 150.8 lineto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -106 62 moveto -105.8 96.2 lineto -105.6 96.4 lineto -116 97.2 lineto -125.6 100.4 lineto -133.6 107.6 lineto -137.6 113.2 lineto -141.6 118.8 lineto -145.6 122 lineto -151.2 122 lineto -151.2 117.2 lineto -152 110 lineto -156 106.8 lineto -165.6 104.4 lineto -172 102 lineto -178.4 102.8 lineto -180.8 98 lineto -186.4 96.4 lineto -195.2 98 lineto -200 97.2 lineto -205.6 100.4 lineto -212 100.4 lineto -216 98.8 lineto -224.8 102 lineto -236 104.4 lineto -246.4 104.4 lineto -256.8 104.4 lineto -264 102.8 lineto -268.8 103.6 lineto -273.6 102 lineto -279.2 102.8 lineto -286.4 98.8 lineto -292.8 97.2 lineto -300 98.8 lineto -304.8 99.6 lineto -309.6 95.6 lineto -314.4 97.2 lineto -319.2 96.4 lineto -324 93.2 lineto -331.2 93.2 lineto -339.2 95.6 lineto -345.6 98 lineto -350.4 94 lineto -350.4 94 lineto -348.8 90.8 lineto -351.2 87.6 lineto -355.2 88.4 lineto -361.6 90 lineto -361.6 90 lineto -360.8 86 lineto -357.6 81.2 lineto -352.8 77.2 lineto -352.8 78 lineto -351.2 74 lineto -355.2 70.8 lineto -359.2 67.6 lineto -359 62 lineto -106 62 lineto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -257.6 202.4 moveto -257.6 203.4 258.9 204.4 260.4 204.4 curveto -261.9 204.4 263.2 203.4 263.2 202.4 curveto -263.2 201.4 261.9 200.4 260.4 200.4 curveto -258.9 200.4 257.6 201.4 257.6 202.4 curveto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -704 100 moveto -711 99 lineto -713 106 lineto -715 115 lineto -722 122 lineto -732 118 lineto -746 119 lineto -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -268 154 moveto -256 152 lineto -259 151 lineto -265 148 lineto -265 143 lineto -271 149 lineto -268 154 lineto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -252 145 moveto -251 146 lineto -246 142 lineto -250 140 lineto -252 145 lineto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -281 153 moveto -281 153 lineto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -281 152 moveto -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -278 154 moveto -282 156 lineto -285 155 lineto -284 152 lineto -278 154 lineto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -0 sf -newpath -330 305.5 moveto -331.2 304.7 332.7 304.9 334 305.5 curveto -335.9 306.4 336.7 308.4 336.5 310.5 curveto -336.4 312.3 334.9 313 334 314.5 curveto -333.3 315.6 333.4 317.5 332 317.5 curveto -330.3 317.5 332.2 314.5 331.5 313 curveto -331.1 312 329.9 311.6 329.5 310.5 curveto -328.9 308.8 328.5 306.6 330 305.5 curveto -closepath -gsave -[0 0 0 0]setcolor {fill}fp -grestore -gsave -0.2 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp -grestore -vmr -end % FreeHandDict -%%EndDocument: _ diff --git a/Master/texmf-dist/doc/latex3/xor/outline.eps b/Master/texmf-dist/doc/latex3/xor/outline.eps deleted file mode 100644 index 09c0713c8db..00000000000 --- a/Master/texmf-dist/doc/latex3/xor/outline.eps +++ /dev/null @@ -1,19 +0,0 @@ -%!PS -%%BoundingBox: 90 38 425 78 -.91 .91 scale -50 50 translate -%% Hand made example to show outline and shaded fonts -/Palatino-Bold findfont 36 scalefont setfont -47 0 moveto (Der) true charpath stroke -117 0 moveto .7 setgray (L) show -144 0 moveto .7 setgray (T) show -162 -8 moveto .7 setgray (E) show -181 0 moveto .7 setgray (X) show -/Palatino-Bold findfont 28 scalefont setfont -128 6 moveto .7 setgray (A) show -/Palatino-Bold findfont 36 scalefont setfont -200 5 moveto (-) true charpath stroke -218 9 translate -.95 -.1 0 { setgray 0 0 moveto (Begleiter) show - -1 -1 translate} for -showpage diff --git a/Master/texmf-dist/doc/latex3/xor/outline2.eps b/Master/texmf-dist/doc/latex3/xor/outline2.eps deleted file mode 100644 index aeeff807a5e..00000000000 --- a/Master/texmf-dist/doc/latex3/xor/outline2.eps +++ /dev/null @@ -1,19 +0,0 @@ -%!PS -%%BoundingBox: 90 38 485 78 -.91 .91 scale -50 50 translate -%% Hand made example to show outline and shaded fonts -/Palatino-Bold findfont 36 scalefont setfont -47 0 moveto (The) true charpath stroke -117 0 moveto .7 setgray (L) show -144 0 moveto .7 setgray (T) show -162 -8 moveto .7 setgray (E) show -181 0 moveto .7 setgray (X) show -/Palatino-Bold findfont 28 scalefont setfont -128 6 moveto .7 setgray (A) show -/Palatino-Bold findfont 36 scalefont setfont -200 5 moveto (-) true charpath stroke -218 9 translate -.95 -.1 0 { setgray 0 0 moveto (Output Routine !) show - -1 -1 translate} for -showpage diff --git a/Master/texmf-dist/doc/latex3/xor/oxford-trial.tex b/Master/texmf-dist/doc/latex3/xor/oxford-trial.tex deleted file mode 100644 index bbeb7ec22b1..00000000000 --- a/Master/texmf-dist/doc/latex3/xor/oxford-trial.tex +++ /dev/null @@ -1,298 +0,0 @@ -% $Id: oxford-trial.tex,v 1.1 2000/08/11 06:58:43 latex3 Exp $ -% - -\documentclass{article} - -% -% File to make the trial pages for the talk in Oxford. -% Run with different numbers to get the floats added to the page (0-8); -% 9 will give grid layout; -% 10 requires a corresponding .fpc file. - -\typein[\TRIAL]{trial?} - -\usepackage{xoutput} - -\makeatletter -\def\doif#1{\relax - \ifnum#1>\TRIAL\relax - \expandafter\@gobble \else \expandafter \@firstofone \fi -} -\makeatother - - -\savefloatplacements -\doif{10}{\readfloatplacements} - -\usepackage{graphicx} - -\DeclareFloatSequenceClass{figure} -\DeclareFloatSequenceClass{table} -\DeclareFloatSequenceClass{algorithm} - -\DeclareFloatType{figure} - { - sequence-class-id = figure, - toc-extension = lof, - caption-text = \figurename, - numbered-boolean = true, - numbered-id = figure, - numbered-action = \arabic{figure}, - body-decls = , - } - -\DeclareFloatType{table} - { - sequence-class-id = table, - toc-extension = lot, - caption-text = \tablename, - numbered-boolean = true, - numbered-id = table, - numbered-action = \arabic{table}, - body-decls = , - } - -\DeclareFloatType{algorithms} - { - sequence-class-id = algorithm, - toc-extension = lot, - caption-text = Algorithm, - numbered-boolean = true, - numbered-id = algorithm, - body-decls = , - } - -\DeclareFloatArea {t11} - { - class-close-list = , - all-close-list = {b11}, - max-float-num = 1, - } - - -\DeclareFloatArea {b11} - { - class-close-list = {t11}, - all-close-list = , - max-float-num = 1, - } - - -\DeclareFloatArea {t21} - { - class-close-list = {t11,b11}, - all-close-list = {t22}, - max-float-num = 1, - } - - -\DeclareFloatArea {b21} - { - class-close-list = {t11,b11,t21}, - all-close-list = , - max-float-num = 1, - } - - -\DeclareFloatArea {t31} - { - class-close-list = {t11,b11,t21,b21}, - all-close-list = {t22}, - max-float-num = 1, - } - - -\DeclareFloatArea {b31} - { - class-close-list = {t11,b11,t21,b21,t31}, - all-close-list = , - max-float-num = 1, - } - - -\DeclareFloatArea {b22} - { - class-close-list = {t11,b11,t21}, - all-close-list = {b21,b31}, - max-float-num = 1, - } - - -\DeclareFloatArea{t22} - { - class-close-list = {t11}, - all-close-list = {t21,t31}, - max-float-num = 1, - } - - -\ShowGridfalse - -\topskip=12pt - -\DeclareInstance{pagesetup2}{normal}{std}{ - column-num = 3, - column-width = 160pt, - column-height = 552pt, - float-callout-constraint = column, - bottom-float-footnote-constraint=forbidden, - flush-bottom-float-footnote-constraint=none, - max-float-num =4, - float-float-sep = 15pt, - float-text-sep = 20pt minus 5pt, - float-area-sep = 15pt, - float-inline-sep = 10pt minus 2pt, - area-list = {t22,t11,b11,t21,b21,b22,t31,b31}, - grid-point-sep = 0pt, - } - - -% with TRIAL > 8 we do grid layout: - -\doif{9}{ - \parskip=0pt - \DeclareInstance{pagesetup2}{normal}{std}{ - column-num = 3, - column-width = 160pt, - column-height = 552pt, - float-callout-constraint = column, - bottom-float-footnote-constraint=forbidden, - flush-bottom-float-footnote-constraint=none, - max-float-num =4, - float-float-sep = 15pt, - float-text-sep = 20pt minus 5pt, - float-area-sep = 15pt, - float-inline-sep = 10pt minus 2pt, - area-list = {t22,t11,b11,t21,b21,b22,t31,b31}, - grid-point-sep = 12pt, - } -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Stuff for producing test pages -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\newcount\bc - -\newcommand\startpar{\par\global\advance\bc1 [\the\bc] } - - -\newcommand\sample{% - Infandum, re\-gi\-na, iu\-b\-es re\-no\-va\-re do\-lo\-rem, - Troi\-a\-n\-as ut op\-es et - la\-men\-ta\-bile re\-g\-num cru\-e\-rint Da\-nai; - qua\-e\-que ip\-se mis\-er\-ri\-ma vi\-di, et - qu\-o\-rum pa\-rs ma\-g\-na fui.} - - -\newcommand\dofigure[1]{% - \startpar callout (#1) to a figure. - \doif{#1}{\begin{figure} - \caption{Belongs to callout (#1)}\label{mylab:fig#1} - \ifcase\value{figure} - \or - \includegraphics[totalheight=4\baselineskip]{escher.eps} - \or - \includegraphics[totalheight=4\baselineskip]{cat.eps} - \or - \includegraphics[width=\columnwidth]{europe.eps} - \or - \includegraphics[angle=90,width=.7\columnwidth]{rahtz18.eps} - \or - \includegraphics[angle=180,width=.7\columnwidth]{rahtz18.eps} - \else - \includegraphics[width=.7\columnwidth]{rahtz18.eps} - \fi - \end{figure}} - \sample\footnote{A footnote figure #1} - \par - } - -\newcommand\doalg[1]{\startpar - callout (#1) to an algorithm.% - \doif{#1}{\begin{algorithms} - \caption{Belongs to callout (#1)} - $ A \to B \to C $ -% \includegraphics[totalheight=3\baselineskip,width=\columnwidth]{feynman.eps} - \end{algorithms}}\par} - - -\newcommand\dotable[1]{% - \startpar - callout (#1) to a table. - \doif{#1}{\begin{table} - \caption{Belongs to callout (#1)} - \ifcase\value{table} - \or - \reflectbox{\includegraphics[width=.8\columnwidth]{theworld.eps}} - \else - \includegraphics[width=.9\columnwidth]{europe.eps} - \fi - \end{table}}% - \sample\footnote{a footnote table #1} - \par - } - -\newcommand\bb{\startpar \sample\sample\par \sample\sample\sample \par} - - -% where's the interface to spanning floats? :-) -% -\newcommand\dospanfigure[1]{% - \startpar callout (#1) to a figure.% - \doif{4}{\def\SPANCNT{2}% - \begin{figure} - \includegraphics[width=1.5\columnwidth]{outline2.eps} - \caption{Belongs to callout (#1)} - \end{figure}\par - \def\SPANCNT{}}% -} - - -\begin{document} - -\UseInstance{pagesetup2}{normal} - - - - -\startpar callout (1) to a figure.% -\doif{1}{% - \begin{figure}[t21] - \reflectbox{\includegraphics[totalheight=4\baselineskip]{cat.eps}} - \caption{Forced into t21} - \end{figure}}\par - -\dofigure2 -\sample -\doalg3 - -\dospanfigure{4} - -\dofigure5 - - -\doalg{6} -\dotable{7} -\startpar callout to a here table.% -\flushfloats[table] -\begin{table}[h] - \includegraphics[width=.8\columnwidth]{europe.eps} - \caption{The here table example} -\end{table} - -\bb - -\dotable{8} - -\bb -\bb -\bb - - -\bb - - -THE END % just to make sure we don't lose text - -\end{document} diff --git a/Master/texmf-dist/doc/latex3/xor/rahtz18.eps b/Master/texmf-dist/doc/latex3/xor/rahtz18.eps deleted file mode 100644 index 24644c33307..00000000000 --- a/Master/texmf-dist/doc/latex3/xor/rahtz18.eps +++ /dev/null @@ -1,174 +0,0 @@ -%!PS-Adobe-2.0 EPSF-1.2 -%%Creator:Adobe Illustrator(TM) 1.1 -%%For:Jim Williams Williams and Helde, Inc. -%%Title:sgrp2 -%%CreationDate:9/6/88 11:39 am -%%DocumentProcSets:Adobe_Illustrator_1.1 0 0 -%%DocumentSuppliedProcSets:Adobe_Illustrator_1.1 0 0 -%%DocumentFonts:Courier -%%BoundingBox: 100 -247 388 -9 -%%TemplateBox:0 -720 576 0 -%%EndComments -%%BeginProcSet:Adobe_Illustrator_1.1 0 0 -% Copyright (C) 1987 Adobe Systems Incorporated. -% All Rights Reserved. -% Adobe Illustrator is a trademark of Adobe Systems Incorporated. -/Adobe_Illustrator_1.1 dup 100 dict def load begin -/Version 0 def -/Revision 0 def -% definition operators -/bdef {bind def} bind def -/ldef {load def} bdef -/xdef {exch def} bdef -% graphic state operators -/_K {3 index add neg dup 0 lt {pop 0} if 3 1 roll} bdef -/_k /setcmybcolor where -{/setcmybcolor get} {{1 sub 4 1 roll _K _K _K setrgbcolor pop} bind} ifelse def -/g {/_b xdef /p {_b setgray} def} bdef -/G {/_B xdef /P {_B setgray} def} bdef -/k {/_b xdef /_y xdef /_m xdef /_c xdef /p {_c _m _y _b _k} def} bdef -/K {/_B xdef /_Y xdef /_M xdef /_C xdef /P {_C _M _Y _B _k} def} bdef -/d /setdash ldef -/_i currentflat def -/i {dup 0 eq {pop _i} if setflat} bdef -/j /setlinejoin ldef -/J /setlinecap ldef -/M /setmiterlimit ldef -/w /setlinewidth ldef -% path construction operators -/_R {.25 sub round .25 add} bdef -/_r {transform _R exch _R exch itransform} bdef -/c {_r curveto} bdef -/C /c ldef -/v {currentpoint 6 2 roll _r curveto} bdef -/V /v ldef -/y {_r 2 copy curveto} bdef -/Y /y ldef -/l {_r lineto} bdef -/L /l ldef -/m {_r moveto} bdef -% error operators -/_e [] def -/_E {_e length 0 ne {gsave 0 g 0 G 0 i 0 J 0 j 1 w 10 M [] 0 d -/Courier 20 0 0 1 z [0.966 0.259 -0.259 0.966 -_e 0 get _e 2 get add 2 div _e 1 get _e 3 get add 2 div] e _f t T grestore} if} bdef -/_fill {{fill} stopped -{/_e [pathbbox] def /_f (ERROR: can't fill, increase flatness) def n _E} if} bdef -/_stroke {{stroke} stopped -{/_e [pathbbox] def /_f (ERROR: can't stroke, increase flatness) def n _E} if} bdef -% path painting operators -/n /newpath ldef -/N /n ldef -/F {p _fill} bdef -/f {closepath F} bdef -/S {P _stroke} bdef -/s {closepath S} bdef -/B {gsave F grestore S} bdef -/b {closepath B} bdef -% text block construction and painting operators -/_s /ashow ldef -/_S {(?) exch {2 copy 0 exch put pop dup false charpath currentpoint _g setmatrix -_stroke _G setmatrix moveto 3 copy pop rmoveto} forall pop pop pop n} bdef -/_A {_a moveto _t exch 0 exch} bdef -/_L {0 _l neg translate _G currentmatrix pop} bdef -/_w {dup stringwidth exch 3 -1 roll length 1 sub _t mul add exch} bdef -/_z [{0 0} bind {dup _w exch neg 2 div exch neg 2 div} bind {dup _w exch neg exch neg} bind] def -/z {_z exch get /_a xdef /_t xdef /_l xdef exch findfont exch scalefont setfont} bdef -/_g matrix def -/_G matrix def -/_D {_g currentmatrix pop gsave concat _G currentmatrix pop} bdef -/e {_D p /t {_A _s _L} def} bdef -/r {_D P /t {_A _S _L} def} bdef -/a {_D /t {dup p _A _s P _A _S _L} def} bdef -/o {_D /t {pop _L} def} bdef -/T {grestore} bdef -% group construction operators -/u {} bdef -/U {} bdef -% font construction operators -/Z {findfont begin currentdict dup length dict begin -{1 index /FID ne {def} {pop pop} ifelse} forall /FontName exch def dup length 0 ne -{/Encoding Encoding 256 array copy def 0 exch {dup type /nametype eq -{Encoding 2 index 2 index put pop 1 add} {exch pop} ifelse} forall} if pop -currentdict dup end end /FontName get exch definefont pop} bdef -end -%%EndProcSet -%%EndProlog -%%BeginSetup -Adobe_Illustrator_1.1 begin -n -%%EndSetup -0 g -0 G -0 i -0 J -0 j -1 w -10 M -[]0 d -%%Note: -190.75 -108.496 m -190.5 -108.498 l -F -190.5 -108.498 m -190.312 -108.5 l -F -u -254.191 -224.829 m -253.647 -224.865 252.943 -224.908 252.312 -224.958 c -230.826 -226.686 101.318 -178.083 209.143 -74.959 C -211.852 -72.161 L -213.375 -70.875 215.375 -72 217.25 -71.5 c -228.27 -68.561 245.818 -35.618 243.893 -30.472 c -243.73 -30.04 242.081 -16.192 238.793 -15.994 C -238.793 -15.994 L -232.562 -15.625 226.74 -18.263 227 -19.25 c -227.625 -21.625 231.076 -23.371 230.5 -23.125 c -232.687 -24.062 237.25 -30.125 229.125 -28.25 c -202.504 -22.106 203.75 -66.75 202.75 -73.25 c -202.696 -73.597 199.682 -76.507 182.092 -99.362 c -126.468 -171.641 202.374 -213.323 210.25 -219 c -216.395 -223.43 230.25 -227.25 240.169 -233.447 c -244.205 -235.969 248.5 -240.25 254 -239 c -254.191 -224.829 l -F -1 g -217.975 -60.152 m -223.723 -60.28 232.739 -48.478 v -234.373 -46.339 230.007 -36.414 223.397 -41.268 c -216.787 -46.122 217.975 -60.152 y -f -U -0 g -256 -235 m -S -253.808 -224.829 m -F -290.024 -60.152 m -284.276 -60.28 275.261 -48.478 v -273.626 -46.339 277.992 -36.414 284.602 -41.268 c -291.212 -46.122 290.024 -60.152 y -s -u -u -254.25 -15.75 m -254.25 -238.75 l -S -U -242.5 -16 m -269.206 -15.994 L -S -U -269.206 -15.994 m -269.206 -15.994 L -275.437 -15.625 281.259 -18.263 281 -19.25 c -280.375 -21.625 276.923 -23.371 277.5 -23.125 c -275.312 -24.062 270.75 -30.125 278.875 -28.25 c -305.495 -22.106 304.25 -66.75 305.25 -73.25 c -305.303 -73.597 308.318 -76.507 325.907 -99.362 c -381.531 -171.641 305.625 -213.323 297.75 -219 c -291.604 -223.43 277.75 -227.25 267.83 -233.447 c -263.794 -235.969 259.5 -240.25 254 -239 c -S -%%Trailer -_E end diff --git a/Master/texmf-dist/doc/latex3/xor/theworld.eps b/Master/texmf-dist/doc/latex3/xor/theworld.eps deleted file mode 100644 index f82b50edb3e..00000000000 --- a/Master/texmf-dist/doc/latex3/xor/theworld.eps +++ /dev/null @@ -1,3058 +0,0 @@ -%!PS-Adobe-2.0 EPSF-1.2
-%%Creator: FreeHand
-%%Title: #1
-%%CreationDate: 12/3/90 15:57
-%%BoundingBox: 28 74 814 536
-%%DocumentProcSets: FreeHand_header 2 0
-%%DocumentSuppliedProcSets: FreeHand_header 2 0
-%%EndComments
-%%BeginProcSet: FreeHand_header 2 0
-/FreeHandDict 200 dict def
-FreeHandDict begin
-/currentpacking where{pop true setpacking}if
-/bdf{bind def}bind def
-/bdef{bind def}bdf
-/xdf{exch def}bdf
-/ndf{1 index where{pop pop pop}{dup xcheck{bind}if def}ifelse}bdf
-/min{2 copy gt{exch}if pop}bdf
-/max{2 copy lt{exch}if pop}bdf
-/dr{transform .25 sub round .25 add
-exch .25 sub round .25 add exch itransform}bdf
-/curveto{dr curveto}bdf
-/lineto{dr lineto}bdf
-/moveto{dr moveto}bdf
-/graystep 1 256 div def
-/bottom -0 def
-/delta -0 def
-/frac -0 def
-/left -0 def
-/numsteps -0 def
-/numsteps1 -0 def
-/radius -0 def
-/right -0 def
-/top -0 def
-/x -0 def
-/y -0 def
-/df currentflat def
-/tempstr 1 string def
-/clipflatness 3 def
-/inverted?
-0 currenttransfer exec .5 ge def
-/concatprocs{
-/proc2 exch cvlit def/proc1 exch cvlit def
-/newproc proc1 length proc2 length add array def
-newproc 0 proc1 putinterval newproc proc1 length proc2 putinterval
-newproc cvx}bdf
-/storerect{/top xdf/right xdf/bottom xdf/left xdf}bdf
-/rectpath{newpath left bottom moveto left top lineto
-right top lineto right bottom lineto closepath}bdf
-/sf{dup 0 eq{pop df dup 3 mul}{dup} ifelse /clipflatness xdf setflat}bdf
-version cvr 38.0 le
-{/setrgbcolor{
-currenttransfer exec 3 1 roll
-currenttransfer exec 3 1 roll
-currenttransfer exec 3 1 roll
-setrgbcolor}bdf}if
-/gettint{0 get}bdf
-/puttint{0 exch put}bdf
-/vms{/vmsv save def}bdf
-/vmr{vmsv restore}bdf
-/vmrs{vmr vms}bdf
-/CD{/NF exch def
-{exch dup/FID ne{exch NF 3 1 roll put}
-{pop pop}ifelse}forall NF}bdf
-/MN{1 index length/Len exch def
-dup length Len add string dup
-Len 4 -1 roll putinterval dup 0 4 -1 roll putinterval}bdf
-/RC{256 string cvs(|______)anchorsearch
-{1 index MN cvn/NewN exch def cvn
-findfont dup maxlength dict CD dup/FontName NewN put dup
-/Encoding MacVec put NewN exch definefont pop}{pop}ifelse}bdf
-/RF{dup FontDirectory exch known{pop}{RC}ifelse}bdf
-/FF{dup 256 string cvs(|______)exch MN cvn dup FontDirectory exch known
-{exch}if pop findfont}bdf
-userdict begin /BDFontDict 20 dict def end
-BDFontDict begin
-/bu{}def
-/bn{}def
-/setTxMode{pop}def
-/gm{moveto}def
-/show{pop}def
-/gr{pop}def
-/fnt{pop pop pop}def
-/fs{pop}def
-/fz{pop}def
-/lin{pop pop}def
-end
-/MacVec 256 array def
-MacVec 0 /Helvetica findfont
-/Encoding get 0 128 getinterval putinterval
-MacVec 127 /DEL put MacVec 16#27 /quotesingle put MacVec 16#60 /grave put
-/NUL/SOH/STX/ETX/EOT/ENQ/ACK/BEL/BS/HT/LF/VT/FF/CR/SO/SI
-/DLE/DC1/DC2/DC3/DC4/NAK/SYN/ETB/CAN/EM/SUB/ESC/FS/GS/RS/US
-MacVec 0 32 getinterval astore pop
-/Adieresis/Aring/Ccedilla/Eacute/Ntilde/Odieresis/Udieresis/aacute
-/agrave/acircumflex/adieresis/atilde/aring/ccedilla/eacute/egrave
-/ecircumflex/edieresis/iacute/igrave/icircumflex/idieresis/ntilde/oacute
-/ograve/ocircumflex/odieresis/otilde/uacute/ugrave/ucircumflex/udieresis
-/dagger/degree/cent/sterling/section/bullet/paragraph/germandbls
-/register/copyright/trademark/acute/dieresis/notequal/AE/Oslash
-/infinity/plusminus/lessequal/greaterequal/yen/mu/partialdiff/summation
-/product/pi/integral/ordfeminine/ordmasculine/Omega/ae/oslash
-/questiondown/exclamdown/logicalnot/radical/florin/approxequal/Delta/guillemotleft
-/guillemotright/ellipsis/nbspace/Agrave/Atilde/Otilde/OE/oe
-/endash/emdash/quotedblleft/quotedblright/quoteleft/quoteright/divide/lozenge
-/ydieresis/Ydieresis/fraction/currency/guilsinglleft/guilsinglright/fi/fl
-/daggerdbl/periodcentered/quotesinglbase/quotedblbase
-/perthousand/Acircumflex/Ecircumflex/Aacute
-/Edieresis/Egrave/Iacute/Icircumflex/Idieresis/Igrave/Oacute/Ocircumflex
-/apple/Ograve/Uacute/Ucircumflex/Ugrave/dotlessi/circumflex/tilde
-/macron/breve/dotaccent/ring/cedilla/hungarumlaut/ogonek/caron
-MacVec 128 128 getinterval astore pop
-/fps{currentflat exch dup 0 le{pop 1}if
-{dup setflat 3 index stopped
-{1.3 mul dup 3 index gt{pop setflat pop pop stop}if}{exit}ifelse
-}loop pop setflat pop pop
-}bdf
-/fp{100 currentflat fps}bdf
-/rfp{clipflatness currentflat fps}bdf
-/fcp{100 clipflatness fps}bdf
-/fclip{{clip}fcp}bdf
-/feoclip{{eoclip}fcp}bdf
-end %. FreeHandDict
-%%EndProcSet
-%%BeginSetup
-FreeHandDict begin
-/ccmyk{dup 5 -1 roll sub 0 max exch}ndf
-/setcmykcolor{1 exch sub ccmyk ccmyk ccmyk pop setrgbcolor}ndf
-/setcmykcoloroverprint{4{dup -1 eq{pop 0}if 4 1 roll}repeat setcmykcolor}ndf
-/findcmykcustomcolor{5 /packedarray where{pop packedarray}{array astore readonly}ifelse}ndf
-/setcustomcolor{exch aload pop pop 4{4 index mul 4 1 roll}repeat setcmykcolor pop}ndf
-/setseparationgray{1 exch sub dup dup dup setcmykcolor}ndf
-/setoverprint{pop}ndf
-/currentoverprint false ndf
-/colorimage{pop pop
-[5 -1 roll/exec cvx 6 -1 roll/exec cvx 7 -1 roll/exec cvx 8 -1 roll/exec cvx
-/exch cvx/pop cvx/exch cvx/pop cvx/exch cvx/pop cvx/invbuf cvx]cvx image}
-%. version 47.1 of Postscript defines colorimage incorrectly (rgb model only)
-version cvr 47.1 le{userdict begin bdf end}{ndf}ifelse
-/customcolorimage{pop image}ndf
-/separationimage{image}ndf
-/newcmykcustomcolor{6 /packedarray where{pop packedarray}{array astore readonly}ifelse}ndf
-/inkoverprint false ndf
-/setinkoverprint{pop}ndf
-/overprintprocess{pop}ndf
-/setspotcolor
-{spots exch get 0 5 getinterval exch setcustomcolor}ndf
-/currentcolortransfer{currenttransfer dup dup dup}ndf
-/setcolortransfer{systemdict begin settransfer end pop pop pop}ndf
-/setimagecmyk{dup length 4 eq
-{aload pop}
-{aload pop spots exch get 0 4 getinterval aload pop 4
-{4 index mul 4 1 roll}repeat 5 -1 roll pop} ifelse
-systemdict /colorimage known{version cvr 47.1 gt}{false}ifelse
-not{pop 1 currentgray sub}if
-/ik xdf /iy xdf /im xdf /ic xdf
-}ndf
-/setcolor{dup length 4 eq
-{aload overprintprocess setcmykcolor}
-{aload 1 get spots exch get 5 get setinkoverprint setspotcolor}
-ifelse}ndf
-/bc2[0 0]def
-/bc4[0 0 0 0]def
-/c1[0 0 0 0]def
-/c2[0 0 0 0]def
-/absmax{2 copy abs exch abs gt{exch}if pop}bdf
-/calcstep
-{c1 length 4 eq
-{
-0 1 3
-{c1 1 index get
-c2 3 -1 roll get
-sub
-}for
-absmax absmax absmax
-}
-{
-bc2 c1 1 get 1 exch put
-c1 gettint c2 gettint
-sub abs
-}ifelse
-graystep div abs round dup 0 eq{pop 1}if
-dup /numsteps xdf 1 sub dup 0 eq{pop 1}if /numsteps1 xdf
-}bdf
-/cblend{
-c1 length 4 eq
-{
-0 1 3
-{bc4 exch
-c1 1 index get
-c2 2 index get
-1 index sub
-frac mul add put
-}for bc4
-}{
-bc2
-c1 gettint
-c2 gettint
-1 index sub
-frac mul add
-puttint bc2
-}ifelse
-setcolor
-}bdf
-/logtaper{/frac frac 9 mul 1 add log def}bdf
-/imbits 1 def
-/iminv false def
-/invbuf{0 1 2 index length 1 sub{dup 2 index exch get 255 exch sub 2 index 3 1 roll put}for}bdf
-/cyanrp{currentfile cyanbuf readhexstring pop iminv{invbuf}if}def
-/magentarp{cyanbuf magentabuf copy}bdf
-/yellowrp{cyanbuf yellowbuf copy}bdf
-/blackrp{cyanbuf blackbuf copy}bdf
-/fixtransfer{
-dup{ic mul ic sub 1 add}concatprocs exch
-dup{im mul im sub 1 add}concatprocs exch
-dup{iy mul iy sub 1 add}concatprocs exch
-{ik mul ik sub 1 add}concatprocs
-currentcolortransfer
-5 -1 roll exch concatprocs 7 1 roll
-4 -1 roll exch concatprocs 6 1 roll
-3 -1 roll exch concatprocs 5 1 roll
-concatprocs 4 1 roll
-setcolortransfer
-}bdf
-/currentpacking where{pop false setpacking}if
-%%EndSetup
-/spots[1 0 0 0 (Process Cyan) false newcmykcustomcolor
-0 1 0 0 (Process Magenta) false newcmykcustomcolor
-0 0 1 0 (Process Yellow) false newcmykcustomcolor
-0 0 0 1 (Process Black) false newcmykcustomcolor
-]def
-vms
-0 sf
-newpath
-28.6 534.9 moveto
-812.7 534.9 lineto
-812.7 74.6 lineto
-28.6 74.6 lineto
-closepath
-gsave
-[0 0 0 0.1]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-343.1 534.7 moveto
-300.3 534.7 lineto
-300.3 534.7 lineto
-300.1 533.3 300.5 531.9 299.7 530.9 curveto
-298 528.9 295.9 533.1 293.4 533.4 curveto
-291.8 533.6 289.6 535 289 533.4 curveto
-288.6 532.3 290.5 531.4 290.2 530.3 curveto
-289.7 528.5 285.4 528.4 285.2 530.3 curveto
-285.2 530.5 285.2 530.7 285.2 530.9 curveto
-285 532.9 282.1 532.2 280.1 532.2 curveto
-277.4 532.2 275.5 531.6 273.2 530.3 curveto
-271.6 529.4 271 527.9 269.4 527.1 curveto
-267.9 526.4 266.5 526.5 265 525.9 curveto
-262.9 525 258.2 523.6 260 522.1 curveto
-260.9 521.4 262.3 522.3 263.1 521.5 curveto
-264.5 520.1 261.6 518.2 260 517.1 curveto
-258.2 515.9 256.4 516.3 254.3 515.8 curveto
-251.2 515 244.8 516.3 246.1 513.3 curveto
-246.7 511.8 248.4 511.3 249.9 510.8 curveto
-251.4 510.3 252.7 510.4 254.3 510.1 curveto
-255.7 509.8 258.2 510.4 258.1 508.9 curveto
-258 507.5 255.6 508.3 254.3 508.2 curveto
-252.2 507.9 248.3 509.8 248.6 507.6 curveto
-248.9 505.8 253 505.7 253 505.7 curveto
-253 505.7 lineto
-252.4 504.8 251.1 504.3 251.2 503.2 curveto
-251.4 501.5 254 503.1 255.6 503.2 curveto
-257.4 503.4 258.7 504.4 260.6 504.5 curveto
-263.2 504.7 265 504.3 267.5 503.8 curveto
-269.7 503.4 271.3 503.1 273.2 501.9 curveto
-275.4 500.5 276.6 498.7 277.6 496.3 curveto
-278.5 494.1 278.9 492.4 278.9 490 curveto
-278.9 487.5 274.9 485 277 483.7 curveto
-278.4 482.8 279.8 484.7 281.4 484.3 curveto
-283.5 483.7 287 481.2 285.2 479.9 curveto
-283.9 479 281.9 482.3 280.8 481.1 curveto
-280.4 480.6 280.1 480 280.1 479.3 curveto
-280.1 477.7 282.9 478.6 283.9 477.4 curveto
-284.9 476.2 285.5 474.6 285.2 473 curveto
-284.8 470.7 281.2 471.2 280.1 469.2 curveto
-279.1 467.5 279 466.1 278.9 464.1 curveto
-278.8 462 279 460.5 279.5 458.5 curveto
-280 456.5 281.4 455.3 282 453.4 curveto
-282.6 451.7 282.6 450.1 283.3 448.4 curveto
-284.2 446.3 285.3 444.8 287.1 443.3 curveto
-288.9 441.8 290.8 441.5 292.7 440.2 curveto
-293.9 439.4 294.4 437.7 295.9 437.7 curveto
-297.9 437.6 298.9 439.8 299.7 441.5 curveto
-300.7 443.6 299.5 445.6 300.3 447.8 curveto
-300.9 449.6 302.4 450.6 303.4 452.2 curveto
-304.3 453.7 304.6 455.4 306 456.6 curveto
-307 457.5 308 457.8 309.1 458.5 curveto
-310.6 459.5 311.2 460.9 312.9 461.6 curveto
-314.6 462.3 316.2 461.6 317.9 462.2 curveto
-320.9 463.4 320.9 467 323.6 468.5 curveto
-325.5 469.6 327.2 469.6 329.3 470.4 curveto
-330.9 471 332.1 471.6 333.7 472.3 curveto
-336.6 473.6 342.1 473 341.2 476.1 curveto
-340.5 478.7 336.5 476.6 334.3 478 curveto
-333 478.8 330.8 479.6 331.2 481.1 curveto
-331.6 482.7 333.9 482 335.6 481.8 curveto
-336.8 481.7 337.6 480.9 338.7 480.5 curveto
-340.1 480 341.3 478.4 342.5 479.3 curveto
-343.4 480 343.3 481.2 343.1 482.4 curveto
-342.8 484.2 340.6 484.4 339.4 485.6 curveto
-338.2 486.8 336 487.5 336.2 489.3 curveto
-336.3 490.5 337.1 491.4 338.1 491.9 curveto
-339.6 492.6 341 490.6 342.5 491.2 curveto
-344 491.8 344.5 493.5 345 495 curveto
-345.6 496.7 344.8 498.4 345.7 500 curveto
-346.4 501.2 348.7 501.1 348.8 502.6 curveto
-348.9 504.5 344.3 504 345 505.7 curveto
-345.5 506.8 347 506.8 348.2 507 curveto
-350 507.4 351.4 506.5 353.2 507 curveto
-354.5 507.4 355.9 507.7 356.4 508.9 curveto
-357.4 511.1 352.5 510.4 350.1 510.8 curveto
-348.3 511.1 345.9 509.7 345 511.4 curveto
-344.2 512.9 345.1 514.6 346.3 515.8 curveto
-347.5 517 349.2 516.6 350.7 517.1 curveto
-352.1 517.6 354.5 517.3 354.5 518.9 curveto
-354.5 520.6 350.8 518.7 350.1 520.2 curveto
-349.1 522.3 353 522.9 355.1 524 curveto
-356.8 524.9 358.4 525 360.1 525.9 curveto
-362.2 527 366 527.5 365.2 529.7 curveto
-364.4 531.7 361.7 530.3 359.5 530.3 curveto
-357.6 530.3 356.3 530 354.5 529.7 curveto
-352.6 529.4 351.3 528.7 349.4 528.4 curveto
-348.1 528.2 347 528.2 345.7 527.8 curveto
-343.8 527.2 342.6 523.1 341.2 524.6 curveto
-340.1 525.8 342.9 527.6 341.9 529 curveto
-341.4 529.8 340.4 530.3 339.4 530.3 curveto
-338.1 530.4 337.5 529.1 336.2 529 curveto
-334.5 528.8 333.4 529.5 331.8 529.7 curveto
-330.2 529.9 328 528.7 327.4 530.3 curveto
-326.7 532.1 330 532.5 331.8 532.8 curveto
-333.6 533.1 334.9 532.1 336.8 532.2 curveto
-339.4 532.4 341.1 533.2 343.1 534.7 curveto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-257.5 534.7 moveto
-237.3 534.7 lineto
-237.2 534.9 236.9 535.2 236.7 535.3 curveto
-235.1 536.5 233.7 533 231.6 532.8 curveto
-229.4 532.6 228.2 534.2 226 534.1 curveto
-223.9 534 222.9 532.6 220.9 532.2 curveto
-219.1 531.8 217.7 531.9 215.9 531.5 curveto
-214.5 531.2 211.7 531.8 212.1 530.3 curveto
-212.4 529.3 214 529.7 214.6 529 curveto
-215.3 528.2 215.2 526.7 215.9 525.9 curveto
-216.8 524.9 218.3 524.8 219.7 524.6 curveto
-221.5 524.3 222.9 524.4 224.7 524.6 curveto
-226.5 524.8 228 525.3 229.7 525.9 curveto
-231.6 526.5 233.2 529.6 234.8 528.4 curveto
-235.6 527.8 236.1 526.9 236 525.9 curveto
-235.9 524.5 234 524.6 232.9 524 curveto
-231.8 523.4 229.8 523.5 229.7 522.1 curveto
-229.7 521.4 230.5 520.9 230.4 520.2 curveto
-230.2 518.7 228 521.2 226.6 521.5 curveto
-225.3 521.8 223.5 523.2 222.8 522.1 curveto
-222.4 521.4 222.5 520.4 222.8 519.6 curveto
-223.2 518.5 225.3 518.9 225.3 517.7 curveto
-225.3 516.3 223.3 516.5 222.2 515.8 curveto
-220.7 514.8 216.9 513.7 218.4 512.6 curveto
-219.3 512 220.6 513.3 221.5 512.6 curveto
-222.1 512.1 222.5 510.9 222.2 510.1 curveto
-221.9 509.2 220.7 509 219.7 508.9 curveto
-218.2 508.7 217.4 510.4 215.9 510.1 curveto
-214.7 509.9 214.3 508.9 213.4 508.2 curveto
-212.4 507.4 210.8 507.1 210.8 505.7 curveto
-210.8 504.1 213.1 504 214.6 503.8 curveto
-216.4 503.5 217.8 504.5 219.7 504.5 curveto
-221.6 504.5 222.9 504 224.7 503.8 curveto
-226.5 503.6 227.9 502.7 229.7 503.2 curveto
-231.1 503.6 232.4 504.4 232.9 505.7 curveto
-233.5 507.2 231.5 508.7 232.3 510.1 curveto
-233.1 511.5 235.2 510.8 236.7 511.4 curveto
-238.5 512.2 240.2 512.8 241.1 514.5 curveto
-241.9 516 240.6 517.6 241.7 518.9 curveto
-242.6 520 244.1 520 245.5 520.2 curveto
-246.8 520.4 248 519.8 249.3 520.2 curveto
-251 520.7 251.6 522.4 253 523.4 curveto
-255.4 525.2 262.9 526.7 260 527.8 curveto
-258.7 528.3 256.7 526.5 256.2 527.8 curveto
-255.7 529.2 258 529.8 259.3 530.3 curveto
-260.8 530.9 262.2 530.7 263.8 530.9 curveto
-265.4 531.1 266.7 530.9 268.2 531.5 curveto
-272.2 533.1 260.6 534.7 257.5 534.7 curveto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-134 483.7 moveto
-133.2 485.8 135.1 487.2 135.9 489.3 curveto
-136.7 491.5 136.4 493.8 138.4 495 curveto
-139.8 495.8 141.1 495.7 142.8 495.6 curveto
-144.5 495.5 145.5 494.4 147.2 494.4 curveto
-148.7 494.4 149.6 496 151 495.6 curveto
-152.6 495.2 153.9 493.6 153.5 491.9 curveto
-153.1 490.1 150.6 490.9 149.1 490 curveto
-147.3 489 146.2 487.7 144.7 486.2 curveto
-143.2 484.7 142.9 482.5 140.9 481.8 curveto
-138.4 480.9 135 481.2 134 483.7 curveto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-147.2 482.4 moveto
-147 484 148.3 485 149.1 486.2 curveto
-150.3 487.9 151.3 489.7 153.5 490 curveto
-155.2 490.2 156.2 488.9 157.9 488.7 curveto
-159.1 488.6 160.2 489.3 161.1 488.7 curveto
-161.9 488.2 161.5 486.6 162.3 486.2 curveto
-163.9 485.3 164.3 489.9 166.1 489.3 curveto
-167.4 488.9 167.9 484.8 168 486.2 curveto
-168 486.4 168 486.6 168 486.8 curveto
-168 488.5 165.8 483 167.4 482.4 curveto
-168.8 481.9 169.8 483.7 170.5 484.9 curveto
-171.7 486.9 168.1 490.8 170.5 491.2 curveto
-172.2 491.5 173.3 490 174.3 488.7 curveto
-175.5 487.2 175.8 485.6 176.2 483.7 curveto
-176.5 482.1 175.8 480.5 176.8 479.3 curveto
-177.6 478.4 179.6 479.2 180 478 curveto
-180.2 477.2 179.8 476.1 179.3 475.5 curveto
-178.6 474.7 176.6 475.9 176.2 474.8 curveto
-175.8 473.6 178.7 473.6 178.7 472.3 curveto
-178.7 470.4 175.5 471.5 173.7 471.7 curveto
-172 471.9 171.1 473.6 169.3 473.6 curveto
-167.2 473.6 166.2 472.3 164.2 471.7 curveto
-162.4 471.2 161 470.7 159.2 470.4 curveto
-157.6 470.1 156.2 468.9 154.8 469.8 curveto
-153.6 470.6 154.4 472.5 153.5 473.6 curveto
-152.3 475.1 148 473.5 148.5 475.5 curveto
-148.9 477.2 151.2 476.6 152.9 476.7 curveto
-155 476.9 158 474 158.5 476.1 curveto
-158.8 477.4 158.2 478.5 157.3 479.3 curveto
-156.1 480.4 154.5 479.5 152.9 479.9 curveto
-150.6 480.4 147.5 480 147.2 482.4 curveto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-145.3 501.9 moveto
-145.4 504 147.9 504.1 149.7 505.1 curveto
-151.7 506.2 153.1 507.3 155.4 507.6 curveto
-156.7 507.8 158.4 508.7 159.2 507.6 curveto
-160.3 506.1 156.7 505.7 155.4 504.5 curveto
-154.1 503.3 153.9 501.5 152.2 500.7 curveto
-149.8 499.6 145.2 499.2 145.3 501.9 curveto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-154.8 496.9 moveto
-154.5 498.6 156.1 499.5 157.3 500.7 curveto
-158.5 501.9 159.4 503.2 161.1 503.2 curveto
-162.6 503.2 163.5 501.9 164.8 501.3 curveto
-166.2 500.6 167 499.1 168.6 499.4 curveto
-170.3 499.7 169.4 503.2 171.1 503.2 curveto
-172.3 503.2 172.7 501.8 173.7 501.3 curveto
-175.2 500.6 178.3 501.7 178.1 500 curveto
-178 498.6 176.1 498.7 174.9 498.2 curveto
-172.9 497.4 171.3 497.8 169.3 496.9 curveto
-167.8 496.3 167 495 165.5 494.4 curveto
-163.7 493.6 161.3 491.3 160.4 493.1 curveto
-160 493.9 160.2 494.8 160.4 495.6 curveto
-161 497.7 166 496 165.5 498.2 curveto
-165 500.2 162.4 499.5 160.4 499.4 curveto
-158.1 499.3 155.3 494.6 154.8 496.9 curveto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-181.9 486.8 moveto
-181.9 486.8 lineto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-183.7 484.9 moveto
-183.7 484.9 lineto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-182.5 488.1 moveto
-182.2 490 184 491 185.6 491.9 curveto
-187.6 493 192.2 494.9 191.9 492.5 curveto
-191.8 491.3 190 491.2 190 490 curveto
-190 488.6 192.3 488.8 192.6 487.4 curveto
-192.8 486.2 192.5 485.3 191.9 484.3 curveto
-191.2 483.2 190.2 482.4 188.8 482.4 curveto
-187.1 482.4 186.8 484.6 185.6 485.6 curveto
-184.5 486.5 182.8 486.6 182.5 488.1 curveto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-195.7 486.8 moveto
-194 487.9 195.6 490.6 197 491.9 curveto
-198.3 493.1 200.1 493.1 202 493.1 curveto
-203.4 493.1 205.3 493.7 205.8 492.5 curveto
-206.3 491.4 205.5 490.1 204.5 489.3 curveto
-203.2 488.3 201.7 489.6 200.1 489.3 curveto
-198.3 488.9 197.3 485.8 195.7 486.8 curveto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-183.7 500 moveto
-183.3 501.4 184.9 502.9 186.3 503.2 curveto
-187.4 503.4 188.3 502.2 189.4 502.6 curveto
-190.5 503 190.1 504.8 191.3 505.1 curveto
-192.7 505.4 194.2 504.6 194.5 503.2 curveto
-194.8 501.9 194 501 193.2 500 curveto
-191.6 497.9 188.8 497.3 186.3 498.2 curveto
-185.2 498.5 184 498.9 183.7 500 curveto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-183.1 517.7 moveto
-183.9 518.8 185.5 518.5 186.9 518.3 curveto
-188.6 518.1 189.5 516.9 190.7 515.8 curveto
-191.7 514.9 193.6 514 193.2 512.6 curveto
-192.8 511.2 190.9 511.4 189.4 511.4 curveto
-187.8 511.4 186.7 512.4 185.6 513.3 curveto
-184.2 514.5 182.1 516.2 183.1 517.7 curveto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-197.6 505.7 moveto
-197.6 505.7 lineto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-200.1 503.8 moveto
-200.6 501.9 204.1 504.1 205.2 502.6 curveto
-206.2 501.3 204.9 499.5 205.8 498.2 curveto
-206.7 496.9 208.1 496.7 209.6 496.3 curveto
-211.9 495.7 213.6 496.2 215.9 496.3 curveto
-217.7 496.4 219 497 220.9 496.9 curveto
-222.6 496.8 223.6 495.6 225.3 495.6 curveto
-227.1 495.6 229.5 495.7 229.7 497.5 curveto
-229.9 499.2 228.1 500 226.6 500.7 curveto
-224.5 501.7 222.7 500.8 220.3 500.7 curveto
-217.9 500.6 216.3 499.6 214 500 curveto
-211.9 500.4 210.1 500.9 208.9 502.6 curveto
-208.3 503.5 208.4 504.8 207.7 505.7 curveto
-206.5 507.3 204.5 508.3 202.6 507.6 curveto
-201 507 199.7 505.4 200.1 503.8 curveto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-213.4 477.4 moveto
-211.4 477.5 209.9 477.6 208.3 478.6 curveto
-206.7 479.6 205.4 481 205.2 483 curveto
-205 485.1 205.9 486.4 207.1 488.1 curveto
-208.1 489.5 209.4 490.3 210.8 491.2 curveto
-211.9 491.9 212.8 493.7 214 493.1 curveto
-215.4 492.4 212.3 490.9 212.1 489.3 curveto
-211.9 487.6 212.1 486.4 212.7 484.9 curveto
-213.2 483.6 213.7 481.8 215.2 481.8 curveto
-216.9 481.8 216.3 484.6 216.5 486.2 curveto
-216.7 487.8 215.6 489.2 216.5 490.6 curveto
-217.6 492.2 219.8 492.5 221.5 491.9 curveto
-222.8 491.4 223.3 489.8 224.1 488.7 curveto
-224.9 487.6 225.3 486.1 226.6 485.6 curveto
-228.8 484.7 229.9 488.2 232.3 488.1 curveto
-234.1 488.1 235.5 487.4 236.7 486.2 curveto
-237.8 485.1 237.3 483.2 238.6 482.4 curveto
-240.2 481.5 242.3 484.3 243.6 483 curveto
-244.5 482.1 243.5 480.4 244.2 479.3 curveto
-245.2 477.8 247.4 478.6 248.6 477.4 curveto
-249.8 476.2 251.2 474.6 250.5 473 curveto
-250.1 471.9 248.3 472.3 248 471.1 curveto
-247.5 469.2 250.8 469.4 252.4 468.5 curveto
-254.3 467.4 256.1 467.1 257.5 465.4 curveto
-258.3 464.4 259.3 463.6 259.3 462.2 curveto
-259.3 460.4 258 458.5 256.2 458.5 curveto
-254.8 458.5 254.2 459.8 253 460.4 curveto
-251.7 461.1 250.7 462.6 249.3 462.2 curveto
-248.2 461.9 247.4 460.9 247.4 459.7 curveto
-247.3 458.2 249.1 457.8 249.9 456.6 curveto
-250.9 455.1 252.2 454.1 252.4 452.2 curveto
-252.5 450.8 252.5 449.5 251.8 448.4 curveto
-249.9 445.5 244.9 456.8 244.2 453.4 curveto
-243.8 451.5 245 450 246.1 448.4 curveto
-247.1 446.9 250.6 446.9 249.9 445.2 curveto
-249.3 443.7 247.2 444.5 245.5 444.6 curveto
-241.9 444.8 239.7 446.4 237.3 449 curveto
-235.8 450.6 236.1 453 234.1 454.1 curveto
-232.1 455.2 230.1 453.6 227.8 454.1 curveto
-226.1 454.4 223.4 454.1 223.4 455.9 curveto
-223.4 457.4 225.3 458 226.6 458.5 curveto
-228.6 459.3 230.5 457.4 232.3 458.5 curveto
-233.9 459.4 234 461.2 234.8 462.9 curveto
-235.5 464.5 236.8 465.5 236.7 467.3 curveto
-236.7 468.5 236.5 470 235.4 470.4 curveto
-234.1 470.8 232.9 469.7 232.3 468.5 curveto
-231.8 467.5 233 466.4 232.3 465.4 curveto
-231.6 464.3 229.3 463.8 228.5 464.8 curveto
-227.8 465.7 228.2 466.8 228.5 467.9 curveto
-229 469.8 232.1 469.7 232.3 471.7 curveto
-232.5 473.5 231.7 475 230.4 476.1 curveto
-229.2 477.1 227.6 477.1 226 477.4 curveto
-224.4 477.7 223.2 478 221.5 478 curveto
-219.8 478 218.8 477.5 217.1 477.4 curveto
-215.7 477.4 214.8 477.3 213.4 477.4 curveto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-338.1 459.1 moveto
-338 461 338.7 463.5 340.6 463.5 curveto
-342.3 463.5 342.1 460.5 343.8 460.4 curveto
-345.5 460.3 345.8 462.7 347.5 462.9 curveto
-348.9 463.1 350 462.4 351.3 462.2 curveto
-352.9 462 354.1 461.3 355.7 461.6 curveto
-357.3 461.9 358 464.7 359.5 464.1 curveto
-360.8 463.6 360.1 461.6 360.8 460.4 curveto
-361.6 459 363.8 458.9 363.9 457.2 curveto
-364.1 454.8 360.9 454.6 358.9 453.4 curveto
-356.9 452.2 355.6 450.4 353.2 450.3 curveto
-350.9 450.2 349.7 451.9 347.5 452.2 curveto
-345.2 452.5 341.5 449.8 341.2 452.2 curveto
-341.1 453.4 342.5 454.1 342.5 455.3 curveto
-342.5 457.5 338.3 456.9 338.1 459.1 curveto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-205.8 450.3 moveto
-205.5 451.8 207.6 452.2 208.3 453.4 curveto
-209.2 454.9 208.4 457.6 210.2 457.8 curveto
-211.6 458 212.2 456.4 213.4 455.9 curveto
-214.4 455.5 216 455.7 216.5 454.7 curveto
-216.8 454 216.1 453 216.5 452.2 curveto
-217 451.1 219.7 452.2 219.7 450.9 curveto
-219.7 449.9 218.7 449.2 217.8 449 curveto
-216.3 448.6 215.6 450.9 214 450.9 curveto
-212.4 450.9 211.8 449.1 210.2 449 curveto
-208.5 448.9 206.1 448.6 205.8 450.3 curveto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-212.1 444 moveto
-211.7 445.1 211.9 446.3 212.7 447.1 curveto
-213.7 448.1 215.5 448.1 216.5 447.1 curveto
-217.9 445.7 212.8 442.2 212.1 444 curveto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-183.1 471.7 moveto
-182.4 473.4 184.4 475.6 186.3 475.5 curveto
-187.5 475.4 188.1 474.4 188.8 473.6 curveto
-189.7 472.6 191.3 471.6 190.7 470.4 curveto
-190.1 469.2 188.2 470.2 186.9 470.4 curveto
-185.5 470.6 183.6 470.4 183.1 471.7 curveto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-vmrs
-0 sf
-newpath
-192.6 316.1 moveto
-192 317.7 194.8 318.1 196.3 318.6 curveto
-197.8 319.1 199.1 319.3 200.8 319.2 curveto
-202.5 319.1 203.7 318.6 205.2 318 curveto
-206.9 317.4 208.1 316.4 209.6 315.5 curveto
-211.3 314.5 212.3 313.4 214 312.3 curveto
-215.1 311.6 217 311.8 217.1 310.4 curveto
-217.2 308.7 214.4 309.2 212.7 309.2 curveto
-211.3 309.2 209.3 308.5 208.9 309.8 curveto
-208.7 310.6 209.7 311.4 209.6 312.3 curveto
-209.4 313.8 207.7 314.2 206.4 314.8 curveto
-204.8 315.6 203.2 315.8 201.4 316.1 curveto
-199.8 316.4 198.7 316.7 197 316.7 curveto
-195.3 316.7 193.2 314.5 192.6 316.1 curveto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-217.1 305.4 moveto
-217.1 306.8 219.8 306 220.3 307.3 curveto
-220.6 308.1 219.9 309.1 220.3 309.8 curveto
-221 310.9 222.8 309.4 224.1 309.2 curveto
-225.4 309 226.6 309 227.8 308.5 curveto
-229.3 307.8 231.6 307 231 305.4 curveto
-230.6 304.2 229 304.4 227.8 304.1 curveto
-226.7 303.8 225.9 303.5 224.7 303.5 curveto
-223.4 303.5 222.7 304.4 221.5 304.7 curveto
-219.9 305.1 217.1 303.7 217.1 305.4 curveto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-119.5 347 moveto
-119.5 350.1 lineto
-113.8 353.3 lineto
-110.7 360.2 lineto
-110 365.2 lineto
-108.1 371.5 lineto
-109.4 378.5 lineto
-111.3 384.8 lineto
-111.9 394.8 lineto
-117 394.8 lineto
-115.7 398.6 lineto
-113.2 403 lineto
-108.8 404.9 lineto
-108.1 411.8 lineto
-105 416.9 lineto
-103.7 420.7 lineto
-102.5 425.1 lineto
-99.3 426.3 lineto
-96.2 430.7 lineto
-93 430.1 lineto
-89.9 433.3 lineto
-85.5 435.8 lineto
-79.2 437 lineto
-75.4 440.2 lineto
-72.2 440.2 lineto
-71.6 437 lineto
-68.5 435.2 lineto
-63.4 430.7 lineto
-64.7 434.5 lineto
-66.6 438.3 lineto
-69.1 440.8 lineto
-64.7 440.2 lineto
-62.2 437 lineto
-58.4 433.9 lineto
-59 430.7 lineto
-53.3 427 lineto
-48.3 423.8 lineto
-42 420 lineto
-37.6 419.4 lineto
-30 415.6 lineto
-32.5 420 lineto
-38.2 421.9 lineto
-43.9 425.1 lineto
-48.9 428.9 lineto
-49.6 431.4 lineto
-45.8 431.4 lineto
-43.9 432 lineto
-40.1 431.4 lineto
-40.7 435.2 lineto
-42.6 438.3 lineto
-37.6 435.2 lineto
-36.3 437.7 lineto
-40.1 439.6 lineto
-36.3 441.5 lineto
-33.8 444.6 lineto
-38.2 446.5 lineto
-41.4 448.4 lineto
-45.8 449 lineto
-50.2 454.1 lineto
-44.5 452.8 lineto
-40.1 453.4 lineto
-38.8 456.6 lineto
-35.1 457.8 lineto
-40.1 459.7 lineto
-43.9 461.6 lineto
-47 459.7 lineto
-50.8 460.4 lineto
-54.6 460.4 lineto
-52.1 463.5 lineto
-47 466 lineto
-45.1 469.8 lineto
-48.9 470.4 lineto
-53.3 475.5 lineto
-57.1 475.5 lineto
-61.5 478 lineto
-65.9 479.3 lineto
-69.7 479.9 lineto
-70.3 476.1 lineto
-74.1 478 lineto
-77.9 476.7 lineto
-82.3 476.7 lineto
-88.6 475.5 lineto
-96.8 474.8 lineto
-103.7 472.3 lineto
-110 469.8 lineto
-110 473.6 lineto
-112.6 474.8 lineto
-116.3 474.2 lineto
-122 477.4 lineto
-120.1 474.2 lineto
-117 471.1 lineto
-120.7 473 lineto
-123.9 474.2 lineto
-126.4 478 lineto
-127.7 474.8 lineto
-129.6 471.7 lineto
-131.5 476.1 lineto
-132.7 472.3 lineto
-135.9 474.2 lineto
-139.6 473 lineto
-145.3 470.4 lineto
-148.5 471.1 lineto
-152.2 469.2 lineto
-149.1 466.7 lineto
-152.9 466 lineto
-159.2 466 lineto
-163 465.4 lineto
-163 462.2 lineto
-165.5 461.6 lineto
-165.5 465.4 lineto
-167.4 467.3 lineto
-164.2 468.5 lineto
-166.7 469.8 lineto
-170.5 468.5 lineto
-174.3 466.7 lineto
-180.6 466.7 lineto
-186.3 467.9 lineto
-190 465.4 lineto
-193.2 468.5 lineto
-195.1 473 lineto
-191.3 475.5 lineto
-192.6 479.9 lineto
-194.5 482.4 lineto
-197.6 481.8 lineto
-198.9 477.4 lineto
-199.5 473 lineto
-201.4 468.5 lineto
-203.9 473 lineto
-205.8 470.4 lineto
-207.1 465.4 lineto
-210.2 467.9 lineto
-212.7 470.4 lineto
-212.7 474.2 lineto
-212.7 475.4 213.5 476.4 214.6 476.7 curveto
-216.2 477.2 217.4 475.4 218.4 474.2 curveto
-219.3 473.2 220.5 472.5 220.3 471.1 curveto
-220.1 469.7 217.2 470.6 217.1 469.2 curveto
-217 467.8 219.2 467.9 219.7 466.7 curveto
-220.2 465.5 220.4 464.1 219.7 462.9 curveto
-218.7 461.2 216.4 462.3 214.6 461.6 curveto
-213.7 461.3 213.1 460.4 212.1 460.4 curveto
-210.8 460.3 210.2 461.9 208.9 461.6 curveto
-208.1 461.5 207.4 461.1 207.1 460.4 curveto
-206.9 459.8 207.5 459.1 207.1 458.5 curveto
-206.6 457.7 205.5 458.4 204.5 458.5 curveto
-203.1 458.6 201.8 460.5 200.8 459.7 curveto
-200.2 459.3 199.9 458.1 200.1 457.2 curveto
-200.4 455.8 202.8 456.6 203.3 455.3 curveto
-203.8 453.9 202.9 452.5 202 451.5 curveto
-200.4 449.8 196.3 453.2 195.7 450.9 curveto
-195.4 449.8 196.5 449 196.3 447.8 curveto
-195.9 445.5 193 446 191.3 444.6 curveto
-189.4 443 188.1 441.7 186.9 439.6 curveto
-185.5 437.2 182.8 434.9 184.4 432.6 curveto
-185.1 431.5 186.7 431.7 187.5 430.7 curveto
-188.5 429.4 187.9 427.6 188.8 426.3 curveto
-190.3 424.3 192.8 424.8 195.1 423.8 curveto
-197.5 422.8 199.1 422 201.4 420.7 curveto
-202.8 419.9 203.6 418.5 205.2 418.1 curveto
-206.5 417.8 207.9 419.1 208.9 418.1 curveto
-209.9 417.1 208.9 415.8 208.9 414.4 curveto
-208.9 412.5 208.3 411 208.9 409.3 curveto
-209.4 407.9 210.4 407 211.5 406.2 curveto
-212.6 405.4 213.8 403.9 215.2 404.3 curveto
-217 404.8 216.4 407.5 216.5 409.3 curveto
-216.7 411.9 214.7 414 215.9 416.3 curveto
-216.8 418 219.1 418 220.3 419.4 curveto
-221.8 421.1 223.3 422.7 223.4 425.1 curveto
-223.5 427.7 220.9 428.8 220.9 431.4 curveto
-220.9 433.7 222.4 434.8 222.8 437 curveto
-223.4 439.8 221.3 442.7 223.4 444.6 curveto
-225 446.1 227 445.4 229.1 445.9 curveto
-230.7 446.3 231.9 447.6 233.5 447.1 curveto
-235.6 446.4 233.7 443 235.4 441.5 curveto
-237 440.1 240.6 442.3 241.1 440.2 curveto
-241.4 439.1 240.6 438.1 240.4 437 curveto
-239.9 435.1 237.7 433.7 238.6 432 curveto
-239.4 430.6 241.3 430.8 243 430.7 curveto
-244.7 430.6 245.9 430.8 247.4 431.4 curveto
-250 432.5 249.9 438.5 252.4 437 curveto
-254 436 253.1 433.8 253.7 432 curveto
-254.2 430.3 255.2 429.3 255.6 427.6 curveto
-256 426 255.6 424.7 256.2 423.2 curveto
-256.7 421.9 257.6 420.8 258.7 420 curveto
-260.3 418.8 263.8 420.2 263.8 418.1 curveto
-263.8 416.4 261.2 416.8 260 415.6 curveto
-258.8 414.4 256.8 413.2 257.5 411.8 curveto
-258.3 410.2 260 414.2 261.9 414.4 curveto
-263.8 414.6 266.2 414.8 266.9 413.1 curveto
-267.4 411.9 266.8 410.5 266.3 409.3 curveto
-265.6 407.8 264.4 407.2 263.1 406.2 curveto
-261 404.5 259.5 403 256.8 402.4 curveto
-254.8 402 253.3 402.4 251.2 402.4 curveto
-249 402.4 247.6 402.7 245.5 402.4 curveto
-243.5 402.1 242.2 401.4 240.4 400.5 curveto
-236.1 398.3 226.1 391.8 231 391.7 curveto
-231.2 391.7 231.5 391.7 231.6 391.7 curveto
-237.3 396.1 lineto
-243 398.6 lineto
-246.7 398 lineto
-244.2 395.5 lineto
-244.2 391.7 lineto
-246.7 389.2 lineto
-250.5 387.9 lineto
-253 386 lineto
-250.5 384.8 lineto
-246.1 383.5 lineto
-241.7 379.7 lineto
-241.7 383.5 lineto
-246.1 386 lineto
-241.7 386.6 lineto
-238.6 383.5 lineto
-234.1 381.6 lineto
-231 378.5 lineto
-229.7 374.7 lineto
-224.1 372.2 lineto
-220.3 368.4 lineto
-218.4 362.1 lineto
-216.5 367.7 lineto
-215.9 363.3 lineto
-215.9 358.3 lineto
-214 355.1 lineto
-211.5 351.4 lineto
-207.1 348.2 lineto
-203.3 344.4 lineto
-202 340.7 lineto
-203.3 335 lineto
-203.9 329.9 lineto
-201.4 324.9 lineto
-199.5 328.7 lineto
-198.2 333.1 lineto
-198.9 337.5 lineto
-195.1 339.4 lineto
-190.7 340.7 lineto
-186.9 338.8 lineto
-181.9 340 lineto
-178.7 338.1 lineto
-175.6 339.4 lineto
-171.8 338.1 lineto
-168.6 336.2 lineto
-164.2 333.7 lineto
-164.2 327.4 lineto
-159.8 330.6 lineto
-157.3 335.6 lineto
-154.1 338.1 lineto
-151 336.9 lineto
-147.2 338.8 lineto
-145.9 342.5 lineto
-142.2 343.8 lineto
-138.4 343.2 lineto
-132.7 343.8 lineto
-119.5 347 lineto
-119.5 347 lineto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-164.2 327.4 moveto
-159.8 330.6 lineto
-157.3 335.6 lineto
-154.1 338.1 lineto
-151 336.9 lineto
-147.2 338.8 lineto
-145.9 342.5 lineto
-142.2 343.8 lineto
-138.4 343.2 lineto
-132.7 343.8 lineto
-119.5 347 lineto
-118.9 347 lineto
-120.7 342.5 lineto
-122.6 338.1 lineto
-125.2 333.7 lineto
-122.6 331.8 lineto
-125.8 329.9 lineto
-128.9 327.4 lineto
-129.6 324.3 lineto
-134.6 318.6 lineto
-134 323 lineto
-132.1 328.1 lineto
-130.2 332.5 lineto
-127 336.2 lineto
-125.8 340.7 lineto
-128.3 341.9 lineto
-131.5 337.5 lineto
-133.3 332.5 lineto
-136.5 328.7 lineto
-138.4 324.9 lineto
-142.2 320.5 lineto
-145.3 316.1 lineto
-145.3 311.7 lineto
-145.3 307.3 lineto
-149.7 304.7 lineto
-155.4 301 lineto
-159.8 299.7 lineto
-164.8 297.2 lineto
-169.3 298.4 lineto
-174.3 294.7 lineto
-180 291.5 lineto
-185.6 290.3 lineto
-189.4 286.5 lineto
-188.8 282.7 lineto
-192.6 280.2 lineto
-195.7 277 lineto
-200.1 275.1 lineto
-202.6 277 lineto
-205.2 278.3 lineto
-207.7 274.5 lineto
-210.2 276.4 lineto
-208.3 279.5 lineto
-205.2 280.8 lineto
-201.4 279.5 lineto
-197.6 279.5 lineto
-195.1 283.3 lineto
-195.1 289 lineto
-195.7 294.7 lineto
-193.2 297.8 lineto
-189.4 299.1 lineto
-185.6 297.8 lineto
-183.1 299.1 lineto
-185 302.9 lineto
-186.3 306 lineto
-188.2 309.8 lineto
-187.5 312.9 lineto
-183.7 313.6 lineto
-179.3 311.7 lineto
-177.4 308.5 lineto
-173.7 306 lineto
-168.6 306.6 lineto
-165.5 309.2 lineto
-164.2 312.9 lineto
-162.3 318 lineto
-164.2 323 lineto
-164.2 327.4 lineto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-265 405.5 moveto
-263.7 405 263 403.7 262.5 402.4 curveto
-262 401.2 262.7 399.6 261.9 398.6 curveto
-261.1 397.6 259.4 398.4 258.7 397.4 curveto
-257.9 396.3 257.6 394.4 258.7 393.6 curveto
-259.9 392.8 261.1 394.6 262.5 394.8 curveto
-264.1 395 266.3 396.4 266.9 394.8 curveto
-267.3 393.7 265.1 392.7 265.6 391.7 curveto
-266.3 390.3 268 394.3 269.4 393.6 curveto
-270.2 393.2 269.9 391.7 270.7 391.1 curveto
-271.8 390.3 273.6 390.1 274.5 391.1 curveto
-275.7 392.4 271.9 393.6 271.9 395.5 curveto
-271.9 396.4 272.7 397.1 272.6 398 curveto
-272.3 399.8 268.1 398.1 268.2 399.9 curveto
-268.2 400.7 269.6 401 269.4 401.8 curveto
-269.2 402.7 267.4 401.7 266.9 402.4 curveto
-266.2 403.4 268.8 404.5 268.2 405.5 curveto
-267.6 406.5 266.1 405.9 265 405.5 curveto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-463.5 167.4 moveto
-466.6 170.6 lineto
-469.1 173.7 lineto
-472.3 178.7 lineto
-474.8 183.2 lineto
-474.8 187.6 lineto
-478.6 190.1 lineto
-480.5 193.9 lineto
-480.5 198.3 lineto
-479.8 203.9 lineto
-483 207.7 lineto
-486.8 210.9 lineto
-491.8 214.7 lineto
-493.7 219.1 lineto
-493.7 226 lineto
-492.4 231.7 lineto
-491.2 238 lineto
-490.6 243.6 lineto
-492.4 249.3 lineto
-496.9 255 lineto
-500.6 261.3 lineto
-505.7 265.7 lineto
-510.1 270.1 lineto
-513.2 275.1 lineto
-515.8 281.4 lineto
-518.3 287.1 lineto
-517.6 290.9 lineto
-513.9 289 lineto
-510.1 289.6 lineto
-503.8 287.1 lineto
-499.4 290.9 lineto
-496.9 295.9 lineto
-493.7 299.1 lineto
-489.9 301 lineto
-487.4 307.3 lineto
-484.3 310.4 lineto
-483.6 314.8 lineto
-483 319.9 lineto
-479.8 322.4 lineto
-479.8 325.5 lineto
-476.7 331.2 lineto
-472.9 336.9 lineto
-471 342.5 lineto
-469.8 347.6 lineto
-464.1 345.7 lineto
-459.1 347 lineto
-452.8 348.8 lineto
-447.1 351.4 lineto
-445.2 352 lineto
-442 350.7 lineto
-442.7 345.7 lineto
-439.5 345.1 lineto
-433.9 347.6 lineto
-428.8 350.7 lineto
-422.5 352.6 lineto
-418.7 356.4 lineto
-418.7 360.2 lineto
-420 364 lineto
-416.2 365.9 lineto
-409.9 364.6 lineto
-402.4 364 lineto
-396.7 362.7 lineto
-391.6 358.9 lineto
-387.2 358.9 lineto
-382.2 360.2 lineto
-379 355.8 lineto
-375.3 352 lineto
-372.1 348.2 lineto
-371.5 342.5 lineto
-368.3 338.8 lineto
-368.3 338.8 lineto
-366 336.2 363.8 334.9 362 331.8 curveto
-360.8 329.6 360.7 327.7 359.5 325.5 curveto
-357.9 322.6 355.1 321.7 353.8 318.6 curveto
-352.8 316 352.6 313.9 352.6 311 curveto
-352.6 308.6 354 307.1 353.8 304.7 curveto
-353.6 302.7 351.9 301.7 352 299.7 curveto
-352.1 298.1 353.3 297.4 353.8 295.9 curveto
-354.4 294.2 354 292.4 355.1 290.9 curveto
-356.3 289.3 358.6 289.7 360.1 288.4 curveto
-361.9 286.8 362 284.7 363.3 282.7 curveto
-364.8 280.4 371.2 277.1 368.3 277 curveto
-368.1 277 367.6 277 367.7 277 curveto
-371.5 274.5 lineto
-375.9 270.1 lineto
-380.3 269.5 lineto
-384.7 271.4 lineto
-389.8 270.1 lineto
-395.4 272 lineto
-398.6 273.9 lineto
-403.6 275.1 lineto
-409.3 273.9 lineto
-411.2 269.5 lineto
-416.8 268.8 lineto
-420.6 265.7 lineto
-419.4 260 lineto
-418.7 254.3 lineto
-421.9 249.9 lineto
-425 244.9 lineto
-427.6 239.9 lineto
-428.8 234.2 lineto
-430.1 227.9 lineto
-428.8 222.8 lineto
-426.3 217.2 lineto
-426.3 210.9 lineto
-425.7 204.6 lineto
-428.8 200.8 lineto
-432 195.8 lineto
-432 189.5 lineto
-433.2 183.2 lineto
-435.7 179.4 lineto
-439.5 175 lineto
-440.2 170.6 lineto
-440.8 166.8 lineto
-440.2 168 lineto
-443.3 163.6 lineto
-445.8 159.9 lineto
-449.6 161.1 lineto
-455.3 163.6 lineto
-459.7 163.6 lineto
-463.5 167.4 lineto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-207.7 274.5 moveto
-210.2 272 lineto
-210.2 267.6 lineto
-210.2 263.2 lineto
-207.1 258.8 lineto
-203.9 255 lineto
-202.6 249.3 lineto
-205.2 246.2 lineto
-202.6 241.7 lineto
-202.6 236.1 lineto
-206.4 232.3 lineto
-211.5 226.6 lineto
-214 220.3 lineto
-215.9 216.5 lineto
-219 211.5 lineto
-224.1 207.7 lineto
-230.4 203.3 lineto
-231.6 197.6 lineto
-232.9 191.3 lineto
-231.6 185.7 lineto
-233.5 180 lineto
-232.3 174.3 lineto
-231 169.3 lineto
-232.3 163.6 lineto
-231.6 157.3 lineto
-231 150.4 lineto
-229.1 146 lineto
-229.7 141 lineto
-231 136.5 lineto
-232.9 132.8 lineto
-233.5 129 lineto
-234.1 124.6 lineto
-232.9 120.8 lineto
-230.4 120.2 lineto
-232.3 117.6 lineto
-233.5 114.5 lineto
-232.3 112 lineto
-234.1 108.2 lineto
-235.4 104.4 lineto
-238.6 101.9 lineto
-238.6 103.2 lineto
-237.9 99.4 lineto
-241.7 99.4 lineto
-242.3 96.2 lineto
-244.2 95.6 lineto
-245.5 99.4 lineto
-246.1 95.6 lineto
-247.4 93.7 lineto
-244.2 91.8 lineto
-249.3 91.2 lineto
-253 90.6 lineto
-258.1 90.6 lineto
-254.9 93.1 lineto
-250.5 95.6 lineto
-248 99.4 lineto
-246.1 106.3 lineto
-249.3 108.8 lineto
-252.4 114.5 lineto
-249.3 118.3 lineto
-248.6 123.3 lineto
-251.8 125.8 lineto
-254.3 132.1 lineto
-251.8 135.3 lineto
-251.8 138.4 lineto
-256.2 137.8 lineto
-257.5 142.2 lineto
-260.6 144.7 lineto
-265.6 146 lineto
-268.2 149.1 lineto
-268.2 153.6 lineto
-265.6 158.6 lineto
-269.4 156.7 lineto
-273.2 157.3 lineto
-276.4 159.2 lineto
-277 164.3 lineto
-280.1 171.2 lineto
-279.5 167.4 lineto
-279.5 164.9 lineto
-282 169.9 lineto
-284.5 174.3 lineto
-284.5 180.6 lineto
-285.8 185 lineto
-289.6 188.8 lineto
-294 191.3 lineto
-299.7 193.2 lineto
-301.6 198.3 lineto
-305.3 204.6 lineto
-304.7 211.5 lineto
-305.3 219.1 lineto
-309.7 226 lineto
-312.3 231.7 lineto
-314.2 238.6 lineto
-311 243 lineto
-306.6 243.6 lineto
-304.7 247.4 lineto
-299.7 248.7 lineto
-294.6 249.9 lineto
-291.5 248.7 lineto
-289.6 251.8 lineto
-285.8 252.5 lineto
-283.3 253.7 lineto
-280.1 251.8 lineto
-280.1 256.2 lineto
-275.7 253.7 lineto
-273.8 251.8 lineto
-273.2 255 lineto
-275.7 258.8 lineto
-275.1 262.5 lineto
-271.9 266.9 lineto
-268.8 270.7 lineto
-265 272 lineto
-259.3 272.6 lineto
-253.7 276.4 lineto
-249.3 280.2 lineto
-243.6 282.7 lineto
-237.9 284 lineto
-232.3 284.6 lineto
-227.8 287.1 lineto
-223.4 288.4 lineto
-220.3 285.2 lineto
-216.5 282.7 lineto
-214 278.9 lineto
-210.8 277 lineto
-207.7 274.5 lineto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-210.8 305.1 moveto
-210.8 305.6 211.8 306 213 306 curveto
-214.2 306 215.2 305.6 215.2 305.1 curveto
-215.2 304.6 214.2 304.2 213 304.2 curveto
-211.8 304.2 210.8 304.6 210.8 305.1 curveto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-237.8 305.7 moveto
-237.8 306.2 238.4 306.7 239.1 306.7 curveto
-239.8 306.7 240.4 306.2 240.4 305.7 curveto
-240.4 305.2 239.8 304.8 239.1 304.8 curveto
-238.4 304.8 237.8 305.2 237.8 305.7 curveto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-513.2 226 moveto
-516.4 223.5 lineto
-518.3 219.1 lineto
-517 215.3 lineto
-515.1 212.8 lineto
-514.5 208.4 lineto
-512.6 203.9 lineto
-510.7 197.6 lineto
-510.1 192.6 lineto
-506.9 188.8 lineto
-501.9 190.1 lineto
-500.6 195.8 lineto
-500 200.2 lineto
-503.2 204.6 lineto
-503.2 209.6 lineto
-503.8 214.7 lineto
-508.8 216.5 lineto
-512 221.6 lineto
-513.2 226 lineto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-384.1 362.1 moveto
-380.9 364.6 lineto
-377.2 365.2 lineto
-375.9 368.4 lineto
-375.3 371.5 lineto
-377.8 377.2 lineto
-377.2 381.6 lineto
-375.9 383.5 lineto
-380.3 384.8 lineto
-386 384.1 lineto
-391 384.1 lineto
-394.2 386.6 lineto
-394.2 391.7 lineto
-391 396.1 lineto
-387.2 399.9 lineto
-391 401.1 lineto
-393.5 404.9 lineto
-396.1 403.7 lineto
-398.6 404.9 lineto
-402.4 407.4 lineto
-406.1 409.3 lineto
-406.8 413.1 lineto
-409.9 415 lineto
-411.8 417.5 lineto
-416.2 417.5 lineto
-416.8 421.3 lineto
-415 425.1 lineto
-415.6 428.9 lineto
-418.1 428.9 lineto
-420.6 427 lineto
-418.7 423.8 lineto
-420 420.7 lineto
-425 420 lineto
-429.4 418.8 lineto
-433.9 420.7 lineto
-438.9 421.3 lineto
-442 423.8 lineto
-442.7 428.2 lineto
-443.9 432 lineto
-447.7 430.1 lineto
-448.3 433.9 lineto
-449.6 437 lineto
-453.4 437.7 lineto
-457.8 438.9 lineto
-460.9 440.8 lineto
-457.2 442.1 lineto
-452.1 442.1 lineto
-449.6 440.2 lineto
-445.2 441.5 lineto
-442.7 444.6 lineto
-441.4 449 lineto
-441.4 452.8 lineto
-444.6 453.4 lineto
-446.5 456.6 lineto
-449.6 460.4 lineto
-448.3 463.5 lineto
-443.9 462.9 lineto
-441.4 460.4 lineto
-438.9 455.9 lineto
-435.7 452.2 lineto
-433.2 448.4 lineto
-433.9 443.3 lineto
-436.4 440.8 lineto
-433.9 439.6 lineto
-435.1 437 lineto
-433.2 433.3 lineto
-432 428.9 lineto
-427.6 426.3 lineto
-424.4 426.3 lineto
-422.5 431.4 lineto
-421.9 436.4 lineto
-419.4 440.8 lineto
-417.5 437.7 lineto
-414.3 435.2 lineto
-411.8 433.9 lineto
-408.7 437 lineto
-408.7 440.8 lineto
-407.4 445.9 lineto
-410.5 450.9 lineto
-414.3 453.4 lineto
-420 459.1 lineto
-423.1 462.9 lineto
-425 467.9 lineto
-428.2 471.1 lineto
-432 475.5 lineto
-437 479.3 lineto
-441.4 483 lineto
-444.6 481.8 lineto
-447.7 486.2 lineto
-449 483 lineto
-451.5 484.9 lineto
-455.3 485.6 lineto
-459.7 484.9 lineto
-457.2 481.8 lineto
-460.3 479.9 lineto
-464.7 478.6 lineto
-468.5 478 lineto
-472.9 476.1 lineto
-478 473.6 lineto
-481.7 471.7 lineto
-482.4 467.9 lineto
-479.2 465.4 lineto
-474.2 465.4 lineto
-471 467.9 lineto
-465.4 468.5 lineto
-467.2 465.4 lineto
-469.8 462.2 lineto
-471 458.5 lineto
-475.4 455.9 lineto
-473.5 459.7 lineto
-476.7 461 lineto
-481.1 459.7 lineto
-482.4 463.5 lineto
-486.1 466 lineto
-488.7 469.2 lineto
-487.4 474.2 lineto
-486.1 477.4 lineto
-490.6 476.1 lineto
-492.4 473.6 lineto
-491.2 470.4 lineto
-493.7 467.3 lineto
-496.2 470.4 lineto
-500.6 473 lineto
-505.7 475.5 lineto
-508.8 473.6 lineto
-512.6 475.5 lineto
-517 476.7 lineto
-520.8 475.5 lineto
-522.1 479.3 lineto
-525.2 480.5 lineto
-529 478 lineto
-532.1 476.1 lineto
-536.5 473.6 lineto
-518.9 408.7 lineto
-503.2 404.9 lineto
-505 392.9 lineto
-501.9 390.4 lineto
-500.6 386.6 lineto
-502.5 383.5 lineto
-505 380.3 lineto
-488.7 377.2 lineto
-488.7 380.3 lineto
-485.5 384.1 lineto
-483 386.6 lineto
-479.8 388.5 lineto
-480.5 391.7 lineto
-482.4 395.5 lineto
-478.6 394.8 lineto
-474.8 394.8 lineto
-472.9 392.9 lineto
-474.8 391.7 lineto
-476.1 389.8 lineto
-473.5 388.5 lineto
-471 387.9 lineto
-468.5 390.4 lineto
-470.4 392.9 lineto
-467.2 393.6 lineto
-465.4 396.1 lineto
-462.2 393.6 lineto
-460.9 389.2 lineto
-459.1 385.4 lineto
-457.2 382.9 lineto
-458.4 379.7 lineto
-459.1 377.2 lineto
-455.9 375.9 lineto
-450.9 375.3 lineto
-448.3 372.8 lineto
-447.7 370.3 lineto
-449.6 368.4 lineto
-445.2 369 lineto
-442 372.2 lineto
-440.2 375.9 lineto
-438.3 380.3 lineto
-433.9 384.1 lineto
-429.4 387.9 lineto
-426.9 391.1 lineto
-423.1 392.3 lineto
-422.5 389.2 lineto
-425.7 385.4 lineto
-428.8 381 lineto
-432.6 378.5 lineto
-435.1 376.6 lineto
-437.6 372.8 lineto
-434.5 374.7 lineto
-434.5 372.2 lineto
-434.5 369 lineto
-431.3 367.1 lineto
-431.3 371.5 lineto
-427.6 375.9 lineto
-424.4 379.7 lineto
-420.6 382.2 lineto
-419.4 385.4 lineto
-416.8 387.3 lineto
-412.4 386 lineto
-409.3 384.8 lineto
-404.9 384.8 lineto
-402.4 381.6 lineto
-401.1 377.8 lineto
-397.3 376.6 lineto
-396.1 373.4 lineto
-395.4 370.3 lineto
-392.9 367.7 lineto
-391 365.2 lineto
-387.2 363.3 lineto
-384.1 362.1 lineto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-377.2 423.8 moveto
-379.7 422.6 lineto
-377.8 423.2 lineto
-375.9 420.7 lineto
-373.4 420 lineto
-373.4 417.5 lineto
-374.6 415.6 lineto
-372.7 413.7 lineto
-373.4 410.6 lineto
-375.9 411.8 lineto
-379.7 412.5 lineto
-382.2 412.5 lineto
-382.2 416.3 lineto
-382.8 420 lineto
-377.2 423.8 lineto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-415.6 370.9 moveto
-415 374 lineto
-415.6 376.6 lineto
-418.1 376.6 lineto
-418.7 374 lineto
-415.6 370.9 lineto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-416.2 382.9 moveto
-416.2 382.2 lineto
-415 379.7 lineto
-416.2 382.9 lineto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-504.4 493.7 moveto
-505.6 494 506.7 493.4 507.6 492.5 curveto
-508.3 491.8 508.5 490.9 508.8 490 curveto
-509.3 488.7 509.5 487.5 510.1 486.2 curveto
-510.9 484.4 514.4 483.4 513.2 481.8 curveto
-512.1 480.3 509.8 482.1 508.2 483 curveto
-506.8 483.8 506.4 485.4 505 486.2 curveto
-503.6 487 501 485.7 500.6 487.4 curveto
-500.3 488.8 501.9 489.5 502.5 490.6 curveto
-503.1 491.7 503.1 493.3 504.4 493.7 curveto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-532.8 509.5 moveto
-531.4 510.7 529.5 509.8 527.7 509.5 curveto
-525.8 509.2 524.6 508 522.7 507.6 curveto
-520.6 507.1 519 507.7 517 507 curveto
-515.5 506.5 514.6 505.2 513.2 504.5 curveto
-511.7 503.7 509.8 504.1 508.8 502.6 curveto
-508.1 501.5 508.7 500 508.2 498.8 curveto
-507.8 497.8 506.3 497.5 506.3 496.3 curveto
-506.3 494.6 509 494.8 510.7 495 curveto
-512.4 495.2 513.5 496.3 514.5 497.5 curveto
-515.5 498.7 515.3 500.2 516.4 501.3 curveto
-517.6 502.5 519.2 502.6 520.8 503.2 curveto
-523 504.1 524.4 504.7 526.5 505.7 curveto
-528.9 506.9 534.9 507.7 532.8 509.5 curveto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-447.7 367.7 moveto
-448.8 367.7 450.2 367 450.2 365.9 curveto
-450.2 364.5 448.5 363.7 447.1 364 curveto
-446.1 364.2 445.2 364.9 445.2 365.9 curveto
-445.2 367 446.6 367.7 447.7 367.7 curveto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-536.5 473.6 moveto
-518.9 408.7 lineto
-503.2 404.9 lineto
-505 392.9 lineto
-501.9 390.4 lineto
-500.6 386.6 lineto
-502.5 383.5 lineto
-505 380.3 lineto
-488.7 377.2 lineto
-486.8 375.3 lineto
-483 376.6 lineto
-478 377.8 lineto
-474.8 379.1 lineto
-471.7 378.5 lineto
-466.6 377.2 lineto
-462.2 375.9 lineto
-459.7 374 lineto
-455.9 371.5 lineto
-457.8 369 lineto
-457.2 365.2 lineto
-460.3 362.1 lineto
-463.5 360.8 lineto
-467.2 362.7 lineto
-469.8 361.4 lineto
-471.7 362.7 lineto
-474.2 361.4 lineto
-479.2 362.7 lineto
-478 357.7 lineto
-477.3 352 lineto
-476.1 347.6 lineto
-474.2 345.7 lineto
-471.7 347 lineto
-471 347.6 lineto
-471.7 343.8 lineto
-474.2 340 lineto
-476.7 335.6 lineto
-478 341.9 lineto
-479.2 337.5 lineto
-482.4 331.8 lineto
-486.1 324.3 lineto
-489.3 320.5 lineto
-489.3 316.7 lineto
-492.4 312.3 lineto
-496.9 306.6 lineto
-498.1 302.2 lineto
-498.1 299.1 lineto
-500 297.2 lineto
-501.3 294 lineto
-505.7 296.6 lineto
-510.7 298.4 lineto
-516.4 301 lineto
-521.4 304.7 lineto
-526.5 306.6 lineto
-530.2 310.4 lineto
-533.4 315.5 lineto
-536.5 319.9 lineto
-535.3 324.9 lineto
-530.2 324.9 lineto
-528.4 331.2 lineto
-525.8 327.4 lineto
-521.4 326.8 lineto
-517.6 328.7 lineto
-513.2 331.8 lineto
-509.5 336.2 lineto
-507.6 340.7 lineto
-505.7 344.4 lineto
-508.8 345.7 lineto
-512 343.2 lineto
-515.1 340 lineto
-517.6 336.9 lineto
-521.4 335.6 lineto
-526.5 335 lineto
-530.2 333.7 lineto
-531.5 330.6 lineto
-535.3 328.7 lineto
-541.6 328.7 lineto
-546.6 329.9 lineto
-551.7 329.3 lineto
-554.2 325.5 lineto
-558.6 323 lineto
-560.5 319.9 lineto
-563.6 317.3 lineto
-567.4 318.6 lineto
-567.4 313.6 lineto
-568.7 309.2 lineto
-569.3 304.7 lineto
-569.3 300.3 lineto
-571.2 295.9 lineto
-573.7 292.1 lineto
-573.7 287.7 lineto
-576.2 285.2 lineto
-576.9 281.4 lineto
-580 278.9 lineto
-582.5 282.1 lineto
-584.4 285.2 lineto
-583.8 289.6 lineto
-585.7 294 lineto
-585.7 300.3 lineto
-589.5 303.5 lineto
-592.6 306.6 lineto
-596.4 310.4 lineto
-599.5 314.2 lineto
-600.2 316.7 lineto
-604 318 lineto
-606.5 318 lineto
-607.7 322.4 lineto
-610.3 319.2 lineto
-612.8 314.2 lineto
-615.9 311.7 lineto
-618.4 307.3 lineto
-618.4 301.6 lineto
-622.2 301.6 lineto
-624.7 303.5 lineto
-627.3 300.3 lineto
-627.3 295.9 lineto
-627.3 292.8 lineto
-629.2 287.7 lineto
-628.5 284 lineto
-627.9 279.5 lineto
-630.4 277.7 lineto
-632.3 273.2 lineto
-632.3 268.8 lineto
-634.8 263.8 lineto
-638.6 261.9 lineto
-644.3 259.4 lineto
-641.1 265.7 lineto
-638.6 271.4 lineto
-636.1 275.1 lineto
-632.9 278.9 lineto
-631 282.7 lineto
-631 288.4 lineto
-632.3 295.3 lineto
-635.5 292.1 lineto
-639.9 290.3 lineto
-640.5 287.1 lineto
-644.3 284.6 lineto
-644.9 280.8 lineto
-648.1 283.3 lineto
-651.2 286.5 lineto
-653.7 292.1 lineto
-653.7 297.8 lineto
-650.6 304.1 lineto
-646.8 307.9 lineto
-643 311.7 lineto
-644.3 316.7 lineto
-647.4 318 lineto
-651.2 318.6 lineto
-652.5 315.5 lineto
-655.6 318 lineto
-660 320.5 lineto
-665.7 321.1 lineto
-668.8 324.3 lineto
-672 328.7 lineto
-674.5 335.6 lineto
-676.4 341.3 lineto
-675.1 347.6 lineto
-672.6 352.6 lineto
-669.5 358.3 lineto
-672.6 362.7 lineto
-675.8 366.5 lineto
-672 367.1 lineto
-669.5 365.9 lineto
-666.3 367.1 lineto
-664.4 370.9 lineto
-667 372.8 lineto
-672 377.2 lineto
-673.9 375.3 lineto
-672 371.5 lineto
-675.1 371.5 lineto
-678.3 373.4 lineto
-682.1 372.2 lineto
-682.7 369 lineto
-683.3 365.9 lineto
-685.9 362.7 lineto
-687.1 358.9 lineto
-687.1 354.5 lineto
-690.9 356.4 lineto
-693.4 360.2 lineto
-691.5 365.9 lineto
-689 370.3 lineto
-687.7 374 lineto
-691.5 377.2 lineto
-691.5 382.9 lineto
-696.6 383.5 lineto
-701.6 386.6 lineto
-704.1 391.7 lineto
-706 398 lineto
-706.6 403 lineto
-707.3 408.1 lineto
-706.6 413.7 lineto
-704.1 418.8 lineto
-701 420.7 lineto
-699.1 418.8 lineto
-695.9 421.3 lineto
-693.4 422.6 lineto
-696.6 427.6 lineto
-699.1 432 lineto
-703.5 437 lineto
-707.9 438.3 lineto
-712.9 437.7 lineto
-716.7 438.3 lineto
-719.2 439.6 lineto
-722.4 438.9 lineto
-723 436.4 lineto
-726.8 437.7 lineto
-729.3 437 lineto
-731.8 438.3 lineto
-730 441.5 lineto
-730.6 445.9 lineto
-736.9 447.8 lineto
-737.5 444.6 lineto
-740.7 444.6 lineto
-743.2 447.1 lineto
-744.4 449.6 lineto
-747 450.3 lineto
-746.3 446.5 lineto
-743.8 442.7 lineto
-743.2 438.9 lineto
-740.7 435.8 lineto
-737.5 432 lineto
-735 427.6 lineto
-736.9 423.2 lineto
-738.1 418.8 lineto
-738.8 415 lineto
-743.2 409.3 lineto
-745.7 414.4 lineto
-747.6 416.9 lineto
-747.6 420 lineto
-750.1 421.3 lineto
-749.5 425.1 lineto
-752 428.2 lineto
-749.5 431.4 lineto
-747.6 434.5 lineto
-749.5 439.6 lineto
-752.6 442.7 lineto
-754.5 440.2 lineto
-758.3 442.1 lineto
-762.7 440.2 lineto
-764 445.9 lineto
-768.4 447.8 lineto
-773.4 449.6 lineto
-777.2 450.3 lineto
-773.4 453.4 lineto
-769.6 457.2 lineto
-772.8 459.1 lineto
-772.8 462.2 lineto
-775.3 464.1 lineto
-776.6 461 lineto
-781 460.4 lineto
-784.1 458.5 lineto
-787.9 456.6 lineto
-791.7 456.6 lineto
-789.2 460.4 lineto
-793 461 lineto
-794.2 463.5 lineto
-790.4 466 lineto
-786.7 467.9 lineto
-784.1 465.4 lineto
-780.4 468.5 lineto
-775.9 471.7 lineto
-769 474.2 lineto
-762.1 477.4 lineto
-755.8 479.9 lineto
-751.4 480.5 lineto
-746.3 479.9 lineto
-748.2 476.1 lineto
-745.1 476.1 lineto
-741.9 476.1 lineto
-740 479.3 lineto
-735 478.6 lineto
-730 479.3 lineto
-727.4 476.7 lineto
-723.7 479.3 lineto
-720.5 483 lineto
-714.8 483.7 lineto
-709.2 483.7 lineto
-703.5 485.6 lineto
-699.1 486.8 lineto
-697.2 489.3 lineto
-693.4 489.3 lineto
-690.3 488.1 lineto
-687.7 489.3 lineto
-689 491.2 lineto
-684 491.9 lineto
-678.9 491.2 lineto
-678.9 488.1 lineto
-674.5 486.2 lineto
-668.8 486.8 lineto
-663.8 488.1 lineto
-661.3 485.6 lineto
-658.1 487.4 lineto
-653.7 489.3 lineto
-655 492.5 lineto
-653.7 495 lineto
-648.7 496.9 lineto
-644.3 496.9 lineto
-645.5 493.7 lineto
-644.9 491.2 lineto
-640.5 492.5 lineto
-635.5 493.1 lineto
-632.3 495.6 lineto
-626.6 495.6 lineto
-621.6 495 lineto
-617.2 496.3 lineto
-614.7 493.7 lineto
-607.1 490.6 lineto
-609.6 494.4 lineto
-613.4 497.5 lineto
-617.2 499.4 lineto
-619.7 503.2 lineto
-619.7 507 lineto
-616.6 508.9 lineto
-612.8 511.4 lineto
-607.7 509.5 lineto
-604.6 512 lineto
-601.4 514.5 lineto
-597 512.6 lineto
-598.3 509.5 lineto
-595.1 508.9 lineto
-592 509.5 lineto
-593.2 507 lineto
-588.2 506.3 lineto
-583.8 507.6 lineto
-579.4 507 lineto
-579.4 503.2 lineto
-574.3 503.8 lineto
-569.9 502.6 lineto
-568 500 lineto
-570.6 496.9 lineto
-567.4 495.6 lineto
-564.9 494.4 lineto
-561.7 496.3 lineto
-559.2 494.4 lineto
-561.1 491.9 lineto
-564.3 489.3 lineto
-567.4 485.6 lineto
-566.8 481.8 lineto
-564.3 483 lineto
-563 486.2 lineto
-560.5 488.7 lineto
-557.3 490.6 lineto
-556.1 488.1 lineto
-552.9 488.7 lineto
-554.8 484.9 lineto
-551.7 485.6 lineto
-549.8 488.7 lineto
-547.9 491.9 lineto
-547.3 488.1 lineto
-546 484.9 lineto
-548.5 482.4 lineto
-547.9 479.3 lineto
-551 476.7 lineto
-554.8 476.1 lineto
-558 471.1 lineto
-555.4 471.7 lineto
-552.9 474.2 lineto
-551 473 lineto
-550.4 468.5 lineto
-547.9 465.4 lineto
-542.8 464.1 lineto
-541.6 466.7 lineto
-544.7 468.5 lineto
-546.6 472.3 lineto
-546.6 476.1 lineto
-545.4 481.1 lineto
-542.8 485.6 lineto
-542.8 492.5 lineto
-539.1 493.1 lineto
-537.2 490 lineto
-534.7 486.2 lineto
-533.4 483.7 lineto
-535.3 479.9 lineto
-537.8 477.4 lineto
-539.7 473.6 lineto
-536.5 473.6 lineto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-670.1 503.8 moveto
-670.1 505 671 505.9 672 506.3 curveto
-673.2 506.8 674.4 505.6 675.8 505.7 curveto
-677.3 505.8 678.1 507 679.6 507 curveto
-681.6 507 685.1 507.1 684.6 505.1 curveto
-684.3 503.7 682.6 503.8 681.4 503.2 curveto
-679.8 502.3 678.9 501 677 500.7 curveto
-675.3 500.5 674.1 500.5 672.6 501.3 curveto
-671.5 501.8 670.1 502.5 670.1 503.8 curveto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-679.6 494.4 moveto
-679.5 495.9 680.6 497.4 682.1 497.5 curveto
-683.6 497.6 685.1 496.5 685.2 495 curveto
-685.4 492.9 679.8 492.3 679.6 494.4 curveto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-vmrs
-0 sf
-newpath
-689 503.2 moveto
-690 504.4 691.8 503.4 693.4 503.2 curveto
-695 503 697.8 503.6 697.8 501.9 curveto
-697.8 500.3 695.6 500 694 500 curveto
-691.7 500 687.5 501.5 689 503.2 curveto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-761.5 483 moveto
-760.8 484.1 762.1 485.5 763.3 486.2 curveto
-764.5 486.9 765.8 486.6 767.1 486.2 curveto
-768.2 485.8 769.5 485.5 769.6 484.3 curveto
-769.8 482.6 766.8 483.9 765.2 483.7 curveto
-763.9 483.5 762.2 481.9 761.5 483 curveto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-709.2 419.4 moveto
-708.5 419 708.6 417.8 708.5 416.9 curveto
-708.3 415 708.9 413.6 709.2 411.8 curveto
-709.6 409.4 710.7 407.9 711.1 405.5 curveto
-711.4 403.7 711.4 402.3 711.7 400.5 curveto
-712.2 397.5 711.5 391.4 714.2 392.9 curveto
-715.2 393.4 715.9 394.4 716.1 395.5 curveto
-716.4 397.2 714.2 398.1 714.2 399.9 curveto
-714.2 400.8 714.1 402.1 714.8 402.4 curveto
-715.8 402.9 716.2 400.2 717.4 400.5 curveto
-718.8 400.9 717.9 403 717.4 404.3 curveto
-716.8 405.9 715.1 406 714.2 407.4 curveto
-713.1 409.1 712.7 410.5 712.3 412.5 curveto
-712 413.8 712.2 415.1 711.7 416.3 curveto
-711.2 417.6 710.4 420.2 709.2 419.4 curveto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-713.6 389.8 moveto
-712.4 389.1 712.8 387.4 712.9 386 curveto
-713.1 383.9 714.5 382.9 716.1 381.6 curveto
-717.1 380.8 717.8 379.7 719.2 379.7 curveto
-720.4 379.7 721 380.9 721.8 381.6 curveto
-723.2 382.9 726.1 384.4 724.9 386 curveto
-723.9 387.3 722.1 385.9 720.5 386 curveto
-719.4 386.1 718.5 386.2 717.4 386.6 curveto
-715.7 387.2 715.2 390.7 713.6 389.8 curveto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-715.5 377.8 moveto
-714 377.8 713.4 376.1 712.9 374.7 curveto
-712.4 373.2 712.9 372 712.9 370.3 curveto
-712.9 369.1 713.1 368.2 712.9 367.1 curveto
-712.6 365.9 712.2 364.5 711.1 364 curveto
-710.1 363.5 708.9 364.6 707.9 364 curveto
-707 363.4 707.2 362.2 706.6 361.4 curveto
-706 360.6 705 360 704.1 359.6 curveto
-702.8 359 701.6 359 700.3 358.3 curveto
-699 357.6 696.7 357.2 697.2 355.8 curveto
-697.5 354.9 698.7 354.5 699.7 354.5 curveto
-701.2 354.5 701.5 356.7 702.9 357 curveto
-703.7 357.2 704.7 357.4 705.4 357 curveto
-706.6 356.4 704.8 353.9 706 353.3 curveto
-706.7 352.9 707.8 352.9 708.5 353.3 curveto
-709.7 353.9 708.3 356 709.2 357 curveto
-710.3 358.2 712 357.4 713.6 357.7 curveto
-715 358 716.6 357.7 717.4 358.9 curveto
-718.3 360.3 716.7 361.6 716.7 363.3 curveto
-716.7 364.7 717.1 365.8 717.4 367.1 curveto
-717.7 368.3 718.6 369 718.6 370.3 curveto
-718.6 371.7 717.8 372.8 717.4 374 curveto
-716.9 375.4 717.1 377.8 715.5 377.8 curveto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-694.7 353.3 moveto
-695.4 353.8 696.3 354.1 697.2 353.9 curveto
-698.4 353.6 698.7 352.5 699.1 351.4 curveto
-699.8 349.4 700.7 346.2 698.5 345.7 curveto
-696.8 345.3 695.4 346.8 694.7 348.2 curveto
-693.8 349.8 693.2 352.2 694.7 353.3 curveto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-677 329.3 moveto
-675.3 329.1 676.5 326.6 676.4 324.9 curveto
-676.4 323.5 675.1 321.6 676.4 321.1 curveto
-677.8 320.6 678.4 323 678.9 324.3 curveto
-679.3 325.4 680 326.3 679.6 327.4 curveto
-679.2 328.5 678.2 329.4 677 329.3 curveto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-651.8 314.8 moveto
-650.5 315.3 649.1 314.2 648.7 312.9 curveto
-648.3 311.8 648.5 310.7 649.3 309.8 curveto
-650.2 308.8 652.3 308.2 653.1 309.2 curveto
-653.8 310.1 653.3 311.2 653.1 312.3 curveto
-652.9 313.2 652.7 314.5 651.8 314.8 curveto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-677.7 310.4 moveto
-676.5 309.7 678 307.9 677.7 306.6 curveto
-677.4 305.3 675.8 304.9 675.8 303.5 curveto
-675.8 302.1 676.9 301.3 677.7 300.3 curveto
-678.6 299.2 679.6 298.5 680.8 297.8 curveto
-682.3 296.9 683.6 296.5 685.2 295.9 curveto
-686.4 295.5 687.5 293.8 688.4 294.7 curveto
-689.4 295.7 687.4 296.8 686.5 297.8 curveto
-685.3 299.1 682.8 298.6 682.1 300.3 curveto
-681.5 301.8 682.6 303.1 682.7 304.7 curveto
-682.9 306.8 685.2 309.4 683.3 310.4 curveto
-682.3 310.9 681.4 310.4 680.2 310.4 curveto
-679.3 310.4 678.4 310.8 677.7 310.4 curveto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-671.4 282.7 moveto
-671 284.2 672.5 285.2 673.3 286.5 curveto
-673.8 287.4 674 289 675.1 289 curveto
-676.4 289 676.5 287.1 676.4 285.8 curveto
-676.3 283.6 672 280.6 671.4 282.7 curveto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-683.3 279.5 moveto
-682.6 280.6 684 282.2 685.2 282.7 curveto
-686.4 283.2 687.8 281.6 689 282.1 curveto
-690 282.5 689.7 284.4 690.9 284.6 curveto
-691.9 284.7 692.8 284 693.4 283.3 curveto
-694.4 282.1 695.2 280.1 694 278.9 curveto
-693.2 278.1 691.7 279.1 690.9 278.3 curveto
-689.7 277.1 693.1 274.5 691.5 273.9 curveto
-690.2 273.5 689.1 274.7 688.4 275.8 curveto
-688 276.5 687.9 277.5 687.7 278.3 curveto
-687.5 279.1 687.7 280.3 687.1 280.8 curveto
-686 281.8 684 278.3 683.3 279.5 curveto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-593.2 516.4 moveto
-592.6 517.5 594.2 518.4 594.5 519.6 curveto
-594.8 520.7 594.1 522.1 595.1 522.7 curveto
-596.2 523.3 597.2 522 598.3 521.5 curveto
-600.3 520.6 605 519.8 603.3 518.3 curveto
-602.4 517.5 601.3 518 600.2 517.7 curveto
-598.7 517.3 598 515.9 596.4 515.8 curveto
-595.2 515.7 593.8 515.4 593.2 516.4 curveto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-591.4 524.6 moveto
-590.7 525.7 588.9 523.7 587.6 524 curveto
-586.9 524.2 586.4 525 585.7 525.2 curveto
-584.2 525.8 582.7 526.1 581.3 525.2 curveto
-580.2 524.5 579.1 523.5 579.4 522.1 curveto
-579.8 520.2 582.6 522.5 584.4 522.1 curveto
-585.6 521.9 586.5 521.2 587.6 520.8 curveto
-589 520.2 590.2 517.8 591.4 518.9 curveto
-592.3 519.7 591.4 520.9 591.4 522.1 curveto
-591.4 523 591.8 523.9 591.4 524.6 curveto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-574.3 527.8 moveto
-574.7 529.2 576.2 529.8 577.5 530.3 curveto
-579 530.9 580.2 531.1 581.9 530.9 curveto
-583.5 530.7 585.7 530.6 585.7 529 curveto
-585.7 527.3 582.9 528 581.3 527.8 curveto
-578.7 527.4 573.5 525.2 574.3 527.8 curveto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-505 380.3 moveto
-505.7 379.2 506.6 378.5 506.9 377.2 curveto
-507.2 375.9 507 374.8 506.9 373.4 curveto
-506.8 372 506.1 371 506.3 369.6 curveto
-506.5 368.1 506.9 366.6 508.2 365.9 curveto
-509.4 365.3 510.8 366.4 512 365.9 curveto
-513.2 365.4 513.3 363.8 514.5 363.3 curveto
-516 362.6 517.6 362.3 518.9 363.3 curveto
-519.7 363.9 520.2 364.8 520.2 365.9 curveto
-520.2 367.7 517.4 367.9 517 369.6 curveto
-516.7 370.7 517.3 371.7 517 372.8 curveto
-516.7 373.9 515 374.1 515.1 375.3 curveto
-515.2 376.8 518.2 375.3 518.9 376.6 curveto
-519.7 378.2 518.8 381.3 517 381 curveto
-515.8 380.8 516.3 378.7 515.1 378.5 curveto
-513.3 378.2 514.5 381.7 513.2 382.9 curveto
-512.7 383.3 511.9 383.7 511.3 384.1 curveto
-510.6 384.6 509.8 385.1 509.5 386 curveto
-509 387.3 509 389.1 510.1 389.8 curveto
-511.1 390.5 512.1 389.4 513.2 389.8 curveto
-514.1 390.1 514.9 390.8 515.1 391.7 curveto
-515.5 393.3 514.1 394.8 512.6 395.5 curveto
-511.4 396 510.1 395.8 508.8 395.5 curveto
-507.2 395.1 506.2 394 505 392.9 curveto
-504.8 392.8 504.6 392.4 504.4 392.3 curveto
-503.6 391.6 501.9 390.4 501.9 390.4 curveto
-501.9 390.4 lineto
-500.6 386.6 lineto
-499.7 383.9 503.5 382.7 505 380.3 curveto
-closepath
-gsave
-[0 0 0 0.1]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-621 272.6 moveto
-624.7 268.2 lineto
-628.5 264.4 lineto
-631.7 258.8 lineto
-634.2 251.8 lineto
-638 247.4 lineto
-643.6 241.1 lineto
-646.8 244.9 lineto
-644.9 249.9 lineto
-641.1 255 lineto
-636.7 260 lineto
-632.9 263.2 lineto
-629.8 266.9 lineto
-626 270.1 lineto
-621 272.6 lineto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-655 255.6 moveto
-654.4 261.9 lineto
-658.8 263.8 lineto
-661.3 266.3 lineto
-665.7 270.1 lineto
-670.1 273.9 lineto
-673.3 276.4 lineto
-674.5 273.2 lineto
-677 271.4 lineto
-673.9 269.5 lineto
-673.9 265.1 lineto
-677 261.9 lineto
-674.5 259.4 lineto
-673.3 255.6 lineto
-672.6 251.8 lineto
-668.2 247.4 lineto
-665.7 249.9 lineto
-661.3 249.3 lineto
-657.5 250.6 lineto
-655 255.6 lineto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-692.2 263.8 moveto
-689 261.3 lineto
-685.2 262.5 lineto
-681.4 261.9 lineto
-678.9 258.1 lineto
-678.3 253.7 lineto
-676.4 250.6 lineto
-677.7 247.4 lineto
-677.7 241.7 lineto
-680.2 244.3 lineto
-680.8 248 lineto
-681.4 251.2 lineto
-683.3 248.7 lineto
-683.3 244.9 lineto
-685.9 246.8 lineto
-684 253.1 lineto
-687.1 255.6 lineto
-682.7 255.6 lineto
-682.7 258.8 lineto
-685.9 259.4 lineto
-689 258.8 lineto
-692.2 263.8 lineto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-697.2 263.8 moveto
-697.2 263.8 lineto
-696.6 260 lineto
-698.5 257.5 lineto
-700.3 259.4 lineto
-697.2 263.8 lineto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-697.8 249.3 moveto
-700.3 251.2 lineto
-704.1 249.9 lineto
-701 248.7 lineto
-697.8 249.3 lineto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-vmrs
-0 sf
-newpath
-694 235.4 moveto
-691.5 234.2 lineto
-687.7 232.3 lineto
-689.6 229.8 lineto
-693.4 232.9 lineto
-694 235.4 lineto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-646.2 240.5 moveto
-649.3 242.4 lineto
-653.7 241.1 lineto
-658.8 241.1 lineto
-661.9 238.6 lineto
-667 236.1 lineto
-663.2 235.4 lineto
-658.1 236.1 lineto
-654.4 237.3 lineto
-649.9 238.6 lineto
-646.2 240.5 lineto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-678.3 236.1 moveto
-681.4 236.7 lineto
-687.1 236.7 lineto
-684 234.8 lineto
-678.3 236.1 lineto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-680.8 230.4 moveto
-678.9 231.7 lineto
-680.8 232.9 lineto
-680.8 230.4 lineto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-673.9 236.7 moveto
-676.4 234.8 lineto
-672.6 234.2 lineto
-673.9 236.7 lineto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-704.8 258.8 moveto
-709.8 258.1 lineto
-714.2 256.9 lineto
-714.8 253.1 lineto
-716.7 251.2 lineto
-721.1 252.5 lineto
-723.7 254.3 lineto
-730 251.2 lineto
-738.1 248.7 lineto
-741.3 244.9 lineto
-745.1 241.7 lineto
-744.4 238.6 lineto
-747 235.4 lineto
-752 232.3 lineto
-752 231.7 lineto
-746.3 232.3 lineto
-747 231.7 lineto
-743.2 233.6 lineto
-741.3 236.7 lineto
-738.8 238.6 lineto
-736.3 236.7 lineto
-736.3 234.2 lineto
-732.5 235.4 lineto
-728.1 235.4 lineto
-725.5 237.3 lineto
-722.4 236.7 lineto
-723 240.5 lineto
-721.1 244.3 lineto
-717.4 247.4 lineto
-713.6 248 lineto
-709.8 248 lineto
-708.5 251.2 lineto
-709.8 253.7 lineto
-706 254.3 lineto
-704.8 258.8 lineto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-748.2 243.6 moveto
-747.6 243.6 lineto
-750.7 245.5 lineto
-753.3 245.5 lineto
-756.4 247.4 lineto
-757 244.3 lineto
-753.3 243.6 lineto
-748.2 243.6 lineto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-661.9 159.9 moveto
-666.3 157.3 lineto
-670.1 159.2 lineto
-674.5 160.5 lineto
-680.8 161.1 lineto
-684 164.3 lineto
-689 166.8 lineto
-695.3 168 lineto
-701 168 lineto
-704.8 164.9 lineto
-707.9 160.5 lineto
-710.4 163 lineto
-713.6 164.3 lineto
-714.2 159.9 lineto
-715.5 156.1 lineto
-718 151.7 lineto
-723 149.1 lineto
-728.1 149.8 lineto
-733.1 148.5 lineto
-735.6 150.4 lineto
-738.8 152.9 lineto
-741.9 154.2 lineto
-741.9 158 lineto
-743.8 161.7 lineto
-746.3 166.8 lineto
-750.1 170.6 lineto
-751.4 175.6 lineto
-752.6 181.9 lineto
-751.4 186.9 lineto
-752 190.7 lineto
-748.9 194.5 lineto
-746.3 198.3 lineto
-743.8 200.2 lineto
-741.9 204.6 lineto
-739.4 207.7 lineto
-738.8 212.8 lineto
-738.1 216.5 lineto
-736.9 219.7 lineto
-734.4 218.4 lineto
-733.7 222.2 lineto
-734.4 226.6 lineto
-731.8 228.5 lineto
-731.8 227.9 lineto
-730.6 222.8 lineto
-731.2 219.1 lineto
-731.2 215.3 lineto
-729.3 212.8 lineto
-726.2 210.2 lineto
-722.4 213.4 lineto
-718 215.9 lineto
-715.5 219.1 lineto
-716.7 222.2 lineto
-718 224.1 lineto
-714.2 225.4 lineto
-709.8 226 lineto
-704.1 224.7 lineto
-701.6 221 lineto
-699.7 217.8 lineto
-695.9 218.4 lineto
-693.4 221 lineto
-690.9 217.8 lineto
-688.4 214 lineto
-684 212.8 lineto
-682.1 209.6 lineto
-679.6 204.6 lineto
-675.1 202.7 lineto
-670.1 201.4 lineto
-666.3 198.9 lineto
-661.9 196.4 lineto
-660 192.6 lineto
-659.4 187.6 lineto
-661.3 183.2 lineto
-659.4 179.4 lineto
-660.7 175 lineto
-662.5 170.6 lineto
-660.7 164.9 lineto
-661.9 159.9 lineto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-735.6 141.6 moveto
-731.2 140.3 lineto
-728.7 139.7 lineto
-728.7 136.5 lineto
-730.6 132.8 lineto
-733.1 135.3 lineto
-735.6 138.4 lineto
-735.6 141.6 lineto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-793 146 moveto
-790.4 141 lineto
-787.3 137.2 lineto
-782.9 134.7 lineto
-779.1 131.5 lineto
-775.9 127.7 lineto
-779.7 126.5 lineto
-782.2 125.2 lineto
-785.4 129.6 lineto
-788.5 134.7 lineto
-792.3 136.5 lineto
-794.2 141 lineto
-796.1 144.1 lineto
-793 146 lineto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-797.4 166.8 moveto
-798 162.4 lineto
-799.9 159.9 lineto
-799.9 156.1 lineto
-796.7 152.3 lineto
-798.6 149.8 lineto
-799.9 147.9 lineto
-798.6 144.1 lineto
-801.8 144.1 lineto
-803.7 149.8 lineto
-806.8 152.9 lineto
-809.3 154.8 lineto
-806.8 156.7 lineto
-804.3 155.4 lineto
-803 158.6 lineto
-801.8 163.6 lineto
-797.4 166.8 lineto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-391.6 406 moveto
-388.1 404.5 lineto
-385.6 404.5 lineto
-381.6 403 lineto
-383.6 407 lineto
-386.6 408.5 lineto
-386.6 410 lineto
-383.6 411 lineto
-385.6 414.5 lineto
-385.6 416 lineto
-388.6 416.5 lineto
-387.1 421 lineto
-384.1 422 lineto
-384.1 424.5 lineto
-385.1 428 lineto
-386.6 430.5 lineto
-388.6 427.5 lineto
-389.1 423 lineto
-391.1 420 lineto
-391.6 416 lineto
-393.6 412.5 lineto
-394.1 408.5 lineto
-391.6 406 lineto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-474.1 358 moveto
-470.6 357 lineto
-469.6 355 lineto
-472.6 355.5 lineto
-474.1 358 lineto
-closepath
-gsave
-[0 0 0 0]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-530.1 390.5 moveto
-527.7 389.6 525.6 386.9 526.6 384.5 curveto
-527.2 383.1 528.6 382.4 530.1 382 curveto
-531.9 381.5 534.4 380.8 535.1 382.5 curveto
-535.6 383.8 534.1 384.6 534.1 386 curveto
-534.1 387.6 536.2 388.6 535.6 390 curveto
-534.8 391.9 532 391.2 530.1 390.5 curveto
-closepath
-gsave
-[0 0 0 0.1]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-222.1 390 moveto
-220.9 390.7 219.9 388.9 218.6 388.5 curveto
-217.3 388.1 216.3 388 215.1 387.5 curveto
-213.7 386.9 211.4 386.6 211.6 385 curveto
-211.8 383.3 214.5 384.3 216.1 384.5 curveto
-217.4 384.7 218.5 385.2 219.6 386 curveto
-221 387.1 223.6 389.1 222.1 390 curveto
-closepath
-gsave
-[0 0 0 0.1]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-207.1 389.5 moveto
-207.6 390.8 206.7 391.8 206.1 393 curveto
-205.4 394.5 204.6 396 203.1 396.5 curveto
-201.9 396.9 200.8 396.8 199.6 396.5 curveto
-198.3 396.2 197.6 395.4 196.6 394.5 curveto
-195.4 393.4 194.6 392.2 194.1 390.5 curveto
-193.7 389.1 192.4 387.3 193.6 386.5 curveto
-194.7 385.8 196.3 386.4 197.1 387.5 curveto
-197.7 388.3 197.3 389.5 197.6 390.5 curveto
-198 391.9 198.3 393.4 199.6 394 curveto
-201.1 394.7 202.7 394.2 204.1 393.5 curveto
-205.7 392.7 206.4 387.8 207.1 389.5 curveto
-closepath
-gsave
-[0 0 0 0.1]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-0 sf
-newpath
-198.6 399.5 moveto
-196.9 399 196.2 401.1 194.6 401.5 curveto
-192.6 402.1 191.1 402.3 189.1 402 curveto
-187.6 401.8 184.7 402.1 185.1 400.5 curveto
-185.3 399.4 186.5 399.1 187.6 399 curveto
-189.2 398.8 190 400.7 191.6 400.5 curveto
-192.4 400.4 193 399.9 193.6 399.5 curveto
-193.9 399.3 194.2 398.7 194.6 398.5 curveto
-195.8 397.8 200.1 400 198.6 399.5 curveto
-closepath
-gsave
-[0 0 0 0.1]setcolor {fill}fp
-grestore
-gsave
-0.4 setlinewidth 0 setlinecap 0 setlinejoin 3.863693 setmiterlimit [0 0 0 1]setcolor {stroke}fp
-grestore
-vmr
-end % FreeHandDict
-%%EndDocument: _
diff --git a/Master/texmf-dist/doc/latex3/xor/xo-README.txt b/Master/texmf-dist/doc/latex3/xor/xo-README.txt deleted file mode 100644 index 26135c36ebd..00000000000 --- a/Master/texmf-dist/doc/latex3/xor/xo-README.txt +++ /dev/null @@ -1,219 +0,0 @@ -% -% $Id: xo-README.txt,v 1.1 2000/08/11 07:04:34 latex3 Exp $ -% -% - -INTRODUCTION -============ - -This directory contains the first prototype implementation of the new -output routine (OR) for LaTeX2e*. - -It is not a finished product, thus it is very likely that using it -will result in errors or problems. - -Especially error recovery is more or less nil, eg, there are a lot of -places which simply say \ErrorFooBar (which is undefined). So if this -happens to you, you might have to search in the code to see why this -is supposed to be a user error. - -Nevertheless, I hope that playing around with it will give you some -idea about how the finished OR might look like and what it will be -able to do. - -Suggestions, comments, ... are welcome, especially on the already -available functionality or on missing functionality. - -enjoy -Frank - -August 2000 - - - - - -INSTALLATION -============ - -This set of packages builds on the basic packages - - templates.sty - ldcsetup.sty - xparse.sty - -so you need to pick those up from the project web site as well. - -To unpack the distribution use one of the three distributed .ins -files: - - xo.ins % unpacks without any tracing code whatsoever - xoprogress.ins % unpacks with progress information code (recommended) - xotrace.ins % unpacks with tracing code (for those who like to see - % what the algorithm really does) - - -DOCUMENTATION -============= - -The sequence - - pdflatex xoutput.drv - makeindex -s gind.ist xoutput - pdflatex xoutput.drv - -will produce a pdf file of roughly 150 pages with the (somewhat) -documented code --- there is still a lot to do there. - -To produce some overview article on the OR run - - latex xo-pfloat - -three times. - -There will be a question asked which you can answer with either - - 0 % run with normal latex - 1 % run using the new OR - - -There is also a sample file for you to play with: - - xo-sample.tex - -but is is more or less a template file. - -There is also the file I used for the examples for my talk at Oxford: - - oxford-trial.tex - -This file asks for a "trial" number: - - 0-8 shows how the algorithm adds float after float to the page - 9 same as 8 but uses grid layout - 10 manual float control using an .fpc file - - - -IMPLEMENTED FEATURES -==================== - -Plenty I hope, for important ones see xo-pfloat and of course the -documented code :-) - - -MISSING FEATURES -================ - -Plenty I fear. Here are a few important ones. - - - Interface for specifying spanning floats is missing - - - Interface for specifying which areas are allowed for a float - - - Interface for specifying the look and setup of a float page - - - Most of the page layout things like folio, running headers, etc - - - More float placement control (what is wanted, needed) - - - Balancing of columns, what are the appropriate concepts with - respect to floats? - - - page style concepts: how are page styles changed, how are they - specified? - - - -KNOWN BUGS -========== - -Plenty I fear. Here are a few important ones. - - - There are many footnotes in the code that say CHECK! or FIX! or - ... they are all places where further work is most likely - necessary, or known bugs are already documented. - - - Because of the unfinished work in xo-final/xo-new there are two - hardwired lists \bot@areas and \top@areas. Top areas are mounted - first on the page, thus entries for list of figures etc, will be - sort of strangely ordered :-) - - - If a special penalty such as the flush point penalty ends up at the - top of a column any glue after it isn't properly removed. This - needs fixing and while the way to proceed is clear it is not yet - implemented. - - - If we have to relax the float placement conditions due to a flush - point the current code reverts to tight conditions the moment the - last affected float has been placed (the idea was to ensure that we - don't place too many floats on such a page since the relaxed - conditions do not have a restriction there). But the problem with - that approach is that in fact in most cases this will result in no - further floats being allowed at all since typically the already - placed floats make any further trials fail now. So this needs some - change, eg only to check columns after the flush point with the - tight conditions or ... for the moment it has only be partially - resolved by enabling basically only the restrictions on number of - floats per column or space available in columns (which are only - checked for areas under trial) - - - If the design allows strange placements in various areas, then ".lot" - files etc will as a result always be ordered strangely. There is - not much you can do about that on this stage (even if the above - problem is fixed) other than ensuring that at some later stage such - files get sorted automatically. - - - Float pages are at best strange. what are good concepts to - construct them in multi-column layouts? Are there any? - - - Size of a here float is not properly calculated when it get - initialized - - - Grid layout requires that \topskip=\baselineskip (or so it seems - --- it shouldn't but there is somewhere a bug lurking) - - - Definition of grid layout point commands need one more indirection - to allow turning them off for a single page setup. Right now, the - moment they are disabled they are gone. - - - Initialization of the various data structures is not yet properly - done --- this needs further sorting out. As a result it is likely - that some setups run into undefined variables. - - - If \readfloatplacements is used (ie float are manually placed) then - the positioning of the float areas is done incorrectly because I - forgot to add the necessary code to that part of the processing - (just found out while finishing the examples for the Oxford talk) - - -FOUND A BUG? -============ - -If you think you have found a real bug (not just something that is -simply not yet implemented) I would be glad if you report it using - - latex latexbug - -from the standard LaTeX distribution and select option - - 7) expl3: Experimental packages for TeX programmers. (expl3) - -or alternatively by discussing it on LATEX-L (see below) - - - -DISCUSSION OF FEATURES (MISSING OR ELSE) -======================================== - -Discussion of features, either those implemented or those missing -should be directed to the discussion list - - LATEX-L - -so that others can participate in the discussion. You can subscribe to -this list by sending a mail with the line - - SUBSCRIBE LATEX-L Your Name - -to listserv@URZ.UNI-HEIDELBERG.DE diff --git a/Master/texmf-dist/doc/latex3/xor/xo-pfloat.tex b/Master/texmf-dist/doc/latex3/xor/xo-pfloat.tex deleted file mode 100644 index 2835b0ed017..00000000000 --- a/Master/texmf-dist/doc/latex3/xor/xo-pfloat.tex +++ /dev/null @@ -1,1623 +0,0 @@ -% Copyright 2000 Frank Mittelbach -% All rights reserved -% -% -% NOTE: the text contains reference to the fact that it is typeset -% using the new OR! -% -\def\rcsdata$#1: #2,v #3${ - \def\rcsdata{#2 #3}} -\rcsdata$Id: xo-pfloat.tex,v 1.19 2000/08/11 07:08:04 latex3 Exp $ - -% next lines needs pdflatex 0.14f+ !!!! -\ifx\rpcode\undefinedcsname -\else - \input protcode.tex - \pdfprotrudechars=2 -% \pdfoutput=0 -\fi - -\tolerance=6000 -\emergencystretch=1cm - -%\tracingonline=1 -%\tracingpages=1 -%\showoutput - -\newcount\ProcessControl - -% 0 means std LaTeX, 1 new OR, 2 new OR + galley2 (not functional) - -\ProcessControl=1 - -\typein[\ProcessControl] - {^^J^^J0 means std LaTeX, 1 new OR -%, 2 new OR + galley2 (needs *new* LaTeX) - } - - -\newcommand\ORspecial[1]{\ifnum\ProcessControl>0\relax#1\fi} - - - -\ifnum\ProcessControl=0 - \documentclass[twocolumn]{article} -% \documentclass[preprint]{ltugproc} - \renewcommand\floatpagefraction{0.9} - \setlength\belowcaptionskip{10pt} -\else - \documentclass{article} -\fi - -\parskip=0pt -\widowpenalty=5000 - - -\usepackage{array,url,varioref} -\usepackage{times} - -\ifcase\ProcessControl -% \usepackage{hyperref} - \usepackage{calc} -\or -% \usepackage{trace} - \usepackage{xoutput} - \usepackage{xo-grid} - \ShowGridfalse -\else - \usepackage{trace, - galley2,xcontents,xlists-samples, - xoutput} - \usepackage{xo-grid} - \ShowGridfalse - - \let\thetable\thefigure % needed to be able to use old xcontents.sty -\fi - - - - -\ifnum\ProcessControl=2 - -\makeatletter -\def\l@v@lalgorithms{0} -\makeatother - -\DeclareInstance{contentsobject}{section}{std}{ - pre-v-action = \DelayEvaluation{\addpenalty{10000} - \addvspace{1em plus 1pt}}, - right-margin-sep = 15pt, - title-format = \textbf{#1}, - number-format = \textbf{#1\hfil}, - pnum-format = \textbf{\hfil#1}, - leaders-action = ~, - number-width = \DelayEvaluation{1.5em}} - -\DeclareInstance{contentsobject}{subsection}{std}{ - object-indent = \DelayEvaluation{1.5em}, - number-width = \DelayEvaluation{2.3em}} - -\DeclareInstance{contentsobject}{subsubsection}{std}{ - object-indent = \DelayEvaluation{3.8em}, - number-width = \DelayEvaluation{3.2em}} - - -\DeclareInstance{contentsobject}{figure}{std}{ - pre-v-action = , - right-margin-sep = 20pt, - title-format = \textit{#1}, - number-format = \textrm{\hfil#1}, - pnum-format = \textbf{\hfil#1}, - leaders-action = ~, - number-width = \DelayEvaluation{1.5em}} - - -\DeclareInstance{contentsobject}{table}{std}{ - pre-v-action = , - right-margin-sep = 15pt, - title-format = \textrm{#1}, - number-format = \textbf{#1\hfil}, - pnum-format = \textbf{\hfil#1}, - leaders-action = ~, - number-width = \DelayEvaluation{1.5em}} - -\fi - - - -\ifnum\ProcessControl> 0 - - -\DeclareFloatSequenceClass{floats} % this will vanish again - -\DeclareFloatType{figure} - { - sequence-class-id = floats, - toc-extension = lof, - caption-text = \figurename, - numbered-boolean = true, - numbered-id = figure, - numbered-within-id = , - numbered-action = \arabic{figure}, - body-decls = - } - - -\DeclareFloatType{table} - { - sequence-class-id = floats, - toc-extension = lot, - caption-text = \tablename, - numbered-boolean = true, - numbered-id = figure, - body-decls = \footnotesize, - } - -\DeclareFloatArea {t12} - { - class-close-list = , - all-close-list = , - max-float-num = 1, - } - - -\DeclareFloatArea {b12} - { - class-close-list = {t12,t11,b11}, - all-close-list = , - max-float-num = 1, - } - - -\DeclareFloatArea {t11} - { - class-close-list = , - all-close-list = {b11}, - max-float-num = 1, - } - - -\DeclareFloatArea {b11} - { - class-close-list = {t12,t11}, - all-close-list = , - max-float-num = 1, - } - - -\DeclareFloatArea {t21} - { - class-close-list = {t12,t11,b11}, - all-close-list = , - max-float-num = 1, - } - - -\DeclareFloatArea {b21} - { - class-close-list = {t12,t11,b11}, - all-close-list = , - max-float-num = 1, - } - - -\topskip=12pt - -\DeclareInstance{pagesetup2}{twocol}{std}{ - column-num = 2, - column-width = 229.5pt, % this strange value is what LaTeX2e - % uses for two column article - column-height = \DelayEvaluation 50\baselineskip + \topskip, - column-sep = 20pt, -% - float-callout-constraint = after, - float-callout-span-constraint = flexible, - bottom-float-footnote-constraint=forbidden, -% bottom-float-footnote-constraint=none, - max-float-num =2, -% - area-list = {t12,t11,b11,b12,t21}, - area-list = {b12,b11,b21}, -% -% footnote-setup = \UseTemplate{footnotesetup}{ftnright}{}, -% footnote-setup = \UseTemplate{footnotesetup}{margin}{}, - footnote-setup = \UseTemplate{footnotesetup}{std}{}, -% - float-text-sep = 36pt minus 8pt, - float-area-sep = 20pt, - float-float-sep = 20pt, -% - grid-point-sep = 12pt, - } - -\fi - - -\newcommand\meta[1]{\mbox{$\langle$\textit{#1}$\rangle$}} -\usepackage{shortvrb} -\MakeShortVerb\| - -\title{Formatting documents with floats\\ - A new algorithm for \LaTeXe$^*$} -\author{\copyright{} Frank Mittelbach} -\date{\rcsdata} - - - -\begin{document} - -\ORspecial{\UseInstance{pagesetup2}{twocol}} - - -\maketitle - -\tableofcontents - -\ORspecial\vfill - -\begin{abstract} -This paper describes an approach to placement of floats in -multicolumn documents. - -The current version of \LaTeX{} was originally written for -single-column documents and extended to support two-column documents by -essentially building each column independently from the other. As a -result the current system shows severe limitations in two column mode, -such as the fact that spanning floats are always deferred to at least the -next page or that numbering between column floats and spanning floats -can get out of sequence. - -The new algorithm is intended to overcome these limitations and at the -same time extend the supported class of document layouts to multiple -columns with floats spanning an arbitrary number of columns. -\end{abstract} - -%\ORspecial\vfill -\ORspecial\newpage - -\section{Introduction} - -One problem with formatting documents containing floats is the number -of potential formatting solutions that need to be checked out. The -number of trials grows combinatorially in the number of floats and -areas which can receive them. If we have $n$ floats waiting to be -placed and $m$ areas in which we can place them on the current page -being built (not counting the ``deferred area'') then the number of -different placements is given by -\begin{equation} - \#\mbox{trials} = - { n+m \atopwithdelims() m} = - \frac{(n+m)!}{n! \, m!} - \label{eq:binom} -\end{equation} -assuming that the order of floats has to be preserved, i.e., if the -call-out of float $f_i$ is before the call-out of $f_j$ in the text -stream then the float $f_i$ will be placed in earlier than float $f_j$ -where ``earlier'' is a defined relation of float areas. - - -For example, if we have 8 floats waiting to be distributed among 12 -areas (which corresponds to a three column page with float areas at the -top and bottom allowing for partial spans) then we have to check -125970 possible distributions; if two additional floats appear we end -up with 646646 trials. - -Even though a large number of these distributions would be -unacceptable and discardable straight away, after some initial test, -the resulting running time of the algorithm would clearly be beyond -any acceptable speed. (Assuming we could do 1000 trials per second, -which is ridiculous high since many of them would require -trial-typesetting the whole page, then the case of 646646 trials would -still take roughly 10 minutes to form a decision.) - - Thus it is important to find algorithms with -complexity that is at worst linear in both the number of floats on the -trial list and the number of possible float areas, even if this means -that in a few cases a relatively good layout will not be found. -It is even better if they have minimal redundancy. - - -Note that assessing the actual running time of \TeX{} code is not -straightforward since some activities are very much faster than -others. For example, performing a test by using a reasonable number -of macro expansions and register assignments may be very much slower -than running through a long typeset list and then doing a simple test. - - -The algorithm we have implemented fulfills the requirement of being -(essentially) linear in the number of floats and the number of float -areas. - - -\section{The document source model} - -The document source is a single stream of continuous text containing -call-outs to floating objects. (At the moment the call-outs are marked -by placing the objects into the stream but it would be possible to -provide them as separate objects.) -Floating objects (as of today) come in three incarnations: -\begin{itemize} -\item Objects where the call-out and the placement requires a strict -spatial relationship, e.g., same line in the margin. An example would -be marginal notes as implemented by |\marginpar| in \LaTeXe. -\item Objects where the call-out and the placement are required to fall -onto the same column/\allowbreak page/\allowbreak spread, e.g., -footnotes. -\item Objects where there is a defined relation between call-out and -object placement, e.g., ``not in an earlier column'', or ``on the same -page or later'', etc. These are the traditional floats. -\end{itemize} -Float objects in the last group are typed where the type is defined by -the logical content of the object, e.g., ``figure'', ``table'', and so on. - - -The document formatting is achieved using a minimal but customizable -lookahead (typically the considered galley material is the equivalent -of one page/\allowbreak spread of textual material ignoring the -additional size taken up by embedded float objects). - -While making up pages the main ``quality'' guidance for the algorithm -is to try to place each float as early as possible without violating -defined constraints. - - -\ORspecial\ShowGridtrue - - -\section{The document layout model} - -\subsection{Page layout grid} - -The algorithm supports the specification of a page grid on which it -will align text columns and other elements. This will allow (if -suitable parameters for various elements are chosen) to have text -lines of different columns all lying on grid points.\footnote{On the -current page lines are drawn to highlight the grid. Note that -headings, lists, and other ``display'' objects are not aligned.} - -\subsection{Columns} - -The page layouts which are supported by the new algorithm support -an arbitrary number of text columns of equal width. - -The number of columns per page as well as their width can be changed -at forced page breaks such as the start of chapters. - -\subsection{Balanced columns} - -Balancing columns (as done by the \texttt{multicol} package) is planned -but not implemented. The major problem in that area is the handling of -column floats during the balancing process. - - -\subsection{Float areas}\label{overlap} - -Float objects are distributed into float areas which are -rectangular in shape. Float areas span one or more text columns, their -horizontal size is therefore given by the following formula (where -$c$ is the number of columns spanned): -\[ - \meta{area-width} = c \times - \bigl( \meta{col-width} + \meta{col-sep}\bigr) - - \meta{col-sep} -\] -The naming conventions for float areas is as follows: -\[ -\meta{identifier}\meta{start-column}\meta{span-count}. -\] -The \meta{identifier} is a single letter denoting the type of area, -e.g., |t| for top, |b| for bottom. The \meta{span-count} is a single -digit denoting the number of columns to span. The -\meta{start-column} is a single digit\footnote{With a bit of care in -the code this could be extended to allow more than one digit.} -denoting the start column of the area. Thus |t23| is a top area -starting at column two and spanning three columns, i.e., two, three -and four. -A restriction due to the naming scheme is that currently no more than -9 columns are possible.\footnote{The scheme is different from the -original one used, where \texttt{t23} would have denoted an area -starting at column two and spanning until column three.} - -Only a subset of the float areas is allowed to be populated on a -page. In essence the new algorithm does not support placements -that result in ``splitting'' the text of a column due to a float (other -than column `here' floats).\footnote{Perhaps this restriction will be -lifted one day.} This means that population of some float areas -must be prevented, namely those satisfying these conditions -when $pcs$ (where $p=\textrm{pos}$, -$c=\textrm{column}$, $s=\textrm{span}$) has just been populated: -\[ - pij \textrm{ with } i < c \leq i+j < c+s -\] -or -\[ - pij \textrm{ with } i \leq c+s < i+j \leq - \mbox{\meta{number-of-columns}} -\] -The first formula describes the areas which partly overlap from the -left, the second formula describes those that partly overlap from -the right. Areas which are sub- or super-areas, e.g., \texttt{t13} -and \texttt{t22} do not affect each other. The above restriction is -necessary to prevent situations like the one shown in -figure~\vref{fig:overlap} -% -\begin{figure} -\footnotesize -\caption{Overlapping float areas}\label{fig:overlap} -\begin{minipage}{.6\columnwidth} -\begin{verbatim} - aaaaaaaaaaa 444 - aaaaaaaaaaa 444 - aaaaaaaaaaa 444 - 111 222 - 111 222 bbbbbbb - 111 222 bbbbbbb - 111 222 bbbbbbb - 111 222 - 111 222 333 444 - 111 222 333 444 - 111 222 333 444 -\end{verbatim} -\end{minipage} -\end{figure} -% -i.e., where the float area \texttt{t32} (represented as b's) would -result in splitting the fourth column into two independent text areas. - -The possibilities, as well as the restrictions, are equal for both top -and bottom areas. This means that the new scheme in particular -supports spanning bottom areas. - -\ORspecial\ShowGridfalse - -\subsection{Float pages and columns} - -Float pages, i.e., pages consisting only of floats, will be supported -as well as float columns. - - -\subsection{Float types} - -The type of float influences the formatting, e.g., where the caption -is placed in relation to the float body, how it is formatted, what -kind of fixed strings are added, etc. It also restricts the placement -algorithm in respect to which float areas can be populated as -explained below. - - -\subsection{Margins} - -The marginal areas can receive marginal notes which are aligned with -the corresponding text line. In documents with more than two columns -marginal notes are currently not supported though one could envision -allowing them even there. If marginals have to compete for space the -later marginal will be moved downwards if there is enough space on the -page, otherwise the line containing the marginal will be moved to the -next column/\allowbreak page.\footnote{This is not yet implemented --- -right now they overprint each other.} - -An alternative usage of the margin is to place footnotes into it. A -prototype version of this is provided already, see -section~\vref{footnotes}. - -Another potential use of the margin areas is to use them (or parts -thereof) as float areas in their own right. The problem with this -would be that these float areas would have a horizontal width which is -different from the column width, thus allowing only a limited class of -floats to appear therein. - -Another potential extension would be to allow float areas that border -on a margin to use the marginal space as part of the float area, -thereby allowing the filling of such an area with floats which are -wider than the nominal float area. A special case of this, the -placement of the caption in the margin beside the float body, is -already provided by choosing a suitable caption formatting instance. - - - - -\subsection{Footnotes}\label{footnotes} - -Footnotes can be regarded as a special type of floats. They are objects -which are associated with lines of text (their call-out) but in -contrast to normal floats such as ``figures'' or ``tables'' their placement -constraints are stronger, e.g., they typically have to appear at the -bottom of the column which contains their call-outs, or at least they -have to appear on the same page as their call-outs. - -In its current version, the model supports footnotes beneath the -call-out column (normal behavior); all footnotes in the last column -(as with the \texttt{ftnright} package for two-column mode); all -footnotes in the outer (or inner) margin. - -Without an extension to the page makeup algorithm (but instead with a -suitable redefinition of the footnote commands) they could be processed -as marginal notes or alternatively as ``end-notes''. - - -\subsection{Headers and footers} - -The header and footer areas may use data received from individual -columns. An extended version of \TeX's mark mechanism is made -available which allows the definition of arbitrarily many independent -classes of marks. Within each mark class information about the top -mark (i.e., the mark active at the top of the column) the first mark -and the last mark is made available for retrieval. - -This allows the production of correct running headers and footers for -various types of applications such as dictionaries, manuals, etc. - - - - -\section{The processing model} - -\subsection{Float placement concepts}\label{sec:float-place} - -To build a page(-spread) the algorithm first assembles enough textual -material to be able to fill the page without placing any floats. -During this process all floats that have their call-outs within the -assembled galley are collected. They form, together with unplaced -floats from previous pages, an ordered trial list of floats. - -The allowed float areas on the page under construction are totally -ordered as well. - -The algorithm proceeds by taking the first float from the trial list -and trying to place it into the first float area from the area -list. It then checks if all constraints (see below) are met and if not -the algorithm -will try to place the float into the next area until either all -constraints are met or the areas in the float area list are exhausted. -A trial that does not fail means that -this distribution of floats becomes the best solution so far and all -further trials will be based on adding to this solution (no -backtracking). If the algorithm fails to place the float into any -area it means that the float will be deferred to a later page. - -As floats are added to areas, the constraints for further trials -are changed. There are several reasons for this: -on one hand, the call-out positions of -various floats move -since the float will occupy space on the page; on the other hand, -placing a float in some area might result in disallowing the placement -of other floats in the same or in other areas. - - -\subsection{Float pages and columns} - -At the moment there is only rudimentary support for float pages -available: at the start of each page the algorithm will try to form a -float page out of all floats that have been deferred from previous -pages. However there is no layout control available to define the -conditions under which such a trial will succeed. - - -\subsection{Float storage} - -Float bodies are typeset into boxes at the point of `call-out', as -with the \texttt{figure} and \texttt{table} environments in the standard -\LaTeX; it may also be possible to specify at the call-out point a -logical pointer to a float whose typesetting is specified elsewhere -(e.g., an external file). - -However, text sub-elements such as the caption, etc., (e.g., from -|\caption|) are not typeset at this stage but are stored as token -lists; this allows for trying different possible layout specifications, -e.g., for its measure, during the float-positioning trials. At present -this is confined to at most a single caption element per float. - -\subsection{Caption processing} - -When a float is placed into an area the caption is trial formatted and -mounted onto the float body. This process can take into account -various information about the float positioning trial, such as the -area to format it into, the fact that it formats onto a verso or recto -page, etc. It might try several possibilities before making a decision, -e.g., if one formatting of the float results in violating some -constraint(s) it might try a different formatting at this point. - - - -\subsection{Flushing floats} - -It is possible to mark points in the source document as boundaries beyond -which floats whose call-outs are prior to the boundary cannot pass. In -other words a ``flush point'' directs the algorithm to place all -affected floats into areas which are ``before'' the flush point. - -If due to other constraints the float could not be placed in such an -area the algorithm first retries all potential areas using a less -rigid set of constraints (for example, restrictions on the number of -allowed floats per area are dropped) and if this still doesn't enable -the algorithm to place the float properly it will as a last resort -move the flush point to a later column, which means breaking the -column text before the flush point. - -Flushing of floats can be done either for all floats or on a -per float type basis, e.g., it is possible to flush only floats of -type ``figure''. - -A flush point can be given an additional attribute which controls the -``fuzziness'' used by the algorithm. By default the flush point -algorithm uses |strict| flushing as described above. The attribute -|column| modifies the algorithms behaviour by enabling a float to move -past the flush point as long as it will be placed on the same -column. Similarily the attribute values |page| and |spread| will -enforce that the float will not be deferred further than the current -page or the current spread. This way it can be guaranteed that a float -is always visible from its call-out. - - -\subsection{Float sequence classes} - -Float sequence classes are collections of float types; each float type -belongs to exactly one float sequence class. Within each sequence -class the call-out order in the document is always preserved by the -float placement algorithm, e.g., if $c_1,c_2,\ldots,c_n$ are the -call-outs of all floats of a float sequence class then the -corrsponding floats will be placed such that $f_i$ will be placed -before $f_j$ whenever $i<j$. Thus by putting all float types into a -single float sequence class all floats are placed in the order of -their call-outs. As the other extreme, if each float type has its own -sequence class\footnote{This is the \LaTeXe{} default.} then floats -from one type might move before floats of other types even though the -corresponding call-outs are in a different order. - - - -\subsection{Float and call-out relations} \label{fl-callout-relations} - -The algorithm also keeps track of the relation between an individual -float and its call-out. This allows one to define constraints which -guide the algorithm during the float placement phase. It is always -permissible to place a float ``after'' its call-out, e.g., in a later -column/\allowbreak page. At the moment the following constraints can -be specified: -\begin{description} -\item[none] which means that the relation between call-out and float -placement is not relevant for placing floats. -\item[page] which means that the float can be placed anywhere on the -page with the call-out (it is visible from the call-out). -\item[column] which means that the float can be placed before the -call-out as long as it is placed in the same column. -\item[after] which means that the float has to be placed strictly -after the call-out. -\end{description} -When extending the algorithm to directly support spreads the -above list is going to be extended by an option that allows floats to -move backwards on the whole spread. - - - - -\subsection{Spanning float and call-out relations} \label{fl-span-relation} - -For floats that span two or more columns there are several -possibilities to interpret the spatial relationship between call-out -and float areas. For example, if a float, whose call-out is in the -second column, has been placed into area |b12|, is this float -``before'' or ``after'' its call-out? The answer to this question -depends on whether we consider the float being placed into the first -or the second column, both of which are valid interpretations. - -At the moment the following behaviour can be specified: -\begin{description} -\item[strict] which means that the leftmost column spanned - by the float is being regarded as the column in which the float was placed. -\item[flexible] which means that the rightmost column spanned - by the float is being regarded as the column in which the float was placed. -\end{description} -These settings are only relevant if the main float/call-out relations -are set to |column| or |after|. - - -\subsection{Float and footnote relations} - -It is possible to direct the algorithm to check on each column if -there are footnotes, and if so to prevent it from placing floats in -the bottom -area. In theory it might be possible that a forbidden constellation -might resolve itself once the algorithm has added further floats, -e.g., it could be the case that by adding additional floats the -offending footnote gets moved to a different column. However, checking -for this would mean potentially large backtracking so the algorithm -uses a conservative approach and simply considers a trial as failed if -footnotes and bottom areas collide. - -It is planned to allow a designer the choice of specifying where the -footnotes should be placed in relation to any bottom floats (if the -combination is allowed). Right now this is not implemented and -column footnotes will always appear below the text column, i.e., above -any bottom floats. - - - - -\subsection{Area statuses} - -For each area the algorithm keeps track about whether or not it is -closed for individual float types, e.g., is not accepting any more -floats of type ``figure'' or closed for all types. The status of an -area can change due to floats being placed into other areas (this -might, for example, close earlier areas, or areas that overlap) or it -can change due to the fact that the area became too full in some way -(e.g., a size constraint or a number of floats constraint). - -Some of these constraints can be ``relaxed'' in certain situations, -e.g., if the algorithm is directed to flush out remaining floats prior -to a certain point in the galley it will drop constraints related to -number of floats per area or size restrictions. However, if an area -was closed due to a different float being placed into some other area, -this area will stay closed in all circumstances to ensure proper -sequential placement of floats and to ensure that overlapping areas -that are forbidden as explained in section~\vref{overlap} will not -receive floats at the same time. - - - - -\subsection{Area constraints} - -The algorithm offers several possibilities for the designer to -specify how and under what circumstances a float is allowed to be -added to a certain area on the page. - -As explained above all areas on a page are tried in a specific -order. This order can be specified and changed for specific parts of -the document. Areas that are closed for the current type will be -bypassed as well as areas which do not span the right number of -columns to fit the horizontal size of the float. If these initial -tests succeed the float may still fail to be placed into a certain -area if it doesn't fulfill the following set of constraints: -\begin{itemize} -\item There is an upper limit on the total number of floats that can -be placed on an individual page. -\item Each area has an upper limit of floats that can go into it. -\item After placing the float the remaining space in the text column -must be larger than a specified value. -\end{itemize} -All such constraints are customizable. - -Additional constraints will probably be implemented -once there has been some experience of what controls are actually -needed to allow the specification for a reasonable number of layouts. - -For example, \LaTeXe{} allows the designer to restrict the maximum size of -an area, but should one provide this or should there be a constraint -on the size of all stacked areas? Or should there be both? - - - -\subsection{To ``Here'' or not to ``Here''} - -\LaTeXe{} allows the user to control the placement of an individual float by -specifying one or more areas into which the float would be -allowed to move using single letters. As a special notation an -\texttt{h} would denote a so-called ``here'' float. Its advertised -semantics is to try placing the float ``at the position in the text -where the environment appears'' \cite[p.~197]{A-W:LLa94}. -If this is not feasible \LaTeXe{} would try the remaining -allowed possibilities on the next page, thus a float with a -\texttt{ht} specification would either appear within the text or -at the top of the next or a later -page.\footnote{\clubpenalty=100 In two-column mode -this can in fact result in a placement on the top of the second column -even though the call-out position finally falls into the middle of -that column.} - -In many cases people however prefer a ``here'' which always means -``here''. The latter form is implemented in some add-on packages for -\LaTeXe{}, however usually at the cost of allowing floats to appear out -of order. - -The new model supports only the absolute ``here'' form for floats; -however, correct ordering of floats in the output is guaranteed (if -the tag generating the here float issues flushing of floats for the -current type). If -there is not enough space to place the float in a column, the float -plus the preceding text line\footnote{More precisely the column is -broken at the last breakpoint preceding the current position which is -normally one line above but could be more (or less).} is moved to the -next column/\allowbreak page. - - -\subsection{Grid layout} - -To produce layouts with elements placed on an underlying grid -(typically with grid points vertically separated by |\baselineskip|) -the algorithm assumes that certain parts of the text column, e.g., -normal text will automatically align on the grid as long as the first -line is positioned on the grid. A further assumption is that such -parts of the column do not contain stretchable amounts of vertical -glue so that they are not subject to stretching or shrinking if the -material is adjusted to fit a given size. - -Given these assumptions, the algorithm proceeds by ensuring that the -space taking up by floats (including their separating white spaces) is -always of a size such that the remaining space for the text part of the -columns is allowing for an integral number of grid lines. This is -achieved by stretching or shrinking the space separating the areas -from the text appropriately while building the page as explained in -section\vref{sec:float-place}. - -Within the text column there are typically a number of ``display -objects'' such as headings, equations, quotations, lists, etc\@. which -should not be aligned on the grid. Instead, typically the text before -and after is supposed to lie on the grid\footnote{In some cases, -depending on the design, parts of the structure might be supposed to -aligned as well.} This is supported by allowing to mark lines of text -(or more generally points in the galley) to ``snap to the nearest grid -point''. One can think of the implementation working by taking the -column material up to the marked line and putting it into a vertical -box of the size of the nearest possible grid point. By this approach -stretchable glue around such a display object will allow the text line -that should snap to the grid move into the correct position. This box -is then given back to the page builder to assemble more material for -the column. Since this way the preceding part of the column becomes -rigid; thus a later request for snapping to the grid will only stretch -or shrink material further down the column. - -A prototype implementation that makes most standard \LaTeX{} objects, -like headings, displays, etc.\ support grid design is available with -the package \texttt{xo-grid}. It is used for typesetting this -document. - - -\section{User control} - - -\subsection{Column and page breaks} - -Breaking of columns and pages can be controlled from the source -document by placing special tags into it. The |\columnbreak| command -ends the current column after the current line (if used in horizontal -mode). Similarly the |\pagebreak| command ends the current -page.\footnote{At the moment these commands force a break; there is no -possibility, as in \LaTeXe{} to suggest only that the current point -is a good or bad break.} - - -\subsection{Manual float flushing} - -The flush float functionality is available within the source document -via the command |\flushfloats|. This command takes two optional arguments -which, if present, denote the float type to flush (by default all) and the -``fuzziness'' of the flush (by default |strict|). Other allowed values -for the fuzziness are |column|, |page|, or |spread|. If a type is -specified for flushing, effectively all types with the same float -sequence class are flushed to preserve the ordering. - - - -\subsection{Specifying preferred areas} - -At the time of writing the document source interface for specifying -the group of areas into which a float is allowed to move is not yet -decided. One could envision keeping the original \LaTeX{} interface to -float environments with optional argument. In that case something like -|[t]| could be internally interpreted as ``any top area that exists'' -and translated into a list such as |t12 t11 t21|. But other interfaces -are conceivable as well. - - - -\subsection{Manually position all floats} - -Any algorithm that automatically places all floats may fail to produce -adequate results in some situations. In \LaTeXe{} the user was offered -only the optional arguments of the float environments and by this -method and by moving floats slightly in the source document one was -finally able to change the formatting as needed. - -This was a time consuming and error prone manual task and any slight -change in the source document text was likely to result in making this -work obsolete. - -To improve on this situation the new algorithm can be directed to -write out a file containing all of its float\footnote{Floats in this -contect mean ``traditional'' floats, not footnotes or marginpars.} -selections (an example is -shown in table~\vref{fig:fpl}). -% -\begin{table} -\begin{minipage}{\columnwidth-24pt} -\footnotesize -\begin{verbatim} -Page: 1 (1) - Area: t13 - Float: 4 (figure 4) [] - Area: b21 - Float: 2 (figure 2) [mylab:fig1] - Area: t31 - Float: 3 (figure 3) [mylab:fig2] - - Area: hhh - Float: 11 (table 1) [] - -Page: 2 (2) - Area: t13 - Float: 8 (figure 8) [] - Area: t22 - Float: 5 (figure 5) [] - Area: b11 - Float: 6 (figure 6) [mylab:fig3] - Area: b31 - Float: 7 (figure 7) [mylab:fig4] -\end{verbatim} -\end{minipage} -\caption{An example \texttt{fpl} file}\label{fig:fpl} -\end{table} -% -By simple drag and drop the user can produce alterations to this -selection. If such a modified file is stored as |\jobname.fpc| then -the algorithm will use these selections without attempting to apply -any of its internal rules. Thus the formatting will happen exactly as -specified.\footnote{If the floats are stored within the source -document at the point of their call-outs, the algorithm will be able -to position a float only if it has already encountered the float in the -source document. This means that one can move a float arbitrarily -forward but only to a limited extent before its call-out position. If -the floats are stored externally to the source document this -restriction does not apply.} - -Beside moving floats between float areas it will be possible to move -floats in and out of the special area called |hhh| which represents a -list of all ``here'' floats on the page. If a float is moved into the -``here'' area it means that it will be positioned as a here float at -the point of its call-out. - - -As an extension to this method we are experimenting with restricting -the manual control only to parts of the document, e.g., allowing the -user to manually fix a single chapter but have the algorithm determine -the remainder. We also plan to integrate column length control in this -way, so that it becomes easily possible to run a page or double-spread -long or short by specifying this externally rather than via tags in -the source document. - - - -\subsection[Tracing the algorithm's behavior] - {Tracing the algorithm's\\ behavior} - -In contrast to the \LaTeXe{} output routine, which is a black box as far -as the user is concerned, the new algorithm tries hard to make its -decision process comprehensible. Table~\vref{tab:progress} shows -\ifnum\ProcessControl=0 - \begin{table*} - \caption{Progress output of the algorithm}\label{tab:progress} -\else -% -% FMi: people reading the source will notice that there isn't yet any -% interface for spanning floats ... so we have to do this by hand -% - \def\SPANCNT{2}% - \begin{table}[t12,b12] - \caption{Progress output of the algorithm}\label{tab:progress} - \begin{minipage}{1.3\columnwidth} -\fi -% -\footnotesize -\begin{verbatim} -======================================================================= - STATS: floats waiting = 2 on page 13 -======================================================================= -Float: \bx@E {5} {table} (floats) {5} {Statistics from the algorithm} - area trial: b12 -> failed: span count b12 /= 1 - area trial: b11 -> accepted -Float: \bx@F {6} {table} (floats) {6} {Running times of the algorithm} - area trial: b12 -> failed: span count b12 /= 1 - area trial: b11 -> failed: b11 float num reached (1) - area trial: b21 -> failed: area below flush point (2=2, b21) - -> failed: --> retry with relaxed conditions - - area trial: b12 -> failed: span count b12 /= 1 - area trial: b11 -> accepted - STATS: trials = 7 -\end{verbatim} -\ifnum\ProcessControl=0 - \end{table*} -\else - \end{minipage} - \end{table}\def\SPANCNT{}% -\fi -% -a sample output produced by it. It shows for each float which areas -have been tried, why they were rejected etc. There is also an option -which produces about 1000 times as much information but the latter is -probably useful only for debugging the system in case there are errors -in the code. - - - -\subsection{Manually aligning text in grid layout} - -If the algorithm produces grid layout it automatically aligns certain -text lines on the underlying grid. For manual control this -functionality is also provided with the command |\TextAlignGrid| which -will align the current text line on the grid. By issuing a -|\IgnoreAlignToGrid| command grid alignment will be temporarily -disabled, while |\ObeyAlignToGrid| will reestablish automatic grid -processing. - - -\section{Layout Specification} - -In the class file the designer is given control over the algorithm's -behavior in all the aspects described above (and several more). - -The layout specifications are done through the new template and -instance concept, see~\cite{tub:MCR99-3}. -Additional information such as experimental code, further -documentation, etc.\ can -be found on the \LaTeX{} project web site at: -\begin{quote} -\url{http://www.latex-project.org} -\end{quote} - -In contrast to the algorithm itself, which in its basic functionality -now seems to be stable and reliable, the design interface is far -more experimental. Thus the example declarations given below represent -only the current state of thought (or of implementation) -and are likely to be modified at any moment. - - -\subsection{Float type declarations} - -Float types are declared using the command |\DeclareFloatType| which -takes two arguments: the name of the type which is declared and in the -second argument a list of key value pair which describe the -properties of the float type, e.g., -\begin{verbatim} - \DeclareFloatType{figure} - { - sequence-class-id = floats, - toc-extension = lof, - caption-text = \figurename, - numbered-boolean = true, - numbered-id = figure, - numbered-within-id = section, - numbered-action = - \thesection.\arabic{figure}, - body-decls = , - } -\end{verbatim} -The \texttt{sequence-class-id} key defines to which float sequence -class the type belongs to. If it is absent a sequence class with the -same name as the type is assumed. The sequence class will be -automatically initialized if not referenced before. - -The \texttt{toc-extension} key defines the extension to be used to -write the caption to when generating ``List of floats'' listings. By -using the same extension with different types it is possible to -generate combined listings, such as ``List of table and figures''. - -The \texttt{caption-text} key defines the fixed text to be used as -part of the caption text together with the float number if present, -e.g., |Figure|. This information is passed to the caption formatting -template so the actual formatting is defined there. - -The \texttt{numbered-boolean} defines whether or not floats of this -type are numbered. - -The \texttt{numbered-id} key defines the name of the counter to use -when numbering floats. If absent a counter with the same name as the -type is assumed. By using the same counter with different types it is -possible to use a single numbering scheme---in that case the -\texttt{sequence-class-id} for these types should probably be -identical as well to avoid strange numbering sequences within the -document. - -The \texttt{numbered-within-id} key defines the name of the ``within'' -counter, i.e., the counter which if stepped resets the numbering. If -the value is empty or not set the float type is numbered in a single -sequence throughout the document. - -The \texttt{numbered-action} key defines the representation of the -float number, as used in the caption and by the |\ref|, |\label| -mechanism. The default is |\arabic{|\meta{counter}|}|. - -The \texttt{body-decls} key can hold formating instructions that -should apply to the float body. They can assume a normalized -formatting environment already set up by the algorithm. - -The declaration of a new float type automatically defines the -necessary user document environments. - - -\subsection{Float area declarations} - -Any float area that is going to be used at some stage by the algorithm -needs to be declared beforehand. This is done through the -|\DeclareFloatArea| command which takes two arguments: the name of the -area (which has to follow the conventions explained in -section~\vref{overlap}) and a list of key/value pairs describing the -characteristics of the area. -\begin{verbatim} - \DeclareFloatArea{t22} - { - class-close-list = {t11,b11}, - all-close-list = {t12,t32}, - max-float-num = 2, - } -\end{verbatim} - As of today an area is characterized through the maximum number of -floats it is allowed to receive (\texttt{max-float-num}) and through -two lists which tell the algorithm which other areas are affected by -adding a float to the current area. The list \texttt{class-close-list} -enumerates all areas which are not allowed to receive additional -floats of the same sequence class as the float that has been placed -into the current area, while -the list \texttt{all-close-list} contains the information about all -areas that are to be completely closed the moment a float is received -in the current area. - -The \texttt{class-close-list} key is primarily intended to specify a -partial order on the areas to ensure that floats are not getting out -of sequence in the output. For example, the above declaration says: if -a float is placed into area |t22|, i.e., a top area starting at column -two and spanning two columns, then the single column areas |t11| and -|b11| (i.e., those of the first column) are closed for floats of the -same class. However, assuming this example is part of a declaration for -a four column layout which could have areas like |t14| or |t13|, there -is nothing said about closing those areas. Thus in this particular -layout a float spanning three or four columns would still be allowed -to go on top. - -On the other hand the \texttt{all-close-list} key is available to -ensure more visual constraints, e.g, ``if |t12| gets filled we don't -want to have |b12| filled as well, we only want |b22| in this -case''. In addition it is needed to implement the restriction about -overlapping float areas as described in section~\vref{overlap}, e.g., -in the example declaration |t12| and |t32| are closed since they -partly overlap with |t22|.\footnote{As mentioned before, this -restriction might be lifted in a later version of the algorithm; as -long as it is required one could alternatively add those areas behind -the scenes to avoid runtime problems.} - - - - - -\subsection{Footnote formatting declarations} - -The formatting of footnotes is specified by declaring instance(s) of -type |footnotesetup|. At the moment three templates are available -though they should be considered only as prototypes: the template -|std| produces conventional footnotes below each column, the template -|ftnright| collects all footnotes and typesets them in the rightmost -column, and the |margin| template collects and typesets them in the -right outer margin. - -The keys of the above templates are providing only a rudimentary -flexibility (to say it positively), in a production version all of -them would need a large number of extensions. -As an example -\begin{verbatim} - \DeclareInstance{footnotesetup} - {mainmatter}{std} - { - text-sep = 14pt plus 3pt, - max-height = 8in, - } -\end{verbatim} -would declare the named instance |mainmatter| that provides footnotes -below columns with a separation of |14pt+| and a maximum height for -footnotes per column being |8in|. - -Instances like this can then be used in the declaration for a -particular page layout as explained below. Alternatively one could use -unnamed instances there using the |\UseTemplate| method. - - -\subsection{Page setup declarations} - -At the heart of the layout declaration are instances of the type -|pagesetup2.|\footnote{The number 2 has historical reasons and will -vanish again at some point in the future.} -An example setup showing all currently available keys is given in -% -\ifnum\ProcessControl=0 - \begin{table*} - \caption{Example declaration for the \texttt{pagesetup2} template - showing all currently available keys}\label{tab:pagesetup2} -\else - \def\SPANCNT{2}% - \begin{table}[t12,b12] - \caption{Example declaration for the \texttt{pagesetup2} template - showing all currently available keys}\label{tab:pagesetup2} - \begin{minipage}{1.3\columnwidth} -\fi -% -\footnotesize -\begin{verbatim} - \DeclareInstance{pagesetup2}{mainmatter}{std} - { -% column specification - column-num = 2, - column-width = 220pt, - column-height = 610pt, - column-sep = 20pt, -% float constraint specification - max-float-num = 3, - float-callout-constraint = after, - float-callout-span-constraint = strict, - bottom-float-footnote-constraint = forbidden, - flush-float-callout-constraint = page, - flush-float-callout-span-constraint = flexible, - flush-bottom-float-footnote-constraint = none, -% area specification - area-list = {t12,t11,b11,b12,t21,b21}, - defer-class-close-list = {t12,t11,b11,b12,t21,b21}, - defer-all-close-list = , - float-float-sep = 15pt, - float-text-sep = 30pt minus 8pt, - float-area-sep = 15pt, - float-inline-sep = 6pt minus 2pt, -% grid specification - grid-point-sep = 12pt, -% footnote etc specification - footnote-setup = mainmatter, - } -\end{verbatim} -\ifnum\ProcessControl=0 - \end{table*} -\else - \end{minipage} - \end{table}\def\SPANCNT{}% -\fi -% -table~\vref{tab:pagesetup2}. - - -\subsubsection{Column specification} - -The first four keys (|column-num|, |column-width|, |column-height|, -and |column-sep|) describe the column structure of the page layout -being defined, i.e., in this case a two-column layout. - -\subsubsection{Float constraint specification} - -The following four keys define the standard constraints for the -algorithm when placing floats: \texttt{max-\allowbreak -float-\allowbreak num} is the maximum number of floats that can go on -a normal page, -\texttt{float-\allowbreak callout-\allowbreak constraint} defines -what kind of relations between float and call-out are allowed, -possible values are explained on~\vpageref{fl-callout-relations}. - -\texttt{float-\allowbreak callout-\allowbreak span-\allowbreak -constraint} handles the interpretation of spanning floats and is -explained on~\vpageref{fl-span-relation}, and -\texttt{bottom-\allowbreak float-\allowbreak footnote-\allowbreak -constraint} defines whether or not bottom floats are allowed in case -of footnotes. - -The last three constraints are replaced by -\texttt{flush-\allowbreak float-\allowbreak callout-\allowbreak -constraint}, \texttt{flush-\allowbreak float-\allowbreak - callout-\allowbreak span-\allowbreak constraint}, and -\texttt{flush-\allowbreak bottom-\allowbreak float-\allowbreak -footnote-\allowbreak constraint} in case flushing can't be done -without relaxing the conditions (\texttt{max-\allowbreak -float-\allowbreak num} is disregarded in that case automatically). - -\subsubsection{Float area specification} - -The key |area-list| defines all float areas that are allowed in this -page layout as well as defining the order in which the areas are tried -when placing floats. -The keys \texttt{defer-class-close-list} and -\texttt{defer-all-close-list} define the ``closing actions'' for the -special area which receives the floats that could not be placed. E.g., -if a float of a certain class can't be placed then all areas listed in -\texttt{defer-class-close-list} will be closed for this class of -floats. In other -words the two keys are comparable to the ones available for area -declarations. - -Thus these keys together with the keys from the area -declarations are most important to guarantee a sensible order of -floats on the formatted page. - -In an earlier implementation of the algorithm a simpler scheme was -used: there was a single area list which was shortened whenever a -float couldn't be placed into it thereby confining the remaining -floats to this restricted selection. This works fine as long as there -are mainly single column floats since in this case the area can be -reasonably ordered into a single sequence. However the moment spanning -floats are supported the situation gets less straightforward. Is it -allowed to place a later float into |t12| if there is already a float -in the area |t11|? -%% bb -- that's easy! a wider float always takes precedence over a -%% narrower one in the same column span, so t21 wins. -%% FMi -- so if there is a t11 float t21 is always closed and a later -%% spanning float will always be deferred -> i doubt that all -%% designers/editors would like to see this as a forced rule -%% :-) - -It is quite likely that the current controls will turn out to be too -crude. This will be seen once a suitable number of layouts have been -produced under this scheme (or couldn't be produced because they -turned out to be unspecifiable). - -There needs to be space between floats in an area and areas need to be -separated from each other, as well as from the column text. For this we -have the following keys: -\texttt{float-float-sep} is the separation between two floats in an area, -\texttt{float-area-sep} is the separation between two vertically -adjacent areas, and \texttt{float-text-sep} finally is the separation -between a float area and the column text.\footnote{A possible -extension would be to allow ornamental material in place of white space.} -The separation between inline floats and surrounding text is given by -\texttt{float-inline-sep}. - -\subsubsection{Grid specification} - -To produce a grid based design the \texttt{grid-point-sep} needs to be -given a positive dimension. This defines the distance between grid -points on which the algorithm aligns column text, inline floats, -etc.\footnote{Setting this parameter is not sufficient: to make grid -setting possible several other parameters need to be set to suitable -values as well, e.g., the distance between baselines should be -compatible and the column height need to be a multiple of this value.} - -To align column text at a grid point the algorithm will extend the -\texttt{float-text-sep} space. Alternatively, if the nearest grid -point can be reached by shrinking that space (assuming its -specification contains a |minus| component) the algorithm will use -that grid point instead. In a similar fashion the space around an -inline float will be determined by the value of -\texttt{float-inline-sep}. - - - -\subsubsection{Footnote, etc.~specification} - -Finally the key \texttt{footnote-setup} receives an instance of a -\texttt{footnotesetup} template, therby defining how footnotes are -handled and presented. - -What is clearly missing here is handling of other page elements such -as running headers and footers, the folio, etc. This will be added -soon. - - -\subsection{Float formatting declarations} - -For the attachment of captions to floats there exists a prototype -interface using templates of the type |buildfloat|. At the time of -writing, available templates are |centeredbelow|, |centeredabove|, and -|bottomright|, which center the caption below or above the float body -or place it to the right of it, aligned with the bottom of the float -body. All of them would need to be generalized for a production -system to become more flexible. - -When trial-formatting a float the algorithm checks for the existence -of a number of |buildfloat| instances and uses the first one that -exists to build the float. More precisely it first checks if an -instance with the name \meta{area}|-|\meta{type} exists, then it looks -for \meta{area}, then for \meta{type}, and finally, if none of them -exists, for an instance with the name |default|. So at least the latter -instance has to be declared by the class. -\begin{verbatim} - \DeclareInstance{buildfloat}{default} - {centeredbelow}{} - \DeclareInstance{buildfloat}{table} - {centeredabove}{} - \DeclareInstance{buildfloat}{t31} - {bottomright}{} - \DeclareInstance{buildfloat}{t22} - {bottomright}{} -\end{verbatim} -The example declaration above defines the placement of captions above -tables and below for all other types, with the exception of the areas |t31| -and |t22| where the captions are set to the side. - - -\section[Performance of the algorithm] - {Performance of the\\algorithm} - -To test the performance of the algorithm we prepared a somewhat -ridiculous test file containing three types of floats (``figures'', -``tables'', and ``algorithms'') with a total number of 47 floats. -The chosen -layout had 3 columns and 11 potential float areas. Figure captions -have been placed below the float while with tables and algorithms the -caption was placed on top. The exception was the top areas adjacent to -the outer margin: floats placed there got their captions placed to -the right and partly into the margin. Footnotes were collected for all -columns and placed in the outer margin. - -Floats had to strictly follow their call-out and a maximum of -ten floats was allowed per page, i.e., roughly three per column. - -Since the document contained many floats early on (24 on page one) and -the first of these was especially constructed to be not placeable the -first time around, the algorithm had to work hard to place all the -dangling floats. Table~\vref{tab:stats} -% -\begin{table} -\footnotesize -\begin{minipage}{\columnwidth} -\begin{verbatim} - STATS: floats waiting = 24 on page 1 - STATS: trials = 286 - STATS: floats waiting = 19 on page 2 (float page) - STATS: trials = 159 - STATS: floats waiting = 37 on page 2 - STATS: trials = 397 - STATS: floats waiting = 19 on page 3 (float page) - STATS: trials = 166 - STATS: floats waiting = 7 on page 4 (float page) - STATS: trials = 41 - STATS: floats waiting = 20 on page 4 - STATS: trials = 204 - STATS: floats waiting = 5 on page 5 (float page) - STATS: trials = 27 - STATS: floats waiting = 12 on page 5 - STATS: trials = 108 - STATS: floats waiting = 0 on page 6 (float page) - STATS: trials = 0 - STATS: floats waiting = 6 on page 6 - STATS: trials = 57 - ... - STATS: floats waiting = 6 on page 12 (float page) - STATS: trials = 26 - STATS: floats waiting = 6 on page 12 - STATS: trials = 37 - STATS: floats waiting = 0 on page 13 - STATS: trials = 0 -\end{verbatim} -\end{minipage} -\caption{Statistics from the algorithm}\label{tab:stats} -\end{table} -% -shows some statistics as produced by the algorithm on the number of -trials necessary (the highest number was $397$ for $37$ floats; by -comparison, equation~(\ref{eq:binom})~\vpageref{eq:binom} would give -$22595200368$ which would probably take a bit longer to -evaluate). Note that on the third page the algorithm was able to -produce a float page, on all other pages the float page trial was -unsuccessful. - -Table~\vref{tab:runs} shows the running times -% -\begin{table} -\footnotesize -\begin{tabular}{rrr} - & \llap{P\textsc{iii}} (650MHz) & 486DX4 (75MHz)\\[6pt] -&\multicolumn2{c}{no tracing} \\[4pt] -real & 0m1.533s & 0m27.633s \\ -user & 0m1.460s & 0m26.940s \\ -sys & 0m0.050s & 0m0.690s \\[6pt] -&\multicolumn2{c}{progress information} \\[4pt] -real & 0m3.116s & 0m36.885s \\ -user & 0m1.740s & 0m34.470s \\ -sys & 0m0.080s & 0m2.420s \\[6pt] -&\multicolumn2{c}{full tracing} \\[4pt] -real & 0m7.833s & 1m22.480s \\ -user & 0m2.720s & 1m7.890s \\ -sys & 0m0.280s & 0m12.360s \\ -\end{tabular} -\caption{Running times of the algorithm}\label{tab:runs} -\end{table} -% -needed to produce the final document of 13 pages when the algorithm is -used with different tracing settings. The test machines were a Pentium -\textsc{iii} -650 machine and an older laptop with a 486 processor. In both cases -\TeX{} was run straight from a \TeX{} Live~4 CD. - -These times show that the algorithm has an acceptable time performance -since even on a 486 the average time to produce a page is roughly 2 -seconds. - - - -\section{Outlook} - -While the current algorithm performs well there are several areas in -which its functionality could and probably should be extended. The most -important points are given in the following list. -\begin{itemize} -\item - Balancing of partial pages, comparable to the way the - \texttt{multicol} package works, should be implemented to allow for - layouts where, for example, a heading should span across all - columns. -\item - We intend to provide more control over the marginal areas, allowing - for marginal floats as well as other objects in the margin, properly - interacting with each other. -\item - Without much effort the algorithm could be extended to properly - support double-spreads so this should be added some time soon. -\item - Once the algorithm has decided which floats to place onto a page one - could add a post-processing step in which the placement could be - reconsidered according to different rules. For example, if the - call-out relation is |page| then floats will tend to be placed in the - left-hand columns. This is fine as long as there are many floats to - process but on a page with only a few floats one might want to - redistribute them differently once it is clear which floats could go - onto the page. -\item - Since it is known beforehand how many floats are actively waiting to - be placed, one could use a different algorithm that tries all - possible combinations as long as there are only a limited number of - floats to be placed. The boundary at which the algorithm changes - behavior could be made customizable so that people with faster - machines (or more patience) could have the search for optimum running - for as many floats as they like. -\end{itemize} - - - - -\bibliographystyle{plain} -\bibliography{string,book,tub99} - -\vfill - -\end{document} - - -% $Log: xo-pfloat.tex,v $ -% Revision 1.19 2000/08/11 07:08:04 latex3 -% small updates -% -% Revision 1.18 2000/08/04 15:39:04 latex3 -% added documentation on grid layout -% -% Revision 1.17 2000/07/22 06:29:55 latex3 -% documentation float class sequence -% documentation float type options -% documentation new page setup options -% -% Revision 1.16 2000/07/02 19:33:15 latex3 -% as send off to TUG 2000 -% -% Revision 1.15 2000/06/29 17:13:56 latex3 -% corrections by David -% -% Revision 1.14 2000/06/22 20:41:58 latex3 -% made formatting possibilities interactive -% -% Revision 1.13 2000/06/16 10:10:30 latex3 -% added handling of spanning floats / call-out constraints -% -% Revision 1.12 2000/06/15 15:19:03 latex3 -% documented new syntax for area names -% -% Revision 1.11 2000/06/15 09:16:51 latex3 -% added documentation on fuzzy flushing -% -% Revision 1.10 2000/06/08 15:32:37 latex3 -% fixing typo in the math display -% -% Revision 1.9 2000/05/19 08:23:11 latex3 -% incorporated Barbara's and Phil's copy-editing suggestions -% -% Revision 1.8 2000/05/09 19:02:42 latex3 -% not integrated BB's edits yet -% -% Revision 1.7 2000/05/09 13:35:01 latex3 -% next version to BB -% -% Revision 1.6 2000/05/08 20:41:57 latex3 -% my additions before folding in Barbara's edits -% -% Revision 1.5 2000/05/08 15:33:25 latex3 -% as send to Barbara -% -% Revision 1.4 2000/05/08 11:22:37 latex3 -% *** empty log message *** -% -% Revision 1.3 2000/05/04 08:53:37 latex3 -% update title -% -% Revision 1.2 2000/05/04 08:51:12 latex3 -% first draft as send to David and Chris -% diff --git a/Master/texmf-dist/doc/latex3/xor/xo-sample.tex b/Master/texmf-dist/doc/latex3/xor/xo-sample.tex deleted file mode 100644 index 557522959e0..00000000000 --- a/Master/texmf-dist/doc/latex3/xor/xo-sample.tex +++ /dev/null @@ -1,578 +0,0 @@ -\documentclass{article} - - - -\usepackage{xoutput} -\usepackage{xo-grid} - -\usepackage{graphicx} -\usepackage{trace} - -%\showoutput -%\tracingpages=1 -%\tracingonline=1 - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% PLAY AROUND WITH MANUAL FLOAT CONTROL -% -% \savefloatplacements writes the file \jobname.fpl -% \readfloatplacements reads in \jobname.fpc -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%\savefloatplacements -%\readfloatplacements - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% DECLARING FLOAT TYPES -% -% \DeclareFloatSequenceClass currently needed for each name used in -% the sequence-class-id key (will vanish) -% -% \DeclareFloatType defines type -% -% Example below is a bit strange: all floats are in one -% sequence class and share the same numbering but go in different tocs -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DeclareFloatSequenceClass{figure} -\DeclareFloatSequenceClass{tabalg} % tables and algorithms - -\DeclareFloatType{figure} - { - sequence-class-id = figure, - toc-extension = lof, - caption-text = \figurename, - numbered-boolean = true, - numbered-id = figure, - numbered-within-id = section, - numbered-action = \thesection.\arabic{figure}, - body-decls = \footnotesize, - } - -\DeclareFloatType{table} - { - sequence-class-id = tabalg, - toc-extension = lot, - caption-text = \tablename, - numbered-boolean = true, - numbered-id = table, - numbered-within-id = section, - numbered-action = \thesection.\arabic{table}, - body-decls = \footnotesize, - } - -\DeclareFloatType{algorithms} - { - sequence-class-id = tabalg, - toc-extension = lot, - caption-text = Algorithm, - numbered-boolean = true, - numbered-id = table, - body-decls = \footnotesize, - } - -\makeatletter -\newcommand*\l@algorithms{\@dottedtocline{1}{1.5em}{2.3em}} -\makeatother - -\renewcommand\listtablename{List of Tables and Algorithms} - - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% DECLARING FLOAT AREAS -% -% \DeclareFloatArea defines a float area (which can be referenced in -% pagesetup2 instances below) -% -% Ensure that partial overlapping areas close each other! -% -% The example is for three columns. -% -% Actually, don't try to use additional float areas unless you update -% the currently hardwired \top@areas and \bot@areas lists (in xo-new) -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% spanning all three columns - -\DeclareFloatArea {t13} - { - class-close-list = , - all-close-list = {b13}, % don't want top and bottom floats - max-float-num = 2, - } - -\DeclareFloatArea {b13} - { - class-close-list = {t13,t12,t11,b11}, - all-close-list = , - max-float-num = 1, - } - - -% spanning two columns - - -\DeclareFloatArea{t12} - { - class-close-list = , - all-close-list = {t22}, % this is a must! partial span - max-float-num = 1, - } - - -\DeclareFloatArea{t22} - { - class-close-list = {t11,b11}, % b12 still open - all-close-list = {t12}, - max-float-num = 1, - } - - -\DeclareFloatArea{b12} - { - class-close-list = {t11,b11}, - all-close-list = {}, - max-float-num = 1, - } - -% this strange design doesn't have b22 - - -% single columns - -\DeclareFloatArea {t11} - { - class-close-list = , - all-close-list = , - max-float-num = 2, - } - - -\DeclareFloatArea {b11} - { - class-close-list = {t11}, - all-close-list = , - max-float-num = 1, - } - - -\DeclareFloatArea {t21} - { - class-close-list = {t11,b11}, - all-close-list = {t22}, % don't ask me why just to make a - % change :-) - max-float-num = 2, - } - - -\DeclareFloatArea {b21} - { - class-close-list = {t11,b11,t21}, - all-close-list = , - max-float-num = 1, - } - - -\DeclareFloatArea {t31} - { - class-close-list = {t11,b11,t21,b21}, - all-close-list = {t22}, % we don't like this one - max-float-num = 2, - } - - -\DeclareFloatArea {b31} - { - class-close-list = {t11,b11,t21,b21,t31,t22}, - all-close-list = , - max-float-num = 1, - } - - - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% DECLARING CAPTION ATTACHMENTS -% -% The buildfloat templates aren't yet real templates, i.e., nearly -% everything is fixed with them. The only key they offer is the -% distance between float body and caption. -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DeclareInstance{buildfloat}{default}{centeredabove} - { - body-caption-sep = 10pt, - } - -\DeclareInstance{buildfloat}{figure}{centeredbelow} - { - body-caption-sep = 10pt, - } - -% with bottomright the body-caption-sep key is the horizontal -% separation - -\DeclareInstance{buildfloat}{t31}{bottomright} - { - body-caption-sep = 24pt, - } -\DeclareInstance{buildfloat}{t22}{bottomright} - { - body-caption-sep = 24pt, - } -\DeclareInstance{buildfloat}{t13}{bottomright} - { - body-caption-sep = 24pt, - } - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% DECLARING FOOTNOTE HANDLING -% -% The situation with footnotesetup is even worse, there are no usable -% keys yet. But three different ``pseudo'' templates: std, ftnright, -% and margin. -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DeclareInstance{footnotesetup}{mainmatterstyle}{margin}{} -%\DeclareInstance{footnotesetup}{mainmatterstyle}{std}{} -%\DeclareInstance{footnotesetup}{mainmatterstyle}{ftnright}{} - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% DECLARING PAGE LAYOUT -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\raggedbottom - -\setlength\topskip{12pt} % for grid layout make this = \baselineskip - % there is some bug which will otherwise show up - - -\ShowGridtrue % show the grid -\ShowGridfalse - -\DeclareInstance{pagesetup2}{normal}{std}{ -%%%%%%%%%%%%%%%%%%%%%% -% setting up columns: -% - column-num = 3, - column-width = 156pt, - column-sep = 25pt, - column-height = 552pt, -%%%%%%%%%%%%%%%%%%%%%% -% constraining the float placement: -% - float-callout-constraint = after, - bottom-float-footnote-constraint = forbidden, - flush-float-callout-constraint = column, - max-float-num =10, -%%%%%%%%%%%%%%%%%%%%%% -% list should pick from the above: -% - area-list = {t13,t12,t22,t11,b12,b11,t21,b21,t31,b31}, -%%%%%%%%%%%%%%%%%%%%%% -% footnote placement: -% - footnote-setup = mainmatterstyle, -% -% or inline: -% -% footnote-setup = \UseTemplate{footnotesetup}{std}{}, -% -%%%%%%%%%%%%%%%%%%%%%% -% float area placement: -% - float-float-sep = 15pt, - float-text-sep = 30pt minus 8pt, - float-area-sep = 15pt, - float-inline-sep = 6pt minus 2pt, -%%%%%%%%%%%%%%%%%%%%%% -% grid points? - grid-point-sep = 12pt, - } - - - - - - -\DeclareInstance{pagesetup2}{frontmatter}{std}{ -%%%%%%%%%%%%%%%%%%%%%% -% setting up columns: -% - column-num = 2, - column-width = 237.5pt, - column-sep = 25pt, - column-height = 552pt + 12pt, -%%%%%%%%%%%%%%%%%%%%%% -% constraining the float placement: -% - float-callout-constraint = after, - bottom-float-footnote-constraint = forbidden, - max-float-num =0, -%%%%%%%%%%%%%%%%%%%%%% -% list should pick from the above: -% - area-list = {}, -%%%%%%%%%%%%%%%%%%%%%% -% footnote placement: -% - footnote-setup = mainmatterstyle, -%%%%%%%%%%%%%%%%%%%%%% -% float area placement: -% - float-float-sep = 15pt, - float-text-sep = 30pt minus 8pt, - float-area-sep = 15pt, - float-inline-sep = 6pt minus 2pt, -%%%%%%%%%%%%%%%%%%%%%% -% grid points? - grid-point-sep = 12pt, - } - - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Stuff for producing test pages -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - -\newcount\bc - -\newcommand\startpar{\par\global\advance\bc1 [\the\bc] } - - -\newcommand\dofigure[1]{\startpar - callout (#1) to a figure. - \aa\footnote{A footnote near callout #1.} - \par - \begin{figure} - \ifcase\value{figure}\relax - \or - \includegraphics[angle=180,width=.7\columnwidth]{rahtz18.eps} - \or - \includegraphics[angle=90,width=.7\columnwidth]{rahtz18.eps} - \or - \includegraphics[angle=180,totalheight=4\baselineskip]{escher.eps} - \or - \includegraphics - [width=.9\columnwidth]{rahtz18.eps} - \else - \ifodd\value{figure}\relax - \includegraphics[totalheight=4\baselineskip]{escher.eps} - \else - \includegraphics[angle=180,totalheight=4\baselineskip]{escher.eps} - \fi - \fi - \caption{Belongs to callout (#1)}\label{mylab:fig#1} - \end{figure} - } - -\newcommand\dospanfigure[3]{% - \startpar - callout (#3) to a figure. - \aa\footnote{A footnote near callout #3.} - \par - \def\SPANCNT{#1} - \begin{figure}[#2] - \ifodd\value{figure}\relax - \ifodd\value{page}\relax - \includegraphics[width=#1\columnwidth]{outline.eps} - \else - \ifnum #1=3\relax - \includegraphics - [totalheight=4\baselineskip,width=2.5\columnwidth]{rahtz18.eps} - \else - \includegraphics - [totalheight=4\baselineskip,width=1.5\columnwidth]{rahtz18.eps} - \fi - \fi - \else - \ifodd\value{page}\relax - \includegraphics[width=1.3\columnwidth]{cat.eps} - \else - \includegraphics[width=#1\columnwidth]{outline2.eps} - \fi - \fi - \caption{Belongs to callout (#3)}\label{mylab:fig#3} - \end{figure}\par - \def\SPANCNT{} - } - -\newcommand\doalg[1]{\startpar - callout (#1) to an algorithm.% - \begin{algorithms} - \caption{Belongs to (#1)} - \ifnum #1<20\relax - \includegraphics[totalheight=#1\baselineskip]{cat.eps} - \else - \includegraphics[totalheight=20\baselineskip]{cat.eps} - \fi - \end{algorithms}\par} - - -\newcommand\dotable[1]{\par - \par - \global\advance\bc1 [\the\bc] callout (#1) to a table. - \aa - \par -\begin{table} -\caption{Belongs to callout (#1)}\label{mylab:tab#1} -\includegraphics[width=\columnwidth]{europe.eps} -\end{table} - } - -\newcommand\bb{\startpar \aa\aa\aa \par} - -\newcommand\sample{% - Infandum, re\-gi\-na, iu\-b\-es re\-no\-va\-re do\-lo\-rem, - Troi\-a\-n\-as ut op\-es et - la\-men\-ta\-bile re\-g\-num cru\-e\-rint Da\-nai; - qua\-e\-que ip\-se mis\-er\-ri\-ma vi\-di, et - qu\-o\-rum pa\-rs ma\-g\-na fui.} - -\newcommand\smallsample{% - Infandum, re\-gi\-na, iubes renovare do\-lo\-rem, Troi\-a\-n\-as ut opes et - la\-men\-ta\-bile regnum cru\-e\-rint Da\-nai; qua\-e\-que \ldots} - -\renewcommand\aa{\space\sample} - - -\begin{document} - -\UseInstance{pagesetup2}{frontmatter} - - -\listoffigures -\columnbreak - -\listoftables - -\vfil - -Note the strange ordering above due to the way the areas are visually -ordered---sorting isn't yet implemented. - -\UseInstance{pagesetup2}{normal} - -% - - -\section{First section} - - -\begin{figure}[t21] - \frame{\parbox{\columnwidth}{ - figure forced into t21 - figure forced into t21 - }} - \caption{A special one} -\end{figure} - - -\dofigure2 -\dofigure3 -\dospanfigure{3}{t13}{4} -\dofigure5 -\dofigure6 -\dospanfigure{3}{t13}{7} -\dofigure8 -\dofigure9 -\doalg{10} -\doalg{11} -\doalg{12} -\doalg{13} -\doalg{14} -\doalg{15} -\doalg{16} -\doalg{17} -\doalg{18} -\dofigure{19} -\dofigure{20} -\dospanfigure{2}{b12}{21} -\dofigure{22} -\dofigure{23} -\dofigure{24} -\dofigure{25} - -\flushfloats % this could be part of \section setup one day -\section{Another section} - -\dofigure{26} -\dofigure{27} -\dofigure{28} -\dofigure{29} -\dofigure{30} -\dofigure{31} - -\bb -\bb - -\dotable{32} -\dotable{33} -\dotable{34} - -\dofigure{35} -\dofigure{36} - -\bb\bb - -\bb - -\dospanfigure{2}{t22}{37} -\dospanfigure{2}{b12}{38} -\dospanfigure{2}{t12}{39} -\dotable{40} -\dofigure{41} - -\bb -\bb -\dofigure{42} -\dospanfigure{2}{t12}{43} - -\bb - - -\bb -\bb - -\bb -\bb -\bb - - - -\dospanfigure{2}{t32}{44} %AREA DOES NOT EXIST! -\dofigure{45} - - -\bb\bb\bb\bb - -\dotable{46} - -\bb\bb\bb\bb\bb\bb\bb\bb\bb\bb\bb\bb\bb\bb\bb\bb - -\doalg{47} -\bb\bb\bb\bb\bb\bb\bb\bb\bb -\bb\bb\bb\bb\bb\bb\bb\bb\bb\bb\bb - -THE END % just to make sure we don't lose text - - - -\end{document} - diff --git a/Master/texmf-dist/source/latex3/xor/xmarks.dtx b/Master/texmf-dist/source/latex3/xor/xmarks.dtx deleted file mode 100644 index c8286827ec0..00000000000 --- a/Master/texmf-dist/source/latex3/xor/xmarks.dtx +++ /dev/null @@ -1,956 +0,0 @@ -% \iffalse -%% -%% (C) Copyright 1999 Frank Mittelbach -%% All rights reserved. -%% -%% Not for general distribution. In its present form it is not allowed -%% to put this package onto CD or an archive without consulting the -%% the authors. -%% -% \begin{macrocode} -\def\next#1: #2.dtx,v #3 #4 #5 #6 #7$#8{ -%<*dtx> - \ProvidesFile{#2.dtx} -%</dtx> -%<package>\ProvidesPackage{#2} -%<driver>\ProvidesFile{#2.drv} - [#4 #3 #8 (#6)]} -\next$Id: xmarks.dtx,v 1.6 2000/06/13 20:47:23 latex3 Exp $ - {multiple marks} -% \end{macrocode} -% -%<*driver> - \documentclass{ltxdoc} -% - \begin{document} - \DocInput{xmarks.dtx} - \end{document} -%</driver> -% -% \fi -% -% -% \GetFileInfo{xmarks.dtx} -% -% \title{The \textsf{xmarks} package\thanks{This file -% has version number \fileversion, last -% revised \filedate.}} -% \author{FMi} -% \date{\filedate} -% -% \maketitle -% -% \tableofcontents -% -% -% -% \section{Mark algorithm} -% -% To allow for completely independent marks we use the following -% procedure: -% \begin{itemize} -% \item -% For every mark of type \meta{type} we have a queue that holds every mark -% info found in memory. Every info is associated with a unique number, -% i.e., we simply count them. The queue always holds at least one item -% which is the previous mark info, i.e., the last mark for that type on -% the previous page. -% -% \item -% We use \TeX's internal mark mechanism only to record the associated -% numbers for marks for every type on the current page. -% -% \item -% For every \meta{type} we record the info-number that belongs to the last -% mark of the previous page. -% -% \item -% By looking at \TeX's internal |\botmark| we can determine the -% info-number of the last mark for every \meta{type} that is on the current -% page. -% -% \item -% The difference between this number and the info-number from the last -% page gives us the number of marks for every \meta{type} on the current page. -% -% \item -% That way we are able to decide how to extract items from the queue so -% that first, last, and previous mark for every type can be accessed. -% \begin{itemize} -% \item -% If the difference is zero, no new marks have been added on the -% current page, therefore the only item on the corresponding mark type -% queue holds the info that should be previous, first, and last mark of -% this type for the current page. -% \item -% If the difference is one, then the first item in the queue represents -% the info that should become the previous mark (it will be popped off) -% and the second item (which will be kept, since it will become the -% previous mark for the next page) should become first and last mark for -% the current page. -% \item -% Otherwise we had at least two marks for this type on the current page. -% Therefore, the first item in the queue will become previous mark (popped -% off), the second will become first mark (popped off), then we pop off -% all but the last item in the queue, which will become last mark, by only -% looking at it. -% \end{itemize} -% In other words every queue should hold only one item after this part of -% the algorithm has acted. -% After this is done we save the info-numbers given by |\botmark| -% as the info-numbers of the last page, so that they are available next time. -% -% \item -% Putting a mark into the galley therefore means to put its info to the -% right of the corresponding queue, increment the current info-number for -% \meta{type} by one and putting a \TeX{} mark into the galley holding the -% current info-numbers for all \meta{types}. -% -% \end{itemize} -% -% -% \subsection{Restrictions} -% -% One restriction in using this algorithm without further refinements -% is that for every \meta{type} there will be an upper limit of marks allowed -% within one document. This upper limit is given by |\maxdimen| which is -% probably high enough to ignore it, but it could be improved by resetting -% the info numbers whenever all marks have found their way onto the -% current page. -% -% Another restriction is that one better not changes from linearily -% processing the data for the main galley, or, if one modifies that -% processing one needs to carefully adjust the data structures for the -% marks as well. The problem being that the individual marks within a -% preprocessed galley will stay there forever (and thus can be parsed -% several times), the external data structures, e.g., the plists and -% the sequences however need manual corrections in that case. -% -% \subsection{Implementation} -% -% The original implementation was done on a portable PC in a train -% sometime in 1992/93 and is just a straight implementation of the -% above algorithm using plists to hold the current and the last -% info-numbers. The whole stuff could be done much better by analysing -% the algorithm combining common parts (a lot of thing have be done -% twice, etc.) and recoding the rest in a better way. -% -% The implementation below is more or less a straight adaption -% of that code, so it still needs a rewrite one day. It is based on -% modules implementing ``queues'', ``property lists'', and ``quarks'' -% most of which have been published as experimental code with a -% slightly different surface syntax, i.e., as \texttt{l3seq.sty}, -% \texttt{l3prop.sty}, and \texttt{l3quark.sty}. -% -% New stuff: -% \begin{macrocode} -\RequirePackage{ldcsetup} -\IgnoreWhiteSpace -% \end{macrocode} -% -% \begin{macrocode} -\long\def\@firstofthree#1#2#3{#1} -\long\def\@secondofthree#1#2#3{#2} -\long\def\@thirdofthree#1#2#3{#3} -% \end{macrocode} -% -% \begin{macrocode} -\def \tlp@to@str@N {\expandafter \tlp@to@str@aux \meaning} -\def \tlp@to@str@aux #1>{} -\def \tlp@to@str@c #1 {\expandafter \tlp@to@str@N \csname#1\endcsname} -% \end{macrocode} -% -% -% -% -% -% \subsection{Commands for manipulating queues} -% -% \begin{macro}{\trace@queue} -% \begin{macro}{\trace@queue@internal} -% \begin{macro}{\tracingqueues} -% \begin{macrocode} -%<*trace> -\def\trace@queue#1{\ifnum \tracingqueues > \z@ - \typeout{Queues:~ #1~ \on@line}\fi} -\def\trace@queue@internal#1{\ifnum\tracingqueues>\@ne - \typeout{Queues:~ #1~ \on@line}\fi} -\newcount\tracingqueues -%</trace> -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\queue@new@c} -% \begin{macrocode} -\def\queue@new@c#1{\@namedef{#1}{}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\queue@gadd@Nn} -% \begin{macrocode} -\def\queue@gadd@Nn#1#2{\expandafter\gdef\expandafter#1\expandafter - {#1\queue@elt#2\queue@eelt} -%<*trace> - \trace@queue@internal{add~ `#2'~ to~ queue~ \string#1} -%</trace> -} -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\queue@gadd@cn} -% \begin{macrocode} -\def\queue@gadd@cn#1{\expandafter\queue@gadd@Nn\csname#1\endcsname} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\queue@top@NN} -% \begin{macrocode} -\def\queue@top@NN#1#2{ - \queue@empty@err@N#1 - \expandafter\queue@top@split@w#1\q@stop{\def#2} -%<*trace> - \trace@queue@internal{top~ of~ queue~\string#1:~`\tlp@to@str@N#2'} -%</trace> -} -% \end{macro} -% -% \begin{macro}{\queue@top@split@w} -\def\queue@top@split@w\queue@elt#1\queue@eelt#2\q@stop#3{#3{#1}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\queue@top@cN} -% \begin{macrocode} -\def\queue@top@cN#1{\expandafter\queue@top@NN\csname#1\endcsname} -% \end{macrocode} -% \end{macro} -% -% -% -% \begin{macro}{\queue@pop@aux@nnNN} -% \begin{macro}{\queue@pop@aux@w} -% \begin{macrocode} -\def \queue@pop@aux@nnNN #1#2#3{ - \queue@empty@err@N #3 - \expandafter\queue@pop@aux@w #3\q@stop #1#2#3} -\def \queue@pop@aux@w \queue@elt#1\queue@eelt - #2\q@stop #3#4#5#6{#3#5{#2}#4#6{#1}} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% -% \begin{macro}{\queue@gpop@NN} -% \begin{macrocode} -\def \queue@gpop@NN #1#2{\queue@pop@aux@nnNN \gdef \def #1 #2 -%<*trace> - \trace@queue@internal{pop~ of~ queue~\string#1:~`\tlp@to@str@N #2'} -%</trace> -} -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\queue@gpop@cN} -% \begin{macrocode} -\def \queue@gpop@cN #1{\expandafter\queue@gpop@NN\csname#1\endcsname} -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\queue@empty@err@N} -% \begin{macrocode} -\def\queue@empty@err@N #1{\ifx#1\@empty \ERROR \fi} -% \end{macrocode} -% \end{macro} -% -% -% -% -% -% -% -% -% -% \subsection {Quarks} -% -% A quark is a control sequence that expands into itself@ |\def| -% |\foo{\foo}|. Quarks provide a cheap way of generating distinct -% constants. Also, they permit the following ingenious trick: when -% you pick up a token in a temporary, and you want to know whether you -% have picked up a particular quark, all you have to do is compare the -% temporary to the quark using |\ifx|. -% -% \begin{macro}{\quark@new@N} -% Allocate a new quark. -% \begin{macrocode} -\def \quark@new@N #1{\def #1{#1}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\q@stop} -% \begin{macro}{\q@no@value} -% \begin{macro}{\q@nil} -% |\q@stop| is often used as a marker in parameter text, -% |\q@no@value| is the canonical missing value, and |\q@nil| -% represents a nil pointer in some data structures. -% \begin{macrocode} -\quark@new@N \q@stop -\quark@new@N \q@no@value -\quark@new@N \q@nil -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\q@error} -% \begin{macro}{\q@mark} -% We need two additional quarks. |\q@error| delimits the end of -% the computation for purposes of error recovery. |\q@mark| is -% used in parameter text when we need a scanning boundary that is -% distinct from |\q@stop|. -% \begin{macrocode} -\quark@new@N\q@error -\quark@new@N\q@mark -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% -% \begin{macro}{\quark@if@no@value@NTF} -% \begin{macro}{\quark@if@no@value@NF} -% \begin{macro}{\quark@if@no@value@nTF} -% \begin{macro}{\quark@if@no@value@nT} -% \begin{macro}{\quark@if@no@value@nF} -% Here we test if we found a special quark as the first argument. -% The argument might contain an arbitrary list of tokens, therefore -% we have to wrap it up in a token list pointer. -% \begin{macrocode} -\def \quark@if@no@value@NTF #1{ -% \end{macrocode} -% We better start with |\q@no@value| as the first argument since -% the whole thing may otherwise loop if |#1| is wrongly given -% a string like |aabc| instead of a single token.\footnote{It may -% still loop in special circumstances however!} -% \begin{macrocode} - \ifx\q@no@value#1 - \expandafter\@firstoftwo - \else \expandafter\@secondoftwo \fi} -% \end{macrocode} -% It would be possible to speed up the following commands by -% providing individual implementations similar to the one above. -% Should perhaps be done if they are used often! -% \begin{macrocode} -\def \quark@if@no@value@NF #1{\quark@if@no@value@NTF {#1}\@empty} -\def \quark@if@no@value@nTF #1{\gdef \@gtempa {#1} - \quark@if@no@value@NTF\@gtempa} -\def \quark@if@no@value@nF #1{\quark@if@no@value@nTF {#1}\@empty} -\def \quark@if@no@value@nT #1#2{\quark@if@no@value@nTF {#1} - {#2}\@empty} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\quark@if@nil@NTF} -% A function to check for the presence of |\q@nil|. -% \begin{macrocode} -\def\quark@if@nil@NTF#1{ - \ifx#1\q@nil - \expandafter\@firstoftwo - \else - \expandafter\@secondoftwo\fi} -% \end{macrocode} -% \end{macro} -% -% -% -% -% \subsection{Commands for manipulating property lists} -% -% -% \begin{macro}{\prop@new@N} -% \begin{macrocode} -\def \prop@new@N #1{\def #1{}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\prop@put@NNn} -% \begin{macro}{\prop@gput@NNn} -% \begin{macro}{\prop@gput@NNo} -% \begin{macro}{\prop@gput@cco} -% \begin{macro}{\prop@gput@ccn} -% \begin{macrocode} -\long\def \prop@put@NNn #1#2{\prop@split@aux@NNn - #1#2{\prop@put@aux@w {\def #1}#2}} -\long\def \prop@gput@NNn #1#2{\prop@split@aux@NNn - #1#2{\prop@put@aux@w {\gdef #1}#2}} -% missing commands for galley stuff... -\def \prop@gput@NNo #1#2#3{ - \expandafter\prop@gput@NNn \expandafter #1 \expandafter - #2 \expandafter { #3 } } -\def \prop@gput@cco #1#2#3{ - \expandafter\prop@gput@NNn \csname #1\expandafter\endcsname - \csname #2\expandafter\endcsname - \expandafter { #3 } } -\def \prop@gput@ccn #1#2{ - \expandafter\prop@gput@NNn \csname #1\expandafter\endcsname - \csname #2\endcsname - } -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% -% -% \begin{macro}{\prop@put@aux@w} -% \begin{macrocode} -\long\def \prop@put@aux@w #1#2#3#4#5#6{ - \quark@if@no@value@nTF {#4} - {#1{#2{#6}#3}} - {\def\tmp@w ##1#2\q@no@value {#1{#3#2{#6}##1}} - \tmp@w #5}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\prop@split@aux@NNn} -% \begin{macrocode} -\long\def \prop@split@aux@NNn #1#2#3{ - \def\tmp@w ##1#2##2##3\q@stop {#3{##1}{##2}{##3}} -% ^ ^ needed! - \expandafter\tmp@w #1#2\q@no@value \q@stop} -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\prop@get@NNN} -% \begin{macrocode} -\long\def \prop@get@NNN #1#2{\prop@split@aux@NNn - #1#2\prop@get@aux@w} -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\prop@get@aux@w} -% \begin{macrocode} -\long\def \prop@get@aux@w #1#2#3#4{\def#4{#2}} -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\prop@map@funct@Nn} -% \begin{macrocode} -\let \prop@map@funct@Nn \@gobbletwo -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\prop@map@NN} -% \begin{macrocode} -\def \prop@map@NN #1#2{ - \let \prop@map@funct@Nn #2 - \expandafter\prop@map@aux@w #1\q@stop \q@stop} -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\prop@map@aux@w} -% \begin{macrocode} -\def \prop@map@aux@w #1#2{ - \ifx #1\q@stop \else - \prop@map@funct@Nn #1{#2} - \expandafter\prop@map@aux@w - \fi} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\prop@map@cN} -% \begin{macrocode} -\def \prop@map@cN #1{ - \expandafter \prop@map@NN \csname #1\endcsname } -% \end{macrocode} -% \end{macro} -% -% -% -% -% -% -% -% \subsection{Commands for manipulating marks} -% -% -% -% \begin{macro}{\trace@mark} -% \begin{macro}{\trace@mark@internal} -% \begin{macro}{\tracingmarks} -% Tracing is done when |\tracingmarks| is positive. -% \begin{macrocode} -%<*trace> -\def\trace@mark#1{\ifnum \tracingmarks > \z@ - \typeout{Marks:~ #1~ \on@line}\fi} -\def\trace@mark@internal#1{\ifnum\tracingmarks>\@ne - \typeout{Marks:~ #1}\fi} -\newcount\tracingmarks -%</trace> -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\mark@new} -% Defines a new mark label and retrieval token list pointer. -% \begin{macrocode} -\def\mark@new#1{ -%<*trace> - \trace@mark - {new~mark:~\string#1} -%</trace> -% \end{macrocode} -% We make sure that the argument is still free and allocate the -% corresponding queue. To avoid problems with the use of such tlp's -% when they are used before the first |\mark@update@structure| we initialize -% them in a way that |\mark@previous| and the like will accept them even -% then. -% \begin{macrocode} - \newcommand* #1 {{}{}{}} - \queue@new@c{\string#1@seq} -% \end{macrocode} -% The last info-number for this type will be set to |1| This value -% is actually arbitrary and we could use |-\maxdimen+1| to get the -% range doubled. -% \begin{macrocode} - \prop@gput@NNn\mark@last@plist#1{1} -% \end{macrocode} -% More important is that the starting value for the current -% info-number is one less then the one used above. -% \begin{macrocode} - \prop@gput@NNn\mark@curr@plist#1{0} -% \end{macrocode} -% We now put the very first mark of this type in. This mark will be -% empty. This will initialize the queue (now holding the empty previous -% mark) increment the current info number, so that last and current are -% now equal and also puts a \TeX{} mark into the galley will the -% additional type present. -% \begin{macrocode} - \mark@put@Nn#1{}% -% \end{macrocode} -% \begin{macrocode} - \expandafter\g@addto@macro\expandafter\mark@save@state\expandafter{% - \expandafter\global\expandafter\let - \csname saved\string#1@seq\expandafter\endcsname - \csname\string#1@seq\endcsname} - \expandafter\g@addto@macro\expandafter\mark@restore@state@internal\expandafter{% - \expandafter\global\expandafter\let - \csname\string#1@seq\expandafter\endcsname - \csname saved\string#1@seq\endcsname} -} -% \end{macrocode} -% \end{macro} -% -% -% -% \begin{macro}{\mark@save@state} -% \begin{macro}{\mark@restore@state@internal} -% Save and restore the current state of the mark data -% structure. The commands will be extended by |\mark@new|. They are -% needed if part of the main galley is being reused or several -% times parsed. -% \begin{macrocode} -\def\mark@save@state{% - \global\let\saved@mark@curr@plist\mark@curr@plist - \global\let\saved@mark@last@plist\mark@last@plist} -\def\mark@restore@state@internal{% - \global\let\mark@curr@plist\saved@mark@curr@plist - \global\let\mark@last@plist\saved@mark@last@plist} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\mark@restore@state} -% |\mark@restore@state| will restore the state of the mark -% mechanism to the one saved by |\mark@save@state|. It has to be -% called inside an output routine and as it needs an output routine -% of its own to restore the |\mark| status of the bottom mark (so -% that \TeX{} correctly updates the mark registers in case it -% doesn't find a mark in box 255) it has an argument which is -% executed inside that output routine to regain control. -% -% The code in the argument has to set |\output| to a new output -% routine! If not you are in trouble. -% -% \begin{macrocode} -\def\mark@restore@state#1{% -%<*trace> - \@tracepush{mark@restore@state} -%</trace> -% \end{macrocode} -% We first restore the external data structures by calling -% |\mark@restore@sate@internal|. Then we have to ensure that \TeX's -% idea of what the current |\botmark| is, corresponds to what it -% was when we saved the state. Back then it was the contents of -% |\mark@last@plist| so we are now adding an empty box and then -% mark with is contents -% onto the MVL followed by a penalty that ensures we trigger the -% output routine and then specify a tiny little output routine -% whose sole purpose is to get that mark processed. -% \begin{macrocode} - \mark@restore@state@internal - \hbox{}% -% \end{macrocode} -% We have to protect |\mark@last@plist| from expanding too far -% inside the |\mark| so we first put it into a token register -% before applying |\mark|. -% \begin{macrocode} - \@temptokena\expandafter{\mark@last@plist}% -%<*trace> - \trace@mark@internal{restoring~ botmark~ \the\@temptokena}% -%</trace> - \mark - {\the\@temptokena} - \penalty-20203\relax -% \end{macrocode} -% We are not setting |\vsize| assuming its positive. So the moment -% we return from the current output routine (we are hopefully in -% right now) we should very very soon find the above penalty and -% then trigger the output routine we are about to define now. -% -% In that output routine we have a quick test for the -% |\outputpenalty| just to ensure that we really grabbed what we -% are supposed to grab. Then we throw away the contents of box 255 -% since all we wanted todo is to get |\botmark| set back to the -% value of our mark above. Finally we execute whatever got passed -% along as argument one to regain control. Since current |\output| -% has a rather funny definition the code in that argument better -% change that back to something that does a little bit more -% typesetting. -% \begin{macrocode} - \global\output{% -%<*trace> - \@tracepush{mark@restore@state@or} -%</trace> - \ifnum-20203=\outputpenalty\else \ERROR \fi - \global\setbox\@cclv\box\voidb@x - #1% -%<*trace> - \@tracepop{mark@restore@state@or} -%</trace> - }% -%<*trace> - \@tracepop{mark@restore@state} -%</trace> -} -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\mark@put@Nn} -% To put a mark into the current horizontal or vertical \TeX{} list -% we first update |\mark@curr@plist| and then put its value into the -% mark without any further expansion. (The code could be -% optimized!) -% \begin{macrocode} -%<-trace>\def\mark@put@Nn#1{% % wtest hack } -%<*trace> -\def\mark@put@Nn#1#2{ - \def\l@tmpa@tlp{#2} - \trace@mark - {set~\string#1~<-~\tlp@to@str@N\l@tmpa@tlp} -%</trace> -% \end{macrocode} -% First we have to update the current info number for this type. The -% code is a bit complicated because we have to get the number from the -% the plist update it and then put it back. If we would keep the numbers -% differently this could be improved, probably at the cost of more macro -% names. -% \begin{macrocode} - \@temptokena\expandafter{\mark@curr@plist} - \prop@get@NNN\mark@curr@plist#1\@tempa -%<*debug> - \ifx\q@no@value\@tempa - \ERROR - \fi -%</debug> - \@tempcnta\@tempa - \advance\@tempcnta\@ne - \expandafter - \prop@gput@NNn\expandafter\mark@curr@plist\expandafter#1\expandafter - {\the\@tempcnta} -% \end{macrocode} -% Now we want to put this plist into a \TeX{} mark. We need a -% one-level expansion, otherwise our pkeys would expand which would -% produce chaos. So we save it in a toks register. -% \begin{macrocode} - \@temptokena\expandafter{\mark@curr@plist} - \mark - {\the\@temptokena} -% \end{macrocode} -% Finally we shouldn't forget to put the info at the right of the -% corresponding queue. -% Without tracing we can omit the second argument to -% this function. -% \begin{macrocode} -%<*trace> - \queue@gadd@cn{\string#1@seq}{#2} -%</trace> -%<-trace> \queue@gadd@cn{\string#1@seq}% -} -% \end{macrocode} -% \end{macro} -% -% -% -% -% \begin{macro}{\mark@put@Nnn} -% \begin{macrocode} -\def\mark@put@Nnn#1#2#3{ - \mark@put@Nn#1{#2#3}} -% \end{macrocode} -% \end{macro} -% -% -% -% -% \begin{macro}{\mark@update@structure} -% This function is for use in output routines to initialize the marks -% at the beginning. It is only useful after \TeX{} internally has -% updated |\botmark|. -% \begin{macrocode} -\def\mark@update@structure{ -% \end{macrocode} -% We map a function over all keys in |\mark@last@plist|, in other -% words over all types of marks. This routine will set the marks for -% all types. Finally we set the plist |\mark@last@plist| to the -% plist that was stored in |\botmark|, i.e., to the -% info-numbers from this page. -% \begin{macrocode} - \prop@map@NN\mark@last@plist\mark@retrieve@single@Nn - \expandafter\gdef\expandafter\mark@last@plist\expandafter{\botmark} -} -% \end{macrocode} -% \end{macro} -% -% -% -% \begin{macro}{\mark@retrieve@single@Nn} -% This function will be mapped over the plist containing the info-numbers -% from the last page. This means that |#1| will be the key (which is -% simply our type token list pointer and |#2| is the value, i.e. the -% info-number from the last page for this type. -% \begin{macrocode} -\def\mark@retrieve@single@Nn#1#2{ -%<*trace> - \trace@mark@internal - {queue~for~\string#1~ before:~`\tlp@to@str@c{\string#1@seq}'} -%</trace> -% \end{macrocode} -% We retrieve the info number for this type from |\botmark| -% and store the difference in |\@tempcnta|. -% \begin{macrocode} - \@temptokena\expandafter{\botmark}% -%<*trace> - \trace@mark@internal{picking~ up~ from~ output~ \the\@temptokena}% -%</trace> - \prop@get@NNN\botmark#1\@tempa -%<*debug> - \ifx\q@no@value\@tempa - \ERROR - \fi -%</debug> - \@tempcnta\@tempa - \advance\@tempcnta-#2\relax -%<*trace> - \trace@mark@internal - {found~\the\@tempcnta\space entries~ for~ \string#1~ - (new~\@tempa;~old~#2)} -%</trace> -% \end{macrocode} -% Then we decide what to do depending on its value. -% We use |\@tempa|, |\@tempb|, and |\@tempc| to -% temporarily hold the previous, first and last mark for this type. -% \begin{macrocode} - \ifcase\@tempcnta -% \end{macrocode} -% If there haven't been any new marks we leave the queue alone, -% peeking only at its top element and using it for all three marks. -% \begin{macrocode} - \queue@top@cN{\string#1@seq}\@tempa - \let\@tempb\@tempa - \let\@tempc\@tempa - \or -% \end{macrocode} -% When there was one mark of this type, we pop one item for the -% previous mark of this type, and use the remaining item for first -% and last mark. -% \begin{macrocode} - \queue@gpop@cN{\string#1@seq}\@tempa - \queue@top@cN{\string#1@seq}\@tempb - \let\@tempc\@tempb - \else -% \end{macrocode} -% If we had more than one mark for this type we pop one mark for the -% previous mark of this type, then pop another mark for the first -% mark of this type, then pop all but the last item and use the last -% item as the last mark of this type, keeping it as before on the -% queue. -% \begin{macrocode} - \queue@gpop@cN{\string#1@seq}\@tempa - \queue@top@cN{\string#1@seq}\@tempb - \@whilenum \@tempcnta>\@ne\do - {\advance\@tempcnta\m@ne - \queue@gpop@cN{\string#1@seq} - \@tempc - } - \queue@top@cN{\string#1@seq}\@tempc - \fi -% \end{macrocode} -% After this process all values for previous, first and last mark for -% this type are found so that we can store them in the tlp -% representing this type for further processing. -% \begin{macrocode} - \@temptokena\expandafter{\@tempa} - \@temptokenb\expandafter{\@tempb} - \@temptokenc\expandafter{\@tempc} - \edef#1{{\the\@temptokena}{\the\@temptokenb}{\the\@temptokenc}} -%<*trace> - \trace@mark - {in~output:~\string#1~->~\tlp@to@str@N#1} -% \end{macrocode} -% At this point the queue should show only one item. -% \begin{macrocode} - \trace@mark@internal - {queue~ for~\string#1~after:~`\tlp@to@str@c{\string#1@seq}'} -%</trace> -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\@temptokenb} -% \begin{macro}{\@temptokenc} -% \begin{macrocode} -\newtoks\@temptokenb -\newtoks\@temptokenc -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% -% \begin{macro}{\mark@curr@plist} -% \begin{macro}{\mark@last@plist} -% Here are the allocations for the two plists used. -% \begin{macrocode} -\prop@new@N\mark@curr@plist -\prop@new@N\mark@last@plist -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% -% -% -% -% -% \begin{macro}{\mark@get@first@N} -% \begin{macro}{\mark@get@last@N} -% \begin{macro}{\mark@get@previous@N} -% To retrieve the first, last or previous page mark, we -% grap the appropriate value stored in the tlp. The marks are stored -% in the tlp in the order previous, first, last mark. These functions -% should be used only in output routines after |\mark@retrieve| has -% acted, otherwise their value will be wrong. They are all fully -% expandable. -% -% Actually, they may bomb when tracing is included and we have -% material that doesn't work corretly within a write. -% \begin{macrocode} -%<*trace> -\def\mark@get@first@N#1{ - \expandafter\@secondofthree#1 - \trace@mark@internal{use~first~\string#1~=~ - `\expandafter\@secondofthree#1'} -} -\def\mark@get@last@N#1{ - \expandafter\@thirdofthree#1 - \trace@mark@internal{use~ last~ \string#1~ =~ - `\expandafter\@thirdofthree#1'} -} -\def\mark@get@previous@N#1{ - \expandafter\@firstofthree#1 - \trace@mark@internal{use~prev~\string#1~ =~ - `\expandafter\@firstofthree#1'} -} -%</trace> -%<-trace>\def\mark@get@first@N{% -%<-trace> \expandafter\@secondofthree} -%<-trace>\def\mark@get@last@N{% -%<-trace> \expandafter\@thirdofthree} -%<-trace>\def\mark@get@previous@N{% -%<-trace> \expandafter\@firstofthree} -% \end{macrocode} -% above version in trace case doesn't work alway! -% \begin{macrocode} -\def\mark@get@first@N{% - \expandafter\@secondofthree} -\def\mark@get@last@N{% - \expandafter\@thirdofthree} -\def\mark@get@previous@N{% - \expandafter\@firstofthree} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% -% -% \begin{macro}{\DeclareMarkType} -% \begin{macrocode} -\def\DeclareMarkType#1{ - \expandafter\mark@new\csname mark@#1\endcsname} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\PutMark} -% \begin{macrocode} -\def\PutMark#1{ - \@ifundefined{mark@#1}{\ERROR}{} - \expandafter\mark@put@Nn\csname mark@#1\endcsname} -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\PreviousMark} -% \begin{macrocode} -\def\PreviousMark#1{ - \expandafter\mark@get@previous@N\csname mark@#1\endcsname} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\FirstMark} -% \begin{macrocode} -\def\FirstMark#1{ - \expandafter\mark@get@first@N\csname mark@#1\endcsname} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\LastMark} -% \begin{macrocode} -\def\LastMark#1{ - \expandafter\mark@get@last@N\csname mark@#1\endcsname} -% \end{macrocode} -% \end{macro} -% -% \Finale -% -\endinput -% -% $Log: xmarks.dtx,v $ -% Revision 1.6 2000/06/13 20:47:23 latex3 -% docu update -% inlined quarks code -% diff --git a/Master/texmf-dist/source/latex3/xor/xo-alloc.dtx b/Master/texmf-dist/source/latex3/xor/xo-alloc.dtx deleted file mode 100644 index 05250715ccb..00000000000 --- a/Master/texmf-dist/source/latex3/xor/xo-alloc.dtx +++ /dev/null @@ -1,125 +0,0 @@ -% \iffalse -%% -%% (C) Copyright 1999-2000 Frank Mittelbach, David Carlisle, Chris Rowley -%% All rights reserved. -%% -%% Not for general distribution. In its present form it is not allowed -%% to put this package onto CD or an archive without consulting the -%% the authors. -%% -% \fi -% -% \begin{macrocode} -\def\@tempa#1: #2.dtx,v #3 #4 #5 #6 #7${ - \ProvidesPackage{#2}[#4 #3 #5 #6]} -\@tempa$Id: xo-alloc.dtx,v 1.4 2000/08/11 07:13:34 latex3 Exp $ -% \end{macrocode} -% -% -% Ignore white space in this package. -% \begin{macrocode} -\IgnoreWhiteSpace -% \end{macrocode} -% -% |\footins| is FD, should probably move to FE -% -% |\@footins| is FE, should probably go and be replaced by a box and skip allocation -% they don't need to be same number, except for compatibility reasons. -% -% |\@kludgeins| was EA maybe can go, depending on how enlargethispage to be implemented. -% for now, move to FC (which was bx@A -% \begin{macrocode} -\chardef\@kludgeins="FC\relax -\global\dimen\@kludgeins \maxdimen -\global\count\@kludgeins 1000 -\global\dimen\@kludgeins\z@ -\global\skip\@kludgeins\z@ -\global\setbox\@kludgeins\box\voidb@x -% \end{macrocode} -% -% \begin{macrocode} -\insc@unt"FC\relax -% \end{macrocode} -% -% count dimen skip no longer bounded by insertion allocation. -% toks now bounded by insertions. -% \begin{macrocode} -\def\newcount{\alloc@0\count\countdef\@kludgeins} -\def\newdimen{\alloc@1\dimen\dimendef\@kludgeins} -\def\newskip{\alloc@2\skip\skipdef\@kludgeins} -\def\newtoks{\alloc@5\toks\toksdef\insc@unt} -% \end{macrocode} -% -% \begin{macrocode} -\def\newinsert#1{\global\advance\insc@unt \m@ne - \ch@ck4\insc@unt\box - \ch@ck5\insc@unt\toks - \allocationnumber\insc@unt - \global\chardef#1\allocationnumber - \wlog{\string#1=\string\insert\the\allocationnumber}} -% \end{macrocode} -% -% \begin{macrocode} -\newinsert\bx@A -\newinsert\bx@B -\newinsert\bx@C -\newinsert\bx@D -\newinsert\bx@E -\newinsert\bx@F -\newinsert\bx@G -\newinsert\bx@H -\newinsert\bx@I -\newinsert\bx@J -\newinsert\bx@K -\newinsert\bx@L -\newinsert\bx@M -\newinsert\bx@N -\newinsert\bx@O -\newinsert\bx@P -\newinsert\bx@Q -\newinsert\bx@R -% \end{macrocode} -% -% like |\@next| but allocates to list if empty (so doesn't have the -% 4th argument) There is a hidden 3rd argument, picked up by |\@xnext|. -% \begin{macrocode} -\def\@allocating@next#1#2{ - \ifx#2\@empty - \xdef#2{\noexpand\@elt\csname bx@\the\insc@unt\endcsname} - \expandafter\newinsert\csname bx@\the\insc@unt\endcsname - \fi - \expandafter\@xnext #2\@@#1#2} -% \end{macrocode} -% -% \begin{macrocode} -% \end{macrocode} -% -% \begin{macrocode} -% \end{macrocode} -% -% \begin{macrocode} -% \end{macrocode} -% -% \begin{macrocode} -% \end{macrocode} -% -% \begin{macrocode} -% \end{macrocode} - -% -% \endinput -\endinput -% -% $Log: xo-alloc.dtx,v $ -% Revision 1.4 2000/08/11 07:13:34 latex3 -% added header -% -% Revision 1.3 2000/06/13 20:54:46 latex3 -% made this a dtx file -% -% Revision 1.2 2000/02/22 01:03:55 david -% *** empty log message *** -% -% Revision 1.1 2000/02/22 00:52:52 david -% Initial revision -% diff --git a/Master/texmf-dist/source/latex3/xor/xo-capt.dtx b/Master/texmf-dist/source/latex3/xor/xo-capt.dtx deleted file mode 100644 index 618e22f94d7..00000000000 --- a/Master/texmf-dist/source/latex3/xor/xo-capt.dtx +++ /dev/null @@ -1,306 +0,0 @@ -% \iffalse -%% -%% (C) Copyright 1999-2000 Frank Mittelbach, David Carlisle, Chris Rowley -%% All rights reserved. -%% -%% Not for general distribution. In its present form it is not allowed -%% to put this package onto CD or an archive without consulting the -%% the authors. -%% -% \fi -% - -% \begin{macrocode} -\def\@tempa#1: #2.dtx,v #3 #4 #5 #6 #7${ - \ProvidesPackage{#2}[#4 #3 #5 #6]} -\@tempa$Id: xo-capt.dtx,v 1.13 2000/08/11 07:14:03 latex3 Exp $ -% \end{macrocode} -% -% Ignore white space in this package. -% \begin{macrocode} -\IgnoreWhiteSpace -% \end{macrocode} -% -% -% \subsection{Modifying the caption command} -% -% \begin{macro}{\@caption} -% |\caption| just saves its main argument in a token register. It also -% has |\unskip| and |\ignorespaces| to cope with hmode. -% The format of the token register is:\\ -% \marg{type}\marg{number}\marg{caption text}\marg{extra info}\\ -% The \meta{type} is something like `figure', used to generate the -% relevant command names. \meta{number} is the fully expanded version of -% |\the|\ldots. The last group is unused by the current definition -% but extended packages may use it to pass extra information to the -% float handler, as required. -% \begin{macrocode} -\def\caption{\@dblarg{\@caption\float@type}} - -\long\def\@caption#1[#2]#3{% - \unskip -% \end{macrocode} -% We use the old \LaTeX{} interface with |\addcontentsline| for the -% moment.\footnote{FIX!!} -% \begin{macrocode} - \addcontentsline{\csname toc@extension@#1\endcsname}{#1} -% \end{macrocode} -% The counter used is not |#1| but given by (|\foat@counter|) which -% should perhaps be passed along but isn't: -% \begin{macrocode} - {\protect\numberline{\csname the\float@counter\endcsname} - {\ignorespaces #2}} - \global\toks\@currbox{#3} - \ignorespaces - } -% \end{macrocode} -% \end{macro} -% -% -% \subsection{Adding captions to float boxes} -% -% This should really be a template instance. -% Must \emph{copy} the float body in |\this@float@box| -% into |\this@captioned@float| adding the caption text. -% May use |\this@area|, |\this@area@col@number| and other information, to be -% determined \ldots -% -% \begin{macro}{\append@caption@to@float} -% Combine float body and caption of the current float (``this -% float'') and store it in |\this@captioned@float|. -% \begin{macrocode} -\def\append@caption@to@float{ - \typeset@some@floatbox - \this@type\this@area - \this@float@box{\csname caption@\this@type\endcsname} - \this@usercnt\this@caption\this@span@number -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\append@here@caption@to@float} -% Combine float body and caption of the current here float and -% store it in |\this@captioned@float|. -% \begin{macrocode} -\def\append@here@caption@to@float{ - \typeset@some@floatbox - \here@type{h\the\curr@col@count 1} - \here@float@box{\csname caption@\here@type\endcsname} - \here@usercnt\here@caption\here@span@number -} -% \end{macrocode} -% \end{macro} -% -% -% -% \begin{macro}{\typeset@this@float@and@caption} -% Combine float body and caption of the current float (``this -% float'') and output it into the current list. -% \begin{macrocode} -\def\typeset@this@float@and@caption{ - \append@caption@to@float - \box\this@captioned@float -} -% \end{macrocode} -% \end{macro} -% -% -% -% \section{Some primitive templates for testing} -% -% prove of concept only --- not even prototype -% -% -% \begin{macro}{\typeset@some@floatbox} -% The macro |\typeset@some@floatbox| take 7 arguments as follows: -% \begin{description} -% \item[type] type of the float to be typeset -% \item[area] area in which to format the float -% \item[floatbody box] box register in which the body of the float -% is stored -% \item[caption heading] fixed text like ``Figure'' -% \item[caption number] caption number of the float -% \item[caption text] caption text of the float -% \item[span count] span count (normally deducable from the area -% but\ldots -% \end{description} -% The first two arguments are used to decide which formatting -% instance to call, the remaining arguments are passed to that -% instance. -% -% The logic is (at the moment) as follows: if a template instance -% (type \texttt{buildfloat}) with the name -% \meta{type}|-|\meta{area}\footnote{The ``here'' areas are -% denoted as \texttt{h}\meta{col}\texttt{1}.} -% is defined then this instance is used, -% otherwise we look if there is an instance with just the name of -% the \meta{area}, otherwise we try an instance with the name -% \meta{type} and if this isn't defined either we try the instance -% named |default|. -% \begin{macrocode} -\def\typeset@some@floatbox#1#2{ % type area - - \IfExistsInstanceTF{buildfloat} - { #1 - #2 } - {\def\use@instance@named{#1 - #2}} - { - \IfExistsInstanceTF{buildfloat} - { #2 } - {\def\use@instance@named{#2}} - { - \IfExistsInstanceTF{buildfloat} - { #1 } - {\let\use@instance@named#1 } % we know this is a token - {\def\use@instance@named{default}} - } - } - \UseInstance{buildfloat}\use@instance@named -} -% \end{macrocode} -% \end{macro} -% -% -% -% \begin{macrocode} -% #1 body box -% #2 fixed text -% #3 counter value -% #4 caption -% #5 span number -\DeclareTemplateType{buildfloat}{5} -% \end{macrocode} -% -% \begin{macrocode} -\DeclareTemplate{buildfloat}{centeredabove}{5} - { - body-caption-sep =l [10pt] \belowcaptionskip, - } - { - \DoParameterAssignments - - \@parboxrestore - - \hsize=#5\columnwidth - - \global\setbox\this@captioned@float\vbox{ - \sbox\@tempboxb{#2~ #3:~ #4} - \ifdim \wd\@tempboxb >\hsize - #2~ #3:~ #4\par - \else - \hb@xt@\hsize{\hfil\box\@tempboxb\hfil}% - \fi - \vskip\belowcaptionskip - \centerline{ - \copy#1 - } - \kern\z@ - } - } -% \end{macrocode} -% -% \begin{macrocode} -\newbox\@tempboxb -% \end{macrocode} -% -% \begin{macrocode} -\DeclareTemplate{buildfloat}{centeredbelow}{5} - { - body-caption-sep =l [10pt] \abovecaptionskip, - } - { - \DoParameterAssignments - - \@parboxrestore - - \hsize=#5\columnwidth - - \global\setbox\this@captioned@float\vbox{ - \centerline{\copy#1} - \vskip\abovecaptionskip - \sbox\@tempboxb{#2~ #3:~ #4} - \ifdim \wd\@tempboxb >\hsize - #2~ #3:~ #4\par - \else - \hb@xt@\hsize{\hfil\box\@tempboxb\hfil}% - \fi - } - } -% \end{macrocode} -% -% \begin{macrocode} -\DeclareTemplate{buildfloat}{bottomright}{5} - { - body-caption-sep =l [10pt] \abovecaptionskip, - } - { - \DoParameterAssignments - - \@parboxrestore - - \hsize=#5\columnwidth - - \global\setbox\this@captioned@float\vbox{ - \@@line{\hss\vbox{\copy#1\kern0pt} - \rlap{ - \hskip\abovecaptionskip -% \end{macrocode} -% rubbish as far as it goes: this should be turned into a real -% template probably using coffins -% \begin{macrocode} - \parbox[b]{\marginparwidth - +(#5\columnwidth-\wd#1)/2}{ - \raggedright - #2~ #3:~ #4 - } - }\hss - } - \kern0pt - } - } -% \end{macrocode} -% -% -% -% \subsection{Some test instances} -% -% \begin{macrocode} -\DeclareInstance{buildfloat}{default}{centeredabove}{} - -\DeclareInstance{buildfloat}{figure}{centeredbelow}{} - -\DeclareInstance{buildfloat}{t31}{bottomright}{} -\DeclareInstance{buildfloat}{t22}{bottomright}{} -\DeclareInstance{buildfloat}{t13}{bottomright}{} -% \end{macrocode} -% -% \endinput -\endinput -% -% $Log: xo-capt.dtx,v $ -% Revision 1.13 2000/08/11 07:14:03 latex3 -% added header -% -% Revision 1.12 2000/08/11 06:47:53 latex3 -% untabify -% -% Revision 1.11 2000/07/19 15:55:53 latex3 -% used \float@type rather than \@captype -% extended buildfloat template to 5 arguments -% -% Revision 1.10 2000/07/10 18:45:23 latex3 -% some normalisation of caption attachment code -- needs more work -% -% Revision 1.9 2000/06/13 20:53:55 latex3 -% docu update -% renamed template type builtfloat to buildfloat -% -% Revision 1.8 2000/05/03 20:16:59 latex3 -% added more arguments to the caption template -% -% Revision 1.7 2000/05/03 20:03:59 latex3 -% fixed typo in macro name -% -% Revision 1.6 2000/05/03 18:52:44 latex3 -% enabling write of toc entries -% adding a prove of concept for caption templates -% diff --git a/Master/texmf-dist/source/latex3/xor/xo-final.dtx b/Master/texmf-dist/source/latex3/xor/xo-final.dtx deleted file mode 100644 index ad4216ea7a3..00000000000 --- a/Master/texmf-dist/source/latex3/xor/xo-final.dtx +++ /dev/null @@ -1,1094 +0,0 @@ -% \iffalse -%% -%% (C) Copyright 1999-2000 Frank Mittelbach, David Carlisle, Chris Rowley -%% All rights reserved. -%% -%% Not for general distribution. In its present form it is not allowed -%% to put this package onto CD or an archive without consulting the -%% the authors. -%% -% \fi -% -% -% \begin{macrocode} -\def\@tempa#1: #2.dtx,v #3 #4 #5 #6 #7${ - \ProvidesPackage{#2}[#4 #3 #5 #6]} -\@tempa$Id: xo-final.dtx,v 1.20 2000/08/11 07:14:09 latex3 Exp $ -% \end{macrocode} -% -% \begin{macrocode} -\IgnoreWhiteSpace -% \end{macrocode} -% -% Update: as of April 3 this now does something reasonable with -% top and bottom floats. The text in between still needs lots of -% attention. No headers/footers/margins/overlays etc etc yet. -% -% There is still a lot of inefficient indirection; this shows where we -% may be able to support more general page-makeup systems. -% -% And not much tracing yet. -% -% \subsection{Text columns} -% -% \begin{macro}{\produce@final@column} -% \begin{macro}{\final@column@with@floats} -% \begin{macro}{\final@column} -% -% This version puts column floats in columns; see below for -% an alternative. It simulates current \LaTeX{} so should not be -% taken as a model for anything useful. -% -% When we remove or modernise this a lot more code from below can go -% too. -% -% \begin{macrocode} -\def\final@column@with@floats { -%<*trace> - \@tracepush{produce@final@column} -%</trace> - \setbox\@outputbox \box\@cclv - - \expandafter - \add@floats@top - \csname area@t1\the\curr@col@count\endcsname - - \ifvoid\footins - \else - \setbox\@outputbox \vbox { - \boxmaxdepth \@maxdepth - \dimen@\dp\@outputbox - \unvbox \@outputbox - \vskip-\dimen@ - \vskip \skip\footins - \color@begingroup - \normalcolor - \footnoterule - \unvbox \footins - \color@endgroup - } - \fi - - \expandafter - \add@floats@bottom - \csname area@b1\the\curr@col@count\endcsname - - \global\setbox\csname col@box@\the\curr@col@count\endcsname - % \vbox { % this should one day become \@colht - \vbox { % this should one day become \@colht - % or else - \@texttop - \dimen@ \dp\@outputbox - \unvbox \@outputbox - \vskip -\dimen@ - \@textbottom - }% - \global \maxdepth \@maxdepth -%<*trace> - \@tracepop{produce@final@column} -%</trace> -} -% \end{macrocode} -% This version does not give special treatment to column floats; it -% simply attachs footnotes and tops/tails. -% -% Probably this should just stuff the main text and footnotes into -% boxes (or a box?) with no extra formatting; all aesthetic handling would -% be done later, when the page is being made-up. -% -% The formatting details are clearly temporary. -% -% \begin{macrocode} -\def\final@column { -%<*trace> - \@tracepush{produce@final@column} -%</trace> - \setbox\@outputbox \box\@cclv - - \ifvoid\footins - \else - \setbox\@outputbox \vbox { - \boxmaxdepth \@maxdepth - \dimen@\dp\@outputbox - \unvbox \@outputbox - \vskip-\dimen@ - \vskip \skip\footins - \color@begingroup - \normalcolor - \footnoterule - \unvbox \footins - \color@endgroup - } - \fi - -% \end{macrocode} -% -% I am not sure if texttop/bottom should survive for long: something -% more spohisictaed is needed these days. This may mean that -% footnotes need better handling too: what makes a complex column -% look good? -% -% \begin{macrocode} - \global\setbox\csname col@box@\the\curr@col@count\endcsname - \vbox { % this should one day become \@colht - % or else - \@texttop - \dimen@ \dp\@outputbox - \unvbox \@outputbox - \vskip -\dimen@ - \@textbottom - }% - \global \maxdepth \@maxdepth -%<*trace> - \@tracepop{produce@final@column} -%</trace> -} -\let \produce@final@column \final@column -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% -% -% \begin{macro}{\add@floats@top} -% \begin{macro}{\add@floats@bottom} -% These are now used (if at all) -% only within columns (maybe not best even there). -% -% \begin{macrocode} -\def\add@floats@top #1{ - \ifx#1\@empty - \else - \setbox\@tempboxa \vbox{} - \let \@elt \@comflelt #1 - \setbox\@outputbox \vbox{ - \boxmaxdepth \maxdepth - \unvbox\@tempboxa - \vskip -\pagesetup@float@float@sep - \topfigrule - \vskip \pagesetup@float@text@sep - \unvbox\@outputbox - } - \let\@elt\relax - \release@floats#1 - \fi -} -% \end{macrocode} -% -% \begin{macrocode} -\def\add@floats@bottom#1{ - \ifx#1\@empty - \else - \setbox\@tempboxa \vbox{} - \let\@elt\@comflelt - #1 - \setbox\@outputbox \vbox{ - \unvbox\@outputbox - \vskip \pagesetup@float@text@sep - \botfigrule - \unvbox\@tempboxa - \vskip -\pagesetup@float@float@sep - } - \let\@elt\relax - \release@floats#1 - \fi -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% -% -% -% \subsection{Shipout and housekeeping} -% -% -% \begin{macro}{\absolute@page@number} -% \begin{macrocode} -\mathchardef\absolute@page@number\c@page -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} - -% \end{macrocode} -% -% \begin{macro}{\produce@final@page} -% -% This puts everything to be shipped out into the hbox -% |\page@box| and then ships this out (not quite, see below!). -% -% Probably these two processes should be separated. -% -% At present it does the page-makeup within the shipped out box; -% this should proably be done earlier. -% -% Should the box (or the box-name) be a global -% fixed object (bad;-) or a local parameter (good;-)? -% -% The shipping out is surrounded by considerable housekeeping: -% this version sets up to do the writes and fixes the -% numbering. -% -% \begin{macrocode} -\def\produce@final@page{ -%<*trace> - \@tracepush{produce@final@page} - \tr@ce{final~ page~ output:~ Chris'~ version} -%</trace> - \begingroup % the \endgroup is put in by \aftergroup -% \end{macrocode} -% -% \begin{macrocode} - \@resetactivechars - \@parboxrestore - \let \protect \noexpand -% \end{macrocode}% -% Temp: just puts stuff into lists (which could have been built up -% as floats are placed?). -% \begin{macrocode} - \do@floats - \shipout \hbox { % NOTE: an hbox now! -% \end{macrocode} -% -% \begin{macrocode} - \set@typeset@protect - \aftergroup \endgroup - \aftergroup \set@typeset@protect -% \end{macrocode} -% Making the box can be done outside the shipout. -% \begin{macrocode} - \make@page@box - \box \page@box - } -% \endgroup %% This is _implicitly_ here. -% \end{macrocode} -% -% \begin{macrocode} - \count@\absolute@page@number -%<*trace> - \tr@ce{absolute~page:~\the\absolute@page@number} -%</trace> - \advance\count@\@ne - \global\advance\c@page\@ne - \global\mathchardef\absolute@page@number\count@ -%<*trace> - \@tracepop{produce@final@page} -%</trace> -} - -% \end{macrocode} -% \end{macro} -% -% \subsection{The page box} -% -% \begin{macro}{\mbox@addtopage} -% \begin{macro}{\box@addtopage} -% \begin{macro}{\page@box} -% This should be generalised to add a box to any box (without overcrowding). -% \begin{macrocode} -\newbox \page@box -\def\mbox@addtopage (#1,#2)#3{% -%<*trace> - \tr@ce{box~being~added~to~page:~at~(#1,~#2) - } -%</trace> - \global \setbox\page@box - \hbox { - \unhbox \page@box - \mbox@put (#1,#2) {#3} - } -} -\def\box@addtopage (#1,#2)#3{% - \mbox@addtopage (#1,#2){\box #3} -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% -% -% \begin{macro}{\make@page@box} -% -% This adds stuff to a globallly named box; maybe it should be more -% generic. -% -% This is some kind of default example. -% It should be templated. -% -% \begin{macrocode} -\def \make@page@box { -%<*trace> - \@tracepush{make@page@box} - \tr@ce{new style page nake-up} -%</trace> -% \end{macrocode} -% Temp for current header: -% \begin{macrocode} - \mbox@addtopage (\pagebodylefthpos, \headheight) - {page:~\thepage} -% \end{macrocode} -% Then add the float areas, using a list of boxes and positions. -% Probably, the whole thing should be done this way but this may -% not be sensible for simple cases. -% -% Also, some alignments (eg text) may be better handled by the -% use of coffins (which are a very similar, but more complex, -% technology). -% -% First set-up starting point for main text body. -% \begin{macrocode} - \forall@columns { - \expandafter \xdef - \csname stack@level@\the\curr@col@count \endcsname - {\pagebodytopvpos} - } - \stack@top@areas - \add@columns - \stack@bot@areas -%<*trace> - \@tracepop{make@page@box} -%</trace> -} -% \end{macrocode} -% \end{macro} -% -% -% \subsection{The page box: text columns} -% -% This needs to be a lot more sophisticated in order to make these -% look anything but dreadful. -% -% \begin{macro}{\add@columns} -% \begin{macro}{\add@columns@topstacked} -% \begin{macro}{\add@columns@botaligned} -% -% Several possibilities here: choose one. -% -% One way to do bottom-aligned columns (probably will not -% generalise well): -% \begin{macrocode} -\def \add@columns@botaligned { -%<*trace> - \@tracepush{add@columns@botaligned} -%</trace> - \setlength \@tempdima {\pagebodylefthpos} - \forall@columns { -%<*trace> - \tr@ce{bot~aligned~column~\the\curr@col@count :~% - ht=\expandafter\the\expandafter\ht - \csname col@box@\the\curr@col@count \endcsname,~ - dp=\expandafter\the\expandafter\dp - \csname col@box@\the\curr@col@count \endcsname} -%</trace> -% \end{macrocode} -% Rules will need to be handled separately: where do they go in -% general with spanning floats? -% \begin{macrocode} -% \vrule - \box@addtopage ( \@tempdima, \pagebodybotvpos ) - {\csname col@box@\the\curr@col@count \endcsname} - \setlength \@tempdima {\@tempdima + \columnwidth + \columnsep} -% \vrule - } -%<*trace> - \@tracepop{add@columns@botaligned} -%</trace> -} -% \end{macrocode} -% -% Stacking them at the top: this must be dome immediately after -% stacking the top areas. They are aligned, if possible, at the -% top (the actual top, not necessarily the top text line). -% -% \begin{macrocode} -\def \add@columns@topstacked { -%<*trace> - \@tracepush{add@columns@topstacked} -%</trace> - \gsetmlength \cuur@col@pos {\pagebodylefthpos} - \forall@columns { -%<*trace> - \tr@ce{top~stacked~column~\the\curr@col@count :~% - ht=\expandafter\the\expandafter\ht - \csname col@box@\the\curr@col@count \endcsname,~ - dp=\expandafter\the\expandafter\dp - \csname col@box@\the\curr@col@count \endcsname} - \tr@ce{vsize~for~column~\the\curr@col@count~was:~% - \csname col@ht@ \the\curr@col@count\endcsname} - \tr@ce{lowered~column~\the\curr@col@count~:~% - \csname stack@level@\the\curr@col@count \endcsname - } -%</trace> - \gsetmlength@c {stack@level@\the\curr@col@count} - { \csname stack@level@\the\curr@col@count \endcsname - + \expandafter - \ht \csname col@box@\the\curr@col@count \endcsname - } -% \end{macrocode} -% Vertical rules will need to be handled differentlyy: -% where do they go in general with spanning floats? -% \begin{macrocode} -% \vrule - \box@addtopage ( \cuur@col@pos, - \csname stack@level@\the\curr@col@count \endcsname ) - {\csname col@box@\the\curr@col@count \endcsname} - \gsetmlength \cuur@col@pos { \cuur@col@pos + \columnwidth + \columnsep} -% \vrule - } -%<*trace> - \@tracepop{add@columns@topstacked} -%</trace> -} -\let \add@columns \add@columns@topstacked -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% -% \subsection{The page box: float areas} -% -% \begin{macro}{\t@stack@area} -% \begin{macro}{\b@stack@area} -% -% The 4th argument must be a procedure that fills a box whose number -% is its last argument. This rather bizarre code merely avoids -% a box-register-per-area. -% -% \begin{macrocode} -\def\t@stack@area #1#2#3#4{ -%<*trace> - \@tracepush{t@stack@area} -%</trace> - #4 \@tempboxa -% \end{macrocode} -% First update stacking position for these columns. -% \begin{macrocode} - \@tempcnta #2 - \@tempcntb #3 \relax - \setlength \@tempdimb {\ht\@tempboxa + \dp\@tempboxa} - \loop - \@tempdima \csname stack@level@\the\@tempcntb \endcsname - \advance \@tempdima \@tempdimb - \expandafter - \xdef \csname stack@level@\the\@tempcntb \endcsname - { \the\@tempdima } - \advance \@tempcntb \@ne - \advance \@tempcnta \m@ne - \ifnum \@tempcnta > \z@ - \repeat -% \end{macrocode} -% Calculate horizontal displacement. -% \begin{macrocode} - \setlength \@tempdima - {\pagebodylefthpos - \columndisplacement + \columndisplacement * #3} -% \end{macrocode} -% Add box. -% \begin{macrocode} -%<*trace> - \tr@ce{float~area~box~#1#2#3~~lowered~:~% - \csname stack@level@#3 \endcsname - } -%</trace> - \box@addtopage (\@tempdima,\csname stack@level@#3\endcsname) - \@tempboxa -%<*trace> - \@tracepop{t@stack@area} -%</trace> -} -% \end{macrocode} -% Different order for co-stacking. -% \begin{macrocode} -\def\b@stack@area #1#2#3#4{ -%<*trace> - \@tracepush{b@stack@area} -%</trace> - #4 \@tempboxa -% \end{macrocode} -% Calculate horizontal displacement. -% \begin{macrocode} - \setlength \@tempdima - {\pagebodylefthpos - \columndisplacement + \columndisplacement * #3} -% \end{macrocode} -% Add box. -% \begin{macrocode} - \box@addtopage (\@tempdima,\csname stack@level@#3\endcsname) - \@tempboxa -% \end{macrocode} -% Then update stacking position for these columns. -% \begin{macrocode} - \@tempcnta #2 - \@tempcntb #3 \relax - \setlength \@tempdimb {\ht\@tempboxa + \dp\@tempboxa} - \loop - \@tempdima \csname stack@level@\the\@tempcntb \endcsname - \advance \@tempdima -\@tempdimb - \expandafter - \xdef \csname stack@level@\the\@tempcntb \endcsname - { \the\@tempdima } - \advance \@tempcntb \@ne - \advance \@tempcnta \m@ne - \ifnum \@tempcnta > \@ne - \repeat -%<*trace> - \@tracepop{b@stack@area} -%</trace> -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\stack@top@areas} -% \begin{macro}{\stack@bot@areas} -% -% Use of these is all a bit ad hoc for a particular stacking system. -% -% \begin{macrocode} -\def \stack@bot@areas { - \stack@areas@list b \pagebodybotvpos \pagebox@list@b -} -\def \stack@top@areas { - \stack@areas@list t \pagebodytopvpos \pagebox@list@t -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\stack@areas@list} -% -% |#1| : stacking type (t, b or c at present)\\ -% |#2| : starting position\\ -% |#3| : list name -% -% \begin{macrocode} -\def \stack@areas@list #1#2#3 { -%<*trace> - \@tracepush{stack@areas@list} -%</trace> - \ifx #3 \@empty - \else - \forall@columns { -% \end{macrocode} -% Starting point: -% \begin{macrocode} -% \vrule - \expandafter \xdef - \csname stack@level@\the\curr@col@count \endcsname - {#2} - } -% \end{macrocode} -% Stacking or co-stacking: bottom-up or top-down. -% \begin{macrocode} - \expandafter - \let \expandafter - \p@elt \csname #1@stack@area \endcsname - #3 - \fi -%<*trace> - \@tracepop{stack@areas@list} -%</trace> -} -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\make@area@floats@box} -% -% Format all the floats in a list and store the result in a box register. -% This should be templated. -% -% This could do the file-writing too. -% -% |#1| : area-name\\ -% |#2| : box to be filled -% -% \begin{macrocode} -\def\make@area@floats@box #1#2 { -%<*trace> - \@tracepush{make@area@floats@box} -%</trace> - \setbox #2 \vbox{} -% \let \@elt \@comflelt % Big aaah! - \def \@elt { \typeset@float@in@box {#2} } - \csname area@#1\endcsname -% \end{macrocode} -% Not very pretty yet! But better when decoration -% stuff is used. -% \begin{macrocode} - \let \@elt \relax - \expandafter - \release@floats - \csname area@#1\endcsname -%<*trace> - \@tracepop{make@area@floats@box} -%</trace> -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{DECORATIONS} -% Not used at present but something like this is probably needed. -% -% \begin{macrocode} - -\def \box@decorate@bot #1 { - \setbox #1 \vbox{ - \vskip \pagesetup@float@text@sep - \botfigrule - \unvbox #1 - \vskip -\pagesetup@float@float@sep - } -} -\def \box@decorate@top #1 { - \setbox #1 \vbox{ - \unvbox #1 - \vskip -\pagesetup@float@float@sep - \topfigrule - \vskip \pagesetup@float@text@sep - } -} - - -% \end{macrocode} -% \end{macro} -% -% -% \subsection{The page box: margins} -% -% Needed? -% -% \subsection{The page box: headers and footers} -% -% Nothing worth puting here yet. -% -% \subsection{The page box: other} -% -% Maybe should be many subsections: eg overlays. -% -% \subsection{Typesetting captions and float boxes} -% -% All more or less temporary. -% -% \begin{macro}{\@comflelt} -% \begin{macro}{\typeset@float@in@box} -% -% Maybe a bad name but this is probably as generic as it can be at -% present (and one would hate to see the name's demise). -% -% \begin{macrocode} -\def\@comflelt #1 { - \global \let \this@float@box #1 - \expandafter - \extract@this@float@actual@structure \the\toks #1 - \setbox\@tempboxa \vbox { - \unvbox\@tempboxa - \typeset@this@float@and@caption - } - } -% \end{macrocode} -% -% Thus sadly we maybe should move to this, avoiding the use of a -% global variable for parameter passing. -% -% \begin{macrocode} -\def\typeset@float@in@box #1 #2 { - \global \let \this@float@box #2 - \expandafter - \extract@this@float@actual@structure \the\toks #2 - \setbox #1 \vbox { - \unvbox #1 - \typeset@this@float@and@caption - } - } -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% -% -% \begin{macro}{\typeset@this@float@and@caption} -% -% This should really be a template instance. -% -% It must be integrated with the generic version of -% |\append@caption@to@float| since they must both do the same thing. -% -% May use |\this@area|, |\this@area@col@number| and other information, -% to be determined \ldots even |\this@caption@action|. -% -% First we disable premature captioning (fascist or what?). -% -% \begin{macrocode} -%<*obsolete> -\let\add@caption@to@float@box \relax -%</obsolete> - -%<*obsolete> -\def \typeset@this@float@and@caption { - \box\this@float@box - \nobreak - \smallskip - \hsize\columnwidth - \this@caption \par - \bigskip - \hrule - \vskip\pagesetup@float@float@sep - } -% Reminder ABOVE ONLY WORKS WITH THIS: -% \def\append@caption@to@float{ -% \global\setbox\this@captioned@float\vbox{ -% \copy\this@float@box -% \smallskip -% \hsize\columnwidth -% \this@caption -% \par\bigskip\hrule} -% } -%</obsolete> -% \end{macrocode} -% \end{macro} -% -% \subsection{Page box lists} -% -% \begin{macro}{\pagebox@area} -% \begin{macro}{\@addto@pagebox@list} -% -% Bad names? -% -% Add the float areas to a page-box list, and specify how to -% process them. This should be templated. The columns could be added -% to this list. -% -% The 2nd argument must at present be a procedure that has two -% arguments and it is expected to fill a box whose number -% is its last argument. This rather bizarre code merely avoids -% a box-register-per-area. -% -% |#1| : area-name -% |#2| : action for each float in area -% |#3| : area-position -% -% \begin{macrocode} -\def\pagebox@area #1#2#3 { -%<*trace> - \@tracepush {pagebox@area} -%</trace> - \expandafter - \let \expandafter - \this@list \csname area@#1\endcsname -%<*trace> - \tr@ce{adding~ floats~ (if any)~ #1~ ==~ `\this@list'~ - to~page~list:~#3 } -%</trace> - \ifx \this@list \@empty - \else - \let \p@elt \relax - \@addto@pagebox@list {#3} - { \p@elt #1 { #2 {#1}} } - \fi -%<*trace> - \@tracepop {pagebox@area} -%</trace> -} -% \end{macrocode} -% Ugh!! Improve? -% \begin{macrocode} -\def \@addto@pagebox@list #1#2 { - \@temptokena \expandafter\expandafter\expandafter - { \csname pagebox@list@#1 \endcsname - #2 - } - \expandafter - \xdef - \csname pagebox@list@#1 \endcsname - { \the\@temptokena } -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% -% \subsection{Magic boxes} -% -% \begin{macro}{\mbox@put} -% \begin{macro}{\box@put} -% \begin{macro}{\copy@put} -% -% Probably move sometime.\footnote{Move?} -% -% These add boxes with the specified visual relative position -% but all-zero dimensions (unlike picture mode where the inner -% boxes have non-zero vertical size). A highly generalised lap-box! -% -% At present these use Don Knuth's left-handed DVI co-ordinate -% system. They could (should?) be changed to a saner system as used -% by \LaTeX{}, Postscript and the rest of the known civilised world -% since Descartes. -% -% \begin{macrocode} -\def\mbox@put (#1,#2)#3{% - \setbox\@tempboxa \hbox { -% \raise #2 % Ugh! Zany y-direction--- - \lower #2 % thanks Don! - \hbox {\kern#1 #3\hss} - } -% \end{macrocode} -% For this application we must zero everything. -% \begin{macrocode} - \wd \@tempboxa \z@ - \ht \@tempboxa \z@ - \dp \@tempboxa \z@ - \box\@tempboxa - } -% \end{macrocode} -% -% \begin{macrocode} -\def\box@put (#1,#2)#3{% - \mbox@put (#1,#2) {\box #3} -} -% \end{macrocode} -% -% \begin{macrocode} -\def\copy@put (#1,#2)#3{ - \mbox@put (#1,#2) {\copy #3} -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% -% \subsection{Move me!} -% -% Stuff for elsewhere; maybe to xo-new right now? -% -% \begin{macro}{\forall@areas} -% \begin{macro}{\def \make@useful@list@aux} -% \begin{macro}{\def \make@useful@list} -% Area list stuff\footnote{Probably move.}. -% -% These should be more generally used/available whatever area lists, -% however impemnted, we end up with. -% -% This list manipulation stuff works only for lists whose elements are -% unexpandable; this could be extended. -% \begin{macrocode} -\def \forall@areas #1 { - \def \area@elt ##1##2##3 { - \def \curr@area {##1##2##3} - \def \curr@pos {##1} - \def \curr@col {##3} - \def \curr@span {##2} - #1 - } - \used@areas@exec -} - -\def \make@useful@list@aux #1#2#3 { - \ifx #1 \relax - \else - \expandafter - \xdef \csname \temp@list@name @exec \endcsname - {\csname \temp@list@name @exec \endcsname \temp@list@elt #1#2#3 } - \expandafter - \make@useful@list@aux - \fi -} -\def \make@useful@list #1 #2 { - \edef \temp@list@name - {\expandafter \@gobble \string #1} - \def \temp@list@elt {#2} - \let #2 \relax - \expandafter - \let \csname \temp@list@name @exec \endcsname \@empty - \expandafter - \make@useful@list@aux #1\relax\relax\relax -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% -% -% \begin{macro}{\release@floats} -% -% \begin{macrocode} -\def\release@floats#1{ -% \show #1 - \xdef \@freelist {\@freelist#1} - \global\let#1\@empty -} -% \end{macrocode} -% \end{macro} -% -% More helper functions (some not yet used)\footnote{To be moved}. -% -% Lettings. -% -% \begin{macro}{\let@nc} -% \begin{macro}{\let@cn} -% \begin{macro}{\let@cc} -% \begin{macrocode} -\def \let@nc #1 #2 { - \expandafter - \let \expandafter - #1 \csname #2\endcsname -} -\def \let@cn #1 { - \expandafter - \let \csname #1\endcsname -} -\def \let@cc #1 { - \expandafter - \let@nc \csname #1\endcsname -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% -% Macrised lengths etc. -% -% \begin{macro}{\setmlength} -% \begin{macro}{\gsetmlength} -% \begin{macrocode} -\def \gsetmlength #1#2 { - \setlength \@tempdima {#2} - \xdef #1 {\the\@tempdima} -} -\def \gsetmlength@c #1#2 { - \setlength \@tempdima {#2} - \expandafter - \xdef \csname #1\endcsname - {\the\@tempdima} -} -\def \setmlength #1#2 { - \setlength \@tempdima {#2} - \edef #1 {\the\@tempdima} -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \subsection{Really temp stuff} -% -% \begin{macro}{TEMP@KLUDGES} -% Some very temporary (very bad) examples and kludges: -% \begin{macrocode} -\def \do@floats { -%<*trace> - \@tracepush{do@floats} -%</trace> - \make@useful@list \used@areas \area@elt - \let \pagebox@list@t \@empty - \let \pagebox@list@b \@empty - \forall@areas { - \expandafter - \pagebox@area - \expandafter - {\curr@area} \make@area@floats@box {\curr@pos} - } -%<*trace> - \tr@ce{ - pagebox~list:~t~ is~\meaning \pagebox@list@t} - \tr@ce{ - pagebox~list:~b~ is~\meaning \pagebox@list@t} - \@tracepop{do@floats} -%</trace> -} - -% \end{macrocode} -% -% Temp place for these calcs. They should be part of the page layout -% set-up.\footnote{Move?} -% Temp positioning stuff: -% \begin{macrocode} -\AtBeginDocument { -%% vert - \setlength \@tempdima {\headheight + \headsep} - \xdef \pagebodytopvpos {\the\@tempdima} - - \setlength \@tempdima {\@tempdima + \textheight} - \xdef \pagebodybotvpos {\the\@tempdima} - -%% horiz - \setlength \@tempdima {\columnwidth + \columnsep} - \xdef \columndisplacement {\the\@tempdima} - - \def \pagebodylefthpos {\z@} % or whatever?) - -% \show \pagebodytopvpos -% \show \pagebodybotvpos -% -% \showthe \headheight -% \showthe \headsep -% \showthe \textheight -% \showthe \textwidth -% \showthe \columnwidth -} - -% \end{macrocode} -% \end{macro} -% -% \endinput -\endinput -% -% $Log: xo-final.dtx,v $ -% Revision 1.20 2000/08/11 07:14:09 latex3 -% added header -% -% Revision 1.19 2000/07/19 15:56:46 latex3 -% removed \extract@this@float@actual@structure (is now in xo-or awaiting -% normalisation with similar commands) -% -% Revision 1.18 2000/07/10 18:46:11 latex3 -% mainly macro renamings -% -% Revision 1.17 2000/06/16 11:20:40 latex3 -% rename \construct@and@test@col@height to \construct@and@test@col@ht -% rename \construct@and@test@col@heights to \construct@and@test@col@hts -% rename \cl@height1 to \@col@ht@1 (etc) -% -% Revision 1.16 2000/06/13 21:17:32 latex3 -% move setting of \protect so that it works -% -% Revision 1.15 2000/04/12 20:52:39 car2 -% Much tidyng: farewell comflelt! -% -% Revision 1.14 2000/04/06 22:14:00 car2 -% added caption setting -% -% Revision 1.13 2000/04/03 12:09:28 car2 -% alpha version -% -% Revision 1.12 2000/04/03 10:59:31 car2 -% Untidy alpha -% -% Revision 1.11 2000/03/30 21:06:28 car2 -% Chris' alpha-minus version -% -% Revision 1.10 2000/03/24 15:34:27 latex3 -% version that starts supporting spans (still a hack yet) -% -% Revision 1.9 2000/03/22 15:29:42 latex3 -% some normalisations of names -% -% Revision 1.8 2000/03/09 14:44:31 latex3 -% *** empty log message *** -% -% Revision 1.7 2000/03/05 19:38:12 latex3 -% support multiple columns (6 max right now) -% -% Revision 1.6 2000/02/26 18:25:10 david -% release floats changes -% -% Revision 1.5 2000/02/16 17:34:31 latex3 -% bit of extra tracing to find why columns do not align (no good :-) -% -% Revision 1.4 2000/02/16 13:39:47 latex3 -% added 3col support -% -% Revision 1.3 2000/02/16 10:19:03 latex3 -% better code for adding floats to column (using \pagesetup@float@text@sep and friends) -% -% Revision 1.2 2000/02/13 22:28:10 latex3 -% moved some stuff from xo-or.sty to this file -% diff --git a/Master/texmf-dist/source/latex3/xor/xo-float.dtx b/Master/texmf-dist/source/latex3/xor/xo-float.dtx deleted file mode 100644 index cc552fe25b0..00000000000 --- a/Master/texmf-dist/source/latex3/xor/xo-float.dtx +++ /dev/null @@ -1,950 +0,0 @@ -% \iffalse -%% -%% (C) Copyright 1999-2000 Frank Mittelbach, David Carlisle, Chris Rowley -%% All rights reserved. -%% -%% Not for general distribution. In its present form it is not allowed -%% to put this package onto CD or an archive without consulting the -%% the authors. -%% -% \fi -% - -% \begin{macrocode} -\def\@tempa#1: #2.dtx,v #3 #4 #5 #6 #7${ - \ProvidesPackage{#2}[#4 #3 #5 #6]} -\@tempa$Id: xo-float.dtx,v 1.32 2000/08/11 07:14:11 latex3 Exp $ -% \end{macrocode} -% -% Ignore white space in this package. -% \begin{macrocode} -\IgnoreWhiteSpace -% \end{macrocode} -% -% -% -% \begin{macro}{\@xfloat} -% The start of a float environment. -% Unlike \LaTeXe, now save the float as a horizontal list. -% \begin{macrocode} -\def\@xfloat #1[#2]{% -%<*trace> -\@tracepush{float~environment} -%</trace> - \@nodocument -% #2 is either user suplied or \fps@#1 (from 2e again) - \def \@fps {#2} - \def \float@type {#1} -% \end{macrocode} -% Next line could be inline since it is used only once -% now.\footnote{Change?} -% \begin{macrocode} - \expandafter \let \expandafter - \float@sequence@class \csname sequence@class@#1 \endcsname -% \end{macrocode} -% -% \begin{macrocode} - \expandafter \let \expandafter - \float@counter \csname counter@#1 \endcsname -% \end{macrocode} -% Floats (not caption) increment counter: -% \begin{macrocode} - \refstepcounter\float@counter - \ifhmode - \@bsphack - \fi - \ifinner - \@parmoderr\@floatpenalty\z@ - \else - \@allocating@next\@currbox\@freelist - { -% -% not used any longer: -% -% \global\expandafter\let\csname fps@\the\@currbox\endcsname -% \@fps -% \global\expandafter\let\csname ftype@\the\@currbox\endcsname -% \@captype -% - \global\advance\float@sequence@count\@ne - \expandafter\PutMark\expandafter\float@sequence@class\expandafter{ - \the\float@sequence@count} - \global\toks\@currbox{} - } - \fi -% \end{macrocode} -% -% Save |\@currbox| as an |\hbox|. -% \begin{macrocode} - \global\let\@saved@label\@empty - \global \setbox\@currbox -% \end{macrocode} -% The float body is typeset in a normalised environment, i.e.., we -% reset colour and font. This is followed by a call to -% |\body@|\meta{type} to allow the designer to set up special -% conventions for each float type, e.g., a special font or font -% size or a special colour, etc. -% \begin{macrocode} - \hbox \bgroup\color@begingroup - \normalcolor - \normalfont - \normalsize - \csname body@\float@type \endcsname - \ignorespaces} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\@endfloatbox} -% The end of a float environment. -% First finish off the box assignment. Then make a copy in a second box. -% The current code makes use of the fact that the allocated boxes -% are in two continuous runs, |\sbx@offset| apart. -% \begin{macrocode} -\def \@endfloatbox{% - \unskip - \outer@nobreak - \color@endgroup - \egroup - \edef\@tempa{ - \global\toks\@currbox{ - {\the\toks\@currbox}{\SPANCNT} - {\@saved@label} - {\csname the\float@counter \endcsname} - {\@fps} - {\float@type} - {\the\float@sequence@count} - }} - \@tempa -%<*trace> -\tr@ce{\the\toks\@currbox} -%</trace> -% \end{macrocode} -% Simple temporary interface to get here floats for testing. Needs -% replacment!\footnote{FIX!!!} -% \begin{macrocode} - \def\@tempa{h} - \ifx\@fps\@tempa - \setup@here@float - \else - \@cons\@activelist\@currbox - \fi -%<*trace> -\@tracepop{float~environment} -%</trace> -} - -\def\SPANCNT{} %%% do properly one day: David - - -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\float@sequence@count} -% |\float@sequence@count| is the counter used to uniquely refer -% to the floats, it is incremented whenever we encounter a new float. -% \begin{macrocode} -\newcount\float@sequence@count -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\label} -% Modify to save the label string. -% \begin{macrocode} -\def\label#1{\@bsphack - \gdef\@saved@label{#1} - \protected@write\@auxout{}% - {\string\newlabel{#1}{{\@currentlabel}{\thepage}}}% - \@esphack} -% \end{macrocode} -% \end{macro} -% -% -% -% -% -% -% \begin{macro}{\DeclareFloatType} -% A float type is an identifier like ``figure'' the defines a class -% (?) of floats of floats which have certain attributes in common, -% e.g., they have the same fixed caption text (e.g. \texttt{Fig}), -% they use the same counter to number the floats, etc. -% -% Setting up a float type is done by declaring an instance of type -% \texttt{floattypesetup} and then executing it. -% \begin{macrocode} -\def\DeclareFloatType#1#2{ - \DeclareInstance{floattypesetup}{#1}{std} - { type-id = #1, #2 } - \UseInstance{floattypesetup}{#1} -} -% \end{macrocode} -% -% For each float type \texttt{TYPE} the following utility macros -% hold important static data. -% -% \DescribeMacro\sequence@class@TYPE -% The |\sequence@class@TYPE| holds the name of the float sequence -% class the float type |TYPE| belongs to. A sequence class contains -% all types which should be placed in order of their call-outs, -% e.g., if type ``figure'' and ``table'' are in the same sequence -% class a table whose call-out is later than that of a figure will -% not be placed before it. If on the other hand these types are in -% different sequence classes such reordering will be undertaken by -% the placement algorithm if feasible. -% -% -% \DescribeMacro\toc@extension@TYPE -% The |\toc@extension@TYPE| holds the file extension to which -% caption information for this type is written, e.g., |lot| for -% tables, or |lof| for figures. If there is the desire to produce -% combined listing one can use the same extension for different -% float types.\footnote{This functionality can alternatively be -% provided by putting all captions into a single external file and -% then ignore certain entries when reading the data back, so it -% might vanish again.} -% -% -% \DescribeMacro\fps@TYPE -% The |\fps@TYPE| holds the default float areas in which this float -% type is allowed to go. By default this is the full list of all -% known areas. By restricting it to a subset of areas it is -% possible to provide special placement arrangements, e.g., tables -% always at the bottom only. -% -% -% \DescribeMacro\caption@TYPE -% The |\caption@TYPE| holds the fixed caption text which is -% displayed together with the caption number, e.g., |Figure|, -% etc. This is passed to the caption formatting instances. -% -% -% \DescribeMacro\counter@TYPE -% The |\counter@TYPE| holds the name of the counter to use for -% numbering the floats of type |TYPE|. It is possible that -% different types share the same counter, i.e., are numbered as a -% single sequence. However in that case one should probably ensure -% that the types belong to a single float sequence class since -% otherwise the numbers within the document might get out of -% sequence. On the other hand it is not required to have floats in -% the same sequence class share a counter; they can be numbered -% independently without problems. -% -% \DescribeMacro\body@TYPE -% The |\body@TYPE| holds the formatting instructions that should be -% applied to the body of each float of type |TYPE|. -% -% \begin{macrocode} -\DeclareTemplateType{floattypesetup}{0} - -\DeclareTemplate{floattypesetup}{std}{0}{ - type-id =n \floattypesetup@id, - sequence-class-id =n \floattypesetup@class@id, - toc-extension =n \floattypesetup@toc@ext, - default-area-list =n \floattypesetup@area@list, - caption-text =n \floattypesetup@caption@text, - numbered-boolean =b @test, - numbered-id =n \floattypesetup@numbered@id, - numbered-within-id =n \floattypesetup@numbered@within@id, - numbered-action =f0 \floattypesetup@numbered@action, - body-decls =f0 \floattypesetup@body@decls, - - } - { -% \end{macrocode} -% Setting up defaults is done (at least in parts) in two steps: -% first we set certain key commands to |\relax| then we run -% |\DoParameterAssignments| and then check if they are still -% |\relax|. If so we set the commands that we really want to -% set. This is necessary because several of them have names that -% contain the float type as part of the name and this type name is -% one of the keys. -% \begin{macrocode} - \let\floattypesetup@class@id\relax - \let\floattypesetup@numbered@id\relax - \let\floattypesetup@numbered@action\relax - \let\floattypesetup@body@decls\relax -% \end{macrocode} -% Now for the defaults we can set directly: -% the |@test| switch is locally used to denote that we want to -% number the floats. -% \begin{macrocode} - \@testtrue % number by default -% \end{macrocode} -% The areas which should be tried for the current type are by -% default all areas, i.e., |\known@areas|; we use |\def| not |\let| -% to allow this list to grow afterwards. -% \begin{macrocode} - \def\floattypesetup@area@list{\known@areas} -% \end{macrocode} -% Default for the fixed caption text is |\@empty|. -% \begin{macrocode} - \let\floattypesetup@caption@text\@empty -% \end{macrocode} -% By default we don't run the float counter within another -% counter. We use |\@empty| to denote this since this is also what -% would be returned from |numbered-within-id=,| which might be -% specified by a user. -% \begin{macrocode} - \let\floattypesetup@numbered@within@id\@empty -% \end{macrocode} -% Everything goes by default to the |.toc| file (which isn't too -% bad if the extended \texttt{xcontents} package is used. -% \begin{macrocode} - \def\floattypesetup@toc@ext{toc} % everything in here by default -% \end{macrocode} -% Now we are ready to look at the designer specifications: -% \begin{macrocode} - \DoParameterAssignments -% \end{macrocode} -% Now for the second step: evaluate what we have: If the -% |sequence-class-id| is not set up, we try to default it to the -% |type-id|: -% \begin{macrocode} - \ifx\floattypesetup@class@id\relax - \let\floattypesetup@class@id\floattypesetup@id - \fi -% \end{macrocode} -% Float numbers are only set up if requested (which is the default). -% \begin{macrocode} - \if@test -% \end{macrocode} -% If the |numbered-id| is not set up, we try to default it to -% the |type-id|:\footnote{This needs fixing since part of the float -% handling assumes there is some counter to step etc. FIX!} -% \begin{macrocode} - \ifx\floattypesetup@numbered@id\relax - \let\floattypesetup@numbered@id\floattypesetup@id - \fi -% \end{macrocode} -% Set up the new counter, if it already exists skip this part: -% \begin{macrocode} - \expandafter\ifx\csname c@\floattypesetup@numbered@id \endcsname - \relax - \ifx\floattypesetup@numbered@within@id\@empty - \newcounter\floattypesetup@numbered@id - \else - \newcounter\floattypesetup@numbered@id - [\floattypesetup@numbered@within@id] - \fi -% \end{macrocode} -% The default display for the float number is ``arabic'', we -% overwrite this only if requested: -% \begin{macrocode} - \ifx\floattypesetup@numbered@action\relax - \else - \global\expandafter\let - \csname the\floattypesetup@numbered@id \endcsname - \floattypesetup@numbered@action - \fi - \fi - \fi -% \end{macrocode} -% -% Low-level environment declaration (allows overwriting since -% figure etc already exists)\footnote{Handle better?} -% \begin{macrocode} - \expandafter - \xdef\csname \floattypesetup@id \endcsname - {\noexpand\@float{\floattypesetup@id}} - \global\expandafter \let \csname end\floattypesetup@id \endcsname - \end@float -% \end{macrocode} -% The remaining bits of the code set up the data structures that -% belong to each float type by linking the macro name containing -% the type in its name (i.e., |\floattypesetup@id|) to the -% corresponding key macro. Theay are otherwise straight forward -% |\let|s. -% -% First for |\sequence@class@|\meta{type}: -% \begin{macrocode} - \global\expandafter\let - \csname sequence@class@\floattypesetup@id \endcsname - \floattypesetup@class@id -% \end{macrocode} -% Then |\toc@extension@|\meta{type}: -% \begin{macrocode} - \global\expandafter\let - \csname toc@extension@\floattypesetup@id \endcsname - \floattypesetup@toc@ext -% \end{macrocode} -% Then |\fps@|\meta{type}: -% \begin{macrocode} - \global\expandafter\let - \csname fps@\floattypesetup@id \endcsname - \floattypesetup@area@list -% \end{macrocode} -% Then |\caption@|\meta{type}: -% \begin{macrocode} - \global\expandafter\let - \csname caption@\floattypesetup@id \endcsname - \floattypesetup@caption@text -% \end{macrocode} -% Then |\counter@|\meta{type}: -% \begin{macrocode} - \global\expandafter\let - \csname counter@\floattypesetup@id \endcsname - \floattypesetup@numbered@id -% \end{macrocode} -% Then |\body@|\meta{type}: -% \begin{macrocode} - \global\expandafter\let - \csname body@\floattypesetup@id \endcsname - \floattypesetup@body@decls - } -% -% -% -% -% \begin{macro}{\DeclareFloatSequenceClass} -% A float sequence class is a list of float types for which the -% placement algorithm should preserve call-out order even between -% objects with different float type. -% -% For each class we need a corresponding ``mark'' (needed by the -% algorithm) and we need to record the class name in an |\@elt| -% list. -% -% Perhaps this declaration should be implicitly handled by -% |\DeclareFloatType|. It would mean a bit more work for the latter -% but less declarations in the document design!\footnote{Change one -% day!} -% \begin{macrocode} -\def\DeclareFloatSequenceClass#1{ -% \end{macrocode} -% We probably have to check if that class is already -% declared since in that case we have to leave out a couple of -% actions. We assume that this is the case if a mark class is -% already defined for it.\footnote{Do it properly!} -% \begin{macrocode} - \@ifundefined{mark@#1} - { - \DeclareMarkType{#1} -% \end{macrocode} -% Add this to the list of known classes. -% \begin{macrocode} - \@cons\float@classes@list{{#1}} - } - \ErrorAlreadyDefined -} -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\float@classes@list} -% The list of float classes known in the system. -% \begin{macrocode} -\let\float@classes@list\@empty -% \end{macrocode} -% \end{macro} -% -% -% -% \begin{macro}{\c@figure} -% \begin{macro}{\c@table} -% Throw away good registers\ldots this is only for testing to allow -% us using the OR together with classes like article that sets up -% figure and table already\footnote{Clean up!} -% \begin{macrocode} -\expandafter\ifx\csname c@figure \endcsname \relax -\else - \let\c@figure\relax % thus new counter will be defined - \let\c@table \relax -\fi -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% -% -% -% -% -% -% -% \subsection{Float Placement Control Files} -% -% \begin{macro}{\perhaps@write@placements@to@fpl@file} -% |\perhaps@write@placements@to@fpl@file| writes all float -% placements (except for ``here'' floats) into the |fpl| in case we -% are writing to this file. -% -% By default, don't write fpl files. -% \begin{macrocode} -\let\perhaps@write@placements@to@fpl@file\relax -\let\perhaps@write@to@fpl@file\@gobble -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\perhaps@write@to@fpl@file} -% |\perhaps@write@to@fpl@file| writes its first argument to the -% |fpl| in case we are writing to it. -% -% By default, don't write fpl files. -% \begin{macrocode} -\let\perhaps@write@to@fpl@file\@gobble -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\perhaps@write@placements@to@fpl@file@aux} -% The format for a Float: line in an |fpl| file. Only the sequence -% number (|#7|) is currently used, the rest just helps a human -% reader identify the float. -% \begin{macrocode} -\def\perhaps@write@placements@to@fpl@file@aux#1#2#3#4#5#6#7{ - \@spaces\@spaces Float:~#7~(#6~#4)~[#3]^^J} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\savefloatplacements} -% Declaration to turn on writing of FPL files. -% \begin{macrocode} -\def\savefloatplacements{ - \newwrite\fpl@file - \immediate\openout\fpl@file\jobname.fpl - \def\perhaps@write@to@fpl@file{ - \immediate\write\fpl@file - } - \def\perhaps@write@placements@to@fpl@file{ - \def\@elt{\expandafter - \perhaps@write@placements@to@fpl@file@aux\the\toks} - \perhaps@write@to@fpl@file{ - ^^JPage:~\the\absolute@page@number\space (\the\c@page)^^J -% \end{macrocode} -% -% \begin{macrocode} - \expandafter\@write@areas\used@areas\relax\relax\relax - } - \let\@elt\relax}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\@write@areas} -% |\@write@areas| loops through an area list (like |\used@areas|) -% and writes lines for every float, provided that |\@elt| is -% properly set up before. It is used inside a |\write| so needs to -% be expandable! -% \begin{macrocode} -\def\@write@areas#1#2#3{ - \ifx\relax#1 - \else - \expandafter\ifx\csname area@#1#2#3\endcsname\@empty - \else - \@spaces Area:~#1#2#3^^J\csname area@#1#2#3\endcsname - \fi - \expandafter\@write@areas - \fi} -% \end{macrocode} -% Alternate version that writes out all areas even if they don't -% contain any floats. -% \begin{macrocode} -\def\@write@areas#1#2#3{ - \ifx\relax#1 - \else - \@spaces Area:~#1#2#3^^J\csname area@#1#2#3\endcsname - \expandafter\@write@areas - \fi} -% \end{macrocode} -% \end{macro} -% -% -% -% -% \begin{macro}{\readfloatplacements} -% Similar declaration to read FPC files. The file is read at this -% point up to th efirst Page: line. and the output routine command -% |\float@placement@loop| is redefined to read the FPC info for each page. -% \begin{macrocode} -\def\readfloatplacements{ - \newread\fpc@file - \openin\fpc@file\jobname.fpc\relax - \ifeof\fpc@file - \PackageWarningNoLine{xo} - {No~\jobname.fpc:~using~automatic~float~placement} - \else - \let\get@fpc@page@data\get@fpc@page@data@fpc - \get@fpc@page@data - \let\try@float@pages\relax -% \end{macrocode} -% Next line should go once we implement moving floats in and out of -% ``here'' as then we need to read the file at a different -% place!\footnote{Reimplement!} -% \begin{macrocode} - \let\float@placement@loop\fpc@float@placement@loop - \fi -} -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\fpc@float@placement@loop} -% Version of |\try@float@pages| to use with float placement control file. -% Should be moved to xo-or once it works. -% \begin{macrocode} -\def\fpc@float@placement@loop{ -%<*trace> - \@tracepush{fpc@float@placement@loop} -%</trace> -% \end{macrocode} -% Don't think the the next line has any meaning, so -% removed.\footnote{Old command only did set up best@trial, which -% is later on set to relax anyway. Correct to remove?} -% \begin{macrocode} -% \initialise@best@trial - \get@fpc@page@data - \global\let\best@trial\relax -% \end{macrocode} -% -% \footnote{Do we have to set run@with@floats? Check!} -% \begin{macrocode} - \mark@restore@state{ - \unvcopy\@holdpg - \setup@best@column@or - } -%<*trace> - \@tracepop{fpc@float@placement@loop} -%</trace> -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\next@fpc@page} -% The next page for which there is FPC data. Initial value has to be -% a number to |\ifnum|. -% \begin{macrocode} -\let\next@fpc@page\m@ne -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\get@fpc@page@data} -% -% \begin{macrocode} -\let\get@fpc@page@data\relax -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\get@fpc@page@data@fpc} -% get one line of data from an FPC file, calls itself recursively -% so the effect of a call is to get all the lines for the current page -% up to and including the Page: line for the next page for which there -% is data. -% \begin{macrocode} -\def\get@fpc@page@data@fpc{ -%<*trace> -\@tracepush{get@fpc@page@data@fpc} -%</trace> - \let\@nextfpc\relax - \ifnum\next@fpc@page>\absolute@page@number -%<*trace> - \tr@ce{No~ float~ control~ on~ page:~ \the\absolute@page@number} -%</trace> - \else - \ifeof\fpc@file -%<*trace> - \tr@ce{fpc~ file~ended} -%</trace> - \global\let\next@fpc@page\maxdimen - \else - \begingroup - \endlinechar`\ % - \catcode`\ 10\relax - \global\read\fpc@file~to~\@gtempa - \endgroup - \let\@nextfpc\get@fpc@page@data - \ifx\@gtempa\@empty - \else - \expandafter\parse@fpc\@gtempa\relax - \fi - \fi - \fi -%<*trace> -\@tracepop{get@fpc@page@data@fpc} -%</trace> - \@nextfpc -} -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{parse@fpc} -% If float control files are being read, -% Read the section of the fpc file for this page -% and directly assign floats to the specified areas -% with no trials or checks. -% \begin{macrocode} -\def\parse@fpc#1#2~#3~#4\relax{ - \ifx P#1 -%<*trace> -\tr@ce{Next~page~control:~#3} -%</trace> - \global\mathchardef\next@fpc@page#3\relax - \let\@nextfpc\relax - \else\ifx A#1 -%<*trace> -\tr@ce{Area:~#3} -%</trace> - \setup@this@area{#3} - \let\@nextfpc\get@fpc@page@data - \else\ifx F#1 - \ifx\this@area\fpc@here -% \end{macrocode} -% Should allow moving floats into and out of here status means -% reading before the collecton OR, not after.\footnote{FIX, update, -% extend --- whatever you want to call it.} -% \begin{macrocode} -%<*trace> -\tr@ce{here~float} -%</trace> - \else -%<*trace> -\tr@ce{not~here~float} -%</trace> - \begingroup - \count@#3\relax - \global\let\this@float@box\relax - \let\@elt\extract@float@by@number - \@activelist - \endgroup -% \end{macrocode} -% If a float number is specified and there is not a float of that -% number in the active list, something has gone wrong, either we -% haven't reached the float yet (possible if the new arrangement -% results in the callout being on a later page than specified) or -% we have already assigned this float (which is a bug, either in -% this code, or in the fpc file.) Currently this condition is not -% handled other than by |\ERROR|. If the float is found, assign it -% to the current area (as set by an Area: line in the fpc file. -% \begin{macrocode} - \ifx\this@float@box\relax -%<*trace> - \tr@ce{Float:~#3~not~found} -%</trace> - \edef\fpc@list{\fpc@list#3,\this@area\relax} - \show\fpc@list - \else -%<*trace> - \tr@ce{Float:~#3~is~\this@float@box} -%</trace> -% \end{macrocode} -% Before we add the float, let's do some sanity checks. We allow to -% place a float into an area which is bigger than the float (spans -% more columns) but we complain if the area is smaller. -% \begin{macrocode} - \ifnum \this@area@span@number < - \if!\this@span@number! 1\else % big hack - \this@span@number \fi - \relax - \PackageError{xo} - {Float~ bigger~ than~ target~ area} - {Float~\this@sequence@number\space spans ~ - \this@span@number\space columns,~ - but~ target~ area~ \this@area\space - spans~ only~ \this@area@span@number\space - columns.\MessageBreak - Correct~ the~ data~ in~ file~ \jobname.fpc! - } - \fi -% \end{macrocode} -% We also check if the target area is allowed on the current page -% (it could be the case that the page setup for that page doesn't -% list it in its |area-list| key! -% \begin{macrocode} - \xin@\this@area - \used@areas - \ifin@\else - \PackageError{xo} - {Target~ area~ not~ available~ on~ current~ page} - {Float~ \this@sequence@number\space was~ requested~ to~ - be~ placed~ into~ area~ \this@area,\MessageBreak - but~ this~ - area~ is~ not~ available~ on~ page~ \thepage. - \MessageBreak - Correct~ the~ data~ in~ file~ \jobname.fpc! - } -% \end{macrocode} -% If we can't put it into the requested area we have to put it -% somewhere else. Otherwise a lot of code might break. So we simply -% chose the first area in |\used@area|\footnote{Need a solution if -% the page doesn't allow ``any'' floats! FIX!} -% \begin{macrocode} - \ifx\used@areas\@empty % we have a problem - \RESOLVE - \else - \setup@this@area{\expandafter\@carcube\used@areas\@nil} - \fi - \fi -% \end{macrocode} -% Typeset and attach the caption and adjust the text size for the -% current column. -% \begin{macrocode} - \append@caption@to@float - \construct@and@test@col@hts - \if@test - \ERRORFloatAreaToLarge - \fi -% \end{macrocode} -% We append the float to the area after the above column updates, -% otherwise |\construct@and@test@col@hts| would incorrectly think -% there is already a float present even if we add the first float -% to an area. -% \begin{macrocode} - \let\@elt\relax - \xdef\@freelist{\@freelist\@elt\this@float@box} - \expandafter\@cons\csname area@\this@area\expandafter\endcsname - \this@float@box - \fi - \fi -% \end{macrocode} -% -% Loop to next line. -% \begin{macrocode} - \let\@nextfpc\get@fpc@page@data -% \end{macrocode} -% end of case on type of fpc line. -% \begin{macrocode} - \fi\fi\fi -} -% \end{macrocode} -% \end{macro} -% -% -% -% -% \begin{macro}{\fpc@here} -% -% \begin{macrocode} -\def\fpc@here{hhh} -% \end{macrocode} -% \end{macro} - -% \begin{macro}{\fpc@list} -% -% \begin{macrocode} -\def\fpc@list{\relax} -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\get@float@number} -% could be known as |\@seventhofseven|. -% \begin{macrocode} -\def\get@float@number#1#2#3#4#5#6#7{#7} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\extract@float@by@number} -% Find the float box that has the float with sequence number |\count@|. -% \begin{macrocode} -\def\extract@float@by@number#1{ - \ifnum\expandafter\get@float@number\the\toks#1=\count@ - \def\@currbox{#1} - \expandafter\update@this@float@structure\the\toks#1 - \fi} -% \end{macrocode} -% \end{macro} -% -% -% -% -% -% \endinput -\endinput -% -% $Log: xo-float.dtx,v $ -% Revision 1.32 2000/08/11 07:14:11 latex3 -% added header -% -% Revision 1.31 2000/08/11 06:48:24 latex3 -% untabify -% -% Revision 1.30 2000/08/11 06:44:00 latex3 -% fix typo in initialization -% -% Revision 1.29 2000/08/04 10:17:28 latex3 -% separate out initialisation of here float -% -% Revision 1.28 2000/07/19 17:14:01 latex3 -% deduce \this@class from \this@type instead of storing it on a per -% float basis -% -% Revision 1.27 2000/07/19 15:53:46 latex3 -% introduced float sequence classes -% cleaned up parts of the code -% added further documentation -% -% Revision 1.26 2000/07/10 18:47:12 latex3 -% macro name renaming -% -% Revision 1.25 2000/06/29 17:16:30 latex3 -% introduced \setup@this@area -% -% Revision 1.24 2000/06/26 15:00:59 latex3 -% docu update -% -% Revision 1.23 2000/06/22 20:07:00 latex3 -% renamed some macros to get them more uniform -% -% Revision 1.22 2000/06/22 10:55:59 latex3 -% Includeed part of David's code (formerly in xo-dpc.sty) for writing -% and reading fpl/fpc files. Not done is moving floats in and out of hhh -% -% Revision 1.21 2000/06/16 11:20:50 latex3 -% rename \construct@and@test@col@height to \construct@and@test@col@ht -% rename \construct@and@test@col@heights to \construct@and@test@col@hts -% rename \cl@height1 to \@col@ht@1 (etc) -% -% Revision 1.20 2000/06/15 15:24:25 latex3 -% implemented new semantics for area names -% -% Revision 1.19 2000/06/13 21:18:02 latex3 -% add some trace guards -% -% Revision 1.18 2000/05/03 18:55:34 latex3 -% pass \theCNT instead of \value{CNT} in the float data structure (we -% might need both one day) -% -% Revision 1.17 2000/04/21 19:11:39 latex3 -% updated here float interface (needs fixing) -% -% Revision 1.16 2000/04/08 10:49:39 latex3 -% first draft support for here floats -% -% Revision 1.15 2000/03/24 15:34:27 latex3 -% version that starts supporting spans (still a hack yet) -% -% Revision 1.14 2000/03/22 15:30:28 latex3 -% some normalisations of names -% started on spans (tmp version) -% -% Revision 1.13 2000/03/16 10:28:29 latex3 -% partial and full flush working for the first time -% -% Revision 1.12 2000/03/05 19:40:07 latex3 -% support multiple columns (6 max right now) -% moved some float init code into page setup -% -% Revision 1.11 2000/02/26 18:22:59 david -% interface to x-alloc and make changes due to -% deferred float pre-allocation -% -% Revision 1.10 2000/02/21 01:45:23 david -% documentation improvements -% -% Revision 1.9 2000/02/20 00:05:08 david -% use galley, don't discard it (get more pages that way) -% -% Revision 1.8 2000/02/19 23:16:19 david -% Use \construct@and@test@col@height before destroying -% \this@captioned@float, not after... -% -% Revision 1.7 2000/02/19 18:55:44 david -% reading fpc files -% -% Revision 1.6 2000/02/17 22:47:07 david -% *** empty log message *** -% -% Revision 1.5.1.1 2000/02/16 10:39:42 latex3 -% 3cols support added -% diff --git a/Master/texmf-dist/source/latex3/xor/xo-flow-chart.dtx b/Master/texmf-dist/source/latex3/xor/xo-flow-chart.dtx deleted file mode 100644 index 5565a5aa6ad..00000000000 --- a/Master/texmf-dist/source/latex3/xor/xo-flow-chart.dtx +++ /dev/null @@ -1,153 +0,0 @@ - -% \iffalse -% $Id: xo-flow-chart.dtx,v 1.5 2000/03/22 15:31:14 latex3 Exp $ -% \fi - -\begin{footnotesize} -\begin{verbatim} - (1) - | - V - \setup@collection@or - | - V - New OR: \collection@or - | - V - \setup@float@placement - - - - \setup@float@placement - | - V -(2)--> \float@placement@loop - | - V - \trial@inner@loop - | - V - <current float successfully placed in previous trial?> - | | - no yes - | | - | | - | V - | \try@next@float <--------------------- - | | | - | | | - | <\@activelist empty?> | - | | | | - | no yes | - | | | | - | | V | - | (get it) \@activelist@empty@action | - | | (= \setup@best@column@or) | - -------------v---------------- | - | | - | | - -----> \select@and@test@next@area | - | | | - | | | - | <still open areas for current float type?> | - | | | | - | yes no---------------(defer float)---------------- - | | | - | (do some tests and perhaps | - | close area this way) | - | | | - | <float allowed on this page/column (according to tests)?> | - | | | | - | yes no---------------(defer float)---------------- - | | - | <current area got closed by any test?> - | | | - | yes no - | | | - -------- V - \pretests@success@action (\setup@grabcolumn@or) - - - - - \setup@grabcolumn@or - | - V - \grabcolumn@loop <-------- - | | - V | - New OR: \grabcolumn@or | - | | - | | - <all cols produced?> | - | | | - yes no------------ - | - (store results of trial) - | - V - \setup@cleanup@or - | - V - New OR: \cleanup@or - | - V - <special outputpenalty reached?> --> (reenter 2) - - - - \setup@best@column@or - | - V - \best@column@loop <------- - | | - V | - New OR: \best@column@or | - | | - <all cols produced?> | - | | | - yes no---------- - | - (produce final page) - | - V - \initialise@next@page - | - V - (try to make float pages) - | - V - \setup@collection@or (reenter 1) - - - -\end{verbatim} -\end{footnotesize} - -\endinput - -% -% $Log: xo-flow-chart.dtx,v $ -% Revision 1.5 2000/03/22 15:31:14 latex3 -% some normalisations of names -% some corrections -% -% Revision 1.4 2000/03/05 19:38:51 latex3 -% more updates -- still wrong -% -% Revision 1.3 2000/02/26 18:27:52 david -% updates (not finished) -% -% Revision 1.4 2000/02/18 19:08:47 car2 -% oops, something else changed! -% -% Revision 1.3 2000/02/18 19:05:04 car2 -% correction: removed a defer -% -% Revision 1.2 2000/02/16 10:20:14 latex3 -% small updates -% -% Revision 1.1 2000/02/16 07:35:47 latex3 -% Initial revision -% - diff --git a/Master/texmf-dist/source/latex3/xor/xo-grid.dtx b/Master/texmf-dist/source/latex3/xor/xo-grid.dtx deleted file mode 100644 index b1d737358a7..00000000000 --- a/Master/texmf-dist/source/latex3/xor/xo-grid.dtx +++ /dev/null @@ -1,345 +0,0 @@ -% \iffalse -%% -%% (C) Copyright 1999-2000 Frank Mittelbach, David Carlisle, Chris Rowley -%% All rights reserved. -%% -%% Not for general distribution. In its present form it is not allowed -%% to put this package onto CD or an archive without consulting the -%% the authors. -%% -% \fi -% - -% \begin{macrocode} -\def\@tempa#1: #2.dtx,v #3 #4 #5 #6 #7${ - \ProvidesPackage{#2}[#4 #3 #5 #6]} -\@tempa$Id: xo-grid.dtx,v 1.3 2000/08/11 07:14:20 latex3 Exp $ -% \end{macrocode} -% -% Ignore white space in this package. -% \begin{macrocode} -\IgnoreWhiteSpace -% \end{macrocode} -% -% This package implements grid design on top of \LaTeXe{} by adding -% |\AlignToGrid| in various macros. Nothing else is really needed (or -% so I hope :-) -% -% So far this probably doesn't cover all structures that should, or -% could be handled automatically. -% -% \subsection{Headings} -% -% -% \begin{macro}{\headingsinkage} -% This is a temporary register used to specify the amount of -% sinkage a |\@startsection| heading is allowed if it falls at the -% a column break. In a proper reimplementation of |\@startsection| -% as a template, this should be individually specifiable rather -% than being the same for all headings! -% \begin{macrocode} -\newskip\headingsinkage -\headingsinkage=5pt plus 3pt minus 5pt -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\@startsection} -% \begin{macrocode} -\def\@startsection#1#2#3#4#5#6{% - \if@noskipsec \leavevmode \fi - \par - \@tempskipa #4\relax - \@afterindenttrue - \ifdim \@tempskipa <\z@ - \@tempskipa -\@tempskipa \@afterindentfalse - \fi - \if@nobreak - \everypar{}% - \else - \addpenalty\@secpenalty - \addvspace\@tempskipa -% \end{macrocode} -% next lines are pretty horrible but we need something like this -% here (only it could be be done better) -% \begin{macrocode} - \vskip-\headingsinkage - \vskip\saved@topskip - \vskip-\prevdepth - \nointerlineskip - \null - \nobreak - \vskip-\saved@topskip - \vskip\headingsinkage - \fi - \@ifstar - {\@ssect{#3}{#4}{#5}{#6}}% - {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}} -% \end{macrocode} -% \end{macro} -% -% -% -% -% \begin{macro}{\@sect} -% Have to ensure that we don't get the heading itself aligned due -% to a dangling |\AlignToGrid| from a previous structure, so we -% issue a |\IgnoreAlignToGrid| early on. That's the only change for -% this command. -% \begin{macrocode} -\def\@sect#1#2#3#4#5#6[#7]#8{% - \ifnum #2>\c@secnumdepth - \let\@svsec\@empty - \else - \refstepcounter{#1}% - \protected@edef\@svsec{\@seccntformat{#1}\relax}% - \fi - \@tempskipa #5\relax - \IgnoreAlignToGrid - \ifdim \@tempskipa>\z@ - \begingroup - #6{% - \@hangfrom{\hskip #3\relax\@svsec}% - \interlinepenalty \@M #8\@@par}% - \endgroup - \csname #1mark\endcsname{#7}% - \addcontentsline{toc}{#1}{% - \ifnum #2>\c@secnumdepth \else - \protect\numberline{\csname the#1\endcsname}% - \fi - #7}% - \else - \def\@svsechd{% - #6{\hskip #3\relax - \@svsec #8}% - \csname #1mark\endcsname{#7}% - \addcontentsline{toc}{#1}{% - \ifnum #2>\c@secnumdepth \else - \protect\numberline{\csname the#1\endcsname}% - \fi - #7}}% - \fi - \@xsect{#5}} -% \end{macrocode} -% \end{macro} -% -% -% -% -% \begin{macro}{\@xsect} -% Now after having typeset the heading we need to issue -% |\ObeyAlignToGrid| and make sure that the first line of text gets -% aligned again. And in addition we issue a |\AlignToGrid| inside -% the |\everypar| to align the first text after the heading. Of -% course that mean that we will generate a break point after this -% line and thus might end up up with a heading and only a single -% line afterwards. -% -% This could be fixed by using a ``rspace'' structure as -% implemented in \texttt{xo-or.sty} but this is not added at the -% moment! -% \begin{macrocode} -\def\@xsect#1{% - \ObeyAlignToGrid - \@tempskipa #1\relax - \ifdim \@tempskipa>\z@ - \par \nobreak - \vskip \@tempskipa - \@afterheading - \else - \@nobreakfalse - \global\@noskipsectrue - \everypar{% - \if@noskipsec - \global\@noskipsecfalse - {\setbox\z@\lastbox}% - \clubpenalty\@M - \AlignToGrid - \begingroup \@svsechd \endgroup - \unskip - \@tempskipa #1\relax - \hskip -\@tempskipa - \else - \clubpenalty \@clubpenalty - \everypar{}% - \fi}% - \fi - \ignorespaces} -% \end{macrocode} -% \end{macro} -% -% -% -% -% -% \begin{macro}{\@afterheading} -% The other case where we have to add |\AlignToGrid| to the -% |\everypar|. -% \begin{macrocode} -\def\@afterheading{% - \@nobreaktrue - \everypar{% - \if@nobreak - \@nobreakfalse - \clubpenalty \@M - \if@afterindent \else - {\setbox\z@\lastbox}% - \fi - \AlignToGrid - \else - \clubpenalty \@clubpenalty - \everypar{}% - \fi}} -% \end{macrocode} -% \end{macro} -% -% -% \subsection{List structures} -% -% \begin{macro}{\@doendpe} -% Handling of |\everypar| after a list strcture is already strange -% and complicated; here we complicate it even more by adding -% |\AlignToGrid| into its definition(s). -% \begin{macrocode} -\def\@doendpe{\@endpetrue - \def\par{\@restorepar - \everypar{\everypar{}\AlignToGrid}\par\@endpefalse}% - \everypar{{\setbox\z@\lastbox}\everypar{}\AlignToGrid\@endpefalse}% -} -% \end{macrocode} -% \end{macro} -% -% -% -% -% -% \begin{macro}{\endtrivlist} -% And there is one case in |\endtrivlist| in which |\@doendpe| -% is skipped so we have to set |\everypar| manually -% here.\footnote{Perhaps done in a wrong way, CHECK!} -% \begin{macrocode} -\def\endtrivlist{% - \if@inlabel - \leavevmode - \global \@inlabelfalse - \fi - \if@newlist - \@noitemerr - \global \@newlistfalse - \fi - \ifhmode\unskip \par\fi - \if@noparlist - \everypar{\everypar{}\AlignToGrid} - \else - \ifdim\lastskip >\z@ - \@tempskipa\lastskip \vskip -\lastskip - \advance\@tempskipa\parskip \advance\@tempskipa -\@outerparskip - \vskip\@tempskipa - \fi - \@endparenv - \fi -} -% \end{macrocode} -% \end{macro} -% -% -% \subsection{Math} -% -% \begin{macro}{\displaymath} -% \begin{macro}{\enddisplaymath} -% \begin{macro}{\[} -% \begin{macro}{\]} -% Math is a bit more complicated as with the standard definitions -% we don't regain control after the display. So we change all the -% definitions to use the |\@doendpe| method. This means we have to -% redefine |\[| at al to be a ref to |\displaymath| not the other -% way around as it was done in \texttt{latex.ltx}. -% \begin{macrocode} -\def \displaymath { - \relax\ifmmode - \@badmath - \else - \ifvmode - \nointerlineskip - \makebox[.6\linewidth]% - \fi - $$%%$$ BRACE MATCH HACK - \fi -} -\def \enddisplaymath { - \relax\ifmmode - \ifinner - \@badmath - \else - $$%%$$ BRACE MATCH HACK - \fi - \else - \@badmath - \fi -% \end{macrocode} -% To gain control we end the paragraph and then invoke the |\end| -% mechanism for dealing with par. This gives in certain situations -% slightly different results compared working only with |$$|'s but -% that's life. -% \begin{macrocode} - \par - \@endpetrue % kill parindent if current paragraph continues - \@ignoretrue -} -\def\[{\begin{displaymath}} -\def\]{\end{displaymath}} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% -% -% -% -% \begin{macro}{\endequation} -% Same change for the end of an equation. -% \begin{macrocode} -\def\endequation{\eqno \hbox{\@eqnnum}$$\par\@ignoretrue - \@endpetrue % kill parindent if current paragraph continues -} -% \end{macrocode} -% \end{macro} -% -% -% -% \begin{macro}{\endeqnarray} -% And again the same for the equation array structure. -% \begin{macrocode} -\def\endeqnarray{% - \@@eqncr - \egroup - \global\advance\c@equation\m@ne - $$\par\@ignoretrue - \@endpetrue % kill parindent if current paragraph continues -} -% \end{macrocode} -% \end{macro} -% -% \endinput -\endinput -% -% $Log: xo-grid.dtx,v $ -% Revision 1.3 2000/08/11 07:14:20 latex3 -% added header -% -% Revision 1.2 2000/08/06 19:01:12 latex3 -% fix \prevdepth situation before \@startsection -% -% Revision 1.1 2000/07/30 18:07:22 latex3 -% Initial revision -% -% -% -% -% -% -% -% \begin{macro}{} -% \begin{macrocode} -% \end{macrocode} -% \end{macro} diff --git a/Master/texmf-dist/source/latex3/xor/xo-here.dtx b/Master/texmf-dist/source/latex3/xor/xo-here.dtx deleted file mode 100644 index 189aa2259ae..00000000000 --- a/Master/texmf-dist/source/latex3/xor/xo-here.dtx +++ /dev/null @@ -1,454 +0,0 @@ -% \iffalse -%% -%% (C) Copyright 1999-2000 Frank Mittelbach, David Carlisle, Chris Rowley -%% All rights reserved. -%% -%% Not for general distribution. In its present form it is not allowed -%% to put this package onto CD or an archive without consulting the -%% the authors. -%% -% \fi -% -% \begin{macrocode} -\def\@tempa#1: #2.dtx,v #3 #4 #5 #6 #7${ - \ProvidesPackage{#2}[#4 #3 #5 #6]} -\@tempa$Id: xo-here.dtx,v 1.12 2000/08/11 07:14:21 latex3 Exp $ -% \end{macrocode} -% -% Ignore white space in this package. -% \begin{macrocode} -\IgnoreWhiteSpace -% \end{macrocode} -% -% -% Most of the code in this file is temporary in the sense that the -% interfaces are not fixed or the intended functionality is not fully -% implemented. It is sort of the proof of concept stuff. -% -% -% -% \begin{macro}{\requirespace} -% The |\requirespace| command is an interface function for other -% parts of a a class file. It issues a here point which ensures -% that there is at least |#1| amount of space still available in -% the current column. If not it results in carrying the here point, -% including the previous line(s), to the next column. This could, -% for example, be used by a heading to ensure that there is a -% certain amount of minimal space following it. -% -% The precise (?) definition of ``previous line(s)'' is as follows: -% the internal algorithm will split the so far collected column material -% trying reach the latest possible break point before the here -% point. It is theoretically possible to construct examples where -% \TeX{} decides to take an earlier split point but it is -% guaranteed the the here point is not losing contact with the -% material directly preceeding it (unless a legal breakpoint was -% added in front of it). -% If the here point was added via |\vadjust| in horizontal mode, -% this means that the line immediately before it will be after the -% split (since there will be no other legal break point inbetween). -% \begin{macrocode} -\def\requirespace #1 { - \ifhmode - \@bsphack - \fi - \@next\@currbox\@freelist{}{} -% \end{macrocode} -% We are only interested in the type really: -% \begin{macrocode} - \global\toks\@currbox{{}{} - {} - {} - {} - {rspace} - {} - } - \here@point\@currbox{#1} - \@ignorefalse - \@esphack -} -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\marginpar} -% The current implementation of the document command |\marginpar| -% is only a proof of concept draft. It doesn't cover the full -% flexibility of the \LaTeXe{} version yet (and perhaps one wants -% even an extension of that). -% \begin{macrocode} -\def\marginpar #1 { - \ifhmode - \@bsphack - \fi - \@next\@currbox\@freelist{}{} - \@savemarbox\@currbox{#1} -% \end{macrocode} -% We are only interested in the type really: -% \begin{macrocode} - \global\toks\@currbox{{}{} - {} - {} - {} - {mpar} - {} - } -% \end{macrocode} -% How far is a marginpar allowed to move past the bottom of the -% text area? Or say it differently: how much space does a marginpar -% need to reserve on the page? -% -% The code below works differently than the \LaTeXe{} one: it will -% move the marginpar including the line it was issued on to the -% next column if its text will otherwise fall more than a -% baselineskip below the page bottom. -% \begin{macrocode} - \@tempdima\ht\@currbox - \advance\@tempdima\dp\@currbox - \advance\@tempdima -\baselineskip % allow to run long - \ifdim\@tempdima< \z@ \@tempdima\z@ \fi - \here@point\@currbox{\the\@tempdima} - \@ignorefalse - \@esphack -} -% \end{macrocode} -% \end{macro} -% -% -% -% -% -% -% -% -% \begin{macro}{\typeset@a@marginpar} -% The |\typeset@a@marginpar| code is called when a marginpar is -% finally added to the current page (either in a trial or in the -% final run). -% -% It should be templated! -% -% Current code is only working for two column setup (!) and lacks -% any modification possibilities depending on the final position -% for the marginpar. -% -% \begin{macrocode} -\def \typeset@a@marginpar{ - \kern-\pagedepth - \vtop to\pagedepth{\baselineskip\pagedepth - \lineskip\z@ - \vss - \dimen@\dp\@currbox - \ifnum \curr@col@count = \@ne -% \end{macrocode} -% Since this perhaps only a trial setting we have to |\copy| and -% not to |\box|!\footnote{FIX: Should clear those boxes somewhere -% else to save space!} -% \begin{macrocode} - \llap{\copy\@currbox\kern\marginparsep} - \else - \ifnum \curr@col@count = \col@count - \rlap{\kern\columnwidth\kern\marginparsep\copy\@currbox} - \else - \ERROR-NOT-SUPPORTED - \fi - \fi - \kern-\dimen@ - \null} -} -% \end{macrocode} -% \end{macro} -% -% -% -% -% -% \begin{macro}{\check@and@typeset@a@here@float} -% -% When we reach |\check@and@typeset@a@here@float| we are trying to -% place a float from the active list into some area and have -% encountered a here point while grabbing the column text for this -% trial placement. In |\check@and@typeset@a@here@float| we check if -% the type of the here point is the same as the current float and -% if so whether or not it would conflict with that trial -% placement. This is the case if -% \begin{itemize} -% \item -% the here float and the float under trial have the same type -% \item -% and their ordering gets out of sync. -% \end{itemize} -% \begin{macrocode} -\def\check@and@typeset@a@here@float{ -%<*trace> - \@tracepush{check@and@typeset@a@here@float} -%</trace> -% \end{macrocode} -% If we don't run with floats then no check are necessary (in fact, -% the checks would produce incorrect results), so we skip them and -% immediately typeset the here float. -% \begin{macrocode} - \ifrun@with@floats -% \end{macrocode} -% If the current float under trial has the same sequence class as the here -% object we have to look at the spatial relationship in more detail. -% \begin{macrocode} - \ifx\here@class\this@class -%<*trace> - \tr@ce{here:~ here@class~ =~ this@class~ =~ \this@class} -%</trace> -% \end{macrocode} -% If the float under trial has a larger sequence number than the -% here float we have to ensure that the area we place it in follows -% the here point, i.e., is either a later column or if it is in the -% same column comes at the bottom. -% \begin{macrocode} - \ifnum \this@sequence@number > \here@sequence@number \relax -%<*trace> - \tr@ce{here:~ target~ area~ should~ be~ after~ here~ point!} -%</trace> -% \end{macrocode} -% Like in the case of checking call-out relations we use the column -% number returned in |\count@| by |calculate@target@fl@column| -% rather than always using the start column of the area. -% \begin{macrocode} - \calculate@target@fl@column - \ifnum \count@ > \curr@col@count -%<*trace> - \tr@ce{OK:~ target~ area column~ later} -%</trace> - \else - \ifnum \count@ = \curr@col@count -%<*trace> - \tr@ce{??:~ target~ area~ target~ column~ identical} -%</trace> -% \end{macrocode} -% So in case we are in the same column at the top we fail the trial. -% \begin{macrocode} - \if t \this@area@type -%<*trace> - \tr@ce{Fail:~ target~ area~ is~ before~ here~ point} -%</trace> - \@failtrue -%<*trace> - \else - \tr@ce{OK:~ target~ area~ is~ after~ here~ point} -%</trace> - \fi - \else -% \end{macrocode} -% And we fail the trial if we tried to place the float into an -% earlier column. -% \begin{macrocode} -%<*trace> - \tr@ce{Fail:~ target~ area~ column~ earlier~ - (\the\count@ < \the\curr@col@count)} -%</trace> - \@failtrue - \fi - \fi -% \end{macrocode} -% If the float sequence number of the current float is smaller than -% the one of the here float then we should always handle it via -% flushing the float out. So the |\else| case is really only there -% for debugging -% \begin{macrocode} -%<*debug> - \else - \tr@ce{here:~ target~ area~ should~ be~ before~ here~ point!} - \ifnum \this@area@col@number > \curr@col@count - \tr@ce{Problem:~ target~ area~ column~ after~ here~ point - (\this@area@col@number > \the\curr@col@count)} - \else - \ifnum \this@area@col@number = \curr@col@count - \tr@ce{??:~ target~ area~ target~ column~ identical} - \if t \this@area@type - \tr@ce{OK:~ target~ area~ is~ before~ here~ point} - \else - \tr@ce{Problem:~ target~ area~ is~ after~ here~ point} - \fi - \else - \tr@ce{OK:~ target~ area~ is~ before~ here~ point} - \fi - \fi -%</debug> - \fi - \fi - \fi - \if@fail -% \end{macrocode} -% If the test above failed we report progress claiming that the -% reason is due to the current float being placed before the here -% float. As mentioned above this should be the only possibility why -% things fail. -% \begin{macrocode} -%<*progress> - \progress@failed{\this@area\space before~here~float~ - (\here@type\space \here@sequence@number)~ - in~ column~ \the\curr@col@count} -%</progress> - \global\curr@col@count\col@count -%<*trace> - \tr@ce{Failed:~ here~ float~ out~ of~ sync} -%</trace> - \else - \typeset@a@here@float - \fi -%<*trace> - \@tracepop{check@and@typeset@a@here@float} -%</trace> -} -% \end{macrocode} -% \end{macro} -% -% -% -% \begin{macro}{\typeset@a@here@float} -% The |\typeset@a@here@float| is called when a here float is -% finally added to the current page (either in a trial or in the -% final run). -% -% The caption is attached by the usual method where the here -% area is denoted by |h|\meta{col}|1|. This allows to have -% different caption placements depending, for example, on the -% column being near the one of outer margins. -% -% The float is separated from preceeding and following text by the -% current value of |\pagesetup@float@inline@sep| as defined in the -% page setup template plus or minus a certain amount to allow -% grid-based typesetting if desired. -% \begin{macrocode} -\def \typeset@a@here@float{ -% \end{macrocode} -% Attach the caption to the float body and store the result in -% |\this@captioned@float|. -% \begin{macrocode} - \append@here@caption@to@float -% \end{macrocode} -% If we are not doing grid typesetting we simply put -% |\pagesetup@float@inline@sep| before and after the formatted -% float. -% \begin{macrocode} - \ifdim \pagesetup@grid@point@sep = \z@ - \@tempskipa\pagesetup@float@inline@sep - \else -% \end{macrocode} -% Otherwise we have to work a little harder since now we need to -% put exactly the right amount of space before and after the float -% to stay within the grid. So we measure the size of the formatted -% float and store the value in |\@tempdima|. -% \begin{macrocode} - \@tempdima\ht\this@captioned@float - \advance\@tempdima\dp\this@captioned@float -% \end{macrocode} -% To this we add twice |\pagesetup@float@inline@sep| which gives us -% the target size for whole object including surrounding space. -% \begin{macrocode} - \advance\@tempdima\tw@\pagesetup@float@inline@sep -% \end{macrocode} -% Calculate the difference to the nearest grid point\ldots -% \begin{macrocode} - \snap@to@grid \@tempdima \pagesetup@grid@point@sep -% \end{macrocode} -% \ldots and decide which grid point is closest. If the smaller one -% is closer use it if we are allowed to shrink the white space by -% the necessary amount. -% \begin{macrocode} - \ifdim \returned@lower@delta@size < \returned@delta@size \relax - \ifdim \returned@lower@delta@size < 2\pagesetup@float@inline@shrink -% \end{macrocode} -% Note that for the lower delta size we have to use the -% negation since we want to backup by this amount and delta sizes -% are always given in absolute values. -% \begin{macrocode} - \xdef \returned@delta@size {-\returned@lower@delta@size } - \fi - \fi -% \end{macrocode} -% Now set up the amount of white space we need around the float by -% starting with the |\returned@delta@size| divided by two (i.e., -% equal amount contributed to both sides of the float and then add -% |\pagesetup@float@inline@sep|. Notice, that we used a skip -% register for the calculation so that any minus or plus parts will -% survive. This is useful in case we are not doing grid typesetting -% and want to allow for some flexibility.\footnote{This needs perhaps -% rethinking it the light of extended grid implementation concept!} -% \begin{macrocode} - \@tempskipa \returned@delta@size \relax - \divide \@tempskipa \tw@ - \advance \@tempskipa \pagesetup@float@inline@sep -%<*trace> - \tr@ce{GRID:~ here~float:~ use~ \the\@tempskipa \space above~ and~ below} -%</trace> - \fi -% \end{macrocode} -% Finally typeset the float and its surrounding space which is by -% now stored in |\@tempskipa|.\footnote{Perhaps make the space -% above and below specifiable individually. One day, perhaps!} -% \begin{macrocode} - \vskip\@tempskipa - \box\this@captioned@float - \vskip\@tempskipa -} -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\setup@here@float} -% Absolutely temp!!!!!\footnote{FIX!!!!} -% \begin{macrocode} -\def \setup@here@float { - \@tempskipa 2\pagesetup@float@inline@sep %FMi arbitrary value TMP - \advance\@tempskipa\ht\@currbox %FMi arbitrary value TMP - \advance\@tempskipa\dp\@currbox %FMi arbitrary value TMP - \advance\@tempskipa5\baselineskip %FMi arbitrary value TMP - \here@point\@currbox{\the\@tempskipa} -} -% \end{macrocode} -% \end{macro} -% -% -% -% -% \endinput -\endinput -% -% $Log: xo-here.dtx,v $ -% Revision 1.12 2000/08/11 07:14:21 latex3 -% added header -% -% Revision 1.11 2000/08/04 10:19:09 latex3 -% added init of here floats (temp version) -% -% Revision 1.10 2000/07/19 16:05:41 latex3 -% introduced float sequence class concept -% -% Revision 1.9 2000/07/10 19:13:34 latex3 -% template here floats and support grid typesetting for them. -% -% Revision 1.8 2000/06/29 17:18:44 latex3 -% introduced \setup@this@area -% -% Revision 1.7 2000/06/18 14:58:32 latex3 -% use \calculate@target@fl@column to determine the target column ti -% check if here float and current float are in sync -% -% Revision 1.6 2000/06/15 15:23:05 latex3 -% untabify -% -% Revision 1.5 2000/06/13 20:45:47 latex3 -% docu updates -% -% Revision 1.4 2000/05/03 18:58:56 latex3 -% provide caption template support -% -% Revision 1.3 2000/04/27 19:51:45 latex3 -% bug fix: need to copy boxes in trials :-) -% moved \check@and@typeset@a@here@float to this file -% -% Revision 1.2 2000/04/21 19:01:13 latex3 -% added documentation -% -% Revision 1.1 2000/04/21 10:19:07 latex3 -% Initial revision -% diff --git a/Master/texmf-dist/source/latex3/xor/xo-new.dtx b/Master/texmf-dist/source/latex3/xor/xo-new.dtx deleted file mode 100644 index acbeda1bf83..00000000000 --- a/Master/texmf-dist/source/latex3/xor/xo-new.dtx +++ /dev/null @@ -1,701 +0,0 @@ -% \iffalse -%% -%% (C) Copyright 1999-2000 Frank Mittelbach, David Carlisle, Chris Rowley -%% All rights reserved. -%% -%% Not for general distribution. In its present form it is not allowed -%% to put this package onto CD or an archive without consulting the -%% the authors. -%% -% \fi -% -% \begin{macrocode} -\def\@tempa#1: #2.dtx,v #3 #4 #5 #6 #7${ - \ProvidesPackage{#2}[#4 #3 #5 #6]} -\@tempa$Id: xo-new.dtx,v 1.25 2000/08/11 07:14:23 latex3 Exp $ -% \end{macrocode} -% -% This package is available for test overwrites that need integration -% into the main packages at some point -% -% Ignore white space in this package. -% \begin{macrocode} -\IgnoreWhiteSpace -% \end{macrocode} -% - -% -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% -% STUFF THAT CHANGES CHRIS' xo-final -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% -% -% -% \begin{macrocode} - -\flushbottom - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%changes to xo-final -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\iftrue % using Frank's changes built on 1.15 - -%<*obsolete> -\def\typeset@this@float@and@caption{ - \append@caption@to@float - \box\this@captioned@float -} -%</obsolete> - - - -\def\final@column { -%<*trace> - \@tracepush{produce@final@column} -%</trace> - \setbox\@outputbox \box\@cclv - - \ifvoid\footins - \else - \setbox\@outputbox \vbox { - \boxmaxdepth \@maxdepth -% \end{macrocode} -% \TeX\ calculates page breaks expecting the depth of the main text -% to extend below the page baseline, not contributing to the page height, -% and it assumes the entire height plus depth of footnotes will contribute -% to the page height. When the page is assembled, the footnote depth -% is below the baseline and the main text depth appears mid-page. To -% make the contents fit the page precisely, we (locally) adjust the -% footnote spacing \cs{skip}\cs{footins} by the \emph{difference} in -% the two depths.\footnote{This part of the code was suggested by -% Donald Arseneau in bug report pr3189.} -% \begin{macrocode} - \advance\skip\footins -\dp\@outputbox % already limited to \@maxdepth - \unvbox \@outputbox - \advance\skip\footins - \ifdim\dp\footins>\@maxdepth \@maxdepth \else \dp\footins \fi - \vskip \skip\footins -% \end{macrocode} -% If we are doing grid typesetting we put all excess space between -% the text and the footnote(s). -% \begin{macrocode} - \ifdim \pagesetup@grid@point@sep > \z@ - \vfil - \fi - \color@begingroup - \normalcolor - \footnoterule - \unvbox \footins - \color@endgroup - } - \fi -% \end{macrocode} -% -% I am not sure if texttop/bottom should survive for long: something -% more spohisictaed is needed these days. This may mean that -% footnotes need better handling too: what makes a complex column -% look good? -% -% \begin{macrocode} - \global\setbox\csname col@box@\the\curr@col@count\endcsname - \vbox to \csname col@ht@ \the\curr@col@count\endcsname %<----- - { % this should one day become \@colht - % or else - \@texttop - \dimen@ \dp\@outputbox - \unvbox \@outputbox - \vskip -\dimen@ - \@textbottom - }% - \global \maxdepth \@maxdepth -%<*trace> - \@tracepop{produce@final@column} -%</trace> -} -\let \produce@final@column \final@column - - - -\def\make@area@floats@box #1#2 { -%<*trace> - \@tracepush{make@area@floats@box} - \tr@ce{Area:~ #1} -%</trace> - \@ifundefined{area@#1} % test only needed because of missing integration - { -%<*trace> - \tr@ce{Area:~ not~ set~ up} -%</trace> - } - { - \setup@this@area{#1} % needed below when typesetting floats - - \setbox #2 \box\voidb@x % <-------- FMi -% \let \@elt \@comflelt % Big aaah! - \def \@elt { \typeset@float@in@box {#2} } - \csname area@#1\endcsname -% \end{macrocode} -% Not very pretty yet! But better when decoration -% stuff is used. -% \begin{macrocode} - \let \@elt \relax - - \expandafter - \release@floats - \csname area@#1\endcsname - } -%<*trace> - \@tracepop{make@area@floats@box} -%</trace> -} - - -\def\typeset@float@in@box #1 #2 { -%<*trace> - \@tracepush{typeset@float@in@box} -%</trace> - \gdef\this@float@box {#2} % <------------- FMi - \expandafter - \extract@this@float@actual@structure \the\toks #2 - - \update@this@area@columns - { - \expandafter - \gdecrement@num - \csname col@ \this@area@type - @floats@ \the\count@ @number\endcsname -%<*trace> - \tr@ce{col@ \this@area@type - @floats@ \the\count@ @number~ <-~ - \csname col@ \this@area@type - @floats@ \the\count@ @number\endcsname} -%</trace> - } - - \setbox #1 \vbox { - \ifvoid #1 -%<*trace> -\tr@ce{add~to~#1:~float~ #2} -%</trace> - \else % experimental FMi -%<*trace> -\tr@ce{add~to~#1:~float~ #2~ plus~ \pagesetup@float@float@sep} -%</trace> - \unvbox #1 % experimental FMi - \vskip \pagesetup@float@float@sep % experimental FMi - \fi % experimental FMi - \typeset@this@float@and@caption - } -%<*trace> - \@tracepop{typeset@float@in@box} -%</trace> - } - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% my new xo-final stuff -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - -\def \myfinalpage { - \mbox@addtopage (\pagebodylefthpos, -\headsep) - {page:~\thepage} -% \end{macrocode} -% -% \begin{macrocode} -% Init |\dimen|1,2,3,\ldots as vertical current point per column -% (don't forget in Chris's (sorry, Don's) universum zero is at the -% top). -% \end{macrocode} -% -% \begin{macrocode} - \forall@columns{ - \dimen \the\curr@col@count - \z@ - } -% \end{macrocode} -% Now mount all top areas looping through an ordered list of top -% areas. -% \begin{macrocode} - \expandafter\mount@top@areas@loop - \top@areas - \relax\relax\relax -% \end{macrocode} -% Next mount the text columns. -% \begin{macrocode} - \forall@columns{ - -%<*trace> - \tr@ce{GRID (delta):~ column~\the\curr@col@count t:~ - \csname col@t@delta@ \the\curr@col@count - \endcsname\space used} -%</trace> - \advance \dimen \the\curr@col@count - by %NEEDED!!!!! - \csname col@t@delta@ \the\curr@col@count \endcsname - - \advance \dimen \the\curr@col@count - \csname col@ht@ \the\curr@col@count \endcsname - - \setlength \@tempdima - {\pagebodylefthpos - \columndisplacement - + \columndisplacement * \curr@col@count } - - \mbox@addtopage ( \the\@tempdima ,\the\dimen\curr@col@count ) - { \box \csname col@box@ \the\curr@col@count \endcsname } - -%<*trace> - \tr@ce{GRID (delta):~ column~\the\curr@col@count b:~ - \csname col@b@delta@ \the\curr@col@count - \endcsname\space used} -%</trace> - \advance \dimen \the\curr@col@count - by %NEEDED!!!!! - \csname col@b@delta@ \the\curr@col@count \endcsname - } -% \end{macrocode} -% Then mount the bottom floats. -% \begin{macrocode} - \def\col@of@focus{0} % temp solution see below - \expandafter\mount@bot@areas@loop - \bot@areas - \relax\relax\relax -% \end{macrocode} -% -% Next thing is absolutely temp: mount a marginal area on the right -% (bottom) to allow footnotes there (this is just for testing). -% \begin{macrocode} - \setlength \@tempdima - {\pagebodylefthpos + \columndisplacement * \col@count } - \mbox@addtopage ( \the\@tempdima , \textheight ) - { \box \saved@footins } % TEMP FMi -% -% Next thing is absolutely temp: mount a marginal area on the right -% (bottom) to allow marginal floats there (this is just for testing). -% \begin{macrocode} - \expandafter - \ifx\csname area@m1\the\curr@col@count\endcsname\relax - \else - \curr@col@count\col@count - \advance\curr@col@count\@ne - \make@area@floats@box {m\the\curr@col@count1}\@tempboxa - \setlength \@tempdima - {\pagebodylefthpos + \columndisplacement * \col@count } - \mbox@addtopage ( \the\@tempdima , \textheight ) - { \vbox to\textheight{\vfil \unvbox \@tempboxa \vfil }} - \fi -% - \ifShowGrid - \ifdim \pagesetup@grid@point@sep > \z@ - \@tempcnta\textheight - \@tempcntb\topskip - \advance\@tempcnta -\@tempcntb - \@tempdimb\pagesetup@grid@point@sep - \@tempcntb\@tempdimb - \divide\@tempcnta\@tempcntb - \advance\@tempcnta\@ne - - \setlength \@tempdimb - {\pagebodylefthpos + \columndisplacement * \col@count - - \columnsep } - \count@\@tempdimb - - \sbox\grid@box{ - \setlength\unitlength{1sp} - \begin{picture}(0,0) - \multiput(0,0)(0,\@tempcntb){\@tempcnta} - {\line(1,0){\count@}} - \end{picture} - } - - \mbox@addtopage ( 0pt ,\textheight ) - { \box\grid@box } - - \fi - \fi -} - -\newbox\grid@box - -\newif\ifShowGrid -\ShowGridtrue - -% for tracing only (unchanged) - - -\def\mbox@addtopage (#1,#2)#3{% -% \tr@ce{box~being~added~to~page:~at~(#1,~#2) } - \global \setbox\page@box - \hbox { - \unhbox \page@box - \mbox@put (#1,#2) {#3} - } -} - - - - -\def\mount@top@areas@loop#1#2#3{ - \ifx#1\relax - \else - \mount@top@area#1#2#3 - \expandafter\mount@top@areas@loop - \fi} - - -\def\mount@top@area#1#2#3 { - \make@area@floats@box {#1#2#3}\@tempboxa - - \ifvoid \@tempboxa - \else - - \setlength \@tempdimb - { \dimen#2 + \ht\@tempboxa + \dp\@tempboxa } - - \setlength \@tempdima - {\pagebodylefthpos - \columndisplacement + \columndisplacement * #2 } - - \mbox@addtopage ( \the\@tempdima ,\the\@tempdimb ) - { \box \@tempboxa } - - \count@ #2\relax - \advance\count@ #3\relax - \loop - \advance\count@\m@ne - \dimen \count@ = \@tempdimb - \advance\dimen \count@ - \ifnum \csname col@t@floats@ \the\count@ @number\endcsname > \z@ - \pagesetup@float@area@sep - \else - \pagesetup@float@text@sep - \fi - \ifnum #2 < \count@ - \repeat - - \fi -} - -\def\mount@bot@areas@loop#1#2#3{ - \ifx#1\relax - \else - \mount@bot@area#1#2#3 - \expandafter\mount@bot@areas@loop - \fi} - -\def\mount@bot@area#1#2#3 { - \make@area@floats@box {#1#2#3}\@tempboxa - - \ifvoid \@tempboxa - \else - - \setlength \@tempdimb - { \dimen#2 + \ht\@tempboxa + \dp\@tempboxa } - -% \end{macrocode} -% There are probably much better ways to get the spacing right, the -% one below is really only a temporary fix: in |\col@of@focus| we -% remember the last column in which already applied -% |\pagesetup@float@text@sep|, any additional float area will -% contribute another |\pagesetup@float@area@sep| -% instead.\footnote{To make this work it is absolutely necessary -% that the floats in bot@areas are ordered by column!!! No-good. FIX!!} -% \begin{macrocode} - \ifnum \col@of@focus < #2 \relax - \def\col@of@focus{#2} - \advance\@tempdimb - \pagesetup@float@text@sep - \else - \advance\@tempdimb - \pagesetup@float@area@sep - \fi - - \setlength \@tempdima - {\pagebodylefthpos - \columndisplacement + \columndisplacement * #2 } - - \mbox@addtopage ( \the\@tempdima ,\the\@tempdimb ) - { \box \@tempboxa } - -% \end{macrocode} -% Next loop is actually not necessary as long we keep the -% restriction that we don't allow partial overlapping float areas, ie we -% will never mount another float area in the columns that are -% spanned by the current float area (other than potentially the -% first and we set this one explicitly). -% \begin{macrocode} - \dimen #2 = \@tempdimb -% \count@ #2\relax -% \advance\count@ #3\relax -% \loop -% \advance\count@\m@ne -% \dimen \count@ = \@tempdimb -% \ifnum #2 < \count@ -% \repeat - - \fi -} - - -% of course \top@areas and \bot@areas should be constructed -% automatically when preparing the \use@areas or from the \known@areas -% but for now i simply define them here: - -\def\top@areas{t13 t12 t22 t32 t11 t21 t31} - -\def\bot@areas{b11 b12 b13 b21 b22 b31 b32} - - -%%%%%%%%%%%%%%%%%%%%%%%%%%% -% next line activates my version (well some of it is activated already -% above) -%%%%%%%%%%%%%%%%%%%%%%%%%%% -\let\make@page@box\myfinalpage - -\fi % end of stuff modifying xo-final 1.15 - -% \end{macrocode} -% - -\endinput - - - -% \begin{macro}{\savecolumnsizes} -% Declaration to turn on writing of CSL (column size list) files. -% \begin{macrocode} -\def\savecolumnsizes{ - \newwrite\csl@file - \immediate\openout\csl@file\jobname.csl - \def\perhaps@write@to@csl@file{ - \immediate\write\csl@file - } - \def\perhaps@write@placements@to@csl@file{ - \def\@elt{\expandafter - \perhaps@write@placements@to@csl@file@aux\the\toks} - \perhaps@write@to@csl@file{ - ^^JPage:~\the\absolute@page@number\space (\the\c@page)^^J -% \end{macrocode} -% -% \begin{macrocode} - \expandafter\@write@areas\used@areas\relax\relax\relax - } - \let\@elt\relax}} -% \end{macrocode} -% \end{macro} -% - - - - - - -\endinput - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% an attempt to use column 0 and n+1 as marginal areas -% not active -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% \begin{macro}{\forall@columns@and@margins} -% \begin{macrocode} -\def\forall@columns@and@margins#1{ - \edef\saved@curr@col@count{\the\curr@col@count} - \global\curr@col@count\col@count - \global\advance\curr@col@count\@ne - \@whilenum \curr@col@count>\m@ne \do - { - #1 - \global\advance\curr@col@count\m@ne - } - \global\curr@col@count\saved@curr@col@count\relax -} -% \end{macrocode} -% \end{macro} -% -% -% -% \begin{macrocode} -% original macro no longer used -\def\initialise@best@trial{ -%<*trace> - \@tracepush{initialise@best@trial} -%</trace> -% \end{macrocode} -% -% \begin{macrocode} - \global\let\best@trial\@empty - \forall@columns@and@margins{ - \expandafter - \g@addto@macro\expandafter\best@trial\expandafter - { - \expandafter - \global - \csname col@ht@ \the\curr@col@count\endcsname - \textheight - } - } -%<*trace> - \tr@ce{\meaning\best@trial} - \@tracepop{initialise@best@trial} -%</trace> -} -% \end{macrocode} -% - -% \begin{macrocode} -\expandafter\newdimen\csname col@ht@ 0\endcsname -% \end{macrocode} -% - - -% \begin{macro}{\initialise@next@page} -% Initialises the column heights to text height. Clear the float -% area lists, zero holdinginserts to allow footnote texts to arrive -% in the insertion box. -% \begin{macrocode} -\def\initialise@next@page{ -%<*trace> - \@tracepush{initialise@next@page} -%</trace> -% - \forall@columns@and@margins - {\global\csname col@ht@ \the\curr@col@count\endcsname\textheight} -% - \initialise@areas -% - \global\page@float@count\z@ -% - \initialise@best@trial -% \end{macrocode} -% -% \begin{macrocode} - \initialise@flush@data -% \end{macrocode} -% -% \begin{macrocode} - \initialise@here@data -% \end{macrocode} -% -% \begin{macrocode} - \initialise@footins@action -% \end{macrocode} -% -% Nothing is closed when we are at the start of a page. -% \begin{macrocode} - \global\let\this@page@closed\@empty -% \end{macrocode} -% -% \begin{macrocode} - \let\@elt\initialise@float@class - \float@classes@list - \let\@elt\relax -% -%\showfloatlists -%\show\area@ddd\show\@activelist -% for safety - \global\let\this@float@box\@undefined -%<*trace> - \@tracepop{initialise@next@page} -%</trace> - } -% \end{macrocode} -% \end{macro} -% -% -% - -% -% \endinput -\endinput -% -% $Log: xo-new.dtx,v $ -% Revision 1.25 2000/08/11 07:14:23 latex3 -% added header -% -% Revision 1.24 2000/08/11 06:49:09 latex3 -% untabify -% -% Revision 1.23 2000/08/05 10:01:26 latex3 -% ensure that \make@area@floats@box doesn't do any harm to areas not set -% up via \DeclareFloatArea -% -% Revision 1.22 2000/08/04 15:50:31 latex3 -% \flushbottom default again -% -% Revision 1.21 2000/08/04 13:58:58 latex3 -% \bot@areas need to be ordered by column at the moment!!!! -% -% Revision 1.20 2000/08/04 10:20:09 latex3 -% removed old experimental code for grid layout -% -% Revision 1.19 2000/07/22 06:30:50 latex3 -% fixed bug in positioning bottom floats -% -% Revision 1.18 2000/07/19 17:12:53 latex3 -% introduced float sequence list -% -% Revision 1.17 2000/07/10 19:22:12 latex3 -% more grid support -% -% Revision 1.16 2000/07/04 19:48:55 latex3 -% experimental stuff for GRIDs -% start writing out columnsizes (unused) -% use \update@this@area@columns -% -% Revision 1.15 2000/06/29 17:16:59 latex3 -% introduced \setup@this@area -% -% Revision 1.14 2000/06/26 15:17:26 latex3 -% prototype support for \pagesetup@float@area@sep -% -% Revision 1.13 2000/06/16 11:21:07 latex3 -% rename \construct@and@test@col@height to \construct@and@test@col@ht -% rename \construct@and@test@col@heights to \construct@and@test@col@hts -% rename \cl@height1 to \@col@ht@1 (etc) -% -% Revision 1.12 2000/06/15 15:22:36 latex3 -% implemented new semantics for area names -% -% Revision 1.11 2000/06/13 21:23:03 latex3 -% *** empty log message *** -% -% Revision 1.10 2000/05/04 09:21:27 latex3 -% urg: \this@area undefined inside the output routine, so captions got -% typeset with whatever was the last \this@area. -% -% Revision 1.9 2000/05/03 18:41:52 latex3 -% still overwriting code for xo-final 1.15 ! (not 1.16) -% enabling support for caption templates -% -% Revision 1.8 2000/04/21 19:16:32 latex3 -% activate my version of xo-final -% -% Revision 1.7 2000/04/21 19:05:21 latex3 -% my version of xo-final mainly -% -% Revision 1.6 2000/04/09 20:02:42 latex3 -% first draft of marginpar support -% -% Revision 1.5 2000/03/24 15:34:27 latex3 -% version that starts supporting spans (still a hack yet) -% -% Revision 1.4 2000/02/26 18:26:08 david -% code moved to xo-* -% -% Revision 1.3 2000/02/13 21:37:20 latex3 -% ooops, my ultrix rcs is too old to guess the comment char correctly -% so we better add explicit \endinput -% -% Revision 1.2 2000/02/13 21:35:25 latex3 -% wording -% -% Revision 1.1 2000/02/13 21:34:51 latex3 -% Initial revision -% diff --git a/Master/texmf-dist/source/latex3/xor/xo-or.dtx b/Master/texmf-dist/source/latex3/xor/xo-or.dtx deleted file mode 100644 index 6aef48254b1..00000000000 --- a/Master/texmf-dist/source/latex3/xor/xo-or.dtx +++ /dev/null @@ -1,5188 +0,0 @@ -% \iffalse -%% -%% (C) Copyright 1999-2000 Frank Mittelbach, David Carlisle, Chris Rowley -%% All rights reserved. -%% -%% Not for general distribution. In its present form it is not allowed -%% to put this package onto CD or an archive without consulting the -%% the authors. -%% -% \fi -% - -% \begin{macrocode} -\def\@tempa#1: #2.dtx,v #3 #4 #5 #6 #7${ - \ProvidesPackage{#2}[#4 #3 #5 #6]} -\@tempa$Id: xo-or.dtx,v 1.53 2000/08/11 07:14:25 latex3 Exp $ -% \end{macrocode} -% -% \subsection{A flowchart of the algorithm} -% -% Several output routines are employed. Output routines (that is, -% macros to be used as the sole content of the primitive |\output| -% register) are named xxx@or. Typically a companion macro named -% setup@xxx is called to initialise the state (typically setting -% vsize) and to assign |\output|. -% -% -% [The flow chart has be cut into pieces and individual pieces are -% shown below.] -% -% ^^A \input{xo-flow-chart.sty} ^^A .sty to ease updating -% -% -% -% Ignore white space in this package. -% \begin{macrocode} -\IgnoreWhiteSpace -% \end{macrocode} -% -% -% -% -% \subsection{General helper Routines} -% -% \begin{macro}{\@gobblethree} -% Get rid of three tokens or brace groups. -% \begin{macrocode} -\long\def\@gobblethree#1#2#3{} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\xin@} -% Like |\in@| but with both args (which have to be single tokens!) -% expanded. Should be replaced by a proper interface. -% \begin{macrocode} -\def\xin@#1#2{% -% expanded once: - \expandafter\def\expandafter\in@@\expandafter##\expandafter1#1##2##3\in@@{% - \ifx\in@##2\in@false\else\in@true\fi}% - \expandafter\expandafter\expandafter\in@@\expandafter#2#1\in@\in@@} -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\gincrement@num} -% Globally increment a ``number macro'' by one. -% \begin{macrocode} -\def\gincrement@num#1 { -% \end{macrocode} -% We don't want to modify |\count@| here as it might hold some -% important data so we do everything in a group. -% \begin{macrocode} - \begingroup - \count@#1 - \advance\count@\@ne - \xdef#1{\the\count@} - \endgroup -} -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\gdecrement@num} -% Globally decrement a ``number macro'' by one. -% \begin{macrocode} -\def\gdecrement@num#1 { - \begingroup - \count@#1 - \advance\count@\m@ne - \xdef#1{\the\count@} - \endgroup -} -% \end{macrocode} -% \end{macro} -% -% -% -% \begin{macro}{\split@skip} -% \begin{macro}{\check@for@fil} -% \begin{macro}{\get@plus@part} -% \begin{macro}{\get@minus@part} -% |\split@skip| takes four aguments: a template key name (for error -% recovery), a skip specification (e.g., either the value of a skip -% register via |\the|\meta{register}, or a macro holding the -% information, or the specification directly), and two dimen -% registers. The skip specification is taken apart and the first -% dimen register receives ``plus'' part and the second the -% ``minus'' part. If the specification contains any |fil| parts an -% error is generated since these values can't be assigned to a -% dimen register. -% \begin{macrocode} -\begingroup -% \end{macrocode} -% We employ the |\lowercase| trick to get certain letters with -% |\catcode| 12 since we have to scan for them (they are what -% |\the| outputs. So if we say |MINUS| below we get |minus| but all -% |\catcode|d 12. -% \begin{macrocode} -\catcode`\M=12 -\catcode`\I=12 -\catcode`\N=12 -\catcode`\U=12 -\catcode`\S=12 -% \end{macrocode} -% We need |p| with |\catcode| 12 to scan for |pt| but we also need -% |P| with |\catcode| 11 to be able to say |\PackageError|. So we -% claim lowecase of |Z| is |p| and then say |ZT| and |ZLUS| below. -% \begin{macrocode} -\catcode`\Z=12 -\lccode`\Z=`\p -\catcode`\T=12 -% \end{macrocode} -% And we need to scan for |FIL|: -% \begin{macrocode} -\catcode`\L=12 -\catcode`\F=12 -% \end{macrocode} -% And the error message contains uppercase |V| and |O| and we want -% to retain those. -% \begin{macrocode} -\lccode`\V=`\V -\lccode`\O=`\O -% \end{macrocode} -% With the above prelims we now apply |\lowercase| to all the -% definitions below, which will put the correctly |\catcode|d -% strings in the parsing part of the macros. -% \begin{macrocode} -\lowercase{ -\gdef\split@skip #1#2#3#4{ -% \end{macrocode} -% |#2| is the skip specification. To be sure that the strings -% ``plus'', ``minus'', ``pt'' are always having |\catcode| 12 we -% assign it to a register first. Otherwise a user supplied string -% like |1in plus .5in| wouldn't be parsable since we are only -% looking for |pt| and also because in this case the |\catcode|s of -% |plus| would be 11. -% \begin{macrocode} - \@tempskipa#2\relax -% \end{macrocode} -% Then we pass this on to |\check@for@fil| which will make sure -% that there isn't any |fil| present and if not does the rest of -% the processing. -% \begin{macrocode} - \expandafter\check@for@fil \the\@tempskipa FIL\relax\check@for@fil - {\the\@tempskipa}{#3}{#4}{#1} - } -% \end{macrocode} -% -% \begin{macrocode} -\gdef\check@for@fil #1FIL#2\check@for@fil#3#4#5#6{ - \ifx\relax#2 - \expandafter - \get@minus@part #3MINUS 0ZT \get@minus@part{#4}{#5} - \else - #4\z@ - #5\z@ - \PackageError{template}{Value~ for~ key~ #6~ contains~ `fil(ll)'} - {Only~ finite~ minus~ or~ plus~ parts~ are~ allowed~ for~ this~ key.} - \fi - } -% \end{macrocode} -% -% \begin{macrocode} -\gdef\get@plus@part #1ZLUS#2ZT#3\get@plus@part#4{ - #4=#2pt\relax - } -% \end{macrocode} -% -% \begin{macrocode} -\gdef\get@minus@part #1MINUS#2ZT#3\get@minus@part#4#5{ - \get@plus@part #1ZLUS 0ZT\get@plus@part{#4} - #5=#2pt\relax - } -} -\endgroup -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% -% -% -% -% -% -% -% -% \subsection{Special Output Routine Penalties} -% -% -% \begin{macro}{\output@collect@penalty} -% Special penalty marking the point at which the collection OR ended. -% \begin{macrocode} -\mathchardef\output@collect@penalty=20202 -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\output@balance@penalty} -% Special penalty marking the point at which the collection OR -% should end collection because we want to balance the material. -% \begin{macrocode} -\mathchardef\output@balance@penalty=10010 -% \end{macrocode} -% \end{macro} -% -% -% Other special penalties are inbetween -10000 and -10010. Those will -% not stop the collection OR but are instead recorded along the way. -% -% \begin{macro}{\output@columnbreak@penalty} -% Special penalty marking the point a forced column break was -% requested by the user. -% \begin{macrocode} -\mathchardef\output@columnbreak@penalty=10005 -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\output@flush@float@penalty} -% Special penalty to trigger float flushing for one or more types. -% \begin{macrocode} -\mathchardef\output@flush@float@penalty=10006 -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\output@here@float@penalty} -% Special penalty for floats that should stay with their callout. -% \begin{macrocode} -\mathchardef\output@here@float@penalty=10007 -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\output@grid@align@penalty} -% Special penalty for places that should fall on the page grid. -% \begin{macrocode} -\mathchardef\output@grid@align@penalty=10008 -% \end{macrocode} -% \end{macro} -% -% -% -% -% -% -% \subsubsection{Utilities for Special Output Routine Penalties} -% -% -% \begin{macro}{\add@badly@guarded@penalty} -% Put a special penalty into the output and guard it with a -% box. The reason this macro is called |\add@badly@guarded@penalty| -% is that such a box of size zero is still messing up spacing -% caluclations. Why? Because when the penalty is reached on the MVL -% the preceeding line has already be fully added (i.e., including -% its depth). This means that \TeX{} might not reach it at all in -% time! For example, if the preceeding line would be the last line -% of the page the depth would not be taken into account yet, but by -% the time we reach the special penalty it has been added to -% |\pagetotal| and that may result in not fitting anymore onto the -% page. -% -% A solution would be to use a box that has the same depth as its -% preceeding box and a negative height so that it effectively -% doesn't modify the galley length. Easy, right? The only problem -% is that in case of |\vadjust| (and that is unfortunately the more -% important case) we just don't know what the preceeding depth is, -% since |\prevdepth| will always give us a friendly |-1000pt| in -% that case (start of a vertical sub-list\ldots). -% -% So not so easy after all. The way out of this dilemma turned out -% to be complicated and involves a lot of strange corrective -% actions in the collection process, see there for a replacement of -% that box and what else can go wrong if one delves into messing -% around with that part of \TeX. -% \begin{macrocode} -\def\add@badly@guarded@penalty#1 { - \ifvmode - \nointerlineskip - \vbox to\z@{\vss\the#1}\penalty-#1\relax - \else - \@bsphack - \vadjust{\vbox to\z@{\vss\the#1}\penalty-#1\relax} - \@esphack - \fi -} -% \end{macrocode} -% \end{macro} -% -% -% -% \begin{macro}{\add@guarded@penalty} -% Put a special penalty into the output. To ensure that it doesn't -% get mistakenly removed during breaking preceed it with a ``guard -% box'' which is later removed again. --- Actually no longer used -% but replacement isn't yet finalised.\footnote{CLEANUP!} -% \begin{macrocode} -\def\add@guarded@penalty#1 - {\guard@box{BUG:~\string#1}\penalty-#1\relax} -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\guard@box} -% Could be moved into the previous macro. -% -% The way it is written (using |\prevdepth|) this can only be used -% in vertical mode! We have to carry over the |\prevdepth| and -% append the box without adding any additional interline -% space. Without it one gets nasty extra glue blobs of height -% |\baselineskip| somewhere in the output. -% \begin{macrocode} -\def\guard@box#1{ - \dimen@\prevdepth - \nointerlineskip - \vbox to0pt{\vss \rlap{#1}\kern\z@} - \prevdepth\dimen@ -} -% \end{macrocode} -% Better implementation? The above is wrong!\footnote{FIX!} -% \begin{macrocode} -\def\guard@box#1{ - \dimen@\prevdepth - \nointerlineskip - \begingroup - \setbox\z@\vbox to\z@{\vss \rlap{#1}} - \dp\z@\dimen@ - \box\z@ - \endgroup -} -% \end{macrocode} -% \end{macro} -% -% -% -% \begin{macro}{\remove@guard@box@from@cclv} -% Remove a guard box again. This always happens in the OR and so we -% hard code the box number for speed. -% -% Chris thinks this needs a maxdepth setting. -% \begin{macrocode} -\def\remove@guard@box@from@cclv{ - \global\setbox\@cclv \vbox{\boxmaxdepth\@maxdepth \unvbox\@cclv - \global\setbox\removed@guard@box\lastbox} -} -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\readd@guarded@penalty} -% Readding a guared penalty including the box that was removed -% earlier. Probably not needed in the end either since the way it -% is used at the moment we have a |\topskip| problem this -% way.\footnote{FIX!!!!} -% \begin{macrocode} -\def\readd@guarded@penalty#1 { - \box\removed@guard@box -%FMi what about topskip? - \penalty-#1\relax} -% \end{macrocode} -% \end{macro} -% -% -% -% \begin{macro}{\removed@guard@box} -% \begin{macrocode} -\newbox\removed@guard@box -% \end{macrocode} -% \end{macro} -% -% -% -% -% -% \subsection{Columns and their Data Structures} -% -% \begin{macro}{\col@count} -% We are collecting stuff for a given number of columns. This -% number of column is available in a count register. -% \begin{macrocode} -\let\col@count \col@number % reuse a register from LaTeX - % which is named differently there -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\curr@col@count} -% Register denoting the column number of the current column while -% we cut the galley etc. Should always be modified globally since -% it is used within output routines. -% \begin{macrocode} -\newcount\curr@col@count -% \end{macrocode} -% \end{macro} -% -% -% -% \DescribeMacro\col@box@FOO -% Per column number FOO we have one box register allocated in which -% the column text from the galley is stored during trials and page -% makeup. -% -% \DescribeMacro\col@ht@FOO -% Per column number FOO we have dimen register allocated which -% holds the vertical target size for the column during the trials. -% -% \DescribeMacro\col@t@floats@FOO@number -% Per column number FOO we have a macro number in which we count -% the number of top floats we have seen so far in this column. This -% is used to implement |\pagesetup@float@area@sep| handling. -% -% \DescribeMacro\col@b@floats@FOO@number -% Per column number FOO we have a macro number in which we count -% the number of bottom floats we have seen so far in this column. This -% is used to implement |\pagesetup@float@area@sep| handling. -% -% -% \DescribeMacro\col@t@delta@FOO -% Per column number foo we have a macro in which we record the -% difference between the real size of all top floats (including -% there separation spaces) and the nominal size which is used to -% determine the vertical size of the remaining text column. The two -% may differ if we do grid typesetting. -% -% \DescribeMacro\col@b@delta@FOO -% Same kind of delta is recorded per column for the bottom floats. -% -% \DescribeMacro\fl@FOO@BAR -% For each float type BAR (e.g., |figure|, |table|, etc.) and each -% column number FOO we have a macro which holds the highest float -% sequence number for floats of type BAR allocated to column FOO or -% zero if no float has been allocated so far. -% -% \DescribeMacro{\fl@0@BAR} -% For each float type BAR (e.g., |figure|, |table|, etc.) -% |\fl@0@BAR| holds the highest sequence number in columns of the -% previous page. -% -% \DescribeMacro\tfl@FOO@BAR -% |\tfl@FOO@BAR| is like |\fl@FOO@BAR| but only stores information -% about floats allocated to top areas. -% -% - -% \begin{macro}{\col@box@1} -% \begin{macro}{\col@box@2} -% \begin{macro}{\col@box@3} -% \begin{macro}{\col@box@4} -% \begin{macro}{\col@box@5} -% \begin{macro}{\col@box@6} -% Need a box per column (currently fixed at six) to hold material -% from the galley for this column. -% \begin{macrocode} -\expandafter\newbox\csname col@box@1\endcsname -\expandafter\newbox\csname col@box@2\endcsname -\expandafter\newbox\csname col@box@3\endcsname -\expandafter\newbox\csname col@box@4\endcsname -\expandafter\newbox\csname col@box@5\endcsname -\expandafter\newbox\csname col@box@6\endcsname -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% -% -% \begin{macro}{\col@ht@ 1} -% \begin{macro}{\col@ht@ 2} -% \begin{macro}{\col@ht@ 3} -% \begin{macro}{\col@ht@ 4} -% \begin{macro}{\col@ht@ 5} -% \begin{macro}{\col@ht@ 6} -% Need a dimen\footnote{Could be a macro if we find ourselves to -% use up too many dimens.} per column to hold its current vertical -% target size. -% \begin{macrocode} -\expandafter\newdimen\csname col@ht@ 1\endcsname -\expandafter\newdimen\csname col@ht@ 2\endcsname -\expandafter\newdimen\csname col@ht@ 3\endcsname -\expandafter\newdimen\csname col@ht@ 4\endcsname -\expandafter\newdimen\csname col@ht@ 5\endcsname -\expandafter\newdimen\csname col@ht@ 6\endcsname -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% -% -% -% -% -% \subsubsection{Utilities for Columns and their Data Structures} -% -% \begin{macro}{\forall@columns} -% If we want to do something to data structures for all column we -% can use the macro |\forall@columns|. Within its argument the -% current column is available in the register -% |\curr@col@count|. The macro takes some pains to restore the -% original value of |\curr@col@count| afterwards. -% \begin{macrocode} -\def\forall@columns#1{ - \edef\saved@curr@col@count{\the\curr@col@count} - \global\curr@col@count\z@ - \@whilenum \curr@col@count<\col@count \do - {\global\advance\curr@col@count\@ne - #1 - } - \global\curr@col@count\saved@curr@col@count\relax -} -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\initialise@column@data} -% \begin{macrocode} -\def\initialise@column@data{ -%<*trace> - \@tracepush{initialise@column@data} -%</trace> -% \end{macrocode} -% -% \begin{macrocode} - \global\let\best@trial\@empty - - \forall@columns - { - - \global\csname col@ht@ \the\curr@col@count\endcsname\textheight - -% \end{macrocode} -% -% \begin{macrocode} - \expandafter - \g@addto@macro\expandafter\best@trial\expandafter - { - \expandafter - \global - \csname col@ht@ \the\curr@col@count\endcsname - \textheight - } -% \end{macrocode} -% We haven't seen any top or bottom floats yet. -% \begin{macrocode} - \global\@namedef{col@t@floats@ \the\curr@col@count - @number}{0} - \global\@namedef{col@b@floats@ \the\curr@col@count - @number}{0} -% \end{macrocode} -% For the same reason the delta values for top and bottom areas are -% zeroed.\footnote{Using \texttt{\string\let} and -% \texttt{\string\z@} in places like this would be more faster and -% shorter, but it wouldn't work nicely in tracing as it would make -% unexpandable macros. Perhaps the tracing versions should be made -% specially.} -% \begin{macrocode} - \global\@namedef{col@t@delta@ \the\curr@col@count}{0pt} - \global\@namedef{col@b@delta@ \the\curr@col@count}{0pt} - } - -%<*trace> - \tr@ce{\meaning\best@trial} - \@tracepop{initialise@column@data} -%</trace> -} -% \end{macrocode} -% \end{macro} -% -% -% -% -% -% -% \subsubsection{User Commands for Columns} -% -% -% \begin{macro}{\columnbreak} -% And here is the user command formaking a column -% break:\footnote{All this is stolen from \texttt{multicol.sty} and -% there is still code that doesn't belong here.} |\columnbreak| is -% modelled after |\pagebreak| except that we generate a penalty -% |-\output@columnbreak@penalty|. -% \begin{macrocode} -\def\columnbreak{ -% \end{macrocode} -% We have to ensure that it is only used within a multicolumn -% environment since if that penalty would be seen by the unmodified -% \LaTeX{} output routine strange things would happen. -% \begin{macrocode} - \ifnum\col@count<\tw@ - \PackageError{xoutput} - {\noexpand\columnbreak~ in~ one-column~ mode} - {???} - \else - \ifvmode - \penalty -\output@columnbreak@penalty - \else - \@bsphack - \vadjust{\penalty -\output@columnbreak@penalty} - \@esphack - \fi - \fi} -% \end{macrocode} -% \end{macro} -% -% -% -% -% -% -% -% -% -% -% \subsection{Float Areas and their Data Structures} -% -% Naming conventions for float areas is as follows: -% \begin{quote} -% \meta{identifier}\meta{start-column}\meta{span-count}. -% \end{quote} -% The \meta{identifier} is a single letter denoting the type of area, -% e.g., |t| for top, |b| for bottom. The \meta{span-count} is a single -% digit denoting the number of columns to span. The -% \meta{start-column} is a single digit\footnote{with a bit of care in -% the code this could be extended to allow more than one digit.} -% denoting the start column of the area. Thus |t32| is a top area -% starting at column three and spanning two columns ie three and four. -% A restriction due to the naming scheme is that currently no more than -% 9 columns are possible. -% -% Only a subset of the float areas is allowed to be popolated on a -% page. In essense the current algorithm does not support placements -% that result in splitting the text of a column due to a float (other -% than column `here' floats).\footnote{Perhaps this restriction is -% lifted one day.} This means that if $pcs$ ($p=\textrm{pos}$, -% $c=\textrm{column}$, $s=\textrm{span}$) is a float area that is -% being populated then it must prevent populating all float areas that -% satisfy either -% \[ -% pij \textrm{ with } i < c \leq i+j < c+s -% \] -% or -% \[ -% pij \textrm{ with } i \leq c+s < i+j \leq \verb=\col@count= -% \] -% The first formula describes the areas which partly overlap from the -% left, the second formula describes those that partly overlap from -% the right. Areas which are sub- or super-areas, e.g., \texttt{t13} -% and \texttt{t22} do not affect each other. The above restriction is -% necessary to prevent situations like -%\begin{verbatim} -%aaaaaaaaaaa 444 -%aaaaaaaaaaa 444 -%aaaaaaaaaaa 444 -%111 222 bbbbbbb -%111 222 bbbbbbb -%111 222 bbbbbbb -%111 222 333 444 -%111 222 333 444 -%\end{verbatim} -% -% -% For each area |FOO| (e.g., |t13|) we keep a number of global -% variables to store relevant data. These are the following -% variables\footnote{Not a consistent lot}: -% -% \DescribeMacro\area@FOO -% Floats allocated to the area |FOO| by the page building process -% are stored as an |\@elt| list in the macro |\area@FOO|. -% -% \DescribeMacro\pagesetup@FOO@float@num -% The maximum number of floats allowed in area |FOO| is stored in -% the macro |\pagesetup@FOO@float@num|. -% -% \DescribeMacro\FOO@@float@count -% -% The number of floats currently allocated to area |FOO| is stored -% in the count register |\FOO@@float@count|.\footnote{This is a -% waste of registers!} -% -% \DescribeMacro\pagesetup@FOO@class@close -% The areas that should be closed for floats of the same sequence class the -% moment a float is placed into area |FOO|. This is a comma -% separated list. -% -% \DescribeMacro\pagesetup@FOO@all@close -% The areas that should be closed for all float sequence classes the -% moment a float is placed into area |FOO|. This is a comma -% separated list. -% -% -% -% \begin{macro}{\known@areas} -% |\known@areas| are the areas known to the system.\footnote{or -% something else, the semantics are still changing} Initialisation -% is done when declaring individual areas. -% \begin{macrocode} -\def\known@areas{} -% \end{macrocode} -% \end{macro} -% -% -% -% \begin{macro}{\used@areas} -% |\used@areas| are the areas used by the current page setup. -% Initialisation is done in the page setup template so the -% definition below is arbitrary. -% \begin{macrocode} -\def\used@areas{ t11 b11 } -% \end{macrocode} -% \end{macro} -% -% -% -% \begin{macro}{\@activelist} -% \begin{macrocode} -\let\@activelist\@empty -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\@mvllist} -% \begin{macrocode} -\let\@mvllist\@empty -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\area@ddd} -% The list of deferred floats (which we consider being an area in -% some respects). -% \begin{macrocode} -\let\area@ddd\@empty -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\pagesetup@ddd@class@close} -% \begin{macro}{\pagesetup@ddd@all@close} -% \begin{macrocode} -\def\pagesetup@ddd@class@close{\pagesetup@area@list} -\let\pagesetup@ddd@all@close\@empty -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% -% -% \begin{macro}{\this@open@areas} -% \begin{macro}{\saved@this@open@areas} -% In |\this@open@areas| we store the float areas which we will try -% to place a float onto the current page. These areas are tried one -% after another until the float is successfully placed or we run -% out of areas. The list does not have any separator (as we assume -% that all areas are denoted by a letter followed by two digits). -% -% |\saved@this@open@areas| is the seved version needed for -% backtracking if we encounter a flush point that can't be resolved. -% \begin{macrocode} -\let\this@open@areas\@empty -\let\saved@this@open@areas\@empty -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% -% -% \begin{macro}{\this@closed@areas} -% In |\this@closed@areas| we store the float areas which have been -% closed for the current float while trying to place it. In this -% list each area name is followed by a comma (to avoid spurious -% matches). It is initialised with |closed@\this@class @areas| when -% we fetch a new float to try. Once the float is placed we write -% the then current value back. -% \begin{macrocode} -\let\this@closed@areas\@empty -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\this@page@closed} -% In |\this@page@closed| we store the float areas which have been -% closed for all float types. In this list each area name is -% followed by a comma (to avoid spurious matches). -% \begin{macrocode} -\let\this@page@closed\@empty -% \end{macrocode} -% \end{macro} -% -% -% -% -% \begin{macro}{\t11@float@count} -% \begin{macro}{\t21@float@count} -% \begin{macro}{\b11@float@count} -% \begin{macro}{\b21@float@count} -% The float counts are allocated dynamically when an area is -% declared if they are not defined, but we have a few registers -% left over from \LaTeX{}'s old OR so we might as well use them. -% \begin{macrocode} -%\expandafter\newcount\csname t11@float@count\endcsname -\expandafter\let\csname t11@float@count\endcsname \@topnum -%\expandafter\newcount\csname b11@float@count\endcsname -\expandafter\let\csname b11@float@count\endcsname \@botnum -%\expandafter\newcount\csname t12@float@count\endcsname -\expandafter\let\csname t12@float@count\endcsname \@dbltopnum -%\expandafter\newcount\csname b12@float@count\endcsname -\expandafter\let\csname b12@float@count\endcsname \@dblbotnum -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\ddd@float@count} -% And we need to declare the one for the defer area is that isn't -% going through the normal initialisation process. -% \begin{macrocode} -\newcount\ddd@float@count -% \end{macrocode} -% \end{macro} -% -% -% -% -% \begin{macro}{\pagesetup@float@area@sep} -% |\pagesetup@float@area@sep| is the separation to use between two -% adjacent float areas. -% \begin{macrocode} -\newskip\pagesetup@float@area@sep -% \end{macrocode} -% \end{macro} -% -% -% -% \begin{macro}{\pagesetup@float@text@sep} -% |\pagesetup@float@text@sep| is the separation to use between -% column text and adjacent float areas. -% \begin{macrocode} -%\newskip\pagesetup@float@text@sep -\let\pagesetup@float@text@sep\textfloatsep % reuse register -\let\textfloatsep\@undefined -% \end{macrocode} -% \end{macro} -% -% -% -% \begin{macro}{\pagesetup@float@float@sep} -% |\pagesetup@float@float@sep| is the separation to use between -% two floats in the same float area. -% \begin{macrocode} -%\newskip\pagesetup@float@float@sep -\let\pagesetup@float@float@sep\floatsep % reuse register -\let\floatsep\@undefined -% \end{macrocode} -% \end{macro} -% -% -% -% \begin{macro}{\pagesetup@float@text@shrink} -% |\pagesetup@float@text@shrink| is the allowed shrinkability of -% |\pagesetup@float@text@sep|. This is used if we are doing grid -% typesetting and have to adjust the vertical size of the column. -% \begin{macrocode} -\newdimen\pagesetup@float@text@shrink -% \end{macrocode} -% \end{macro} -% -% -% -% -% \begin{macro}{\pagesetup@float@inline@sep} -% |\pagesetup@float@inline@sep| is the separation to use between -% two floats in the same float area. -% \begin{macrocode} -%\newskip\pagesetup@inline@float@sep -\let\pagesetup@float@inline@sep\intextsep % reuse register -\let\intextsep\@undefined -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\pagesetup@float@inline@shrink} -% |\pagesetup@float@inline@shrink| is the allowed shrinkability of -% |\pagesetup@float@inline@sep|. This is used if we are doing grid -% typesetting and have to adjust the vertical size of object to be -% added, e.g., an inline float with its caption. -% \begin{macrocode} -\newdimen\pagesetup@float@inline@shrink -% \end{macrocode} -% \end{macro} -% -% -% -% -% -% -% \subsubsection{Utilities for Float Areas and their Data Structures} -% -% -% \begin{macro}{\initialise@areas} -% Initialise all float areas used within the current page setup. -% \begin{macrocode} -\def\initialise@areas{ - \expandafter\initialise@areas@loop - \used@areas - \relax\relax\relax -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\initialise@areas@loop} -% The |\initialise@areas@loop| picks up the next three tokens and -% interprets them as the component of an area name. -% \begin{macrocode} -\def\initialise@areas@loop#1#2#3{ - \ifx#1\relax - \else - \global\csname #1#2#3@float@count\endcsname\z@ - \global\expandafter\let\csname area@#1#2#3\endcsname\@empty - \expandafter\initialise@areas@loop - \fi} -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\first@of@type} -% The macro |\first@of@type| takes a \meta{type} name as its first -% argument and an \meta{area} area name as its second argument and -% will return in the macro |\returned@sequence@number| the sequence -% number of the first float of type \meta{type} currently in -% \meta{area}. If there is no float of type \meta{type} in this -% area it will return |-1| (impossible sequence number). -% \begin{macrocode} -\def\first@of@type#1#2{ - \begingroup - \def\@tempb{#1} - \gdef\returned@sequence@number{-1} - \def\@elt{\expandafter\first@of@type@aux\the\toks} - \csname area@#2\endcsname - \endgroup -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\first@of@type@aux} -% This macro picks up the type definition in the data structure of -% a float and compares it with the name started in |\@tempb|. If -% they agree |\returned@sequence@number| will get updated to -% contain the sequence number of the float. -% \begin{macrocode} -\def\first@of@type@aux#1#2#3#4#5#6#7{ - \def\@tempa{#6} - \ifx\@tempa\@tempb - \gdef\returned@sequence@number{#7} - \let\@elt\@gobble - \fi} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\last@of@type} -% The macro |\last@of@type| takes a \meta{type} name as its firat -% argument and an \meta{area} area name as its second argument and -% will return in the macro |\returned@sequence@number| the sequence -% number of the last float of type \meta{type} currently in -% \meta{area}. If there is no float of type \meta{type} in this -% area it will return |-1| (impossible sequence number). -% \begin{macrocode} -\def\last@of@type#1#2{ - \begingroup - \def\@tempb{#1} - \gdef\returned@sequence@number{-1} - \def\@elt{\expandafter\last@of@type@aux\the\toks} - \csname area@#2\endcsname - \endgroup -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\last@of@type@aux} -% \begin{macrocode} -\def\last@of@type@aux#1#2#3#4#5#6#7{ - \def\@tempa{#6} - \ifx\@tempa\@tempb - \gdef\returned@sequence@number{#7} - \fi} -% \end{macrocode} -% \end{macro} -% -% -% -% -% \begin{macro}{\setup@this@area} -% -% Whenever the algorithm works with some area as the current -% candidate for putting a float into it uses the following commands -% to reference this area: -% -% \DescribeMacro\this@area -% The macro |\this@area| holds the name of the candidate area, e.g., -% it would expand to something like |t13|. -% -% \DescribeMacro\this@area@type -% The macro |\this@area@type| holds the ``type'' of the area, e.g., |t| -% in the above example. -% -% \DescribeMacro\this@area@col@number -% The macro |\this@area@col@number| holds the starting column of the -% area, e.g., |1| in the above example. -% -% -% \DescribeMacro\this@area@span@number -% The macro |\this@area@span@number| holds the number of columns -% spanned by the area, e.g., |3| in the above example. -% -% All the above macros are globally assigned when calling -% |\setup@this@area|. The argument is fully expanded (!) since one -% typical usage to pick up the first area from an area like -% |\this@open@areas| which can then be done within the argument. -% -% \begin{macrocode} -\def\setup@this@area #1 { - \xdef\this@area{#1} -% \end{macrocode} -% This really relies on |\this@area| containing exactly three -% tokens (no error recovery if not). -% \begin{macrocode} - \expandafter\gassign@area@type@col@and@span@aux\this@area -} -\def\gassign@area@type@col@and@span@aux #1#2#3{ - \gdef \this@area@type {#1} % type - \gdef \this@area@col@number {#2} % col - \gdef \this@area@span@number {#3} % span -} -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\update@this@area@columns} -% -% If we have to do updates for all columns that are spanned by the -% current target area we can call |\update@this@area@columns|. It -% loops through the columns with |\count@| referring to the current -% column. Data structure updates have to be global as everything -% happens within a group. -% \begin{macrocode} -\def\update@this@area@columns #1 { - \begingroup - \count@\this@area@col@number\relax - \advance\count@\this@area@span@number\relax - \loop - \ifnum \this@area@col@number < \count@ - \advance\count@\m@ne -%<*trace> - \tr@ce{looking~ at~ column:~ \the\count@} -%</trace> - #1 - \repeat - \endgroup -} -% \end{macrocode} -% \end{macro} -% -% -% -% -% -% -% \newpage -% \subsection{Collection Output Routine} -% -% \begin{description} -% \item[Entry:] |\setup@collection@or| -% \item[Exit:] |\setup@float@placement| -% \item[Prereq:] |\initialise@next@page| should have been called before. -% \item[Description:] Grab enough text (and float call-outs) to obtain -% a galley big enough to form the next text page. The page goal is -% set to a value high enough to ensure that in normal cases text -% for all columns of the page is collected, i.e, we have a safety -% margin of 5 extra lines per column.\footnote{This should be made -% customisable for unusual jobs!} -% -% If the output routine is triggered with a special penalty (in the -% range of $-10000>p>-10010=|\output@balance@penalty|$) the penalty -% is moved into the collection box |\partial@galley@box| without -% further processing; otherwise the collection is ended and all -% collected material is moved to |\@holdpg| for use in page -% production. -% -% \item[Flow:] -%\begin{footnotesize} -%\begin{verbatim} -% \setup@collection@or -% | -% V -% New OR: \collection@or -% | -% |<----------------------------------------- -% | | -% (natural end of collection reached?) | -% | | | -% yes no | -% | | | -% | (record special penalty and carry on)---- -% | -% V -% \setup@float@placement -%\end{verbatim} -%\end{footnotesize} -% \end{description} -% -% Chris noted that |\@holdpg| never gets emptied. This could be -% done when the Collection OR is started for a new page (in this -% next macro).\footnote{FIX} -% -% \begin{macro}{\setup@collection@or} -% \begin{macrocode} -\def\setup@collection@or{ -%<*trace> - \@tracepush{setup@collection@or} -%</trace> - \global\holdinginserts\@ne -% \end{macrocode} -% We set the |\vsize| for collection to the height of a single -% column (plus a safety margin of currently five lines to allow for -% vanishing space at margins) multiplied by the number of columns. -% \begin{macrocode} - \global\vsize\textheight - \global\advance\vsize 5\baselineskip - \global\multiply\vsize \col@count -%<*trace> - \tr@ce{collection~vsize:~\the\vsize } -%</trace> -% \end{macrocode} -% Initialising the flush point handling: -% \begin{macrocode} - \@flushseenfalse - \@flushfailfalse -% \end{macrocode} -% We may have to restart the collection (whenever we find a here or -% a flush point) and we don't want to get extra space added via -% |\topskip|. So we can either make |\topskip| zero during -% collection (current strategy) or back it out whenever we restart. -% -% We can't set topskip to zero now since a) we want a proper -% |\topskip| for the first column and b) due to a bloody fix for the -% old \LaTeX{} OR, a value of |0pt| is set to |1sp| in -% |\begin{document}| and this results in adding |1sp| at every -% special point\ldots no, we definitely do not want this! It took -% me ages to find out why the grid design macros didn't work. -% \begin{macrocode} - \xdef\saved@topskip{\the\topskip} -% \end{macrocode} -% -% \begin{macrocode} - \global\output{\collection@or} -%<*trace> - \@tracepop{setup@collection@or} -%</trace> -} -% \end{macrocode} -% \end{macro} -% -% -% -% -% \begin{macro}{\if@collecting@new@material} -% There are actually two collecting modes: one when the recent -% contributions are empty and we are really collecting material -% that we haven't seen before and one where we collect material -% that has been collected on a previous collection pass and has been -% placed again on to the main vertical list. The reason why we need -% to differentiate between the two is that in the second case we -% have to handle the special penalties differently since by now -% they are already surrounded by the proper guard boxes before and -% after and we better do not disturb this fragile setup. -% \begin{macrocode} -\newif\if@collecting@new@material -\def\@collecting@new@materialfalse - {\global\let\if@collecting@new@material\iffalse} -\def\@collecting@new@materialtrue - {\global\let\if@collecting@new@material\iftrue} -% \end{macrocode} -% \end{macro} -% -% -% -% -% \begin{macro}{\collection@or} -% The output routine during the collection phase assembles the -% material until enough has been gathered to be sure to fill a -% page. -% \begin{macrocode} -\def\collection@or{ -%<*trace> - \@tracepush{collection@or} - \tr@ce{output~pen:~ \the\outputpenalty} -%{\x\showoutput\showbox255} -%</trace> -% \end{macrocode} -% We first look if the call to the OR is due to a special penalty. -% \begin{macrocode} - \@testfalse - \ifnum\outputpenalty < -\@M - \ifnum\outputpenalty > -\output@balance@penalty - \@testtrue - \fi - \fi - \if@test -%<*trace> - \tr@ce{Forced~ break~(\the\outputpenalty)~ seen\on@line} -%</trace> -% \end{macrocode} -% Whenever a special penalty, i.e., one between $-10000 > p > -% -10010$ is encountered we need some magic: -% \begin{itemize} -% \item We want to keep the the penalty in the collected material but -% nevertheless carry on with the collection. Simply moving the -% collected material to a separate box is not enough since then -% we will restart the collection with an empty page and thus -% receive a |\topskip| glue as well as probably losing material -% if there is anything discardable after the special penalty. -% \item But putting a zero box back and doing something to fix the -% problem with the |\topskip| glue isn't good either in case we -% later actually want to break after the line with special -% penalty, since then we would start a page with our inserted -% box, and in this case we would like to get a proper |\topskip| -% and we would like to get rid of discardable stuff. -% \item And there is another problem, we need a guard box in front of -% that special penalty, but this guard box should not be simply a -% |\null| box (as it is right now added by -% |\add@badly@guarded@penalty|) since that will result in wrong -% page calculations because it will make \TeX{} add the depth of -% the precious line to the page total which it shouldn't. -% \end{itemize} -% So what to do? First of all we remove the guard box in front of -% the special penalty (which is now at the end of box 255) since we -% want to replace that with something better, then we -% store away the depth of box 255 since we need that in a minute. -% \begin{macrocode} - \remove@guard@box@from@cclv -% \end{macrocode} -% We really have to say |\dp\@cclv| not |\pagedepth|. The latter is -% always zero in the OR which looks suspiciously like a bug or at -% least an inconsistency when Don implemented the change from \TeX2 -% to \TeX3 (in \TeX2 |\page...| registers were useless in the OR, -% now only |\pagedepth| seems to be left). -% \begin{macrocode} - \dimen@\dp\@cclv -% \end{macrocode} -% Then we subtract the size of the collected material from -% |\vsize| since we will store it away in a separate box for a -% while. Note that we have to use |\ht\@cclv| here not |\pagetotal| -% since the latter might be to large because of that |\null| -% box. The height of 255 on the other hand is, after the removal of -% that box the natural height of the material. -% \begin{macrocode} - \global\advance\vsize-\ht\@cclv -% \end{macrocode} -% Now we append the material to |\partial@galley@box|, this is -% straight forward. -% \begin{macrocode} - \global\setbox\partial@galley@box - \vbox{\ifvoid\partial@galley@box - \else - \unvbox\partial@galley@box - \fi - \unvbox\@cclv -% \end{macrocode} -% But how to add the penalty and how to guard it? We need a box or -% something to ensure the penalty doesn't get lost at a column -% break but we also want to avoid that \TeX{} adds the depth of the -% preceding line to |\pagetotal|. Fortunately we know this depth by -% now (we have just stored it in |\dimen@|), something we didn't -% know at the time the we added the penalty with -% |\add@badly@guarded@penalty|. So we could back up and then add a -% box with zero height and that depth. This way a break directly -% after this line would have the same |\pagetotal| as a break at -% the special penalty. In fact, instead of backing up using a -% |\kern| or a |\vskip| we can simply make the height of the box -% negative. The advantage is that this way we don't generate a -% break point between the box and a preceding box and thus don't -% have to use special precautions to prevent \TeX{} from breaking in -% front of the guard box.\footnote{This statement is only true for -% special penalties added using \texttt{\string\vadjust}, i.e., in -% hmode. If the penalty was added between paragraphs then there -% might be vertical space in front of the box. This might need -% special handling too. CHECK!} -% \begin{macrocode} - \setbox\z@\vbox to-\dimen@{} - \dp\z@\dimen@ - \box\z@ - \penalty\outputpenalty - } -%{\showoutput\batchmode\showbox\partial@galley@box\errorstopmode} -% \end{macrocode} -% So now we have put everthing we need into the -% |\partial@galley@box|, but how do we restart our collection -% process without running into the problems outlined above? -% -% Well, right now on the recent contributions there will be a -% penalty node (from our special penalty) which gets set to 10000 -% by \TeX{} followed perhaps by another penalty from the line -% breaking followed probably by interline glue calculated to make -% the next line of text fit vertically with the preceding one --- -% and we don't want to loose that that glue if we are ending up in -% the middle of a column. But we want to make it vanish if we -% happen to finally break at the special penalty place. -% -% So the trick is that we a) disable |\topskip| by setting it to -% |-\maxdimen| (not zero this might be too large still) and b) we -% add another of those funny boxes followed by a penalty of zero to -% allow for a break after it. -% -% If later on all this is put together again into a single box (in -% |\@holdpg|) we will have the following sequence there: -% \begin{itemize} -% \item text line (box) preceding the special penalty with depth $d$ -% or some other vertical material in which case $d=0\texttt{pt}$ -% \item special box with height $-d$ and depth $d$ -% \item special penalty, e.g. $-10008$ -% \item |\topskip| glue of 0pt -% \item special box with height $-d$ and depth $d$ -% \item |\penalty| 0 -% \item |\penalty| 10000 -% \item perhaps a |\penalty| and/or interline glue -% \item perhaps the next text line (box) -% \end{itemize} -% Now if during later processing we hit the special penalty -% |\pagetotal| has the same value as if we would have broken the -% galley directly after the text line, in other words we do not see -% the penalty too late (assume this happens to be the last line of -% the column then if |\pagetotal| would also have the extra depth -% added to it it might have been overfull and the penalty not being -% considered at all for this column). -% -% After the OR's have dealt with the special penalty, e.g., by -% flushing some floats, etc. the penalty will be replaced by 10000 -% and thus the next time the galley is processed there is no -% breakpoint between the two special boxes any more. As a result -% the next potential breakpoint is the penalty 0 which again -% results in exactly the same |\pagetotal| as before, i.e., if the -% text line was the last line to fit in the column then this -% breakpoint will still fit there. Thus if we break the column -% there then the interline glue etc will vanish and \TeX{} will -% insert |\topskip| glue (which has be set back to a normal value -% by then). If on the other hand, this break point is not chosen -% the interline glue will stay and thus the two text lines, before -% and after the special penalty will sit one |\baselineskip| apart -% just as they should. -% -% Woah. What did Don said on page 125 of \textit{The \TeX{}book}? -% (Deep breath.) You got that?\footnote{There are probably still -% cases that aren't covered I fear and the need for an explicit -% penalty 0 at the end is kind of toublesome, so we have to see if -% this needs further refinements.} -% -% And here is already the first case where the above method is not -% appropriate: if we stumble across a |\output@columnbreak@penalty| -% we need to discard any following glue, so we don't want a box -% intervene here.\footnote{Once this is interfaced with the galley -% code problems like this should vanish since then we can ensure -% that all such penalties are added to the galley on at save -% places. REDO THEN!} -% \begin{macrocode} - \global\topskip-\maxdimen % okay here? - \if@collecting@new@material - \ifnum \outputpenalty = -\output@columnbreak@penalty - \else - \setbox\z@\vbox to-\dimen@{} - \dp\z@\dimen@ - \box\z@ - \penalty\z@ - \fi - \fi -% \end{macrocode} -% -% \begin{macrocode} - \ifnum\outputpenalty=-\output@flush@float@penalty -%<*trace> - \tr@ce{Forced~ break~ =~ flush~ float~ point} -%</trace> - \@flushseentrue - \fi -% \end{macrocode} -% Otherwise either the we reached the natural end of the -% collection, or the point where we have been before (in case we -% are recollecting previously seen material) or we reached an -% |\output@balance@penalty|. -% \begin{macrocode} - \else - \ifnum\outputpenalty = -\output@collect@penalty -% \end{macrocode} -% If we got an |-\output@collect@penalty| then we are at the point -% to which the previous collection pass got. So, away with the -% guard box, then everything back onto the MVL and as a penalty we -% try to put what we have found in the previous collection pass. -% \begin{macrocode} - \remove@guard@box@from@cclv - \unvbox\@cclv -%<*trace> - \tr@ce{reinsert~penalty:~ \saved@outputpenalty\space - (unless~ 10000~ or~ <~ -9999)} -%</trace> - \ifnum\saved@outputpenalty > -\@M - \penalty - \ifnum\saved@outputpenalty=\@M - \z@ - \else - \saved@outputpenalty\relax - \fi -% \end{macrocode} -% We have a special situation to account for here: if we have a -% |\pagebreak| that ended the collection last time then it might -% still be the case that we haven't got to this point due to -% floats. So we would need to put that penalty back. But only then, -% and therese the catch! The alternative is to not stop a -% collection as such a point so that this problem doesn't arise in -% the first place. Right now we lose the -% penalty.\footnote{Unresolved situation. FIX!} -% \begin{macrocode} - \else - \fi -% \end{macrocode} -% Finally we change the |@collecting@new@material| switch since we -% are from now on looking at really new material. -% \begin{macrocode} - \@collecting@new@materialtrue - \else -% \end{macrocode} -% Next case is not functional right now\ldots -% \begin{macrocode} - \ifnum\outputpenalty = -\output@balance@penalty - \@balancetrue -%<*trace> - \tr@ce{BALANCE:~ break~ seen\on@line} -%</trace> - \xdef\saved@outputpenalty{0} -% \end{macrocode} -% This is now the point where the collection ended naturally: we -% save the penalty that triggered it and combine the -% |\partial@galley@box| if it contains material with the stuff now -% in 255 and put everything into |\@holdpg|. -% \begin{macrocode} - \else - \xdef\saved@outputpenalty{\the\outputpenalty} - \fi - \ifvoid\partial@galley@box - \global \setbox\@holdpg\box\@cclv - \else -%<*trace> - \tr@ce{Re-adding~ forced~ break(s)~ for~ splitting} -%</trace> - \global\setbox\@holdpg\vbox{ - \unvbox\partial@galley@box - \unvbox\@cclv} - \fi - -%\showbox\@holdpg - - \if@balance - \global\setbox\@holdpg\vbox{ - \unvbox\@holdpg - \penalty\outputpenalty % short for "-\output@balance@penalty" - } - \fi - - \mark@save@state - \mark@update@structure -% - \global\holdinginserts\z@ - - \global\topskip\saved@topskip - - \setup@float@placement - - \@collecting@new@materialfalse - \fi - \fi -%<*trace> - \@tracepop{collection@or} -%</trace> - } -% \end{macrocode} -% \end{macro} -% -% -% -% \begin{macro}{\partial@galley@box} -% Need a box to store the partially collected galley. -% \begin{macrocode} -\newbox\partial@galley@box -% \end{macrocode} -% \end{macro} -% -% -% -% -% -% \begin{macro}{\initialise@float@class} -% -% \begin{macrocode} -\def\initialise@float@class#1{ -%<*trace> - \@tracepush{initialise@float@class} -%</trace> - \count@0\LastMark{#1} -% -% next line no longer used -% \global\expandafter\mathchardef\csname count@#1\endcsname\count@ -% -%<*trace> - \tr@ce{count~ (#1) = \the\count@} -%</trace> -% \end{macrocode} -% -% At some point the set of open areas at page start (for a -% given type of floats) should be specifiable through some -% templates. Using |\used@areas| is not really the right thing -% to do.\footnote{Code should vanish one day}. -% \begin{macrocode} - \global\expandafter\let\csname open@#1@areas\endcsname\used@areas - \global\expandafter\let\csname closed@#1@areas\endcsname\@empty -% \end{macrocode} -% -% \begin{macrocode} -%<*trace> - \tr@ce{open~ (#1) = \csname open@#1@areas\endcsname} - \tr@ce{closed~ (#1) = \csname closed@#1@areas\endcsname} -%</trace> -% \end{macrocode} -% -% |\fl@1@figure| are macros that expands to the highest numbered -% figure callout in this column (or zero if there is none). -% |\fl@0@figure| is the highest value from previous pages (or zero -% if there was never any float of this type). -% \begin{macrocode} - \forall@columns { - \ifnum \csname fl@ \the\curr@col@count @#1\endcsname>\z@ - \global\expandafter\let\csname fl@0@#1\expandafter\endcsname - \csname fl@ \the\curr@col@count @#1\endcsname - \expandafter\xdef - \csname fl@ \the\curr@col@count @#1\endcsname{0} - \fi -% \end{macrocode} -% |\tfl@1@figure| is like |\fl@1@figure| but only stores -% information about floats allocated to top areas. -% \begin{macrocode} - \expandafter\xdef - \csname tfl@ \the\curr@col@count @#1\endcsname{0} - } -%<*trace> - \@tracepop{initialise@float@class} -%</trace> - } -% \end{macrocode} -% \end{macro} -% -% -% -% -% \newpage -% -% \subsection{Placing Floats} -% -% -% \begin{description} -% \item[Entry:] |\setup@float@placement| -% \item[Exit:] |\setup@grab@column@or| or |\setup@best@column@or| -% \item[Prereq:] -% \item[Description:] -% \item[Flow:] -%\begin{footnotesize} -%\begin{verbatim} -% \setup@float@placement -% | -% V -%(2)--> \float@placement@loop -% | -% <run with floats?> -% | | -% yes no----------> \setup@grab@column@or -% | -% V -% \trial@inner@loop -% | -% V -% <current float successfully placed in previous trial?> -% | | -% no yes -% | | -% (means we now try V -% again using different \try@next@float <------------------- -% placement rules below ) | | -% | | | -% | <\@activelist empty?> | -% | | | | -% | no yes | -% | | | | -% | | V | -% | (get it) \@activelist@empty@action | -% | | (= \setup@best@column@or) | -% -------------v---------------- | -% | | -% -----> \try@this@area (= \std@try@this@area, or | -% | | \relaxed@try@this@area) | -% | | | -% | <still open areas for current float type?> | -% | | | | -% | yes no---------------(defer float)-------------- -% | | | -% | (do some tests and perhaps | -% | close area this way) | -% | | | -% | <float allowed on this page/column (according to tests)?> | -% | | | | -% | yes no---------------(defer float)-------------- -% | | -% | <current area got closed by any test?> -% | | | -% | yes no -% | | | -% | (select next area) | -% | | | -% -------- V -% \pretests@success@action (\setup@grab@column@or) -%\end{verbatim} -%\end{footnotesize} -% \end{description} -% -% -% -% -% -% \begin{macro}{\if@fail} -% \begin{macrocode} -\newif\if@fail -\def\@failfalse{\global\let\if@fail\iffalse} -\def\@failtrue{\global\let\if@fail\iftrue} -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\setup@float@placement} -% -% \begin{macrocode} -\def\setup@float@placement { -% initialise before trial loop (needs work) -%<*trace> - \@tracepush{setup@float@placement} -%</trace> -% \end{macrocode} -% A bit statistics: how many floats do we have on the -% |\@activelist|? -% \begin{macrocode} -%<*progress> - \def\@elt{\global\advance\trial@count\@ne\@gobble} - \@activelist - \let\@elt\relax - \progress@separator - \progress@nl{STATS:~ floats~ waiting~ =~ \the\trial@count - \space on~ page~ \the\absolute@page@number} - \progress@separator - \global\trial@count\z@ -%</progress> -% \end{macrocode} -% We need the list of here floats during all trials. They are -% therefore saved in |\saved@herelist| at this point which is then -% used to initialise |\@herelist| at the beginning of each trial. -% \begin{macrocode} - \global\let\saved@herelist\@herelist -% \end{macrocode} -% -% \begin{macrocode} - \tighten@float@placement@conditions -% \end{macrocode} -% First time we run the |\float@placement@loop| we run it without -% actually trying any floats (i.e., we are just cutting the -% galley).\footnote{Could be improved: if there are no floats then -% we run it once too often this way (per page) so\ldots} -% \begin{macrocode} - \run@with@floatsfalse - \float@placement@loop -%<*trace> - \@tracepop{setup@float@placement} -%</trace> -} -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\float@placement@loop} -% Place the galley box back on the MVL. Needs to be done via the -% special output routine call |\mark@restore@state| to ensure that -% \TeX's primitive marks reflect the `logical' previous page rather -% than the previous actual output routine call. -% \begin{macrocode} -\def\float@placement@loop{ -%<*trace> - \@tracepush{float@placement@loop} -%</trace> -% \end{macrocode} -% -% \begin{macrocode} - \deadcycles\z@ - \global\let\@activelist@empty@action\setup@best@column@or - \global\let\pretests@success@action\setup@grab@column@or -% \end{macrocode} -% -% If we are doing trials we have to place a special penalty at the -% end of the MVL but if we are cutting up the galley for -% typesetting we don't want this penalty. Since at this point it is -% not clear in which case we are we defer this action until -% later.\footnote{This part of the documentation is no longer true, -% we now add it below. CORRECT DOCU} -% -% |\mark@restore@state| state is a special output routine those -% only purpose is to reinitialise the state of the mark -% mechanism. Its argument is executed at the of that OR. -% \begin{macrocode} - \mark@restore@state{ -% \end{macrocode} -% Initialising the grabbing trials means putting the saved material -% back onto the MVL and reinitialising the here float list. -% \begin{macrocode} - \unvcopy\@holdpg - \ifnum\saved@outputpenalty > -1073741824\relax - \add@badly@guarded@penalty\output@collect@penalty - \fi - \global\let\@herelist\saved@herelist -% \end{macrocode} -% -% The we can start the actual loop: if we run with floats we go to -% |\trial@inner@loop| otherwise we immediately setup the grap -% column OR. -% \begin{macrocode} - \ifrun@with@floats - \trial@inner@loop - \else - \setup@grab@column@or - \fi - } -%<*trace> - \@tracepop{float@placement@loop} -%</trace> - } -% \end{macrocode} -% \end{macro} -% -% -% -% -% \begin{macro}{\trial@inner@loop} -% Alternative entry into the float placement trial loop. This can -% be used by setting |\@activelist@empty@action| and -% |\pretests@success@action| to different values, e.g., for trying -% float pages without the overhead of the grabcolumn output -% routine, etc. -% \begin{macrocode} -\def\trial@inner@loop{ -%<*trace> - \@tracepush{trial@inner@loop} -%</trace> -% \end{macrocode} -% If |\if@fail| is true we have already tried the current float -% before. This means we either do a retry with relaxed conditions -% (in which case the current area to try was suitably modified -% beforhand) or else we have just started with a new float and -% should try the first area of |\this@open@areas|. -% \begin{macrocode} - \if@fail - \@failfalse - \@flushfailfalse -% \end{macrocode} -% -% \begin{macrocode} -%<*progress> - \global\advance\trial@count\@ne -%</progress> -% \end{macrocode} -% -% \begin{macrocode} - \do@next\try@this@area - \else - \do@next\try@next@float - \fi -%<*trace> - \@tracepop{trial@inner@loop} -%</trace> - \do@continue - } -% \end{macrocode} -% \end{macro} -% -% -% -% \begin{macro}{\trial@count} -% To gather statistics we count the number of trials per page. -% \begin{macrocode} -%<*progress> -\newcount\trial@count -%</progress> -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\try@this@area} -% |\try@this@area| is |\let| to the right definition before it is -% called so on top-level it is defined to be an error. -% \begin{macrocode} -\let\try@this@area\ERROR -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\try@next@area} -% |\try@next@area| first updates |\this@open@areas| by removing the -% first area in this list and then calls |\try@this@area|. Thus it -% should never be called if |\this@open@areas| is already empty. -% \begin{macrocode} -\def\try@next@area{ - \xdef\this@open@areas{\expandafter\@gobblethree\this@open@areas} -%<*progress> - \global\advance\trial@count\@ne -%</progress> - \try@this@area -} -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\try@next@float} -% If there is still a float on the active list take it and try to -% place it in the next open float area (which will be the same as -% the current area after a successful trial). If there are no -% floats left execute |\best@trial| to return to that state then -% switch to the bestcolumn output routine to begin typesetting -% columns. -% \begin{macrocode} -\def\try@next@float{ -%<*trace> - \@tracepush{try@next@float} -%</trace> - \@next\@currbox\@activelist{ -%<*trace> - \tr@ce{currbox:~ \@currbox} -%</trace> -%<*progress> - \progress{Float:~ \@currbox} -%</progress> - \expandafter\update@this@float@structure\the\toks\@currbox -%<*trace> - \tr@ce{saved@this@open@areas~(init):~ - \saved@this@open@areas\space :=~\this@open@areas} -%</trace> - \global\let\saved@this@open@areas\this@open@areas -%<*progress> - \global\advance\trial@count\@ne -%</progress> - \try@this@area - } -% \end{macrocode} -% no floats left\ldots -% \begin{macrocode} - { -%<*progress> - \progress@nl{STATS:~ trials~ =~ \the\trial@count} - \global\trial@count\z@ -%</progress> - \@activelist@empty@action - } -%<*trace> - \@tracepop{try@next@float} -%</trace> -} -% \end{macrocode} -% \end{macro} -% -% -% -% -% -% \begin{macro}{\update@this@float@structure} -% Each float box has an associated token register storing several -% information fields. -% \begin{enumerate} -% \item[1] float caption (set by caption command) -% \item[2] Currently unused (could have callout page number, set by -% |\best@column@or|). -% \item[3] saved label string -% \item[4] `user counter' number (per-type count) set by float environment. -% \item[5] Allowed float areas (from default or optional arg.) -% \item[6] float type (currently this is the long name, eg figure) should -% probably be the single token name, to allow quicker testing. -% \item[7] float sequence number. -% \end{enumerate} -% -% This macro assumes that |\@currbox| is the box number for this structure -% \begin{macrocode} -\def\update@this@float@structure#1#2#3#4#5#6#7{ - \gdef\this@caption{#1} - \gdef\this@span@number{#2} - \gdef\this@usercnt{#4} - \gdef\this@fps{#5} - \gdef\this@type{#6} -% \end{macrocode} -% From the type we infer the class: -% \begin{macrocode} - \global\expandafter\let\expandafter - \this@class\csname sequence@class@#6\endcsname - \gdef\this@sequence@number{#7} -% \end{macrocode} -% If we want to consider all areas for each float (and storing -% closed areas via |\closed@|\meta{type}|@areas| we have to -% initialise |\this@open@areas| to |\used@areas| (which is -% derived from the |area-list| key. -% \begin{macrocode} - \global\let\this@open@areas\used@areas -% \end{macrocode} -% -% \begin{macrocode} - \global\expandafter\let\expandafter\this@closed@areas - \csname closed@\this@class @areas\endcsname % FMi tmp - \global\let\this@float@box\@currbox -%<*trace> -\tr@ce{This~float~structure:} -\toks@{#1}\tr@ce{~{\the\toks@}} -\tr@ce{~{#2}} -\tr@ce{~{#3}} -\tr@ce{~{#4}} -\tr@ce{~{#5}} -\tr@ce{~{#6}} -\tr@ce{~{#7}} -\tr@ce{~this@open@areas~ <-~ \this@open@areas} -\tr@ce{~this@closed@areas~ <-~ \this@closed@areas} -%</trace> -%<*progress> -\progress{~{#7}} -\progress{~{#6}~(\this@class)} -\progress{~{#4}} -%\progress{~{#2}} -%\progress{~{#3}} -%\progress{~{#5}} -\toks@{#1}\progress@nl{~{\the\toks@}} -%</progress> -} -% \end{macrocode} -% \end{macro} -% -% -% -% \begin{macro}{\extract@this@float@actual@structure} -% As used by Chris in xo-final. Should probably be replaced by the -% one above or combined with the one above!\footnote{FIX!!} -% \begin{macrocode} -\def \extract@this@float@actual@structure #1#2#3#4#5#6#7 { - \gdef\this@caption{#1} - \gdef\this@span@number{#2} - \gdef\this@loglabel{#3} - \gdef\this@usercnt{#4} - \gdef\this@fps{#5} - \gdef\this@type{#6} - \global\expandafter\let\expandafter - \this@class\csname sequence@class@#6\endcsname - \gdef\this@sequence@number{#7} - } -% \end{macrocode} -% \end{macro} -% -% -% -% \begin{macro}{\update@here@float@structure} -% -% Similar to |\update@this@float@structure| but filling different -% macros.\footnote{We only need some of those macros, so this -% should be cleaned up at some stage.} -% -% This macro assumes that |\@currbox| is the box number for this -% structure. -% -% \begin{macrocode} -\def\update@here@float@structure#1#2#3#4#5#6#7{ - \gdef\here@span@number{#2} - \gdef\here@type{#6} - \global\expandafter\let\expandafter - \here@class\csname sequence@class@#6\endcsname - \gdef\here@sequence@number{#7} - \gdef\here@usercnt{#4} -% \gdef\here@fps{#5} - \gdef\here@caption{#1} - \global\let\here@float@box\@currbox -%<*trace> -\tr@ce{Here~object~structure:} -\toks@{#1}\tr@ce~{~{\the\toks@}} -\tr@ce{~{#2}} -\tr@ce{~{#3}} -\tr@ce{~{#4}} -\tr@ce{~{#5}} -\tr@ce{~{#6}} -\tr@ce{~{#7}} -%</trace> -} -% \end{macrocode} -% \end{macro} -% -% -% -% -% -% -% \begin{macro}{\page@float@count} -% \begin{macrocode} -%\newcount\page@float@count -\let\page@float@count\@colnum -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\this@captioned@float} -% \begin{macrocode} -\newbox\this@captioned@float -% \end{macrocode} -% \end{macro} -% -% -% -% \newpage -% -% \subsection{Grab Column Output Routine} -% -% \begin{description} -% \item[Entry:] |\setup@grab@column@or| -% \item[Exit:] |\setup@cleanup@or| -% \item[Prereq:] -% \item[Description:] -% \item[Flow:] -%\begin{footnotesize} -%\begin{verbatim} -% \setup@grab@column@or -% | -% New OR: \grab@column@or -% | -% V -% \grab@column@loop <------- -% | -% (when entering OR...) -% | -% <end of collection reached?> -% | | -% yes no -% | | -% | <col break requested?> -% | | | -% | yes no -% | | | -% | | <flush point encountered?> -% | | | | -% | | yes no -% | | | | -% | | <flush point <here point encountered?> -% | | too early?> | | -% | | | | yes no -% | | yes no | | -% | | | | ? ? -% | | | (ignore break) -% | | | | -% | | | | -% (end column now) <------- | -% | | -% V | -% <all cols produced?> | -% | | V -% yes no--------------------> (reenter \grab@column@loop) -% | -% (store results of trial) -% | -% V -% \setup@cleanup@or -%\end{verbatim} -%\end{footnotesize} -% \end{description} -% -% -% -% \begin{macro}{\setup@grab@column@or} -% -% \begin{macrocode} -\def\setup@grab@column@or{ -%<*trace> - \@tracepush{setup@grab@column@or} -%</trace> -% \end{macrocode} -% -% We just returned to the MVL the current galley. We now add a -% special penalty to mark the point that we need to reach in order -% to remove everything after the trial run. -% This penalty has to be guarded against premature removal, e.g., -% if the algorithm would break exactly before it it would then be -% discarded which we can't allow.\footnote{Penalty now added -% earlier (normally). CORRECT DOCU} -% \begin{macrocode} - \ifnum\saved@outputpenalty = -1073741824\relax - \add@badly@guarded@penalty\output@collect@penalty - \fi -% \end{macrocode} -% -% \begin{macrocode} - \@failfalse - \global\curr@col@count\z@ -% \end{macrocode} -% In case there is a flush penalty in the collection we have to -% find out if we see it again during the trial. So we record the -% number of flush points we see during the trial. Same happens for -% here points. -% \begin{macrocode} - \gdef\trial@flush@seen@num{0} - \gdef\trial@here@seen@num{0} -% \end{macrocode} -% -% Moved from |\try@this@area| as it should be executed -% only if we really do a trial and thus back it out if -% unsuccessful---this was a bug as it changed -% |\fl@|\meta{col}|@|\meta{type} in cases we never came to this -% point here but recursed) -% \begin{macrocode} - \ifrun@with@floats -% \end{macrocode} -% Depending on the policy a spanning float can be considered belong -% to different columns. This influences the behaviour of the -% call-out contraint tests and is determined by the code stored in -% |\calculate@target@fl@column|. -% \begin{macrocode} - \calculate@target@fl@column -% \end{macrocode} -% |\calculate@target@fl@column| returns its calculated column -% number in |\count@|. -% \begin{macrocode} - \global\expandafter\let\expandafter\saved@fl@ - \csname fl@\the\count@ @\this@class\endcsname - \global\expandafter\let - \csname fl@\the\count@ @\this@class\endcsname - \this@sequence@number -%<*trace> - \tr@ce{~fl@\the\count@ @\this@class\space <-~ - \csname fl@\the\count@ @\this@class\endcsname} -%</trace> -% \end{macrocode} -% If we are adding to a top area we also have to update the -% corresponding |tfl@| commands: -% \begin{macrocode} - \if t\this@area@type - \global\expandafter\let\expandafter\saved@tfl@ - \csname tfl@\the\count@ @\this@class\endcsname - \global\expandafter\let - \csname tfl@\the\count@ @\this@class\endcsname - \this@sequence@number -%<*trace> - \tr@ce{~tfl@\the\count@ @\this@class\space <-~ - \csname tfl@\the\count@ @\this@class\endcsname} -%</trace> - \fi - \fi -% \end{macrocode} -% -% If we have seen any flush points during collection we need to -% save their current |min@col| positions in case we have to throw -% away the current trial. -% \begin{macrocode} - \if@flushseen - \count@\z@ - \@whilenum \flush@seq@num>\count@ \do - { \advance\count@\@ne - \global\expandafter\let - \csname saved@flush@min@col@\the\count@ \expandafter\endcsname - \csname flush@min@col@\the\count@\endcsname -%<*trace> - \tr@ce{saved@flush@min@col@\the\count@ \space <-~ - \csname flush@min@col@\the\count@\endcsname} -%</trace> - } - \fi -% \end{macrocode} -% -% \begin{macrocode} - \initialise@footins@action -% \end{macrocode} -% -% \begin{macrocode} - \global\output{\grab@column@or} - \grab@column@loop -% \end{macrocode} -% -% \begin{macrocode} -%<*trace> - \@tracepop{setup@grab@column@or} -%</trace> -} -% \end{macrocode} -% \end{macro} -% -% -% -% \begin{macro}{\calculate@target@fl@column} -% \begin{macro}{\calculate@target@fl@column@flexible} -% \begin{macro}{\calculate@target@fl@column@strict} -% The purpose of |\calculate@target@fl@column| is to calculate -% the column number for which the |\fl@|\meta{col}|@number| has to -% be updated in case we place the current float into the area with -% start column |\this@area@col@number| and span-number -% |\this@area@span@number|. It returns the calculated number in -% |\count@|. -% -% For non-spanning floats it is simply returning -% |\this@area@col@number|. If we return this value also in case of -% spanning floats then this means that we claim that the float has -% be placed the first of its spanned columns. Alternatively we -% could return the last of the spanned columns which would if the -% |column| policy is in force, allow to place a float into |t12| -% even if its call-out is in the second column. -% -% The real value for |\calculate@target@fl@column| will be assigned -% in the page setup template. -% \begin{macrocode} -\let\calculate@target@fl@column \ERROR -% \end{macrocode} -% -% And here are the two possibilities. -% \begin{macrocode} -\def\calculate@target@fl@column@flexible { - \count@\this@area@col@number\relax - \advance\count@\this@area@span@number\relax - \advance\count@\m@ne -} -% \end{macrocode} -% -% \begin{macrocode} -\def\calculate@target@fl@column@strict { - \count@\this@area@col@number\relax -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% -% -% \begin{macro}{\ifrun@with@floats} -% \begin{macro}{\run@with@floatstrue} -% \begin{macro}{\run@with@floatsfalse} -% -% \begin{macrocode} -\newif\ifrun@with@floats -\def\run@with@floatsfalse{\global\let\ifrun@with@floats\iffalse} -\def\run@with@floatstrue{\global\let\ifrun@with@floats\iftrue} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% -% -% -% \begin{macro}{\grab@column@loop} -% The |\grab@column@or| output routine is responsible for -% constructing one column of a layout trial. The loop command -% increments the column count and sets vsize to the target height -% for the current column (which has already been set based on the -% size and position of the floats in this trial layout. -% \begin{macrocode} -\def\grab@column@loop{ -%<*trace> - \@tracepush{grab@column@loop} -%</trace> - \global\advance\curr@col@count\@ne - \global\vsize\csname col@ht@ \the\curr@col@count\endcsname -%<*trace> - \@tracepop{grab@column@loop} -%</trace> -} -% \end{macrocode} -% \end{macro} -% -% -% -% -% -% -% \begin{macro}{\some@column@or} -% |\grab@column@or| and |\best@column@or| are sharing most of their -% code which is therefore placed into a separate macro. At the -% moment it takes 4 arguments: the name (``grab'' or ``best''), -% what to do when we actually finish the column -% (``|\grab@column@or@finish|'' or ``|\best@column@or@finish|''), -% what to do for a flush point, and what to do when we encounter a -% here float.\footnote{This code needs a bit of redesign to deal -% properly with the case that we have stumbled upon one of the -% special penalties. In this case we need to ensure that we also -% remove the special box after the penalty in case we are at a -% column break. This is not done right now so that in this case we -% will not dicard material at the top of the column properly. FIX!!!!} -% \begin{macrocode} -\def\some@column@or #1#2#3#4{ -%<*trace> - \@tracepush{#1@column@or} - \tr@ce{output~pen:~ \the\outputpenalty} - \tr@ce{#1~ col:~ \the\curr@col@count\space of~ \the\col@count} -%</trace> - \handle@case@of@premature@ending - \handle@case@of@forced@pagebreak -% \end{macrocode} -% If the |\outputpenalty| is |-\output@flush@float@penalty| we -% have reached a float flush point in the galley. -% \begin{macrocode} - \ifnum\outputpenalty=-\output@flush@float@penalty - \gincrement@num\trial@flush@seen@num -%<*trace> - \tr@ce{flush~ point~(\trial@flush@seen@num,~ - affects:~ \csname flush@classes@list@\trial@flush@seen@num\endcsname,~ - mincol:~ \csname flush@min@col@\trial@flush@seen@num\endcsname,~ - lastfloat:~ \csname flush@last@float@\trial@flush@seen@num\endcsname - )~ reached} -%</trace> -% \end{macrocode} -% We then remove the guard box from the output (which is at the end -% of box |\@cclv|. -% \begin{macrocode} - \remove@guard@box@from@cclv -% \end{macrocode} -% If the flush penalty moved to an earlier column than in the last -% trial we end the current column (by calling -% |\#1@column@or@finish|) and reinsert the penalty so that it will -% be seen again if we do the next column. -% \begin{macrocode} - \ifnum\csname flush@min@col@\trial@flush@seen@num\endcsname - > \curr@col@count -%<*trace> - \tr@ce{flush@min@col@\trial@flush@seen@num\space >~ - curr@col@count~ - (\csname flush@min@col@\trial@flush@seen@num\endcsname - \space >~ \the\curr@col@count)~ ->~ ending~ column} -%</trace> - \gdecrement@num\trial@flush@seen@num - \readd@guarded@penalty\output@flush@float@penalty - #2 - \else -% \end{macrocode} -% Otherwise the flush point is in an acceptable position which -% means we ignore it and carry on collecting material for the -% current column. This is done be putting everything back onto the -% MVL except the guard box and the penalty.\footnote{We lose a -% potential break point here (acceptable?) See comments in -% best@column@or!!} -% \begin{macrocode} -%<*trace> - \tr@ce{flush@min@col@\trial@flush@seen@num\space - <=~ curr@col@count~ - (\csname flush@min@col@\trial@flush@seen@num\endcsname - \space <=~ \the\curr@col@count)} -%</trace> -% \end{macrocode} -% What exactly happens here (beside the above) depends on the -% calling macro. -% \begin{macrocode} - #3 - \fi - \else -% \end{macrocode} -% If it was not a flush point we might have a here point to take -% care of. This is more or less like the code above. -% \begin{macrocode} - \ifnum\outputpenalty=-\output@here@float@penalty - \gincrement@num\trial@here@seen@num -%<*trace> - \tr@ce{here~ penalty~(\trial@here@seen@num)~ reached} -%</trace> - \remove@guard@box@from@cclv - \ifnum\csname here@min@col@\trial@here@seen@num\endcsname - > \curr@col@count -%<*trace> - \tr@ce{here@min@col@\trial@here@seen@num\space >~curr@col@count~ - (\csname here@min@col@\trial@here@seen@num\endcsname - \space >~ \the\curr@col@count)~ ->~ ending~ column} -%</trace> - \split@off@last@line - \gdecrement@num\trial@here@seen@num - \readd@guarded@penalty\output@here@float@penalty - #2 - \else - \@tempdima \pagegoal - \advance\@tempdima -\pagetotal - \ifdim \@tempdima < - \csname - here@required@space@\trial@here@seen@num - \endcsname \relax -%<*trace> - \tr@ce{here@required@space@\trial@here@seen@num\space >~ - \pagegoal-\pagetotal \space - (\csname here@required@space@\trial@here@seen@num\endcsname - \space >~ \the\pagegoal\space - -~ \the\pagetotal\space =~ - \the\@tempdima)~ - ->~ ending~ column} -%</trace> - \split@off@last@line - \gdecrement@num\trial@here@seen@num - \readd@guarded@penalty\output@here@float@penalty - #2 - \else -%<*trace> - \tr@ce{here@required@space@\trial@here@seen@num\space <=~ - \pagegoal-\pagetotal \space - (\csname here@required@space@\trial@here@seen@num\endcsname - \space <=~ \the\pagegoal\space - -~ \the\pagetotal\space =~ - \the\@tempdima)~ - ->~ accepting~ here~ point} -%</trace> - \@reinserts - \unvbox\@cclv - \@next\@currbox\@herelist{ -%<*trace> - \tr@ce{@currbox:~ \@currbox} -%</trace> - \expandafter\update@here@float@structure\the\toks\@currbox -% \end{macrocode} -% Different things need to be done depending on the type of the -% here point: -% \begin{macrocode} - \def\@tempa{mpar} - \ifx\@tempa\here@type - \typeset@a@marginpar - \else - \def\@tempa{rspace} - \ifx\@tempa\here@type - % do nothing - \else - #4 - \fi - \fi - } -% \end{macrocode} -% If there is no here object left the algorithm has screwed up -% (i.e., a ``this can't happen'' situation). -% \begin{macrocode} - \ERROR - \fi - \fi - \else -% \end{macrocode} -% If it is neither a flush nor a here point it might be a grid point: -% \begin{macrocode} - \ifnum\outputpenalty=-\output@grid@align@penalty - \align@collected@galley@and@restart -% \end{macrocode} -% So we now know that it wasn't one of our special points so this -% must have been a normal end of the galley: -% \begin{macrocode} - \else - #2 - \fi - \fi - \fi -%<*trace> - \@tracepop{#1@column@or} -%</trace> -} -% \end{macrocode} -% \end{macro} -% -% -% -% -% \begin{macro}{\grab@column@or} -% Here is the output routine used during trials, an instantiation -% of |\some@column@or|. -% \begin{macrocode} -\def\grab@column@or{\some@column@or{grab} - \grab@column@or@finish - \grab@column@or@flushcheck - \check@and@typeset@a@here@float -} -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\grab@column@or@flushcheck} -% -% The |\grab@column@or@flushcheck| code checks for restrictions -% regarding the placement of the current float. It is called when -% we just have encountered a flush float penalty while grabbing the -% text for a column and now have to see which floats (if any) need -% to be positioned before that flush point. -% \begin{macrocode} -\def\grab@column@or@flushcheck{ -%<*trace> - \@tracepush{grab@column@or@flushcheck} -%</trace> -% \end{macrocode} -% If we are making a dry-run without floats then there is no need to -% do much, so we skip all testing that involves flush points and -% only do the cleanup actions at the end. -% \begin{macrocode} - \ifrun@with@floats - \expandafter\xin@\expandafter\this@class - \csname flush@classes@list@\trial@flush@seen@num\endcsname - \ifin@ -%<*trace> - \tr@ce{flush:~ class~ \this@class\space in~ - {\csname flush@classes@list@\trial@flush@seen@num\endcsname}} -%</trace> -% \end{macrocode} -% We store in |\count@| the float sequence number of the last float -% that would be affected by the current flush penalty. This value -% is then used in the tests below. -% \begin{macrocode} - \count@\csname flush@last@float@\trial@flush@seen@num\endcsname\relax -% \end{macrocode} -% -% If the current float number is higher than float number stored in -% |\flush@last@float@|\meta{num} with the flush penalty, we are -% dealing with a float whose call-out is after the flush penalty -% and thus we have no restriction. -% \begin{macrocode} - \ifnum\this@sequence@number>\count@ -%<*trace> - \tr@ce{???:\this@sequence@number>\the\count@} - \tr@ce{this~float~ past~flush~point} -%</trace> - \else -% \end{macrocode} -% Otherwise check if this float is placed in an acceptable position -% with respect to the current flush point. For this we run -% different code depending on the ``fuzziness'' of the flush point -% under check: -% \begin{macrocode} - \csname flush@fuzziness@\trial@flush@seen@num \endcsname - \fi -%<*trace> - \else - \tr@ce{flush:~ class~ \this@class\space not~ in~ - {\csname flush@classes@list@\trial@flush@seen@num\endcsname}} -%</trace> - \fi - \fi -% \end{macrocode} -% If we failed above we additionally record that the failure is -% due to violating restrictions for a flush point. -% \begin{macrocode} - \if@fail - \@flushfailtrue -% \end{macrocode} -% -% \begin{macrocode} - \global\setbox\@cclv\box\voidb@x - \global\setbox\footins\box\voidb@x -% \end{macrocode} -% We have to immediately abort the current trial otherwise a -% flush point following in the galley might be encountered and -% processed before we reach |\evaluate@results@of@trial|. That -% would result in updating the wrong data structure there (due to -% the fact that there it assumes that |\trial@flush@seen@num| -% refers to the flush point that is the reason for -% failure).\footnote{Implementation could be improved!} -% \begin{macrocode} - \global\curr@col@count\col@count - \grab@column@or@finish - \else -% \end{macrocode} -% If we haven't failed we might have to update the -% |\flush@min@col|\meta{num} for the current flush point in case it -% moved to a new column. -% \begin{macrocode} - \ifnum\csname flush@min@col@\trial@flush@seen@num\endcsname<\curr@col@count - \expandafter\xdef - \csname flush@min@col@\trial@flush@seen@num\endcsname - {\the\curr@col@count} -%<*trace> - \tr@ce{set~ flush@min@col@\trial@flush@seen@num:~ - \csname flush@min@col@\trial@flush@seen@num\endcsname} -%</trace> - \fi -% \end{macrocode} -% We have to return the collected footnotes first or else \TeX{} -% might decide that it is better to break before -% them.\footnote{Quite likely that this needs some refinement as it -% might mess up vertical spacing in other respects. Look out for -% other places where \texttt{\string\@reinserts} is used, if this -% needs fixing.} -% \begin{macrocode} - \@reinserts - \unvbox\@cclv -% \end{macrocode} -% What penalty to return???\footnote{FIX!!!} -% \begin{macrocode} -% \penalty\z@ % none i think now (in the current version) but this - % will change again - \fi -%<*trace> - \@tracepop{grab@column@or@flushcheck} -%</trace> -} -% \end{macrocode} -% \end{macro} -% -% -% -% -% -% \begin{macro}{\flushcheck@page} -% \begin{macrocode} -\def\flushcheck@page { -%<*trace> - \tr@ce{OK:~flush~check~ (same~page)} -%</trace> -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\flushcheck@spread} -% -% This is actually a dummy definition. There is more to do if we -% want to provide support for spreads!\footnote{Finish implementation} -% \begin{macrocode} -\def\flushcheck@spread { -%<*trace> - \tr@ce{OK:~flush~check~ (using~page~not~ spread)} -%</trace> -} -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\flushcheck@strict} -% \begin{macrocode} -\def\flushcheck@strict { -%<*trace> - \@tracepush{flushcheck@strict} -%</trace> -% \end{macrocode} -% If strict flushing is required we look where the current float is -% being placed. If it -% is placed in a column which is earlier than the current column -% then it is definitely before the flush point and thus we are okay. -% \begin{macrocode} - \ifnum\this@area@col@number<\curr@col@count -%<*trace> - \tr@ce{OK:~flush~check~ - (\this@area@col@number<\the\curr@col@count,~\this@area)} -%</trace> - \else -% \end{macrocode} -% Otherwise we test if the float is placed into the current -% column. If this is the case it might be okay, but only if it is -% not placed into the bottom area. -% \begin{macrocode} - \ifnum\this@area@col@number=\curr@col@count -% \end{macrocode} -% To test for the bottom area(s) means looking at the first token -% in the area identifier. If it is |b| we are past the flush -% point.\footnote{It might be an interesting extension to allow -% relaxing the flush situation to allow the floats to appear -% anywhere on the current column (on which the flush point ends up), -% or even allowing that it only has to appear on the current page -% or page spread.} -% \begin{macrocode} - \if b \this@area@type - \@failtrue -%<*progress> - \progress@failed{area~ below~ flush~ point~ - (\this@area@col@number=\the\curr@col@count,~\this@area)} -%</progress> -%<*trace> - \tr@ce{Fail:~flush~check~ - (\this@area@col@number=\the\curr@col@count,~\this@area)} -% \end{macrocode} -% Otherwise the float was placed into an area that is still before -% the flush point. -% \begin{macrocode} - \else - \tr@ce{OK:~flush~check~ - (\this@area@col@number=\the\curr@col@count,~\this@area)} -%</trace> - \fi -% \end{macrocode} -% If the float was neither placed before nor into the current -% column we have to conclude that it was placed into a later column -% which means it was placed after the flush point --- thus we fail. -% \begin{macrocode} - \else - \@failtrue -%<*progress> - \progress@failed{area~ after~ flush~ point~ - (\this@area@col@number>\the\curr@col@count,~\this@area)} -%</progress> -%<*trace> - \tr@ce{Fail:~flush~check~ - (\this@area@col@number>\the\curr@col@count,~\this@area)} -%</trace> - \fi - \fi -%<*trace> - \@tracepop{flushcheck@strict} -%</trace> -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\flushcheck@column} -% \begin{macrocode} -\def\flushcheck@column { - \ifnum\this@area@col@number>\curr@col@count - \@failtrue -%<*progress> - \progress@failed{area~ after~ flush~ point~ column~ - (\this@area@col@number>\the\curr@col@count,~\this@area)} -%</progress> -%<*trace> - \tr@ce{Fail:~flush~check~ - (\this@area@col@number>\the\curr@col@count,~\this@area)} - \else - \tr@ce{OK:~flush~check~ - (\this@area@col@number<=\the\curr@col@count,~\this@area)} -%</trace> - \fi -} -% \end{macrocode} -% \end{macro} -% -% -% -% -% \begin{macro}{\grab@column@or@finish} -% \begin{macrocode} -\def\grab@column@or@finish{ -%<*trace> - \@tracepush{grab@column@or@finish} -%</trace> -% \end{macrocode} -% -% \begin{macrocode} - \mark@update@structure -% \end{macrocode} -% -% \begin{macrocode} - \deal@with@footins@action -% \end{macrocode} -% -% First check if there are some special constraints that should be -% met (this is, for example, used to check if there are both bottom -% floats and footnotes). If the constraints are not met don't -% bother to check the callout/float constraints. -% \begin{macrocode} - \if@fail\else - \ifrun@with@floats - \check@some@constraints - \fi - \fi - \if@fail\else -% \end{macrocode} -% For each float sequence class, call |\check@callout@constraints| -% this will be set via a call to a pagesetup template to do an -% appropriate check on the float placement relative to float -% call-out. -% \begin{macrocode} - \ifrun@with@floats - \let\@elt\check@callout@constraints - \float@classes@list - \fi - \fi -% \end{macrocode} -% -% Throw the text away (it will be reset later if this trial is -% in fact chosen). -% \begin{macrocode} - \global\setbox\@cclv\box\voidb@x - \global\setbox\footins\box\voidb@x -% \end{macrocode} -% After the last column we evaluate the results of the trial (and -% if the result looks ok remember it as a candidate for the final -% solution). We then switch to the `clean up' OR which will -% collect up the main vertical list as far as the special penalty -% marking the end of the collection pass, to clear the MVL for the -% next trial. If this isn't the last column, set up the next -% column. -% \begin{macrocode} - \ifnum\curr@col@count=\col@count - \evaluate@results@of@trial - \setup@cleanup@or - \else - \grab@column@loop - \fi -%<*trace> - \@tracepop{grab@column@or@finish} -%</trace> -} -% \end{macrocode} -% \end{macro} -% -% -% -% -% \begin{macro}{\handle@case@of@premature@ending} -% Next |\ifnum| is a fix that needs rethinking: what is the best -% approach if we hit the penalty which denotes the end of the -% collected galley too early, e.g., in the middle of a trial using -% |\grab@column@or| or when producing the final columns with -% |\best@column@or|? Current solution gets the stuff out, but is it -% probably not the best solution. -% correct? -% \begin{macrocode} -\def\handle@case@of@premature@ending{ - \ifnum\outputpenalty=-\output@collect@penalty - \remove@guard@box@from@cclv - \readd@guarded@penalty\output@collect@penalty - \fi -} -% \end{macrocode} -% \end{macro} -% -% -% -% \begin{macro}{\check@some@constraints} -% By default there are no additional constraints to check for. -% \begin{macrocode} -\let\check@some@constraints\relax -% \end{macrocode} -% \end{macro} -% -% -% -% \begin{macro}{\evaluate@results@of@trial} -% -% The purpose of |\evaluate@results@of@trial| is to determine if -% the current trial is a potential candiate for the final solution -% and if so store it away. We can determine if the trial failed by -% looking at the switch |@fail|. -% \begin{macrocode} -\def\evaluate@results@of@trial{ -%<*trace> - \@tracepush{evaluate@results@of@trial} -%</trace> -% \end{macrocode} -% -% \begin{macrocode} - \ifrun@with@floats - \ifx\try@this@area\std@try@this@area - \count@\trial@here@seen@num\relax - \advance\count@\page@float@count - \ifnum \pagesetup@max@float@num < \count@ -%<*trace> - \tr@ce{Failed:~ area~ +~ here~ floats~ exceed~ max~ floats} -%</trace> -%<*progress> - \progress@failed{area~ +~ here~ floats~ exceed~ max~ floats} -%</progress> - \@failtrue - \fi - \fi - \fi -% \end{macrocode} -% -% \begin{macrocode} - \if@fail -%<*trace> - \tr@ce{fail:~true} -%</trace> -% \end{macrocode} -% If the trial has failed we have to distinguish two cases: -% \begin{itemize} -% \item -% There has been a request for flushing out floats up to a -% certain float somewhere -% and the current float belongs to the list of floats to flush. -% \item -% There has been no such request. -% \end{itemize} -% -% If there have been flush points we need to restore their -% |min@col| values since we might have updated them. -% \begin{macrocode} - \if@flushseen - \count@\z@ - \@whilenum \flush@seq@num>\count@ \do - { \advance\count@\@ne - \global\expandafter\let - \csname flush@min@col@\the\count@ \expandafter\endcsname - \csname saved@flush@min@col@\the\count@\endcsname -%<*trace> - \tr@ce{flush@min@col@\the\count@ \space <-~ - \csname flush@min@col@\the\count@\endcsname \space - (restore) } -%</trace> - } - \fi - - \if@flushfail -%<*trace> - \tr@ce{flushfail:~true} -%</trace> -% \end{macrocode} -% If we have failed and |\try@this@area| is already the ``relaxed'' -% version we have to artificially move the offending flush point to -% the next column and hope that this way we get ourselves some new -% options (worst case is that eventually the flush point is removed -% from the page in which case we can as a last resort defer the -% float). -% \begin{macrocode} - \ifx\try@this@area\relaxed@try@this@area - - \expandafter\gincrement@num - \csname flush@min@col@\trial@flush@seen@num\endcsname -%<*trace> - \tr@ce{flush@min@col@\trial@flush@seen@num~ <-~ - \csname flush@min@col@\trial@flush@seen@num\endcsname} -%</trace> -%<*progress> - \progress@failed{flush~ point~ \trial@flush@seen@num\space - moved~ to~ column~ - \csname flush@min@col@\trial@flush@seen@num\endcsname} -%</progress> - \else - - \ifx\saved@this@open@areas\@empty -%<*debug> - \tr@ce{saved@this@open@areas:~empty ????????} -%</debug> - \ERROR - \else - \global\let\this@open@areas\saved@this@open@areas -%<*trace> - \tr@ce{~this@open@areas~ <-~ \this@open@areas \space (reopen)} -%</trace> - \fi - \relax@float@placement@conditions - \fi - \else -%<*trace> - \tr@ce{flushfail:~false} -%</trace> - \xdef\this@open@areas{\expandafter\@gobblethree\this@open@areas} - \fi - -%<*trace> - \tr@ce{open:~\this@open@areas} - - \tr@ce{restore:~last~allocated:~\saved@fl@} -%</trace> -% \end{macrocode} -% To restore the previous state we have to recalculate the target -% |fl@| column. -% \begin{macrocode} - \calculate@target@fl@column - \global\expandafter\let - \csname fl@\the\count@ @\this@class\endcsname - \saved@fl@ -%<*trace> - \tr@ce{~fl@\the\count@ @\this@class\space <-~ - \saved@fl@ \space (restored)} -%</trace> -% \end{macrocode} -% And if we tried a top area we also have to restored the -% corresponding |tfl@| macro. -% \begin{macrocode} - \if t\this@area@type - \global\expandafter\let - \csname tfl@\the\count@ @\this@class\endcsname - \saved@tfl@ -%<*trace> - \tr@ce{~tfl@\the\count@ @\this@class\space <-~ - \saved@tfl@ \space (restored)} -%</trace> - \fi -% \end{macrocode} -% And we better don't forget to restore the heights.\footnote{This -% is most likely buggy: I seem to restore all column values but i think -% i don't save all of them! FIX!!!!} -% \begin{macrocode} - \update@this@area@columns - { -%<*trace> - \tr@ce{restore:~saved@col@ht@ \the\count@:~ - \csname saved@col@ht@ \the\count@\endcsname} -%</trace> - \global\csname col@ht@ \the\count@\endcsname - \csname saved@col@ht@ \the\count@\endcsname\relax - \global\expandafter\let - \csname col@ \this@area@type @delta@ \the\count@ - \expandafter \endcsname - \csname saved@col@ \this@area@type @delta@ \the\count@ \endcsname -%<*trace> - \tr@ce{GRID (delta):~ column~\the\count@\this@area@type:~ - \csname saved@col@ \this@area@type @delta@ \the\count@ - \endcsname\space (restore) } -%</trace> - } - \else -%<*trace> - \tr@ce{fail:~false} -%</trace> -% \end{macrocode} -% -% \begin{macrocode} -%<*progress> - \let\progress@inform@later\@empty -%</progress> -% \end{macrocode} -% If this trial is valid and we haven't seen all flush penalties -% again we must have pushed them to the next page. We record -% this fact by setting |flush@min@col@...| to |\maxdimen|. -% \begin{macrocode} - \if@flushseen - \count@\flush@seq@num\relax - \loop - \ifnum \trial@flush@seen@num < \count@ - \global\@namedef{flush@min@col@\the\count@}{\maxdimen} -%<*trace> - \tr@ce{flush@min@col@\the\count@\space <-~ maxdimen} -%</trace> - \advance\count@\m@ne - \repeat -% \end{macrocode} -% If there has been a flush point (ie if |\trial@flush@seen@num| und -% thus |\count@| is greater than 0) we test whether or not the -% float recently placed was the last one affected by the last flush -% point on the current page and if so tighten the float placement -% setting again.\footnote{correct logic?} -% \begin{macrocode} -%<*progress> - \let\progress@inform@later\@empty -%</progress> - \ifrun@with@floats - \ifnum \count@ > \z@ - \ifnum \csname flush@last@float@\trial@flush@seen@num\endcsname = - \this@sequence@number \relax -%<*trace> - \tr@ce{flush:~ last~float~affected~ by~ flush~ point~ - \trial@flush@seen@num\space placed~ ->~ - use~ partly~ normal~ placement~ conditions~ again} -%</trace> -%<*progress> - \def\progress@inform@later{ - \progress@nl{->~ past~ flush~ point:~ -->~ - tighten~ conditions~ again} - \progress@nl{} - } -%</progress> - \partly@tighten@float@placement@conditions - \fi - \fi - \fi -% \end{macrocode} -% Having placed a float we need to update |\flush@classes@list@max| to -% reflect which float types are affected by the flush points -% currently on the page as this might be needed when trying to -% place or rather defer the next float. -% -% So we loop and concatenate all |\flush@classes@list@|\meta{num} that -% belong to flush points on the current page. This might result in -% the list containing types several times but for the test we need -% to do this doesn't make any difference (and it is far faster than -% unifying the list). -% \begin{macrocode} - \count@\z@ - \global\let\flush@classes@list@max\@empty - \loop - \ifnum \trial@flush@seen@num > \count@ - \advance\count@\@ne - \xdef\flush@classes@list@max{ - \flush@classes@list@max; - \csname flush@classes@list@\the\count@\endcsname - } -%<*trace> - \tr@ce{flush@classes@list@max~ <-~ \flush@classes@list@max} -%</trace> - \repeat - \fi -% \end{macrocode} -% -% With this algorithm a trial which passed so far is always -% considered to be better than previous trials (meaning more floats -% on the page are better). So we always update the best trial data -% (unless this was the run without adding floats in which case we -% only change the |run@with@floats| switch. -% \begin{macrocode} - \ifrun@with@floats - \update@best@trial -%<*progress> - \progress@inform@later -%</progress> - \else - \run@with@floatstrue - \fi - \fi -%<*trace> - \@tracepop{evaluate@results@of@trial} -%</trace> - } -% \end{macrocode} -% \end{macro} -% -% -% -% -% \subsection{Best Trial Data} -% -% -% \begin{macro}{\best@trial} -% \begin{macrocode} -\let\best@trial\@empty -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\update@best@trial} -% Not all of this belongs into this macro!\footnote{redistribute} -% \begin{macrocode} -\def\update@best@trial{ -%<*trace> - \@tracepush{update@best@trial} -%</trace> -%<*progress> - \progress@nl{->~ accepted} -%</progress> - \global\let\best@trial\@empty - \forall@columns{ - \expandafter - \g@addto@macro\expandafter\best@trial\expandafter - { - \expandafter - \global - \csname col@ht@ \the\curr@col@count\expandafter\endcsname - \the\csname col@ht@ \the\curr@col@count\endcsname - } - } -% \end{macrocode} -% -% Frank says this needs to be documented (the rest of the code is self evident) -% |\this@float@box| is |\let| to |\@currbox| which is defed to a chardefed -% token from newinsert. so this is OK. honest. -% \begin{macrocode} - \expandafter\@cons\csname area@\this@area\expandafter\endcsname - \this@float@box -% \end{macrocode} -% -% \begin{macrocode} -%<*trace> - \tr@ce{this@page@closed~ \this@page@closed\space +~ - "\csname pagesetup@\this@area @all@close\endcsname"} - \tr@ce{this@closed@areas~ \this@closed@areas\space +~ - "\csname pagesetup@\this@area @class@close\endcsname"} -%</trace> - \xdef\this@page@closed{\this@page@closed, - \csname pagesetup@\this@area @all@close\endcsname} - \xdef\this@closed@areas{\this@closed@areas, - \csname pagesetup@\this@area @class@close\endcsname} -% \end{macrocode} -% -% \begin{macrocode} - \global\expandafter\let\csname open@\this@class - @areas\endcsname % FMi tmp - \this@open@areas - \global\expandafter\let\csname closed@\this@class - @areas\endcsname % FMi tmp - \this@closed@areas -% \end{macrocode} -% moving the captioned float to the main float box is put into a -% separate macro so that we can suppress this in cases where we -% potentially want to revert to a previous stage.\footnote{FIX} -% \begin{macrocode} -%<*obsolete> - \add@caption@to@float@box -%</obsolete> -% \end{macrocode} -% -% \begin{macrocode} - \global\advance\page@float@count\@ne - \global\advance\csname \this@area @float@count\endcsname\@ne -% \end{macrocode} -% -% Since the trial was successful, we have to update the the macros -% that hold the number of top or bottom floats we have seen so far -% in each column.\footnote{Code for this is similar to the one in -% construct@and@test@col@ht and elsewhere; perhaps there should be -% a subroutine for it!} -% \begin{macrocode} - \update@this@area@columns - { - \expandafter - \gincrement@num - \csname col@ \this@area@type - @floats@ \the\count@ @number\endcsname -%<*trace> - \tr@ce{col@ \this@area@type - @floats@ \the\count@ @number <-~ - \csname col@ \this@area@type - @floats@ \the\count@ @number\endcsname} -%</trace> - } -% \end{macrocode} -% -% \begin{macrocode} -%<*trace> - \tr@ce{\meaning\best@trial} - \tr@ce{area:~\this@area\space\csname area@\this@area\endcsname} - \@tracepop{update@best@trial} -%</trace> -} -% \end{macrocode} -% \end{macro} -% - -% \begin{macro}{\add@caption@to@float@box} -% This is a hook really to be able to prevent moving the caption -% back into |\this@float@box| (by making this macro |\relax| and -% this is what happens later on in xo-final). Yes we know the -% coding here needs changing!\footnote{David FIX!!!} -% \begin{macrocode} -%<*obsolete> -\def\add@caption@to@float@box{ - \global\setbox\this@float@box\box\this@captioned@float -} -%</obsolete> -% \end{macrocode} -% \end{macro} -% -% -% \newpage -% -% \subsection{Best Column Output Routine} -% -% \begin{description} -% \item[Entry:] |\setup@best@column@or| -% \item[Exit:] |\setup@collection@or| -% \item[Prereq:] -% \item[Description:] -% \item[Flow:] -%\begin{footnotesize} -%\begin{verbatim} -% \setup@best@column@or -% | -% New OR: \best@column@or -% | -% V -% \best@column@loop <------- -% | -% (when entering OR...) -% | -% <end of collection reached?> -% | | -% yes no -% | | -% | <col break requested?> -% | | | -% | yes no -% | | | -% | | <flush point encountered?> -% | | | | -% | | yes no -% | | | | -% | | <flush point <here point encountered?> -% | | too early?> | | -% | | | | yes no -% | | yes no | | -% | | | | ? ? -% | | | (ignore break) -% | | | | -% | | | | -% | | | | -% | | | | -% | | | | -% | | | | -% | | | | -% | | | | -% | | | | -% (end column now) <------- | -% | | -% V | -% <all cols produced?> | -% | | V -% yes no--------------------> (reenter \best@column@loop) -% | -% (produce final page) -% | -% V -% \initialise@next@page -% | -% V -% (try to make float pages) -% | -% V -% \setup@collection@or -%\end{verbatim} -%\end{footnotesize} -% \end{description} -% -% -% After the best trial is chosen the `best@column@or' output routines -% are executed. Structurally this is similar to the grab column output -% routines used during the trials, but this time information -% about the float placements is recorded in the float area lists -% and also optionally in float placement control files. -% -% \begin{macro}{\setup@best@column@or} -% This is the initialisation code for producing the final best set -% of columns (via the @best@column@or output routine). -% \begin{macrocode} -\def\setup@best@column@or{ -%<*trace> - \@tracepush{setup@best@column@or} -% Elsewhere now: -% \tr@ce{reinsert~penalty:~ \saved@outputpenalty\space (unless~ 10000)} -%</trace> -% \penalty -% \ifnum\saved@outputpenalty=\@M -% \z@ -% \else -% \saved@outputpenalty\relax -% \fi - \global\curr@col@count\z@ - \gdef\trial@flush@seen@num{0} - \gdef\trial@here@seen@num{0} - \perhaps@write@placements@to@fpl@file - \best@trial -% \end{macrocode} -% -% \begin{macrocode} - \initialise@footins@action -% \end{macrocode} -% -% \begin{macrocode} - \global\output{\best@column@or} - \best@column@loop -%<*trace> - \@tracepop{setup@best@column@or} -%</trace> -} -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\best@column@loop} -% \begin{macrocode} -\def\best@column@loop{ -%<*trace> - \@tracepush{best@column@loop} -%</trace> - \global\advance\curr@col@count\@ne - \global\vsize\csname col@ht@ \the\curr@col@count\endcsname -%<*trace> - \tr@ce{vsize~ <-~ \the\vsize } - \@tracepop{best@column@loop} -%</trace> -} -% \end{macrocode} -% \end{macro} -% -% -% -% \begin{macro}{\best@column@or} -% Here is the output routine used when preparing the final columns, -% an instantiation of |\some@column@or|. In contrast to the version -% used for |\grab@column@or| it doesn't do the tests. -% \begin{macrocode} -\def\best@column@or{\some@column@or{best} - \best@column@or@finish - { - \@reinserts - \unvbox\@cclv -% \end{macrocode} -% Next line not okay! we need to add a penalty here but which one? -% Or we need a different mechanism using either |\holdinginserts| -% or a partial box line in collection OR.\footnote{FIX!!! there is -% also another place like this!} -% \begin{macrocode} -% \penalty\z@ %FMi? - } - { - \perhaps@write@to@fpl@file{ - \@spaces Area:~hhh^^J - \expandafter\perhaps@write@placements@to@fpl@file@aux\the\toks\@currbox} - \typeset@a@here@float - } -} -% \end{macrocode} -% \end{macro} -% -% -% -% -% -% -% \begin{macro}{\best@column@or@finish} -% -% \begin{macrocode} -\def\best@column@or@finish{ -%<*trace> - \@tracepush{best@column@or@finish} -%</trace> - \mark@update@structure -% \end{macrocode} -% -% \begin{macrocode} - \deal@with@footins@action -% \end{macrocode} -% -% save all marks here\footnote{not done yet!} -% -% add floats and footnotes etc to collected column -% -% \begin{macrocode} - \produce@final@column -% \end{macrocode} -% -% \begin{macrocode} - \ifnum\curr@col@count=\col@count - \produce@final@page - \initialise@next@page - \try@float@pages - \place@deferred@floats - \setup@collection@or -%{\showoutput\showlists} - \else - \best@column@loop - \fi -%<*trace> - \@tracepop{best@column@or@finish} -%</trace> -} -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\initialise@next@page} -% Initialises the column heights to text height. Clear the float -% area lists, zero holdinginserts to allow footnote texts to arrive -% in the insertion box. -% \begin{macrocode} -\def\initialise@next@page{ -%<*trace> - \@tracepush{initialise@next@page} -%</trace> -% -% \end{macrocode} -% -% \begin{macrocode} - \initialise@column@data -% \end{macrocode} -% -% \begin{macrocode} - \initialise@areas -% \end{macrocode} -% -% \begin{macrocode} - \global\page@float@count\z@ -% \end{macrocode} -% -% \begin{macrocode} - \initialise@flush@data -% \end{macrocode} -% -% \begin{macrocode} - \initialise@here@data -% \end{macrocode} -% -% \begin{macrocode} - \initialise@footins@action -% \end{macrocode} -% -% Nothing is closed when we are at the start of a page. -% \begin{macrocode} - \global\let\this@page@closed\@empty -% \end{macrocode} -% -% \begin{macrocode} - \let\@elt\initialise@float@class - \float@classes@list - \let\@elt\relax -% -%\showfloatlists -%\show\area@ddd\show\@activelist -% for safety - \global\let\this@float@box\@undefined -%<*trace> - \@tracepop{initialise@next@page} -%</trace> - } -% \end{macrocode} -% \end{macro} -% -% -% -% -% \begin{macro}{\handle@case@of@forced@pagebreak} -% This is related to |\handle@case@of@premature@ending| but we have -% to return the penalty only if we haven't reached the last column. -% If we don't do this we would start collecting material in the -% middle of final page generation! -% \begin{macrocode} -\def \handle@case@of@forced@pagebreak{ - \ifnum\curr@col@count<\col@count - \ifnum\outputpenalty=-\@M - \@emptycol - \fi - \fi - - \ifnum\outputpenalty=-\output@balance@penalty -%<*trace> - \tr@ce{BALANCE:~ end~ point~ seen~ again} -%</trace> - \remove@guard@box@from@cclv - \ifnum\curr@col@count<\col@count - \@emptycol - \fi - \fi -} -% \end{macrocode} -% \end{macro} -% -% -% -% \newpage -% -% \subsection{Cleanup Output Routine} -% -% \begin{description} -% \item[Entry:] |\setup@cleanup@or| -% \item[Exit:] |\float@placement@loop| -% \item[Prereq:] -% \item[Description:] -% Responsible for discarding unused text still on Main Vertical -% List After the end of a trial. It eats everything until it sees -% the special penalty marking the end of the last collection output -% routine. This output routine may need to be called several times -% in succession due to forced penalties in the galley. -% \item[Flow:] -%\begin{footnotesize} -%\begin{verbatim} -% \setup@cleanup@or -% | -% V -% New OR: \cleanup@or -% | -% V -% <special outputpenalty reached?> --> \float@placement@loop -%\end{verbatim} -%\end{footnotesize} -% \end{description} -% -% -% \begin{macro}{\setup@cleanup@or} -% \begin{macrocode} -\def\setup@cleanup@or{ - \global\vsize\maxdimen - \global\output{\cleanup@or} - } -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\cleanup@or} -% In the actual output routine we grab text and throw it away until -% we see the special output penalty. Then we prepare for the trials -% to place the floats properly. -% \begin{macrocode} -\def\cleanup@or{ -%<*trace> - \@tracepush{cleanup@or} - \tr@ce{output~pen:~ \the\outputpenalty} -%</trace> -% \end{macrocode} -% Throw everything away \ldots -% \begin{macrocode} - \global\setbox\@cclv\box\voidb@x - \global\setbox\footins\box\voidb@x -% \end{macrocode} -% \ldots\ until we see the special output penalty again. -% \begin{macrocode} - \ifnum\outputpenalty=-\output@collect@penalty - \float@placement@loop - \fi -%<*trace> - \@tracepop{cleanup@or} -%</trace> -} -% \end{macrocode} -% \end{macro} -% -% -% \newpage -% -% \subsection{Making float pages} -% -% -% \begin{description} -% \item[Entry:] |\try@float@pages| -% \item[Exit:] --- (this happens within the OR)\\ -% On exit |\area@ddd| will be empty and the floats not being put -% onto float pages are moved to |\@activelist| (those that have -% their call outs on previous pages) and |\@mvllist| (those that -% have their call outs still on the MVL). -% \item[Prereq:] |\area@ddd| contains the float to work on; all other -% areas are empty. -% \item[Description:] -% \item[Flow:] -%\begin{footnotesize} -%\begin{verbatim} -% \try@float@pages -% | -% V -% <\area@ddd has floats?> -% | | -% ----no yes -% | | -% | V -% | (split \area@ddd into \@activelist and \@mvllist; -% | setup trial conditions) -% | | -% | V -% | \try@float@page <------------- -% | | | -% | <float page produced?> | -% | | | | -% | no yes | -% | | | | -% | | (output page) | -% | | | | -% | | (move new \area@ddd | -% | | to \@activelist) | -% | | | | -% | | ------------------ -% | | -% | | -% | (restore float conditions before last trial) -% | | -% | (restore trial condition to normal) -% | | -% ------------->| -% | -% V -%\end{verbatim} -%\end{footnotesize} -% \end{description} -% -% -% -% \begin{macro}{\try@float@pages} -% -% \begin{macrocode} -\def\try@float@pages { -%<*trace> - \@tracepush{try@float@pages} -%</trace> - \ifx\area@ddd\@empty -%<*trace> - \tr@ce{no~ deferred~ floats} -%</trace> - \else - \global\let\@activelist@empty@action\relax - \global\let\pretests@success@action\floatpage@pretests@success@action -% \end{macrocode} -% this is only a tmp: we just use |\relaxed@try@this@area| but of -% course there should be different rules for float pages (and -% different float areas and \ldots) -% \begin{macrocode} - \global\let\try@this@area\relaxed@try@this@area -% \end{macrocode} -% -% First thing to do is to split the list of deferred floats into -% those that have ther callouts already typeset (on previous pages) -% and those that we have only seen because we looked a bit -% ahead. For making float pages we can only use the former. -% \begin{macrocode} - \let\@elt\split@defer@list - \area@ddd - \let\@elt\relax - \global\let\area@ddd\@empty -% \end{macrocode} -% Now we loop until we fail to make float pages. The actual work is -% done in the macro |\try@float@page|. -% \begin{macrocode} - \@floatpagetrue - \loop - \if@floatpage - \begingroup % no nesting of \loop without grouping ... -% \end{macrocode} -% Next line prevents adding the caption to the float box. Of course -% the float page does come out even worse this way, but we don't -% get multiple captions if float page generation -% fails.\footnote{FIX by redesigning caption handling!} -% \begin{macrocode} -%<*obsolete> - \let\add@caption@to@float@box\relax %tmp!! -%</obsolete> -% \end{macrocode} -% -% A bit statistics: how many floats do we have on the -% |\@activelist|? -% \begin{macrocode} -%<*progress> - \def\@elt{\global\advance\trial@count\@ne\@gobble} - \@activelist - \let\@elt\relax - \progress@nl{} - \progress@separator - \progress@nl{STATS:~ floats~ waiting~ =~ \the\trial@count - \space on~ page~ \the\absolute@page@number\space (float~ page)} - \progress@separator - \global\trial@count\z@ -%</progress> -% \end{macrocode} -% \begin{macrocode} - \try@float@page - \endgroup - \repeat -% \end{macrocode} -% Once we are finished we have to return to normal trial -% conditions, so\ldots -% \begin{macrocode} - \global\let\try@this@area\std@try@this@area - \fi -%<*trace> - \@tracepop{try@float@pages} -%</trace> -} -% \end{macrocode} -% \end{macro} -% -% -% -% \begin{macro}{\try@float@page} -% This macro tries to build a single float page from the floats in -% |\@activelist|. If it fails it (tries to) restores the state of -% the floats. If it succeeds it will output a float page and returns. -% \begin{macrocode} -\def\try@float@page { -%<*trace> - \@tracepush{try@float@page} -%</trace> -% \end{macrocode} -% Save the current state in case of failure then run the float -% placement loop (setup for this loop should have happened -% earlier). -% \begin{macrocode} - \save@current@float@state - \trial@inner@loop -% -%\typeout{float.list.after.trial} -%\showfloatlists -% -% \end{macrocode} -% Loop through all ``text columns'' and add up their heights. This -% is again only done to have some sort of measure for float pages -% and should be removed once some real code gets into this part. -% \begin{macrocode} - \dimen@\z@ - \forall@columns{ -%<*trace> - \tr@ce{\ht\the\curr@col@count=\the \csname - col@ht@ \the\curr@col@count \endcsname} -%</trace> - \advance\dimen@ \csname - col@ht@ \the\curr@col@count \endcsname - } -% \end{macrocode} -% -% If the sum of all white space is more than 300pt :-) -% \begin{macrocode} - \ifdim \dimen@ > 300pt \relax -% \end{macrocode} -% we fail -% \begin{macrocode} - \@floatpagefalse -%<*trace> - \tr@ce{float~page~failed} -%</trace> -%<*progress> - \progress@failed{no~ float~ page~ made} - \progress@nl{} -%</progress> -% \end{macrocode} -% Return to the previous state (and as can be seen by using -% |\initialise@next@page|) this needs some work; the latter might -% in fact do too much like calling -% |\initialise@flush@num|!\footnote{FIX} -% \begin{macrocode} - \saved@float@state -% \end{macrocode} -% To avoid having |\initialise@flush@num| do anything harmful we -% set |\trial@flush@seen@num| to zero at this point.\footnote{This -% needs fixing properly!} And the same is necessary for -% |\initialise@here@num|. -% \begin{macrocode} - \gdef\trial@flush@seen@num{0} - \gdef\trial@here@seen@num{0} - \initialise@next@page - \else -% \end{macrocode} -% Otherwise we claim we have a good float page. -% \begin{macrocode} -%<*trace> - \tr@ce{float~page~succeeded} - \tr@ce{We~ better~ output~ something~ now~ ...} -%</trace> -%<*progress> - \progress@nl{succeeded} - \progress@nl{} -%</progress> -% \end{macrocode} -% producing this page is rubbish as well but it can't be written -% before we have parameters and rules for making float pages. -% \begin{macrocode} - \forall@columns{ - \global\setbox\csname col@box@\the\curr@col@count\endcsname - \vbox to \csname col@ht@ \the\curr@col@count\endcsname{} - \produce@final@column - } - \perhaps@write@placements@to@fpl@file - \produce@final@page - \initialise@next@page -% \end{macrocode} -% But the final lines are for real: if we did succeed we need to -% provide a new |\@activelist| for the next potential float page. -% It should be the floats we deferred while trying to make the -% current float page followed by the floats that are still on the -% active list (i.e., those we haven't even tried for the current -% page). -% \begin{macrocode} - \xdef\@activelist{\area@ddd\@activelist} - \global\let\area@ddd\@empty - \fi -% -%\typeout{float.list.after.shipout.float.page.or.fail} -%\showfloatlists -% -%<*trace> - \@tracepop{try@float@page} -%</trace> -} -% \end{macrocode} -% \end{macro} -% -% -% -% \begin{macro}{\if@floatpage} -% \begin{macro}{\@floatpagefalse} -% \begin{macro}{\@floatpagetrue} -% Switch which is set to true while we are in the process of making -% float pages and haven't failed. -% \begin{macrocode} -\newif\if@floatpage -\def\@floatpagefalse{\global\let\if@floatpage\iffalse} -\def\@floatpagetrue{\global\let\if@floatpage\iftrue} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% -% -% -% \begin{macro}{\save@current@float@state} -% -% Save the current state of affairs concerning -% floats\footnote{Needs more work, there are now other data -% structures that should be saved if this is every going to be of -% much use. (its current usage actually could be achieved with -% simpler means). FIX or fold!}. In case of failure return to -% this state by executing |\saved@float@state|. -% \begin{macrocode} -\def\save@current@float@state { -%<*trace> - \@tracepush{save@current@float@state} -%</trace> - \xdef\saved@float@state{\gdef\noexpand\@activelist{\@activelist}} - \forall@columns { - \expandafter - \g@addto@macro - \expandafter \saved@float@state - \expandafter { \expandafter \global - \csname col@ht@ \the\curr@col@count\expandafter\endcsname - \the \csname col@ht@ \the\curr@col@count\endcsname -% \end{macrocode} -% No final |\relax| needed since this is followed by area data. And -% if there are no areas we wouldn't call this code, would we? -% \begin{macrocode} - } - } -% \end{macrocode} -% Save current state of all used float areas by looping though them. -% \begin{macrocode} - \expandafter\save@area@info\used@areas ddd\relax\relax\relax -%<*trace> - \tr@ce{saved:~ \meaning\saved@float@state} - \@tracepop{save@current@float@state} -%</trace> -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\save@area@info} -% Save information about area and recourse. -% \begin{macrocode} -\def\save@area@info#1#2#3{ - \ifx#1\relax - \else - \edef\@tempa { - \global\csname #1#2#3@float@count\endcsname - \the\csname #1#2#3@float@count\endcsname -% \end{macrocode} -% No |\relax| needed since followed by a |\gdef|. -% \begin{macrocode} - \gdef \expandafter\noexpand \csname area@#1#2#3\endcsname - {\csname area@#1#2#3\endcsname} - } - \expandafter - \g@addto@macro - \expandafter \saved@float@state - \expandafter { \@tempa } - - \expandafter\save@area@info - \fi} -% \end{macrocode} -% \end{macro} -% -% -% -% \begin{macro}{\saved@float@state} -% To return to the saved float state execute |\saved@float@state|. -% \begin{macrocode} -\let\saved@float@state\@empty -% \end{macrocode} -% \end{macro} -% -% -% -% \begin{macro}{\split@defer@list} -% -% Split |\area@ddd| list, moving those floats whose callouts have -% been typeset to |\@activelist| for consideration for (one day) -% float pages, and for allocating to text page float areas. -% -% Floats whose callouts are still on MVL are placed on |\@mvllist|. -% \begin{macrocode} -\def\split@defer@list #1 { - \def\@currbox{#1} - \expandafter\extract@this@float@actual@structure\the\toks #1 -%<*trace> - \tr@ce { #1:~\LastMark{\this@class}~ ???~\this@sequence@number } -%</trace> - \ifnum 0\LastMark{\this@class} < \this@sequence@number -%<*trace> - \tr@ce {#1:~ not~ really~ defered } -%</trace> - \@cons \@mvllist #1 - \else -%<*trace> - \tr@ce {#1:~ callout~ has~ been~ typeset} -%</trace> - \@cons \@activelist #1 - \fi -} -% \end{macrocode} -% \end{macro} -% -% -% -% -% -% \subsection{Preassign deferred floats} -% -% -% -% \begin{macro}{\place@deferred@floats} -% -% The |\place@deferred@floats| is supposed to distribute from -% previous pages (i.e., from the top of |\area@ddd| or more exactly -% those currently on the |\@activelist| since the |\area@ddd| was -% already split when trying to build float pages) into the areas -% of the page to be build. After all we know that for those floats -% the call outs are on previous pages so testing for them -% is unnecessary and we could save time by bypassing this stuff. -% -% On the other hand if we have flush points in the upcoming text -% all our placements might be wrong, so perhaps this doesn't really -% save so much time after all and the extra complication might not -% be worth the effort. -% -% Perhaps a compromise is to make a first column grab without any -% floats to see if we end up with a flush point (not implemented). -% -% So if we don't do this then the only thing we need to do at this -% point is to move the floats from the |\@mvllist| to the end of -% the |\@activelist|. -% \begin{macrocode} -\def\place@deferred@floats { -%<*trace> - \@tracepush{place@deferred@floats} -%</trace> - \xdef\@activelist{\@activelist\@mvllist} - \global\let\@mvllist\@empty -%\showfloatlists -%<*trace> - \@tracepop{place@deferred@floats} -%</trace> -} -% \end{macrocode} -% -% -% Here is an alternate definition which does the preassigning but -% it would need to be extended by checking for flush points or by a -% flag that ensures that if we later encounter a flush point that -% we know we could backtrack if necessary (e.g., the preassignment -% might have already deferred some floats past the flush -% point).\footnote{Extend, fix, or get rid of.} -% \begin{macrocode} -\iffalse % we don't do it right now -\def\place@deferred@floats { -%<*trace> - \@tracepush{place@deferred@floats} -%</trace> -%\showfloatlists -% \let\@elt\split@defer@list -% \area@ddd -% \let\@elt\relax -% \global\let\area@ddd\@empty - \global\let\@activelist@empty@action\relax - \global\let\pretests@success@action\floatpage@pretests@success@action -\showfloatlists - \trial@inner@loop - \xdef\@activelist{\area@ddd\@mvllist} - \global\let\area@ddd\@empty - \global\let\@mvllist\@empty -%\showfloatlists -%<*trace> - \@tracepop{place@deferred@floats} -%</trace> -} -\fi -% \end{macrocode} -% \end{macro} -% -% -% -% \begin{macro}{\floatpage@pretests@success@action} -% Version of |\pretests@success@action| for use in initial phase -% when previously deferred floats are being allocated to float areas. -% \begin{macrocode} -\def\floatpage@pretests@success@action{ -%<*trace> - \@tracepush{floatpage@pretests@success@action} -%</trace> - \update@best@trial - \trial@inner@loop -%<*trace> - \@tracepop{floatpage@pretests@success@action} -%</trace> - } -% \end{macrocode} -% \end{macro} -% -% -% -% \newpage -% -% \subsection{Support for Balancing} -% -% Code in this section (and related code in other sections) is not -% used at the moment and will most likely be replaced with something -% completely different. -% -% \begin{macro}{\if@balance} -% |@balance| is set to true if we encounter a balance penalty -% during collection. -% \begin{macrocode} -\newif\if@balance -\def\@balancefalse{\global\let\if@balance\iffalse} -\def\@balancetrue{\global\let\if@balance\iftrue} -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\balancecolumns} -% -% \begin{macrocode} -\def\balancecolumns { - \add@badly@guarded@penalty\output@balance@penalty -} -% \end{macrocode} -% \end{macro} -% -% -% -% -% -% -% \newpage -% -% \subsection{Support for Flush Points} -% -% -% \begin{macro}{\if@flushseen} -% \begin{macro}{\if@flushfail} -% -% |@flushseen| is set to true if we encounter a flush penalty -% during collection. -% -% |@flushfail| is set to true if we fail a trial due to placing the -% float after the flush penalty. -% \begin{macrocode} -\newif\if@flushseen -\def\@flushseenfalse{\global\let\if@flushseen\iffalse} -\def\@flushseentrue{\global\let\if@flushseen\iftrue} -\newif\if@flushfail -\def\@flushfailfalse{\global\let\if@flushfail\iffalse} -\def\@flushfailtrue{\global\let\if@flushfail\iftrue} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% -% -% \begin{macro}{\flushfloats} -% -% Possible variants: -% -% Flush only one (some) types. -% -% Fuzzyflush or, more precisely, flush-to-this-column -% or -page or -spread.\footnote{Right now "spread" is not implemented.} -% -% Parts of the flushpenalty (all types) data structure: -% -% |\flush@min@col@|\meta{num} -% |\saved@flush@min@col@|\meta{num} -% |\flush@prev@float@num@|\meta{num}\footnote{what is this Chris?} -% -% |\flush@seq@num| is the number of these so that -% \meta{num} has range [1, |\flush@seq@num|] -% -% In addition, whilst doing an fp trial we need |\trial@flush@seen@num| -% to record that we have, in this trial so far, seen the -% flush points [1, |\trial@flush@seen@num|]. -% -% -% \begin{macrocode} -\DeclareDocumentCommand\flushfloats { o O{strict} } - { \flush@floats {#1} {#2} } -% \end{macrocode} -% -% \begin{macrocode} -\def\flush@floats #1 #2 { - \add@badly@guarded@penalty\output@flush@float@penalty -% \end{macrocode} -% -% \begin{macrocode} - \gincrement@num\flush@seq@num -% \end{macrocode} -% -% \begin{macrocode} - \global\@namedef{flush@min@col@\flush@seq@num}{1} -% \end{macrocode} -% -% \begin{macrocode} - \expandafter\xdef - \csname flush@last@float@\flush@seq@num \endcsname - {\the\float@sequence@count} -% \end{macrocode} -% If |#1| is |\NoValue| the current flush point affects all float -% sequence classes, thus we store in -% |\flush@classes@list@|\meta{num} a list of all float sequence -% classes separated by semicolons. Otherwise we assume that we got -% a single float type(!) as argument and flush the corresponding -% class. -% \begin{macrocode} - \IfNoValueTF{#1}{ - \def\@elt##1{##1;} - \expandafter\xdef - \csname flush@classes@list@\flush@seq@num \endcsname - {\float@classes@list} - \let\@elt\relax - } - {\expandafter\ifx\csname sequence@class@#1\endcsname - \relax - \ErrorArgumentNotAFloatType - \else - \global\expandafter\let - \csname flush@classes@list@\flush@seq@num - \expandafter\endcsname - \csname sequence@class@#1\endcsname - \fi - } -% \end{macrocode} -% The argument |#2| holds the fuzziness of the flush point which -% currently can be either |strict|, |column| or |page|. -% We link |\flush@fuzziness@|\meta{num} to the code stored in -% |\flushcheck@#2| after making sure that such code -% exists.\footnote{Improve error handling (as elsewhere)} -% \begin{macrocode} - \@ifundefined {flushcheck@#2} - \userinputERROR - {\global\expandafter\let - \csname flush@fuzziness@\flush@seq@num \expandafter \endcsname - \csname flushcheck@#2\endcsname -%<*trace> - \tr@ce{flush@fuzziness@\flush@seq@num \space - =:~ \expandafter\noexpand\csname flushcheck@#2\endcsname - } -%</trace> - } -} -% \end{macrocode} -% \end{macro} -% -% -% -% \begin{macro}{\clearpage} -% \LaTeX's |\clearpage| command now looks like this: -% \begin{macrocode} -\def\clearpage{ \flushfloats \newpage } -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\doubleclearpage} -% \LaTeX's |\doubleclearpage| command also needs a new -% definition:\footnote{But not this one :-) FIX!} -% \begin{macrocode} -\def\doubleclearpage{ \clearpage } -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\flush@seq@num} -% The number |\flush@seq@num| records the number of flush -% points we have have seen during collection. -% \begin{macrocode} -\def\flush@seq@num{0} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\trial@flush@seen@num} -% The number |\trial@flush@seen@num| records the number of flush -% points we have seen so far during a trial, i.e., it will be -% initialised to zero at the beginning of the trial and advanced by -% one for each flush point encountered. -% \begin{macrocode} -\def\trial@flush@seen@num{0} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\flush@last@float@xxx} -% \begin{macro}{\flush@min@col@xxx} -% \begin{macro}{\flush@classes@list@xxx} -% \begin{macro}{\flush@fuzziness@xxx} -% -% For each flush point we have a data structure in which we store -% relevant information. This data structure is provided by a set of -% macros which can be accessed by using the number of the current -% flush point and constructing |\csname|s from it, e.g., to get at -% the ``flush min col'' for the flush point with number 3 would be -% |\csname flush@min@col@3\endcsname|. - -% |\flush@min@col@|\meta{num} holds the column number in which we -% last seen the flush penalty while trying to find a solution for -% the current page. This is initialised to 1 in collection@or when -% a flush penalty is encountered during collection (since 1 is the -% earliest column in which the flush penalty finally may fall). By -% adding additional floats to the page the penalty might move to a -% later column but normally not back to an earlier -% one\footnote{There is a possibility that this happens if there is -% enough space vanishing at the new break.} If we end up with the -% flush penalty moving backwards we force a break at this point -% until we reach the column where it was before. The reason for -% this action is that we might have allocated floats to later -% columns that would otherwise end after after the flush penalty. -% -% If by adding floats to the trials the flush penalty is moved to -% the next page we set |\flush@min@col@|\meta{num} to -% |\maxdimen|. The actual test to see if a flush penalty still -% belongs to the current page is to check against |\curr@col@count| -% (so |\curr@col@count+1| would be sufficient, but using -% |\maxdimen| avoids calculations. -% -% |\flush@classes@list@|\meta{num} holds a list of float types which -% are affected by the current flush point. -% -% |\flush@fuzziness@|\meta{num} holds the fuzziness associated with -% the flushpoint, valid values are |strict| and |page|. -% -% By defining (some of) them on top-level we avoid unnecessary -% entries on the savestack since they would otherwise be -% constructed (locally) first within the output routine (when doing -% |\ifx| testing), resulting in |\relax| being stored on the -% savestack. -% \begin{macrocode} -\expandafter\let\csname flush@last@float@1 \endcsname\ERROR -\expandafter\let\csname flush@classes@list@1 \endcsname\ERROR -\expandafter\let\csname flush@min@col@1 \endcsname\ERROR -\expandafter\let\csname flush@fuzziness@1 \endcsname\ERROR -\expandafter\let\csname flush@last@float@2 \endcsname\ERROR -\expandafter\let\csname flush@classes@list@2 \endcsname\ERROR -\expandafter\let\csname flush@min@col@2 \endcsname\ERROR -\expandafter\let\csname flush@fuzziness@2 \endcsname\ERROR -\expandafter\let\csname flush@last@float@3 \endcsname\ERROR -\expandafter\let\csname flush@classes@list@3 \endcsname\ERROR -\expandafter\let\csname flush@min@col@3 \endcsname\ERROR -\expandafter\let\csname flush@fuzziness@3 \endcsname\ERROR -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% -% -% \begin{macro}{\flush@classes@list@max} -% |\flush@classes@list@max| holds the concatenation of all -% |\flush@classes@list@|\meta{num} on the page currently -% constructed. This information is needed in case we get to a new -% float and the preliminary tests suggests that it needs to be -% deferred. In that case we need to know which flush points have -% been seen previously to decide whether or not we can defer the -% new float. -% \begin{macrocode} -\let\flush@classes@list@max\@empty -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\initialise@flush@data} -% \begin{macrocode} -\def \initialise@flush@data{ -%<*trace> - \@tracepush{initialise@flush@data} -%</trace> -% \end{macrocode} -% Does this need any documentation? -% -% Well, we have to get rid of all information relating to flush -% float penalties that have been typeset on the previous page and -% move the remaining ones (if any) to the front. -% \begin{macrocode} - \count@\flush@seq@num\relax - \advance\count@ -\trial@flush@seen@num -%<*trace> - \tr@ce{flush@seq@num~ - =~ \flush@seq@num\space <-~ - \the\count@ } -%</trace> -% \end{macrocode} -% Something wrong here if we get negative values! -% \begin{macrocode} -%<*debug> - \ifnum\count@<\z@ \ERROR \fi -%</debug> -% \end{macrocode} -% -% \begin{macrocode} - \xdef\flush@seq@num{\the\count@} -% \end{macrocode} -% -% \begin{macrocode} - \@tempcnta\trial@flush@seen@num - \@tempcntb\z@ - \loop - \ifnum \@tempcntb < \count@ - - \advance\@tempcnta\@ne - \advance\@tempcntb\@ne -%<*trace> - \tr@ce{flush@fuzziness@\the\@tempcntb\space - =~ \expandafter \noexpand - \csname flush@fuzziness@\the\@tempcntb\endcsname\space - <-~ \expandafter \noexpand - \csname flush@fuzziness@\the\@tempcnta \endcsname - } - \tr@ce{flush@last@float@\the\@tempcntb\space - =~ \csname flush@last@float@\the\@tempcntb\endcsname\space <-~ - \csname flush@last@float@\the\@tempcnta \endcsname - } - \tr@ce{flush@classes@list@\the\@tempcntb\space - =~ \csname flush@classes@list@\the\@tempcntb\endcsname\space <-~ - \csname flush@classes@list@\the\@tempcnta \endcsname - } - \tr@ce{flush@min@col@\the\@tempcntb\space <-~ 1} -%</trace> - \global\expandafter\let - \csname flush@fuzziness@\the\@tempcntb \expandafter\endcsname - \csname flush@fuzziness@\the\@tempcnta \endcsname - - \global\expandafter\let - \csname flush@last@float@\the\@tempcntb \expandafter\endcsname - \csname flush@last@float@\the\@tempcnta \endcsname - - \global\expandafter\let - \csname flush@classes@list@\the\@tempcntb \expandafter\endcsname - \csname flush@classes@list@\the\@tempcnta \endcsname - - \global\@namedef{flush@min@col@\the\@tempcntb}{1} - \repeat -% \end{macrocode} -% -% \begin{macrocode} - \global\let\flush@classes@list@max\@empty -% \end{macrocode} -% Need to reset |\trial@flush@seen@num| in case the current macro -% is called again too early, e.g., if it is called to initialize a -% float page and then again to initialize a text page. -% \begin{macrocode} - \gdef\trial@flush@seen@num{0} -%<*trace> - \@tracepop{initialise@flush@data} -%</trace> -} -% \end{macrocode} -% \end{macro} -% -% -% -% -% -% \subsection{Support for Here Points} -% -% A ``Here Point'' is a place in the galley at which something is -% supposed to happen. For example, a marginal note needs to be -% attached to the column, or a float needs to be inserted into the -% column (here float), or it needs to be made sure that from that -% point on there is still a certain amount of space available in the -% column. -% -% With each here point there is associated a float structure (i.e. a -% box and its corresponding |\toks| register) although in most cases -% only parts of that structure is used. In addition each here point -% has an associated dimension which denotes the amount of available -% space which is required after the here point in the column to allow -% to place the here point into this column. If this requirement is not -% met the here point is moved to the next column (or page) by ending -% the current column prematurely at the last legal breakpoint before -% the here point (not at the here point itself\footnote{It should be -% considered to allow breaking directly at the here point in special -% cases, i.e., specified at the here point declaration.}). This -% behaviour will ensure that a line of text preceding the here point -% will also be moved to the next column or page which is important in -% case of marginals and similar situations. In case of here floats it -% might not be a requirements so perhaps this should be made -% customisable. -% -% At the moment the ``type'' in the float structure is used to define -% the type of here point. E.g., -% \begin{description} -% \item[mpar] denotes a marginal -% \item[rspace] denotes a requested space -% \item[figure,table,\ldots] all normal float types identify the here -% point as belonging to a here float. -% \end{description} -% The down side of this approach is that ``mpar'' can't be used as a -% float type any longer and the whole approach might be too difficult -% to extend this way. This needs certainly needs a cleanup. -% -% It is quite likely that there will be additional values that need -% storing on a per here point basis. For this reason the code below -% provides the requiredspace as a data structure external to the float -% structure. Otherwise it could probably be integrated therein. -% -% When a here point is encountered while making columns for a trial or -% for the final page, its requirements are checked. If they are -% fulfilled then a here-point-type specific function will update the -% column material (e.g. by adding a here float or a marginal). -% -% Here points are in many aspects like flush points. So most of the -% code below should not be very surprising. -% -% \begin{macro}{\here@seq@num} -% The number |\here@seq@num| records the number of here -% points we have have seen during collection. -% \begin{macrocode} -\def\here@seq@num{0} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\trial@here@seen@num} -% The number |\trial@here@seen@num| records the number of here -% points we have seen so far during a trial, i.e., it will be -% initialised to zero at the beginning of the trial and advanced by -% one for each here point encountered. -% \begin{macrocode} -\def\trial@here@seen@num{0} -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\@herelist} -% |\@elt| list of floats that should appear at a here point. -% \begin{macrocode} -\let\@herelist\@empty -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\saved@herelist} -% Saved version of the |\@herelist| while we run a through the -% float placement trial since we need the full |\@herelist| again in -% the next trial. -% \begin{macrocode} -\let\saved@herelist\@empty -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\here@point} -% |\here@point| adds a here point to the MVL. It takes two -% arguments: the box reference associated with the here point and -% the vertical space that needs to be reserved for the material -% added. -% \begin{macrocode} -\def\here@point #1#2{ -% \end{macrocode} -% -% \begin{macrocode} - \@cons\@herelist#1 -% \end{macrocode} -% -% \begin{macrocode} - \gincrement@num\here@seq@num -% \end{macrocode} -% -% \begin{macrocode} - \global\@namedef{here@min@col@\here@seq@num}{1} -% \end{macrocode} -% -% \begin{macrocode} - \setlength\dimen@{#2} - \expandafter\xdef - \csname here@required@space@\here@seq@num \endcsname - {\the\dimen@} -% \end{macrocode} -% -% \begin{macrocode} - \add@badly@guarded@penalty\output@here@float@penalty -} -% \end{macrocode} -% \end{macro} -% -% -% -% -% \begin{macro}{\initialise@here@data} -% \begin{macrocode} -\def \initialise@here@data{ -%<*trace> - \@tracepush{initialise@here@data} -%</trace> -% Does this need any documentation? -% -% Well, we have to get rid of all information relating to here -% float penalties that have been typeset on the previous page and -% move the remaining ones (if any) to the front. -% \begin{macrocode} - \count@\here@seq@num\relax - \advance\count@ -\trial@here@seen@num -%<*trace> - \tr@ce{here@seq@num~ - =~ \here@seq@num\space <-~ - \the\count@ } -%</trace> -% \end{macrocode} -% Something wrong hereif we get negative values! -% \begin{macrocode} -%<*debug> - \ifnum\count@<\z@ \ERROR \fi -%</debug> -% \end{macrocode} -% -% \begin{macrocode} - \xdef\here@seq@num{\the\count@} -% \end{macrocode} -% -% \begin{macrocode} - \@tempcnta\trial@here@seen@num - \@tempcntb\z@ - \loop - \ifnum \@tempcntb < \count@ - - \advance\@tempcnta\@ne - \advance\@tempcntb\@ne -%<*trace> - \tr@ce{here@required@space@\the\@tempcntb\space - =~ \csname here@required@space@\the\@tempcntb\endcsname\space <-~ - \csname here@required@space@\the\@tempcnta \endcsname - } - \tr@ce{here@min@col@\the\@tempcntb\space <-~ 1} -%</trace> - \global\expandafter\let - \csname here@required@space@\the\@tempcntb \expandafter\endcsname - \csname here@required@space@\the\@tempcnta \endcsname - - \global\@namedef{here@min@col@\the\@tempcntb}{1} - \repeat -%<*trace> - \@tracepop{initialise@here@data} -%</trace> -} -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\split@off@last@line} -% -% When a here point doesn't fit onto the current page or column for -% some reason it will be moved into the next column. In some cases, -% e.g., when the here point is associated with the line before it -% (as, for example, in marginals) it is necessary to move the line -% also to the later column. -% -% The purpose of |\split@off@last@line| (to be called inside the -% OR) is to split box 255 at the latest possible breakpoint before -% the end and return the material following this breakpoint to the -% MVL. -% -% The idea is as follows: if we subtract 1sp from the height of -% box 255 and also subtract all of its internal shrinkability and -% then split it to this height it can't any longer reach the final -% breakpoint (by 1sp). Thus it will settle with some earlier -% breakpoint and chances are very very good that this will be the -% prefinal one. -% \begin{macrocode} -\def \split@off@last@line{ -%<*trace> - \@tracepush{split@off@last@line} - \tr@ce{goal:~ \the\pagegoal;~ total:~ \the\pagetotal;~ shrink:~ - \the\pageshrink} - \tr@ce{ht255:~ \the\ht255;~ dp255:~ \the\dp255} -%</trace> -% \end{macrocode} -% -% -% \begin{macrocode} - \dimen@\ht\@cclv -% \end{macrocode} -% Looking at |\ht255| should be the same as |\pagetotal-\pagedepth| -% or not?\footnote{Doesn't seem to be the case, bug in the code, -% the program, or in my thinking? (seems to be a bug in \TeX: -% pagedepth is always zero in the OR!)} -% \begin{macrocode} - \advance\dimen@-\pageshrink - \advance\dimen@-1sp -%{\showoutput\showbox\@cclv} -% \end{macrocode} -% Before splitting we have to ensure that the maximum depth is not -% larger than the maximum depth allowed on the MVL. -% \begin{macrocode} - \splitmaxdepth\@maxdepth - \setbox\z@\vsplit\@cclv to\dimen@ -%{\showoutput\showbox\z@} -%{\showoutput\showbox\@cclv} -% \end{macrocode} -% -% Before we now |\unvbox| 255 back onto the MVL we have to make sure -% that the sum of its vertical dimensions plus the requested space -% for the current here point is smaller than a full column height. -% -% If we don't do that we might end up with a situation where we are -% pushing the two from column to columns since they will never fit. -% \begin{macrocode} - \dimen@\csname - here@required@space@\trial@here@seen@num - \endcsname - \advance\dimen@\ht\@cclv - \advance\dimen@\dp\@cclv -% \end{macrocode} -% If the sum is too large we reduce the required space for the here -% point and complain (not really done yet the latter). -% \begin{macrocode} - \ifdim \dimen@ > \textheight - \ERROR-HERE-TOO-LARGE - \dimen@\textheight - \advance\dimen@-\ht\@cclv - \advance\dimen@-\dp\@cclv - \expandafter\xdef\csname - here@required@space@\trial@here@seen@num - \endcsname{\the\dimen@} - \fi -% \end{macrocode} -% So now we can |\unvbox| and then move the top from the split back -% into 255 (essentially to have it taken out of that register by -% the code following, but such is life). -% \begin{macrocode} - \unvbox\@cclv - \global\setbox\@cclv\box\z@ -%<*trace> - \@tracepop{split@off@last@line} -%</trace> -} -% \end{macrocode} -% \end{macro} -% -% -% -% -% \subsection{Support for Grid Points} -% -% -% -% -% \begin{macro}{\align@collected@galley@and@restart} -% |\align@collected@galley@and@restart| is called inside -% |\some@column@or| when we have encountered a grid point. It is -% supposed to align the current line with the text grid and then -% restarts the galley processing. -% -% We do this by putting the material gathered so far into a box of -% appropriate size, and then push this pack onto the recent -% contributions for reconsideration. -% \begin{macrocode} -\def \align@collected@galley@and@restart { -%<*trace> - \@tracepush{align@collected@galley@and@restart} - \tr@ce{GRID:~ page~ goal~\space\space\space =~ \the\pagegoal} - \tr@ce{GRID:~ page~ total~\space\space =~ \the\pagetotal} - \tr@ce{GRID:~ page~ depth~\space\space =~ \the\pagedepth} - \tr@ce{GRID:~ page~ shrink~\space =~ \the\pageshrink} - \tr@ce{GRID:~ page~ stretch~ =~ \the\pagestretch} - \tr@ce{GRID:~ page~ fil~ stretch~ =~ \the\pagefilstretch} - \tr@ce{GRID:~ page~ fill~ stretch~ =~ \the\pagefillstretch} - \tr@ce{GRID:~ page~ filll~ stretch~ =~ \the\pagefillstretch} - \tr@ce{GRID:~ ht~ 255~\space =~ \the\ht\@cclv} - \tr@ce{GRID:~ dp~ 255~\space =~ \the\dp\@cclv} -%</trace> -% \end{macrocode} -% As a first step we remove the guard box since it has now served -% its purpose. -% \begin{macrocode} - \remove@guard@box@from@cclv -% \end{macrocode} -% Then we calculate the distance to nearby grid points. -% \begin{macrocode} - \snap@to@grid{\ht\@cclv}\pagesetup@grid@point@sep -% \end{macrocode} -% So the next step is to make a decision which grid point to -% use. The strategy used below can probably be refined -% further\ldots -% -% First we test if the next grid point down makes us fall off the -% page\footnote{We should use \texttt{\string\pagegoal} for the -% test I think, not the commented out construct below, since in -% case of footnotes the available space for text might has be -% reduced!}, if so\ldots -% \begin{macrocode} - \ifdim \returned@size > \pagegoal - % \csname col@ht@ \the\curr@col@count\endcsname % not! -% \end{macrocode} -% \ldots we better try using the previous grid point. -% \begin{macrocode} - \ifdim \returned@lower@delta@size < \pageshrink -% \end{macrocode} -% If the |\pageshrink| allows us to reach the previous point then -% use it. -% \begin{macrocode} -% can use it: do so -%<*trace> - \tr@ce{GRID:~ outside~ page,~ choosing~ lower~ grid~ point} -%</trace> - \global\let \returned@size \returned@lower@size - \xdef \returned@delta@size {-\returned@lower@delta@size } - \else -% \end{macrocode} -% Otherwise, ouch \ldots{} what now? Can this happen? Unfortunately -% yes, it seems to happen, for example, when we are trying to place -% floats.\footnote{Analyse this situation and decide on a course of -% action if necessary.} -% \begin{macrocode} - \OuchERROR - \fi -% \end{macrocode} -% Otherwise we are in the normal case, i.e., somewhere in the -% middle of the page. -% \begin{macrocode} - \else -% \end{macrocode} -% So now we can in principle choose either grid point. The code -% below makes the decision based on which grid point is closer but -% chooses the previous point only if |\pageshink| allows -% it.\footnote{One could also have a look at the available -% stretchability and base the decision on the resulting badness, -% this might in fact be the more appropriate way!} -% \begin{macrocode} - \ifdim \returned@lower@delta@size < \returned@delta@size \relax - \ifdim \returned@lower@delta@size < \pageshrink -%<*trace> - \tr@ce{GRID:~ choosing~ lower~ grid~ point} -%</trace> - \global\let \returned@size \returned@lower@size - \xdef \returned@delta@size {-\returned@lower@delta@size } - \fi - \fi - \fi -%<*trace> - \tr@ce{GRID:~ adjustment:~ \the\ht\@cclv\space ->~ \returned@size} -%</trace> -% \end{macrocode} -% Whatever the decision was, we finally bundle up all material in a -% box with the vertical size being that of the chosen grid point -% (no |\maxdepth| setting in this case) and return this box to the -% MVL followed by any footnotes found in that process. These -% footnotes are reinserted so that they will be reconsidered but -% since we have no break point between the box and them they will -% be considered as a unit. -% \begin{macrocode} - \vbox to\returned@size{\unvbox\@cclv} - \@reinserts -% \end{macrocode} -% We know that the material returned to the MVL is followered -% immediately by a box of size zero followed by a penalty thus -% there will be a breakpoint in the right place (or so we hope) so -% that the box plus the following footnotes will still fit into the -% column when reprocessed. -% \begin{macrocode} -%<*trace> - \@tracepop{align@collected@galley@and@restart} -%</trace> -} -% \end{macrocode} -% \end{macro} -% -% -% -% \begin{macro}{\OuchERROR} -% This part of the code (as far as I can see right now) will be -% executed if there is some larger display object (ie off grid) -% which will just fit onto the page unaligned but not if we align -% to the next grid point. The reason for this is that somewhere on -% the column there are also footnotes for example, which result in -% the column not being an integral number of grid lines. -% \begin{macrocode} -\def\OuchERROR{ -%<*trace> - \tr@ce{Failed:~grid~ overflowing~ column~ \the\curr@col@count} -%</trace> -%<*progress> - \progress@failed{next~ possible~ grid~ point~ in~ column~ - \the\curr@col@count\space outside~ page} -%</progress> -% \end{macrocode} -% I think essentially what is needed here is to split the column -% just before the current line, ie, using something like -% |\split@off@last@line| (except that this only works for here -% points right now) and this move the grid align penalty to the -% next column.\footnote{Not done! FIX} -% \begin{macrocode} -% \split@off@last@line -% \(re)???add@guarded@penalty\output@grid@align@penalty -} -% \end{macrocode} -% \end{macro} -% -% -% -% \begin{macro}{\std@AlignToGrid} -% This is the definition for |\AlignToGrid| if we are really doing -% grid based layout. -% \begin{macrocode} -\def\std@AlignToGrid{ - \add@badly@guarded@penalty\output@grid@align@penalty -} -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\IgnoreAlignToGrid} -% \begin{macro}{\ObeyAlignToGrid} -% |\IgnoreAlignToGrid| will turn off automatic grid alignment for a -% while, while |\ObeyAlignToGrid| will turn it on again. This is -% needed in commands that want to set something outside the grid -% and then realign afterwards, e.g., a heading. If that heading -% would follow, say, a list that issued a |\AlignToGrid| to be -% executed on the next paragraph, that |\AlignToGrid| would -% effectively appear on the heading title thus forcing that to be -% on a grid line, which is typically not intended. So the heading -% macro first says |\IgnoreAlignToGrid| then typesets the material -% which should be not aligned, then says |\ObeyAlignToGrid| and -% prepares to install its own |\AlignToGrid| (typically after the -% first line of text via |\everypar|). -% \begin{macrocode} -\def\IgnoreAlignToGrid{ - \global\let\AlignToGrid\relax -} -\def\ObeyAlignToGrid{ - \global\let\AlignToGrid\std@AlignToGrid -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% -% -% \begin{macro}{\AlignToGrid} -% |\AlignToGrid| is the command that inserts a grid point which -% triggers alignment to the text grid for the current line (if we -% are doing grid based design). It should be set in the page setup -% so the default is an error. -% \begin{macrocode} -\let\AlignToGrid\ERROR -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\TextAlignToGrid} -% In nearly all cases the alignment should be done for a text line, -% so we provide this abbreviation which starts horizontal mode if -% necessary. -% \begin{macrocode} -\def\TextAlignToGrid{ \leavevmode \AlignToGrid } -% \end{macrocode} -% \end{macro} -% -% -% -% -% -% -% \subsection{Initialisations} -% -% The initialisation at begin document isn't properly done -% yet. Some bits are done unnecessarily here (by calling -% initialisation commands that do too much and some bits are -% problably still in the wrong place. Furthermore the column data -% initialisation needs to be resolved properly. Right now we -% hardwire a maximum of 6 columns down there and initialise the -% data structures for all the potential columns independently of -% whether or not they are ever being used.\footnote{SORT OUT!} -% \begin{macrocode} -\AtBeginDocument{ - \begingroup - \col@count6\relax - \initialise@column@data -% \end{macrocode} -% More column data stuff which needs to be set only the very first -% time! -% \begin{macrocode} - \forall@columns { -% \end{macrocode} -% -% \begin{macrocode} - \def\@elt#1{ - \global\@namedef{fl@\the\curr@col@count @#1}{0} - \global\@namedef{tfl@\the\curr@col@count @#1}{0} - } - \float@classes@list -% \end{macrocode} -% Setting |\@elt| back to |\relax| is done below. -% \begin{macrocode} - } -% \end{macrocode} -% -% The default for fps should be all areas known (not only those -% currently used!) -% \begin{macrocode} - \def\@elt#1{ - \global\expandafter\let\csname fps@#1\endcsname\known@areas - \global\@namedef{fl@0@#1}{0} - } - \float@classes@list - \endgroup -% \end{macrocode} -% -% \begin{macrocode} -% \initialise@next@page -% \end{macrocode} -% Start the document by collecting text. -% \begin{macrocode} - \@collecting@new@materialtrue - \setup@collection@or -} -% \end{macrocode} -% -% -% \endinput -\endinput -% -% $Log: xo-or.dtx,v $ -% Revision 1.53 2000/08/11 07:14:25 latex3 -% added header -% -% Revision 1.52 2000/08/11 06:49:21 latex3 -% untabify -% -% Revision 1.51 2000/08/11 06:46:48 latex3 -% change logic for handling special penalties once more (and still not -% okay) -% -% Revision 1.50 2000/08/06 19:03:44 latex3 -% change initialisation at \begin{document} -% fix \columnbreak -% -% Revision 1.49 2000/08/04 13:58:16 latex3 -% documented issue when grid point overflows column -% -% Revision 1.48 2000/08/04 10:22:31 latex3 -% added \split@skip (probably not final version) -% -% Revision 1.47 2000/07/26 20:37:03 latex3 -% working version of grid points (text grids) -% -% Revision 1.46 2000/07/21 13:52:13 latex3 -% more renaming for float sequence class concept -% -% Revision 1.45 2000/07/19 17:12:08 latex3 -% introduced float sequence class concept -% added variables for float area separation -% -% Revision 1.44 2000/07/10 19:24:59 latex3 -% some start at supporting "balance points" (unfinished). -% added \initialise@column@data. -% getting rid of extra empty page at end due to old defnition of -% \clearpage. -% -% Revision 1.43 2000/07/04 19:45:40 latex3 -% fix GRID stuff (restore all values as needed) -% -% Revision 1.42 2000/07/01 16:07:26 latex3 -% use \update@this@area@columns -% integrate code to support grid design (first draft) -% -% Revision 1.41 2000/06/29 17:40:44 latex3 -% introduced \setup@this@area -% -% Revision 1.40 2000/06/26 15:16:15 latex3 -% prototype support for \pagesetup@float@area@sep -% -% Revision 1.39 2000/06/22 20:07:51 latex3 -% renamed some macros to get them more uniform -% -% Revision 1.38 2000/06/22 10:59:57 latex3 -% Included support for writing fpl files -% -% Revision 1.37 2000/06/21 09:55:41 latex3 -% fix typo -% -% Revision 1.36 2000/06/19 19:03:56 latex3 -% make \gincrement@num and \gdecrement@num behave (not update \count@) -% cleanup flushing (if fail only move flush point one column) -% -% Revision 1.35 2000/06/18 14:59:50 latex3 -% docu updates (and a bug fix due to typo) -% -% Revision 1.34 2000/06/16 11:21:14 latex3 -% rename \construct@and@test@col@height to \construct@and@test@col@ht -% rename \construct@and@test@col@heights to \construct@and@test@col@hts -% rename \cl@height1 to \@col@ht@1 (etc) -% -% Revision 1.33 2000/06/16 11:05:25 latex3 -% implemented tfl@ support (top area float sequences) -% support float-callout-span-constraint -% more documentation -% -% Revision 1.32 2000/06/15 15:20:16 latex3 -% implemented new semantics for area names -% -% Revision 1.31 2000/06/15 09:32:18 latex3 -% added mising \end{macro}'s -% -% Revision 1.30 2000/06/13 20:44:25 latex3 -% guard the output@collect@penalty -% implemented fuzzy flushing (except for spreads) -% -% Revision 1.29 2000/06/06 11:03:21 latex3 -% before attempting fuzzyflush -% -% Revision 1.28 2000/05/03 20:17:31 latex3 -% need more info about here floats -% -% Revision 1.27 2000/05/03 18:45:40 latex3 -% fix bugs: always have a trial run wihtout floats to initialise here -% and flush points; reset \trial@flush@seen@num after using it to update -% the data structures on a new pages; have adding to the defer area -% close other areas :-) -% more documentation -% -% Revision 1.26 2000/04/27 19:50:11 latex3 -% some stats gathered now -% combine \grab@column@or and \best@column@or as far as possible -% some bug fixes and additional documentation -% -% Revision 1.25 2000/04/21 19:08:43 latex3 -% code cleanup -% additional documentation -% fixes for here points -% support for footnote setup -% -% Revision 1.24 2000/04/11 21:06:06 latex3 -% basically Chris's 1.24 plus my changes -% -% Revision 1.24 2000/04/10 16:41:14 car2 -% typos, comments and guardbox removal -% -% Revision 1.23 2000/04/09 20:02:00 latex3 -% fix topskip problem in collection -% added first draft of marginpar support -% -% Revision 1.22 2000/04/08 09:47:06 latex3 -% first draft of here point implementation -% code cleanup -% further documentation -% -% Revision 1.21 2000/03/31 17:12:41 latex3 -% disable preplacing deferred floats (until caption handling is fixed) -% fix float page handling -% ensure that float pages don't add additional captions (don't mind that -% the float page comes out even worse) -% -% Revision 1.20 2000/03/26 21:05:11 latex3 -% work on float pages -% some renaming in particular \try@this@area -% and \try@next@area -% some more documentation -% -% Revision 1.19 2000/03/24 15:34:27 latex3 -% version that starts supporting spans (still a hack yet) -% -% Revision 1.18 2000/03/22 15:51:11 latex3 -% some normalisations of names -% moved code around -% lot of updates -% -% Revision 1.17 2000/03/17 20:26:40 latex3 -% more fixes to flushing (looks good now) -% -% Revision 1.16 2000/03/16 10:28:29 latex3 -% partial and full flush working for the first time -% -% Revision 1.15 2000/03/05 19:36:53 latex3 -% some renaming -% support multiple columns (6 max right now) -% fix flush float logic (hopefully) -% -% Revision 1.14 2000/02/28 23:41:14 david -% deadcycles -% -% Revision 1.13 2000/02/27 15:39:53 david -% *** empty log message *** -% -% Revision 1.12 2000/02/27 15:12:00 david -% 2nd attempt at flush floats (working as far as implemented) -% -% Revision 1.11 2000/02/27 11:26:35 david -% first attempt at flush floats -% -% Revision 1.10 2000/02/26 18:20:09 david -% added pre-allocation of deferred floats to float areas -% -% Revision 1.9 2000/02/21 23:25:11 david -% t11|t22 support in optional argument -% -% Revision 1.8 2000/02/19 23:14:58 david -% chris' doc fix -% -% Revision 1.7 2000/02/16 13:40:40 latex3 -% added 3col support -% -% Revision 1.6 2000/02/16 10:07:13 latex3 -% added further documentation -% fixed bug by removing code from \try@this@area to -% \pretests@success@action -% handle case of hitting special output penalty during trial or -% page production -% handle case of \newpage ie penalty -10000 -% -% Revision 1.5 2000/02/15 01:08:25 david -% dead code -% -% Revision 1.4 2000/02/13 22:40:13 latex3 -% moved some stuff around and added macro environments -% diff --git a/Master/texmf-dist/source/latex3/xor/xo-page.dtx b/Master/texmf-dist/source/latex3/xor/xo-page.dtx deleted file mode 100644 index 7dff99b8119..00000000000 --- a/Master/texmf-dist/source/latex3/xor/xo-page.dtx +++ /dev/null @@ -1,694 +0,0 @@ -% \iffalse -%% -%% (C) Copyright 1999-2000 Frank Mittelbach, David Carlisle, Chris Rowley -%% All rights reserved. -%% -%% Not for general distribution. In its present form it is not allowed -%% to put this package onto CD or an archive without consulting the -%% the authors. -%% -% \fi -% - -% \begin{macrocode} -\def\@tempa#1: #2.dtx,v #3 #4 #5 #6 #7${ - \ProvidesPackage{#2}[#4 #3 #5 #6]} -\@tempa$Id: xo-page.dtx,v 1.34 2000/08/11 07:14:27 latex3 Exp $ -% \end{macrocode} -% -% -% Ignore white space in this package. -% \begin{macrocode} -\IgnoreWhiteSpace -% \end{macrocode} -% -% -% -% \subsection{Footnote setup} -% -% \begin{macro}{\initialise@footins@action} -% The |\initialise@footins@action| is a hook to add code to the -% page initialisation phase related to the footnote insertions. For -% example, when all footnotes are accumulated in the last column we -% need to make footnote insertions invisible when gathering -% material for the first columns. -% \begin{macrocode} -\let\initialise@footins@action\relax -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\deal@with@footins@action} -% The |\deal@with@footins@action| hook is called in the -% |\grab@column@or| and the |best@column@or| output routine to do -% something to the accumulated footnote insertions if -% necessary. I.e., it is called for every column. -% \begin{macrocode} -\let\deal@with@footins@action\relax -% \end{macrocode} -% \end{macro} -% -% -% -% \begin{macrocode} -\DeclareTemplateType{footnotesetup}{0} -% \end{macrocode} -% -% -% -% -% \begin{macrocode} -\DeclareTemplate{footnotesetup}{std}{0}{ - text-sep =+l \skip\footins, - max-height =+l \dimen\footins, - } - { - - \global\skip\footins 10pt plus 5pt - \global\dimen\footins.7\textheight - - \DoParameterAssignments - - \let\initialise@footins@action\relax - \let\deal@with@footins@action\relax - - \global\count\footins\@m - - } -% \end{macrocode} -% -% \begin{macrocode} -\DeclareTemplate{footnotesetup}{ftnright}{0}{ - text-sep =+l \rcol@footinsskip, - max-height =+l \dimen\footins, - } - { - - \global\rcol@footinsskip 10pt plus 5pt - \global\dimen\footins\textheight - - \DoParameterAssignments - - \let\initialise@footins@action\initialise@footins@ftnright - \let\deal@with@footins@action\deal@with@footins@ftnright - - } -% \end{macrocode} -% -% -% Setting |max-height| as done below has not the desired effect and -% needs investigation.\footnote{FIX!} -% -% \begin{macrocode} -\DeclareTemplate{footnotesetup}{margin}{0}{ - max-height =+l \dimen\footins, - } - { - - \global\dimen\footins.7\textheight - - \DoParameterAssignments - - \let\initialise@footins@action\initialise@footins@margin - \let\deal@with@footins@action\deal@with@footins@margin - -% \end{macrocode} -% If the footnote do not appear within the columns we have to -% ensure that the |\insert| does not change the page -% calculations. This needs changes in two places: -% \begin{macrocode} - \global\count\footins\z@ - \global\skip\footins \z@ - - } -% \end{macrocode} -% -% -% -% -% \subsubsection{Footnote setup ftnright} -% -% In this section we provide the code for running all footnotes in the -% last column. -% -% \begin{macro}{\saved@footins} -% -% \begin{macrocode} -\newbox\saved@footins -% \end{macrocode} -% \end{macro} -% -% -% -% \begin{macro}{\rcol@footinsskip} -% \begin{macrocode} -\newskip\rcol@footinsskip -% \end{macrocode} -% \end{macro} -% -% -% -% -% -% \begin{macro}{\initialise@footins@ftnright} -% \begin{macrocode} -\def \initialise@footins@ftnright { - \global\setbox\saved@footins\box\voidb@x - \global\skip\footins\z@ - \global\count\footins\z@ - \global\dimen\footins\textheight -} -% \end{macrocode} -% \end{macro} -% -% -% -% -% -% \begin{macro}{\deal@with@footins@ftnright} -% \begin{macrocode} -\def \deal@with@footins@ftnright { -%<*trace> - \@tracepush{deal@with@footins@ftnright} -%</trace> -% \end{macrocode} -% If we are not in the last column we save any footnote accumulated -% in |\footins| in a separate |\saved@footins| box. This way any -% later code that checks |\footins| for constraints will not fire -% incorrectly. -% \begin{macrocode} - \ifnum\curr@col@count<\col@count -%<*trace> - \tr@ce{not~ last~ col} -%</trace> - \ifvoid\footins - \else - \global\setbox\saved@footins - \vbox{\unvbox\saved@footins - \unvbox\footins} - \fi -% \end{macrocode} -% If we are in the second last column we have to change the -% procedure: we now have to return all saved footnotes to the MVL -% and modify the insertion register values so that from now on -% footnotes need space in the column.\footnote{Not correctly -% handled is the case that we have accumulated more than a full -% column of footnotes before!} -% \begin{macrocode} - \count@\col@count - \advance\count@\m@ne - \ifnum\curr@col@count=\count@ % cur col = second last col -%<*trace> - \tr@ce{second~ last~ col} -%</trace> - \global\count\footins\@m - \global\skip\footins\rcol@footinsskip - \ifvoid\saved@footins - \else - \insert\footins{\unvbox\saved@footins} - \fi - \fi - \fi -%<*trace> - \@tracepop{deal@with@footins@ftnright} -%</trace> -} -% \end{macrocode} -% \end{macro} -% -% -% -% -% \begin{macro}{\deal@with@footins@margin} -% \begin{macrocode} -\def \deal@with@footins@margin { -%<*trace> - \@tracepush{deal@with@footins@margin} -%</trace> - \ifvoid\footins - \else - \global\setbox\saved@footins - \vbox{\unvbox\saved@footins - \unvbox\footins} - \fi -%<*trace> - \@tracepop{deal@with@footins@margin} -%</trace> -} -% \end{macrocode} -% \end{macro} -% -% -% -% -% \begin{macro}{\deal@with@footins@margin} -% \begin{macrocode} -\def \initialise@footins@margin { - \global\setbox\saved@footins\box\voidb@x -} -% \end{macrocode} -% \end{macro} -% -% -% -% -% \subsection{A basic page setup template} -% -% -% \begin{macro}{\test@named@key} -% This should perhaps be made more general -% \begin{macrocode} -\def\test@named@key #1#2#3#4 { - \global\expandafter\let \expandafter #1 - \csname #2 \endcsname - \ifx #1 \relax - \PackageError{template}{#3~ unknown} - {#3~ can~ be~ either~ #4} - \fi -} -% \end{macrocode} -% \end{macro} -% -% -% -% -% \begin{macro}{\DeclareFloatArea} -% We declare new float areas and (for the moment) internally use the -% template mechanism. But this is more or less overkill and should -% probably be replaced in the end. -% \begin{macrocode} -\def\DeclareFloatArea#1#2{ - \xdef\known@areas{\known@areas#1} - \DeclareInstance{floatareasetup}{#1}{std} - { name = #1, #2 } -% \end{macrocode} -% We need to do some intialisation here in case the area isn't -% really used. (Since it is added to |\known@areas| it will be -% considered and that will die if the initialisation isn't done) -% \begin{macrocode} - \UseInstance{floatareasetup}{#1} -} -% \end{macrocode} -% \end{macro} -% -% -% -% \begin{macrocode} -\DeclareTemplateType{floatareasetup}{0} -% \end{macrocode} -% -% \begin{macrocode} -\DeclareTemplate{floatareasetup}{std}{0}{ - name =n \floatareasetup@name, - class-close-list=n \floatareasetup@class@close, - all-close-list =n \floatareasetup@all@close, - max-float-num =C \floatareasetup@maxfloats, - } - { - - \DoParameterAssignments -% \end{macrocode} -% -% Declare area data structures if necessary\ldots -% \begin{macrocode} - \@ifundefined{\floatareasetup@name @float@count} - {\expandafter\newcount\csname \floatareasetup@name - @float@count\endcsname} - {} -% \end{macrocode} -% \ldots and initialise them -% \begin{macrocode} - \global\expandafter\let - \csname pagesetup@ \floatareasetup@name @float@num\endcsname - \floatareasetup@maxfloats - \global\expandafter\let - \csname pagesetup@ \floatareasetup@name @class@close\endcsname - \floatareasetup@class@close - \global\expandafter\let - \csname pagesetup@ \floatareasetup@name @all@close\endcsname - \floatareasetup@all@close -% \end{macrocode} -% Let's not forget that area itself (some macros wouldn't like if -% this is |\relax| rather than |\@empty|. -% \begin{macrocode} - \global\expandafter\let - \csname area@\floatareasetup@name\endcsname - \@empty -} -% \end{macrocode} -% -% -% \begin{macrocode} -\DeclareTemplateType{pagesetup2}{0} -% \end{macrocode} -% -% \begin{macrocode} -\DeclareTemplate{pagesetup2}{std}{0}{ - column-num =+c \col@count, - column-width =+l \columnwidth, - column-height =+l \textheight, % FMi tmp - column-sep =+l \columnsep, - max-float-num =C \pagesetup@max@float@num, - float-callout-constraint =n \pagesetup@float@callout, - float-callout-span-constraint =n \pagesetup@float@callout@span, - bottom-float-footnote-constraint =n \pagesetup@float@footnote, - flush-float-callout-constraint =n \pagesetup@flush@float@callout, - flush-float-callout-span-constraint =n \pagesetup@flush@float@callout@span, - flush-bottom-float-footnote-constraint =n - \pagesetup@flush@float@footnote, -% -% \end{macrocode} -% -% \begin{macrocode} - area-list =n \pagesetup@area@list, -% \end{macrocode} -% \begin{macrocode} - defer-class-close-list=n \pagesetup@ddd@class@close, - defer-all-close-list =n \pagesetup@ddd@all@close, -% \end{macrocode} -% -% \begin{macrocode} - footnote-setup =i {footnotesetup} \pagesetup@footnote@setup, -% \end{macrocode} -% -% \begin{macrocode} - float-float-sep =+l \pagesetup@float@float@sep, - float-area-sep =+l \pagesetup@float@area@sep, - float-text-sep =+l \pagesetup@float@text@sep, - float-inline-sep =+l \pagesetup@float@inline@sep, -% \end{macrocode} -% -% \begin{macrocode} - grid-point-sep =+L \pagesetup@grid@point@sep, - } - { -% \end{macrocode} -% We start off with ensuring that we are at the top of a page. This -% is a temporary solution until after pagesetup is more settled and -% those bits which are only possible if there is nothing left on -% recent contributions are properly separated from those things -% which can be changed midway. -% \begin{macrocode} - \newpage - - \global\col@count\@ne - \def\pagesetup@max@float@num{3} - \def\pagesetup@float@callout{column} - \def\pagesetup@float@footnote{none} - \def\pagesetup@flush@float@callout{\pagesetup@float@callout} - \def\pagesetup@flush@float@footnote{\pagesetup@float@footnote} - \def\pagesetup@float@callout@span{flexible} - \def\pagesetup@flush@float@callout@span{\pagesetup@float@callout@span} -% \end{macrocode} -% -% \begin{macrocode} - \let\pagesetup@ddd@class@close\maxdimen %impossible value - \let\pagesetup@ddd@all@close\@empty -% \end{macrocode} -% -% \begin{macrocode} -% tmp: - \def\pagesetup@footnote@setup{\UseTemplate{footnotesetup}{std}{}} -% \end{macrocode} -% -% \begin{macrocode} - \global\let\pagesetup@grid@point@sep\z@ % no grid points by default - - \DoParameterAssignments -% \end{macrocode} -% -% \begin{macrocode} - \ifdim \pagesetup@grid@point@sep = \z@ - \global\let\snap@to@grid\dummy@snap@to@grid -% \end{macrocode} -% Next two lines need some refinement, we need some mechanism to -% fully disable those grid points. |\IgnoreAlignToGrid| doesn't do -% the trick.\footnote{FIX!} -% \begin{macrocode} - \IgnoreAlignToGrid - \global\let\std@AlignToGrid\relax - \else - \global\let\snap@to@grid\std@snap@to@grid - \ObeyAlignToGrid - \fi -% \end{macrocode} -% Split the |\pagesetup@float@text@sep| specification and store the -% minus part in |\pagesetup@float@text@shrink|. Right now the plus -% part is not used. Actually this is only really necessary if we do -% grid typesetting but we do it anyway so that the spec is always -% checked for offending infinite stretch. -% \begin{macrocode} - \split@skip{float-text-sep} - \pagesetup@float@text@sep - \dimen@ - {\global\pagesetup@float@text@shrink} -% \end{macrocode} -% -% \begin{macrocode} - \split@skip{float-inline-sep} - \pagesetup@float@inline@sep - \dimen@ - {\global\pagesetup@float@inline@shrink} - \global\pagesetup@float@inline@sep \@ne\pagesetup@float@inline@sep -% \end{macrocode} -% -% \begin{macrocode} - \global\hsize\columnwidth - \global\linewidth\columnwidth - -% all taken away from AtBeginDocument (where it is was added in xo-final) - \setlength \@tempdima {\headheight + \headsep} - \xdef \pagebodytopvpos {\the\@tempdima} - - \setlength \@tempdima {\@tempdima + \textheight} - \xdef \pagebodybotvpos {\the\@tempdima} - -%% horiz - \setlength \@tempdima {\columnwidth + \columnsep} - \xdef \columndisplacement {\the\@tempdima} - -% \end{macrocode} -% -% Perhaps we could use |\known@areas| instead and save the -% test (would need a change in xo-place as well!).\footnote{Check!} -% \begin{macrocode} - \ifx\pagesetup@ddd@class@close\maxdimen % not set? - \let\pagesetup@ddd@class@close\pagesetup@area@list - \fi -% \end{macrocode} -% -% \begin{macrocode} - \test@named@key - \std@check@callout@constraints - {check@callout@\pagesetup@float@callout} - {float-callout-constraint} - {`none',~ `page',~ `column',~ or~ `after'} -% \end{macrocode} -% -% \begin{macrocode} - \test@named@key - \relaxed@check@callout@constraints - {check@callout@\pagesetup@flush@float@callout} - {flush-float-callout-constraint} - {`none',~ `page',~ `column',~ or~ `after'} -% \end{macrocode} -% -% \begin{macrocode} - \test@named@key - \std@check@some@constraints - {check@float@footnote@\pagesetup@float@footnote} - {bottom-float-footnote-constraint} - {`none'~ or~ `forbidden'} -% \end{macrocode} -% -% \begin{macrocode} - \test@named@key - \relaxed@check@some@constraints - {check@float@footnote@\pagesetup@flush@float@footnote} - {flush-bottom-float-footnote-constraint} - {`none'~ or~ `forbidden'} -% \end{macrocode} -% -% \begin{macrocode} - \test@named@key - \std@calculate@target@fl@column - {calculate@target@fl@column@\pagesetup@float@callout@span} - {float-callout-span-constraint} - {`strict'~ or~ `flexible'} -% \end{macrocode} -% -% \begin{macrocode} - \test@named@key - \relaxed@calculate@target@fl@column - {calculate@target@fl@column@\pagesetup@flush@float@callout@span} - {flush-float-callout-span-constraint} - {`strict'~ or~ `flexible'} -% \end{macrocode} -% -% \begin{macrocode} - \global\let\check@some@constraints\std@check@some@constraints - \global\let\check@callout@constraints\std@check@callout@constraints - \global\let\calculate@target@fl@column\std@calculate@target@fl@column -% \end{macrocode} -% -% \begin{macrocode} - \global\let\used@areas\@empty -% \end{macrocode} -% -% \begin{macrocode} - \expandafter - \@for \expandafter \@tempa \expandafter:\expandafter= - \pagesetup@area@list \do - { -% \end{macrocode} -% Perhaps the instance should be called the moment we declare the -% area. on the other hand calling it within the page setup would -% allow to use collections!\footnote{Think and decide} -% \begin{macrocode} - \xdef\used@areas{\used@areas\@tempa} -% after next line \@tempa is gone ... David, template.sty needs a cleanup - \UseInstance{floatareasetup}{\@tempa} -%\show\@tempa - } - -% \end{macrocode} -% -% \begin{macrocode} - \pagesetup@footnote@setup -% \end{macrocode} -% -% Finally another bit of the initalisation that we have to redo at -% this point since now some of the values may have -% changed.\footnote{Temporary solution until the initialisation bit -% and the pagesetup is properly sorted out.} -% \begin{macrocode} - \initialise@next@page - \setup@collection@or - } -% -% \end{macrocode} -% -% \begin{macrocode} -\endinput -% \end{macrocode} -% -% \endinput -% -% $Log: xo-page.dtx,v $ -% Revision 1.34 2000/08/11 07:14:27 latex3 -% added header -% -% Revision 1.33 2000/08/07 19:50:48 latex3 -% setup the collection@or again when a pagesetup is selected since its -% parameter might have changed. -% -% Revision 1.32 2000/08/06 19:02:51 latex3 -% move parts initialisation to \begin{document} -% move \newpage in pagesetup template first to ensure that previous page -% is finished with old values -% -% Revision 1.31 2000/08/06 09:02:57 latex3 -% documented that footnotehandling needs fixing -% -% Revision 1.30 2000/08/04 10:23:24 latex3 -% removed float-text-shrink and float-inline-shrink keys and instead -% used \split@skip -% -% Revision 1.29 2000/07/26 20:45:51 latex3 -% first implementation of grid point support -% -% Revision 1.28 2000/07/21 13:52:53 latex3 -% more renaming for float sequence class concept -% -% Revision 1.27 2000/07/18 21:07:03 latex3 -% introduced float sequence classes -% -% Revision 1.26 2000/07/12 16:47:44 latex3 -% use grid points properly in template -% -% Revision 1.25 2000/07/10 21:04:30 latex3 -% integration of float specing parameters in page setup -% support for grid typesetting in page setup -% -% Revision 1.24 2000/07/04 19:44:58 latex3 -% fix marginal footnote template (did change column calculations) -% -% Revision 1.23 2000/06/26 15:01:29 latex3 -% docu update -% -% Revision 1.22 2000/06/21 09:56:09 latex3 -% update docu -% -% Revision 1.21 2000/06/18 15:00:35 latex3 -% move "Bottom float footnote relation" to xo-place file -% -% Revision 1.20 2000/06/16 11:06:05 latex3 -% support float-callout-span-constraint -% -% Revision 1.19 2000/06/15 17:49:55 latex3 -% moved macros about placment checking to xo-place since they don't -% belong here -% -% Revision 1.18 2000/06/15 15:21:33 latex3 -% implemented new semantics for area names -% -% Revision 1.17 2000/06/13 21:21:08 latex3 -% added support for columnheight (tmp) -% define \pagebodytopvpos etc inside template so that it can change -% -% Revision 1.16 2000/05/03 18:48:42 latex3 -% initialise float area data structure the moment the float area is -% declared (otherwise you can't declare areas if they are not used!) -% -% add keys defer-type-close-list and defer-all-close-list to pagesetup2 -% template -% -% Revision 1.15 2000/04/21 19:03:58 latex3 -% added footnote setup -% cleanup pagesetup code -% -% Revision 1.14 2000/04/08 10:48:42 latex3 -% code cleanup -% -% Revision 1.13 2000/04/08 08:16:53 latex3 -% default for \pagesetup@flush@float@callout changed -% -% Revision 1.12 2000/03/31 17:07:24 latex3 -% don't fail in footnote/float test if there isn't any bottom area at -% all! -% -% Revision 1.11 2000/03/24 15:34:27 latex3 -% version that starts supporting spans (still a hack yet) -% -% Revision 1.10 2000/03/22 15:51:51 latex3 -% some normalisations of names -% -% Revision 1.9 2000/03/17 20:25:02 latex3 -% initialise fl@0 -% support relaxing constraints when flushing -% -% Revision 1.8 2000/03/15 19:58:00 latex3 -% assigning values to \column@number should always be done globally -% -% Revision 1.7 2000/03/05 19:41:21 latex3 -% support multiple columns (6 max right now) -% -% Revision 1.6 2000/02/26 18:21:16 david -% fixed footnote bottom constraint code -% -% Revision 1.5 2000/02/26 16:52:25 david -% *** empty log message *** -% -% Revision 1.4 2000/02/17 22:41:38 david -% *** empty log message *** -% -% Revision 1.4 2000/02/16 13:41:06 latex3 -% added 3col support -% -% Revision 1.3 2000/02/13 14:38:53 latex3 -% was 1.2.1.2 -% -% Revision 1.2.1.2 2000/02/13 11:51:27 latex3 -% fixed \check@callout@after (hopefully correct now) -% added \check@some@constraints logic -% diff --git a/Master/texmf-dist/source/latex3/xor/xo-place.dtx b/Master/texmf-dist/source/latex3/xor/xo-place.dtx deleted file mode 100644 index 0a208459540..00000000000 --- a/Master/texmf-dist/source/latex3/xor/xo-place.dtx +++ /dev/null @@ -1,1537 +0,0 @@ -% \iffalse -%% -%% (C) Copyright 1999-2000 Frank Mittelbach, David Carlisle, Chris Rowley -%% All rights reserved. -%% -%% Not for general distribution. In its present form it is not allowed -%% to put this package onto CD or an archive without consulting the -%% the authors. -%% -% \fi -% - -% \begin{macrocode} -\def\@tempa#1: #2.dtx,v #3 #4 #5 #6 #7${ - \ProvidesPackage{#2}[#4 #3 #5 #6]} -\@tempa$Id: xo-place.dtx,v 1.37 2000/08/11 07:14:28 latex3 Exp $ -% \end{macrocode} -% -% -% -% Ignore white space in this package. -% \begin{macrocode} -\IgnoreWhiteSpace -% \end{macrocode} -% -% -% -% \subsection{Selecting the next area to try} -% -% -% \begin{macro}{\std@try@this@area} -% The |\std@try@this@area| command is called when we have -% selected a float from the |\@activelist| and want to place it -% in one of the open areas to see if it fits there. If we succeed -% in finding a potential candidate place we will exit using -% |\contruct@trial| which will run a trial cutting the galley to -% see if each column gets the right kind of text and contains the -% right kind of callouts. -% The areas are tried in a defined order. -% -% If we don't find any open areas we return putting the current -% float onto the |\area@ddd| and then calling |\@trynextfloat|. -% -% If we find an open area but for some reason the float is not -% allowed to go there we close that area for floats of this type -% and recurse (i.e. try to use the next open area for this type). -% -% The reasons for failure to place the float into the first open -% area are numerous. First there are restrictions on the number of -% floats on a page (if we reach this all areas get closed) there -% there are similar restrictions for each individual float area. -% -% If those tests are passed we trial typeset the float with its -% caption (or rather typeset and attach its caption) to determine -% the size needed by the float. That will give us a dimension to -% test against restrictions for the amount of space floats are -% allowed to occupy etc. -% -% \begin{macrocode} -\def\std@try@this@area{ -%<*trace> - \@tracepush{std@try@this@area} -%</trace> -% \end{macrocode} -% If all areas for the float type are closed we have to defer this float. -% \begin{macrocode} - \ifx\this@open@areas\@empty -%<*trace> - \tr@ce{defer:~no~open~area~ available} -%</trace> - \do@next\defer@and@try@next@float - \else -% \end{macrocode} -% Otherwise the next area to try is the first of |\this@open@areas|: -% \begin{macrocode} - \setup@this@area{\expandafter\@carcube\this@open@areas\@nil} -%<*trace> - \tr@ce{area~trial:~ \this@area} -%</trace> -%<*progress> - \progress{~ area~trial:~ \this@area} -%</progress> -% \end{macrocode} -% Next test needs cleanup once the span has a decent data -% structure.\footnote{FIX!!} -% \begin{macrocode} - \ifnum \this@area@span@number = \if!\this@span@number! 1\else % big hack - \this@span@number \fi - \relax -%<*trace> - \tr@ce{span~ count~ okay:~ \this@area \space =~ - \if!\this@span@number! 1\else % big hack - \this@span@number \fi} -%</trace> -% \end{macrocode} -% -% \begin{macrocode} - \ifnum \pagesetup@max@float@num > \page@float@count -% \end{macrocode} -% -% \begin{macrocode} - \ifnum\csname pagesetup@\this@area @float@num\endcsname = - \csname \this@area @float@count \endcsname -% -% \end{macrocode} -% Current area doesn't accept any more floats, so try next one (if any) -% \begin{macrocode} -%<*trace> - \tr@ce{close~area:~\this@area\space float~num~reached ~ - (\csname pagesetup@\this@area @float@num\endcsname)} -%</trace> -%<*progress> - \progress@failed{\this@area\space float~num~reached ~ - (\csname pagesetup@\this@area @float@num\endcsname)} -%</progress> - \do@next\try@next@area -% \end{macrocode} -% -% \begin{macrocode} - \else - \xin@\this@area - \this@page@closed - \ifin@ -%<*trace> - \tr@ce{area~ closed~ for~ all~ types;~ member~ of~ - (\this@page@closed)} -%</trace> -%<*progress> - \progress@failed{area~ closed~ for~ all~ types} -%</progress> - \do@next\try@next@area - \else -%<*trace> - \tr@ce{area~ not~ closed~ for~ all~ types:~ not~ member~ of~ - (\this@page@closed)} -%</trace> - \xin@\this@area - \this@closed@areas - \ifin@ -%<*trace> - \tr@ce{area~ closed~ for~ class~ \this@class;~ member~ of~ - (\this@closed@areas)} -%</trace> -%<*progress> - \progress@failed - {area~ closed~ for~ class~ \this@class} -%</progress> - \do@next\try@next@area - \else -%<*trace> - \tr@ce{area~ open~ for~ class~ \this@class;~ not~ member~ of~ - (\this@closed@areas)} -%</trace> - \xin@\this@area\this@fps - \ifin@ -% - \append@caption@to@float - \construct@and@test@col@hts - \if@test - \do@next\try@next@area - \else - \do@next\pretests@success@action - \fi - - \else -%<*trace> - \tr@ce{close~area:~\this@area\space float~not~allowed~ - by~ user~ control~ (\this@fps)} -%</trace> -%<*progress> - \progress@failed{\this@area\space float~not~allowed~ - by~ user~ control~ (\this@fps)} -%</progress> - \do@next\try@next@area - \fi - \fi - \fi - \fi - \else -% defer - \global\let\this@open@areas\@empty -%<*trace> - \tr@ce{defer:~max~float~num~reached ~(\pagesetup@max@float@num)} -%</trace> -%<*progress> - \progress@failed{max~float~num~reached ~(\pagesetup@max@float@num)} -%</progress> - \do@next\defer@and@try@next@float - \fi - \else -%<*trace> - \tr@ce{span~ count~ unsuitable:~ \this@area \space /=~ - \if!\this@span@number! 1\else % big hack - \this@span@number \fi} -%</trace> -%<*progress> - \progress@failed{span~ count~ \this@area \space /=~ - \if!\this@span@number! 1\else % big hack - \this@span@number \fi} -%</progress> - \do@next\try@next@area - \fi - \fi -%<*trace> - \@tracepop{std@try@this@area} -%</trace> - \do@continue -} -% \end{macrocode} -% \end{macro} -% -% -% -% -% \begin{macro}{\do@next} -% Emergency macro to reduce the number of input levels (as the code -% got past the internal default of 300). This is because we have a -% lot of recursion going on without being tail -% recursion. Essentially this means some of the code needs slightly -% different implementation.\footnote{fix} -% \begin{macrocode} -\def\do@next{\let\do@continue} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\relaxed@try@this@area} -% \begin{macrocode} -\def\relaxed@try@this@area{ -%<*trace> - \@tracepush{relaxed@try@this@area} -%</trace> -% \end{macrocode} -% If all areas for the float type are closed we have to defer this float. -% \begin{macrocode} - \ifx\this@open@areas\@empty -%<*trace> - \tr@ce{defer:~no~open~area~ available} -%</trace> - \do@next\defer@and@try@next@float - \else -% \end{macrocode} -% Otherwise the next area to try is the first of |\this@open@areas|: -% \begin{macrocode} - \setup@this@area{\expandafter\@carcube\this@open@areas\@nil} -%<*trace> - \tr@ce{area~trial:~ \this@area} -%</trace> -%<*progress> - \progress{~ area~trial:~ \this@area} -%</progress> -% \end{macrocode} -% Next test needs cleanup once the span has a decent data -% structure.\footnote{FIX!!} -% \begin{macrocode} - \ifnum \this@area@span@number = \if!\this@span@number! 1\else % big hack - \this@span@number \fi - \relax -%<*trace> - \tr@ce{span~ count~ okay:~ \this@area \space =~ - \if!\this@span@number! 1\else % big hack - \this@span@number \fi} -%</trace> -% \end{macrocode} -% -% \begin{macrocode} - \xin@\this@area\this@page@closed - \ifin@ -%<*trace> - \tr@ce{area~ closed~ for~ all~ types;~ member~ of~ - (\this@page@closed)} -%</trace> -%<*progress> - \progress@failed{area~ closed~ for~ all~ types} -%</progress> - \do@next\try@next@area - \else -%<*trace> - \tr@ce{area~ not~ closed~ for~ all~ types:~ not~ member~ of~ - (\this@page@closed)} -%</trace> - \xin@\this@area - \this@closed@areas - \ifin@ -%<*trace> - \tr@ce{area~ closed~ for~ class~ \this@class;~ member~ of~ - (\this@closed@areas)} -%</trace> -%<*progress> - \progress@failed - {area~ closed~ for~ class~ \this@class} -%</progress> - \do@next\try@next@area - \else -%<*trace> - \tr@ce{area~ open~ for~ class~ \this@class;~ not~ member~ of~ - (\this@closed@areas)} -%</trace> - \append@caption@to@float - \construct@and@test@col@hts - \if@test - \do@next\try@next@area - \else - \do@next\pretests@success@action - \fi - \fi - \fi - \else -%<*trace> - \tr@ce{span~ count~ unsuitable:~ \this@area \space /=~ - \if!\this@span@number! 1\else % big hack - \this@span@number \fi} -%</trace> -%<*progress> - \progress@failed{span~ count~ \this@area \space /=~ - \if!\this@span@number! 1\else % big hack - \this@span@number \fi} -%</progress> - \do@next\try@next@area - \fi - \fi -%<*trace> - \@tracepop{relaxed@try@this@area} -%</trace> - \do@continue -} -% \end{macrocode} -% \end{macro} -% -% -% -% -% \begin{macro}{\construct@and@test@col@hts} -% The |\construct@and@test@col@hts| loops over all columns -% affected by the float area we want to place our float into -% and reduces the column size as -% needed. It sets the switch |@test| to true in case the float -% doesn't fit into area for some reason. It is up to the calling -% macro to take proper action in this case (including resetting -% column heights to their former values). -% \begin{macrocode} -\def\construct@and@test@col@hts { -% \end{macrocode} -% We use the information from the area not from the float (which -% allows us to put small floats into larger areas. -% \begin{macrocode} - \update@this@area@columns - { - \expandafter - \construct@and@test@col@ht - \csname col@ht@ \the\count@ \endcsname - {\the\count@} -% \end{macrocode} -% We need to break out of the updating loop if we found a column that -% doesn't work, a) to save time and b) since the -% |\construct@and@test@col@ht| resets the switch again to false -% (in the current implementation). -% \begin{macrocode} - \if@test - \count@\z@ % break out of loop - \fi - } -} -% \end{macrocode} -% \end{macro} -% -% -% -% \begin{macro}{\construct@and@test@col@ht} -% The |\construct@and@test@col@ht| reduces the height of one column -% by the size of the current float (plus some suitable extra space) -% and tests if this reduction is possible/allowed. It sets the -% switch |@test| to true if it encounters a problem. -% \begin{macrocode} -\def\construct@and@test@col@ht#1#2{ -%<*trace> - \tr@ce{col height~before:~ \the#1 (\string#1)} -%</trace> -% \end{macrocode} -% In |\@tempdima| we calculate the amount of space we need if we -% place the float. This is the size of the float, i.e., its height -% and depth, plus either |\pagesetup@float@text@sep| if this is the -% very first float in this column (on top or on bottom), or -% |\pagesetup@float@area@sep| if it is the first float in the -% current area, or |\pagesetup@float@float@sep| if we already have -% floats in this area. -% \begin{macrocode} - \@tempdima \ht\this@captioned@float - \advance \@tempdima \dp\this@captioned@float - \ifnum \csname col@ \this@area@type - @floats@#2@number\endcsname - = \z@ -%<*trace> - \tr@ce{first~ float~ in~ any~ \this@area@type\space - in~ column~ #2:~ - adding~ \string\pagesetup@float@text@sep - =\the\pagesetup@float@text@sep} -%</trace> - \advance \@tempdima \pagesetup@float@text@sep - \else - \advance \@tempdima - \expandafter - \ifx \csname area@\this@area\endcsname\@empty - \pagesetup@float@area@sep -%<*trace> - \tr@ce{first~ float~ in~ \this@area :~ - adding~ \string\pagesetup@float@area@sep - =\the\pagesetup@float@area@sep} -%</trace> - \else - \pagesetup@float@float@sep -%<*trace> - \tr@ce{additional~ float~ in~ \this@area :~ - adding~ \string\pagesetup@float@float@sep - = \the\pagesetup@float@float@sep} -%</trace> - \fi - \fi -% \end{macrocode} -% Now we make the area size fully fall into the page grid (if there -% is one). To do this we first substract any delta that has been -% accumulated for the column (to get back to the real size) and -% then run |\snap@to@grid| to get the next grid point. -% \begin{macrocode} - \advance \@tempdima - -\csname col@ \this@area@type @delta@ #2 \endcsname \relax -% \end{macrocode} -% The |\col@|\meta{area-type}|@delta@|\meta{col} are macros but -% fortunately low-level \TeX{} supports register assignments of the -% form |--3pt| so the above will work even if the macro contains a -% negative value. -% \begin{macrocode} - \snap@to@grid \@tempdima \pagesetup@grid@point@sep -% \end{macrocode} -% -% If the distance to the next grid point is larger than the -% distance to the previous one, and if the space between floats and -% text is allowed to shrink by the needed amount we will use the -% previous grid point. -% \begin{macrocode} - \ifdim \returned@lower@delta@size < \returned@delta@size \relax - \ifdim \returned@lower@delta@size < \pagesetup@float@text@shrink -%<*trace> - \tr@ce{GRID:~ column~#2:~ choosing~ lower~ grid~ point} -%</trace> -% \end{macrocode} -% We do this by copying the |\returned@lower@...| to the macros -% used below. Note that for the delta size we have to use the -% negation since we want to backup by this amount and delta sizes -% are always given in absolute values. -% \begin{macrocode} - \global\let \returned@size \returned@lower@size - \xdef \returned@delta@size {-\returned@lower@delta@size } - \fi - \fi -%<*trace> - \tr@ce{GRID:~ column~#2:~ \the\@tempdima\space ->~ \returned@size} -%</trace> - \@tempdima \returned@size -% \end{macrocode} -% -% After updating |\@tempdima| in this way we now have to check if -% the space remaining for the text column is large enough. -% \begin{macrocode} - \@tempdimb#1 - \advance \@tempdimb -\@tempdima - \@testfalse - \ifdim \textminlines\baselineskip > \@tempdimb -% \end{macrocode} -% If not we bail out -% \begin{macrocode} - \@testtrue -%<*trace> - \tr@ce{close~area:~\this@area\space not~ enough~ text~ lines~ - left~ - (\textminlines x\the\baselineskip> \the\@tempdimb)} -%</trace> -%<*progress> - \progress@failed{not~ enough~ text~ space~ - (\textminlines x\the\baselineskip\space - >~ \the\@tempdimb)} -%</progress> - \else -% \end{macrocode} -% Otherwise we have to update the column heights (and their saved -% version in case we back out later) as well as storing the new -% delta (which is still in |\returned@delta@size|). -% \begin{macrocode} -%<*trace> - \tr@ce{saved@col@ht@ #2~ <-~\the#1} -%</trace> - \expandafter\xdef - \csname saved@col@ht@ #2\endcsname{\the#1} - \global#1\@tempdimb - \global\expandafter\let - \csname saved@col@ \this@area@type @delta@ #2 \expandafter \endcsname - \csname col@ \this@area@type @delta@ #2 \endcsname - \global\expandafter\let - \csname col@ \this@area@type @delta@ #2 \endcsname - \returned@delta@size -%<*trace> - \tr@ce{GRID (delta):~ column~#2\this@area@type:~ - \csname saved@col@ \this@area@type @delta@ #2 - \endcsname\space ->~ \returned@delta@size} -%</trace> - \fi -%<*trace> - \tr@ce{col height~after:~ \the#1} -%</trace> -} -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\textminlines} -% Tmp definition; should be interfaced to pagesetup. -% \begin{macrocode} -\def\textminlines{4} -% \end{macrocode} -% \end{macro} -% -% -% -% \subsection{Supporting grid based designs} -% -% -% -% \begin{macro}{\pagesetup@grid@point@sep} -% |\pagesetup@grid@point@sep| is the distance between grid points -% for page design or 0pt if we are not doing grid design. -% \begin{macrocode} -\let\pagesetup@grid@point@sep\ERROR -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\snap@to@grid} -% |\snap@to@grid| takes a dimension as first argument and a -% ``grid-size'' as second argument and from those two values -% calculates a new dimension which is a multiple of the grid-size -% and equal or larger than the first argument. -% -% It returns this calculated value globally in |\returned@size|. In -% addition it will return in |\returned@delta@size| the delta -% between the original and the new dimension. -% -% It also returns a lower or equal grid point in -% |\returned@lower@size| and the delta to it (absolute value) in -% |\returned@lower@delta@size|. -% -% Thus the first argument lies on a grid point if and only if -% |\returned@size| equals |\returned@lower@size|. -% -% If we are not doing grid typesetting then |\snap@to@grid| is -% actually a dummy which will return always the first argument in -% |\returned@size| and |\returned@lower@size|, and |0pt| in the -% deltas. -% -% The actual definition is assigned within the page setup. -% \begin{macrocode} -\let\snap@to@grid\ERROR -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\dummy@snap@to@grid} -% In case we don't do grids we simply pretend that all sizes lie on -% grid points. -% \begin{macrocode} -\def \dummy@snap@to@grid #1#2{ - \begingroup -% \end{macrocode} -% Definitions below can be optimised for speed but the ones used -% give better tracing. -% \begin{macrocode} - \@tempdima #1 \relax - \xdef \returned@size { \the\@tempdima } - \global\let \returned@lower@size \returned@size - \gdef \returned@delta@size {0pt} - \global\let \returned@lower@delta@size \returned@delta@size - \endgroup -} -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\std@snap@to@grid} -% But if we do grid typesetting we have to do a bit more work -% here. -% \begin{macrocode} -\def \std@snap@to@grid #1#2{ -% \end{macrocode} -% Everything is done in a group so that the register change do not -% affect other parts of the code. -% \begin{macrocode} - \begingroup -% \end{macrocode} -% First we calculate in |\@tempdimc| the nearest grid point which -% is smaller or equal to the given size in |#1| by using scaled -% point arithmetic. -% \begin{macrocode} - \@tempdima #1\relax - \@tempdimb #2\relax - \@tempcnta \@tempdima % orig size in sp - \@tempcntb \@tempdimb % grid size in sp - \divide \@tempcnta \@tempcntb - \@tempdimc \@tempcnta\@tempdimb -% \end{macrocode} -% If the calculated grid point is smaller than the original -% dimension use the next larger one. But record the other in -% |\returned@lower@size|. -% \begin{macrocode} - \ifdim \@tempdimc < \@tempdima - \xdef \returned@lower@size { \the\@tempdimc } - \advance\@tempdimc \@tempdimb - \fi -% \end{macrocode} -% The |\returned@size| will be whatever the result of the above is -% and |\returned@delta@size| the difference to the given value in -% |#1|. Note that |\returned@size| will always be larger or equal -% to this value so the difference computed below will also be -% non-negative! -% \begin{macrocode} - \xdef \returned@size { \the\@tempdimc } - \advance \@tempdimc -\@tempdima - \xdef \returned@delta@size { \the\@tempdimc } -% \end{macrocode} -% Now if this difference turns out to be zero then we actually -% started with a dimension exactly on a grid point. In this case we -% better define both |\returned@lower@size| and -% |\returned@lower@delta@size| to equal their counterparts. -% \begin{macrocode} - \ifdim \@tempdimc = \z@ - \global \let \returned@lower@size \returned@size - \global \let \returned@lower@delta@size \returned@delta@size -% \end{macrocode} -% Otherwise we only have to compute |\returned@lower@delta@size| -% since in that case we already recorded |\returned@lower@size| -% above (and we better had since by now we lost this information as -% we reused |\@tempdimc|). Now the value for this macro should be -% the difference between |\returned@delta@size| and our grid size -% both of which are already stored in some temp registers, -% thus\ldots -% \begin{macrocode} - \else - \advance\@tempdimb-\@tempdimc - \xdef \returned@lower@delta@size { \the\@tempdimb } - \fi - \endgroup -%<*trace> - \tr@ce{GRID:~ \string\returned@lower@size=\returned@lower@size} - \tr@ce{GRID:~ \string\returned@lower@delta@size=\returned@lower@delta@size} - \tr@ce{GRID:~ \string\returned@size=\returned@size} - \tr@ce{GRID:~ \string\returned@delta@size=\returned@delta@size} -%</trace> -} -% \end{macrocode} -% \end{macro} -% -% -% -% -% -% \subsection{Deferring a float} -% -% -% -% \begin{macro}{\really@defer@and@try@next@float} -% \begin{macrocode} -\def\really@defer@and@try@next@float{ -%<*progress> - \progress@failed{-->~ defer} - \progress@nl{} -%</progress> - \@cons\area@ddd\this@float@box -%<*trace> - \tr@ce{this@page@closed~ <-~ "\this@page@closed"~ +~ - "\pagesetup@ddd@all@close"} -%</trace> - \xdef\this@page@closed{\this@page@closed, - \pagesetup@ddd@all@close} - - \ifx\pagesetup@ddd@class@close\pagesetup@area@list -%<*trace> - \tr@ce{this@closed@areas~ <-~ - "\pagesetup@ddd@class@close"~ (all~ closed)} -%</trace> - \global\let\this@closed@areas\pagesetup@ddd@class@close - \else -%<*trace> - \tr@ce{this@closed@areas~ <-~ "\this@closed@areas"~ +~ - "\pagesetup@ddd@class@close"} -%</trace> - \xdef\this@closed@areas{\this@closed@areas, - \pagesetup@ddd@class@close} - \fi - - \global\expandafter\let\csname closed@\this@class - @areas\endcsname % FMi tmp - \this@closed@areas - \try@next@float -} -% \end{macrocode} -% \end{macro} -% -% -% -% \begin{macro}{\defer@and@try@next@float} -% -% This code either defers the current float and restarts by calling -% |\try@next@float| or recurses after relaxing the placement -% conditions (in case the current float should be flushed). -% -% If the placement conditions are already relaxed we move the first -% flush point that affects the current float one column forward and -% then retry. This might result in succeding to place the float, if -% not it will ultiamtely result in the flush point being moved from -% the page at which point the float can be deferred. -% -% \begin{macrocode} -\def\defer@and@try@next@float{ -%<*trace> - \@tracepush{defer@and@try@next@float} -%</trace> -% \end{macrocode} -% If there have been no flush points or if the flush points seen do -% not affect the current float we can immediately defer it. -% \begin{macrocode} - \if@flushseen - \xin@\this@class\flush@classes@list@max - \ifin@ -%<*trace> - \tr@ce{flush:~ class~ \this@class\space in~ - \flush@classes@list@max} -%</trace> -% \end{macrocode} -% First test is just there to avoid doing any of the loops -% (might not be worth having) -% \begin{macrocode} - \ifnum \csname flush@min@col@1\endcsname > \curr@col@count -%<*trace> - \tr@ce{flush:~ no~ flush~ points~ on~ page;~ defer} -%</trace> - \do@next\really@defer@and@try@next@float - \else -% \end{macrocode} -% -% The code is often invoked before there is an attempt to split the -% galley; this means we don't know which flush point affects the -% current float and thus have to manually get at it. -% -% So we loop through the |\flush@last@float@|\meta{num} values to -% find the first one that a) affects the current float type and b) -% holds a sequence number that is higher or equal to the sequence -% number of the current float. -% \begin{macrocode} - \count@ \@ne - \loop -% \end{macrocode} -% If |\count@| is greater than |\flush@seq@num| we have exhausted -% all possible flush points without finding a candidate. -% \begin{macrocode} - \ifnum \flush@seq@num < \count@ - \in@false - \else -% \end{macrocode} -% Otherwise, if |\this@sequence@number| is greater than -% |\flush@last@float@|\meta{num} the current flush point is before -% the call-out to the current float. -% \begin{macrocode} -%<*trace> - \tr@ce{flush:~ \this@sequence@number \space ???~ - \csname flush@last@float@ \the\count@ \endcsname} -%</trace> - \ifnum \this@sequence@number > - \csname flush@last@float@ \the\count@ \endcsname - \relax -% \end{macrocode} -% We set |\in@true| to get a repeat below with a new value of -% |\count@|. -% \begin{macrocode} - \in@true - \else -% \end{macrocode} -% Otherwise we have a flush point that is later in the galley in -% comparison to the call-out of the current float thus potentially -% affects it. Therefore we now have to check if the sequence class -% of the current float is affected by the flush point found: -% \begin{macrocode} - \expandafter\xin@\expandafter\this@class - \csname flush@classes@list@ \the\count@ \endcsname -% \end{macrocode} -% Now we could make good use of the |\unless| primitive of -% e\TeX. But since we want to run with standard \TeX{} and don't -% have |\xnotin@| available we invert the result. -% \begin{macrocode} - \ifin@ - \in@false - \else - \in@true -%<*trace> - \tr@ce{flush:~ class~ \this@class\space not~ in~ - \csname flush@classes@list@ \the\count@ \endcsname - \space (ignored) - } -%</trace> - \fi - \fi - \fi - \ifin@ - \advance\count@\@ne - \repeat -%<*trace> - \tr@ce{flush:~ first~ float~ point~ after~ float~ =~ - \the\count@} -%</trace> - \ifnum \flush@seq@num < \count@ -%<*trace> - \tr@ce{flush:~ this~ float~ past~all~flush~ points;~ defer} -%</trace> - \do@next\really@defer@and@try@next@float - \else -% \end{macrocode} -% Once a |flush@min@col| is larger than |\curr@col@count| it has -% moved to the next page. In particular this is true for the -% artificial value |\maxdimen| to which it is sometimes set to -% denote this fact. If so we can defer our float. -% \begin{macrocode} - \ifnum \csname flush@min@col@\the\count@\endcsname - > \curr@col@count -%<*trace> - \tr@ce{flush:~ float~ past~ all~ flush~ points~ - on~ current~ page;~ defer} -%</trace> - \do@next\really@defer@and@try@next@float - \else -% \end{macrocode} -% If we have already relaxed the conditions and we are still in -% conflict with a flush point on the current page we nearly ran out -% of options. In this case we are forced to move the flush point, -% but rather than moving it to the next page and defering the float -% we can move it one column further (which might make it fall off -% the page though) and then retry to place the float since we have -% now more space available. -% \begin{macrocode} - \ifx\try@this@area\relaxed@try@this@area -%<*trace> - \tr@ce{flush:~ defer~ forced;~ move~ - flush~ point~ columns} -%</trace> -%<*progress> - \progress@nl{} - \progress@nl{Flushing~ impossible~ -->~ breaking~ - before~ flush~ point~ and~ retry} -%</progress> -% \end{macrocode} -% We should only increment the |flush@min@col@| value of the first -% flush point that affects our float (this will automatically move -% later flush points if necessary). Incrementing the later ones is -% incorrect as they might not need moving! -% \begin{macrocode} - \expandafter \gincrement@num - \csname flush@min@col@ \the\count@ \endcsname -%<*trace> - \tr@ce{flush@min@col@\the\count@ \space <-~ - \csname flush@min@col@ \the\count@ \endcsname - } -%</trace> -%<*progress> - \progress@nl{} - \progress@nl{Defer~ impossible~ -->~ moving~ - flush~ point~ to~ column~ - \csname flush@min@col@ \the\count@\endcsname - \space - and~ retry} -%</progress> -% \end{macrocode} -% Not clear that it is really necessary to check all areas again, -% but it is late (after midnight) and it is definitely not -% wrong.\footnote{Check!} -% \begin{macrocode} - \relax@float@placement@conditions % needed to reset open areas - \do@next\try@this@area - - \else -% \end{macrocode} -% -% \begin{macrocode} - \relax@float@placement@conditions - \do@next\try@this@area - \fi - \fi - \fi - \fi - \else -%<*trace> - \tr@ce{flush:~ class~ \this@class\space not~ in~ - \flush@classes@list@max;~ defer} -%</trace> - \do@next\really@defer@and@try@next@float - \fi - - \else -%<*trace> - \tr@ce{flush:~ no~ flush~ point~ seen; defer} -%</trace> - \do@next\really@defer@and@try@next@float - \fi - -%<*trace> - \@tracepop{defer@and@try@next@float} -%</trace> - \do@continue -} -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\relax@float@placement@conditions} -% \begin{macrocode} -\def \relax@float@placement@conditions { -%<*progress> - \progress@failed{-->~ retry~ with~ relaxed~ conditions} - \progress@nl{} -%</progress> -%<*trace> - \tr@ce{flush:~relax~placement~conditions} -%</trace> - \global\let\try@this@area\relaxed@try@this@area -% next line perhaps external? - \global\let\this@open@areas\saved@this@open@areas - - \global\let\check@some@constraints\relaxed@check@some@constraints - \global\let\check@callout@constraints\relaxed@check@callout@constraints - \global\let\calculate@target@fl@column\relaxed@calculate@target@fl@column -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\tighten@float@placement@conditions} -% \begin{macrocode} -\def\tighten@float@placement@conditions { -%<*trace> - \tr@ce{flush:~tighten~placement~conditions} -%</trace> - \global\let\try@this@area\std@try@this@area - - \global\let\check@some@constraints\std@check@some@constraints - \global\let\check@callout@constraints\std@check@callout@constraints - \global\let\calculate@target@fl@column\std@calculate@target@fl@column -} -% \end{macrocode} -% \end{macro} -% -% -% -% \begin{macro}{\partly@tighten@float@placement@conditions} -% This is used when we have placed the last float that is affected -% by a certain flush point. We don't want to tighten up completely -% since this would essentially mean that we can't place any further -% floats since callout relationships etc might be violated for -% them. Good question is whether or not the last restriction should -% be used again since this too might prevent any further placements. -% \begin{macrocode} -\def\partly@tighten@float@placement@conditions { -%<*trace> - \tr@ce{flush:~partly~tighten~placement~conditions} -%</trace> - \global\let\try@this@area\std@try@this@area - -% \global\let\check@some@constraints\std@check@some@constraints -% \global\let\check@callout@constraints\std@check@callout@constraints - \global\let\calculate@target@fl@column\std@calculate@target@fl@column -} -% \end{macrocode} -% \end{macro} -% -% -% -% \subsection{Checking float placement during trial} -% -% The interface to checking float placement in relation to its callout -% is the following piece of code in |\grab@column@or|: -%\begin{verbatim} -% \let\@elt\check@callout@constraints -% \float@classes@list -%\end{verbatim} -% This loops through all float types and executes -% |\check@callout@constraints| with the float type as an argument. The output -% routine |\grab@column@or| itself is called for each column of a trial -% configuration, thus the above loop is called for each column -% individually (|\curr@col@count| can be used to determine the current -% column number). -% -% By giving |\check@callout@constraints| an appropriate definition a -% pagesetup template can implement different relationships between -% callout and float. -% -% Possible tests (getting stronger): -% \begin{itemize} -% -% \item -% Don't check, i.e., add the float when you find it and it fits -% according to other criteria (like number of floats in the area, -% etc.). This is implemented in |\check@callout@none|. -% -% -% \item -% Check if callouts for all floats on the page (not column) are -% either on the same page or on an earlier page; i.e., callout can be -% late as long as the float is visible from the callout. -% -% Fail if for last column and all float types: -% last callout number for float type is smaller than maximum last float -% of type put into any column.\footnote{This description is -% probably wrong} -% -% This is implemented in |\check@callout@page|. -% -% \item -% Check if callouts for all floats in the column are either on the -% same column or on an earlier column. -% -% Fail if for any column and any float type: -% last callout number for float type is smaller last float sequence -% number for type recorded for this column. -% -% This case consists in fact of two subcases depending on how we -% interpret to which column a spanning float belongs. If we claim -% that a spanning float is placed into its starting column, then we -% fail if its call-out is in a later column even though this column -% might still be spanned by the float area. -% -% This is implemented in |\check@callout@column|. -% -% \item -% Check if callouts for all floats in the column are on an earlier -% column or if on the same column the float was added to the bottom -% (or marginal) area; i.e. strict float/callout order -% -% Fail if for each type and for any column: -% `top' callout number less than `top' float number -% (at top of text column) -%\begin{verbatim} -% [Corectness proof: -% TRUE => first callout's float comes before bottom -% and so comes too early -% => FAIL -% FALSE => first callout's float comes in bottom and all other -% callouts come later and so are in bottom or beyond -% => OK -% ] -%\end{verbatim} -% The proof above is in fact only valid if you look at the whole -% document and not only at a single page since a float in the bottom -% area of the last column with its callout on the next page will -% only be detected when testing the next page. Therefore one needs -% an additional check of type |\check@callout@column|. -% -% This is implemented in |\check@callout@after|. -% -% -% \end{itemize} -% -% -% \begin{macro}{\check@callout@none} -% This test is an easy one: just do nothing, i.e., gobble the argument. -% \begin{macrocode} -\let\check@callout@none\@gobble -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\check@callout@page} -% We are are only interested in the callout/float relation per page -% we only have to do a check when producing the last column, i.e., -% when |\curr@col@count| is |\col@count|. -% \begin{macrocode} -\def\check@callout@page#1{ -%<*trace> - \@tracepush{check@callout@page} -%</trace> - \ifnum\curr@col@count=\col@count -% \end{macrocode} -% We store in |\fl@max| the highest sequence number for floats of -% the current type up to the end of the page. For this we have to -% find the maximum of |\fl@0@|\meta{type} (highest float number on -% previous pages) and those for the columns, e.g., -% |\fl@|\meta{colnum}|@|\meta{type}; this is done by the following -% code: -% \begin{macrocode} - \global\expandafter\let\expandafter\fl@max - \csname fl@0@#1\endcsname - \forall@columns { - \ifnum\csname fl@\the\curr@col@count @#1\endcsname>\fl@max\relax - \xdef\fl@max{\csname fl@\the\curr@col@count @#1\endcsname} - \fi - } -% \end{macrocode} -% We then store the number of the last callout in |\count@|; the -% |0| will take care of the potential problem that there was never any -% callout so far. And we better have a |\relax| afterwards since -% otherwise we will expand the |\ifnum| before we have finished -% assigning the |\count@|. -% \begin{macrocode} - \count@0\LastMark{#1}\relax -%<*trace> - \tr@ce{Last~callout~ (#1)~ =~ \the\count@} -%</trace> -% \end{macrocode} -% Now we have to compare those two numbers to find out if that -% trial has failed: -% \begin{macrocode} - \ifnum\count@<\fl@max\relax - \@failtrue -%<*progress> - \progress@failed{last~callout~ - \the\count@\space~<~\fl@max - \space last~float~put~on~page~or~ earlier} -%</progress> -%<*trace> - \tr@ce{Failed:~(#1)~ last~callout~ - \the\count@\space~<~\fl@max - \space last~float~put~on~page~or~ earlier} - \else - \tr@ce{OK:~(#1)~ last~callout~ - \the\count@\space~>=~\fl@max - \space last~float~put~on~page~or~ earlier} -%</trace> - \fi - \fi -%<*trace> - \@tracepop{check@callout@page} -%</trace> -} -% \end{macrocode} -% \end{macro} -% -% -% -% \begin{macro}{\fl@max} -% The macro |\fl@max| is used within |\check@callout@page| to hold -% the highest sequence number of any allocated float on the current -% page for the type under testing. It will be recalculated on -% each pass.\footnote{One could generate this value while running through -% the trials --- this would perhaps be a bit more time efficient.} -% \begin{macrocode} -\let\fl@max\ERROR -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\check@callout@column} -% Checking each column separately means we have to compare for each -% type the last callout on this or previous columns (i.e., as -% returned by |\LastMark|) with the highest sequence number for -% floats of this type in the current column (as stored in -% |fl@|\meta{col}|@|\meta{type}). So we first store the callout -% info in |\count@|. -% \begin{macrocode} -\def\check@callout@column#1{ -%<*trace> - \@tracepush{check@callout@column} -%</trace> - \count@0\LastMark{#1}\relax -% \end{macrocode} -% Then we do the test. If there are no floats of the current type -% in the current column |\fl@|\meta{col}|@|\meta{type} will be zero -% and thus the following test will come out true. This is the -% correct behaviour as any callouts that might be present will be -% correctly evaluated in tests on neighboring columns with floats. -% \begin{macrocode} - \ifnum\count@<\csname fl@\the\curr@col@count @#1\endcsname\relax -%<*progress> - \progress@failed{last~ callout~ - \the\count@\space <~ - \csname fl@\the\curr@col@count @#1\endcsname - \space last~ float~ placed~ in~ column~ \the\curr@col@count} -%</progress> -%<*trace> - \tr@ce{Failed:~(#1)~ last~ callout~ - \the\count@\space <~ - \csname fl@\the\curr@col@count @#1\endcsname - \space last~float~placed} -%</trace> -% \end{macrocode} -% If the test fails we abort this trial by setting the switch -% |@fail| to true. We also set -% |\curr@col@count| to |\col@count| which will save us any further -% iteration (in case this wasn't the last column). Finally we -% locally set |\@elt| to |\@gobble| which will essentially about -% the current loop through the |\float@classes@list|. -% \begin{macrocode} - \@failtrue - \global\curr@col@count\col@count - \let\@elt\@gobble -% \end{macrocode} -% Otherwise the constraints for callout of current float type are -% met so we report this fact if we do tracing. -% \begin{macrocode} -%<*trace> - \else - \tr@ce{OK:~(#1)~ last~ callout~ - \the\count@\space >=~ - \csname fl@\the\curr@col@count @#1\endcsname - \space last~float~placed} -%</trace> - \fi -%<*trace> - \@tracepop{check@callout@column} -%</trace> -} -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\check@callout@after} -% -% \begin{macrocode} -\def\check@callout@after#1{ -%<*trace> - \@tracepush{check@callout@after} -%</trace> -% \end{macrocode} -% -% We first check if all floats are either on the same column than -% their callout or on an later column by calling -% |\check@callout@column|. If this returns |@fail| we immediately -% abort any further processing. -% \begin{macrocode} - \check@callout@column{#1} - \if@fail\else -% \end{macrocode} -% -% If the above check found no violation we have to check for top -% area floats that might preceed their callouts. -% -% For this we look at the value of the -% |\tfl@|\meta{col}|@|\meta{float-type} macro which holds the -% highest float sequence number for floats of this type allocated -% in that column. -% \begin{macrocode} - \global\expandafter\let\expandafter - \returned@sequence@number - \csname tfl@\the\curr@col@count @#1\endcsname -% \end{macrocode} -% -% If there was no float in the top area we get |0| back and in -% that case we are done since all our constraints are met. -% \begin{macrocode} - \ifnum \returned@sequence@number = \z@ -%<*trace> - \tr@ce{OK:~(#1)~ top~ areas~ have~ no~ floats} -%</trace> - \else -% \end{macrocode} -% -% Otherwise we have to look at the top callout number and compare -% it to the last float number of the top area. -% \begin{macrocode} - \count@ 0\PreviousMark{#1}\relax -% \end{macrocode} -% If that callout number is less than the last float number we -% failed since this means that there is a float in the top area -% which callout has not yet been seem. So we abort the -% trial. Otherwise our constraints are met. -% \begin{macrocode} - \ifnum \count@ < \returned@sequence@number \relax -% \end{macrocode} -% But before aborting we give some information on why we -% failed. This has to come first since we change |\curr@col@count| -% below. -% \begin{macrocode} -%<*progress> - \progress@failed{top~ callout~ - \the\count@\space <~ \returned@sequence@number - \space last~ float~ put~ in~ top~ - of~ column~ \the\curr@col@count} -%</progress> - \@failtrue - \global\curr@col@count\col@count - \let\@elt\@gobble -%<*trace> - \tr@ce{Failed:~(#1)~ top~ callout~ - \the\count@\space <~ \returned@sequence@number - \space last~float~put~in~top} - \else - \tr@ce{OK:~(#1)~ top~ callout~ - \the\count@\space >=~ \returned@sequence@number - \space last~float~put~in~top} -%</trace> - \fi - \fi - \fi -%<*trace> - \@tracepop{check@callout@after} -%</trace> -} -% \end{macrocode} -% \end{macro} -% -% -% -% -% \subsection{Checking bottom float footnote constraints} -% -% In |\grab@column@or|, the output routine that grabs a single column -% during a trial, we have the command |\check@some@constraints| which -% allows to check some constraints and if they aren't met is supposed -% to set the switch |@fail|. -% -% This can, for example be used to implement a constraint that bottom -% floats are only allowed if there are no footnotes in the current -% column.\footnote{At the moment this is restricted to single column -% floats. Spanning floats are always allowed.} -% -% \begin{macro}{\check@float@footnote@forbidden} -% The command |\check@float@footnote@forbidden| is the -% implementation for |\check@some@constraints| that prevents bottom -% floats if the current column contains footnotes. -% \begin{macrocode} -\def\check@float@footnote@forbidden{ -%<*trace> - \@tracepush{check@float@footnote@forbidden} -%</trace> - \ifvoid\footins - \else -% \end{macrocode} -% If the current column contains footnotes and we have bottom -% floats we fail. First we check if there is a bottom area for this -% column defined if not we pretend there is an empty one. -% \begin{macrocode} - \expandafter - \ifx \csname area@b\the\curr@col@count1\endcsname - \relax - \global\expandafter\let - \csname area@b\the\curr@col@count1\endcsname - \@empty - \fi -% \end{macrocode} -% Then we check if the bottom area is empty and fail otherwise -% \begin{macrocode} - \expandafter - \ifx \csname area@b\the\curr@col@count1\endcsname - \@empty -%<*trace> - \tr@ce{OK:~ no~ old~ bottom~ floats} -%</trace> - \else -%<*progress> - \progress@failed{old~bottom~floats:~ \expandafter\meaning - \csname area@b\the\curr@col@count1\endcsname} -%</progress> -%<*trace> - \tr@ce{Failed:~ old~bottom~floats:~ \expandafter\meaning - \csname area@b1\the\curr@col@count\endcsname} -%</trace> - \@failtrue - \fi -% \end{macrocode} -% Finally we test if the float we are try to place is going onto a -% bottom area. -% -% However we only do this if the float doesn't span.\footnote{Extend?} -% \begin{macrocode} - \ifnum \this@area@span@number = \@ne -%<*trace> - \tr@ce{this@area,column:~ \this@area,~\the\curr@col@count} -%</trace> - \if b \this@area@type - \ifnum \this@area@col@number = \curr@col@count - \@failtrue - \fi - \fi - \fi - \if@fail -%<*progress> - \progress@failed{column~ \the\curr@col@count\space - contains~ footnotes~ and~ bottom~ floats} -%</progress> -%<*trace> - \tr@ce{Failed:~ column~ \the\curr@col@count\space - contains~ footnotes~ and~ bottom~ floats} -%</trace> - \global\curr@col@count\col@count - \fi - \fi -%<*trace> - \@tracepop{check@float@footnote@forbidden} -%</trace> -} -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\check@float@footnote@none} -% -% This is the implementation for |\check@some@constraints| if we -% don't care about mixing footnotes and bottom floats. The reason -% |\@empty| rather than |\relax| is used is that otherwise the -% |\ifx| test in the template would fail. -% \begin{macrocode} -\let\check@float@footnote@none\@empty -% \end{macrocode} -% \end{macro} -% -% -% -% -% -% -% \endinput -\endinput -% -% $Log: xo-place.dtx,v $ -% Revision 1.37 2000/08/11 07:14:28 latex3 -% added header -% -% Revision 1.36 2000/08/11 06:49:47 latex3 -% untabify -% -% Revision 1.35 2000/08/11 06:45:03 latex3 -% only partially tighten float constraints after passing a flush point -% -% Revision 1.34 2000/07/23 21:03:19 latex3 -% removed obsolete commentary -% -% Revision 1.33 2000/07/21 13:53:17 latex3 -% more renaming for float sequence class concept -% -% Revision 1.32 2000/07/18 21:06:36 latex3 -% introduced float sequence classes -% -% Revision 1.31 2000/07/12 17:24:53 latex3 -% more support for grids -% -% Revision 1.30 2000/07/10 21:00:57 latex3 -% support for grid typesetting -% -% Revision 1.29 2000/07/04 19:42:05 latex3 -% fix tracing for GRID stuff -% -% Revision 1.28 2000/07/01 15:57:25 latex3 -% use \update@this@area@columns -% integrate code to support grid design (first draft) -% -% Revision 1.27 2000/06/29 17:18:14 latex3 -% introduced \setup@this@area -% -% Revision 1.26 2000/06/26 15:03:40 latex3 -% making prototype for \pagesetup@float@area@sep -% -% Revision 1.25 2000/06/22 20:08:09 latex3 -% renamed some macros to get them more uniform -% -% Revision 1.24 2000/06/22 11:01:24 latex3 -% When substracting heights from columns do this for the columns spanned -% by the area. Don't use the span number from the float (in the future -% this might be smaller than the span number of the area) -% -% Revision 1.23 2000/06/19 21:38:04 latex3 -% fixed flush point handling when deferring -% -% Revision 1.22 2000/06/18 19:03:53 latex3 -% added "Checking bottom float footnote constraints" from xo-page -% -% Revision 1.21 2000/06/16 11:20:15 latex3 -% rename \construct@and@test@col@height to \construct@and@test@col@ht -% rename \construct@and@test@col@heights to \construct@and@test@col@hts -% rename \cl@height1 to \@col@ht@1 (etc) -% -% Revision 1.20 2000/06/16 11:06:37 latex3 -% support float-callout-span-constraint -% -% Revision 1.19 2000/06/16 07:49:49 latex3 -% improve progress info -% -% Revision 1.18 2000/06/15 17:49:02 latex3 -% moved macros from xo-page into here since they deal with placement -% -% Revision 1.17 2000/06/15 15:23:32 latex3 -% implemented new semantics for area names -% -% Revision 1.16 2000/06/13 20:48:18 latex3 -% docu update -% -% Revision 1.15 2000/06/06 12:50:40 latex3 -% before attempting fuzzy flushpoints -% -% Revision 1.14 2000/05/03 18:57:56 latex3 -% provide \construct@and@test@col@heights subroutine -% -% fix problem that deferred floats would not stop other floats going -% into earlier areas -% -% Revision 1.13 2000/03/31 17:08:50 latex3 -% avoid using up too much input stack by using tail recursion in -% strategic places (tmp fix) -% -% Revision 1.12 2000/03/26 21:04:03 latex3 -% some renaming of macros -% -% Revision 1.11 2000/03/24 15:34:27 latex3 -% version that starts supporting spans (still a hack yet) -% -% Revision 1.10 2000/03/22 15:52:37 latex3 -% some normalisations of names -% first go at spans (tmp version) -% -% Revision 1.9 2000/03/17 20:23:11 latex3 -% more fixes to flushing (looks good now) -% -% Revision 1.8 2000/03/16 10:28:29 latex3 -% partial and full flush working for the first time -% -% Revision 1.7 2000/03/05 19:31:56 latex3 -% some renaming -% extend to multiple columns (6 max right now) -% fix defer logic: when flushseen don't defer immediately -% -% Revision 1.6 2000/02/27 15:12:45 david -% *** empty log message *** -% -% Revision 1.5 2000/02/27 11:27:45 david -% first attempt at flush floats -% -% Revision 1.4 2000/02/26 18:24:21 david -% renaming, and using \initialise@areas -% -% Revision 1.3 2000/02/16 13:40:09 latex3 -% added 3col support -% -% Revision 1.2 2000/02/16 10:10:43 latex3 -% added documentation -% added test for float area size after adding float -% -% Revision 1.1 2000/02/13 22:27:39 latex3 -% Initial revision -% diff --git a/Master/texmf-dist/source/latex3/xor/xo-trace.dtx b/Master/texmf-dist/source/latex3/xor/xo-trace.dtx deleted file mode 100644 index 435994f1682..00000000000 --- a/Master/texmf-dist/source/latex3/xor/xo-trace.dtx +++ /dev/null @@ -1,140 +0,0 @@ -% \iffalse -%% -%% (C) Copyright 1999-2000 Frank Mittelbach, David Carlisle, Chris Rowley -%% All rights reserved. -%% -%% Not for general distribution. In its present form it is not allowed -%% to put this package onto CD or an archive without consulting the -%% the authors. -%% -% \fi -% - -% \begin{macrocode} -\def\@tempa#1: #2.dtx,v #3 #4 #5 #6 #7${ - \ProvidesPackage{#2}[#4 #3 #5 #6]} -\@tempa$Id: xo-trace.dtx,v 1.9 2000/08/11 07:14:29 latex3 Exp $ -% \end{macrocode} -% -% Ignore white space in this package. -% \begin{macrocode} -\IgnoreWhiteSpace -% \end{macrocode} -% -% -% \begin{macrocode} -\def\showmarks{ - \toks@\expandafter{\topmark}\typeout{topmark:\the\toks@} - \toks@\expandafter{\firstmark}\typeout{firstmark:\the\toks@} - \toks@\expandafter{\botmark}\typeout{botmark:\the\toks@} -} -% \end{macrocode} -% -% \begin{macrocode} -\def\showfloatlists{{ - \let\@elt\@empty - \typeout{free:~\@freelist} - \typeout{active:~\@activelist} - \typeout{mvl:~\@mvllist} - \typeout{defer:~\area@ddd} - \typeout{assigned:} - \showfloatarea{t13} - \showfloatarea{t12} - \showfloatarea{t22} - \showfloatarea{t11} - \showfloatarea{t21} - \showfloatarea{t31} - \showfloatarea{b11} - \showfloatarea{b21} - \showfloatarea{b31} - \edef\@tempa{currbox\expandafter\strip@prefix\meaning\@currbox>\space - this@float\expandafter\strip@prefix\meaning\this@float@box>} - \show\@tempa}} - -\def\showfloatarea#1{ - \@ifundefined{area@#1}{} - {\expandafter - \ifx\csname area@#1\endcsname\@empty - \else - \typeout{~\space\space #1:~\csname area@#1\endcsname} - \fi - } -} -% \end{macrocode} -% -% \begin{macrocode} -%<*trace> -\def \@tracemessage #1{% - \begingroup\let\@elt\space\typeout{:~\tf@indent~#1}\endgroup} -% \end{macrocode} -% -% \begin{macrocode} -\let\tf@indent\@empty -% \end{macrocode} -% -% \begin{macrocode} -\def\@tracepush#1{% - \tr@ce{entering~#1} - \xdef\tf@indent{-\tf@indent}} -% \end{macrocode} -% -% \begin{macrocode} -\def\@tracepop#1{% - \tr@ce{leaving~#1} - \xdef\tf@indent{\expandafter\@gobble\tf@indent}} -% \end{macrocode} -% -% \begin{macrocode} -\def \tracefloats{\global\let \tr@ce \@tracemessage} -% \end{macrocode} -% -% \begin{macrocode} -\def \notrace {\global\let \tr@ce \@gobble} -%\notrace -% \end{macrocode} -% -% \begin{macrocode} -% \end{macrocode} -% -% \begin{macrocode} -\def\traceonly#1{ - \notrace - \def\@trace@command{#1} - \gdef\@tracepush##1{ - \def\@trace@this{##1} - \ifx\@trace@this\@trace@command - \global\let\@this@tf@indent\tf@indent - \tracefloats - \tr@ce{entering~##1} - \fi - \xdef\tf@indent{-\tf@indent}} - \def\@tracepop##1{ - \tr@ce{leaving~##1} - \xdef\tf@indent{\expandafter\@gobble\tf@indent} - \ifx\@this@tf@indent\tf@indent - \global\let\@this@tf@indent\relax - \notrace - \fi} -} -% \end{macrocode} -% -% \begin{macrocode} -\tracefloats -% \end{macrocode} -% -% \begin{macrocode} -\def \@traceval #1{\tr@ce{\string #1~=~\the #1}} -%</trace> -%<-trace>\let\tr@ce\@gobble -% \end{macrocode} -% -% \begin{macrocode} -%<*progress> -\def \progress #1{\message{#1}} -\def \progress@separator{ - \progress{=============================== - ========================================^^J}} -\def \progress@nl #1{\progress{~ #1^^J}} -\def \progress@failed #1{\progress@nl{ ->~ failed:~ #1}} -%</progress> -% \end{macrocode} diff --git a/Master/texmf-dist/source/latex3/xor/xo.ins b/Master/texmf-dist/source/latex3/xor/xo.ins deleted file mode 100644 index be726b76dfa..00000000000 --- a/Master/texmf-dist/source/latex3/xor/xo.ins +++ /dev/null @@ -1,40 +0,0 @@ -% -% $Id: xo.ins,v 1.4 2000/08/05 09:43:49 latex3 Exp $ - -\input docstrip -\keepsilent -\askforoverwritefalse - -\preamble - -Not for distribution - -(C) Copyright 1999-2000 Frank Mittelbach, David Carlisle, Chris Rowley -All rights reserved. - -Not for general distribution. In its present form it is not allowed -to put this package onto CD or an archive without consulting the -the authors. -\endpreamble - - - -\generate{% - \file{xmarks.sty}{\from{xmarks.dtx}{package}} - \file{xo-alloc.sty}{\from{xo-alloc.dtx}{package}} - \file{xo-capt.sty}{\from{xo-capt.dtx}{package}} - \file{xo-final.sty}{\from{xo-final.dtx}{package}} - \file{xo-float.sty}{\from{xo-float.dtx}{package}} - \file{xo-grid.sty}{\from{xo-grid.dtx}{package}} - \file{xo-here.sty}{\from{xo-here.dtx}{package}} - \file{xo-new.sty}{\from{xo-new.dtx}{package}} - \file{xo-or.sty}{\from{xo-or.dtx}{package}} - \file{xo-page.sty}{\from{xo-page.dtx}{package}} - \file{xo-place.sty}{\from{xo-place.dtx}{package}} - \file{xo-trace.sty}{\from{xo-trace.dtx}{package,trace}} - \file{xoutput.sty}{\from{xoutput.dtx}{package}} -} - -\endbatchfile - -% \file{xo-implement.sty}{\from{xo-implement-generic-algorithm.dtx}{package}} diff --git a/Master/texmf-dist/source/latex3/xor/xoprogress.ins b/Master/texmf-dist/source/latex3/xor/xoprogress.ins deleted file mode 100644 index 307853273dd..00000000000 --- a/Master/texmf-dist/source/latex3/xor/xoprogress.ins +++ /dev/null @@ -1,40 +0,0 @@ -% -% $Id: xoprogress.ins,v 1.3 2000/08/04 15:54:51 latex3 Exp $ - -\input docstrip -\keepsilent -\askforoverwritefalse - -\preamble - -Not for distribution - -(C) Copyright 1999-2000 Frank Mittelbach, David Carlisle, Chris Rowley -All rights reserved. - -Not for general distribution. In its present form it is not allowed -to put this package onto CD or an archive without consulting the -the authors. -\endpreamble - - - -\generate{% - \file{xmarks.sty}{\from{xmarks.dtx}{package}} - \file{xo-alloc.sty}{\from{xo-alloc.dtx}{package,progress}} - \file{xo-capt.sty}{\from{xo-capt.dtx}{package,progress}} - \file{xo-final.sty}{\from{xo-final.dtx}{package,progress}} - \file{xo-float.sty}{\from{xo-float.dtx}{package,progress}} - \file{xo-grid.sty}{\from{xo-grid.dtx}{package,progress}} - \file{xo-here.sty}{\from{xo-here.dtx}{package,progress}} - \file{xo-new.sty}{\from{xo-new.dtx}{package,progress}} - \file{xo-or.sty}{\from{xo-or.dtx}{package,progress}} - \file{xo-page.sty}{\from{xo-page.dtx}{package,progress}} - \file{xo-place.sty}{\from{xo-place.dtx}{package,progress}} - \file{xo-trace.sty}{\from{xo-trace.dtx}{package,progress,trace}} - \file{xoutput.sty}{\from{xoutput.dtx}{package,progress}} -} - -\endbatchfile - -% \file{xo-implement.sty}{\from{xo-implement-generic-algorithm.dtx}{package,progress}} diff --git a/Master/texmf-dist/source/latex3/xor/xotrace.ins b/Master/texmf-dist/source/latex3/xor/xotrace.ins deleted file mode 100644 index 7c5f971dcce..00000000000 --- a/Master/texmf-dist/source/latex3/xor/xotrace.ins +++ /dev/null @@ -1,40 +0,0 @@ -% -% $Id: xotrace.ins,v 1.4 2000/08/04 15:47:48 latex3 Exp $ - -\input docstrip -\keepsilent -\askforoverwritefalse - -\preamble - -Not for distribution - -(C) Copyright 1999-2000 Frank Mittelbach, David Carlisle, Chris Rowley -All rights reserved. - -Not for general distribution. In its present form it is not allowed -to put this package onto CD or an archive without consulting the -the authors. -\endpreamble - - - -\generate{% - \file{xmarks.sty}{\from{xmarks.dtx}{package,trace}} - \file{xo-alloc.sty}{\from{xo-alloc.dtx}{package,trace}} - \file{xo-capt.sty}{\from{xo-capt.dtx}{package,trace}} - \file{xo-final.sty}{\from{xo-final.dtx}{package,trace}} - \file{xo-float.sty}{\from{xo-float.dtx}{package,trace}} - \file{xo-grid.sty}{\from{xo-grid.dtx}{package,trace}} - \file{xo-here.sty}{\from{xo-here.dtx}{package,trace}} - \file{xo-new.sty}{\from{xo-new.dtx}{package,trace}} - \file{xo-or.sty}{\from{xo-or.dtx}{package,trace}} - \file{xo-page.sty}{\from{xo-page.dtx}{package,trace}} - \file{xo-place.sty}{\from{xo-place.dtx}{package,trace}} - \file{xo-trace.sty}{\from{xo-trace.dtx}{package,trace}} - \file{xoutput.sty}{\from{xoutput.dtx}{package,trace}} -} - -\endbatchfile - -% \file{xo-implement.sty}{\from{xo-implement-generic-algorithm.dtx}{package,trace}} diff --git a/Master/texmf-dist/source/latex3/xor/xoutput.drv b/Master/texmf-dist/source/latex3/xor/xoutput.drv deleted file mode 100644 index ee33688cd25..00000000000 --- a/Master/texmf-dist/source/latex3/xor/xoutput.drv +++ /dev/null @@ -1,144 +0,0 @@ -\def\rcsdata#1: #2,v #3${ - \def\rcsdata{#2 #3}} -\rcsdata$Id: xoutput.drv,v 1.11 2000/08/04 16:42:11 latex3 Exp $ - -\documentclass[a4paper]{ltxdoc} - -\usepackage{hyperref} - -%\usepackage{trace,xoutput} - -\CodelineIndex -\EnableCrossrefs - -\setcounter{IndexColumns}{2} - -\DoNotIndex{\@elt,\@ne,\@tracepush,\@tracepop,\@empty,\@namedef} -\DoNotIndex{\@spaces} -\DoNotIndex{\advance,\aftergroup,\begingroup,\bgroup,\box,\chardef,\copy,\count,\countdef} -\DoNotIndex{\count@,\csname,\def,\do,\dimen,\dimendef\endgroup,\egroup,\else,\endcsname,\expandafter} -\DoNotIndex{\fi,\gdef,\global,\if,\ifdim,\ifeof,\ifnum,\iftrue,\ifx} -\DoNotIndex{\immediate,\let,\long,\m@ne,\mathchardef,\meaning,\message,\multiply} -\DoNotIndex{\noexpand,\read,\relax,\repeat,\setbox,\space,\string\the} -\DoNotIndex{\toks,\tr@ce,\tw@,\unskip,\unvbox,\unvcopy,\vadjust} -\DoNotIndex{\value,\vbox,\voidb@x,\vrule,\vskip,\vss,\wlog,\write,\z@} -\DoNotIndex{\hbox,\hrule,\ht,\dp,\wd,\ifinner} -\DoNotIndex{\RequirePackage,\typeout,\xdef,\tracingall} - - -\begin{document} - -\title{A new output routine for \LaTeX\thanks{\rcsdata}} -\author{\copyright\ Frank Mittelbach, David Carlisle and Chris Rowley} -\date{Started in 1996--7; first real implementation in Feb 2000 -} - -\maketitle -\tableofcontents - - -\iffalse - -\section{What has been done} - -To get a rough estimate of the work involved (and make me feel good) -look at the rcs change lines per file of the output routine -(as of June 21 2000) using: -\begin{verbatim} - for f in xo*dtx xo*tex ; do rlog $f ; done | \ - awk -f get-changes.awk |sort -\end{verbatim} - -\begin{scriptsize} -\begin{verbatim} -author: # changes # total lines # added lines # plus lines # minus lines -car2; 4 1.84332% 1907 7.21065% 773 7.97977% 1340 7.41684% -567 6.76611% -david; 51 23.5023% 3181 12.0278% 1935 19.9752% 2558 14.1584% -623 7.43437% -frank; 162 74.6544% 21359 80.7615% 6979 72.045% 14169 78.4248% --7190 85.7995% -\end{verbatim} -\end{scriptsize} - -\fi - -\section{xoutput} -\DocInput{xoutput.dtx} - -\section{Output Routine Tracing} -\DocInput{xo-trace.dtx} - -\newpage -\section{Output Routines} -\DocInput{xo-or.dtx} - -\newpage -\section{Interfacing Here Points} -\DocInput{xo-here.dtx} - -\newpage -\section{Float Placement Algorithm} -\DocInput{xo-place.dtx} - -\newpage -\section{Page Makeup} -\DocInput{xo-final.dtx} - -\newpage -\section{Page Setup Templates} -\DocInput{xo-page.dtx} - -\newpage -\section{Float Environments} -\DocInput{xo-float.dtx} - -\section{Captions} -\DocInput{xo-capt.dtx} - -\section{Allocations} -\DocInput{xo-alloc.dtx} - -\section{Redefinitions for Grid Design} -\DocInput{xo-grid.dtx} - -\section{New stuff that needs merging (or cleanup)} -\DocInput{xo-new.dtx} - -\newpage - -\PrintIndex - -\typeout{=====================================================================} -\typeout{} -\typeout{To get proper index run the document using:} -\typeout{} -\typeout{latex xoutput.drv ; makeindex -s gind.ist xoutput ; latex xoutput.drv} -\typeout{} -\typeout{=====================================================================} - -\end{document} - -% $Log: xoutput.drv,v $ -% Revision 1.11 2000/08/04 16:42:11 latex3 -% *** empty log message *** -% -% Revision 1.10 2000/07/30 18:06:52 latex3 -% added xo-grid.dtx -% -% Revision 1.9 2000/06/15 09:34:37 latex3 -% use .dtx not .sty -% -% Revision 1.8 2000/04/21 19:09:14 latex3 -% added xo-here -% -% Revision 1.7 2000/04/07 07:29:56 latex3 -% added index -% -% Revision 1.6 2000/03/16 10:28:29 latex3 -% adding index -% -% Revision 1.5 2000/03/09 14:44:31 latex3 -% *** empty log message *** -% -% Revision 1.4 2000/03/05 19:42:59 latex3 -% new sections -% diff --git a/Master/texmf-dist/source/latex3/xor/xoutput.dtx b/Master/texmf-dist/source/latex3/xor/xoutput.dtx deleted file mode 100644 index 6f0467022cc..00000000000 --- a/Master/texmf-dist/source/latex3/xor/xoutput.dtx +++ /dev/null @@ -1,78 +0,0 @@ -% \iffalse -%% -%% (C) Copyright 1999-2000 Frank Mittelbach, David Carlisle, Chris Rowley -%% All rights reserved. -%% -%% Not for general distribution. In its present form it is not allowed -%% to put this package onto CD or an archive without consulting the -%% the authors. -%% -% \fi -% - -% \begin{macrocode} -\def\@tempa#1: #2.dtx,v #3 #4 #5 #6 #7${ - \ProvidesPackage{#2}[#4 #3 #5 #6]} -\@tempa$Id: xoutput.dtx,v 1.13 2000/08/11 07:14:49 latex3 Exp $ -% \end{macrocode} -% -% \begin{macrocode} -\RequirePackage{ - ldcsetup, - template, - xmarks, - xparse, - xo-trace,xo-or, - xo-here, - xo-place,xo-page,xo-float,xo-capt,xo-final, - xo-alloc, - xo-new -} -% \end{macrocode} -% - - -% Ignore white space in this package. -% \begin{macrocode} -\IgnoreWhiteSpace -% \end{macrocode} -% -% -% -% -% \endinput -\endinput -% -% $Log: xoutput.dtx,v $ -% Revision 1.13 2000/08/11 07:14:49 latex3 -% added header -% -% Revision 1.12 2000/07/18 21:05:43 latex3 -% removed initialisations -% -% Revision 1.11 2000/07/12 19:44:58 latex3 -% removed some commented out code -% -% Revision 1.10 2000/06/13 21:22:29 latex3 -% turned into a dtx file -% -% Revision 1.9 2000/04/21 19:06:01 latex3 -% removed old initialisation -% added xo-here -% -% Revision 1.8 2000/03/31 17:00:18 latex3 -% fixed rcs log -% -% Revision 1.7 2000/03/22 15:53:39 latex3 -% added xparse -% -% Revision 1.6 2000/02/26 18:26:26 david -% xo-alloc and xo-new added -% -% Revision 1.5 2000/02/13 21:58:07 latex3 -% oops, my rcs again (probably something that will only show up here -% but to ensure that everything is fine I add an \endinput) -% -% Revision 1.4 2000/02/13 21:33:05 latex3 -% added xo-place (float trial placement tests) -% diff --git a/Master/texmf-dist/tex/latex3/xor/xmarks.sty b/Master/texmf-dist/tex/latex3/xor/xmarks.sty deleted file mode 100644 index c452a6fd060..00000000000 --- a/Master/texmf-dist/tex/latex3/xor/xmarks.sty +++ /dev/null @@ -1,227 +0,0 @@ -%% -%% This is file `xmarks.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% xmarks.dtx (with options: `package') -%% -%% Not for distribution -%% -%% (C) Copyright 1999-2000 Frank Mittelbach, David Carlisle, Chris Rowley -%% All rights reserved. -%% -%% Not for general distribution. In its present form it is not allowed -%% to put this package onto CD or an archive without consulting the -%% the authors. -%% -%% (C) Copyright 1999 Frank Mittelbach -%% All rights reserved. -%% -%% Not for general distribution. In its present form it is not allowed -%% to put this package onto CD or an archive without consulting the -%% the authors. -%% -\def\next#1: #2.dtx,v #3 #4 #5 #6 #7$#8{ -\ProvidesPackage{#2} - [#4 #3 #8 (#6)]} -\next$Id: xmarks.dtx,v 1.6 2000/06/13 20:47:23 latex3 Exp $ - {multiple marks} -\RequirePackage{ldcsetup} -\IgnoreWhiteSpace -\long\def\@firstofthree#1#2#3{#1} -\long\def\@secondofthree#1#2#3{#2} -\long\def\@thirdofthree#1#2#3{#3} -\def \tlp@to@str@N {\expandafter \tlp@to@str@aux \meaning} -\def \tlp@to@str@aux #1>{} -\def \tlp@to@str@c #1 {\expandafter \tlp@to@str@N \csname#1\endcsname} -\def\queue@new@c#1{\@namedef{#1}{}} -\def\queue@gadd@Nn#1#2{\expandafter\gdef\expandafter#1\expandafter - {#1\queue@elt#2\queue@eelt} -} -\def\queue@gadd@cn#1{\expandafter\queue@gadd@Nn\csname#1\endcsname} -\def\queue@top@NN#1#2{ - \queue@empty@err@N#1 - \expandafter\queue@top@split@w#1\q@stop{\def#2} -} -\def\queue@top@split@w\queue@elt#1\queue@eelt#2\q@stop#3{#3{#1}} -\def\queue@top@cN#1{\expandafter\queue@top@NN\csname#1\endcsname} -\def \queue@pop@aux@nnNN #1#2#3{ - \queue@empty@err@N #3 - \expandafter\queue@pop@aux@w #3\q@stop #1#2#3} -\def \queue@pop@aux@w \queue@elt#1\queue@eelt - #2\q@stop #3#4#5#6{#3#5{#2}#4#6{#1}} -\def \queue@gpop@NN #1#2{\queue@pop@aux@nnNN \gdef \def #1 #2 -} -\def \queue@gpop@cN #1{\expandafter\queue@gpop@NN\csname#1\endcsname} -\def\queue@empty@err@N #1{\ifx#1\@empty \ERROR \fi} -\def \quark@new@N #1{\def #1{#1}} -\quark@new@N \q@stop -\quark@new@N \q@no@value -\quark@new@N \q@nil -\quark@new@N\q@error -\quark@new@N\q@mark -\def \quark@if@no@value@NTF #1{ - \ifx\q@no@value#1 - \expandafter\@firstoftwo - \else \expandafter\@secondoftwo \fi} -\def \quark@if@no@value@NF #1{\quark@if@no@value@NTF {#1}\@empty} -\def \quark@if@no@value@nTF #1{\gdef \@gtempa {#1} - \quark@if@no@value@NTF\@gtempa} -\def \quark@if@no@value@nF #1{\quark@if@no@value@nTF {#1}\@empty} -\def \quark@if@no@value@nT #1#2{\quark@if@no@value@nTF {#1} - {#2}\@empty} -\def\quark@if@nil@NTF#1{ - \ifx#1\q@nil - \expandafter\@firstoftwo - \else - \expandafter\@secondoftwo\fi} -\def \prop@new@N #1{\def #1{}} -\long\def \prop@put@NNn #1#2{\prop@split@aux@NNn - #1#2{\prop@put@aux@w {\def #1}#2}} -\long\def \prop@gput@NNn #1#2{\prop@split@aux@NNn - #1#2{\prop@put@aux@w {\gdef #1}#2}} -\def \prop@gput@NNo #1#2#3{ - \expandafter\prop@gput@NNn \expandafter #1 \expandafter - #2 \expandafter { #3 } } -\def \prop@gput@cco #1#2#3{ - \expandafter\prop@gput@NNn \csname #1\expandafter\endcsname - \csname #2\expandafter\endcsname - \expandafter { #3 } } -\def \prop@gput@ccn #1#2{ - \expandafter\prop@gput@NNn \csname #1\expandafter\endcsname - \csname #2\endcsname - } -\long\def \prop@put@aux@w #1#2#3#4#5#6{ - \quark@if@no@value@nTF {#4} - {#1{#2{#6}#3}} - {\def\tmp@w ##1#2\q@no@value {#1{#3#2{#6}##1}} - \tmp@w #5}} -\long\def \prop@split@aux@NNn #1#2#3{ - \def\tmp@w ##1#2##2##3\q@stop {#3{##1}{##2}{##3}} - \expandafter\tmp@w #1#2\q@no@value \q@stop} -\long\def \prop@get@NNN #1#2{\prop@split@aux@NNn - #1#2\prop@get@aux@w} -\long\def \prop@get@aux@w #1#2#3#4{\def#4{#2}} -\let \prop@map@funct@Nn \@gobbletwo -\def \prop@map@NN #1#2{ - \let \prop@map@funct@Nn #2 - \expandafter\prop@map@aux@w #1\q@stop \q@stop} -\def \prop@map@aux@w #1#2{ - \ifx #1\q@stop \else - \prop@map@funct@Nn #1{#2} - \expandafter\prop@map@aux@w - \fi} -\def \prop@map@cN #1{ - \expandafter \prop@map@NN \csname #1\endcsname } -\def\mark@new#1{ - \newcommand* #1 {{}{}{}} - \queue@new@c{\string#1@seq} - \prop@gput@NNn\mark@last@plist#1{1} - \prop@gput@NNn\mark@curr@plist#1{0} - \mark@put@Nn#1{}% - \expandafter\g@addto@macro\expandafter\mark@save@state\expandafter{% - \expandafter\global\expandafter\let - \csname saved\string#1@seq\expandafter\endcsname - \csname\string#1@seq\endcsname} - \expandafter\g@addto@macro\expandafter\mark@restore@state@internal\expandafter{% - \expandafter\global\expandafter\let - \csname\string#1@seq\expandafter\endcsname - \csname saved\string#1@seq\endcsname} -} -\def\mark@save@state{% - \global\let\saved@mark@curr@plist\mark@curr@plist - \global\let\saved@mark@last@plist\mark@last@plist} -\def\mark@restore@state@internal{% - \global\let\mark@curr@plist\saved@mark@curr@plist - \global\let\mark@last@plist\saved@mark@last@plist} -\def\mark@restore@state#1{% - \mark@restore@state@internal - \hbox{}% - \@temptokena\expandafter{\mark@last@plist}% - \mark - {\the\@temptokena} - \penalty-20203\relax - \global\output{% - \ifnum-20203=\outputpenalty\else \ERROR \fi - \global\setbox\@cclv\box\voidb@x - #1% - }% -} -\def\mark@put@Nn#1{% % wtest hack } - \@temptokena\expandafter{\mark@curr@plist} - \prop@get@NNN\mark@curr@plist#1\@tempa - \@tempcnta\@tempa - \advance\@tempcnta\@ne - \expandafter - \prop@gput@NNn\expandafter\mark@curr@plist\expandafter#1\expandafter - {\the\@tempcnta} - \@temptokena\expandafter{\mark@curr@plist} - \mark - {\the\@temptokena} - \queue@gadd@cn{\string#1@seq}% -} -\def\mark@put@Nnn#1#2#3{ - \mark@put@Nn#1{#2#3}} -\def\mark@update@structure{ - \prop@map@NN\mark@last@plist\mark@retrieve@single@Nn - \expandafter\gdef\expandafter\mark@last@plist\expandafter{\botmark} -} -\def\mark@retrieve@single@Nn#1#2{ - \@temptokena\expandafter{\botmark}% - \prop@get@NNN\botmark#1\@tempa - \@tempcnta\@tempa - \advance\@tempcnta-#2\relax - \ifcase\@tempcnta - \queue@top@cN{\string#1@seq}\@tempa - \let\@tempb\@tempa - \let\@tempc\@tempa - \or - \queue@gpop@cN{\string#1@seq}\@tempa - \queue@top@cN{\string#1@seq}\@tempb - \let\@tempc\@tempb - \else - \queue@gpop@cN{\string#1@seq}\@tempa - \queue@top@cN{\string#1@seq}\@tempb - \@whilenum \@tempcnta>\@ne\do - {\advance\@tempcnta\m@ne - \queue@gpop@cN{\string#1@seq} - \@tempc - } - \queue@top@cN{\string#1@seq}\@tempc - \fi - \@temptokena\expandafter{\@tempa} - \@temptokenb\expandafter{\@tempb} - \@temptokenc\expandafter{\@tempc} - \edef#1{{\the\@temptokena}{\the\@temptokenb}{\the\@temptokenc}} -} -\newtoks\@temptokenb -\newtoks\@temptokenc -\prop@new@N\mark@curr@plist -\prop@new@N\mark@last@plist -\def\mark@get@first@N{% - \expandafter\@secondofthree} -\def\mark@get@last@N{% - \expandafter\@thirdofthree} -\def\mark@get@previous@N{% - \expandafter\@firstofthree} -\def\mark@get@first@N{% - \expandafter\@secondofthree} -\def\mark@get@last@N{% - \expandafter\@thirdofthree} -\def\mark@get@previous@N{% - \expandafter\@firstofthree} -\def\DeclareMarkType#1{ - \expandafter\mark@new\csname mark@#1\endcsname} -\def\PutMark#1{ - \@ifundefined{mark@#1}{\ERROR}{} - \expandafter\mark@put@Nn\csname mark@#1\endcsname} -\def\PreviousMark#1{ - \expandafter\mark@get@previous@N\csname mark@#1\endcsname} -\def\FirstMark#1{ - \expandafter\mark@get@first@N\csname mark@#1\endcsname} -\def\LastMark#1{ - \expandafter\mark@get@last@N\csname mark@#1\endcsname} -\endinput -%% -%% End of file `xmarks.sty'. diff --git a/Master/texmf-dist/tex/latex3/xor/xo-alloc.sty b/Master/texmf-dist/tex/latex3/xor/xo-alloc.sty deleted file mode 100644 index fe85bf2bbbf..00000000000 --- a/Master/texmf-dist/tex/latex3/xor/xo-alloc.sty +++ /dev/null @@ -1,73 +0,0 @@ -%% -%% This is file `xo-alloc.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% xo-alloc.dtx (with options: `package,progress') -%% -%% Not for distribution -%% -%% (C) Copyright 1999-2000 Frank Mittelbach, David Carlisle, Chris Rowley -%% All rights reserved. -%% -%% Not for general distribution. In its present form it is not allowed -%% to put this package onto CD or an archive without consulting the -%% the authors. -%% -%% (C) Copyright 1999-2000 Frank Mittelbach, David Carlisle, Chris Rowley -%% All rights reserved. -%% -%% Not for general distribution. In its present form it is not allowed -%% to put this package onto CD or an archive without consulting the -%% the authors. -%% -\def\@tempa#1: #2.dtx,v #3 #4 #5 #6 #7${ - \ProvidesPackage{#2}[#4 #3 #5 #6]} -\@tempa$Id: xo-alloc.dtx,v 1.4 2000/08/11 07:13:34 latex3 Exp $ -\IgnoreWhiteSpace -\chardef\@kludgeins="FC\relax -\global\dimen\@kludgeins \maxdimen -\global\count\@kludgeins 1000 -\global\dimen\@kludgeins\z@ -\global\skip\@kludgeins\z@ -\global\setbox\@kludgeins\box\voidb@x -\insc@unt"FC\relax -\def\newcount{\alloc@0\count\countdef\@kludgeins} -\def\newdimen{\alloc@1\dimen\dimendef\@kludgeins} -\def\newskip{\alloc@2\skip\skipdef\@kludgeins} -\def\newtoks{\alloc@5\toks\toksdef\insc@unt} -\def\newinsert#1{\global\advance\insc@unt \m@ne - \ch@ck4\insc@unt\box - \ch@ck5\insc@unt\toks - \allocationnumber\insc@unt - \global\chardef#1\allocationnumber - \wlog{\string#1=\string\insert\the\allocationnumber}} -\newinsert\bx@A -\newinsert\bx@B -\newinsert\bx@C -\newinsert\bx@D -\newinsert\bx@E -\newinsert\bx@F -\newinsert\bx@G -\newinsert\bx@H -\newinsert\bx@I -\newinsert\bx@J -\newinsert\bx@K -\newinsert\bx@L -\newinsert\bx@M -\newinsert\bx@N -\newinsert\bx@O -\newinsert\bx@P -\newinsert\bx@Q -\newinsert\bx@R -\def\@allocating@next#1#2{ - \ifx#2\@empty - \xdef#2{\noexpand\@elt\csname bx@\the\insc@unt\endcsname} - \expandafter\newinsert\csname bx@\the\insc@unt\endcsname - \fi - \expandafter\@xnext #2\@@#1#2} - -\endinput -%% -%% End of file `xo-alloc.sty'. diff --git a/Master/texmf-dist/tex/latex3/xor/xo-capt.sty b/Master/texmf-dist/tex/latex3/xor/xo-capt.sty deleted file mode 100644 index 07326f39a58..00000000000 --- a/Master/texmf-dist/tex/latex3/xor/xo-capt.sty +++ /dev/null @@ -1,157 +0,0 @@ -%% -%% This is file `xo-capt.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% xo-capt.dtx (with options: `package,progress') -%% -%% Not for distribution -%% -%% (C) Copyright 1999-2000 Frank Mittelbach, David Carlisle, Chris Rowley -%% All rights reserved. -%% -%% Not for general distribution. In its present form it is not allowed -%% to put this package onto CD or an archive without consulting the -%% the authors. -%% -%% (C) Copyright 1999-2000 Frank Mittelbach, David Carlisle, Chris Rowley -%% All rights reserved. -%% -%% Not for general distribution. In its present form it is not allowed -%% to put this package onto CD or an archive without consulting the -%% the authors. -%% - -\def\@tempa#1: #2.dtx,v #3 #4 #5 #6 #7${ - \ProvidesPackage{#2}[#4 #3 #5 #6]} -\@tempa$Id: xo-capt.dtx,v 1.13 2000/08/11 07:14:03 latex3 Exp $ -\IgnoreWhiteSpace -\def\caption{\@dblarg{\@caption\float@type}} - -\long\def\@caption#1[#2]#3{% - \unskip - \addcontentsline{\csname toc@extension@#1\endcsname}{#1} - {\protect\numberline{\csname the\float@counter\endcsname} - {\ignorespaces #2}} - \global\toks\@currbox{#3} - \ignorespaces - } -\def\append@caption@to@float{ - \typeset@some@floatbox - \this@type\this@area - \this@float@box{\csname caption@\this@type\endcsname} - \this@usercnt\this@caption\this@span@number -} -\def\append@here@caption@to@float{ - \typeset@some@floatbox - \here@type{h\the\curr@col@count 1} - \here@float@box{\csname caption@\here@type\endcsname} - \here@usercnt\here@caption\here@span@number -} -\def\typeset@this@float@and@caption{ - \append@caption@to@float - \box\this@captioned@float -} -\def\typeset@some@floatbox#1#2{ % type area - - \IfExistsInstanceTF{buildfloat} - { #1 - #2 } - {\def\use@instance@named{#1 - #2}} - { - \IfExistsInstanceTF{buildfloat} - { #2 } - {\def\use@instance@named{#2}} - { - \IfExistsInstanceTF{buildfloat} - { #1 } - {\let\use@instance@named#1 } % we know this is a token - {\def\use@instance@named{default}} - } - } - \UseInstance{buildfloat}\use@instance@named -} -\DeclareTemplateType{buildfloat}{5} -\DeclareTemplate{buildfloat}{centeredabove}{5} - { - body-caption-sep =l [10pt] \belowcaptionskip, - } - { - \DoParameterAssignments - - \@parboxrestore - - \hsize=#5\columnwidth - - \global\setbox\this@captioned@float\vbox{ - \sbox\@tempboxb{#2~ #3:~ #4} - \ifdim \wd\@tempboxb >\hsize - #2~ #3:~ #4\par - \else - \hb@xt@\hsize{\hfil\box\@tempboxb\hfil}% - \fi - \vskip\belowcaptionskip - \centerline{ - \copy#1 - } - \kern\z@ - } - } -\newbox\@tempboxb -\DeclareTemplate{buildfloat}{centeredbelow}{5} - { - body-caption-sep =l [10pt] \abovecaptionskip, - } - { - \DoParameterAssignments - - \@parboxrestore - - \hsize=#5\columnwidth - - \global\setbox\this@captioned@float\vbox{ - \centerline{\copy#1} - \vskip\abovecaptionskip - \sbox\@tempboxb{#2~ #3:~ #4} - \ifdim \wd\@tempboxb >\hsize - #2~ #3:~ #4\par - \else - \hb@xt@\hsize{\hfil\box\@tempboxb\hfil}% - \fi - } - } -\DeclareTemplate{buildfloat}{bottomright}{5} - { - body-caption-sep =l [10pt] \abovecaptionskip, - } - { - \DoParameterAssignments - - \@parboxrestore - - \hsize=#5\columnwidth - - \global\setbox\this@captioned@float\vbox{ - \@@line{\hss\vbox{\copy#1\kern0pt} - \rlap{ - \hskip\abovecaptionskip - \parbox[b]{\marginparwidth - +(#5\columnwidth-\wd#1)/2}{ - \raggedright - #2~ #3:~ #4 - } - }\hss - } - \kern0pt - } - } -\DeclareInstance{buildfloat}{default}{centeredabove}{} - -\DeclareInstance{buildfloat}{figure}{centeredbelow}{} - -\DeclareInstance{buildfloat}{t31}{bottomright}{} -\DeclareInstance{buildfloat}{t22}{bottomright}{} -\DeclareInstance{buildfloat}{t13}{bottomright}{} -\endinput -%% -%% End of file `xo-capt.sty'. diff --git a/Master/texmf-dist/tex/latex3/xor/xo-final.sty b/Master/texmf-dist/tex/latex3/xor/xo-final.sty deleted file mode 100644 index 56c6b90469c..00000000000 --- a/Master/texmf-dist/tex/latex3/xor/xo-final.sty +++ /dev/null @@ -1,435 +0,0 @@ -%% -%% This is file `xo-final.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% xo-final.dtx (with options: `package,progress') -%% -%% Not for distribution -%% -%% (C) Copyright 1999-2000 Frank Mittelbach, David Carlisle, Chris Rowley -%% All rights reserved. -%% -%% Not for general distribution. In its present form it is not allowed -%% to put this package onto CD or an archive without consulting the -%% the authors. -%% -%% (C) Copyright 1999-2000 Frank Mittelbach, David Carlisle, Chris Rowley -%% All rights reserved. -%% -%% Not for general distribution. In its present form it is not allowed -%% to put this package onto CD or an archive without consulting the -%% the authors. -%% -\def\@tempa#1: #2.dtx,v #3 #4 #5 #6 #7${ - \ProvidesPackage{#2}[#4 #3 #5 #6]} -\@tempa$Id: xo-final.dtx,v 1.20 2000/08/11 07:14:09 latex3 Exp $ -\IgnoreWhiteSpace -\def\final@column@with@floats { - \setbox\@outputbox \box\@cclv - - \expandafter - \add@floats@top - \csname area@t1\the\curr@col@count\endcsname - - \ifvoid\footins - \else - \setbox\@outputbox \vbox { - \boxmaxdepth \@maxdepth - \dimen@\dp\@outputbox - \unvbox \@outputbox - \vskip-\dimen@ - \vskip \skip\footins - \color@begingroup - \normalcolor - \footnoterule - \unvbox \footins - \color@endgroup - } - \fi - - \expandafter - \add@floats@bottom - \csname area@b1\the\curr@col@count\endcsname - - \global\setbox\csname col@box@\the\curr@col@count\endcsname - % \vbox { % this should one day become \@colht - \vbox { % this should one day become \@colht - % or else - \@texttop - \dimen@ \dp\@outputbox - \unvbox \@outputbox - \vskip -\dimen@ - \@textbottom - }% - \global \maxdepth \@maxdepth -} -\def\final@column { - \setbox\@outputbox \box\@cclv - - \ifvoid\footins - \else - \setbox\@outputbox \vbox { - \boxmaxdepth \@maxdepth - \dimen@\dp\@outputbox - \unvbox \@outputbox - \vskip-\dimen@ - \vskip \skip\footins - \color@begingroup - \normalcolor - \footnoterule - \unvbox \footins - \color@endgroup - } - \fi - - \global\setbox\csname col@box@\the\curr@col@count\endcsname - \vbox { % this should one day become \@colht - % or else - \@texttop - \dimen@ \dp\@outputbox - \unvbox \@outputbox - \vskip -\dimen@ - \@textbottom - }% - \global \maxdepth \@maxdepth -} -\let \produce@final@column \final@column -\def\add@floats@top #1{ - \ifx#1\@empty - \else - \setbox\@tempboxa \vbox{} - \let \@elt \@comflelt #1 - \setbox\@outputbox \vbox{ - \boxmaxdepth \maxdepth - \unvbox\@tempboxa - \vskip -\pagesetup@float@float@sep - \topfigrule - \vskip \pagesetup@float@text@sep - \unvbox\@outputbox - } - \let\@elt\relax - \release@floats#1 - \fi -} -\def\add@floats@bottom#1{ - \ifx#1\@empty - \else - \setbox\@tempboxa \vbox{} - \let\@elt\@comflelt - #1 - \setbox\@outputbox \vbox{ - \unvbox\@outputbox - \vskip \pagesetup@float@text@sep - \botfigrule - \unvbox\@tempboxa - \vskip -\pagesetup@float@float@sep - } - \let\@elt\relax - \release@floats#1 - \fi -} -\mathchardef\absolute@page@number\c@page - -\def\produce@final@page{ - \begingroup % the \endgroup is put in by \aftergroup - \@resetactivechars - \@parboxrestore - \let \protect \noexpand - \do@floats - \shipout \hbox { % NOTE: an hbox now! - \set@typeset@protect - \aftergroup \endgroup - \aftergroup \set@typeset@protect - \make@page@box - \box \page@box - } - \count@\absolute@page@number - \advance\count@\@ne - \global\advance\c@page\@ne - \global\mathchardef\absolute@page@number\count@ -} - -\newbox \page@box -\def\mbox@addtopage (#1,#2)#3{% - \global \setbox\page@box - \hbox { - \unhbox \page@box - \mbox@put (#1,#2) {#3} - } -} -\def\box@addtopage (#1,#2)#3{% - \mbox@addtopage (#1,#2){\box #3} -} -\def \make@page@box { - \mbox@addtopage (\pagebodylefthpos, \headheight) - {page:~\thepage} - \forall@columns { - \expandafter \xdef - \csname stack@level@\the\curr@col@count \endcsname - {\pagebodytopvpos} - } - \stack@top@areas - \add@columns - \stack@bot@areas -} -\def \add@columns@botaligned { - \setlength \@tempdima {\pagebodylefthpos} - \forall@columns { - \box@addtopage ( \@tempdima, \pagebodybotvpos ) - {\csname col@box@\the\curr@col@count \endcsname} - \setlength \@tempdima {\@tempdima + \columnwidth + \columnsep} - } -} -\def \add@columns@topstacked { - \gsetmlength \cuur@col@pos {\pagebodylefthpos} - \forall@columns { - \gsetmlength@c {stack@level@\the\curr@col@count} - { \csname stack@level@\the\curr@col@count \endcsname - + \expandafter - \ht \csname col@box@\the\curr@col@count \endcsname - } - \box@addtopage ( \cuur@col@pos, - \csname stack@level@\the\curr@col@count \endcsname ) - {\csname col@box@\the\curr@col@count \endcsname} - \gsetmlength \cuur@col@pos { \cuur@col@pos + \columnwidth + \columnsep} - } -} -\let \add@columns \add@columns@topstacked -\def\t@stack@area #1#2#3#4{ - #4 \@tempboxa - \@tempcnta #2 - \@tempcntb #3 \relax - \setlength \@tempdimb {\ht\@tempboxa + \dp\@tempboxa} - \loop - \@tempdima \csname stack@level@\the\@tempcntb \endcsname - \advance \@tempdima \@tempdimb - \expandafter - \xdef \csname stack@level@\the\@tempcntb \endcsname - { \the\@tempdima } - \advance \@tempcntb \@ne - \advance \@tempcnta \m@ne - \ifnum \@tempcnta > \z@ - \repeat - \setlength \@tempdima - {\pagebodylefthpos - \columndisplacement + \columndisplacement * #3} - \box@addtopage (\@tempdima,\csname stack@level@#3\endcsname) - \@tempboxa -} -\def\b@stack@area #1#2#3#4{ - #4 \@tempboxa - \setlength \@tempdima - {\pagebodylefthpos - \columndisplacement + \columndisplacement * #3} - \box@addtopage (\@tempdima,\csname stack@level@#3\endcsname) - \@tempboxa - \@tempcnta #2 - \@tempcntb #3 \relax - \setlength \@tempdimb {\ht\@tempboxa + \dp\@tempboxa} - \loop - \@tempdima \csname stack@level@\the\@tempcntb \endcsname - \advance \@tempdima -\@tempdimb - \expandafter - \xdef \csname stack@level@\the\@tempcntb \endcsname - { \the\@tempdima } - \advance \@tempcntb \@ne - \advance \@tempcnta \m@ne - \ifnum \@tempcnta > \@ne - \repeat -} -\def \stack@bot@areas { - \stack@areas@list b \pagebodybotvpos \pagebox@list@b -} -\def \stack@top@areas { - \stack@areas@list t \pagebodytopvpos \pagebox@list@t -} -\def \stack@areas@list #1#2#3 { - \ifx #3 \@empty - \else - \forall@columns { - \expandafter \xdef - \csname stack@level@\the\curr@col@count \endcsname - {#2} - } - \expandafter - \let \expandafter - \p@elt \csname #1@stack@area \endcsname - #3 - \fi -} -\def\make@area@floats@box #1#2 { - \setbox #2 \vbox{} - \def \@elt { \typeset@float@in@box {#2} } - \csname area@#1\endcsname - \let \@elt \relax - \expandafter - \release@floats - \csname area@#1\endcsname -} - -\def \box@decorate@bot #1 { - \setbox #1 \vbox{ - \vskip \pagesetup@float@text@sep - \botfigrule - \unvbox #1 - \vskip -\pagesetup@float@float@sep - } -} -\def \box@decorate@top #1 { - \setbox #1 \vbox{ - \unvbox #1 - \vskip -\pagesetup@float@float@sep - \topfigrule - \vskip \pagesetup@float@text@sep - } -} - -\def\@comflelt #1 { - \global \let \this@float@box #1 - \expandafter - \extract@this@float@actual@structure \the\toks #1 - \setbox\@tempboxa \vbox { - \unvbox\@tempboxa - \typeset@this@float@and@caption - } - } -\def\typeset@float@in@box #1 #2 { - \global \let \this@float@box #2 - \expandafter - \extract@this@float@actual@structure \the\toks #2 - \setbox #1 \vbox { - \unvbox #1 - \typeset@this@float@and@caption - } - } - -\def\pagebox@area #1#2#3 { - \expandafter - \let \expandafter - \this@list \csname area@#1\endcsname - \ifx \this@list \@empty - \else - \let \p@elt \relax - \@addto@pagebox@list {#3} - { \p@elt #1 { #2 {#1}} } - \fi -} -\def \@addto@pagebox@list #1#2 { - \@temptokena \expandafter\expandafter\expandafter - { \csname pagebox@list@#1 \endcsname - #2 - } - \expandafter - \xdef - \csname pagebox@list@#1 \endcsname - { \the\@temptokena } -} -\def\mbox@put (#1,#2)#3{% - \setbox\@tempboxa \hbox { - \lower #2 % thanks Don! - \hbox {\kern#1 #3\hss} - } - \wd \@tempboxa \z@ - \ht \@tempboxa \z@ - \dp \@tempboxa \z@ - \box\@tempboxa - } -\def\box@put (#1,#2)#3{% - \mbox@put (#1,#2) {\box #3} -} -\def\copy@put (#1,#2)#3{ - \mbox@put (#1,#2) {\copy #3} -} -\def \forall@areas #1 { - \def \area@elt ##1##2##3 { - \def \curr@area {##1##2##3} - \def \curr@pos {##1} - \def \curr@col {##3} - \def \curr@span {##2} - #1 - } - \used@areas@exec -} - -\def \make@useful@list@aux #1#2#3 { - \ifx #1 \relax - \else - \expandafter - \xdef \csname \temp@list@name @exec \endcsname - {\csname \temp@list@name @exec \endcsname \temp@list@elt #1#2#3 } - \expandafter - \make@useful@list@aux - \fi -} -\def \make@useful@list #1 #2 { - \edef \temp@list@name - {\expandafter \@gobble \string #1} - \def \temp@list@elt {#2} - \let #2 \relax - \expandafter - \let \csname \temp@list@name @exec \endcsname \@empty - \expandafter - \make@useful@list@aux #1\relax\relax\relax -} -\def\release@floats#1{ - \xdef \@freelist {\@freelist#1} - \global\let#1\@empty -} -\def \let@nc #1 #2 { - \expandafter - \let \expandafter - #1 \csname #2\endcsname -} -\def \let@cn #1 { - \expandafter - \let \csname #1\endcsname -} -\def \let@cc #1 { - \expandafter - \let@nc \csname #1\endcsname -} -\def \gsetmlength #1#2 { - \setlength \@tempdima {#2} - \xdef #1 {\the\@tempdima} -} -\def \gsetmlength@c #1#2 { - \setlength \@tempdima {#2} - \expandafter - \xdef \csname #1\endcsname - {\the\@tempdima} -} -\def \setmlength #1#2 { - \setlength \@tempdima {#2} - \edef #1 {\the\@tempdima} -} -\def \do@floats { - \make@useful@list \used@areas \area@elt - \let \pagebox@list@t \@empty - \let \pagebox@list@b \@empty - \forall@areas { - \expandafter - \pagebox@area - \expandafter - {\curr@area} \make@area@floats@box {\curr@pos} - } -} - -\AtBeginDocument { -%% vert - \setlength \@tempdima {\headheight + \headsep} - \xdef \pagebodytopvpos {\the\@tempdima} - - \setlength \@tempdima {\@tempdima + \textheight} - \xdef \pagebodybotvpos {\the\@tempdima} - -%% horiz - \setlength \@tempdima {\columnwidth + \columnsep} - \xdef \columndisplacement {\the\@tempdima} - - \def \pagebodylefthpos {\z@} % or whatever?) - -} - -\endinput -%% -%% End of file `xo-final.sty'. diff --git a/Master/texmf-dist/tex/latex3/xor/xo-float.sty b/Master/texmf-dist/tex/latex3/xor/xo-float.sty deleted file mode 100644 index 8fa26b5b30d..00000000000 --- a/Master/texmf-dist/tex/latex3/xor/xo-float.sty +++ /dev/null @@ -1,339 +0,0 @@ -%% -%% This is file `xo-float.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% xo-float.dtx (with options: `package,progress') -%% -%% Not for distribution -%% -%% (C) Copyright 1999-2000 Frank Mittelbach, David Carlisle, Chris Rowley -%% All rights reserved. -%% -%% Not for general distribution. In its present form it is not allowed -%% to put this package onto CD or an archive without consulting the -%% the authors. -%% -%% (C) Copyright 1999-2000 Frank Mittelbach, David Carlisle, Chris Rowley -%% All rights reserved. -%% -%% Not for general distribution. In its present form it is not allowed -%% to put this package onto CD or an archive without consulting the -%% the authors. -%% - -\def\@tempa#1: #2.dtx,v #3 #4 #5 #6 #7${ - \ProvidesPackage{#2}[#4 #3 #5 #6]} -\@tempa$Id: xo-float.dtx,v 1.32 2000/08/11 07:14:11 latex3 Exp $ -\IgnoreWhiteSpace -\def\@xfloat #1[#2]{% - \@nodocument - \def \@fps {#2} - \def \float@type {#1} - \expandafter \let \expandafter - \float@sequence@class \csname sequence@class@#1 \endcsname - \expandafter \let \expandafter - \float@counter \csname counter@#1 \endcsname - \refstepcounter\float@counter - \ifhmode - \@bsphack - \fi - \ifinner - \@parmoderr\@floatpenalty\z@ - \else - \@allocating@next\@currbox\@freelist - { - \global\advance\float@sequence@count\@ne - \expandafter\PutMark\expandafter\float@sequence@class\expandafter{ - \the\float@sequence@count} - \global\toks\@currbox{} - } - \fi - \global\let\@saved@label\@empty - \global \setbox\@currbox - \hbox \bgroup\color@begingroup - \normalcolor - \normalfont - \normalsize - \csname body@\float@type \endcsname - \ignorespaces} -\def \@endfloatbox{% - \unskip - \outer@nobreak - \color@endgroup - \egroup - \edef\@tempa{ - \global\toks\@currbox{ - {\the\toks\@currbox}{\SPANCNT} - {\@saved@label} - {\csname the\float@counter \endcsname} - {\@fps} - {\float@type} - {\the\float@sequence@count} - }} - \@tempa - \def\@tempa{h} - \ifx\@fps\@tempa - \setup@here@float - \else - \@cons\@activelist\@currbox - \fi -} - -\def\SPANCNT{} %%% do properly one day: David - -\newcount\float@sequence@count -\def\label#1{\@bsphack - \gdef\@saved@label{#1} - \protected@write\@auxout{}% - {\string\newlabel{#1}{{\@currentlabel}{\thepage}}}% - \@esphack} -\def\DeclareFloatType#1#2{ - \DeclareInstance{floattypesetup}{#1}{std} - { type-id = #1, #2 } - \UseInstance{floattypesetup}{#1} -} -\DeclareTemplateType{floattypesetup}{0} - -\DeclareTemplate{floattypesetup}{std}{0}{ - type-id =n \floattypesetup@id, - sequence-class-id =n \floattypesetup@class@id, - toc-extension =n \floattypesetup@toc@ext, - default-area-list =n \floattypesetup@area@list, - caption-text =n \floattypesetup@caption@text, - numbered-boolean =b @test, - numbered-id =n \floattypesetup@numbered@id, - numbered-within-id =n \floattypesetup@numbered@within@id, - numbered-action =f0 \floattypesetup@numbered@action, - body-decls =f0 \floattypesetup@body@decls, - - } - { - \let\floattypesetup@class@id\relax - \let\floattypesetup@numbered@id\relax - \let\floattypesetup@numbered@action\relax - \let\floattypesetup@body@decls\relax - \@testtrue % number by default - \def\floattypesetup@area@list{\known@areas} - \let\floattypesetup@caption@text\@empty - \let\floattypesetup@numbered@within@id\@empty - \def\floattypesetup@toc@ext{toc} % everything in here by default - \DoParameterAssignments - \ifx\floattypesetup@class@id\relax - \let\floattypesetup@class@id\floattypesetup@id - \fi - \if@test - \ifx\floattypesetup@numbered@id\relax - \let\floattypesetup@numbered@id\floattypesetup@id - \fi - \expandafter\ifx\csname c@\floattypesetup@numbered@id \endcsname - \relax - \ifx\floattypesetup@numbered@within@id\@empty - \newcounter\floattypesetup@numbered@id - \else - \newcounter\floattypesetup@numbered@id - [\floattypesetup@numbered@within@id] - \fi - \ifx\floattypesetup@numbered@action\relax - \else - \global\expandafter\let - \csname the\floattypesetup@numbered@id \endcsname - \floattypesetup@numbered@action - \fi - \fi - \fi - \expandafter - \xdef\csname \floattypesetup@id \endcsname - {\noexpand\@float{\floattypesetup@id}} - \global\expandafter \let \csname end\floattypesetup@id \endcsname - \end@float - \global\expandafter\let - \csname sequence@class@\floattypesetup@id \endcsname - \floattypesetup@class@id - \global\expandafter\let - \csname toc@extension@\floattypesetup@id \endcsname - \floattypesetup@toc@ext - \global\expandafter\let - \csname fps@\floattypesetup@id \endcsname - \floattypesetup@area@list - \global\expandafter\let - \csname caption@\floattypesetup@id \endcsname - \floattypesetup@caption@text - \global\expandafter\let - \csname counter@\floattypesetup@id \endcsname - \floattypesetup@numbered@id - \global\expandafter\let - \csname body@\floattypesetup@id \endcsname - \floattypesetup@body@decls - } -\def\DeclareFloatSequenceClass#1{ - \@ifundefined{mark@#1} - { - \DeclareMarkType{#1} - \@cons\float@classes@list{{#1}} - } - \ErrorAlreadyDefined -} -\let\float@classes@list\@empty -\expandafter\ifx\csname c@figure \endcsname \relax -\else - \let\c@figure\relax % thus new counter will be defined - \let\c@table \relax -\fi -\let\perhaps@write@placements@to@fpl@file\relax -\let\perhaps@write@to@fpl@file\@gobble -\let\perhaps@write@to@fpl@file\@gobble -\def\perhaps@write@placements@to@fpl@file@aux#1#2#3#4#5#6#7{ - \@spaces\@spaces Float:~#7~(#6~#4)~[#3]^^J} -\def\savefloatplacements{ - \newwrite\fpl@file - \immediate\openout\fpl@file\jobname.fpl - \def\perhaps@write@to@fpl@file{ - \immediate\write\fpl@file - } - \def\perhaps@write@placements@to@fpl@file{ - \def\@elt{\expandafter - \perhaps@write@placements@to@fpl@file@aux\the\toks} - \perhaps@write@to@fpl@file{ - ^^JPage:~\the\absolute@page@number\space (\the\c@page)^^J - \expandafter\@write@areas\used@areas\relax\relax\relax - } - \let\@elt\relax}} -\def\@write@areas#1#2#3{ - \ifx\relax#1 - \else - \expandafter\ifx\csname area@#1#2#3\endcsname\@empty - \else - \@spaces Area:~#1#2#3^^J\csname area@#1#2#3\endcsname - \fi - \expandafter\@write@areas - \fi} -\def\@write@areas#1#2#3{ - \ifx\relax#1 - \else - \@spaces Area:~#1#2#3^^J\csname area@#1#2#3\endcsname - \expandafter\@write@areas - \fi} -\def\readfloatplacements{ - \newread\fpc@file - \openin\fpc@file\jobname.fpc\relax - \ifeof\fpc@file - \PackageWarningNoLine{xo} - {No~\jobname.fpc:~using~automatic~float~placement} - \else - \let\get@fpc@page@data\get@fpc@page@data@fpc - \get@fpc@page@data - \let\try@float@pages\relax - \let\float@placement@loop\fpc@float@placement@loop - \fi -} -\def\fpc@float@placement@loop{ - \get@fpc@page@data - \global\let\best@trial\relax - \mark@restore@state{ - \unvcopy\@holdpg - \setup@best@column@or - } -} -\let\next@fpc@page\m@ne -\let\get@fpc@page@data\relax -\def\get@fpc@page@data@fpc{ - \let\@nextfpc\relax - \ifnum\next@fpc@page>\absolute@page@number - \else - \ifeof\fpc@file - \global\let\next@fpc@page\maxdimen - \else - \begingroup - \endlinechar`\ % - \catcode`\ 10\relax - \global\read\fpc@file~to~\@gtempa - \endgroup - \let\@nextfpc\get@fpc@page@data - \ifx\@gtempa\@empty - \else - \expandafter\parse@fpc\@gtempa\relax - \fi - \fi - \fi - \@nextfpc -} -\def\parse@fpc#1#2~#3~#4\relax{ - \ifx P#1 - \global\mathchardef\next@fpc@page#3\relax - \let\@nextfpc\relax - \else\ifx A#1 - \setup@this@area{#3} - \let\@nextfpc\get@fpc@page@data - \else\ifx F#1 - \ifx\this@area\fpc@here - \else - \begingroup - \count@#3\relax - \global\let\this@float@box\relax - \let\@elt\extract@float@by@number - \@activelist - \endgroup - \ifx\this@float@box\relax - \edef\fpc@list{\fpc@list#3,\this@area\relax} - \show\fpc@list - \else - \ifnum \this@area@span@number < - \if!\this@span@number! 1\else % big hack - \this@span@number \fi - \relax - \PackageError{xo} - {Float~ bigger~ than~ target~ area} - {Float~\this@sequence@number\space spans ~ - \this@span@number\space columns,~ - but~ target~ area~ \this@area\space - spans~ only~ \this@area@span@number\space - columns.\MessageBreak - Correct~ the~ data~ in~ file~ \jobname.fpc! - } - \fi - \xin@\this@area - \used@areas - \ifin@\else - \PackageError{xo} - {Target~ area~ not~ available~ on~ current~ page} - {Float~ \this@sequence@number\space was~ requested~ to~ - be~ placed~ into~ area~ \this@area,\MessageBreak - but~ this~ - area~ is~ not~ available~ on~ page~ \thepage. - \MessageBreak - Correct~ the~ data~ in~ file~ \jobname.fpc! - } - \ifx\used@areas\@empty % we have a problem - \RESOLVE - \else - \setup@this@area{\expandafter\@carcube\used@areas\@nil} - \fi - \fi - \append@caption@to@float - \construct@and@test@col@hts - \if@test - \ERRORFloatAreaToLarge - \fi - \let\@elt\relax - \xdef\@freelist{\@freelist\@elt\this@float@box} - \expandafter\@cons\csname area@\this@area\expandafter\endcsname - \this@float@box - \fi - \fi - \let\@nextfpc\get@fpc@page@data - \fi\fi\fi -} -\def\fpc@here{hhh} - -\def\fpc@list{\relax} -\def\get@float@number#1#2#3#4#5#6#7{#7} -\def\extract@float@by@number#1{ - \ifnum\expandafter\get@float@number\the\toks#1=\count@ - \def\@currbox{#1} - \expandafter\update@this@float@structure\the\toks#1 - \fi} -\endinput -%% -%% End of file `xo-float.sty'. diff --git a/Master/texmf-dist/tex/latex3/xor/xo-grid.sty b/Master/texmf-dist/tex/latex3/xor/xo-grid.sty deleted file mode 100644 index 705d211a5e1..00000000000 --- a/Master/texmf-dist/tex/latex3/xor/xo-grid.sty +++ /dev/null @@ -1,195 +0,0 @@ -%% -%% This is file `xo-grid.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% xo-grid.dtx (with options: `package,progress') -%% -%% Not for distribution -%% -%% (C) Copyright 1999-2000 Frank Mittelbach, David Carlisle, Chris Rowley -%% All rights reserved. -%% -%% Not for general distribution. In its present form it is not allowed -%% to put this package onto CD or an archive without consulting the -%% the authors. -%% -%% (C) Copyright 1999-2000 Frank Mittelbach, David Carlisle, Chris Rowley -%% All rights reserved. -%% -%% Not for general distribution. In its present form it is not allowed -%% to put this package onto CD or an archive without consulting the -%% the authors. -%% - -\def\@tempa#1: #2.dtx,v #3 #4 #5 #6 #7${ - \ProvidesPackage{#2}[#4 #3 #5 #6]} -\@tempa$Id: xo-grid.dtx,v 1.3 2000/08/11 07:14:20 latex3 Exp $ -\IgnoreWhiteSpace -\newskip\headingsinkage -\headingsinkage=5pt plus 3pt minus 5pt -\def\@startsection#1#2#3#4#5#6{% - \if@noskipsec \leavevmode \fi - \par - \@tempskipa #4\relax - \@afterindenttrue - \ifdim \@tempskipa <\z@ - \@tempskipa -\@tempskipa \@afterindentfalse - \fi - \if@nobreak - \everypar{}% - \else - \addpenalty\@secpenalty - \addvspace\@tempskipa - \vskip-\headingsinkage - \vskip\saved@topskip - \vskip-\prevdepth - \nointerlineskip - \null - \nobreak - \vskip-\saved@topskip - \vskip\headingsinkage - \fi - \@ifstar - {\@ssect{#3}{#4}{#5}{#6}}% - {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}} -\def\@sect#1#2#3#4#5#6[#7]#8{% - \ifnum #2>\c@secnumdepth - \let\@svsec\@empty - \else - \refstepcounter{#1}% - \protected@edef\@svsec{\@seccntformat{#1}\relax}% - \fi - \@tempskipa #5\relax - \IgnoreAlignToGrid - \ifdim \@tempskipa>\z@ - \begingroup - #6{% - \@hangfrom{\hskip #3\relax\@svsec}% - \interlinepenalty \@M #8\@@par}% - \endgroup - \csname #1mark\endcsname{#7}% - \addcontentsline{toc}{#1}{% - \ifnum #2>\c@secnumdepth \else - \protect\numberline{\csname the#1\endcsname}% - \fi - #7}% - \else - \def\@svsechd{% - #6{\hskip #3\relax - \@svsec #8}% - \csname #1mark\endcsname{#7}% - \addcontentsline{toc}{#1}{% - \ifnum #2>\c@secnumdepth \else - \protect\numberline{\csname the#1\endcsname}% - \fi - #7}}% - \fi - \@xsect{#5}} -\def\@xsect#1{% - \ObeyAlignToGrid - \@tempskipa #1\relax - \ifdim \@tempskipa>\z@ - \par \nobreak - \vskip \@tempskipa - \@afterheading - \else - \@nobreakfalse - \global\@noskipsectrue - \everypar{% - \if@noskipsec - \global\@noskipsecfalse - {\setbox\z@\lastbox}% - \clubpenalty\@M - \AlignToGrid - \begingroup \@svsechd \endgroup - \unskip - \@tempskipa #1\relax - \hskip -\@tempskipa - \else - \clubpenalty \@clubpenalty - \everypar{}% - \fi}% - \fi - \ignorespaces} -\def\@afterheading{% - \@nobreaktrue - \everypar{% - \if@nobreak - \@nobreakfalse - \clubpenalty \@M - \if@afterindent \else - {\setbox\z@\lastbox}% - \fi - \AlignToGrid - \else - \clubpenalty \@clubpenalty - \everypar{}% - \fi}} -\def\@doendpe{\@endpetrue - \def\par{\@restorepar - \everypar{\everypar{}\AlignToGrid}\par\@endpefalse}% - \everypar{{\setbox\z@\lastbox}\everypar{}\AlignToGrid\@endpefalse}% -} -\def\endtrivlist{% - \if@inlabel - \leavevmode - \global \@inlabelfalse - \fi - \if@newlist - \@noitemerr - \global \@newlistfalse - \fi - \ifhmode\unskip \par\fi - \if@noparlist - \everypar{\everypar{}\AlignToGrid} - \else - \ifdim\lastskip >\z@ - \@tempskipa\lastskip \vskip -\lastskip - \advance\@tempskipa\parskip \advance\@tempskipa -\@outerparskip - \vskip\@tempskipa - \fi - \@endparenv - \fi -} -\def \displaymath { - \relax\ifmmode - \@badmath - \else - \ifvmode - \nointerlineskip - \makebox[.6\linewidth]% - \fi - $$%%$$ BRACE MATCH HACK - \fi -} -\def \enddisplaymath { - \relax\ifmmode - \ifinner - \@badmath - \else - $$%%$$ BRACE MATCH HACK - \fi - \else - \@badmath - \fi - \par - \@endpetrue % kill parindent if current paragraph continues - \@ignoretrue -} -\def\[{\begin{displaymath}} -\def\]{\end{displaymath}} -\def\endequation{\eqno \hbox{\@eqnnum}$$\par\@ignoretrue - \@endpetrue % kill parindent if current paragraph continues -} -\def\endeqnarray{% - \@@eqncr - \egroup - \global\advance\c@equation\m@ne - $$\par\@ignoretrue - \@endpetrue % kill parindent if current paragraph continues -} -\endinput -%% -%% End of file `xo-grid.sty'. diff --git a/Master/texmf-dist/tex/latex3/xor/xo-here.sty b/Master/texmf-dist/tex/latex3/xor/xo-here.sty deleted file mode 100644 index 9bfb9cd39ca..00000000000 --- a/Master/texmf-dist/tex/latex3/xor/xo-here.sty +++ /dev/null @@ -1,142 +0,0 @@ -%% -%% This is file `xo-here.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% xo-here.dtx (with options: `package,progress') -%% -%% Not for distribution -%% -%% (C) Copyright 1999-2000 Frank Mittelbach, David Carlisle, Chris Rowley -%% All rights reserved. -%% -%% Not for general distribution. In its present form it is not allowed -%% to put this package onto CD or an archive without consulting the -%% the authors. -%% -%% (C) Copyright 1999-2000 Frank Mittelbach, David Carlisle, Chris Rowley -%% All rights reserved. -%% -%% Not for general distribution. In its present form it is not allowed -%% to put this package onto CD or an archive without consulting the -%% the authors. -%% -\def\@tempa#1: #2.dtx,v #3 #4 #5 #6 #7${ - \ProvidesPackage{#2}[#4 #3 #5 #6]} -\@tempa$Id: xo-here.dtx,v 1.12 2000/08/11 07:14:21 latex3 Exp $ -\IgnoreWhiteSpace -\def\requirespace #1 { - \ifhmode - \@bsphack - \fi - \@next\@currbox\@freelist{}{} - \global\toks\@currbox{{}{} - {} - {} - {} - {rspace} - {} - } - \here@point\@currbox{#1} - \@ignorefalse - \@esphack -} -\def\marginpar #1 { - \ifhmode - \@bsphack - \fi - \@next\@currbox\@freelist{}{} - \@savemarbox\@currbox{#1} - \global\toks\@currbox{{}{} - {} - {} - {} - {mpar} - {} - } - \@tempdima\ht\@currbox - \advance\@tempdima\dp\@currbox - \advance\@tempdima -\baselineskip % allow to run long - \ifdim\@tempdima< \z@ \@tempdima\z@ \fi - \here@point\@currbox{\the\@tempdima} - \@ignorefalse - \@esphack -} -\def \typeset@a@marginpar{ - \kern-\pagedepth - \vtop to\pagedepth{\baselineskip\pagedepth - \lineskip\z@ - \vss - \dimen@\dp\@currbox - \ifnum \curr@col@count = \@ne - \llap{\copy\@currbox\kern\marginparsep} - \else - \ifnum \curr@col@count = \col@count - \rlap{\kern\columnwidth\kern\marginparsep\copy\@currbox} - \else - \ERROR-NOT-SUPPORTED - \fi - \fi - \kern-\dimen@ - \null} -} -\def\check@and@typeset@a@here@float{ - \ifrun@with@floats - \ifx\here@class\this@class - \ifnum \this@sequence@number > \here@sequence@number \relax - \calculate@target@fl@column - \ifnum \count@ > \curr@col@count - \else - \ifnum \count@ = \curr@col@count - \if t \this@area@type - \@failtrue - \fi - \else - \@failtrue - \fi - \fi - \fi - \fi - \fi - \if@fail - \progress@failed{\this@area\space before~here~float~ - (\here@type\space \here@sequence@number)~ - in~ column~ \the\curr@col@count} - \global\curr@col@count\col@count - \else - \typeset@a@here@float - \fi -} -\def \typeset@a@here@float{ - \append@here@caption@to@float - \ifdim \pagesetup@grid@point@sep = \z@ - \@tempskipa\pagesetup@float@inline@sep - \else - \@tempdima\ht\this@captioned@float - \advance\@tempdima\dp\this@captioned@float - \advance\@tempdima\tw@\pagesetup@float@inline@sep - \snap@to@grid \@tempdima \pagesetup@grid@point@sep - \ifdim \returned@lower@delta@size < \returned@delta@size \relax - \ifdim \returned@lower@delta@size < 2\pagesetup@float@inline@shrink - \xdef \returned@delta@size {-\returned@lower@delta@size } - \fi - \fi - \@tempskipa \returned@delta@size \relax - \divide \@tempskipa \tw@ - \advance \@tempskipa \pagesetup@float@inline@sep - \fi - \vskip\@tempskipa - \box\this@captioned@float - \vskip\@tempskipa -} -\def \setup@here@float { - \@tempskipa 2\pagesetup@float@inline@sep %FMi arbitrary value TMP - \advance\@tempskipa\ht\@currbox %FMi arbitrary value TMP - \advance\@tempskipa\dp\@currbox %FMi arbitrary value TMP - \advance\@tempskipa5\baselineskip %FMi arbitrary value TMP - \here@point\@currbox{\the\@tempskipa} -} -\endinput -%% -%% End of file `xo-here.sty'. diff --git a/Master/texmf-dist/tex/latex3/xor/xo-new.sty b/Master/texmf-dist/tex/latex3/xor/xo-new.sty deleted file mode 100644 index e55bf2af884..00000000000 --- a/Master/texmf-dist/tex/latex3/xor/xo-new.sty +++ /dev/null @@ -1,303 +0,0 @@ -%% -%% This is file `xo-new.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% xo-new.dtx (with options: `package,progress') -%% -%% Not for distribution -%% -%% (C) Copyright 1999-2000 Frank Mittelbach, David Carlisle, Chris Rowley -%% All rights reserved. -%% -%% Not for general distribution. In its present form it is not allowed -%% to put this package onto CD or an archive without consulting the -%% the authors. -%% -%% (C) Copyright 1999-2000 Frank Mittelbach, David Carlisle, Chris Rowley -%% All rights reserved. -%% -%% Not for general distribution. In its present form it is not allowed -%% to put this package onto CD or an archive without consulting the -%% the authors. -%% -\def\@tempa#1: #2.dtx,v #3 #4 #5 #6 #7${ - \ProvidesPackage{#2}[#4 #3 #5 #6]} -\@tempa$Id: xo-new.dtx,v 1.25 2000/08/11 07:14:23 latex3 Exp $ -\IgnoreWhiteSpace - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\flushbottom - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\iftrue % using Frank's changes built on 1.15 - - -\def\final@column { - \setbox\@outputbox \box\@cclv - - \ifvoid\footins - \else - \setbox\@outputbox \vbox { - \boxmaxdepth \@maxdepth - \advance\skip\footins -\dp\@outputbox % already limited to \@maxdepth - \unvbox \@outputbox - \advance\skip\footins - \ifdim\dp\footins>\@maxdepth \@maxdepth \else \dp\footins \fi - \vskip \skip\footins - \ifdim \pagesetup@grid@point@sep > \z@ - \vfil - \fi - \color@begingroup - \normalcolor - \footnoterule - \unvbox \footins - \color@endgroup - } - \fi - \global\setbox\csname col@box@\the\curr@col@count\endcsname - \vbox to \csname col@ht@ \the\curr@col@count\endcsname %<----- - { % this should one day become \@colht - % or else - \@texttop - \dimen@ \dp\@outputbox - \unvbox \@outputbox - \vskip -\dimen@ - \@textbottom - }% - \global \maxdepth \@maxdepth -} -\let \produce@final@column \final@column - -\def\make@area@floats@box #1#2 { - \@ifundefined{area@#1} % test only needed because of missing integration - { - } - { - \setup@this@area{#1} % needed below when typesetting floats - - \setbox #2 \box\voidb@x % <-------- FMi - \def \@elt { \typeset@float@in@box {#2} } - \csname area@#1\endcsname - \let \@elt \relax - - \expandafter - \release@floats - \csname area@#1\endcsname - } -} - -\def\typeset@float@in@box #1 #2 { - \gdef\this@float@box {#2} % <------------- FMi - \expandafter - \extract@this@float@actual@structure \the\toks #2 - - \update@this@area@columns - { - \expandafter - \gdecrement@num - \csname col@ \this@area@type - @floats@ \the\count@ @number\endcsname - } - - \setbox #1 \vbox { - \ifvoid #1 - \else % experimental FMi - \unvbox #1 % experimental FMi - \vskip \pagesetup@float@float@sep % experimental FMi - \fi % experimental FMi - \typeset@this@float@and@caption - } - } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\def \myfinalpage { - \mbox@addtopage (\pagebodylefthpos, -\headsep) - {page:~\thepage} - \forall@columns{ - \dimen \the\curr@col@count - \z@ - } - \expandafter\mount@top@areas@loop - \top@areas - \relax\relax\relax - \forall@columns{ - - \advance \dimen \the\curr@col@count - by %NEEDED!!!!! - \csname col@t@delta@ \the\curr@col@count \endcsname - - \advance \dimen \the\curr@col@count - \csname col@ht@ \the\curr@col@count \endcsname - - \setlength \@tempdima - {\pagebodylefthpos - \columndisplacement - + \columndisplacement * \curr@col@count } - - \mbox@addtopage ( \the\@tempdima ,\the\dimen\curr@col@count ) - { \box \csname col@box@ \the\curr@col@count \endcsname } - - \advance \dimen \the\curr@col@count - by %NEEDED!!!!! - \csname col@b@delta@ \the\curr@col@count \endcsname - } - \def\col@of@focus{0} % temp solution see below - \expandafter\mount@bot@areas@loop - \bot@areas - \relax\relax\relax - \setlength \@tempdima - {\pagebodylefthpos + \columndisplacement * \col@count } - \mbox@addtopage ( \the\@tempdima , \textheight ) - { \box \saved@footins } % TEMP FMi - \expandafter - \ifx\csname area@m1\the\curr@col@count\endcsname\relax - \else - \curr@col@count\col@count - \advance\curr@col@count\@ne - \make@area@floats@box {m\the\curr@col@count1}\@tempboxa - \setlength \@tempdima - {\pagebodylefthpos + \columndisplacement * \col@count } - \mbox@addtopage ( \the\@tempdima , \textheight ) - { \vbox to\textheight{\vfil \unvbox \@tempboxa \vfil }} - \fi - \ifShowGrid - \ifdim \pagesetup@grid@point@sep > \z@ - \@tempcnta\textheight - \@tempcntb\topskip - \advance\@tempcnta -\@tempcntb - \@tempdimb\pagesetup@grid@point@sep - \@tempcntb\@tempdimb - \divide\@tempcnta\@tempcntb - \advance\@tempcnta\@ne - - \setlength \@tempdimb - {\pagebodylefthpos + \columndisplacement * \col@count - - \columnsep } - \count@\@tempdimb - - \sbox\grid@box{ - \setlength\unitlength{1sp} - \begin{picture}(0,0) - \multiput(0,0)(0,\@tempcntb){\@tempcnta} - {\line(1,0){\count@}} - \end{picture} - } - - \mbox@addtopage ( 0pt ,\textheight ) - { \box\grid@box } - - \fi - \fi -} - -\newbox\grid@box - -\newif\ifShowGrid -\ShowGridtrue - - -\def\mbox@addtopage (#1,#2)#3{% - \global \setbox\page@box - \hbox { - \unhbox \page@box - \mbox@put (#1,#2) {#3} - } -} - -\def\mount@top@areas@loop#1#2#3{ - \ifx#1\relax - \else - \mount@top@area#1#2#3 - \expandafter\mount@top@areas@loop - \fi} - -\def\mount@top@area#1#2#3 { - \make@area@floats@box {#1#2#3}\@tempboxa - - \ifvoid \@tempboxa - \else - - \setlength \@tempdimb - { \dimen#2 + \ht\@tempboxa + \dp\@tempboxa } - - \setlength \@tempdima - {\pagebodylefthpos - \columndisplacement + \columndisplacement * #2 } - - \mbox@addtopage ( \the\@tempdima ,\the\@tempdimb ) - { \box \@tempboxa } - - \count@ #2\relax - \advance\count@ #3\relax - \loop - \advance\count@\m@ne - \dimen \count@ = \@tempdimb - \advance\dimen \count@ - \ifnum \csname col@t@floats@ \the\count@ @number\endcsname > \z@ - \pagesetup@float@area@sep - \else - \pagesetup@float@text@sep - \fi - \ifnum #2 < \count@ - \repeat - - \fi -} - -\def\mount@bot@areas@loop#1#2#3{ - \ifx#1\relax - \else - \mount@bot@area#1#2#3 - \expandafter\mount@bot@areas@loop - \fi} - -\def\mount@bot@area#1#2#3 { - \make@area@floats@box {#1#2#3}\@tempboxa - - \ifvoid \@tempboxa - \else - - \setlength \@tempdimb - { \dimen#2 + \ht\@tempboxa + \dp\@tempboxa } - - \ifnum \col@of@focus < #2 \relax - \def\col@of@focus{#2} - \advance\@tempdimb - \pagesetup@float@text@sep - \else - \advance\@tempdimb - \pagesetup@float@area@sep - \fi - - \setlength \@tempdima - {\pagebodylefthpos - \columndisplacement + \columndisplacement * #2 } - - \mbox@addtopage ( \the\@tempdima ,\the\@tempdimb ) - { \box \@tempboxa } - - \dimen #2 = \@tempdimb - - \fi -} - - -\def\top@areas{t13 t12 t22 t32 t11 t21 t31} - -\def\bot@areas{b11 b12 b13 b21 b22 b31 b32} - -%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%% -\let\make@page@box\myfinalpage - -\fi % end of stuff modifying xo-final 1.15 - - -\endinput -%% -%% End of file `xo-new.sty'. diff --git a/Master/texmf-dist/tex/latex3/xor/xo-or.sty b/Master/texmf-dist/tex/latex3/xor/xo-or.sty deleted file mode 100644 index 418b9fbe118..00000000000 --- a/Master/texmf-dist/tex/latex3/xor/xo-or.sty +++ /dev/null @@ -1,1251 +0,0 @@ -%% -%% This is file `xo-or.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% xo-or.dtx (with options: `package,progress') -%% -%% Not for distribution -%% -%% (C) Copyright 1999-2000 Frank Mittelbach, David Carlisle, Chris Rowley -%% All rights reserved. -%% -%% Not for general distribution. In its present form it is not allowed -%% to put this package onto CD or an archive without consulting the -%% the authors. -%% -%% (C) Copyright 1999-2000 Frank Mittelbach, David Carlisle, Chris Rowley -%% All rights reserved. -%% -%% Not for general distribution. In its present form it is not allowed -%% to put this package onto CD or an archive without consulting the -%% the authors. -%% - -\def\@tempa#1: #2.dtx,v #3 #4 #5 #6 #7${ - \ProvidesPackage{#2}[#4 #3 #5 #6]} -\@tempa$Id: xo-or.dtx,v 1.53 2000/08/11 07:14:25 latex3 Exp $ -\IgnoreWhiteSpace -\long\def\@gobblethree#1#2#3{} -\def\xin@#1#2{% - \expandafter\def\expandafter\in@@\expandafter##\expandafter1#1##2##3\in@@{% - \ifx\in@##2\in@false\else\in@true\fi}% - \expandafter\expandafter\expandafter\in@@\expandafter#2#1\in@\in@@} -\def\gincrement@num#1 { - \begingroup - \count@#1 - \advance\count@\@ne - \xdef#1{\the\count@} - \endgroup -} -\def\gdecrement@num#1 { - \begingroup - \count@#1 - \advance\count@\m@ne - \xdef#1{\the\count@} - \endgroup -} -\begingroup -\catcode`\M=12 -\catcode`\I=12 -\catcode`\N=12 -\catcode`\U=12 -\catcode`\S=12 -\catcode`\Z=12 -\lccode`\Z=`\p -\catcode`\T=12 -\catcode`\L=12 -\catcode`\F=12 -\lccode`\V=`\V -\lccode`\O=`\O -\lowercase{ -\gdef\split@skip #1#2#3#4{ - \@tempskipa#2\relax - \expandafter\check@for@fil \the\@tempskipa FIL\relax\check@for@fil - {\the\@tempskipa}{#3}{#4}{#1} - } -\gdef\check@for@fil #1FIL#2\check@for@fil#3#4#5#6{ - \ifx\relax#2 - \expandafter - \get@minus@part #3MINUS 0ZT \get@minus@part{#4}{#5} - \else - #4\z@ - #5\z@ - \PackageError{template}{Value~ for~ key~ #6~ contains~ `fil(ll)'} - {Only~ finite~ minus~ or~ plus~ parts~ are~ allowed~ for~ this~ key.} - \fi - } -\gdef\get@plus@part #1ZLUS#2ZT#3\get@plus@part#4{ - #4=#2pt\relax - } -\gdef\get@minus@part #1MINUS#2ZT#3\get@minus@part#4#5{ - \get@plus@part #1ZLUS 0ZT\get@plus@part{#4} - #5=#2pt\relax - } -} -\endgroup -\mathchardef\output@collect@penalty=20202 -\mathchardef\output@balance@penalty=10010 -\mathchardef\output@columnbreak@penalty=10005 -\mathchardef\output@flush@float@penalty=10006 -\mathchardef\output@here@float@penalty=10007 -\mathchardef\output@grid@align@penalty=10008 -\def\add@badly@guarded@penalty#1 { - \ifvmode - \nointerlineskip - \vbox to\z@{\vss\the#1}\penalty-#1\relax - \else - \@bsphack - \vadjust{\vbox to\z@{\vss\the#1}\penalty-#1\relax} - \@esphack - \fi -} -\def\add@guarded@penalty#1 - {\guard@box{BUG:~\string#1}\penalty-#1\relax} -\def\guard@box#1{ - \dimen@\prevdepth - \nointerlineskip - \vbox to0pt{\vss \rlap{#1}\kern\z@} - \prevdepth\dimen@ -} -\def\guard@box#1{ - \dimen@\prevdepth - \nointerlineskip - \begingroup - \setbox\z@\vbox to\z@{\vss \rlap{#1}} - \dp\z@\dimen@ - \box\z@ - \endgroup -} -\def\remove@guard@box@from@cclv{ - \global\setbox\@cclv \vbox{\boxmaxdepth\@maxdepth \unvbox\@cclv - \global\setbox\removed@guard@box\lastbox} -} -\def\readd@guarded@penalty#1 { - \box\removed@guard@box - \penalty-#1\relax} -\newbox\removed@guard@box -\let\col@count \col@number % reuse a register from LaTeX - % which is named differently there -\newcount\curr@col@count - -\expandafter\newbox\csname col@box@1\endcsname -\expandafter\newbox\csname col@box@2\endcsname -\expandafter\newbox\csname col@box@3\endcsname -\expandafter\newbox\csname col@box@4\endcsname -\expandafter\newbox\csname col@box@5\endcsname -\expandafter\newbox\csname col@box@6\endcsname -\expandafter\newdimen\csname col@ht@ 1\endcsname -\expandafter\newdimen\csname col@ht@ 2\endcsname -\expandafter\newdimen\csname col@ht@ 3\endcsname -\expandafter\newdimen\csname col@ht@ 4\endcsname -\expandafter\newdimen\csname col@ht@ 5\endcsname -\expandafter\newdimen\csname col@ht@ 6\endcsname -\def\forall@columns#1{ - \edef\saved@curr@col@count{\the\curr@col@count} - \global\curr@col@count\z@ - \@whilenum \curr@col@count<\col@count \do - {\global\advance\curr@col@count\@ne - #1 - } - \global\curr@col@count\saved@curr@col@count\relax -} -\def\initialise@column@data{ - \global\let\best@trial\@empty - - \forall@columns - { - - \global\csname col@ht@ \the\curr@col@count\endcsname\textheight - - \expandafter - \g@addto@macro\expandafter\best@trial\expandafter - { - \expandafter - \global - \csname col@ht@ \the\curr@col@count\endcsname - \textheight - } - \global\@namedef{col@t@floats@ \the\curr@col@count - @number}{0} - \global\@namedef{col@b@floats@ \the\curr@col@count - @number}{0} - \global\@namedef{col@t@delta@ \the\curr@col@count}{0pt} - \global\@namedef{col@b@delta@ \the\curr@col@count}{0pt} - } - -} -\def\columnbreak{ - \ifnum\col@count<\tw@ - \PackageError{xoutput} - {\noexpand\columnbreak~ in~ one-column~ mode} - {???} - \else - \ifvmode - \penalty -\output@columnbreak@penalty - \else - \@bsphack - \vadjust{\penalty -\output@columnbreak@penalty} - \@esphack - \fi - \fi} -\def\known@areas{} -\def\used@areas{ t11 b11 } -\let\@activelist\@empty -\let\@mvllist\@empty -\let\area@ddd\@empty -\def\pagesetup@ddd@class@close{\pagesetup@area@list} -\let\pagesetup@ddd@all@close\@empty -\let\this@open@areas\@empty -\let\saved@this@open@areas\@empty -\let\this@closed@areas\@empty -\let\this@page@closed\@empty -\expandafter\let\csname t11@float@count\endcsname \@topnum -\expandafter\let\csname b11@float@count\endcsname \@botnum -\expandafter\let\csname t12@float@count\endcsname \@dbltopnum -\expandafter\let\csname b12@float@count\endcsname \@dblbotnum -\newcount\ddd@float@count -\newskip\pagesetup@float@area@sep -\let\pagesetup@float@text@sep\textfloatsep % reuse register -\let\textfloatsep\@undefined -\let\pagesetup@float@float@sep\floatsep % reuse register -\let\floatsep\@undefined -\newdimen\pagesetup@float@text@shrink -\let\pagesetup@float@inline@sep\intextsep % reuse register -\let\intextsep\@undefined -\newdimen\pagesetup@float@inline@shrink -\def\initialise@areas{ - \expandafter\initialise@areas@loop - \used@areas - \relax\relax\relax -} -\def\initialise@areas@loop#1#2#3{ - \ifx#1\relax - \else - \global\csname #1#2#3@float@count\endcsname\z@ - \global\expandafter\let\csname area@#1#2#3\endcsname\@empty - \expandafter\initialise@areas@loop - \fi} -\def\first@of@type#1#2{ - \begingroup - \def\@tempb{#1} - \gdef\returned@sequence@number{-1} - \def\@elt{\expandafter\first@of@type@aux\the\toks} - \csname area@#2\endcsname - \endgroup -} -\def\first@of@type@aux#1#2#3#4#5#6#7{ - \def\@tempa{#6} - \ifx\@tempa\@tempb - \gdef\returned@sequence@number{#7} - \let\@elt\@gobble - \fi} -\def\last@of@type#1#2{ - \begingroup - \def\@tempb{#1} - \gdef\returned@sequence@number{-1} - \def\@elt{\expandafter\last@of@type@aux\the\toks} - \csname area@#2\endcsname - \endgroup -} -\def\last@of@type@aux#1#2#3#4#5#6#7{ - \def\@tempa{#6} - \ifx\@tempa\@tempb - \gdef\returned@sequence@number{#7} - \fi} -\def\setup@this@area #1 { - \xdef\this@area{#1} - \expandafter\gassign@area@type@col@and@span@aux\this@area -} -\def\gassign@area@type@col@and@span@aux #1#2#3{ - \gdef \this@area@type {#1} % type - \gdef \this@area@col@number {#2} % col - \gdef \this@area@span@number {#3} % span -} -\def\update@this@area@columns #1 { - \begingroup - \count@\this@area@col@number\relax - \advance\count@\this@area@span@number\relax - \loop - \ifnum \this@area@col@number < \count@ - \advance\count@\m@ne - #1 - \repeat - \endgroup -} -\def\setup@collection@or{ - \global\holdinginserts\@ne - \global\vsize\textheight - \global\advance\vsize 5\baselineskip - \global\multiply\vsize \col@count - \@flushseenfalse - \@flushfailfalse - \xdef\saved@topskip{\the\topskip} - \global\output{\collection@or} -} -\newif\if@collecting@new@material -\def\@collecting@new@materialfalse - {\global\let\if@collecting@new@material\iffalse} -\def\@collecting@new@materialtrue - {\global\let\if@collecting@new@material\iftrue} -\def\collection@or{ - \@testfalse - \ifnum\outputpenalty < -\@M - \ifnum\outputpenalty > -\output@balance@penalty - \@testtrue - \fi - \fi - \if@test - \remove@guard@box@from@cclv - \dimen@\dp\@cclv - \global\advance\vsize-\ht\@cclv - \global\setbox\partial@galley@box - \vbox{\ifvoid\partial@galley@box - \else - \unvbox\partial@galley@box - \fi - \unvbox\@cclv - \setbox\z@\vbox to-\dimen@{} - \dp\z@\dimen@ - \box\z@ - \penalty\outputpenalty - } - \global\topskip-\maxdimen % okay here? - \if@collecting@new@material - \ifnum \outputpenalty = -\output@columnbreak@penalty - \else - \setbox\z@\vbox to-\dimen@{} - \dp\z@\dimen@ - \box\z@ - \penalty\z@ - \fi - \fi - \ifnum\outputpenalty=-\output@flush@float@penalty - \@flushseentrue - \fi - \else - \ifnum\outputpenalty = -\output@collect@penalty - \remove@guard@box@from@cclv - \unvbox\@cclv - \ifnum\saved@outputpenalty > -\@M - \penalty - \ifnum\saved@outputpenalty=\@M - \z@ - \else - \saved@outputpenalty\relax - \fi - \else - \fi - \@collecting@new@materialtrue - \else - \ifnum\outputpenalty = -\output@balance@penalty - \@balancetrue - \xdef\saved@outputpenalty{0} - \else - \xdef\saved@outputpenalty{\the\outputpenalty} - \fi - \ifvoid\partial@galley@box - \global \setbox\@holdpg\box\@cclv - \else - \global\setbox\@holdpg\vbox{ - \unvbox\partial@galley@box - \unvbox\@cclv} - \fi - - - \if@balance - \global\setbox\@holdpg\vbox{ - \unvbox\@holdpg - \penalty\outputpenalty % short for "-\output@balance@penalty" - } - \fi - - \mark@save@state - \mark@update@structure - \global\holdinginserts\z@ - - \global\topskip\saved@topskip - - \setup@float@placement - - \@collecting@new@materialfalse - \fi - \fi - } -\newbox\partial@galley@box -\def\initialise@float@class#1{ - \count@0\LastMark{#1} - \global\expandafter\let\csname open@#1@areas\endcsname\used@areas - \global\expandafter\let\csname closed@#1@areas\endcsname\@empty - \forall@columns { - \ifnum \csname fl@ \the\curr@col@count @#1\endcsname>\z@ - \global\expandafter\let\csname fl@0@#1\expandafter\endcsname - \csname fl@ \the\curr@col@count @#1\endcsname - \expandafter\xdef - \csname fl@ \the\curr@col@count @#1\endcsname{0} - \fi - \expandafter\xdef - \csname tfl@ \the\curr@col@count @#1\endcsname{0} - } - } -\newif\if@fail -\def\@failfalse{\global\let\if@fail\iffalse} -\def\@failtrue{\global\let\if@fail\iftrue} -\def\setup@float@placement { - \def\@elt{\global\advance\trial@count\@ne\@gobble} - \@activelist - \let\@elt\relax - \progress@separator - \progress@nl{STATS:~ floats~ waiting~ =~ \the\trial@count - \space on~ page~ \the\absolute@page@number} - \progress@separator - \global\trial@count\z@ - \global\let\saved@herelist\@herelist - \tighten@float@placement@conditions - \run@with@floatsfalse - \float@placement@loop -} -\def\float@placement@loop{ - \deadcycles\z@ - \global\let\@activelist@empty@action\setup@best@column@or - \global\let\pretests@success@action\setup@grab@column@or - \mark@restore@state{ - \unvcopy\@holdpg - \ifnum\saved@outputpenalty > -1073741824\relax - \add@badly@guarded@penalty\output@collect@penalty - \fi - \global\let\@herelist\saved@herelist - \ifrun@with@floats - \trial@inner@loop - \else - \setup@grab@column@or - \fi - } - } -\def\trial@inner@loop{ - \if@fail - \@failfalse - \@flushfailfalse - \global\advance\trial@count\@ne - \do@next\try@this@area - \else - \do@next\try@next@float - \fi - \do@continue - } -\newcount\trial@count -\let\try@this@area\ERROR -\def\try@next@area{ - \xdef\this@open@areas{\expandafter\@gobblethree\this@open@areas} - \global\advance\trial@count\@ne - \try@this@area -} -\def\try@next@float{ - \@next\@currbox\@activelist{ - \progress{Float:~ \@currbox} - \expandafter\update@this@float@structure\the\toks\@currbox - \global\let\saved@this@open@areas\this@open@areas - \global\advance\trial@count\@ne - \try@this@area - } - { - \progress@nl{STATS:~ trials~ =~ \the\trial@count} - \global\trial@count\z@ - \@activelist@empty@action - } -} -\def\update@this@float@structure#1#2#3#4#5#6#7{ - \gdef\this@caption{#1} - \gdef\this@span@number{#2} - \gdef\this@usercnt{#4} - \gdef\this@fps{#5} - \gdef\this@type{#6} - \global\expandafter\let\expandafter - \this@class\csname sequence@class@#6\endcsname - \gdef\this@sequence@number{#7} - \global\let\this@open@areas\used@areas - \global\expandafter\let\expandafter\this@closed@areas - \csname closed@\this@class @areas\endcsname % FMi tmp - \global\let\this@float@box\@currbox -\progress{~{#7}} -\progress{~{#6}~(\this@class)} -\progress{~{#4}} -\toks@{#1}\progress@nl{~{\the\toks@}} -} -\def \extract@this@float@actual@structure #1#2#3#4#5#6#7 { - \gdef\this@caption{#1} - \gdef\this@span@number{#2} - \gdef\this@loglabel{#3} - \gdef\this@usercnt{#4} - \gdef\this@fps{#5} - \gdef\this@type{#6} - \global\expandafter\let\expandafter - \this@class\csname sequence@class@#6\endcsname - \gdef\this@sequence@number{#7} - } -\def\update@here@float@structure#1#2#3#4#5#6#7{ - \gdef\here@span@number{#2} - \gdef\here@type{#6} - \global\expandafter\let\expandafter - \here@class\csname sequence@class@#6\endcsname - \gdef\here@sequence@number{#7} - \gdef\here@usercnt{#4} - \gdef\here@caption{#1} - \global\let\here@float@box\@currbox -} -\let\page@float@count\@colnum -\newbox\this@captioned@float -\def\setup@grab@column@or{ - \ifnum\saved@outputpenalty = -1073741824\relax - \add@badly@guarded@penalty\output@collect@penalty - \fi - \@failfalse - \global\curr@col@count\z@ - \gdef\trial@flush@seen@num{0} - \gdef\trial@here@seen@num{0} - \ifrun@with@floats - \calculate@target@fl@column - \global\expandafter\let\expandafter\saved@fl@ - \csname fl@\the\count@ @\this@class\endcsname - \global\expandafter\let - \csname fl@\the\count@ @\this@class\endcsname - \this@sequence@number - \if t\this@area@type - \global\expandafter\let\expandafter\saved@tfl@ - \csname tfl@\the\count@ @\this@class\endcsname - \global\expandafter\let - \csname tfl@\the\count@ @\this@class\endcsname - \this@sequence@number - \fi - \fi - \if@flushseen - \count@\z@ - \@whilenum \flush@seq@num>\count@ \do - { \advance\count@\@ne - \global\expandafter\let - \csname saved@flush@min@col@\the\count@ \expandafter\endcsname - \csname flush@min@col@\the\count@\endcsname - } - \fi - \initialise@footins@action - \global\output{\grab@column@or} - \grab@column@loop -} -\let\calculate@target@fl@column \ERROR -\def\calculate@target@fl@column@flexible { - \count@\this@area@col@number\relax - \advance\count@\this@area@span@number\relax - \advance\count@\m@ne -} -\def\calculate@target@fl@column@strict { - \count@\this@area@col@number\relax -} -\newif\ifrun@with@floats -\def\run@with@floatsfalse{\global\let\ifrun@with@floats\iffalse} -\def\run@with@floatstrue{\global\let\ifrun@with@floats\iftrue} -\def\grab@column@loop{ - \global\advance\curr@col@count\@ne - \global\vsize\csname col@ht@ \the\curr@col@count\endcsname -} -\def\some@column@or #1#2#3#4{ - \handle@case@of@premature@ending - \handle@case@of@forced@pagebreak - \ifnum\outputpenalty=-\output@flush@float@penalty - \gincrement@num\trial@flush@seen@num - \remove@guard@box@from@cclv - \ifnum\csname flush@min@col@\trial@flush@seen@num\endcsname - > \curr@col@count - \gdecrement@num\trial@flush@seen@num - \readd@guarded@penalty\output@flush@float@penalty - #2 - \else - #3 - \fi - \else - \ifnum\outputpenalty=-\output@here@float@penalty - \gincrement@num\trial@here@seen@num - \remove@guard@box@from@cclv - \ifnum\csname here@min@col@\trial@here@seen@num\endcsname - > \curr@col@count - \split@off@last@line - \gdecrement@num\trial@here@seen@num - \readd@guarded@penalty\output@here@float@penalty - #2 - \else - \@tempdima \pagegoal - \advance\@tempdima -\pagetotal - \ifdim \@tempdima < - \csname - here@required@space@\trial@here@seen@num - \endcsname \relax - \split@off@last@line - \gdecrement@num\trial@here@seen@num - \readd@guarded@penalty\output@here@float@penalty - #2 - \else - \@reinserts - \unvbox\@cclv - \@next\@currbox\@herelist{ - \expandafter\update@here@float@structure\the\toks\@currbox - \def\@tempa{mpar} - \ifx\@tempa\here@type - \typeset@a@marginpar - \else - \def\@tempa{rspace} - \ifx\@tempa\here@type - % do nothing - \else - #4 - \fi - \fi - } - \ERROR - \fi - \fi - \else - \ifnum\outputpenalty=-\output@grid@align@penalty - \align@collected@galley@and@restart - \else - #2 - \fi - \fi - \fi -} -\def\grab@column@or{\some@column@or{grab} - \grab@column@or@finish - \grab@column@or@flushcheck - \check@and@typeset@a@here@float -} -\def\grab@column@or@flushcheck{ - \ifrun@with@floats - \expandafter\xin@\expandafter\this@class - \csname flush@classes@list@\trial@flush@seen@num\endcsname - \ifin@ - \count@\csname flush@last@float@\trial@flush@seen@num\endcsname\relax - \ifnum\this@sequence@number>\count@ - \else - \csname flush@fuzziness@\trial@flush@seen@num \endcsname - \fi - \fi - \fi - \if@fail - \@flushfailtrue - \global\setbox\@cclv\box\voidb@x - \global\setbox\footins\box\voidb@x - \global\curr@col@count\col@count - \grab@column@or@finish - \else - \ifnum\csname flush@min@col@\trial@flush@seen@num\endcsname<\curr@col@count - \expandafter\xdef - \csname flush@min@col@\trial@flush@seen@num\endcsname - {\the\curr@col@count} - \fi - \@reinserts - \unvbox\@cclv - % will change again - \fi -} -\def\flushcheck@page { -} -\def\flushcheck@spread { -} -\def\flushcheck@strict { - \ifnum\this@area@col@number<\curr@col@count - \else - \ifnum\this@area@col@number=\curr@col@count - \if b \this@area@type - \@failtrue - \progress@failed{area~ below~ flush~ point~ - (\this@area@col@number=\the\curr@col@count,~\this@area)} - \fi - \else - \@failtrue - \progress@failed{area~ after~ flush~ point~ - (\this@area@col@number>\the\curr@col@count,~\this@area)} - \fi - \fi -} -\def\flushcheck@column { - \ifnum\this@area@col@number>\curr@col@count - \@failtrue - \progress@failed{area~ after~ flush~ point~ column~ - (\this@area@col@number>\the\curr@col@count,~\this@area)} - \fi -} -\def\grab@column@or@finish{ - \mark@update@structure - \deal@with@footins@action - \if@fail\else - \ifrun@with@floats - \check@some@constraints - \fi - \fi - \if@fail\else - \ifrun@with@floats - \let\@elt\check@callout@constraints - \float@classes@list - \fi - \fi - \global\setbox\@cclv\box\voidb@x - \global\setbox\footins\box\voidb@x - \ifnum\curr@col@count=\col@count - \evaluate@results@of@trial - \setup@cleanup@or - \else - \grab@column@loop - \fi -} -\def\handle@case@of@premature@ending{ - \ifnum\outputpenalty=-\output@collect@penalty - \remove@guard@box@from@cclv - \readd@guarded@penalty\output@collect@penalty - \fi -} -\let\check@some@constraints\relax -\def\evaluate@results@of@trial{ - \ifrun@with@floats - \ifx\try@this@area\std@try@this@area - \count@\trial@here@seen@num\relax - \advance\count@\page@float@count - \ifnum \pagesetup@max@float@num < \count@ - \progress@failed{area~ +~ here~ floats~ exceed~ max~ floats} - \@failtrue - \fi - \fi - \fi - \if@fail - \if@flushseen - \count@\z@ - \@whilenum \flush@seq@num>\count@ \do - { \advance\count@\@ne - \global\expandafter\let - \csname flush@min@col@\the\count@ \expandafter\endcsname - \csname saved@flush@min@col@\the\count@\endcsname - } - \fi - - \if@flushfail - \ifx\try@this@area\relaxed@try@this@area - - \expandafter\gincrement@num - \csname flush@min@col@\trial@flush@seen@num\endcsname - \progress@failed{flush~ point~ \trial@flush@seen@num\space - moved~ to~ column~ - \csname flush@min@col@\trial@flush@seen@num\endcsname} - \else - - \ifx\saved@this@open@areas\@empty - \ERROR - \else - \global\let\this@open@areas\saved@this@open@areas - \fi - \relax@float@placement@conditions - \fi - \else - \xdef\this@open@areas{\expandafter\@gobblethree\this@open@areas} - \fi - - \calculate@target@fl@column - \global\expandafter\let - \csname fl@\the\count@ @\this@class\endcsname - \saved@fl@ - \if t\this@area@type - \global\expandafter\let - \csname tfl@\the\count@ @\this@class\endcsname - \saved@tfl@ - \fi - \update@this@area@columns - { - \global\csname col@ht@ \the\count@\endcsname - \csname saved@col@ht@ \the\count@\endcsname\relax - \global\expandafter\let - \csname col@ \this@area@type @delta@ \the\count@ - \expandafter \endcsname - \csname saved@col@ \this@area@type @delta@ \the\count@ \endcsname - } - \else - \let\progress@inform@later\@empty - \if@flushseen - \count@\flush@seq@num\relax - \loop - \ifnum \trial@flush@seen@num < \count@ - \global\@namedef{flush@min@col@\the\count@}{\maxdimen} - \advance\count@\m@ne - \repeat - \let\progress@inform@later\@empty - \ifrun@with@floats - \ifnum \count@ > \z@ - \ifnum \csname flush@last@float@\trial@flush@seen@num\endcsname = - \this@sequence@number \relax - \def\progress@inform@later{ - \progress@nl{->~ past~ flush~ point:~ -->~ - tighten~ conditions~ again} - \progress@nl{} - } - \partly@tighten@float@placement@conditions - \fi - \fi - \fi - \count@\z@ - \global\let\flush@classes@list@max\@empty - \loop - \ifnum \trial@flush@seen@num > \count@ - \advance\count@\@ne - \xdef\flush@classes@list@max{ - \flush@classes@list@max; - \csname flush@classes@list@\the\count@\endcsname - } - \repeat - \fi - \ifrun@with@floats - \update@best@trial - \progress@inform@later - \else - \run@with@floatstrue - \fi - \fi - } -\let\best@trial\@empty -\def\update@best@trial{ - \progress@nl{->~ accepted} - \global\let\best@trial\@empty - \forall@columns{ - \expandafter - \g@addto@macro\expandafter\best@trial\expandafter - { - \expandafter - \global - \csname col@ht@ \the\curr@col@count\expandafter\endcsname - \the\csname col@ht@ \the\curr@col@count\endcsname - } - } - \expandafter\@cons\csname area@\this@area\expandafter\endcsname - \this@float@box - \xdef\this@page@closed{\this@page@closed, - \csname pagesetup@\this@area @all@close\endcsname} - \xdef\this@closed@areas{\this@closed@areas, - \csname pagesetup@\this@area @class@close\endcsname} - \global\expandafter\let\csname open@\this@class - @areas\endcsname % FMi tmp - \this@open@areas - \global\expandafter\let\csname closed@\this@class - @areas\endcsname % FMi tmp - \this@closed@areas - \global\advance\page@float@count\@ne - \global\advance\csname \this@area @float@count\endcsname\@ne - \update@this@area@columns - { - \expandafter - \gincrement@num - \csname col@ \this@area@type - @floats@ \the\count@ @number\endcsname - } -} - -\def\setup@best@column@or{ - \global\curr@col@count\z@ - \gdef\trial@flush@seen@num{0} - \gdef\trial@here@seen@num{0} - \perhaps@write@placements@to@fpl@file - \best@trial - \initialise@footins@action - \global\output{\best@column@or} - \best@column@loop -} -\def\best@column@loop{ - \global\advance\curr@col@count\@ne - \global\vsize\csname col@ht@ \the\curr@col@count\endcsname -} -\def\best@column@or{\some@column@or{best} - \best@column@or@finish - { - \@reinserts - \unvbox\@cclv - } - { - \perhaps@write@to@fpl@file{ - \@spaces Area:~hhh^^J - \expandafter\perhaps@write@placements@to@fpl@file@aux\the\toks\@currbox} - \typeset@a@here@float - } -} -\def\best@column@or@finish{ - \mark@update@structure - \deal@with@footins@action - \produce@final@column - \ifnum\curr@col@count=\col@count - \produce@final@page - \initialise@next@page - \try@float@pages - \place@deferred@floats - \setup@collection@or - \else - \best@column@loop - \fi -} -\def\initialise@next@page{ - \initialise@column@data - \initialise@areas - \global\page@float@count\z@ - \initialise@flush@data - \initialise@here@data - \initialise@footins@action - \global\let\this@page@closed\@empty - \let\@elt\initialise@float@class - \float@classes@list - \let\@elt\relax - \global\let\this@float@box\@undefined - } -\def \handle@case@of@forced@pagebreak{ - \ifnum\curr@col@count<\col@count - \ifnum\outputpenalty=-\@M - \@emptycol - \fi - \fi - - \ifnum\outputpenalty=-\output@balance@penalty - \remove@guard@box@from@cclv - \ifnum\curr@col@count<\col@count - \@emptycol - \fi - \fi -} -\def\setup@cleanup@or{ - \global\vsize\maxdimen - \global\output{\cleanup@or} - } -\def\cleanup@or{ - \global\setbox\@cclv\box\voidb@x - \global\setbox\footins\box\voidb@x - \ifnum\outputpenalty=-\output@collect@penalty - \float@placement@loop - \fi -} -\def\try@float@pages { - \ifx\area@ddd\@empty - \else - \global\let\@activelist@empty@action\relax - \global\let\pretests@success@action\floatpage@pretests@success@action - \global\let\try@this@area\relaxed@try@this@area - \let\@elt\split@defer@list - \area@ddd - \let\@elt\relax - \global\let\area@ddd\@empty - \@floatpagetrue - \loop - \if@floatpage - \begingroup % no nesting of \loop without grouping ... - \def\@elt{\global\advance\trial@count\@ne\@gobble} - \@activelist - \let\@elt\relax - \progress@nl{} - \progress@separator - \progress@nl{STATS:~ floats~ waiting~ =~ \the\trial@count - \space on~ page~ \the\absolute@page@number\space (float~ page)} - \progress@separator - \global\trial@count\z@ - \try@float@page - \endgroup - \repeat - \global\let\try@this@area\std@try@this@area - \fi -} -\def\try@float@page { - \save@current@float@state - \trial@inner@loop - \dimen@\z@ - \forall@columns{ - \advance\dimen@ \csname - col@ht@ \the\curr@col@count \endcsname - } - \ifdim \dimen@ > 300pt \relax - \@floatpagefalse - \progress@failed{no~ float~ page~ made} - \progress@nl{} - \saved@float@state - \gdef\trial@flush@seen@num{0} - \gdef\trial@here@seen@num{0} - \initialise@next@page - \else - \progress@nl{succeeded} - \progress@nl{} - \forall@columns{ - \global\setbox\csname col@box@\the\curr@col@count\endcsname - \vbox to \csname col@ht@ \the\curr@col@count\endcsname{} - \produce@final@column - } - \perhaps@write@placements@to@fpl@file - \produce@final@page - \initialise@next@page - \xdef\@activelist{\area@ddd\@activelist} - \global\let\area@ddd\@empty - \fi -} -\newif\if@floatpage -\def\@floatpagefalse{\global\let\if@floatpage\iffalse} -\def\@floatpagetrue{\global\let\if@floatpage\iftrue} -\def\save@current@float@state { - \xdef\saved@float@state{\gdef\noexpand\@activelist{\@activelist}} - \forall@columns { - \expandafter - \g@addto@macro - \expandafter \saved@float@state - \expandafter { \expandafter \global - \csname col@ht@ \the\curr@col@count\expandafter\endcsname - \the \csname col@ht@ \the\curr@col@count\endcsname - } - } - \expandafter\save@area@info\used@areas ddd\relax\relax\relax -} -\def\save@area@info#1#2#3{ - \ifx#1\relax - \else - \edef\@tempa { - \global\csname #1#2#3@float@count\endcsname - \the\csname #1#2#3@float@count\endcsname - \gdef \expandafter\noexpand \csname area@#1#2#3\endcsname - {\csname area@#1#2#3\endcsname} - } - \expandafter - \g@addto@macro - \expandafter \saved@float@state - \expandafter { \@tempa } - - \expandafter\save@area@info - \fi} -\let\saved@float@state\@empty -\def\split@defer@list #1 { - \def\@currbox{#1} - \expandafter\extract@this@float@actual@structure\the\toks #1 - \ifnum 0\LastMark{\this@class} < \this@sequence@number - \@cons \@mvllist #1 - \else - \@cons \@activelist #1 - \fi -} -\def\place@deferred@floats { - \xdef\@activelist{\@activelist\@mvllist} - \global\let\@mvllist\@empty -} -\iffalse % we don't do it right now -\def\place@deferred@floats { - \global\let\@activelist@empty@action\relax - \global\let\pretests@success@action\floatpage@pretests@success@action -\showfloatlists - \trial@inner@loop - \xdef\@activelist{\area@ddd\@mvllist} - \global\let\area@ddd\@empty - \global\let\@mvllist\@empty -} -\fi -\def\floatpage@pretests@success@action{ - \update@best@trial - \trial@inner@loop - } -\newif\if@balance -\def\@balancefalse{\global\let\if@balance\iffalse} -\def\@balancetrue{\global\let\if@balance\iftrue} -\def\balancecolumns { - \add@badly@guarded@penalty\output@balance@penalty -} -\newif\if@flushseen -\def\@flushseenfalse{\global\let\if@flushseen\iffalse} -\def\@flushseentrue{\global\let\if@flushseen\iftrue} -\newif\if@flushfail -\def\@flushfailfalse{\global\let\if@flushfail\iffalse} -\def\@flushfailtrue{\global\let\if@flushfail\iftrue} -\DeclareDocumentCommand\flushfloats { o O{strict} } - { \flush@floats {#1} {#2} } -\def\flush@floats #1 #2 { - \add@badly@guarded@penalty\output@flush@float@penalty - \gincrement@num\flush@seq@num - \global\@namedef{flush@min@col@\flush@seq@num}{1} - \expandafter\xdef - \csname flush@last@float@\flush@seq@num \endcsname - {\the\float@sequence@count} - \IfNoValueTF{#1}{ - \def\@elt##1{##1;} - \expandafter\xdef - \csname flush@classes@list@\flush@seq@num \endcsname - {\float@classes@list} - \let\@elt\relax - } - {\expandafter\ifx\csname sequence@class@#1\endcsname - \relax - \ErrorArgumentNotAFloatType - \else - \global\expandafter\let - \csname flush@classes@list@\flush@seq@num - \expandafter\endcsname - \csname sequence@class@#1\endcsname - \fi - } - \@ifundefined {flushcheck@#2} - \userinputERROR - {\global\expandafter\let - \csname flush@fuzziness@\flush@seq@num \expandafter \endcsname - \csname flushcheck@#2\endcsname - } -} -\def\clearpage{ \flushfloats \newpage } -\def\doubleclearpage{ \clearpage } -\def\flush@seq@num{0} -\def\trial@flush@seen@num{0} - -\expandafter\let\csname flush@last@float@1 \endcsname\ERROR -\expandafter\let\csname flush@classes@list@1 \endcsname\ERROR -\expandafter\let\csname flush@min@col@1 \endcsname\ERROR -\expandafter\let\csname flush@fuzziness@1 \endcsname\ERROR -\expandafter\let\csname flush@last@float@2 \endcsname\ERROR -\expandafter\let\csname flush@classes@list@2 \endcsname\ERROR -\expandafter\let\csname flush@min@col@2 \endcsname\ERROR -\expandafter\let\csname flush@fuzziness@2 \endcsname\ERROR -\expandafter\let\csname flush@last@float@3 \endcsname\ERROR -\expandafter\let\csname flush@classes@list@3 \endcsname\ERROR -\expandafter\let\csname flush@min@col@3 \endcsname\ERROR -\expandafter\let\csname flush@fuzziness@3 \endcsname\ERROR -\let\flush@classes@list@max\@empty -\def \initialise@flush@data{ - \count@\flush@seq@num\relax - \advance\count@ -\trial@flush@seen@num - \xdef\flush@seq@num{\the\count@} - \@tempcnta\trial@flush@seen@num - \@tempcntb\z@ - \loop - \ifnum \@tempcntb < \count@ - - \advance\@tempcnta\@ne - \advance\@tempcntb\@ne - \global\expandafter\let - \csname flush@fuzziness@\the\@tempcntb \expandafter\endcsname - \csname flush@fuzziness@\the\@tempcnta \endcsname - - \global\expandafter\let - \csname flush@last@float@\the\@tempcntb \expandafter\endcsname - \csname flush@last@float@\the\@tempcnta \endcsname - - \global\expandafter\let - \csname flush@classes@list@\the\@tempcntb \expandafter\endcsname - \csname flush@classes@list@\the\@tempcnta \endcsname - - \global\@namedef{flush@min@col@\the\@tempcntb}{1} - \repeat - \global\let\flush@classes@list@max\@empty - \gdef\trial@flush@seen@num{0} -} -\def\here@seq@num{0} -\def\trial@here@seen@num{0} -\let\@herelist\@empty -\let\saved@herelist\@empty -\def\here@point #1#2{ - \@cons\@herelist#1 - \gincrement@num\here@seq@num - \global\@namedef{here@min@col@\here@seq@num}{1} - \setlength\dimen@{#2} - \expandafter\xdef - \csname here@required@space@\here@seq@num \endcsname - {\the\dimen@} - \add@badly@guarded@penalty\output@here@float@penalty -} -\def \initialise@here@data{ - \count@\here@seq@num\relax - \advance\count@ -\trial@here@seen@num - \xdef\here@seq@num{\the\count@} - \@tempcnta\trial@here@seen@num - \@tempcntb\z@ - \loop - \ifnum \@tempcntb < \count@ - - \advance\@tempcnta\@ne - \advance\@tempcntb\@ne - \global\expandafter\let - \csname here@required@space@\the\@tempcntb \expandafter\endcsname - \csname here@required@space@\the\@tempcnta \endcsname - - \global\@namedef{here@min@col@\the\@tempcntb}{1} - \repeat -} -\def \split@off@last@line{ - \dimen@\ht\@cclv - \advance\dimen@-\pageshrink - \advance\dimen@-1sp - \splitmaxdepth\@maxdepth - \setbox\z@\vsplit\@cclv to\dimen@ - \dimen@\csname - here@required@space@\trial@here@seen@num - \endcsname - \advance\dimen@\ht\@cclv - \advance\dimen@\dp\@cclv - \ifdim \dimen@ > \textheight - \ERROR-HERE-TOO-LARGE - \dimen@\textheight - \advance\dimen@-\ht\@cclv - \advance\dimen@-\dp\@cclv - \expandafter\xdef\csname - here@required@space@\trial@here@seen@num - \endcsname{\the\dimen@} - \fi - \unvbox\@cclv - \global\setbox\@cclv\box\z@ -} -\def \align@collected@galley@and@restart { - \remove@guard@box@from@cclv - \snap@to@grid{\ht\@cclv}\pagesetup@grid@point@sep - \ifdim \returned@size > \pagegoal - % \csname col@ht@ \the\curr@col@count\endcsname % not! - \ifdim \returned@lower@delta@size < \pageshrink - \global\let \returned@size \returned@lower@size - \xdef \returned@delta@size {-\returned@lower@delta@size } - \else - \OuchERROR - \fi - \else - \ifdim \returned@lower@delta@size < \returned@delta@size \relax - \ifdim \returned@lower@delta@size < \pageshrink - \global\let \returned@size \returned@lower@size - \xdef \returned@delta@size {-\returned@lower@delta@size } - \fi - \fi - \fi - \vbox to\returned@size{\unvbox\@cclv} - \@reinserts -} -\def\OuchERROR{ - \progress@failed{next~ possible~ grid~ point~ in~ column~ - \the\curr@col@count\space outside~ page} -} -\def\std@AlignToGrid{ - \add@badly@guarded@penalty\output@grid@align@penalty -} -\def\IgnoreAlignToGrid{ - \global\let\AlignToGrid\relax -} -\def\ObeyAlignToGrid{ - \global\let\AlignToGrid\std@AlignToGrid -} -\let\AlignToGrid\ERROR -\def\TextAlignToGrid{ \leavevmode \AlignToGrid } -\AtBeginDocument{ - \begingroup - \col@count6\relax - \initialise@column@data - \forall@columns { - \def\@elt#1{ - \global\@namedef{fl@\the\curr@col@count @#1}{0} - \global\@namedef{tfl@\the\curr@col@count @#1}{0} - } - \float@classes@list - } - \def\@elt#1{ - \global\expandafter\let\csname fps@#1\endcsname\known@areas - \global\@namedef{fl@0@#1}{0} - } - \float@classes@list - \endgroup - \@collecting@new@materialtrue - \setup@collection@or -} -\endinput -%% -%% End of file `xo-or.sty'. diff --git a/Master/texmf-dist/tex/latex3/xor/xo-page.sty b/Master/texmf-dist/tex/latex3/xor/xo-page.sty deleted file mode 100644 index 51845c532ae..00000000000 --- a/Master/texmf-dist/tex/latex3/xor/xo-page.sty +++ /dev/null @@ -1,283 +0,0 @@ -%% -%% This is file `xo-page.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% xo-page.dtx (with options: `package,progress') -%% -%% Not for distribution -%% -%% (C) Copyright 1999-2000 Frank Mittelbach, David Carlisle, Chris Rowley -%% All rights reserved. -%% -%% Not for general distribution. In its present form it is not allowed -%% to put this package onto CD or an archive without consulting the -%% the authors. -%% -%% (C) Copyright 1999-2000 Frank Mittelbach, David Carlisle, Chris Rowley -%% All rights reserved. -%% -%% Not for general distribution. In its present form it is not allowed -%% to put this package onto CD or an archive without consulting the -%% the authors. -%% - -\def\@tempa#1: #2.dtx,v #3 #4 #5 #6 #7${ - \ProvidesPackage{#2}[#4 #3 #5 #6]} -\@tempa$Id: xo-page.dtx,v 1.34 2000/08/11 07:14:27 latex3 Exp $ -\IgnoreWhiteSpace -\let\initialise@footins@action\relax -\let\deal@with@footins@action\relax -\DeclareTemplateType{footnotesetup}{0} -\DeclareTemplate{footnotesetup}{std}{0}{ - text-sep =+l \skip\footins, - max-height =+l \dimen\footins, - } - { - - \global\skip\footins 10pt plus 5pt - \global\dimen\footins.7\textheight - - \DoParameterAssignments - - \let\initialise@footins@action\relax - \let\deal@with@footins@action\relax - - \global\count\footins\@m - - } -\DeclareTemplate{footnotesetup}{ftnright}{0}{ - text-sep =+l \rcol@footinsskip, - max-height =+l \dimen\footins, - } - { - - \global\rcol@footinsskip 10pt plus 5pt - \global\dimen\footins\textheight - - \DoParameterAssignments - - \let\initialise@footins@action\initialise@footins@ftnright - \let\deal@with@footins@action\deal@with@footins@ftnright - - } -\DeclareTemplate{footnotesetup}{margin}{0}{ - max-height =+l \dimen\footins, - } - { - - \global\dimen\footins.7\textheight - - \DoParameterAssignments - - \let\initialise@footins@action\initialise@footins@margin - \let\deal@with@footins@action\deal@with@footins@margin - - \global\count\footins\z@ - \global\skip\footins \z@ - - } -\newbox\saved@footins -\newskip\rcol@footinsskip -\def \initialise@footins@ftnright { - \global\setbox\saved@footins\box\voidb@x - \global\skip\footins\z@ - \global\count\footins\z@ - \global\dimen\footins\textheight -} -\def \deal@with@footins@ftnright { - \ifnum\curr@col@count<\col@count - \ifvoid\footins - \else - \global\setbox\saved@footins - \vbox{\unvbox\saved@footins - \unvbox\footins} - \fi - \count@\col@count - \advance\count@\m@ne - \ifnum\curr@col@count=\count@ % cur col = second last col - \global\count\footins\@m - \global\skip\footins\rcol@footinsskip - \ifvoid\saved@footins - \else - \insert\footins{\unvbox\saved@footins} - \fi - \fi - \fi -} -\def \deal@with@footins@margin { - \ifvoid\footins - \else - \global\setbox\saved@footins - \vbox{\unvbox\saved@footins - \unvbox\footins} - \fi -} -\def \initialise@footins@margin { - \global\setbox\saved@footins\box\voidb@x -} -\def\test@named@key #1#2#3#4 { - \global\expandafter\let \expandafter #1 - \csname #2 \endcsname - \ifx #1 \relax - \PackageError{template}{#3~ unknown} - {#3~ can~ be~ either~ #4} - \fi -} -\def\DeclareFloatArea#1#2{ - \xdef\known@areas{\known@areas#1} - \DeclareInstance{floatareasetup}{#1}{std} - { name = #1, #2 } - \UseInstance{floatareasetup}{#1} -} -\DeclareTemplateType{floatareasetup}{0} -\DeclareTemplate{floatareasetup}{std}{0}{ - name =n \floatareasetup@name, - class-close-list=n \floatareasetup@class@close, - all-close-list =n \floatareasetup@all@close, - max-float-num =C \floatareasetup@maxfloats, - } - { - - \DoParameterAssignments - \@ifundefined{\floatareasetup@name @float@count} - {\expandafter\newcount\csname \floatareasetup@name - @float@count\endcsname} - {} - \global\expandafter\let - \csname pagesetup@ \floatareasetup@name @float@num\endcsname - \floatareasetup@maxfloats - \global\expandafter\let - \csname pagesetup@ \floatareasetup@name @class@close\endcsname - \floatareasetup@class@close - \global\expandafter\let - \csname pagesetup@ \floatareasetup@name @all@close\endcsname - \floatareasetup@all@close - \global\expandafter\let - \csname area@\floatareasetup@name\endcsname - \@empty -} -\DeclareTemplateType{pagesetup2}{0} -\DeclareTemplate{pagesetup2}{std}{0}{ - column-num =+c \col@count, - column-width =+l \columnwidth, - column-height =+l \textheight, % FMi tmp - column-sep =+l \columnsep, - max-float-num =C \pagesetup@max@float@num, - float-callout-constraint =n \pagesetup@float@callout, - float-callout-span-constraint =n \pagesetup@float@callout@span, - bottom-float-footnote-constraint =n \pagesetup@float@footnote, - flush-float-callout-constraint =n \pagesetup@flush@float@callout, - flush-float-callout-span-constraint =n \pagesetup@flush@float@callout@span, - flush-bottom-float-footnote-constraint =n - \pagesetup@flush@float@footnote, - area-list =n \pagesetup@area@list, - defer-class-close-list=n \pagesetup@ddd@class@close, - defer-all-close-list =n \pagesetup@ddd@all@close, - footnote-setup =i {footnotesetup} \pagesetup@footnote@setup, - float-float-sep =+l \pagesetup@float@float@sep, - float-area-sep =+l \pagesetup@float@area@sep, - float-text-sep =+l \pagesetup@float@text@sep, - float-inline-sep =+l \pagesetup@float@inline@sep, - grid-point-sep =+L \pagesetup@grid@point@sep, - } - { - \newpage - - \global\col@count\@ne - \def\pagesetup@max@float@num{3} - \def\pagesetup@float@callout{column} - \def\pagesetup@float@footnote{none} - \def\pagesetup@flush@float@callout{\pagesetup@float@callout} - \def\pagesetup@flush@float@footnote{\pagesetup@float@footnote} - \def\pagesetup@float@callout@span{flexible} - \def\pagesetup@flush@float@callout@span{\pagesetup@float@callout@span} - \let\pagesetup@ddd@class@close\maxdimen %impossible value - \let\pagesetup@ddd@all@close\@empty - \def\pagesetup@footnote@setup{\UseTemplate{footnotesetup}{std}{}} - \global\let\pagesetup@grid@point@sep\z@ % no grid points by default - - \DoParameterAssignments - \ifdim \pagesetup@grid@point@sep = \z@ - \global\let\snap@to@grid\dummy@snap@to@grid - \IgnoreAlignToGrid - \global\let\std@AlignToGrid\relax - \else - \global\let\snap@to@grid\std@snap@to@grid - \ObeyAlignToGrid - \fi - \split@skip{float-text-sep} - \pagesetup@float@text@sep - \dimen@ - {\global\pagesetup@float@text@shrink} - \split@skip{float-inline-sep} - \pagesetup@float@inline@sep - \dimen@ - {\global\pagesetup@float@inline@shrink} - \global\pagesetup@float@inline@sep \@ne\pagesetup@float@inline@sep - \global\hsize\columnwidth - \global\linewidth\columnwidth - - \setlength \@tempdima {\headheight + \headsep} - \xdef \pagebodytopvpos {\the\@tempdima} - - \setlength \@tempdima {\@tempdima + \textheight} - \xdef \pagebodybotvpos {\the\@tempdima} - -%% horiz - \setlength \@tempdima {\columnwidth + \columnsep} - \xdef \columndisplacement {\the\@tempdima} - - \ifx\pagesetup@ddd@class@close\maxdimen % not set? - \let\pagesetup@ddd@class@close\pagesetup@area@list - \fi - \test@named@key - \std@check@callout@constraints - {check@callout@\pagesetup@float@callout} - {float-callout-constraint} - {`none',~ `page',~ `column',~ or~ `after'} - \test@named@key - \relaxed@check@callout@constraints - {check@callout@\pagesetup@flush@float@callout} - {flush-float-callout-constraint} - {`none',~ `page',~ `column',~ or~ `after'} - \test@named@key - \std@check@some@constraints - {check@float@footnote@\pagesetup@float@footnote} - {bottom-float-footnote-constraint} - {`none'~ or~ `forbidden'} - \test@named@key - \relaxed@check@some@constraints - {check@float@footnote@\pagesetup@flush@float@footnote} - {flush-bottom-float-footnote-constraint} - {`none'~ or~ `forbidden'} - \test@named@key - \std@calculate@target@fl@column - {calculate@target@fl@column@\pagesetup@float@callout@span} - {float-callout-span-constraint} - {`strict'~ or~ `flexible'} - \test@named@key - \relaxed@calculate@target@fl@column - {calculate@target@fl@column@\pagesetup@flush@float@callout@span} - {flush-float-callout-span-constraint} - {`strict'~ or~ `flexible'} - \global\let\check@some@constraints\std@check@some@constraints - \global\let\check@callout@constraints\std@check@callout@constraints - \global\let\calculate@target@fl@column\std@calculate@target@fl@column - \global\let\used@areas\@empty - \expandafter - \@for \expandafter \@tempa \expandafter:\expandafter= - \pagesetup@area@list \do - { - \xdef\used@areas{\used@areas\@tempa} - \UseInstance{floatareasetup}{\@tempa} - } - - \pagesetup@footnote@setup - \initialise@next@page - \setup@collection@or - } -\endinput -%% -%% End of file `xo-page.sty'. diff --git a/Master/texmf-dist/tex/latex3/xor/xo-place.sty b/Master/texmf-dist/tex/latex3/xor/xo-place.sty deleted file mode 100644 index 31018b431e4..00000000000 --- a/Master/texmf-dist/tex/latex3/xor/xo-place.sty +++ /dev/null @@ -1,422 +0,0 @@ -%% -%% This is file `xo-place.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% xo-place.dtx (with options: `package,progress') -%% -%% Not for distribution -%% -%% (C) Copyright 1999-2000 Frank Mittelbach, David Carlisle, Chris Rowley -%% All rights reserved. -%% -%% Not for general distribution. In its present form it is not allowed -%% to put this package onto CD or an archive without consulting the -%% the authors. -%% -%% (C) Copyright 1999-2000 Frank Mittelbach, David Carlisle, Chris Rowley -%% All rights reserved. -%% -%% Not for general distribution. In its present form it is not allowed -%% to put this package onto CD or an archive without consulting the -%% the authors. -%% - -\def\@tempa#1: #2.dtx,v #3 #4 #5 #6 #7${ - \ProvidesPackage{#2}[#4 #3 #5 #6]} -\@tempa$Id: xo-place.dtx,v 1.37 2000/08/11 07:14:28 latex3 Exp $ -\IgnoreWhiteSpace -\def\std@try@this@area{ - \ifx\this@open@areas\@empty - \do@next\defer@and@try@next@float - \else - \setup@this@area{\expandafter\@carcube\this@open@areas\@nil} - \progress{~ area~trial:~ \this@area} - \ifnum \this@area@span@number = \if!\this@span@number! 1\else % big hack - \this@span@number \fi - \relax - \ifnum \pagesetup@max@float@num > \page@float@count - \ifnum\csname pagesetup@\this@area @float@num\endcsname = - \csname \this@area @float@count \endcsname - \progress@failed{\this@area\space float~num~reached ~ - (\csname pagesetup@\this@area @float@num\endcsname)} - \do@next\try@next@area - \else - \xin@\this@area - \this@page@closed - \ifin@ - \progress@failed{area~ closed~ for~ all~ types} - \do@next\try@next@area - \else - \xin@\this@area - \this@closed@areas - \ifin@ - \progress@failed - {area~ closed~ for~ class~ \this@class} - \do@next\try@next@area - \else - \xin@\this@area\this@fps - \ifin@ - \append@caption@to@float - \construct@and@test@col@hts - \if@test - \do@next\try@next@area - \else - \do@next\pretests@success@action - \fi - - \else - \progress@failed{\this@area\space float~not~allowed~ - by~ user~ control~ (\this@fps)} - \do@next\try@next@area - \fi - \fi - \fi - \fi - \else - \global\let\this@open@areas\@empty - \progress@failed{max~float~num~reached ~(\pagesetup@max@float@num)} - \do@next\defer@and@try@next@float - \fi - \else - \progress@failed{span~ count~ \this@area \space /=~ - \if!\this@span@number! 1\else % big hack - \this@span@number \fi} - \do@next\try@next@area - \fi - \fi - \do@continue -} -\def\do@next{\let\do@continue} -\def\relaxed@try@this@area{ - \ifx\this@open@areas\@empty - \do@next\defer@and@try@next@float - \else - \setup@this@area{\expandafter\@carcube\this@open@areas\@nil} - \progress{~ area~trial:~ \this@area} - \ifnum \this@area@span@number = \if!\this@span@number! 1\else % big hack - \this@span@number \fi - \relax - \xin@\this@area\this@page@closed - \ifin@ - \progress@failed{area~ closed~ for~ all~ types} - \do@next\try@next@area - \else - \xin@\this@area - \this@closed@areas - \ifin@ - \progress@failed - {area~ closed~ for~ class~ \this@class} - \do@next\try@next@area - \else - \append@caption@to@float - \construct@and@test@col@hts - \if@test - \do@next\try@next@area - \else - \do@next\pretests@success@action - \fi - \fi - \fi - \else - \progress@failed{span~ count~ \this@area \space /=~ - \if!\this@span@number! 1\else % big hack - \this@span@number \fi} - \do@next\try@next@area - \fi - \fi - \do@continue -} -\def\construct@and@test@col@hts { - \update@this@area@columns - { - \expandafter - \construct@and@test@col@ht - \csname col@ht@ \the\count@ \endcsname - {\the\count@} - \if@test - \count@\z@ % break out of loop - \fi - } -} -\def\construct@and@test@col@ht#1#2{ - \@tempdima \ht\this@captioned@float - \advance \@tempdima \dp\this@captioned@float - \ifnum \csname col@ \this@area@type - @floats@#2@number\endcsname - = \z@ - \advance \@tempdima \pagesetup@float@text@sep - \else - \advance \@tempdima - \expandafter - \ifx \csname area@\this@area\endcsname\@empty - \pagesetup@float@area@sep - \else - \pagesetup@float@float@sep - \fi - \fi - \advance \@tempdima - -\csname col@ \this@area@type @delta@ #2 \endcsname \relax - \snap@to@grid \@tempdima \pagesetup@grid@point@sep - \ifdim \returned@lower@delta@size < \returned@delta@size \relax - \ifdim \returned@lower@delta@size < \pagesetup@float@text@shrink - \global\let \returned@size \returned@lower@size - \xdef \returned@delta@size {-\returned@lower@delta@size } - \fi - \fi - \@tempdima \returned@size - \@tempdimb#1 - \advance \@tempdimb -\@tempdima - \@testfalse - \ifdim \textminlines\baselineskip > \@tempdimb - \@testtrue - \progress@failed{not~ enough~ text~ space~ - (\textminlines x\the\baselineskip\space - >~ \the\@tempdimb)} - \else - \expandafter\xdef - \csname saved@col@ht@ #2\endcsname{\the#1} - \global#1\@tempdimb - \global\expandafter\let - \csname saved@col@ \this@area@type @delta@ #2 \expandafter \endcsname - \csname col@ \this@area@type @delta@ #2 \endcsname - \global\expandafter\let - \csname col@ \this@area@type @delta@ #2 \endcsname - \returned@delta@size - \fi -} -\def\textminlines{4} -\let\pagesetup@grid@point@sep\ERROR -\let\snap@to@grid\ERROR -\def \dummy@snap@to@grid #1#2{ - \begingroup - \@tempdima #1 \relax - \xdef \returned@size { \the\@tempdima } - \global\let \returned@lower@size \returned@size - \gdef \returned@delta@size {0pt} - \global\let \returned@lower@delta@size \returned@delta@size - \endgroup -} -\def \std@snap@to@grid #1#2{ - \begingroup - \@tempdima #1\relax - \@tempdimb #2\relax - \@tempcnta \@tempdima % orig size in sp - \@tempcntb \@tempdimb % grid size in sp - \divide \@tempcnta \@tempcntb - \@tempdimc \@tempcnta\@tempdimb - \ifdim \@tempdimc < \@tempdima - \xdef \returned@lower@size { \the\@tempdimc } - \advance\@tempdimc \@tempdimb - \fi - \xdef \returned@size { \the\@tempdimc } - \advance \@tempdimc -\@tempdima - \xdef \returned@delta@size { \the\@tempdimc } - \ifdim \@tempdimc = \z@ - \global \let \returned@lower@size \returned@size - \global \let \returned@lower@delta@size \returned@delta@size - \else - \advance\@tempdimb-\@tempdimc - \xdef \returned@lower@delta@size { \the\@tempdimb } - \fi - \endgroup -} -\def\really@defer@and@try@next@float{ - \progress@failed{-->~ defer} - \progress@nl{} - \@cons\area@ddd\this@float@box - \xdef\this@page@closed{\this@page@closed, - \pagesetup@ddd@all@close} - - \ifx\pagesetup@ddd@class@close\pagesetup@area@list - \global\let\this@closed@areas\pagesetup@ddd@class@close - \else - \xdef\this@closed@areas{\this@closed@areas, - \pagesetup@ddd@class@close} - \fi - - \global\expandafter\let\csname closed@\this@class - @areas\endcsname % FMi tmp - \this@closed@areas - \try@next@float -} -\def\defer@and@try@next@float{ - \if@flushseen - \xin@\this@class\flush@classes@list@max - \ifin@ - \ifnum \csname flush@min@col@1\endcsname > \curr@col@count - \do@next\really@defer@and@try@next@float - \else - \count@ \@ne - \loop - \ifnum \flush@seq@num < \count@ - \in@false - \else - \ifnum \this@sequence@number > - \csname flush@last@float@ \the\count@ \endcsname - \relax - \in@true - \else - \expandafter\xin@\expandafter\this@class - \csname flush@classes@list@ \the\count@ \endcsname - \ifin@ - \in@false - \else - \in@true - \fi - \fi - \fi - \ifin@ - \advance\count@\@ne - \repeat - \ifnum \flush@seq@num < \count@ - \do@next\really@defer@and@try@next@float - \else - \ifnum \csname flush@min@col@\the\count@\endcsname - > \curr@col@count - \do@next\really@defer@and@try@next@float - \else - \ifx\try@this@area\relaxed@try@this@area - \progress@nl{} - \progress@nl{Flushing~ impossible~ -->~ breaking~ - before~ flush~ point~ and~ retry} - \expandafter \gincrement@num - \csname flush@min@col@ \the\count@ \endcsname - \progress@nl{} - \progress@nl{Defer~ impossible~ -->~ moving~ - flush~ point~ to~ column~ - \csname flush@min@col@ \the\count@\endcsname - \space - and~ retry} - \relax@float@placement@conditions % needed to reset open areas - \do@next\try@this@area - - \else - \relax@float@placement@conditions - \do@next\try@this@area - \fi - \fi - \fi - \fi - \else - \do@next\really@defer@and@try@next@float - \fi - - \else - \do@next\really@defer@and@try@next@float - \fi - - \do@continue -} -\def \relax@float@placement@conditions { - \progress@failed{-->~ retry~ with~ relaxed~ conditions} - \progress@nl{} - \global\let\try@this@area\relaxed@try@this@area - \global\let\this@open@areas\saved@this@open@areas - - \global\let\check@some@constraints\relaxed@check@some@constraints - \global\let\check@callout@constraints\relaxed@check@callout@constraints - \global\let\calculate@target@fl@column\relaxed@calculate@target@fl@column -} -\def\tighten@float@placement@conditions { - \global\let\try@this@area\std@try@this@area - - \global\let\check@some@constraints\std@check@some@constraints - \global\let\check@callout@constraints\std@check@callout@constraints - \global\let\calculate@target@fl@column\std@calculate@target@fl@column -} -\def\partly@tighten@float@placement@conditions { - \global\let\try@this@area\std@try@this@area - - \global\let\calculate@target@fl@column\std@calculate@target@fl@column -} -\let\check@callout@none\@gobble -\def\check@callout@page#1{ - \ifnum\curr@col@count=\col@count - \global\expandafter\let\expandafter\fl@max - \csname fl@0@#1\endcsname - \forall@columns { - \ifnum\csname fl@\the\curr@col@count @#1\endcsname>\fl@max\relax - \xdef\fl@max{\csname fl@\the\curr@col@count @#1\endcsname} - \fi - } - \count@0\LastMark{#1}\relax - \ifnum\count@<\fl@max\relax - \@failtrue - \progress@failed{last~callout~ - \the\count@\space~<~\fl@max - \space last~float~put~on~page~or~ earlier} - \fi - \fi -} -\let\fl@max\ERROR -\def\check@callout@column#1{ - \count@0\LastMark{#1}\relax - \ifnum\count@<\csname fl@\the\curr@col@count @#1\endcsname\relax - \progress@failed{last~ callout~ - \the\count@\space <~ - \csname fl@\the\curr@col@count @#1\endcsname - \space last~ float~ placed~ in~ column~ \the\curr@col@count} - \@failtrue - \global\curr@col@count\col@count - \let\@elt\@gobble - \fi -} -\def\check@callout@after#1{ - \check@callout@column{#1} - \if@fail\else - \global\expandafter\let\expandafter - \returned@sequence@number - \csname tfl@\the\curr@col@count @#1\endcsname - \ifnum \returned@sequence@number = \z@ - \else - \count@ 0\PreviousMark{#1}\relax - \ifnum \count@ < \returned@sequence@number \relax - \progress@failed{top~ callout~ - \the\count@\space <~ \returned@sequence@number - \space last~ float~ put~ in~ top~ - of~ column~ \the\curr@col@count} - \@failtrue - \global\curr@col@count\col@count - \let\@elt\@gobble - \fi - \fi - \fi -} -\def\check@float@footnote@forbidden{ - \ifvoid\footins - \else - \expandafter - \ifx \csname area@b\the\curr@col@count1\endcsname - \relax - \global\expandafter\let - \csname area@b\the\curr@col@count1\endcsname - \@empty - \fi - \expandafter - \ifx \csname area@b\the\curr@col@count1\endcsname - \@empty - \else - \progress@failed{old~bottom~floats:~ \expandafter\meaning - \csname area@b\the\curr@col@count1\endcsname} - \@failtrue - \fi - \ifnum \this@area@span@number = \@ne - \if b \this@area@type - \ifnum \this@area@col@number = \curr@col@count - \@failtrue - \fi - \fi - \fi - \if@fail - \progress@failed{column~ \the\curr@col@count\space - contains~ footnotes~ and~ bottom~ floats} - \global\curr@col@count\col@count - \fi - \fi -} -\let\check@float@footnote@none\@empty -\endinput -%% -%% End of file `xo-place.sty'. diff --git a/Master/texmf-dist/tex/latex3/xor/xo-trace.sty b/Master/texmf-dist/tex/latex3/xor/xo-trace.sty deleted file mode 100644 index 8853935f57b..00000000000 --- a/Master/texmf-dist/tex/latex3/xor/xo-trace.sty +++ /dev/null @@ -1,104 +0,0 @@ -%% -%% This is file `xo-trace.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% xo-trace.dtx (with options: `package,progress,trace') -%% -%% Not for distribution -%% -%% (C) Copyright 1999-2000 Frank Mittelbach, David Carlisle, Chris Rowley -%% All rights reserved. -%% -%% Not for general distribution. In its present form it is not allowed -%% to put this package onto CD or an archive without consulting the -%% the authors. -%% -%% (C) Copyright 1999-2000 Frank Mittelbach, David Carlisle, Chris Rowley -%% All rights reserved. -%% -%% Not for general distribution. In its present form it is not allowed -%% to put this package onto CD or an archive without consulting the -%% the authors. -%% - -\def\@tempa#1: #2.dtx,v #3 #4 #5 #6 #7${ - \ProvidesPackage{#2}[#4 #3 #5 #6]} -\@tempa$Id: xo-trace.dtx,v 1.9 2000/08/11 07:14:29 latex3 Exp $ -\IgnoreWhiteSpace -\def\showmarks{ - \toks@\expandafter{\topmark}\typeout{topmark:\the\toks@} - \toks@\expandafter{\firstmark}\typeout{firstmark:\the\toks@} - \toks@\expandafter{\botmark}\typeout{botmark:\the\toks@} -} -\def\showfloatlists{{ - \let\@elt\@empty - \typeout{free:~\@freelist} - \typeout{active:~\@activelist} - \typeout{mvl:~\@mvllist} - \typeout{defer:~\area@ddd} - \typeout{assigned:} - \showfloatarea{t13} - \showfloatarea{t12} - \showfloatarea{t22} - \showfloatarea{t11} - \showfloatarea{t21} - \showfloatarea{t31} - \showfloatarea{b11} - \showfloatarea{b21} - \showfloatarea{b31} - \edef\@tempa{currbox\expandafter\strip@prefix\meaning\@currbox>\space - this@float\expandafter\strip@prefix\meaning\this@float@box>} - \show\@tempa}} - -\def\showfloatarea#1{ - \@ifundefined{area@#1}{} - {\expandafter - \ifx\csname area@#1\endcsname\@empty - \else - \typeout{~\space\space #1:~\csname area@#1\endcsname} - \fi - } -} -\def \@tracemessage #1{% - \begingroup\let\@elt\space\typeout{:~\tf@indent~#1}\endgroup} -\let\tf@indent\@empty -\def\@tracepush#1{% - \tr@ce{entering~#1} - \xdef\tf@indent{-\tf@indent}} -\def\@tracepop#1{% - \tr@ce{leaving~#1} - \xdef\tf@indent{\expandafter\@gobble\tf@indent}} -\def \tracefloats{\global\let \tr@ce \@tracemessage} -\def \notrace {\global\let \tr@ce \@gobble} -\def\traceonly#1{ - \notrace - \def\@trace@command{#1} - \gdef\@tracepush##1{ - \def\@trace@this{##1} - \ifx\@trace@this\@trace@command - \global\let\@this@tf@indent\tf@indent - \tracefloats - \tr@ce{entering~##1} - \fi - \xdef\tf@indent{-\tf@indent}} - \def\@tracepop##1{ - \tr@ce{leaving~##1} - \xdef\tf@indent{\expandafter\@gobble\tf@indent} - \ifx\@this@tf@indent\tf@indent - \global\let\@this@tf@indent\relax - \notrace - \fi} -} -\tracefloats -\def \@traceval #1{\tr@ce{\string #1~=~\the #1}} -\def \progress #1{\message{#1}} -\def \progress@separator{ - \progress{=============================== - ========================================^^J}} -\def \progress@nl #1{\progress{~ #1^^J}} -\def \progress@failed #1{\progress@nl{ ->~ failed:~ #1}} -\endinput -%% -%% End of file `xo-trace.sty'. diff --git a/Master/texmf-dist/tex/latex3/xor/xoutput.sty b/Master/texmf-dist/tex/latex3/xor/xoutput.sty deleted file mode 100644 index ac806d01623..00000000000 --- a/Master/texmf-dist/tex/latex3/xor/xoutput.sty +++ /dev/null @@ -1,44 +0,0 @@ -%% -%% This is file `xoutput.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% xoutput.dtx (with options: `package,progress') -%% -%% Not for distribution -%% -%% (C) Copyright 1999-2000 Frank Mittelbach, David Carlisle, Chris Rowley -%% All rights reserved. -%% -%% Not for general distribution. In its present form it is not allowed -%% to put this package onto CD or an archive without consulting the -%% the authors. -%% -%% (C) Copyright 1999-2000 Frank Mittelbach, David Carlisle, Chris Rowley -%% All rights reserved. -%% -%% Not for general distribution. In its present form it is not allowed -%% to put this package onto CD or an archive without consulting the -%% the authors. -%% - -\def\@tempa#1: #2.dtx,v #3 #4 #5 #6 #7${ - \ProvidesPackage{#2}[#4 #3 #5 #6]} -\@tempa$Id: xoutput.dtx,v 1.13 2000/08/11 07:14:49 latex3 Exp $ -\RequirePackage{ - ldcsetup, - template, - xmarks, - xparse, - xo-trace,xo-or, - xo-here, - xo-place,xo-page,xo-float,xo-capt,xo-final, - xo-alloc, - xo-new -} - -\IgnoreWhiteSpace -\endinput -%% -%% End of file `xoutput.sty'. diff --git a/Master/tlpkg/tlpsrc/xor.tlpsrc b/Master/tlpkg/tlpsrc/xor.tlpsrc deleted file mode 100644 index 619fbdbd6b7..00000000000 --- a/Master/tlpkg/tlpsrc/xor.tlpsrc +++ /dev/null @@ -1,2 +0,0 @@ -name xor -category Package |