; TeX output 1996.03.24:1944so0#DtGGcmr17The7t߆TG cmtt12endfloatpacqkage!", cmsy10XQ cmr12JamesDarrellMcCauley'ӿJe GoldbSerg2K cmsy8y37 1995/10/11.!Kt : cmbx9Abstractэoo cmr9The6purpAoseofthisst9yleistoputall guresonpagesbythemselves battheendofanarticleinasectionnamedFigures.0!Lik9ewisefortables.bMark9ers,likeq\[Figure3abAouthere]"appearinthetext(b9ydefault)nearbwhereSthe gure(ortable)w9ouldnormallyhaveoAccurred.lThisisusuallybrequiredTwhenpreparingsubmissionstojournals.oAn9umbAerofpac9k|rageoptionsandothermechanismsareprovidedtogivebtheTusercon9troloverv|rariousaspAectsofthepack|rage'sbAehavior.oLoadingTthispac9k|ragewillchangetheoutputofL5Aacmr6A TuAEX.!čI Nff cmbx12ContentsI!"V cmbx101XInTman9yvoices3I2XWh9yTwritethispack\rage?3I3XUsage0Az4 XK`y cmr103.1oLoading8.................................V4X3.2oWhatUUitdoGes荍..............................V4X3.3oStarredUU oats..............................V4X3.4oOptionsFǍ.................................V4o3.4.1ContradictionsUUanddilemmasC.................V5I4XMoQdifyingTmark9ertext%}6I5XCommandsTbQeforeprocessingdela9yedTmaterialdd6I6XProQcessingTdela9yed oatsbQeforetheendp7I7XSev9eralT oatspQerpage7IX-ffr @ -:q% cmsy6L|{Ycmr8Thisfx lehasvÎersionnumb'ExX2 b> cmmi10"+nfeatureswasaddedIbyme(jpg).IAlso,whereyou ndspGellingandtypGographicalerrors,youarelikelyItoUUbGereadingmytext.XThis*doGcumentationislong.3EMostuserswon'tneedtoreadbGeyondthe rstIfew1pages,butthereareanumbGer1ofways1tocustomizethebehaviorof_N#m#R cmss10end oatIandthesearedetailedasthedoGcumentationprogresses.ThepackqageisunusualIinthewayitdoGesitsjob,soitcaninteractwithotherpackqagesandotheraspGectsIofL5ffA͉TU>'ExXinwaysthatmaybGesurprising.THAlthoughthepackqageis exibleinsomeIrespGects,aitishighlylimitedinothers.T*oolsandhintsareprovidedtohelpyouIcontroly@theseinteractions,;butthesedorequiresomereading.݉ButyouonlyneedItoUUtakealoGokatthesesectionswhentheneedarises.I2aLWhyffwritethispackage?IManyjournalsrequiretablesand gurestobGeseparatedfromthetextwhenIyoursubmitthoseuglydoublespacedcopies.ɿTheyalsousuallywantalistof g-Iures/tablesEbGeforethesesections(capabilityaddedinv2.0,|6controlthroughpackqageIoptionsUUaddedinv2.2).XIf(jdm)famwritingasetofstylesthatloGokexactlylikeajournal,k3butjustbyIaddingonestyleoption,ώIwantedtheusertomeettherequirementsforformattingIsubmissions.qIUUencourageotherstodothesame.^1IX-ffr J= "5-:1LNote5thatjdm,wÎorkinginoldL#A TAEMX209didnothavethedistinctionb'ExX209.Get Iyour!administratortoupgradeyoursitetothenewstandard,%,L5ffA͉TU>'ExX2"(xֲ.]AlthoughIversion'2.0(aL5ffA͉TU>'ExX209version)willusuallyworkwithL5ffA͉TU>'ExX2"({M,0itwillnotdosoIinUUcombinationwithcertainotherpackqages.6I3.2gWhatitdo`esIMerelyloadingthepackqagewillgetitworking.1LoadingitwillhaveL5ffA͉TU>'ExXproGduceItwoextra leswith.tttand.fffextensions(fortablesand gures,respGectively).XThisSputsall guresandtablesattheendofyourdoGcumenteachonapageIbyitself^2qLandcreatesaListofFiguresand/orListofT*ablessectionattheendI(whenappropriateandcontrollablebyoptions).The oatsareproGcessedusingI\baselinestretch{1}irrespGectiveofwhatisusedinthedocumentasawhole.IThisUUcanbGeresetto,say1.4,byusingM\AtBeginDelayedFloats{\renewcommand{\baselinestretch}{1.4}}IwhichUUisavqailablefromversion2.4.qSeesection5formorediscussion.XItalsoleavesnotesinthetext(i.e.,)\[Figure4abGouthere.]").mIfyouwouldIratherynothaveythese,thiscanbGeturnedo byusingthenomarkersoptions.A3IfIyou,donotliketheloGokofthismarker,4youcanchangetheirtextandappGearanceI(seeUUsection4).6I3.3gStarred oatsIThehfigure*andtable*versionsaresuppGortedbythecurrentversion.^3oHowever,IitpXmustbGenotedthatwhatactuallygetsprocessedattheendisalwayspXwiththeIstar,UUsinceinsinglecolumnmoGdethe*isharmless.6I3.4gOptionsIUnderversion2.2andhigher,atheend oatpackqageusespackqageoptions. TheIoptions)aresummarizedintable1.Inadditiontotheseoptions,]seesections8IandUU5formoreadvqancedwaysUUofcontrollingoutput.XTheolistoftablesand gurescanbGesuppressedbyusingthenofiglistandInotablistȲoptions.  BothcanbGesuppressedwiththenolistsoption.^4 TheIdefaultUUislists.Iffffr J= "5-:2LThisXisthedefault. Seesection7toseehoÎwtohavemultiple oatsp "5-:3LIUq(jpg)UvÎerystupidlyintroyouwishtohavesomemorecontroloverhowthetablesand guresareproGcessed, 6\AtBeginFigures\AtBeginTablesƲ\AtBeginDelayedFloatsIyouycanmakeuseofthecommands\AtBeginDelayedFloats,\AtBeginFiguresIand\AtBeginTables.RIfyouwantedtoensurethatthetablesbGeginonarecto6iosoIpage,qyou8couldforexamplesaysomethinglike\AtBeginTables{\cleardoublepage} Iin8thepreambleofyourdoGcument.^6jMaterialin\AtBeginTablesand\AtBeginFiguresIisproGcessedafterthelistoftablesorlistof gures(ifthoseoptionsareset)andIjust^bGeforethe leswiththedelayed^materialininput.ThesearealsoprocessedIafterUUtheoriginalde nitionsofthetableand gureenvironmentsUUarerestored.XThesecommandscanbGeusedeitherinthepreambleofyourdoGcument,horinItheUUendfloat.cfg le(seesection8).! ލI6aLPros3cessingffdelayed oatsbs3eforetheendIIf>youwishtoproGcessthe oatspriortotheendofthedocument,Cayou>maydosoƲ\processdelayedfloatsIwithFthe\processdelayedfloatscommand,߰whichhasbGeenmadeavqailablefromIversionN2.4onward.oThiswillproGcessalloftheunprocessedtablesand guresupIto, thatpGoint.dY*oumaywishtousethiscommandattheendofeverychapterforIexample.XIfUUyoudousethis,thereareseveralpGointswhichshouldbGenoted.䘍U81.bAllUUoutstanding oatswillbGeprocessedattheendofthedocument.LU82.bIfyouusethelistsoptionyouwillgetalistofalltablesand guresinthebdoGcument.'Notjusttheonesforthecurrentchapter.'UsinglistsmayhavebotherUUoGddconsequences.U83.bItrisyourrespGonsibilitytoset\tableplaceand\figureplacecorrectly*,bas wellastopGossiblyresetthecounters\theposttbland\thepostfigb(section4)asyouwish. Ifyoudonotresetthem,theywillcontinuetobincreaseUUthroughoutthedoGcument.! ލI7aLSeveralff oatsps3erpageIEnd oat.places\efloatseparatoraftereach oatintheirrespGective les.>Byf\efloatseparatorIdefaultitisde nedtobGe\clearpageforcingone oatperpage.MY*oumaychangeIthisHQbyusing\renewcommandtorede ne\efloatseparatorasyouwish.JOneIpGossibility*,UUsuggestedbyauser,is䘍M\renewcommand{\efloatseparator}{\mbox{}}䘍IItsmakesmostsensetoplacesucharede nitioninthecon guration le(seeIsectionUU8).XDonotbGemisleadbymymisleadingnameforthiscommand.%ThisactuallyIappGearsUUaftereach oatincludingthelastone,soisnottrulyaseparator.I8aLCon gurationff leandotherendenvironmentsIMany5usershavesuggestedoptionstothepackqagewhichareoftenjournalspGeci c.IManyofthesuggestionoptionsarealsonotspGeci ctohowend oatitselfworks,Ibutotohowcaptionsandlistsof guresandtablesaretoappGear.InsteadofIJyffr J= "5-:6LItisdicultformetoimagineasituationwhereonewÎouldb'ExX'sinputIpath.RIfitisfound,itwillbGeincludedafterend oatisloaded.ThepurpGoseofIthisTcon guration leistoallowtheusertoincludeadditionalde nitionsrelatedItovend oat.AF*orexample,2anyrede nitionof\figureplacecangointhis le,soIthatdthepreambledoGesnotneedtobe lledwithmaterialthatonlymakessenseIwhenUUend oatisloaded.^7XThe*con guration lecanalsoprovidedsothattheusercouldspGecifyenvi-Ironmentsbotherthanfigureandtable(andtheir*-edcounterparts)whichcanIbGe3delayeduntiltheendofthedoGcument. AtthemomentthatwouldbGeveryIdicult todowithenvironments whicharenotproGcessedwithtablesof guresI(ie,thosejenvironmentsthatshouldhaveadi erent\list-of",di erentcounters,IandGIdi erenttempGorary lesfromthoseusedbytablesand gures);KbuttheplanIisUUtomakeeventhatevermoreeasier.6I8.1gMo`di ed guresandtablesuTIAsUUstatedinsection10.3,end oatwillutterlyfailifonedoGessomethinglikeI\newenvironment{foo}{...\begin{table}...} [X{...\end{table}...}IbGecauseBend oatwillmake\begin{table}gointoaverbatimlikemoGdeandlookIforUUtheliteralstring\end{table},whichitwillnotseein\end{foo}.XHowever,'forthosewhoknowL5ffA͉TU>'ExXinternalsfairlywell,'itisnotimpGossibleIto(tellend oattoalsotreatthefooenvironment(asadelayed(table.NcItishowever,InotÚeasy*,+althoughmygoalistomakethiseasierinsubsequentversions.ItwillItakeGafairamountofunderstandingoftheimplementationtoseehowtodothis.IAndUUthebGestthingtodoistofollowanexample.I8.2gSideways guresandtablesuTIThe9rotatingƲpackqage[5]containsde nitionsofenvironmentssidewaysfigureandIsidewaystable,^8AanditwouldbGenicetohavetheseworkindoGcumentswhichalsoIusefend oat.Appropriaterede nitionsofthesesothattheyworkwithend oatIare]giveninthe leefxmpl.cfg.OIfyouwishtousethat le,youshouldincludeitIas#apackqage(pGossiblyrenamed)*': cmti10afteryouincludeend oat.1OryoucouldsimpleIrenameUUittoendfloat.cfgandend oatwillincludeitautomatically*.XF*orUUadescriptionofthosecommandsseesection16.IX-ffr J= "5-:7LHoÎwever,ifyou ndyourselfplacingothermaterial(suchasdoublespacingormo "5-:8LTheseXrequiresupp'ExXcommands\listoftablesand I\listoffiguresIarecalled.mTheseproGducelistsindicatingthepagenumberIthatIeachtableor gureappGearon.Withend oatinusethisinformationisusuallyIsupGer uous,Dand{rumorhasit{undesirablebyatleastsomejournals.WhatIseemsYStobGerequiredwhenusinglistsisthateitherthelistdoesnotthe gureorItableUUnumbGer,and/orthecaptiondoesn'tnotcontainthecaptiontext.XThisnsectionprovidesafewrudimentarysamplesofwhatyoumightputintoIthecon guration letogetthesee ects.P-InhavechosennottomakethesepackqageIoptions,bGecause,theyareoftentoojournalspeci c.TdTheavqailability,ofthecon g-Iuration" lemeansthatyoucanputthisthingsthere,,andthedi erencesbGetweenIend oatUUusingandnon-end oatusingL5ffA͉TU>'ExXsourcedoGcumentsisminimal.6I8.3.1l#Remo9vingTcaptionsIThe~\simplestthingistoprovideasimplerede nitionof\@makecaption.Y*oub\@makecaptionIshouldmoGdelyourrede nitionaftertheonedescribedinclasses.dtxforyourIrelease0ofL5ffA͉TU>'ExXinsteadofblindlyfollowingwhatishere.Y\@makecaptiontakesItwoarguments,the rstwillbGesomethinglike\ gure3"andthesecondwillbGeIthescaptiontext.W*ewillsimplyignorethesecondargument.MostofthetrickyIbitO:ofthede nitionisabGouttestingwhetherthecaptionislongerthanaline.ISincewewillonlybGeusingthe rstargument,wecansafelyassumethattheIcaptionUUwill tononeline.^9:Y*ourrede nitionof\@makecaptionmayloGoklikeI\renewcommand{\@makecaption}[2]{% Rs,\vskip\abovecaptionskipRs,\hboxto\hsize{\hfil#1\hfil}%Rs,\vskip\belowcaptionskip}XThisUUstillleavesUUoneproblem.qIfyouuse3P\captionb\caption[+'ExX2"nS,but0I!amunwillingtoreinstallandolderversionfordebuggingthis."YAIuser[getthename]suggestedthatpagenumbGersbesuppressedinthelistsofI guresUUandtables.$\l@figurey\l@tableIAll-thisrequiresisarede nitionof\l@figureand\l@tablewhicharede nedinIclasses.txt.ɍAlsoseesection2.4.1oftheComp}'anionOtoseehowthesemacrosIareUUcalled.Iffffr J= "5-:9LIfyÎouhave\figurenameassomethingabsurdlylongoraverynarrow \textwidth,thenyou willXhaÎvetouseamorecomplicatedversion.9 soXTherealonlytrickhereisthat\l@figureisde nedtotaketwoarguments, IbutQ&thesecondisneverused.pbThewayitwillbGecalledwillgiveitsomethinglikeM{\numberline{3}Captionofthatfigure}{85}Ias8arguments,>QwherethesecondargumentisthepagenumbGer.h0The\numberlineIcommandwillmakeuseoftheL5ffA͉TU>'ExXregister\@tempdimaforthewidthofthebGoxIcontainingkhthetableor gurenumbGer.Soweneedtosetthat.TherestisprettyIunsophisticated.qY*ouUUcan,ofcourse,moGdifyitatwill.I\renewcommand*{\l@figure}[2]{% W,\setlength\@tempdima{2.3em}%W,\noindent\hspace*{1.5em}#1\hfil\newline}IAndUUfortables:I\let\l@table\l@figure!čI9aLObsoleteffcommandsIV*ersionsIIofthepackqagepriorto2.2hadsomecommandswhichtheusercould IspGecifySinthepreambletodowhatsomeoftheoptionsdonow.AlthoughIIwouldliketoeventuallyremovethosecommands,theyaredoGcumentedintheIComp}'anionc;UUsotheywillremainforquitesometime.I10ifdCaveatsISomebofthethingsthatarelistedheremaybGeconsideredbugs,designerrors,Iinteractionstowatchoutfor, worjustthewaylifeissometimes.STheyare, watleast,IaUUmatterofconcern,andyoushouldwatchoutforthem.6I10.1nLiteralstringsuTIWhenB oatsarebGeingread,L5ffA͉TU>'ExXisinverbatimmode.ZAmongotherthings,thisImeansUUthatthelineslikeI\end{figure}Imust;?appGearonlinesbythemselveswithoutanywhitespacebGeforeorafterthem.IA>complete>reimplementationofthemostdicultpartofthepackqageisrequiredItoUU xthislimitation,butitisamongthedistantgoalsIhave.I10.2nExtra lesuTIThis_createstwo_extra les:hjobnameri4.fffandhjobnameri28.ttt.Any lesbyIthoseUUnamesinthecurrentdirectorywillbGeoverwritten.10 ˠsoI10.3nEnvironmentnamesuTIBecausep|ofhowtherede nitionsof7figureandtableareactuallyimplemented, IitiscrucialthattheseenvironmentnamesbGeused.+Thatis, youcannotsimplyIde neanewenvironmentwhichcallsfigureortablesincetheformermustloGokIforUUtheliteralstringM\end{figure}Iin}>thedoGcument,9whiledoingnoexpansionofcontrolsequences.ThelatterdoGesIthe!same,Sbutwants!tableinsteadoffigure.*ThiscautiongenerallyappliestoIallUU`verbatim-like'environmentsXAlthoughNINhaven'tbGeenabletocon rmthisyet,PtheL5ffA͉TU>'ExXsystemScienti c-IW*ord^10 may;automaticallyput oatsinsideamacrocalled\FFRAME.Ifso,@I;hopGeIthatixeithersomeonefromScienti cW*ordoroneofitsuserswillcreatesomethingIforg\FFRAME similarlytowhatIhavegdonefor\sidewaystableinthesampleIcon gurationUU le(section8).XStepsareslowlybGeingtakentoallowfornewdelayedenvironmentstobGeIadded.aThat%.willbGeversion3,.butI%"(jpg)stillhavealongwaytogotogetthere.IEach newminorreleaseofthepackqageincludesfewchangesvisibletotheuser,IbutmaycontainsubstantialinternalchangestomovethepackqageinthedesiredIdirection.GV*ersion42.4nowcontainsacon guration leinwhichvqariousthingsIcanUUbGede ned.qSeesection8formoreinformation.XOnceitdoGesbecomeeasiertodelayotherenvironments,theword\ oat"mayInotcbGethebestexpression,sincetherewillbenoreasontoexpectthatonly oatingIenvironmentsUUaredelayed.6I10.4nTheEnvironment'senvironmentIBecause`noTU>'ExXexpansionisdonewhilethematerialinthese oatsarereadin,Ibutisdelayeduntilthe oatsareproGcessedattheendofthedocument,,itwillIbGeUthestateofTU>'ExXattheendwhichwillmatter.sF*orexample,UadocumentwithIsomethingUUlikeRs,\newcommand{\XXX}{YYY} Rs,...Rs,\begin{table}Rs,...Rs,...\XXX...Rs,...Rs,\end{table}Rs,...Rs,\renewcommand{\XXX}{ZZZ}Rs,...Rs,\end{document}IwillUUproGcessthetablewith\XXXexpandingtoZZZ. XInm!anyparticularinstance,stheusercanuseeitherre-rede ne\XXXmbGeforetheIend8ofdoGcument,qorcanre-rede neitusingonofthehooks,q\AtBeginDelayedFloats,I\AtBeginTables,UUor\AtBeginFigures,whicharediscussedinsection5.IJffr J=w-:10LAXregisteredtrademark. WJritetoinfo@tcisoft.comformoreinformation.11 HsoI10.5nVerbatimindelayed oatsuTIThereshouldbGenoproblemwithverbatimtextwithina oatunlessthatverbatim Itextcontainsan\end{figure}or\end{table}ina gureortablerespGectively*.IIkYdon'tk_seea xforthis.AllIcanimagineisthatyoucreateanewdelayedtypGeIwhich-bGehavesexactlylikefigure(ortable)(evenwriting\begin{figure}andI\end{figure}$tothe.fff le.C [mutatismutandisEfortable])Infutureversions,.IImayabcreateasamplelikethisinthesamplecon guration le,-butitisalowpriorityIsincetheonlytimeonewouldwritesucha gureortablewouldbGeinadocumentIabGoutBkL5ffA͉TU>'ExXanditisdiculttoimaginecircumstanceswhereadocumentaboutIL5ffA͉TU>'ExXUUwouldneedtobGesub8jecttoend oat.6I10.6nOrderingEndDo`cumentmaterialIV*ersionS2.1usestheL5ffA͉TU>'ExX2",nPdirective\AtEndDocument.ThismakesitL5ffA͉TU>'ExX2"IspGeci c,*Fbutitmeansthatitcanbeusedwithotherpackqagesthatusethatdirec-Itive.QPreviousversionsofend oatrede ned\enddocument.QNowseveralpackqagesIor[commandscanaddstu attheendsofdoGcumentsandstillworktogether.IThisédoGesmeanthatthegor}'derofloadingpackagescanbeimportant!IféyouuseIseveralpackqagesthatmayusethe\AtEndDocumentdirectiveandyougetfunnyIresults,tryloadingtheminadi erentorder.^ItthatdoGesn'twork,complaintoIthehmaintainerofthepackqagessothattheywillworkoutawayforthepackqagesItoUUinteractcorrectly*.6I10.6.1qGeneralTorderingandwishlistII bGelieve!#thattheoutputofaL5ffA͉TU>'ExX2"-runshouldbeindependentoftheorderIin8xwhichpackqageareloaded./ItwouldbGepossibletosetthisup,q@butitwouldItakejcoGordinationofallpackqagewriterswhouse\AtEndDocument.TheactualIcallto\AtEndDocumentwouldnotoGccurduringpackqageloading, butsomenewIcommand,like\ExecuteAtEndDocumentwouldbGecalledbytheuserafterallsuchIpackqagesUUareloaded,withtagsforeachthinginthepackqages,sosomethinglikeW,\usepackage{lastpage} W,\usepackage{endfloat,xyzzy}W,\ExecuteAtEndDocument{endfloat,xyzzy,lastpage}IandtheorderofEndDoGcumentmaterialwouldbGetheend oatmaterial,(followed Ibyxyzzy,EandA nallybylastpage.:Thepackqagexyzzyβis ctitious,EwhilethepackqageIlastpage[1]UUexists,itdoGesn'treallymatterwhatthesedo.XIwwillhavetowaituntilsomeoneelsedevelopssuchasystem,*HbutIwwillgladlyImoGdifyjthepackqagesIiamresponsibleformaintainingtocomplywithit.#^UntilthenIITwilltincludeamessagewhichbGeginswithAEDineveryusageof\AtEndDocument,IandUUtrytominimizeanysidee ectsmyusagemayhave.6I10.7nWhatarepack@agesfor?IOneoptionistonothavepackqageslikeend oatactuallycall\AtEndDocument,ObutImerelyOde neauserlevelcommandwhichwouldmakethecallitself.Thisway*,Itheorderofthoseparticularcommandswouldmatter, butnottheorderingoftheIpackqageUUloading.12 soXAnother`advqantageofthisisthatpackqagescouldeasilybGethingswhichmake Icommands-Eavqailable,c@butdonotactuallyentailachangein.dvioutputthem-Iselves.Itaisclasses,andoptionstoclasseswhichdothat.Thatis,theactualIloading ofpackqagesshouldhavenovisiblee ects,/otherthanmakingnewcom-Imands.Gavqailable.(TypGefacechangingpackqages,dsuchastimes,dareobvious,dandIprincipled,Rexceptions.)цThedisadvqantageisthatitleadstotwo-stepmoGdi ca-ItionsUU(loadingandcalling)tochangeadoGcument.XI@wouldfpropGoseanypackqage(otherthantypGefacechangingpackqages)whichIchangesoutputinsteadofmerelyprovidingadditionalcommands,&shouldbGeIclearlyUUlabGeledasdoingsuchinthedocumentationandinamessage.6I10.8nFloatp`ositionspeci ersuTIFloatIpGositionspeci ersarepassedtothetemporary lesandareusedwhenthoseI oatsareproGcessed.Thismayleadtofunnyresults,$espGeciallyifthe rst gureIorB rsttableuses[p]whiletheheadsoptionisbGeingused.\ThiscanleadtothatI oat, oatingtothepageaftertheheader.?=Mostother oatspGeci erswillnotleadItoTanyproblems,TDbGecausethepackqagemucksabGoutthevqarious oatspeci cationIparameters.I10.9nMisplacedheadersuTIV*ersion92.2ccontainsapartial xtoaproblemwiththeplacementof oatsaroundIthesectionheadersproGducedbytheheadsoption.NThereweretwovqariantsoftheIproblem.LInonethe rst oataftertheheaderwould oatabGovetheheader.LThisIhasbGeen xedbyusingtheL5ffA͉TU>'ExX2".command\suppressfloats.TheotherIproblem6isthatthatthe rst oatmay oattoapage oatafterthepagewithItheUUheaderonit.XThisehasbGeenpartially xed,butifusersusethe[p]speci cationontheir rstI oats|oriftherearelarge oats,Atheproblemcanstillshowup.E*ItisrecommendedIthatkwhenevertheuserwantsa[p]thatan[hp]bGeusedinstead.pInnormalIrunning(withoutend oat),thisshouldonlyrarelye ectthedoGcument,butitwillIhelpڨavoidtheproblemwiththe oatingend oat.An[h]mayalsobGeneededIforDlarge oats.^ThereisonlyneedtobGeconcernedaboutthe rst gureand rstItable.XThee/naturalsolutiontothisproblemwillrequirethatthebugindescribGedinIsectionUU10.8bGeresolved.I10.10u@KnownincompatibilitiesuTIAbGoveI(haveoutlinedsourcesofpGotentialcon ictsandincompatibilitieswithIotherXpackqages.{oThosesectionscontainadiscussionofpGotentialwork-arounds.IHere/8I.listwhereIknowofspGeci cincompatibilitieswithdistributedpackqages.IThisUUlistisnotcomplete.qIfyouknowonanaddition,pleaseletmeknow.6I10.10.1w~En9vironmentTnamesITheǜpackqageslistedhereallhavetheproblemdescribGedinsection10.3.țTheIwork-aroundsUUarealsodescribGedthere.qrotating,Scienti cWor}'d.13ǶsoI10.10.2w~OrderingTendmaterialuTIThefollowingpackqagesputthingsattheendofthedoGcument,¨andpGeculiarresults IareP>pGossibleifyoudon'tpayattentiontotheorderinwhichpackqagesareloaded.IThisisdescribGedinsection10.6.1. Thepackqagelastpageisamongthese,asareIrecentUUversionsofthepackqageharvard.6I10.10.3w~Con icting8\enddocumentIPriortoL5ffA͉TU>'ExX2")p'sprovisionofthehoGok\AtEndDocument,packqagewriterswereIforceddtorede ne\enddocument.SomedidsoinwaysdthatoverdwroteanyotherIpackqage'srede nitionofthesame.0WhenyouencountersuchapackqageyoushouldItrytogetitsauthortoreleaseamoGdi edversion.FHV*ersion2.0ofend oatwassuchIa[packqages.KSowasthewinter1993versionofxharvard(whichhasbGeen xed).KButIforUUthoseusinganoldversionofrharvardyouwillencounterproblems.6I10.10.4w~MiscellaneousIThereareseveralotherpGotentialcon ictsthatdon'tfallintothebroadercate-Igories.Xb\listoftablesmand\listoffigurersareleftunde nedinclass,p0J cmsl10elsart.7zButbthis*eisbGecauseElsevierdoesnotwant*ethoselists.cwElsevier,2blessthem,doGesbnotsuchas\xtable,>whichdidbnot[include@tonamesthattoinclude@suchas\ef@extable.Alsore-bnamedOallcommands\end...tosomethingelsesoastonotuseupvqaluablebenvironmentUUnamespace.XbRemovedUUdeadcoGde.qItwasmakingthistoohardtoread.XbDoGcumentation!,changestore ectuserlevelchanges.MAlsoaddedmoretobtheUUCaveatssection(section10).XDuringthepastfewmonthsIhavereceivedawonderfulleveloffeedbackfromIusers.!Many}smadeveryusefulsuggestions.!EventhosequerieswhichresultedIfromQBamisunderstandingofhowtousethepackqagehavebGeenleadmetomodifyItheOGdoGcumentation._IOhadintendedtoacknowledgeallofyou,butthelisthasIgrown8toGolong.NhY*ouknowwhoyouare.NhThanks,qandgoGod8luckwithyourjournalIsubmissions!15ҠsoI12.4nVersion2.3uTIV*eryNminorchangesintheorganizationofsomepartsofthecoGde,PbutI xedabug II^tintroGduced^wwhile\cleaningup"forforversion2.2: I^thadmisunderstoGod^wpartofItheuoriginalcoGdeandcommentedoutanecessarytricktoallowforfigure*TheIbug&wasveryreal,0soI&amreleasingthisversion2.3assoGonasI&candocumentit,IandUUamnotwaitingtoincludeotherplannedimprovements.6I12.5nVersion2.2IAuser(KateHedstrom)pGointedoutanumbGerofbugsandshortcomings,~whichIledme(jpg)to nallysitdownandmakesomeofthechangesIȿhadbGeenplanningIonb6making.kThee ectofthetablesfirstoptionwasspGeci callyrequested,eoandIalsoworkonthebugdiscussedinsection10.9.YAlthoughmybug xispartial,IversionUU2.2includesthemeanstosuppresstheheadersaltogether.6I12.5.1qP9ack\rageToptionsII,sjpg,{haveusedthepackqageoptionfacilityofL5ffA͉TU>'ExX2",;ltogetotheroptions(de-IscribGedinsection3.4).[Ialsomadesomecosmeticchanges(breakinguplinestoIreducethenumbGerofoverfullboxeswhenprintingthedocumentation,linebreaksIandindentationtomakethecoGdemorereadable.SIalsoreplacedsome\defswithI\newcommandsIand\providecommands.OThisarenotlogged,)bGecauseIIactuallyIfoundUthatallofthelogginginformationwashampGeringmyabilitytoreadandImoGdifyUUthecode.6I12.5.2qIn9ternalTcommandsIInseversion2.2,zIs]alsoreplacedsomecoGdeinternalto\xfigureand\xtablewithI\efloat@foundendfigYTand\efloat@foundendtab.}ThiswasmerelyastylisticIchange.XIAalsoAdeletedsomesomede nitionswhicharenotused.k=Thesehadhadprob-Iablyr.bGeenleftashooks,ydbutwithnotenoughforthemtobeusefulhooks.QThereIaresomecaseswhereIhavelefttheseinwhenIcouldseewhattheycouldbGeusedIfor.qIUUhavetriedtoaddanoteastotheirpGotentialuse.6I12.5.3qDoQcumen9tationIMassiveUUchangestouserdoGcumentation,andsometothecoGdedocumentation.6I12.6nVersion2.1II,Je reyGoldbGerg,ʉinJune1994wantedtouseDarrellMcCauley'sendfloat.styIwith٭L5ffA͉TU>'ExX2"+-W. It٭worked neuntilIneededtousetheL5ffA͉TU>'ExX2"1directiveI\AtEndDocument[forsomeotherfunction,Zanddiscovered[thatitwasnotfunction-Iing_andthatitwasbGecauseversion2.0(andearlier)of|endnotes.styrede nedI\enddocument.ѤTheʟ xthatIʀneededwastrivial,butitmadethe lenolongerIcompatiblewithL5ffA͉TU>'ExX209.NAsaconsequence,itseemedthattheonlywayIcouldImakeUUupforthiscrimewastomakeitfullycompatiblewithL5ffA͉TU>'ExX2"(.16gsoI12.7nMinorchanges(version2.0)uTIAHseriesHofchangesand xesweremadeinMarch1992.LwManybytheoriginal IauthoriothersbyRonaldKappGert(R.Kappert@urc.kun.nl)whoreplacedliteralIstringswith\figurename,andsoon;'andbyschultz@unixg.ubGc.cawhopointedIoutUUgobblingbugwith\nomarkersintext.6I12.8nBrianJunker'smo`di cations(version2.0)IBrianzJunker(brian@stat.cmu.edu)madeanumbGerof xes.THerearehischangeIcomments:U81.bChangedr\comment"to\ gure"and\komment"to\table"throughout,ytobavoidHcollisionswithotherstyle les'de nitionsof\comment".ZAlso xesb\begin{table}endswith\end{komment}errorgeneratedbymy(older)bversionUUofPCTU>'ExX.U82.bFixedUUgobbleof oatpGositionspeci ers.qTherearetwoUUwaystodothis:f8(a)x\write\ifnextchar[{\gobbleuntilnext}{}€intoeveryenvironment xwrittenUUto\jobname.fff,etc.;e(b)xsave kL5ffA͉TU>'ExX'solddef'sof\figureand\tableandre-usethemwhenxproGcessing g'sandtables._Iochosethelatterapproach,TformaximumxconsistencyUUwithL5ffA͉TU>'ExX,otherstyle les,etc.U83.bAddeddef'sof\tablenameand\figurename,=whichmyversionofPC-TU>'ExXbseemedUUtoneed.q[backwardUUcompatibilityforearlierversions|jdm]U84.bMovedformattingof gureandtablemarkersto\figureplaceandb\tableplace.U85.bStyle`change:in-textmarkersarenowcenteredreminderslike\[Figure4babGoutUUhere.]".U86.bStyle4change:addedlistoftablesand gurestothetableand guresections.bChangeUUbacktooldformatwith\nofiglistand\notablist.U87.bChangedUUdefaultto\markersintext.U88.bFixedUUtrivialtypGoin\@openposttblsIAllUUchangesmarked%?bjatendofline.q|BrianJunker(brian@stat.cmu.edu)!čI13ifdWishfflistIIQ#doubtQ$thatIwillreallyworkonthiswishlistinthenearfuturebutinadditionIto,solvingtheknowbugs,5 therearetwoma8jorsortsofchangesthatI,(jpg)wouldIlikeUUtosee.U81.bUpGdatingtheverbatimwritingbyusingthetoGolsintheverbatimstandardbpackqages,andSthemoreverbpackqage.SincetheyprovidemoregeneralizedbanucleanerverbatimcoGdethenthiswhichdatesbacktotheearliestdaysofbL5ffA͉TU>'ExX.17~soU82.bIntegrateHwiththefloatpackqagewhich(amongotherthings)enablesthe busertode nenew oatingenvironments.Aend oatv2.2onlyallows guresbandtablestobGeplacedattheend,notalltypesofpotential oats.BNordoesbitallowtheusertospGecifywhichofthetwotypGesitdoesrecognizetobebplacedUUattheend.!čIReferencesI[1]X;Je reyUUGoldbGerg.nThelastpagepackqage.ElectronicdoGcumentationI[2]X;MichelGoGossens,F*rankMittelbach,andAlexanderSamarin.The!L雍Q-t}\cmti7ATKß'E-XCom-X;p}'anion.nAddison-W*esley,UUReading,Massachusetts,UU1994.I[3]X;TheL5ffA͉TU>'ExX3Pro8ject.}L雍QATKß'E-X2"2Zfor{classandp}'ackagewriters l(PreliminaryX;draft)UUJune1994.nElectronicDoGcumentationI[4]X;AnselmLingnau.&OAnImprovedEnvironmentforFloats&OJune1994(version1.2)X;ElectronicUUDoGcumentationI[5]X;SebastianCSRahtzandLeonorBarroGca.4(ACstyleoptionforrotatedob8jectsinX;L5ffA͉TU>'ExXnAprilUU1994.(version2)ElectronicDoGcumentation!čI14ifdTheffdos3cumentationdriver leIThenextbitofcoGdecontainsthedocumentationdriver leforTU>'ExX,i.e.,the leIthatVwillproGducethedocumentationyouarecurrentlyreading.ItwillbGeextractedIfromUUthis lebythedocstripprogram.Ls1S cmsy9h.ow cmss9driveroi Ls2S\documentclass{ltxdoc}Ls3S\setlength\hfuzz{2pt}X%ignoresmalloverfullsLs4S\CodelineIndexLs5S\EnableCrossrefsLs6S%\DisableCrossrefs,%Say\DisableCrossrefsifindexisreadyLs7S%\RecordChangesY%GatherupdateinformationLs8S%\OnlyDescriptionX%commentoutforimplementationdetailsLs9S\begin{document}I10ap\DocInput{endfloat.dtx}I11S\end{document}I12Sh5" cmmi9=driveroiI15ifdTheffimplementationI15.1nFileandpack@ageidenti cationuTIW*e#startbycheckingifthis lewasalreadyloaded.a=Ifnotweidentifythecurrent Iversion.I13Shpack9age#g iI14S\NeedsTeXFormat{LaTeX2e}[1994/06/01]I15S\ProvidesPackage{endfloat}[\filedate\space\fileversion\spaceI16xLaTeX2epackageputsfiguresandtablesatend(jdm)]18 lsoI15.2nHowitwaswrittenuTI[thisUUsubsectionmostlybasedonjdm'soriginaltext.] XOverview:+rede neZthe gureandtableenvironmentfollowingthecommenten-IvironmentOofXlcomment.stywrittenbyVictorEijkhouteijkhout@csrd.uiuc.edu.XInsteadjofproGcessingwhatwasbetweenj\begin{...}and\end{...}, everyIlinexZiswrittentoa le(\jobname.ffffor gures,\jobname.tttfortables).(Then,IwhenSyoudoan\end{document},the guresectionisproGcessed,thenthetableIsectionUUisproGcessed.qThetablesfirstoptionchangesthisorder.XAfterITinitialversions,TII[jdm]receivedmuchhelpfromRonaldKappGertandIBrianUUJunker(seechangelogbGelow).qThanksguys!6I15.3nDe newarningmessageISinceS)I,JPG,ammakingthecommandsoptions,SIS(wantS)towarnuserstousetheIoptions,UUsincethesecommandsshouldbGediscontinuedUUinfutureversions.I17S\newcommand{\ef@OldCmd}[2]{\PackageWarning{endfloat} I18]{Thecommand\protect#1isobsoleteandwillbe\MessageBreakI19apomittedfromfuturereleasesoftheendfloatpackage.\MessageBreakI20apUsethepackageoption`#2'instead.}}6I15.4nFlagsIPutUUallofthenewifsfortheuseroptionsand agshere.I21S\newif\if@domarkersI22S\newif\if@tablistK`%bjI23S\newif\if@figlistK`%bjI24S\newif\if@tabheadI25S\newif\if@figheadI26S\newif\if@tablesfirst6I15.4.1qDefaultTv\raluesISetUUdefaultvqaluesofallofthe agshere.I27S\@domarkerstrueI28S\@tablisttrueI29S\@figlisttrueI30S\@tabheadfalseI31S\@figheadfalseI32S\@tablesfirstfalse 6\markersintext \nomarkersintextIFirstƠsetup agsanddefaults.ŨFirstsetfor aggingwhethermarkersappGearin Itext.I33S\DeclareOption{nomarkers}{\@domarkersfalse}I34S\DeclareOption{markers}{\@domarkerstrue}I35S\newcommand{\markersintext}{\@domarkerstrueI36ap\ef@OldCmd{\markersintext}{markers}}I37S\newcommand{\nomarkersintext}{\@domarkersfalseI38]\ef@OldCmd{\nomarkersintext}{nomarkers}}19so\dotablist \notablistIOptionsUUforcreatinglistsofT*ables...I39S\newcommand{\dotablist}{\@tablisttrue\ef@OldCmd{\dotablist}{tablist}} I40S\newcommand{\notablist}{\@tablistfalse\@tabheadtrueI41ap\ef@OldCmd{\notablist}{notablist}}\dofiglist \nofiglistI...andUUFiguresI42S\newcommand{\dofiglist}{\@figlisttrue\ef@OldCmd{\dofiglist}{figlist}}I43S\newcommand{\nofiglist}{\@figlistfalse\@figheadtrueI44]\ef@OldCmd{\nofiglist}{nofiglist}}XNow@wemakeoptionstablistandnotablistandfiglistandnofiglist. INote[thatoptionswillbGeprocessedinorderofthe\DeclareOptioncommandsIinsthis le.SobyplacinglistafternolistweensurethatifbGotharespeci ed,IlistUUisine ect.XFirstUUtwonewoptionsI45S\DeclareOption{nolists}{\@tablistfalse\@figlistfalse} I46S\DeclareOption{lists}{\@tablisttrue\@figlisttrue}INowlthemorespGeci cones,whichmustcomeafterthemoregeneraloptionstoIgetUUtherightinteractionsbGetweensemi-con ictingoptions.I47S\DeclareOption{notablist}{\@tablistfalse} I48S\DeclareOption{nofiglist}{\@figlistfalse}I49S\DeclareOption{tablist}{\@tablisttrue}I50S\DeclareOption{figlist}{\@figlisttrue}XTheEnotablistandnofiglistoptionsstillleaveEasectionheaderatthebGe- IginningUUofthetablesand gures.XNoteagaintherolethatorderplays,byplacingfigheadafternoheadsitIensuresUUthatfigheadwillbGeine ectifbotharespeci ed.I51S\DeclareOption{heads}{\@figheadtrue\@tabheadtrue} I52S\DeclareOption{noheads}{\@figheadfalse\@tabheadfalse}I53S\DeclareOption{fighead}{\@figheadtrue}I54S\DeclareOption{tabhead}{\@tabheadtrue}I55S\DeclareOption{nofighead}{\@figheadfalse}I56S\DeclareOption{notabhead}{\@tabheadfalse}IAlsoUUneedoptionforputtingtables rstI57S\DeclareOption{tablesfirst}{\@tablesfirsttrue}I58S\DeclareOption{figuresfirst}{\@tablesfirstfalse}IOtherUUoptionstu I59S\DeclareOption*{%I60ap\PackageWarning{endfloat}{Unknownoption`\CurrentOption'}}I61S\ProcessOptions6I15.5nOtherpreliminariesuTII&(jpg)EhavebGeenslowlyworkingatmakingmoreandmoreofthecoGdeforpro- Icessing /tablesand gurescommon,withtheideathatonceI have /factoredoutallIthat:)iscommonwiththemI:"willbGethenbeabletosetupcodeforother oats,?IIhaveBstillaverylongwaytogo,FbutcommoncoGdecreatedforversion2.3ishere.20!xso \efloat@openpost \efloat@newwriteIattemptwUtoreduceold\@openpostfigsand\@openposttblstoonecommand IThe] rstonecalls\newwriteso,_\efloat@newwrite{ttt}willhave]thee ectofI\newwrite\efloat@postttt.I62S\def\efloat@newwrite#1{% I63ap\expandafter\newwrite\csnameefloat@post#1\endcsname}I\efloat@openpost{ttt}UUwillbGethesameasW,\immediate\openout\efloat@postttt=\jobname.ttt\relaxIwhilealsocalling\ef@setct{ttt}{1}toseta ag(@ef@tttopen)inthecaseofIttt.I64S\def\efloat@openpost#1{\expandafter\immediate\expandafter\openout I65p2\csnameefloat@post#1\endcsname=\jobname.#1\relaxI66ap\ef@setct{#1}{1}I67ap\message{(\jobname.#1)}}$\ef@setct $\ef@newctI\ef@newct{ttt}8willcreateanewcountercalled\@ef@tttopenand\ef@setct{ttt}{1} IwouldUUsetitto1.I68S\def\ef@newct#1{%I69XdD\expandafter\newcount\csname@ef@#1open\endcsname}I70S\def\ef@setct#1#2{\expandafter\global\csname@ef@#1open\endcsname=#2\relax}IConditionallyUUopGena leI71S\def\efloat@condopen#1{%I72f\expandafter\ifnum\csname@ef@#1open\endcsname>0\relax\elseI73kJ\efloat@openpost{#1}\fi}IImmediateUUwritetooneofthese les.I74S\def\efloat@iwrite#1#2{%I75ap\expandafter\immediate\expandafter\write\csnameefloat@post#1\endcsnameI76f{#2}} \efloatseparatorIAtXusertsuggestedthatinsomecaseswemaynotwishtoforceend oattoput Ieach7; oatonapagebyitself. xBydefaultthatiswhatitdoGes,byde ningI\efloatseparatortobGe\clearpage.IfyouwantittobGesomethingelse,ByouImayUUrede nethiscommandinthecon guration leorpreamble.I77S\newcommand{\efloatseparator}{\clearpage}y\postfigICountersI78S\newcounter{postfig}XCoGdeUUforopeningthe\jobname.fffI79S\efloat@newwrite{fff} I80S\ef@newct{fff}y\posttblISameUUstu butfortablesI81S\newcounter{posttbl}XCommandsUUforopGening\jobname.tttThissetsupnewwritefortablesI82S\efloat@newwrite{ttt} I83S\ef@newct{ttt}21-so \ef@makeinnocent ZI84S\newcommand*{\ef@makeinnocent}[1]{\catcode`#1=12}b\figureplace L\tableplaceIPlaceUUmarkers. L\figurename \tablenameIMakeUUsurethat\tablenameand\figurenamearede ned.I85S\providecommand{\figurename}{Figure} I86S\providecommand{\tablename}{Table}I87S\newcommand{\figureplace}{%I88ap\begin{center}I89kJ[\figurename~\thepostfig\abouthere.]I90ap\end{center}}I91S\newcommand{\tableplace}{%I92ap\begin{center}I93p2[\tablename~\theposttbl\abouthere.]I94ap\end{center}}6I15.6nParsing1߆T cmtt12figureandtableuTINowUUwegettheutilitiesforparsingneededtogetunmoGdi edcodeinto les.I95S%\def\@gobbleuntilnext[#1]{} s,%Notused(jpg)I96S\let\@bfig\figure=l%bjI97S\let\@btab\tableB&4%bjI98S\let\efloat@float\relax3P\figureIthe0blankspace`appGearingwith\nomarkersintextwas xedbyaddingapGercent IsignF(%)atstrategicloGcations,+Bdeterminedbysetting\tracingcommands=1|IDarrellXAsxmentionedbythejdmabGove,?@thefollowingisbasedoncomment.sty./ItIappGears2Fthattheideaistoturno allcontrolsequenceprocessingandreadinIfrom<'inputeachline,uuntilalineisfoundthatloGokslike\end{figure}.&=ThusIthe}sactualnameoftheenvironment}sishardcoGdedintotheuseofthemacros(seeIsectionUU10.3).q|jpg]I99S\def\figure{%IIfͪwehavealreadydoneonetablethenthe lewewritetoisalreadyopGen,andIthereUUisnothingtodo,elseopGenitup.E100kJ\efloat@condopen{fff}ZXW*ehavereada\begin{figure}togethere. uW*eneedtowritethatintotheI le.XIX(jpg)Xwouldaddthe[htb]parameterstowhatgetswritten,YZbutthatleavesIany{ oatspGeci ersthathadbeenemployed{bytheuserwanderingaroundintheI oatedUUmaterial.E101kJ\efloat@iwrite{fff}{\string\begin{figure*}}%ZISincethe guresarenotactuallyproGcesseduntilmuchlater,&wedon'tuseL5ffA͉TU>'ExX'sI gure4numbGeringmechanism,lbutweuseourown.Alsoputmarkerintext(ifIoption,4set).cInthefuture,aI+maycombinethecounterforthemarkersandtheIcounterUUusedasa agforwhetherthe leisopGenintoonething.E102f\if@domarkers% E103t\addtocounter{postfig}{1}%%bj228;soE104t\figureplace%B&4%bj E105f\fi% L\@currenvirI\@currenvirK(currentenvironment)itsettofoGollatexintoexpGectingtheendof Ithis)environmenttomatchtheenvironmentname./ItwillbGeusedmoreextensivelyIwhenUUdealingwiththeproblemdiscussedinsection10.3.E106f\def\@currenvir{efloat@float}%INowwesetupcatcoGdesforreadingintextwithoutprocessingthings.X&ButneedItoUUmake^^MspGecialsincewewanttoreadlinebyline.E107f\begingroup% E108f\let\do\ef@makeinnocent\dospecials%E109f\ef@makeinnocent\^^L%andwhateverotherspecialcasesE110f\endlinechar`\^^M\catcode`\^^M=12\ef@xfigure}% \efloat@foundendIWhen&\ef@xfigureisverbatim-like&readingthe gureithastodosomeclean- Iup$afteritasfoundthe\end{figure}or\end{figure*}.5Thisisit.[thispartIwrittenUUbyjpgv2.2]E111S\def\efloat@foundend#1#2{\def\next{\endgroup\end{efloat@float}% E112\efloat@iwrite{#1}{\string\end{#2}}%E113\efloat@iwrite{#1}{\string\efloatseparator}%E114\efloat@iwrite{#1}{}}}% L\ef@xfigureI\ef@xfigureYƲreadslinebyline,Zcheckingwhethereachlineisthe\end{figure}. IIfitis, 3thenwriteoutendstu tothe le.[OtherwisewriteoutreadinlinetotheI leUUanddothe\nextline.E115S{\catcode`\^^M=12\endlinechar=-1% E116XdD\gdef\ef@xfigure#1^^M{\def\test{#1}%IT*estUUfor\end{figure}E117p2\ifx\test\ef@endfiguretestE118 \efloat@foundend{fff}{figure*}IT*estUUfor\end{figure*}E119p2\else\ifx\test\ef@enddblfiguretestE120 \efloat@foundend{fff}{figure*}IFinally*,ifnoneoftheabGove,wehavealineoftextinthebGodyofthe gurewhich IshouldUUbGewrittentothe le.E121p2\else%E122\efloat@iwrite{fff}{#1}%E123\let\next\ef@xfigure%E124p2\fi\fi\next}%E125S}%t\ef@endfiguretest Ʋ\ef@enddblfiguretestIGeneralizing6theseend...test6sothattheycanbGeusedforuserspeci ed oating IenvironmentsRwillrequiremore\expandaftersthenyoucanshakeastickat.IIamnotloGokingforwardtotakingonthattask.;4IrshouldlookattheversioncontrolIpackqageUUtoseewhatIcanliftfromthere,sinceitmustbGethesameproblem.E126S{\escapechar=-1%E127XdD\xdef\ef@endfiguretest{\string\\end\string\{figure\string\}}%E128XdD\xdef\ef@enddblfiguretest{\string\\end\string\{figure*\string\}}%E129S}%23Dso"\tableI\tableUUisthesameas\figure.qButIamnotgoingtodoGcumentitasmuch. ӄE130S\def\table{\efloat@condopen{ttt} E131f\efloat@iwrite{ttt}{\string\begin{table*}}%E132f\if@domarkersE133t\addtocounter{posttbl}{1}%bjE134t\tableplaceF%bjE135f\fiE136f\def\@currenvir{efloat@float}%E137f\begingroupE138f\let\do\ef@makeinnocent\dospecialsE139f\ef@makeinnocent\^^L%andwhateverotherspecialcasesE140f\endlinechar`\^^M\catcode`\^^M=12\ef@xtable}z\ef@xtableE141S{\catcode`\^^M=12\endlinechar=-1%E142XdD\gdef\ef@xtable#1^^M{\def\test{#1}E143p2\ifx\test\ef@enddbltabletestE144\efloat@foundend{ttt}{table*}E145p2\else\ifx\test\ef@endtabletestE146\efloat@foundend{ttt}{table*}E147p2\elseE148\efloat@iwrite{ttt}{#1}%E149\let\next\ef@xtableE150p2\fi\fi\next}E151S}zE152S{\escapechar=-1E153XdD\xdef\ef@enddbltabletest{\string\\end\string\{table*\string\}}E154XdD\xdef\ef@endtabletest{\string\\end\string\{table\string\}}E155S}IDe neUUstarred oats.E156S\@namedef{figure*}{\figure}E157S\@namedef{table*}{\table}荍I15.7nPro`cessingFiguresandTablesuTE158S\providecommand{\figuresection}{Figures}E159S\providecommand{\tablesection}{Tables}zf\AtBeginFigures 6\AtBeginTables \AtBeginDelayedFloatsIHere_weset-upthehoGoksforgettingstu into\process...commandseasily*.*vThe Icommand\g@addto@macroisde nedinclasses.dtx.7:IwasabGouttowriteitmy-Iself,Dwwhen@?I@:realizedthatitmustalreadyexistforthingslike\AtBeginDocument.E160S\newcommand{\processfigures@hook}{\@empty} E161S\def\AtBeginFigures{\g@addto@macro\processfigures@hook}E162S\newcommand{\processtables@hook}{\@empty}E163S\def\AtBeginTables{\g@addto@macro\processtables@hook}E164S\newcommand{\processdelayedfloats@hook}{\@empty}E165S\def\AtBeginDelayedFloats{%E166ap\g@addto@macro\processdelayedfloats@hook}E167S\newcommand{\processotherdelayedfloats}{\@empty}zf\processfiguresE168S\def\processfigures{%24P+soIFirstUUtesttoseeifthereareany gurestoproGcess.qIfsodoit. k}E169XdD\expandafter\ifnum\csname@ef@fffopen\endcsname>0k}ICloseUUthe leforwriting.qSeta agsayingso.E170]\immediate\closeout\efloat@postfff\ef@setct{fff}{0}IDealUUwithheadersandlistof guresifnecessaryE171]\clearpage%bj E172]\if@figlist:%bjE173f{\normalsize\listoffigures}Ү%bjE174f\clearpage%%bjE175]\fiE176]\if@figheadE177kJ\section*{\figuresection}_%bjISee&thediscussioninsection15.7.1forwhatproblemthesuppressfloats[t]is Ihere3tosolve.aIfIunderstandtheComp}'anionycorrectly(page144),*thiswasnotIavqailableUUinpreviousversionsofL5ffA͉TU>'ExX. k}E178kJ\suppressfloats[t]r%jpg E179]\fiE180]\markboth{\uppercase{\figuresection}}{\uppercase{\figuresection}}%bjIUseUUanyuserde nedhoGoksjustbeforeinputtingthe le. k}E181]\processfigures@hook\@input{\jobname.fff}E182XdD\fi}Bx 6\processtablesIJustUUlike\processfigures,onlynotsowelldoGcumented.E183S\def\processtables{%E184]\expandafter\ifnum\csname@ef@tttopen\endcsname>0E185]\immediate\closeout\efloat@postttt\ef@setct{ttt}{0}E186]\clearpage%%bjE187]\if@tablistl%bjE188f{\normalsize\listoftables}%bjE189f\clearpagex%bjE190]\fiE191]\if@tabheadE192p2\section*{\tablesection}%bjE193p2\suppressfloats[t]p%jpgE194]\fiE195]\markboth{\uppercase{\tablesection}}{\uppercase{\tablesection}}%bjE196]\processtables@hook\@input{\jobname.ttt}E197XdD\fi}~UI15.7.1qGettingT oatplacemen9tcorrectuTIInversionspriortothisattempt(v2.2c),iwhentheheadsoptionswereused,ithe I oatcouldcouldeither oattothenextpage, leavingthesectionheaderalone,orIcouldq oattothetopofthepage,kleavingsectionheaderatthebGottomofthepage.ITheCideahereistochangetheparametersthatplace oats,GOtoveryverystronglyIencourage oatsatthebGottomofpages.oaItalsoallowsforeasytop oats.ThusIobviating0theneedfor oatpages.PA\suppressfloats[t]inthecommandsthatIissueUUtheheaderswillmakesurethatthe oatsdon't oatabGovetheheaders.E198S\renewcommand{\bottomfraction}{1.0} E199S\renewcommand{\topfraction}{1.0}E200S\renewcommand{\textfraction}{0.0}25ZsoI15.7.2qCallingTtheproQcessingcommandsuTINotez7thatthereisanextraset{and}sothattherestorationoftheoriginal Ide nitions)isinagroupandisnot|global. BIf,forsomereason,youwishthemtoIbGeUUglobalthenusesomethinglikeqڍRs,\makeatletter Rs,\AtBeginDelayedFloats{\global\let\table\@btab\global\let\figure\@bfig}Rs,\makeatotherc \processdelayedfloats vE201S\newcommand{\processdelayedfloats}{{%vIHereweresetstu toapplywhileendstu isbGeingprocessed.kPriortoversion I2.4,UUthesewerein\processtablelsand\processfigures.E202]\def\baselinestretch{1}\normalsize E203ap\let\figure\@bfigE204ap\let\table\@btabITheUUhoGokcomesafterthosesettingssoastooverrideUUthemifdesired. vE205ap\processdelayedfloats@hookIProGcessUUtables, gures,andothers(or gures,tables,others)E206ap\if@tablesfirst\processtables\processfigures E207ap\else\processfigures\processtables\fiE208ap\processotherdelayedfloats}}cE209S\AtEndDocument{%D%jpgE210ap\message{AEDendfloat:ProcessingendFiguresandTables}%%jpgE211ap\onecolumnE212ap\processdelayedfloats}8퍑IUse,UUordon'tuse,con guration le. vE213S\InputIfFileExists{endfloat.cfg}{%E214ap\typeout{***Usingendfloat.cfg***}}{}E215Sh=pack9age#g i I16ifdExtraffmacros{HIGHLfYExps3erimentalI16.1nGettingnewdelayedenvironmentsuTIIhhavehbGeenpromisingtomakeiteasytode nenewsortsofenvironmentswhich IcanbGedelayed.PIdon'texpecttodeliveronthatpromiseanytimesoGon;sountilIIdo,V|IVAwillprovideacoupleofusefulextramacrosinacon guration llwhichtheIuserEmayexpGerimentwith.٘ThetwothatI'haveneededareusedinconjunctionIwiththerotatingVpackqage[5], whichamongotherthingsprovidesenvironmentsIsidewaystableS+andsidewaysfigure.Withthefollowingde nitions,theseshouldIalsoUUworkpropGerlywithend oat.8퍍E216Shcon gٺi E217S%Warning! s,ThisconfigurationfileisexperimentalandE218S%willprobablyonlyworkwiththeversionofendfloat.styE219S%withwhichitisdistributed. s,ItisfullyexpectedthattheE220S%mechanismbywhichthestuffhereisdonewillchangeradicallyE221S%infutureversions. s,FordetailedcommentsonthiscodeseeE222S%endfloat.dtx.26fʠsoXSettingupsidewaystableandsideways gureisfairlyeasysincetheywilluse Ithe(samecountersastableand gure,1andmoreimpGortantlythesametempGoraryI les.qSo,UUnospGecial\processsideways...needstobecreated.XW*eUUmust,ofcourse,haveuseoftherotatingpackqage.E223S\RequirePackage{rotating}IFirst$savethede nitionsfromrotatingoftheenvironmentsinquestion,X}sinceItheyUUwillneedtobGerestoredwhentheyareprocessedattheend.E224S\let\efsaved@sidewaysfigure\sidewaysfigure E225S\let\efsaved@sidewaystable\sidewaystableXAndtorestorethemwhenthetimecomes. ;ThesehoGoksarecalledbyI\processtables0and\processfigures.W*eusethehoGokstorestoretheorig-IinalUUde nitionsofsideways....E226S\AtBeginTables{\let\sidewaystable=\efsaved@sidewaystable\relax} E227S\AtBeginFigures{\let\sidewaysfigure=\efsaved@sidewaysfigure\relax} 6\sidewaystableIThisbrede nitionofsidewaystableisverysimilartotherede nitionof\tableIinendfloatpropGer. Whena\begin{sidewaystable}isexpanded,OitwillwriteI\begin{sidewaystable} to\jobname.tttandotherwisedowhatitdoGesforaI\begin{table},;except5oofcoursethatitisloGokingforan\end{sidewaystable}.E228S\def\sidewaystable{\efloat@condopen{ttt} E229f\efloat@iwrite{ttt}{\string\begin{sidewaystable}}%E230f\if@domarkersE231t\addtocounter{posttbl}{1}E232t\tableplaceE233f\fiE234f\def\@currenvir{efloat@float}%E235f\begingroupE236f\let\do\ef@makeinnocent\dospecialsE237f\ef@makeinnocent\^^L%andwhateverotherspecialcasesE238f\endlinechar`\^^M\catcode`\^^M=12\ef@xsidetable} 6\ef@xsidetableIThe0de nitionof\ef@xsidetableissimilartothede nitionof\ef@xtablein IendfloatpropGer.#Itisalittlebitsimpler,sincethereisnoneedtoworryaboutIthe*-edversions.#Notethatitwritesoutverbatimtheenvironmenttothe.tttI le.QWhenit ndsalinethatsatis esthe\ef@endsidetabletestitwillcallaImacroUUthatwillwrite\end{sidewaystable}tothe\jobname.ttt le.E239S{\catcode`\^^M=12\endlinechar=-1% E240XdD\gdef\ef@xsidetable#1^^M{\def\test{#1}E241p2\ifx\test\ef@endsidetabletestE242\efloat@foundend{ttt}{sidewaystable}E243p2\elseE244\efloat@iwrite{ttt}{#1}%E245\let\next\ef@xsidetableE246p2\fi\next}E247S}XNowUU guresf\sidewaysfigureE248S\def\sidewaysfigure{\efloat@condopen{fff}E249f\efloat@iwrite{fff}{\string\begin{sidewaysfigure}}%27rsoE250f\if@domarkers E251t\addtocounter{postfig}{1}E252t\figureplaceE253f\fiE254f\def\@currenvir{efloat@float}%E255f\begingroupE256f\let\do\ef@makeinnocent\dospecialsE257f\ef@makeinnocent\^^L%andwhateverotherspecialcasesE258f\endlinechar`\^^M\catcode`\^^M=12\ef@xsidefigure}f\ef@xsidefigureE259S{\catcode`\^^M=12\endlinechar=-1%E260XdD\gdef\ef@xsidefigure#1^^M{\def\test{#1}E261p2\ifx\test\ef@endsidefiguretestE262\efloat@foundend{fff}{sidewaysfigure}E263p2\elseE264\efloat@iwrite{fff}{#1}%E265\let\next\ef@xsidefigureE266p2\fi\next}E267S}IW*eUUneedthestringstotestforendsofthesidewaysUUthings.E268S{\escapechar=-1%E269XdD\xdef\ef@endsidefiguretest{\string\\end\string\{sidewaysfigure\string\}}%E270XdD\xdef\ef@endsidetabletest{\string\\end\string\{sidewaystable\string\}}}%E271Sh=con gٺi!čIIndexIThe(italicnumbGers(denotethepageswherethecorrespondingentryisdescribed, InumbGers1)underlinedpointtothede nition,8eallothersindicatetheplaceswhereitIisUUused.!4ߍmmJSymCbKols %I\@bfigP}.΍}.}.}.}.}.}.}. $96,T203I\@btabP}.΍}.}.}.}.}.}.}. $97,T204I\@currenvir}.΍}.}.}.}.}.}. g}. 5t106 5tfe n,T136,234,254I\@domarkersfalse 833,T37I\@domarkerstruez}.΍}.}.g}.΍}.}.}.}.}.}. O27,T34,35I\@empty&160,162,164,167I\@figheadfalsevN31,T52,55I\@figheadtrue /43,T51,53I\@figlistfalsevN43,T45,48I\@figlisttrue- }.΍}.}.}.}.g}.΍}.}.}. 29,T42,46,50I\@gobbleuntilnextyꍑ}. 95I\@makecaption- }.΍}.}.}.}.}. aS3j cmti99I\@tabheadfalsevN30,T52,56I\@tabheadtrue /40,T51,544ߍª\@tablesfirstfalseT}. બ}.΍}.}.}.}.}.}.}.}. (32,T58ª\@tablesfirsttrueyꍑ}. 57ª\@tablistfalsevN40,T45,47ª\@tablisttrue- }.΍}.}.}.}.બ}.΍}.}.}. 28,T39,46,49{eAª\addtocounter- }.΍}.}.}.}.બ}. 5t103,T133,231,251ª\AtBeginDelayedFloatsબ}.΍}.}.}.}.}.}.}.}. >6,T160Tfe ª\AtBeginFiguresz}.΍}.}.બ}.΍}.}.}.}.}. #6,T160Tfe N,T227ª\AtBeginTablesB}.΍}.}.}.બ}.΍}.}.}.}.}. #6,T160Tfe N,T226ª\AtEndDocumentB}.΍}.}.}.209NBª\baselinestretch}.΍}.2024ߍD cmmi10K`y cmr10ٓRcmr7