÷ƒ’À;è TeX output 1997.01.23:0048‹ÿÿÿÿ ª ýs o ýÞ’­P¸óDÓítG®G®cmr17¹The–7tóÖÆG®G®cmss17ºafterpage“¹pacŒqk‘ÿäageŸùº¯ó!",š cmsy10¿ŽŽŽŸ’Õþ­óX«Q cmr12»Da¬rvid‘ê¨CarlisleŽŽŸ’ÃpScarlisle@cs.man.ac.ukŽŽŽŽŽŸ&37’Ý 1995/10/27ŽŸ$ÍO‘XóKñ`y cmr10²This–ÙMpacš¸ãk‘ÿqÇage“implemen˜ts“a“command,–òóßêŸ'EŽ‘ãxX's“ oat“pGositioning“mecš¸ãhanism“gets“o˜v˜erloaded,‘«gand“allŽ¡‘b oating–GÆfigure²s“and“Ætable²s“drift“to“the“end“of“the“doGcumenš¸ãt.‘GOne“ma˜yŽ¡‘b ush–YÁout“all“the“unproGcessed“ oats“b¸ãy“issuing“a“Æ\clearpage“²command,‘ZÜbutŽ¡‘bthis–Fhas“the“e ect“of“making“the“currenš¸ãt“page“end“prematurely‘ÿ*ª.‘¨šNo˜w“y˜ouŽ¡‘bcan–îóissue“Æ\afterpage{\clearpage}“²and“the“curren¸ãt“page“will“bGe“ lled“upŽ¡‘bwith–È/text“as“usual,‘äåbut“then“a“Æ\clearpage“²command“will“ ush“out“all“theŽ¡‘b oats–UUbšGefore“the“next“text“page“b˜egins.Ž©븑U8ä2.ŽŽŽ‘bAn–:Ðearlier“mecš¸ãhanism“to“help“with“ oat“placemen˜t“w˜as“the“optional“argumen˜tŽ¡‘bÆ[H]‘%H²(meaning–%Uóò"V cmbx10ÈHERE!²)“whicš¸ãh“w˜as“originally“added“to“the“standard“ oatingŽ¡‘ben•¸ãvironmen“ts›2“b“y˜Æhere.sty²,‘iãand˜is˜no“w˜pro“vided˜b“y˜Æfloat.sty².‘ ‚Ho“w“ev“erŽ¡‘bsome–ósÆ[H]‘óZ²users“ha•¸ãv“e›óscommen“ted˜that˜they˜did˜not˜really˜mean˜`Here!'‘Q'TheyŽ¡‘bactually›UUw•¸ãan“ted˜`Somewhere˜close'.‘qÇThis˜can˜no“w˜bGe˜ac“hiev“ed˜b“yŽ¡‘bÆ\afterpage{\clearpage\begin{figure}[H]‘?ý².–ªª.“.“Æ\end{figure}}Ž¡‘b²This–ʪensures“that“the“ gure“is“at“the“top“of“the“next“page.‘CŽ(The“Æ\clearpageŽ¡‘b²stops–UUan¸ãy“other“ gures“drifting“past“the“Æ[H]“² gure.)Ž¦‘U8ä3.ŽŽŽ‘bFloating–¸longtables.‘™ÔÆlongtable.sty“²proš¸ãvides“the“Ælongtable“²en˜vironmen˜t,Ž¡‘ba–d§mš¸ãulti-page“v˜ersion“of“Ætabular².‘Ÿ¾Man˜y“Ælongtable“²users“ha˜v˜e“told“me“thatŽ¡‘bit–¡ÿis“dicult“to“set“the“text“surrounding“the“long“table,‘ÅÝand“that“they“w•¸ãan“tedŽ¡‘ba–ÏÊ` oating'“v¸ãersion.‘EDAs,–ê€presumably‘ÿ*ª,“Ælongtable²s–ÏÊare“long,‘ê€they“are“probablyŽ¡‘btoGo–iQlarge“to“hold“in“memory‘ÿ*ª,‘˜†and“ oat“in“the“w•¸ãa“y–iQthat“the“Ætable“²en•¸ãvironmen“tŽ¡‘bis›X oated,‘$ho•¸ãw“ev“er˜if˜the˜table˜is˜in˜a˜separate˜ le,‘$sa“y˜Æltfile.tex²,‘$y“ou˜canŽ¡‘bno¸ãw–UUuse“one“of:Ž¡‘bÆ\afterpage{\clearpage\input{ltfile}}Ž¡‘b\afterpage{\clearpage\input{ltfile}\clearpage}².Ž¡‘bThe–F  rst“form“lets“text“apGear“on“the“same“page“as“the“end“of“the“longtable,Ž¡‘bthe–UUsecond“ensures“that“the“surrounding“text“starts“again“on“a“new“page.ŽŸÍN‘Lüs±1Ž‘Sª®ó!©±Ê cmsy9Ìhó"ÒoÇw cmss9Ípack¾9ageŽ‘#g ÌiŽŸá•‘ŽóߤN cmtt9É\afterpageŽŽŽ‘I²The–UUtokš¸ãen“register“used“to“sa˜v˜e“the“old“output“routine.Ž‘IŸ á—‰ffÿrŸ @‘ ÷ˆŸý-:óq¡% cmsy6ÅŽŽ‘LÜó|{Ycmr8ÀThis–ÕX le“has“všÃŽersion“n˜um˜b‘ "5Ÿý-:ó¹Aa¨cmr6Á1ŽŽŽ‘LÜÀThis–±Wis“really“a“pre-release,‘¸Što“see“whether“p*I‘¨šthough“t–©3it“mighš¸ãt“bGe“fun“to“try“to“exactly“ac˜hiev˜e“theŽ¡‘IÆ\baselineskip²{or{Æ\lineskip–D†²calculation“that“T‘þU>Ÿ'EŽ‘ãxX“normally“doGes“in¸ãternally‘ÿ*ª.‘ØTheŽ¡‘Icall–UUto“Æ\addboxcontents“²došGes“the“righ¸ãt“thing“(I“hop˜e).ŽŸ‘I±40Ž‘a×pÉ\addboxcontents\AP@partialŽ¦‘I²Noš¸ãw–¯re-insert“an˜y“foGotnote“text.‘ÁÕThis“ma˜y“not“bGe“quite“the“righ˜t“place,‘Las“theŽ¡‘Itext–ÉCthat“has“just“bšGeen“un•¸ãb˜o“xed›ÉCma“y˜break˜o“v“er˜a˜page˜in˜its˜new˜pGosition.‘CAlso˜itŽ¡‘Imaš¸ãy–¦Õnot“bGe“the“righ˜t“n˜um˜bGer“if“the“text“from“Æ\afterpage“²itself“con˜tains“foGotnotes.Ž¡‘IT‘ÿ*ªoGo‘UUbad!Ž¤‘I±41Ž‘]ÚÉ\ifvoid\AP@footins\elseŽŸ ‘I±42Ž‘~0ôÉ\insert\footins{\unvbox\AP@footins}\fiŽ¦‘I²Noš¸ãw–UUrepair“things“if“w˜e“started“o “in“horizon˜tal“moGde.Ž¡‘I±43Ž‘]ÚÉ\AP@noindent}ŽŽŸ’ø²3ŽŽŒ‹Õ ª ýs o ý´‘X²If–9Æ\AP@“²is“not“Æ\relax“²then“the“curren¸ãt“page“already“has“some“`afterpage'“com-Ž¤ ‘Imands,‘qªso–kÿjust“add“the“new“commands“to“the“end“of“the“list.‘µÅOtherwise“sa•¸ãv“e‘kÿtheŽ¡‘Icommands–‘·in“Æ\AP@².›&í(within“a“loGcal“group),‘ Ïand“switc¸ãh“the“output“routine.˜(TheŽ¡‘Inew–UUoutput“routine“just“calls“the“old“one“if“it“is“in•¸ãv“ok“ed›UUb“y˜a˜LŸýó5‘üff±AŽŽ‘͉²T‘þU>Ÿ'EŽ‘ãxX˜ oat.Ž©‘I±44Ž‘Sª®É\long\def\afterpage#1{%Ž¤ ‘I±45Ž‘]ÚÉ\ifx\AP@\relaxŽ¡‘I±46Ž‘f‘É\gdef\AP@{{#1\par}}%Ž¡‘I±47Ž‘f‘É\global\output{%Ž¡‘I±48Ž‘p2É\the\AP@outputŽ¡‘I±49Ž‘p2É\ifnum\outputpenalty>-\@MiŽ¡‘I±50Ž‘yw^É\global\output\expandafter{\the\AP@output}%Ž¡‘I±51Ž‘yw^É\aftergroup\AP@@Ž¡‘I±52Ž‘p2É\fi}%Ž¡‘I±53Ž‘]ÚÉ\elseŽ¡‘I±54Ž‘f‘É\expandafter\gdef\expandafter\AP@\expandafter{\AP@{#1\par}}%Ž¡‘I±55Ž‘]ÚÉ\fi}ŽŸ‘X²If–Œowš¸ãe“ha˜v˜e“got“to“the“end“of“the“doGcumen˜t“or“clearpage“just“put“the“stu “outŽŸ ‘Iwithout–UUanš¸ãy“tric˜k˜ery‘ÿ*ª.Ž¦‘I±56Ž‘Sª®É\let\AP@clearpage\clearpageŽ¡‘I±57Ž‘Sª®É\def\clearpage{%Ž¡‘I±58Ž‘]ÚÉ\ifx\AP@\relaxŽ¡‘I±59Ž‘f‘É\AP@clearpageŽ¡‘I±60Ž‘]ÚÉ\elseŽ¡‘I±61Ž‘f‘É\global\output\expandafter{\the\AP@output}%Ž¡‘I±62Ž‘f‘É\AP@clearpageŽŸ‘I²Aš¸ãt–w$this“pGoin˜t“(since“v1.08)“Need“to“clear“Æ\AP@“ó'ý': cmti10Òb–ÿ}'efor“e‘7²using–w$its“expansion,‘—as“oth-ŽŸ ‘Ierwise–UUhit“an“in nite“loGop.‘qÇSigh.Ž¦‘I±63Ž‘f‘É\global\expandafter\let\expandafter\AP@\expandafter\relaxŽ¡‘I±64Ž‘f‘É\expandafter\expandafter\AP@Ž¡‘I±65Ž‘]ÚÉ\fi}Ž¡‘I±66Ž‘Sª®É\let\AP@enddocument\enddocumentŽ¡‘I±67Ž‘Sª®É\def\enddocument{%Ž¡‘I±68Ž‘]ÚÉ\ifx\AP@\relax\elseŽ¡‘I±69Ž‘f‘É\global\output\expandafter{\the\AP@output}%Ž¡‘I±70Ž‘f‘É\AP@clearpageŽ¡‘I±71Ž‘f‘É\global\expandafter\let\expandafter\AP@\expandafter\relaxŽ¡‘I±72Ž‘f‘É\expandafter\expandafter\AP@Ž¡‘I±73Ž‘]ÚÉ\fiŽ¡‘I±74Ž‘f‘É\AP@enddocument}ŽŸ‘øf \addboxcontentsŽŽŽ‘I²Givš¸ãen–°a“vbGo˜x“Æ#1²,‘kadd“to“the“curren˜t“v˜ertical“list“suc˜h“that“the“end“result“is“equiv-Ž¤ ‘Ialenš¸ãt–èâto“the“list“that“T‘þU>Ÿ'EŽ‘ãxX“w˜ould“ha˜v˜e“built“had“the“con˜ten˜ts“of“Æ#1“²(apart“from“an˜yŽ¡‘Iinitial–UUglue)“bGeen“added“individually“to“the“curren¸ãt“list.Ž¡‘XSo–µRessenš¸ãtially‘ÿ*ª,‘ÕSthe“problem“is“that“of“un˜bGo˜xing“Æ#1²,‘ÕSbut“replacing“the“glue“at“theŽ¡‘Itop–½nof“Æ#1“²with“(something“equiv‘ÿqÇalen¸ãt“to)“the“Æ\baselineskip“²or“Æ\lineskip“²glueŽ¡‘Ithat–äèT‘þU>Ÿ'EŽ‘ãxX“wš¸ãould“normally“ha˜v˜e“placed“bšGefore“the“ rst“b˜o¸ãx“in“Æ#1².‘LNAlso“Æ\prevdepthŽ¡‘I²m¸ãust–UUbGe“set“at“the“end.Ž¦‘I±75Ž‘Sª®É\def\addboxcontents#1{{%ŽŸ‘I²P•¸ãerhaps›FæI‘Fâshouldn“t˜use˜grouping˜here,‘IÉas˜I‘Fâprobably˜don't˜really˜w“an“t˜to˜sa“v“e˜Æ#1².Ž¡‘IIf–n£it“is“remo•¸ãv“ed,‘t÷Æ\splittopskip–n£²and“Æ\splitmaxdepth“²w¸ãould“need“to“bGe“restoredŽ¡‘Ib¸ãy‘UUhand.ŽŽŸ’ø4ŽŽŒ‹'p ª ýs o ý´‘X²First–UUreplace“anš¸ãy“glue“at“the“top“b˜y“Æ\vskip‘?ý0pt².Ž©‘I±76Ž‘]ÚÉ\splittopskip\z@Ž¤ ‘I±77Ž‘]ÚÉ\splitmaxdepth\maxdimenŽ¡‘I±78Ž‘]ÚÉ\setbox#1\vbox{\break\unvbox#1}%Ž¡‘I±79Ž‘]ÚÉ\setbox\z@\vsplit#1to\z@Ž¤‘I²Put–UUthe“breakpGoinš¸ãt“bac˜k.Ž¦‘I±80Ž‘]ÚÉ\setbox#1\vbox{\break\unvbox#1}%Ž¡‘I²Set–UUÆ\skip@“²to“bGe“heigh¸ãt“of“Æ#1“²(without“top“glue)Ž¦‘I±81Ž‘]ÚÉ\skip@\ht#1%Ž¡‘I²No•¸ãw›’Ùmak“e˜the˜ rst˜baseline˜of˜the˜ rst˜ro“w˜bGe˜Æ\vsize˜²from˜the˜top.‘0ó(This˜assumesŽŸ ‘Ithat–UUthe“ rst“roš¸ãw“has“heigh˜t“less“than“Æ\vsize².)Ž¦‘I±82Ž‘]ÚÉ\splittopskip\vsizeŽŸ ‘I±83Ž‘]ÚÉ\setbox\z@\vsplit#1to\z@Ž¡‘I²Subtract–T/the“new“heighš¸ãt“of“Æ#1“²from“Æ\skip@²,‘“åand“add“bac˜k“on“Æ\splittopskip²,Ž¤ ‘Iso–;Æ\skip@“²is“noš¸ãw“the“heigh˜t“of“the“ rst“ro˜w“of“Æ#1“²This“ma˜y“still“bGe“0pt“if“(eg)Ž¡‘Ia–•Smark“or“whatsit“is“bšGet•¸ãw“een–•Sthe“top“glue“and“the“ rst“b˜o•¸ãx.‘1ÁSa“v“e–•S(this“heigh¸ãt‘c‰ó !",š cmsy10¸Ž¡‘IÆ\splittopskip²)–UUin“Æ\skip\tw@².Ž¦‘I±84Ž‘]ÚÉ\advance\skip@-\ht#1%Ž¤ ‘I±85Ž‘]ÚÉ\skip\tw@\skip@Ž¡‘I±86Ž‘]ÚÉ\advance\skip@\splittopskipŽŸ‘I²No•¸ãw›UUfak“e˜T‘þU>Ÿ'EŽ‘ãxX's˜Æ\baselineskip˜²calculation.Ž¦‘I±87Ž‘]ÚÉ\advance\skip@\prevdepthŽ¡‘I±88Ž‘]ÚÉ\advance\skip@-\baselineskipŽ¡‘I±89Ž‘]ÚÉ\advance\skip\tw@\ifdim-\skip@<\lineskiplimit\lineskip\else-\skip@\fiŽ¤‘I²Finally–UUadd“the“glue.Ž¦‘I±90Ž‘]ÚÉ\vskip\skip\tw@Ž¡‘I²No•¸ãw›L&un“bGo“x˜the˜bGo“x,‘Müsetting˜Æ\prevdepth˜²b“y˜hand,‘Müas˜Æ\unvbox˜²(unlik“e˜Æ\box²)˜doGesŽŸ ‘Inot–UUautomatically“set“it.Ž¦‘I±91Ž‘]ÚÉ\global\dimen@i\dp#1%Ž¤ ‘I±92Ž‘]ÚÉ\unvbox#1}%Ž¡‘I±93Ž‘]ÚÉ\prevdepth\dimen@i}ŽŸ‘I±94Ž‘Sª®Ìhó 5ùž" cmmi9Ë=Ípack¾9ageŽ‘#g ÌiŽŽŸ’ø²5ŽŽŒø3^ƒ’À;説ó'ý': cmti10ó"ÒoÇw cmss9ó!©±Ê cmsy9ó 5ùž" cmmi9óߤN cmtt9óò"V cmbx10ó#Ñfcmti8óßê