; TeX output 1997.03.05:1632socDtGGcmr17The7tGGcmss17longtablepacqkage!", cmsy10XQ cmr12DarvidCarlisle2K cmsy8y37 1996/11/12.!Kt : cmbx9Abstractэoo cmr9This_pac9k|ragede nestheow cmss9longtableenvironment,ramulti-pageversionof btabula9r.I Nff cmbx12ListffofTfablesXK`y cmr101oAnUUoptionaltablecaption(usedinthelistoftables))........V2 X2oAUU oatingtableF.............................V4X3oAUUdicult!'ExX'sstandardpage-breakingalgorithm.mItalsosharessomefeatureswithIthe˱tableenvironment.In˱particularitusesthesamecounter,Htable,and˱hasaIsimilar+\captioncommand.Also,aPthestandard\listoftablescommandlistsItablesUUproGducedbyeitherthetableorlongtableenvironments.XTheCfollowingexampleusesmostofthefeaturesofthelongtableenvironment.IAnUUeditedlistingoftheinputforthisexampleappGearsinSection8.X$"V cmbx10Note:;V*ariouspartsofthefollowingtablewillnotlineupcorrectlyuntilIthisSdoGcumenthasbeenrunthroughL5ffٓRcmr7A͉TU>'ExXseveraltimes.q+ThisisacharacteristicIfeatureUUofthispackqage,asdescribGedbelow.IUAffr @ -:q% cmsy6L|{Ycmr8ThisX lehasvÎersionnumbnewalgorithmforaligning`cÎhunks'>ofatableusedinvÎersion4ofthispackagewas devisedXcovupUUseverallines.HڈNoteUUhoweverHthatUUTU>'ExXwillHjneverUUbreakaPpageUUwithinR4suchUUarow.OPageUUbreaksVvonlyUUoGccur>>bGetweenUUrowsofDtheUUtableoratdf\hlineScommands. T*X*xLotsUUoflines͟ ff ff;6likeUUthis. T* X*xLotsUUoflines͟ ff ff;6likeUUthis. T*X*xLotsUUoflines͟ ff ff;6likeUUthis. T*X*xLotsUUoflines͟ ff ff;6likeUUthis. T*X*xLotsUUoflines͟ ff ff;6likeUUthis. T*X*xLotsUUoflines͟ ff ff;6likeUUthis. T*X*xLotsUUoflines͟ ff ff;6likeUUthis. T*Xff1 UXff1 UX*Lots^1ȲofUUlines͟ ff ff;6likeUUthis. T*X*xLotsUUoflines͟ ff ff;6likeUUthis^2 T*Xff1 UXff1 UX*xLotsUUoflines͟ ff ff;6likeUUthis. T*X*xLotsUUoflines͟ ff ff;6likeUUthis. T*(fhۙXff1 UXff1 UX*qTheseUUlineswill͟ ff ff;6appGear T*X*G.inUUplaceofthe͟ ff ff;6usualUUfoGot T*X*0atUUtheend͟ ff ff;6ofUUthetable T*Xff1 UXff1 U-čI2aLChunkffSizeIInordertoTU>'ExXmulti-pagetables,itisnecessarytobreakupthetableintosmaller LTchunksize Ichunks,soXthatTU>'ExXdoGesnothaveXtokeepeverythinginmemoryatonetime.XByIdefault8longtableuses20rowspGerchunk,butthiscanbGesetbytheuser,withe.g.,I\setcounter{LTchunksize}{10}.^3 TheseLchunksdonota ectpagebreaking,IthusQifyouareusingaTU>'ExXwithalotofmemory*,,PyoucansetLTchunksizetoIbGe^severalpagesofthetable.TU>'ExXwillrunfasterwithalargeLTchunksize.Iffr J= "5-:Aacmr61LThisXisafo "5-:2L&s6cmss8longtableXtakÎessp'ExXyouwillseethatvqariouspartsoftheItable{donotlineup.L5ffA͉TU>'ExXwillalsohave{printedawarningthatthecolumnIwidthshadchanged.Flongtablewritesinformationontothe.aux le,sothatitcanIlineupthedi erentchunks.JPriortoversion4ofthispackqage,܌thisinformationIwasnotusedunlessa\setlongtablescommandwasissued,%Chowever,nowtheIinformation'ExXbGeforeItheUUvqarious`chunks'UUofatablealign.XTheexamplesinthissectionaresetwithLTchunksizesettotheminimumIvqalueyofone, todemonstratethee ectswhen\multicolumnentriesoGccurindif-IferentUUchunks.XConsiderT*able3.;Inthesecondchunk,longtableseesthewidemulticolumnIentry*.At`cthispGointitthinksthatthe rsttwocolumnsareverynarrow.AllItheowidthofthemulticolumnentryisassumedtobGeinthethirdcolumn.G(ThisIisUVa`feature'ofTU>'ExX'sprimitive\haligncommand.)qlongtablethenpassestheIinformation; thatthereisawidethirdcolumntothelaterchunks,@Lwith; theresultIthatUUthe rstpassoverUUthetableistoGowide.XIfthe`savedrow'fromthis rstpasswasre-insertedintothetableonthenextIpass,UUthetablewouldlineupintwopasses,butwouldbGemuchtwowide.XTheLsolutiontothisproblemusedinV*ersions1and2,wastousea\kill&`\killIline.yIf;alineis\killed,byusing\killratherthan\\attheendoftheline,Iitisusedincalculatingcolumnwidths,butremovedfromthe naltable.qThusIenteringک\killedcopiesofthelasttworowsbGeforethewidemulticolumnentryIwouldpmeanthat\halign`saw'thewideentriesinthe rsttwocolumns,wandsoIwould*%notwidenthethirdcolumnbysomuchtomakeroGomforthemulticolumnIentry*.XInk-V*ersion3,panewsolutionwasintroGduced.PIfthesavedrowinthe.aux leIwas'notbGeingused,P[longtableusedaspecial`draft'formof\multicolumn,P[thisImoGdi edthede nition,sothespanningentrywasneverconsideredtobGewiderIthanxthecolumnsitspanned.V1Soafterthe rstpass,the.aux lestoredtheIwidestPnormalentryforeachcolumn,-nocolumnwaswideneddueto\spannedIcolumns.By`defaultlongtableignoredthe.aux le,andsoeachrunofL5ffA͉TU>'ExXIwassconsidereda rstpass.w!Oncethe\setlongtablesdeclarationwasgiven,Ithesavedrowinthe.aux le,,andthepropGerde nitionof\multicolumnwereIt.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.zPageUU5ft.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.MNsIt.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t. _longtable.sty`t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.oI҈jT*ableUU3:qAdicult\multicolumncombination:pass1X-Xff3Xff3fdWͤ ff͟fd1 ffo2͟ ff3͟ ff Wͤ ff͟fdwideUUmulticolumnspanning1{3 ffWͤ ff͟fdmulticolumnUU1{2 ff37+ ffWͤ ff͟fdwideUU1 ffz2S ff837+ ffXffYXffYfdOT*ableUU4:qAdicult\multicolumncombination:pass2XffYXffYfdWͤ ffwyfd1 ffz2S ff837+ ffWͤ ff͟fdwideUUmulticolumnspanning1{3 ffWͤ ff͟fdmulticolumnUU1{2 ff3p^ ffWͤ ff͟fdwideUU1 ff12C ff3p^ ffXffUhXffUhfdfT*ableUU5:qAdicult\multicolumncombination:pass3XffUhXffUhfdWͤ ffwyfd1 ff12C ff3p^ ffWͤ ff͟fdwideUUmulticolumnspanning1{3 ffWͤ ff͟fdmulticolumnUU1{2 ff\3  ffWͤ ff͟fdwideUU1 ff12C ff\3  ffXffXfffd*T*ableUU6:qAdicult\multicolumncombination:pass4XffXfffdWͤ ffwyfd1 ff12C ff\3  ffWͤ ff͟fdwideUUmulticolumnspanning1{3 ffWͤ ff͟fdmulticolumnUU1{2 ff\3  ffWͤ ff͟fdwideUU1 ff12C ff\3  ffXffXffIt.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.zPageUU6ft.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.b#sIt.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t. _longtable.sty`t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.oIused.qIfany\multicolumnentrycausedoneofthecolumnstobGewidened,this IinformationcouldnotbGepassedbacktoearlierchunks,andsothetablewouldnotIcorrectlylineupuntilthethirdpass.%ThisalgorithmalwaysconvergedinthreeIpasses"asdescribGedabove,V.but"inexamplessuchastheonesinT*ables3{6,theI nal/widthswerenotoptimalasthewidthofcolumn2,7WwhichisdeterminedbyaI\multicolumn7˲entrywasnotknownwhenthe nalwidthforcolumn3was xed,Iduetothefactthatb}'othK<\multicolumncommandswereswitchedfrom`draft'ImoGdeUUto`normal'modeatthesametime.XV*ersionN4alleviatestheproblemconsiderably..The rstpassofthetablewillIindeedhavethethirdcolumnmuchtoGowide.OHowever,6onthenextpasslongtableIwillZnoticetheerrorandreducethecolumnwidthaccordingly*.IfthishastoIpropagatetochunksbGeforethe\multicolumnone, Fanadditionalpasswill,ofIcourse,w'ExX-inga letwice,ʋyoushouldmakethe rstlineofIeverylongtableo'ExX.XbTheUU\newpagecommandnowworksinsidealongtable.^XChangesUUmadebGetweenUUversions3and4._XbAvnewalgorithmisusedforaligningchunks.OAswellasthewidestwidthbin9eachcolumn,?WlongtableremembGerswhichchunkproGducedthismaximum.bThis~allowsittocheckthatthemaximumisstillachievedinlaterruns.bAslongtablecannowdealwithcolumnsshrinkingasthe leisedited,theb\setlongtablesUUsystemisnolongerneededandisdisabled.XbAn(extrabGene tofthenewalgorithm'sabilitytodealwith`shrinking'bcolumnsËisthatitcangivebGetter(narrower)columnwidthsinthecasebof overlapping\multicolumnentriesindi erentchunksthanthepreviousbalgorithmUUproGduced.XbTheV`draft'multicolumnsystemhasbGeenremoved,V.alongwithrelatedcom-bmandsUUsuchas\LTmulticolumn.XbThedisadvqantageofthenewalgorithmisthatitcantakemorepasses.bThetheoreticalmaximumisapproximatelytwicethelengthofa`chain'bof~columnswithoverlapping~\multicolumnentries,HalthoughinpracticeitbusuallyXconvergesasfastastheoldversion.y(WhichalwaysconvergedinbthreeUUpassesonce\setlongtableswasactivqated.)Xb\\*UUand\nopagebreakcommandsmaybGeusedtocontrolpagebreaking.It.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.zPageUU8ft.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t. sIt.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t. _longtable.sty`t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.o?@I7aLSummary!Kz^T*ableUU7:qAsummaryofrlongtablecommandsX+GP9arameters Naff Nafffd Nb\LTleftGlueUUtotheleftofthetable.~(\fill) Nb\LTrightGlueUUtotherightofthetable.wR (\fill) Nb\LTpreGlueUUbGeforethethetable.YG(\bigskipamount) Nb\LTpostGlueUUafterthethetable.`<(\bigskipamount) Nb\LTcapwidthTheUUwidthofaparbGoxcontainingthecaption.;`(4in) NbLTchunksizeTheUUnumbGerofrowspGerchunk.(20)thOptionalTargumen9tstoUU\begin{longtable} Naff Nafffd NbnonePositionUUasspGeci edby\LTleftand\LTright. Nb[c]CentreUUthetable. Nb[l]PlaceUUthetable ushleft. Nb[r]PlaceUUthetable ushright.cCommandsTtoendtablero9ws Naff Nafffd Nb\\SpGeci esUUtheendofarow Nb\\[hdimci]EndsM9row, thenaddsverticalspace(asinthetabularpƲenvironment). Nb\\*TheUUsameas\\butdisallowsapagebreakaftertherow. Nb\tabularnewlineAlternativertto\\foruseinthescopGeof\raggedrightandsimilarcommandsUUthatrede ne\\. Nb\killRowUUis`killed',butisusedincalculatingwidths. Nb\endheadSpGeci esUUrowstoappearatthetopofeverypage. Nb\endfirstheadSpGeci esUUrowstoappearatthetopthe rstpage. Nb\endfootSpGeci esUUrowstoappearatthebottomofeverypage. Nb\endlastfootSpGeci esUUrowstoappearatthebottomofthelastpage. (kAH cmssbx10longtableTcaptioncommands Naff Nafffd Nb\caption{hc}'aptionci'b}Caption&`T*able?:Zhc}'aptionci,T',0anda`hc}'aptionci'b'entryinthelistoftables. Nb\caption[hlotظi]{hc}'aptionci'b}Captionթ`T*able?:rphc}'aptionci/lҲ',5anda`hlotظi'entryinthelistoftables. Nb\caption[]{hc}'aptionci'b}CaptionUU`T*able?:qǸhc}'aptionci,l)',butnoentryinthelistoftables. Nb\caption*{hc}'aptionci'b}CaptionUU`hc}'aptionci'b',butnoentryinthelistoftables.rCommandsTa9v\railableatthestartofarow Naff Nafffd Nb\pagebreakF*orceUUapagebreak. Nb\pagebreak[hvali]AUU`hint'bGetween0and4ofthedesirabilityofabreak. Nb\nopagebreakProhibitUUapagebreak. Nb\nopagebreak[hvali]AUU`hint'bGetween0and4oftheundesirabilityofabreak. Nb\newpageF*orceUUapagebreak.j`F oQotnoteTcommandsa9v\railableinsidelongtable Naff Nafffd Nb\footnoteF*oGotnotes,UUbutmaynotbeusedinthetablehead&foot. Nb\footnotemarkF*oGotnotemark,UUMaybeusedinthetablehead&foot. Nb\footnotetextF*oGotnoteUUtext,Useinthetablebody*.QSetlongtables Naff Nafffd Nb\setlongtablesObsoleteUUcommand.qDoGesnothingnow.It.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.zPageUU9ft.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t. sIt.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t. _longtable.sty`t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.oI8aLVferbatimffhighlightsfromTable1M\begin{longtable}{@{*}r||p{1in}@{*}} MKILLED&LINE!!!!\killM\caption[Anoptionaltablecaption...]{Alongtable\label{long}}\\M\hline\hlineM\multicolumn{2}{@{*}c@{*}}%eY{Thispartappearsatthetopofthetable}\\M\textsc{First}&\textsc{Second}\\M\hline\hlineM\endfirstheadM\caption[]{(continued)}\\M\hline\hlineM\multicolumn{2}{@{*}c@{*}}%j{Thispartappearsatthetopofeveryotherpage}\\M\textbf{First}&\textbf{Second}\\M\hline\hlineM\endheadM\hlineMThisgoesatthe&bottom.\\M\hlineM\endfootM\hlineMTheselineswill&appear\\Minplaceofthe&usualfoot\\Mattheend&ofthetable\\M\hlineM\endlastfootM\env{longtable} s,columnsarespecified&inthe\\Msamewayas s,inthe\env{tabular}&environment.\\M...M\multicolumn{2}{||c||}{Thisisa...}\\M...MSomelinesmaytake...&`\raggedleftThislastcolumnisa``p''column...`\tabularnewlineM...MLotsoflines&likethis.\\M...M\hlineMLots\footnote{...}oflines&likethis.\\MLots,oflines&likethis\footnote{...}\\M\hlineMLotsoflines&likethis.\\M...M\end{longtable}It.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t. X~PageUU10Yet.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t. usIt.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t. _longtable.sty`t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.oI9aLTheffMacrosLs1S* cmsy9hpack9age#g iI-N cmbx129.1gInitialco`deuTIBeforeUUdeclaringthepackqageoptions,wemustde nesomedefaultshere.3P\LT@errITheUUerrorgeneratingcommandLs2S\def\LT@err{\PackageError{longtable}}y\LT@warnITheUUwarninggeneratingcommandLs3S\def\LT@warn{\PackageWarning{longtable}} 6\LT@final@warnIIf;anyBlongtableshavenotaligned,Qgenerateawarningattheendoftherunat I\AtEndDocument.Ls4S\def\LT@final@warn{% Ls5]\AtEndDocument{%Ls6f\LT@warn{Tablewidthshavechanged.RerunLaTeX.\@gobbletwo}}%Ls7]\global\let\LT@final@warn\relax}6I9.2gOptionsuTIThe|o rsttwo|ooptionsdealwitherrorhandling.Theyarecompatiblewiththe IoptionsUUusedbythetracefntpackqage.$errorshowIOnly7ҲshowUUerrorsontheterminal.q`warnings'arejustsenttothelog le.Ls8S\DeclareOption{errorshow}{%Ls9]\def\LT@warn{\PackageInfo{longtable}}}3PpausingIMakeeverywarningmessageintoanerrorsoTU>'ExXstops.,pMaybGeusefulforde- Ibugging.I10S\DeclareOption{pausing}{%I11]\def\LT@warn#1{%I12f\LT@err{#1}{Thisisnotreallyanerror}}}1set '|finalITheJnextoptionsarejustalternativesyntaxforthe\setlongtablesdeclaration.I13S\DeclareOption{set}{}I14S\DeclareOption{final}{}I15S\ProcessOptions6I9.3gUserSetableParametersuT3P\LTleft y\LTrightIGlueUUtotheleftandrightofthetable,default\fill(iecentred).I16S\newskip\LTleft!\LTleft=\fillI17S\newskip\LTrightY\LTright=\fill"\LTpre 3P\LTpostIGlueUUbGeforeandafterthelongtable.q\bigskipbydefault.I18S\newskip\LTpre%̰\LTpre=\bigskipamountI19S\newskip\LTpost!\LTpost=\bigskipamountIt.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t. X~PageUU11Yet.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t. sIt.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t. _longtable.sty`t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.ob\LTchunksizeIChunkUUsize(ThenumbGerofrowstakenpGer\halign).qDefault20.I20S\newcount\LTchunksize\LTchunksize=20 6\c@LTchunksizeIAddedUUinV3.07toallowtheL5ffA͉TU>'ExXsyntax\setcounter{LTchunksize}{10}.I21S\let\c@LTchunksize\LTchunksize L\LTcapwidthIWidthUUofthe\parboxcontainingthecaption.qDefault4in.I22S\newdimen\LTcapwidth s,\LTcapwidth=4in6I9.4gInternalParametersuTy\LT@head \LT@firsthead y\LT@foot b\LT@lastfootIBoxesUUforthetableheadandfoGot.I23S\newbox\LT@head I24S\newbox\LT@firstheadI25S\newbox\LT@footI26S\newbox\LT@lastfooty\LT@colsICounterUUfornumbGerofcolumns.I27S\newcount\LT@colsy\LT@rowsICounterUUforrowsuptochunksize.I28S\newcount\LT@rowsb\c@LT@tablesICounterQbforthetables,eaddedinV3.02.ePreviousversionsjustusedtheL5ffA͉TU>'ExX Icountertable,sbutthisfailsiftableisresetduringadoGcument,seg.reportclassIresetsUUiteverychapter.XThiswaschangedfrom\newcount\LT@tablesinV3.04.(TL5ffA͉TU>'ExXcountersareIpreserved"correctlywhen\includeonlyisused.?aIntherestofthe le\LT@tablesIhasUUbGeenreplacedby\c@LT@tableswithoutfurthercomment.I29S\newcounter{LT@tables}b\c@LT@chunksIW*eUUneedtocountthroughthechunksofourtablesfromV*ersion4on.I30S\newcounter{LT@chunks}[LT@tables]y\c@table L\fnum@table \tablenameIIfthetablecounterisnotde ned(eginletterstyle),de neit.(Addedin IV3.06.)I31S\ifx\c@table\undefined I32]\newcounter{table}I33]\def\fnum@table{\tablename~\thetable}I34S\fiI35S\ifx\tablename\undefinedI36]\def\tablename{Table}I37S\fi3P\LT@outIInanormalstyle,Blongtableusesthe.aux letorecordthecolumnwidths.6With Iletter.sty,UUuseaseparate.lta le.q(AddedinV3.06.)XNotUUneededfornewletterclass.I\ifx\startlabels\undefined Rs,\let\@auxout\@auxoutI\elseRs,{\@input{\jobname.lta}}%It.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t. X~PageUU12Yet.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t. sIt.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t. _longtable.sty`t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.oRs,\newwrite\@auxout Rs,\immediate\openout\@auxout=\jobname.ltaI\fi$\LT@p@ftnIT*empGoraryUUstorageforfootnotetextina`p'column.I38S\newtoks\LT@p@ftn L\LT@end@penISpGecialpenaltyfortheendofthetable. uDonethiswaytosaveusingupacount Iregister.I39S\mathchardef\LT@end@pen=300006I9.5gThe/kAH cmssbx10longtableenvironmentuT\longtableICalled?by\begin{longtable}.ZThisimplementationdoGesnotworkinmultipleIcolumnUUformats.q\paraddedatV3.04.I40S\def\longtable{% I41]\parI42]\ifx\multicols\@undefinedI43]\elseI44kJ\ifnum\col@number>\@neI45t\@twocolumntrueI46kJ\fiI47]\fiI48]\if@twocolumnI49f\LT@err{longtablenotin1-columnmode}\@ehcI50]\fiI51]\begingroupICheckUUforanoptionalargument.I52]\@ifnextchar[\LT@array{\LT@array[x]}}$\LT@arrayIStartDsettingthealignment.?Basedon\@arrayfromtheL5ffA͉TU>'ExXkernelandthe Iarrayxpackqage.XSinceV*ersion3.02,longtablehasusedtheinternalcounter\c@LT@tables.BTheIL5ffA͉TU>'ExXUUcountertableisstillincrementedsothat\captionworkscorrectly*.I53S\def\LT@array[#1]#2{% I54]\refstepcounter{table}\stepcounter{LT@tables}%ISetUUupthegluearoundthetableifanoptionalargumentgiven.I55]\ifl#1%I56f\LTleft\z@\LTright\fillI57]\else\ifr#1%I58f\LTleft\fill\LTright\z@I59]\else\ifc#1%I60f\LTleft\fill\LTright\fillI61]\fi\fi\fiISetUUuptheseinternalcommandsforlongtable.Rs,\global\let\LT@mcw@rn\relaxI62]\let\LT@mcol\multicolumnIt.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t. X~PageUU13Yet.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.%sIt.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t. _longtable.sty`t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.oINowVrede ne\@tabarraytorestore\hlineand\multicolumnsothatarrays Iand ntabularsnestedinlongtable(orinpageheadingsonlongtablepages)workIoutOK.Savingtheoriginalde nitionsdoneheresothatyoucanloadthearrayIpackqageUUbGeforeorafterlongtable.I63]\let\LT@@tabarray\@tabarray I64]\let\LT@@hl\hlineI65]\def\@tabarray{%I66f\let\hline\LT@@hl[X\let\multicolumn\LT@mcolI67f\LT@@tabarray}% I68]\let\\\LT@tabularcr\let\tabularnewline\\%I69]\def\newpage{\noalign{\break}}%IMoreUUorlessstandardde nitions,but rststarta\noalign.I70]\def\pagebreak{\noalign{\ifnum`}=0\fi\@testopt{\LT@no@pgbk-}4}%I71]\def\nopagebreak{\noalign{\ifnum`}=0\fi\@testopt\LT@no@pgbk4}%I72]\let\hline\LT@hline\let\kill\LT@kill\let\caption\LT@captionI73]\@tempdima\ht\strutboxISetUUupinternalcommandsaccordingtoLampGortorMittelbach.I74]\ifx\extrarowheight\@undefinedIInitialiseUUthesecommandsasintabularxfromtheL5ffA͉TU>'ExXkernel.I75f\let\@acol\@tabacolI76f\let\@classz\@tabclassz\let\@classiv\@tabclassivI77f\def\@startpbox{\vtop\LT@startpbox}\let\LT@LL@FM@cr\@tabularcrI78]\elseIInitialise$6thesecommandsasinarray. k\d@llar$6replacedby\d@llarbegin I\d@llarendinV3.03tomatcharray,6V2.0h.X8W*edonotneedtoset\d@llarbeginIandv\d@llarendasthearray@packqagevgivesthemthecorrectvqaluesatthetopIlevel.I79f\advance\@tempdima\extrarowheight I80f\col@sep\tabcolsepI81f\let\@startpbox\LT@startpbox\let\LT@LL@FM@cr\@arraycrI82]\fiIThen restofthismacroismainlybasedonarraypackqage,t6butn shouldworkforthe IstandardUUtabularxtoGo.I83]\setbox\@arstrutbox\hbox{\vruleI84f\@height\arraystretch\@tempdimaI85f\@depth\arraystretch\dp\strutboxI86f\@width\z@}%I87]\let\@sharp##\let\protect\relaxIInterpretUUthepreambleargument.I88ap\begingroupI89f\@mkpream{#2}%IW*eneedtorename\@preamblehereasF.M.'sschemeuses\global, andwemay IneedItonest\@mkpream,egfor\multicolumnoranarray.OW*eIdonotneedtoIworryUUabGoutnestedlongtablesthough!I90f\xdef\LT@bchunk{%It.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t. X~PageUU14Yet.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.sIt.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t. _longtable.sty`t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.oI91t\global\advance\c@LT@chunks\@ne I92t\global\LT@rows\z@\setbox\z@\vbox\bgroup6ITheQfollowinglinewasaddedinv4.05.]Inordertogetthe\penaltiestoworkat Ichunk-bGoundariesNeedtotakemorecareaboutwhereandwhen\lineskipglueIisadded.PCThefollowingdoGesnothingattopoftable,andinheaderchunks,butinInormalUbGodychunksitsets\prevdepth(to0pt,Ubutanyvqaluewoulddo)sothatI\lineskipªgluewillbGeadded.theimportantthingtonoteisthatthegluewillIbGeUUaddedafterhanyverticalmaterialcomingfrom\noalign. ZI93t\LT@setprevdepth6I94t\tabskip\LTleft\halignto\hsize\bgroupI95p2\tabskip\z@\@arstrut\@preamble\tabskip\LTright\cr}%I96]\endgroup6IFindUUouthowmanycolumnswehave(storein\LT@cols).I97]\expandafter\LT@nofcols\LT@bchunk&\LT@nofcolsZIGet|thesaved|rowfrom\LT@i...\LT@ix(fromthe.aux le),ormakeanewblank Irow.I98]\LT@make@rowIAUUfewmoreinternalcommandsforlongtable.I99]\let\@endpbox\LT@endpbox E100]\m@th\let\par\@emptyE101]\everycr{}\lineskip\z@\baselineskip\z@IStartUUthe rstchunk. ZE102]\LT@bchunk} L\LT@no@pgbkICandsimplifythestandard\@no@pgbkasthisisvmoGdeonlybutthenneedtoclose ItheUU\noalign.E103S\def\LT@no@pgbk#1[#2]{\penalty#1\@getpen{#2}\ifnum`{=0\fi}}$\LT@startIThismacrostartstheproGcessofputtingthetableonthecurrentpage.>MItisnot Icalleduntileithera\\or\endlongtablecommandendsachunk,aswedonotIknowuntilthatpGointwhichofthefourpGossibleheadorfootsectionshavebGeenIspGeci ed.XIt{bGeginsbyrede ningitself,1sothatthetableisonlystartedonce!)8UntilV3.04,Iwas rede nedto\relax,nowuse\endgraftoforcethepage-breakertowakeup. ZE104S\def\LT@start{% E105]\let\LT@start\endgrafE106]\endgraf\penalty\z@\vskip\LTpreZIStartanewpageifthereisnotenoughroGomforthetablehead,Dfoot,andone IextraUUline.E107]\dimen@\pagetotalE108]\advance\dimen@\ht\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fiE109]\advance\dimen@\dp\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fiE110]\advance\dimen@\ht\LT@footZIAtͪthispGointI͇usedtoadd\ht\@arstrutboxand\dp\@arstrutboxasameasure Iofoarowsize.HoweverthiscanfailspGectacularlyforpcolumnswhichmightbGeImuchlarger.-zPreviousversionscouldendupwiththetablestartingwithafoGot,Ithenapagebreakthenaheadthen]/a` rsthead'r!<,Sonowmeasurethe rstlineIofUUthetableaccuratelyby\vsplittingitoutofthe rstchunk.It.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t. X~PageUU15Yet.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.⟠sIt.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t. _longtable.sty`t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.oE111]\dimen@ii\vfuzz E112]\vfuzz\maxdimenE113f\setbox\tw@\copy\z@E114f\setbox\tw@\vsplit\tw@to\ht\@arstrutboxE115f\setbox\tw@\vbox{\unvbox\tw@}%E116]\vfuzz\dimen@iiE117]\advance\dimen@\htE118yw^\ifdim\ht\@arstrutbox>\ht\tw@\@arstrutbox\else\tw@\fiE119]\advance\dimen@\dpE120yw^\ifdim\dp\@arstrutbox>\dp\tw@\@arstrutbox\else\tw@\fiE121]\advance\dimen@-\pagegoalE122]\ifdim\dimen@>\z@\vfil\break\fiIStoreUUheightofpageminustablefoGotin\@colroom.E123p2\global\@colroom\@colhtIIfUUthefoGotisnonempty*,reducethe\vsizeand\@colroomaccordingly.E124]\ifvoid\LT@foot\else E125f\advance\vsize-\ht\LT@footE126f\global\advance\@colroom-\ht\LT@footE127f\dimen@\pagegoal\advance\dimen@-\ht\LT@foot\pagegoal\dimen@E128f\maxdepth\z@E129]\fiIPutUUthetableheadonthepage,andthenswitchtothenewoutputroutine.E130]\ifvoid\LT@firsthead\copy\LT@head\else\box\LT@firsthead\fiE131]\output{\LT@output}}\endlongtableICalledUUby\end{longtable}.E132S\def\endlongtable{%IEssentiallybadda nal\\.ButaswenowknowthenumbGerofactualchunks,fTwe I rst stripaway allentriesreferringtoamaximumentrybGeyondthetable(thisIcanonlyhappGenifatablehasbeenshortened,9orthetablenumberinghasgoneIawry).LCInthatcaseweatleaststartcollectingvqalidnewinformationwiththelastIchunkUUofthistable,byremovingthewidthconstraint.E133]\crcr E134]\noalign{%E135f\let\LT@entry\LT@entry@chopE136f\xdef\LT@save@row{\LT@save@row}}%E137]\LT@echunkE138]\LT@startE139]\unvbox\z@E140]\LT@get@widthsIW*riteUUthedummyrowtothe.aux le.qSinceV3.06,use.ltaforletter.sty.E141]\if@fileswE142f{\let\LT@entry\LT@entry@write\immediate\write\@auxout{%ISince-V*ersion3.02,longtablehasusedtheinternalcounter\c@LT@tablesrather IthantheL5ffA͉TU>'ExXcountertable.8|ThisinformationloGoksentirelydi erentfromver-Isionr;3information.zStill,yuwedon'tneedtorenamethemacronamebGecauselaterIcoGdewillconsidertheinformationtohavenocolumns,,andthuswillthrowtheIoldUUdataaway*.E143p2\gdef\expandafter\noexpandIt.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t. X~PageUU16Yet.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.sIt.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t. _longtable.sty`t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.oE144yw^\csnameLT@\romannumeral\c@LT@tables\endcsname E145{\LT@save@row}}}%E146]\fiIAt]thispGointusedtoissueawarningifa\multicolumnhasbGeensetindraft ImoGde.Rs,\LT@mcw@rnIIfG'ExXattheendofthedoGcument. E147]\ifx\LT@save@row\LT@@save@row E148]\elseE149f\LT@warn{Columnwidthshavechanged\MessageBreakE150Lintable\thetable}%E151f\LT@final@warnE152]\fiIF*orceUUonemoregowiththelongtableoutputroutine. E153]\endgraf\penalty-\LT@end@penINowUUclosethegrouptoreturntothestandardroutine.E154]\endgroupIResetUU\@mparbottomtoallowmarginparsclosetotheendofthetable.^5E155]\global\@mparbottom\z@ E156]\pagegoal\vsizeE157]\endgraf\penalty\z@\addvspace\LTpostIF*oGotnotes.qAsUUdoneinthemulticolpackqage. E158]\ifvoid\footins\else\insert\footins{}\fi}I9.6gCountingColumnsuTIColumnsWarecountedbyexamining\@preamble,bratherthansimplygetting I\@mkpreamtoincrementthecounterasitbuildsthepreamblesothatthispackqageIworks8YwithmanyofthepackqageswhichaddextracolumnspGeci erstoL5ffA͉TU>'ExX'sIstandardUUones.XV*ersionw1counted\@sharp'stocalculatethenumbGerofcolumns,thiswasIchangedwforV*ersion2asitdoGesnotworkwiththeNFSS.Nowcount&'s.I(lfonts.new{\(andnowtheStandardL5ffA͉TU>'ExXde nition)de nes\@tabclasszsoIthatUU\@sharpisinsideagroup.)ꍍ L\LT@nofcolsIFindUUthenext&,thenloGokaheadtoseewhatisnext.E159S\def\LT@nofcols#1&{% E160]\futurelet\@let@token\LT@n@fcols} L\LT@n@fcolsIAddLone, thenstopatan\LT@nofcolsorloGokforthenext&.SThe\expandafter ItrickwasaddedinV*ersion3,alsothenamechangedfrom\@LT@nofcolstopre-IserveUUthe\LT@namingconvention.E161S\def\LT@n@fcols{% E162]\advance\LT@cols\@neE163]\ifx\@let@token\LT@nofcolsIVffr J= "5-:5LThiscannotb\z@E199f\unskip\@xargarraycr{#1}%E200]\elseE201f\@yargarraycr{#1}%E202]\fi⍑IAddUUthedummyrow,and nishthe\halign.E203]\LT@echunkE204]\LT@startE205]\unvbox\z@E206]\LT@get@widthsE207]\LT@bchunk}\LT@echunkIThisUUendsthecurrentchunk,andremovesthedummyrow.E208S\def\LT@echunk{%E209]\crcr\LT@save@row\cr\egroupE210]\global\setbox\@ne\lastbox⍑ITheh followinglinewasaddedinv4.05.(longtablerelieson\lineskipglue(which Iis0pt)toprovidebreakpGointsbGetweeneachrowsothetablemaybGesplitintoIpages.XPrevious^releasesleftthe\lineskipglueattheendofeachchunkthathadIbGeenmaddedwhenthedummyrowwasadded.TherewasnoglueatthestartIof;thenextchunk;asTU>'ExXnormallydoGoes;notput\lineskipglueatthetopofIa=+bGox.)JThismeantthatnormallythechunks ttedtogetherpGerfectly*,w!howeverI\noalign}Cmaterialatachunk}CbGoundarycamebeforethe rstrowofthenextIchunk1butafterthelineskipglueattheendofthischunk.CfThis1isthewrongplace,Ie.g.,Aitmeansevena\penalty10000doGesnotstopabreakasthe\lineskipglueIinSthepreviousitemonthelistprovidesalegalbreakpGoint.SonowremovetheI\lineskip!gluethatwasbGeforethedummyrowandintroGduce\LT@setprevdepthItovsetthe\prevdepthatthestartofthenextchunk,I>tovmakesure\lineskipIglueUUisaddedlater.E211f\unskip E212]\egroup}$\LT@entryIW*eheregivethe`basic'de nitionof\LT@entry,UnamelythatusedinalignmentItemplates.OItShasa\kernonlyifthemaximumisimpGosedfromadi erentchunk.ITheUU\ifhmodetestrevealsthe rstentry*,whenwedon'twanttoaddan&.E213S\def\LT@entry#1#2{%It.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t. X~PageUU19Yet.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.sIt.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t. _longtable.sty`t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.oE214]\ifhmode\@firstofone{&}\fi\omit E215]\ifnum#1=\c@LT@chunksE216]\elseE217f\kern#2\relaxE218]\fi} 6\LT@entry@chopIThisN9de nitionfortheargumentof\LT@save@rowisusedtoscrapallthosemaxima IwhichcouldnotbGeveri edbGecausetheyoccuraftertheendofthetable.UThisIcanhappGenonlyifatablehasbeenshortened(orthesequencinggotmixedup)Isincethepreviousrun.bNotethatthisispremature:cthelastchunkstillisgoingItoUUbGeset,andwiththechoppedlimits.E219S\def\LT@entry@chop#1#2{% E220]\noexpand\LT@entryE221f{\ifnum#1>\c@LT@chunksE222t1}{0pt%E223kJ\elseE224t#1}{#2%E225kJ\fi}}f\LT@entry@writeIT*owriteanentryfortheaux le,_weuseaslightlysurprisingde nitionwhichhas IthesolepurpGoseofavoidingoverfulllines(whichmightbreakTU>'ExX'slimitswhenIreadingtheaux le,probablyyou'dneedtohaveafewhundredcolumnsbGeforeIthisUUhappGenedbut...).E226S\def\LT@entry@write{% E227]\@percentchar^^J\@spacesE228]\noexpand\LT@entry}y\LT@killIThisendsthecurrentchunkasabGove,ˢbutstripso tworows,ˢthe`dummyrow' IandFthe`killedrow'bGeforestartingthenextchunk.lSinceV3.04,ItheoldchunkisIrebGoxed7atthestartoftheboxcontainingthenextchunk.(mThisallows\killtoIbGeUUusedinheaders,whichmustbGeprocessedinasinglebox.E229S\def\LT@kill{% E230]\LT@echunkE231]\LT@get@widthsE232]\expandafter\LT@rebox\LT@bchunk}$\LT@reboxIDrop>theoldchunk>(bGox0)backatthetopofthenewchunk,CBremovingthekilled Irow.qThisUUmacroaddedatV3.04.E233S\def\LT@rebox#1\bgroup{%E234]#1\bgroupE235]\unvbox\z@E236]\unskipE237]\setbox\z@\lastbox}6I9.8gTheDummyRowuTITheUUdummyrowiskeptinsideofthemacro\LT@save@row.\LT@blank@row f\LT@build@blankICreateUUablankrowifwearenotusingtheinfointhe.aux le.E238S\def\LT@blank@row{%E239]\xdef\LT@save@row{\expandafter\LT@build@blankE240f\romannumeral\number\LT@cols001}}It.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t. X~PageUU20Yet.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.,РsIt.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t. _longtable.sty`t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.oIWhoGops!X-What'sthatsupposedtobe?X-Asdrop-inreplacementforthe rsttaskof IAppGendixDintheTU>'ExXbook.EAThe\romannumeralproduces\LT@colsinstancesIofUUmfollowedUUbyi.qThebGelowmacrothenreplacesthemsbyappropriateentries. E241S\def\LT@build@blank#1{% E242]\if#1m%E243f\noexpand\LT@entry{1}{0pt}%E244f\expandafter\LT@build@blankE245]\fi}b\LT@make@rowIPrior6Etoversion4,<|bydefaultdidnotuseinformationinthe.aux lebutnowwe IcanUUde ne\LT@make@rowtousethe.aux le,evenonthe`draft'passes.E246S\def\LT@make@row{%E247]\global\expandafter\let\expandafter\LT@save@rowE248f\csnameLT@\romannumeral\c@LT@tables\endcsnameE249]\ifx\LT@save@row\relaxE250f\LT@blank@rowINow aslightlydicultpartcomes.Beforewedecidemakingthetemplatefrom ItheN.aux leinfowecheckthatthenumbGerof eldshasremainedthesame.oIfitIhasn't,eitherthetableformathaschanged,orwehavethewrongtablealtogether.IInUUbGothcases,wedecidetobetterdropallgatheredinformationandstartover.XTheݡexpansionbGetweenݡ!...!bGelowwillbeemptyifthenumbGerof\LT@entryImacrosincludingargumentsin\LT@save@rowisequalto\LT@cols.J0IfitisnotIempty*,UUwethrowtherowawayandstartfromscratch.E251]\else E252f{\let\LT@entry\orE253kJ\if!%E254~0\ifcase\expandafter\expandafter\expandafter\LT@colsE255~0\expandafter\@gobble\LT@save@rowE256~0\orE257~0\elseE258 \relaxE259~0\fiE260yw^!%E261kJ\elseE262t\aftergroup\LT@blank@rowE263kJ\fi}%E264]\fi} 6\setlongtablesIRede ne:\LT@make@rowtouseinformationinthe.aux le,sifthereisasaved:row IforUUthistablewiththerightnumbGerofcolumns.XSince=?V*ersion3.02,uClongtablehasusedtheinternalcounter\c@LT@tablesratherIthantheL5ffA͉TU>'ExXcountertable.PUThewarningmessagewasaddedatV3.04,aswasItheUU\global,tostopsave-stackUUover ow.XSince"AV*ersion4.01\setlongtablesdoGesnothingasitisnotneeded,U{butisIde nedUUas\relaxforthebGene tofolddocuments.E265S\let\setlongtables\relax 6\LT@get@widthsIThisistheheartoflongtable.=IfitwerenotforthetableheadandfoGot,%thismacroItogetherwiththemoGdi ed\\commandwouldformthebasisofquiteasimpleIlittlepackqage leforlongtables.'ItiscloselymoGdelledonthe\endvrulealignImacroUUofappGendixDoftheTU>'ExXbook.E266S\def\LT@get@widths{%It.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t. X~PageUU21Yet.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.;sIt.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t. _longtable.sty`t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.oI\globalUUaddedatV3.04,tostopsave-stackUUover ow.ILoGop}throughthelastrow,ǖdiscardingglue,andsavingbGoxwidths.cAtV3.04 IchangedthescratchbGoxto2,asthenew\killrequiresthat\box0bGepreserved.E267]\setbox\tw@\hbox{% E268f\unhbox\@neE269f\let\LT@old@row\LT@save@rowE270f\global\let\LT@save@row\@emptyE271f\count@\LT@colsE272f\loopE273p2\unskipE274p2\setbox\tw@\lastboxE275f\ifhbox\tw@E276p2\LT@def@rowE277p2\advance\count@\m@neE278f\repeat}%IRemembGerUUthewidthsifweareinthe rstchunk.E279]\ifx\LT@@save@row\@undefinedE280f\let\LT@@save@row\LT@save@rowE281]\fi} L\LT@def@rowIAddZacolumntothedummyrow. Namechangedfrom\defLT@save@rowin IV*ersionUU3,topreservethe\LT@namingconvention.E282S\def\LT@def@row{%IW*ea-startbypickingtherespGectiveentryfromouroldrow.NTheserede nitionsofI\LT@entryUUareloGcaltothegroupstartedin\LT@get@widths.E283]\let\LT@entry\or E284]\edef\@tempa{%E285f\ifcase\expandafter\count@\LT@old@rowE286f\elseE287p2{1}{0pt}%E288f\fi}%INowUUwetacktherightcombinationinfrontof\LT@save@row:E289]\let\LT@entry\relaxE290]\xdef\LT@save@row{%E291f\LT@entryE292f\expandafter\LT@max@sel\@tempaE293f\LT@save@row}} L\LT@max@selIAndithisishowtoselecttherightcombination.Notethatwetaketheoldmax- IimuminformationonlyifthesizedoGesnotchangeineitherdirection.IfthesizeIhasgrown,;weofcoursehaveanewmaximum.6Ifthesizehasshrunk,;theoldmax-Iimum͞(whichwasexplicitlynotenforcedbGecauseofbeinginthecurrentchunk)Iisinvqalid,>andwestartwiththischunkasthenewsize.NotethatevenintheIcase'ofequalitywemustusethe\the\wd\tw@constructinsteadof#2bGecause#2ImightbGereadinfromthe le,)andsocouldhave\catcode11versionsofpandtIinUUitwhichwewanttobGereplacedbytheir`propGer'\catcode12versions.E294S\def\LT@max@sel#1#2{% E295]{\ifdim#2=\wd\tw@E296kJ#1%E297ap\elseIt.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t. X~PageUU22Yet.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.KPsIt.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t. _longtable.sty`t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.oE298kJ\number\c@LT@chunks E299ap\fi}%E300]{\the\wd\tw@}}6I9.9gThe\hlineCommanduT$\LT@hlineI\hline8Ųand\hline\hlinebGothproducetwo]lines.hBTheonlydi erencebeingthe Iglue\hsizeE339p2#1{#2:}#3%E340f\elseE341p2\hboxto\hsize{\hfil\box\@tempboxa\hfil}%E342f\fiE343f\endgraf\vskip\baselineskip}%E344]\hss}}}6I9.11nTheOutputRoutineuTIThe5methoGdusedhereforinterfacingaspecialpurposeoutputroutinetothe IstandardUUL5ffA͉TU>'ExXroutineisliftedstraightoutofF.Mittelbach'smulticolpackqage.\LT@outputIActuallyUUthisisnotsobad,withFMleadingtheway*.E345S\def\LT@output{%E346]\ifnum\outputpenalty<-\@MiE347f\ifnum\outputpenalty>-\LT@end@penIIfUUthiswasa oatoramarginparwecomplain.E348p2\LT@err{floatsandmarginparsnotallowedinalongtable}\@ehcE349f\elseIW*eUUhavereachedtheendofthetable,onthescrollatleast,E350p2\setbox\z@\vbox{\unvbox\@cclv}%E351p2\ifdim\ht\LT@lastfoot>\ht\LT@footITheUUlastfoGotmightnot t,so:^7E352yw^\dimen@\pagegoalE353yw^\advance\dimen@-\ht\LT@lastfootE354yw^\ifdim\dimen@<\ht\z@E355\setbox\@cclv\vbox{\unvbox\z@\copy\LT@foot\vss}%E356\@makecolE357\@outputpageE358\setbox\z@\vbox{\box\LT@head}%IEndUUof\ifdim\dimen@<\ht\@cclc.E359yw^\fiI&effr J= "5-:7LAn0"alternativÎewouldb\ht\LT@foot.E360p2\fiIResetUU\@colroom.E361p2\global\@colroom\@colht E362p2\global\vsize\@colhtIPutUUthelastpageofthetableontothemainverticallist.E363p2\vbox E364yw^{\unvbox\z@\box\ifvoid\LT@lastfoot\LT@foot\else\LT@lastfoot\fi}%IEndUUof\ifnum\outputpenalty?>-\LT@end@pen.E365f\fiIElseUU\outputpenalty?>-\@Mi.E366]\elseIIfUUwehavenotreachedtheendofthetable,E367f\setbox\@cclv\vbox{\unvbox\@cclv\copy\LT@foot\vss}% E368f\@makecolE369f\@outputpageIResetUU\vsize.E370p2\global\vsize\@colroomIPutUUtheheadatthetopofthenextpage.E371f\copy\LT@headIEndUUof\ifnum\outputpenalty?<-\@Mi.E372]\fi}6I9.12nCommandsforthethetableheadandfo`otuT\LT@end@hd@ftIThecoreof\endheadandfriends.StorethecurrentchunkinthebGoxspGeci ed IbyUU#1.qIssueanerrorifthetablehasalreadystarted.Thenstartanewchunk.E373S\def\LT@end@hd@ft#1{% E374]\LT@echunkIChangedUUfrom\relaxto\endgrafatV3.04,see\LT@start.E375]\ifx\LT@start\endgraf E376f\LT@errE377kJ{Longtableheadorfootnotatstartoftable}%E378kJ{IncreaseLTchunksize}%E379]\fiE380]\setbox#1\box\z@E381]\LT@get@widthsE382]\LT@bchunk}\endfirsthead y\endhead y\endfoot b\endlastfootICallUU\LT@end@hd@ftwiththeappropriatebGox.E383S\def\endfirsthead{\LT@end@hd@ft\LT@firsthead}E384S\def\endhead{\LT@end@hd@ft\LT@head}E385S\def\endfoot{\LT@end@hd@ft\LT@foot}E386S\def\endlastfoot{\LT@end@hd@ft\LT@lastfoot}It.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t. X~PageUU25Yet.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.usIt.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t. _longtable.sty`t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.oI9.13nThe\multicolumncommanduTIEarlierFversionsneededaspGecial`draft'formof\multicolumn.BThisisnotneeded IinUUversion4,andsothesecommandshavebGeenremoved. 6\LTmulticolumn\LT@mcwarn6I9.14nFo`otnotesIThe%standard\footnotecommandworksinaccolumn,butweneedtomoGdify Ithe_de nitioninapcolumntoovercome_theextralevelofbGoxing.ThesemacrosIareUUbasedonthearrayxpackqage,UUbutshouldbGeOKforthestandardtabular.\LT@startpboxIAddUUextracoGdetoswitchthede nitionof\@footnotetext.E387S\def\LT@startpbox#1{% E388]\bgroupE389f\let\@footnotetext\LT@p@ftntextE390f\hsize#1%E391f\@arrayparboxrestoreE392f\vrule\@height\ht\@arstrutbox\@width\z@} L\LT@endpboxIAfterUUtheparbGoxisclosed,expand\LT@p@ftnwhichwillexecuteaseriesof I\footnotetext[hnumci%]{hnote[i/C}Icommands.AfterbGeingliftedoutoftheparbox,^theycanmigrateontheirownIfromUUhere.E393S\def\LT@endpbox{% E394]\@finalstrut\@arstrutboxE395]\egroupE396]\the\LT@p@ftnE397]\global\LT@p@ftn{}%E398]\hfil}\LT@p@ftntextIInsideUUthe`p'column,justsaveUUupthefoGotnotetextinatokenregister.E399S\def\LT@p@ftntext#1{%E400]\edef\@tempa{\the\LT@p@ftn\noexpand\footnotetext[\the\c@footnote]}%E401]\global\LT@p@ftn\expandafter{\@tempa{#1}}}%E402Sh)5" cmmi9=pack9age#g iIt.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t. X~PageUU26Yet.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.; 1#fcmti80߆T cmtt12/kAH cmssbx10-N cmbx12* cmsy9)5" cmmi9(kAH cmssbx10'': cmti10&s6cmss8%- cmcsc10$"V cmbx10#ߤN cmtt9"m#R cmss10!