÷ƒ’À;è TeX output 1998.01.17:2005‹ÿÿÿÿ ¨ ýF œ ý¬‘[ŽóDÓítG®G®cmr17¹An›7ten•Œqvironmen“t˜for˜m“ulticolumn˜outputŸùº¯ó!",š cmsy10¾ŽŽ˜Ÿùº¯yŽŽŽŸ’½^³óX«Q cmr12ºF‘ÿVrank‘ê¨Mittelbac¬rhŽŽŸ’˜kÆEmail:‘8àsee–ê¨top“of“the“source“ leŽŽŽŽŽŸ%ˆ‹’© &Prin•¬rted›ê¨Jan“uary˜17,˜1998ŽŸ.’Õ¡Kót ‰: cmbx9ÆAbstractŽŸ¬Ñ‘&ßüóo´‹Ç cmr9ÅThis–bíarticle“describAÇes“the“use“and“the“implemenš¾9tation“of“the“óÒoÇw cmss9Çmulticols“Åen˜vironmen˜t.‘àøThis“en˜vironmen˜tޤ ‘allo•¾9ws›P@switc“hing˜bAÇet“w“een˜one˜and˜m“ulticolumn˜format˜on˜the˜same˜page.‘Ú¿F‘ÿ:«oAÇotnotes˜are˜handled˜correctlyŽ¡‘(for–5éthe“most“part),‘b™but“will“bšAÇe“placed“at“the“b˜ottom“of“the“page“and“not“under“eac¾9h“column.‘Ñ÷LŸýó5‘ü«‡ó¹Aa¨cmr6ÀAŽŽ‘© ÅT‘þuAŸïÿEŽ‘˜ŸX's“ oatŽ¡‘mec•¾9hanism,›Sœho“w“ev“er,˜is–G'partly“disabled“in“the“currenš¾9t“implemen˜tation.‘±éA˜t“the“momen˜t“only“page-wideŽ¡‘ oats–T(i.e.,“star-forms)“can“bšAÇe“used“within“the“scop˜e“of“the“en•¾9vironmen“t.ŽŸ!Äó ÂÖN ff cmbx12ËPreface–ffto“vŒÌersion“1.5ŽŸ\Ÿº‘ óKñ`y cmr10²This–7new“release“conš¸ãtains“t˜w˜oޤ ma‘Ž8jor–Ìoc¸ãhanges:‘ _ûó!m#½R cmss10Ìmulticols“²willŽ¡no¸ãw–pWsuppGort“up“to“10“columnsŽ¡and›÷t•¸ãw“o˜more˜tuning˜pGossibilitiesŽ¡ha•¸ãv“e–°XbGeen“added“to“the“balanc-Ž¡ing–Dºroutine.‘?÷The“balancing“rou-Ž¡tine–DBnoš¸ãw“c˜hec˜ks“the“badness“ofŽŽ’˜ÌÍŸñÇ„QñÇffŸ¸9‘ÌÍthe–ßresulting“columns“and“rejectsޤ ‘ÌÍsolutions–ÂÔthat“are“larger“than“aŽ¡‘ÌÍcertain‘UUtreshold.Ž¡‘ÌÎA¸ãt–ª¨the“same“time“ÌmulticolsŽ¡‘ÌͲhas–ðWbGeen“upgraded“to“run“underŽ¡‘ÌÍLŸýó5‘üffóÙ“ Rcmr7±AŽŽ‘͉²T‘þU>Ÿ'EŽ‘ãxX‘ü2Ÿÿó  b> cmmi10µ"ŽŽ‘. w².Ž¡‘ÌÎI‘›0apGologise–›Bfor“the“state“of“theŽŽ’¡™š„QñÇffŸ¸9‘ÌÍco•Gde›Oûdo“cumen•¸ãtation˜but˜the˜w“orkޤ ‘ÌÍon‘‚¤LŸýó5‘üff±AŽŽ‘͉²T‘þU>Ÿ'EŽ‘ãxX‘ü2Ÿÿµ"ŽŽ‘,Xò²k¸ãept–‚¤me“toGo“busy“toŽ¡‘ÌÍdo–·a“propšGer“job.‘—This“will“hop˜e-Ž¡‘ÌÍfully–…êbGe“corrected“in“the“near“fu-Ž¡‘ÌÍture.ŽŽŽŸ#‹Ë1Ž‘LËInŒÌtros3ductionŽ ˜ ÿ~‘ ²Switc•¸ãhing›ÿûbGet“w“een˜t“w“o˜columnޤ and–ã‹one“column“la•¸ãy“out–ã‹is“pGos-Ž¡sible–õMin“LŸýó5‘üff±AŽŽ‘͉²T‘þU>Ÿ'EŽ‘ãxX,‘ÝJbut“ev¸ãery“useŽ¡of–WÇó"ßê‘ "5Ÿý-:À1ŽŽŽ‘LÜ¿I‘xøstarted–ywith“the“algorithm“givšÃŽen“in“the“T‘þ•AŸ¸ãEŽ‘MXb•Ÿ'EŽ‘ãxX“commands,‘ì”exceptŽ¡that–ó‰ oats“and“marginpars“areŽ¡not›Iñallo•¸ãw“ed˜in˜the˜curren“t˜imple-Ž¡men¸ãtationŸü^ÿ±2ŽŽ‘|s².Ž© zz‘ As–΂its“ rst“action,‘éythe“ÌmulticolsŽ¡²en•¸ãvironmen“t–\mmeasures“the“cur-Ž¡ren¸ãt–Ìnpage“to“determine“whetherŽ¡there–‰ñis“enough“roGom“for“someŽ¡pGortion– }šof“m¸ãulticolumn“out-Ž¡put.‘ ½òThis–n¹is“conš¸ãtrolled“b˜y“theŽ¡¸hÏdimen‘Äc¸iŽ‘&Vݲv‘ÿqÇariable‘7}Í\premulticolsŽ¡²whicš¸ãh–¾‘can“bGe“c˜hanged“b˜y“theŽ¡user–ºØwith“ordinary“LŸýó5‘üff±AŽŽ‘͉²T‘þU>Ÿ'EŽ‘ãxX“com-Ž¡mands.‘¬mIf–Œthe“space“is“less“thanŽ¡Í\premulticols²,‘z™a–ÙŒnew“page“isŽ¡started.‘öOtherwise,‘LÎa–OÍ\vskip“²ofŽ¡Í\multicolsep–UU²is“added.Ÿü^ÿ±3ŽŽŽ¦‘ ²When––¿the“end“of“the“Ìmul-Ž¡ticols› -²en•¸ãvironmen“t˜is˜encoun-Ž¡tered,‘5an–¡åanalogous“mec¸ãhanismŽ¡is›‘emplo•¸ãy“ed,‘^ but˜no“w˜w“e˜testŽ¡whether–O£there“is“a“space“largerŽ¡than–øóÍ\postmulticols“²a¸ãv‘ÿqÇailable.Ž¡Again–°w¸ãe“add“Í\multicolsep“²orŽ¡start–UUa“new“page.ަ‘ It–âis“often“con•¸ãv“enien“t–âto“spreadŽ¡some–7…text“o•¸ãv“er–7…all“columns,‘pjustŽ¡bGefore–}šthe“m¸ãulticolumn“output,Ž¡without–®ëan¸ãy“page“break“in“bGe-Ž¡t•¸ãw“een.‘ÇT‘ÿ*ªo›qÆac“hiev“e˜this˜the˜Ìmulti-Ž¡cols›a²en•¸ãvironmen“t˜has˜an˜optionalŽ¡second–ÅRargumenš¸ãt“whic˜h“can“bGeŽ¡used–i¤for“this“purpGose.‘®´F‘ÿ*ªor“exam-Ž¡ple,‘othe–6text“yš¸ãou“are“no˜w“readingŽ¡w¸ãas–UUstarted“withŽŸ zz‘¹–ó&ߤN cmtt9Ñ\begin{multicols}{3}ޤ ‘,Â[\section{The‘¹–UserŽ¡‘=lžInterface}]‘¹–...ŽŸom²If– §sucš¸ãh“text“is“un˜usuallyŽŽ’˜ÌÍŸ€„H:áff ýÁÅ‘ÌÍlong–qÄ(or“short)“the“v‘ÿqÇalue“ofޤ ‘ÌÍÍ\premulticols–‡'²migh¸ãt“need“ad-Ž¡‘ÌÍjusting–V¾to“prev•¸ãen“t–V¾a“bad“pageŽ¡‘ÌÍbreak.‘ ÕNW‘ÿ*ªe–v‚therefore“pro¸ãvide“aŽ¡‘ÌÍthird–•Qargumenš¸ãt“whic˜h“can“bGeŽ¡‘ÌÍused–Çto“o•¸ãv“erwrite–Çthe“defaultŽ¡‘ÌÍv‘ÿqÇalue–1Îof“Í\premulticols“²just“forŽ¡‘ÌÍthis–ß{oGccasion.‘ :So“if“yš¸ãou“w˜an˜tŽ¡‘ÌÍto–—com¸ãbine“some“longer“singleŽ¡‘ÌÍcolumn–‘ text“with“a“m¸ãulticols“en-Ž¡‘ÌÍvironmen•¸ãt›UUy“ou˜could˜writeŽŸ9‘ †cÑ\begin{multicols}{3}ޤ ‘ l»[\section{Index}Ž¡‘%&QThis–¹–index“contains“...]Ž¡‘ l»[6cm]Ž¡‘?ù...ŽŸ9‘ÌβSeparation–‘of“columns“withޤ ‘ÌÍvš¸ãertical–Дrules“is“ac˜hiev˜edŽ¡‘ÌÍb¸ãy–/dsetting“the“parameterŽ¡‘ÌÍÍ\columnseprule–Ua²to“some“pGosi-Ž¡‘ÌÍtiv¸ãe–‚¨v›ÿqÇalue.‘ùÁIn“this“article“a“v˜alueŽ¡‘ÌÍof–UUÌ.4pt“²w¸ãas“used.Ž¡‘ÌÎSince–œmnarro¸ãw“columns“tendŽ¡‘ÌÍto– Ž5need“adjustmen¸ãts“in“in-Ž¡‘ÌÍterline– ýspacing“w¸ãe“also“pro-Ž¡‘ÌÍvide–ŠËa“¸hÏskip‘¡˜¸iŽ‘&\#²parameter“calledŽ¡‘ÌÍÍ\multicolbaselineskip‘y ²whic¸ãhŽ¡‘ÌÍis–ëadded“to“the“Í\baselineskipŽ¡‘ÌͲparameter–ƒ‹inside“the“Ìmulticols“²en-Ž¡‘ÌÍvironmen¸ãt.‘ ã‡Please–%êuse“this“pa-Ž¡‘ÌÍrameter–*¨with“care“or“lea•¸ãv“e‘*¨itŽ¡‘ÌÍalone;‘ßit–tis“in¸ãtended“only“forŽ¡‘ÌÍpacš¸ãk‘ÿqÇage–Hà le“designers“since“ev˜enŽ¡‘ÌÍsmall–Ïücš¸ãhanges“migh˜t“proGduce“to-Ž¡‘ÌÍtally–3‰unexpGected“cš¸ãhanges“to“y˜ourŽ¡‘ÌÍdoGcumen¸ãt.ŽŸÓd‘ÌÍó'ÂÖN  cmbx12Ò2.1Ž‘'ŒÍBalancing‘sèColumnsŽŸuT‘ÌͲBesides–´ the“previously“men¸ãtionedŽ¡‘ÌÍparameters,‘J×some–H8others“are“pro-Ž¡‘ÌÍvided–Ûto“in uence“the“la•¸ãy“out‘ÛofŽ¡‘ÌÍthe–UUcolumns“generated.Ž¡‘ÌÎP¸ãaragraphing–Ìsin“T‘þU>Ÿ'EŽ‘ãxX“is“con-Ž¡‘ÌÍtrolled–mbš¸ãy“sev˜eral“parameters.Ž¡‘ÌÍOne–~of“the“most“impGortan¸ãt“isŽ¡‘ÌÍcalled–áÌÍ\tolerance²:‘еthis“con¸ãtrolsŽ¡‘ÌÍthe›œnallo•¸ãw“ed˜`loGoseness'˜(i.e.˜theŽŽ’¡™š„H:áff ýÁÅ‘ÌÍamounš¸ãt–Šof“blank“space“bGet˜w˜eenޤ ‘ÌÍw¸ãords).‘úåIts–ƒ default“v‘ÿqÇalue“is“200Ž¡‘ÌÍ(the–ÌöLŸýó5‘üff±AŽŽ‘͉²T‘þU>Ÿ'EŽ‘ãxX“Í\fussy²)“whic¸ãh“is“toGoŽ¡‘ÌÍsmall–IÔfor“narro¸ãw“columns.‘On“theŽ¡‘ÌÍother–š­hand“the“Í\sloppy“²declara-Ž¡‘ÌÍtion–(whic¸ãh“sets“Í\tolerance“²toŽ¡‘ÌÍ10000–~A=“¸1²)–\Õis“toGo“large,‘žµallo¸ãw-Ž¡‘ÌÍing–UUreally“bad“spacing.Ÿü^ÿ±4ŽŽŽ©Ýq‘ÌβW‘ÿ*ªe–ÕStherefore“use“aŽ¡‘ÌÍÍ\multicoltolerance‘0²parameterŽ¡‘ÌÍfor–…Zthe“Í\tolerance“²v‘ÿqÇalue“insideŽ¡‘ÌÍthe–BÌmulticols“²en•¸ãvironmen“t.‘ ~ItsŽ¡‘ÌÍdefault– Î5v‘ÿqÇalue“is“9999“whic¸ãhŽ¡‘ÌÍis–à²less“than“in nit¸ãy“but“`bad'Ž¡‘ÌÍenough– obfor“most“paragraphsŽ¡‘ÌÍin–Rða“mš¸ãulticolumn“en˜vironmen˜t.Ž¡‘ÌÍChanging–£Šits“v‘ÿqÇalue“should“bGeŽ¡‘ÌÍdone–outside“the“Ìmulticols“²en¸ãvi-Ž¡‘ÌÍronmen¸ãt.‘ vSince–¬Í\tolerance“²isŽ¡‘ÌÍset–{Sto“Í\multicoltolerance“²atŽ¡‘ÌÍthe–ÓŠbGeginning“of“ev¸ãery“ÌmulticolsŽ¡‘ÌͲen•¸ãvironmen“t– }›one“can“loGcallyŽ¡‘ÌÍo•¸ãv“erwrite–˜àthis“default“b¸ãy“as-Ž¡‘ÌÍsigning‘ z€Í\tolerance = ¸hÏdesir–ÿ}'e“dŽŽ¡‘ÌÍvalue‘À[¸iŽ‘#¬i².‘šÙThere– °also“exists“aŽ¡‘ÌÍÍ\multicolpretolerance‘ܯ²pa-Ž¡‘ÌÍrameter– Ð’holding“the“v‘ÿqÇalueŽ¡‘ÌÍfor– U`Í\pretolerance“²within“aŽ¡‘ÌÍÌmulticols‘xà²en•¸ãvironmen“t.‘ÜgBothŽ¡‘ÌÍparameters–Lmare“usually“used“onlyŽ¡‘ÌÍb•¸ãy›UUpac“k‘ÿqÇage˜designers.ަ‘ÌÎGeneration– eLof“m¸ãulticolumnŽ¡‘ÌÍoutput–÷tcan“bGe“divided“inš¸ãto“t˜w˜oŽ¡‘ÌÍparts.‘ ÑÃIn–þthe“ rst“part“w¸ãe“areŽ¡‘ÌÍcollecting–¿ûmaterial“for“a“page,Ž¡‘ÌÍshipping–Béit“out,‘~Ncollecting“mate-Ž¡‘ÌÍrial–URfor“the“next“page,‘USand“so“on.Ž¡‘ÌÍAs–Éa“second“step,‘Oæbalancing“willŽ¡‘ÌÍbGe–á„done“when“the“end“of“the“Ìmul-Ž¡‘ÌÍticols›¨J²en•¸ãvironmen“t˜is˜reac“hed.‘j¥InŽ¡‘ÌÍthe–à rst“step“T‘þU>Ÿ'EŽ‘ãxX“migh¸ãt“considerŽ¡‘ÌÍmore–material“whilst“ nding“theŽ¡‘ÌÍ nal–columns“than“it“actuallyŽ¡‘ÌÍuse–ã‹when“shipping“out“the“page.Ž¡‘ÌÍThis–âmigh¸ãt“cause“a“problem“ifŽ¡‘ÌÍa–H…foGotnote“is“encoun¸ãtered“in“theŽ¡‘ÌÍpart–bÝof“the“input“considered,‘f?butŽ¡‘ÌÍnot–4used,‘Ôon“the“curren¸ãt“page.‘VInŽŽŽŸæf‰ff9™`Ÿ J=‘ "5Ÿý-:À2ŽŽŽ‘LÜ¿This–ÕXis“dictated“bšÃŽy“lac˜k“of“time.‘Ç T‘ÿJªo“implemen˜t“ oats“one“has“to“reimplemen˜t“the“whole“LŸþ¢#‘üð¡ÀAŽŽ‘ ï¿T‘þ•AŸ¸ãEŽ‘MX“output“routine.ޤ Š>‘ "5Ÿý-:À3ŽŽŽ‘LÜ¿Actually–‚‚the“added“space“maÃŽy“bšŸ'EŽ‘ãxX“b¸ãy“using“a“Í\pagebreakŽ¡²command–Çin“the“ nal“doGcumen¸ãt.Ž¡Another›K]w•¸ãa“y˜to˜in uence˜the˜bGe-Ž¡ha¸ãvior–îðof“T‘þU>Ÿ'EŽ‘ãxX“in“this“respGectŽ¡is–ª§givš¸ãen“b˜y“the“coun˜ter“v‘ÿqÇariableŽ¡`Ìcollectmo•¸ãre²'.‘gIf›QÅy“ou˜use˜theŽ¡Í\setcounter–’þ²declaration“to“setŽ¡this–Ýúcoun¸ãter“to“¸hÏnumb‘ÿ}'er‘¸iŽ‘.˲,‘€"T‘þU>Ÿ'EŽ‘ãxXŽ¡will–XEconsider“¸hÏnumb‘ÿ}'er‘¸iŽ‘1£²more“(orŽ¡less)–xàlines“bGefore“making“its“ -Ž¡nal–Ådecision.‘ wSo“a“v‘ÿqÇalue“of“¸²1Ž¡ma•¸ãy›6solv“e˜all˜y“our˜problems˜atŽ¡the–ìcost“of“sligh¸ãtly“less“optimalŽ¡columns.ަ‘ In–'the“second“step“(balanc-Ž¡ing–~‘columns)“wš¸ãe“ha˜v˜e“other“bGellsŽ¡and–×[whistles.‘ ÷ÙFirst“of“all“y¸ãouŽ¡can– ³saš¸ãy“Í\raggedcolumns“²if“y˜ouŽ¡don't›-w•¸ãan“t˜the˜bGottom˜lines˜toŽ¡bGe–‡aligned.‘The“default“isŽ¡Í\flushcolumns²,‘ƒso–ÿOT‘þU>Ÿ'EŽ‘ãxX“will“nor-Ž¡mally–.ëtry“to“mak¸ãe“bGoth“theŽ¡top–ãŠand“bGottom“baselines“of“allŽ¡columns‘UUalign.ަ‘ Additionally– =›y¸ãou“can“setŽ¡another– L‘coun¸ãter,‘ ^the“`Ìunbal-Ž¡ance²'–Ž5counš¸ãter,‘mto“some“pGositiv˜eŽ¡¸hÏnumb‘ÿ}'er‘¸iŽ‘(í².‘`¡This–!ãwill“mak¸ãe“all“butŽ¡the– erigh¸ãt-most“column“¸hÏnumb‘ÿ}'er‘¸iŽŽ¡²of–ó/lines“longer“than“they“w¸ãouldŽ¡normally›6‚ha•¸ãv“e˜bGeen.‘ M`Lines'˜inŽ¡this–Å­con¸ãtext“refer“to“normal“textŽ¡lines–1Ò(i.e.“one“Í\baselineskipŽ¡²apart);‘ íth•¸ãus,‘$¨if›.ey“our˜columnsŽ¡con•¸ãtain›¯displa“ys,‘Åpfor˜example,Ž¡y•¸ãou›cma“y˜need˜a˜higher˜¸hÏnumb‘ÿ}'er‘¸iŽŽ¡²to–shift“something“from“one“col-ŽŽ’˜ÌÍ©'„]ì;ff ý¬Å‘ÌÍumn–UUin¸ãto“another.Ž© ö0‘ÌÎUnlik•¸ãe›û`Ìcollectmo“re²,'‘ª§the˜`Ìunbal-ޤ ‘ÌÍance²'–{Acoun¸ãter“is“reset“to“zero“atŽ¡‘ÌÍthe–Íend“of“the“en•¸ãvironmen“t–Íso“itŽ¡‘ÌÍonly–0Xapplies“to“one“Ìmulticols“²en-Ž¡‘ÌÍvironmen¸ãt.ަ‘ÌÎThe›æct•¸ãw“o˜methoGds˜ma“y˜bGe˜com-Ž¡‘ÌÍbined–ì)but“I‘ëÀsuggest“using“theseŽ¡‘ÌÍfeatures–4only“when“ ne“tuningŽ¡‘ÌÍimpGortan¸ãt‘UUpublications.ަ‘ÌÎTw¸ão–ãŠmore“general“tuning“pGos-Ž¡‘ÌÍsibilities–•Rwš¸ãere“added“with“v˜er-Ž¡‘ÌÍsion–óÐ1.5.‘ M9T‘þU>Ÿ'EŽ‘ãxX“allo¸ãws“to“mea-Ž¡‘ÌÍsure–2ôthe“badness“of“a“column“inŽ¡‘ÌÍterms– of“an“in¸ãteger“v‘ÿqÇalue,‘/»whereŽ¡‘ÌÍ0–äömeans“optimal“and“an¸ãy“higherŽ¡‘ÌÍv‘ÿqÇalue–ˆßmeans“a“certain“amoun¸ãtŽ¡‘ÌÍof–P?extra“white“space.‘ b„10000“isŽ¡‘ÌÍconsidered–4to“bGe“in nitely“badŽ¡‘ÌÍ(T‘þU>Ÿ'EŽ‘ãxX–Ÿ'EŽ‘ãxX“will“accept“allŽ¡‘ÌÍsolutions–hßexcept“those“bGeing“o•¸ãv“er-Ž¡‘ÌÍfull.‘ÜkBy–Î6setting“the“coun¸ãter“to“aŽ¡‘ÌÍsmaller–ÿýv‘ÿqÇalue“y¸ãou“can“force“theŽ¡‘ÌÍalgorithm–Ú¦to“searc¸ãh“for“solutionsŽ¡‘ÌÍthat–{?do“not“ha•¸ãv“e–{?columns“with“aŽ¡‘ÌÍlot–UUof“white“space.ަ‘ÌÎHo•¸ãw“ev“er,‘Åif–Á¯the“setting“is“toGoŽ¡‘ÌÍloš¸ãw,‘X\the–$Žalgorithm“ma˜y“not“ ndŽ¡‘ÌÍan¸ãy–‘ acceptable“solution“at“all“andŽ¡‘ÌÍwill–X*then“ nally“c¸ãhoGose“the“ex-Ž¡‘ÌÍtreme–s/solution“of“placing“all“textŽ¡‘ÌÍin¸ãto–UUthe“ rst“column.ަ‘ÌÎOften,‘ºöwhen–socolunms“are“bal-Ž¡‘ÌÍanced,‘¶it–o~is“impGossible“to“ nd“aŽ¡‘ÌÍsolution–aÂthat“distributes“the“textŽ¡‘ÌÍev•¸ãenly›J&o“v“er˜all˜columns.‘P:If˜thatŽ¡‘ÌÍis–USthe“case“the“last“column“usu-Ž¡‘ÌÍally–åêhas“less“text“than“the“oth-ŽŽ’¡™š„]ì;ff ý¬Å‘ÌÍers.‘ wÜIn–the“earlier“releases“thisޤ ‘ÌÍtext–nìwš¸ãas“stretc˜hed“to“proGduce“aŽ¡‘ÌÍcolumn–Gwith“the“same“heigh¸ãt“asŽ¡‘ÌÍall–$©others,‘.esometimes“resulting“inŽ¡‘ÌÍreally–UUugly“loGoking“columns.ŽŸ r¨‘ÌÎIn–¿the“new“release“this“stretc¸ãh-Ž¡‘ÌÍing–-is“only“done“if“the“badnessŽ¡‘ÌÍof–6‚the“ nal“column“is“not“largerŽ¡‘ÌÍthan–ôthe“v‘ÿqÇalue“of“the“coun¸ãter“Ì -Ž¡‘ÌÍnalcolumnbadness².‘ ¼iThe‘àdefaultŽ¡‘ÌÍsetting–Uis“9999,‘nÔthš¸ãus“prev˜en˜tingŽ¡‘ÌÍthe–5Qstretc¸ãhing“for“all“columnsŽ¡‘ÌÍthat–z­T‘þU>¦EŽ‘ãxX“w¸ãould“consider“in-Ž¡‘ÌÍ nitely–ábad.‘ŒlIn“that“case“the“ -Ž¡‘ÌÍnal–N6column“is“allo•¸ãw“ed–N6to“run“shortŽ¡‘ÌÍwhic•¸ãh›—giv“es˜a˜m“uc“h˜bGetter˜result.ŽŸ^†‘ÌÍÒ2.2Ž‘'ŒÍFloats–Üinside“a“ó)‚ÎR6 cmss12Ômul-ŽŸ‘'ŒÍticols‘€Òen• vironmen“tŽŸJ¶‘ÌͲWithin–£‰the“Ìmulticols“²en•¸ãvironmen“tŽ¡‘ÌÍthe–:¦usual“star“ oat“commandsŽ¡‘ÌÍare–ñÃa¸ãv‘ÿqÇailable“but“their“function“isŽ¡‘ÌÍsomewhat–âdi erenš¸ãt“as“in“the“t˜w˜o-Ž¡‘ÌÍcolumn–s»moGde“of“standard“LŸýó5‘üff±AŽŽ‘͉²T‘þU>¦EŽ‘ãxX.Ž¡‘ÌÍStared‘}à oats,–ÇÞe.g.,“Ífigure*²,“de-Ž¡‘ÌÍnote–ipage“wide“ oats“that“areŽ¡‘ÌÍhandled–_Fin“a“similar“fashion“asŽ¡‘ÌÍnormal–à oats“outside“the“Ìmulti-Ž¡‘ÌÍcols‘–V²en•¸ãvironmen“t.‘4ËHo“w“ev“er,‘¦—theyŽ¡‘ÌÍwill–®6nevš¸ãer“sho˜w“up“on“the“pageŽ¡‘ÌÍwhere–~Îthey“are“encoun¸ãtered.‘î3InŽ¡‘ÌÍother–Uw¸ãords,‘®Õone“can“in uenceŽ¡‘ÌÍtheir–%Qplacemenš¸ãt“b˜y“spGecifying“aŽ¡‘ÌÍcom¸ãbination–ð{of“Ít²,–—CÍb²,“and/or‘ð{ÍpŽ¡‘ÌͲin–úötheir“optional“argumen¸ãt,‘d^butŽ¡‘ÌÍÍh–BÖ²došGesn't“w¸ãork“b˜ecause“the“ rstŽ¡‘ÌÍpGossible–Splace“is“the“top“of“theŽ¡‘ÌÍnext–Dèpage.‘lMOne“should“also“note,Ž¡‘ÌÍthat–ŒÉthis“means“that“their“place-Ž¡‘ÌÍmen•¸ãt›•QbGeha“vior˜is˜determined˜b“yŽ¡‘ÌÍthe–Ž?v‘ÿqÇalues“of“Í\topfraction²,‘œzetc.Ž¡‘ÌÍrather–UUthen“b¸ãy“Í\dbl...².ŽŸ^†‘ÌÍÒ2.3Ž‘'ŒÍW‘þàarningsŽŸJ¶‘ÌͲUnder–#‰certain“circumstances“theŽ¡‘ÌÍuse–/ýof“the“Ìmulticols“²en•¸ãvironmen“tŽ¡‘ÌÍmaš¸ãy–Ï¢result“in“in“some“w˜arningsŽ¡‘ÌÍfrom–(T‘þU>¦EŽ›ãxX“or“LŸýó5‘üff±AŽŽ‘͉²T‘þU>¦EŽ˜X.‘ êHere“is“aŽŽŽŸ‚‰ff9™`Ÿ J=‘ "5Ÿý-:À5ŽŽŽ‘LÜ¿The–5reason“bš‘ "5Ÿý-:À6ŽŽŽ‘LÜ¿This–ÕXmessage“will“bšŸ'EŽ‘ãxX“w˜asn't“able“to“ ndŽ¡‘a›\ogo•Go“d˜w•¸ãa“y˜to˜break˜the˜para-Ž¡‘graph.‘èUnderfull–;¶denotes“a“loGoseŽ¡‘line–èIbut“as“long“the“badness“v‘ÿqÇal-Ž¡‘ues–ÝŸis“bGelo¸ãw“10000“the“result“isŽ¡‘probably‘UUacceptable.ŽŸÍUnderfull–?ý\vbox“...‘ úwhileŽ¡‘\output–?ýis“activeަ‘²If–¢a“column“conš¸ãtains“an“c˜harac-Ž¡‘ter–šfwith“an“un¸ãusual“depth,‘ëªforŽ¡‘example–®“a“`(',‘Ïíin“the“bGottom“lineŽ¡‘then–ìthis“message“maš¸ãy“sho˜w“up.Ž¡‘It–lusually“has“no“signi cance“asŽ¡‘long–iyas“the“v‘ÿqÇalue“is“not“moreŽ¡‘than–UUa“few“pGoin¸ãts.ŽŸÍLaTeX–?ýWarning:‘ úI“movedŽ¡‘some–?ýlines“to“the“nextŽ¡‘pageަ‘²As––ömenš¸ãtioned“abGo˜v˜e,‘']ÌmulticolsŽ¡‘²sometimes–§screws“up“the“foGot-Ž¡‘note›!-n•¸ãum“bGering.‘ÕOAs˜a˜pre-Ž¡‘caution,‘cwhenev¸ãer–Èthere“is“aŽ¡‘foGotnote–®ëon“a“page“that“whereŽ¡‘Ìmulticols–¿þ²had“to“lea•¸ãv“e–¿þa“re-Ž¡‘mainder–ª¦for“the“follo¸ãwing“pageŽ¡‘this––wš¸ãarning“appGears.‘ ¾‹Chec˜kŽ¡‘the–÷fošGotnote“n•¸ãum“b˜ering–÷on“thisŽ¡‘page.‘ ¿If–Äpit“turns“out“that“itŽ¡‘is–H…wrong“yš¸ãou“ha˜v˜e“to“man˜uallyŽ¡‘break–Xthe“page“using“Í\newpageŽ¡‘²or‘UUÍ\pagebreak[..]².ŽŸÍFloats–?ýand“marginpars“notŽ¡‘allowed–?ýinside“`multicols'Ž¡‘environment!ŽŽ’˜ÌÍŸñÇ„ðñÇff þ9‘ ÌͲThis–>message“appGears“if“y¸ãou“tryޤ ‘ ÌÍto–*±use“the“Í\marginpar“²com-Ž¡‘ ÌÍmand–´›or“an“unstared“v¸ãersion“ofŽ¡‘ ÌÍthe–Ú§Ì gure“²or“Ìtable“²en•¸ãvironmen“t.Ž¡‘ ÌÍSuc¸ãh–UU oats“will“disappGear!ŽŸýN‘ÌÍÍCommand–?ý\@footnotetext“hasŽ¡‘ ÌÍchanged.‘ úCheck–?ýif“currentŽ¡‘ ÌÍpackage–?ýis“valid.ŽŸþ§‘ ÌͲThis–±Ãmessage“signalsŽ¡‘ ÌÍthat– Î4the“k¸ãernel“commandŽ¡‘ ÌÍÍ\@footnotetext– ‡²doGes“not“ha•¸ãv“eŽ¡‘ ÌÍthe–ãŠde nition“Ìmulticols“²assumesŽ¡‘ ÌÍit–ä»should“ha•¸ãv“e.‘ùOne‘ä»reasonŽ¡‘ ÌÍcan–‡bGe“that“the“Ìmulticols“²v¸ãer-Ž¡‘ ÌÍsion–ÏÊdoGes“not“ t“the“LŸýó5‘üff±AŽŽ‘͉²T‘þU>Ÿ'EŽ‘ãxXŽ¡‘ ÌÍrelease‘I#v•¸ãersion.‘M0Ho“w“ev“er,‘FaŽ¡‘ ÌÍmore–Ñlik¸ãely“cause“is“that“someŽ¡‘ ÌÍother–j¨pac¸ãk‘ÿqÇage“or“class“used“re-Ž¡‘ ÌÍde nes–P’this“command“(whic¸ãhŽ¡‘ ÌÍit–qÄshouldn't).‘ ÇA¸ãt“the“time“ofŽ¡‘ ÌÍwriting–ý›(97/11/16)“the“AMSŽ¡‘ ÌÍclasses›áha•¸ãv“e˜this˜problem.‘¼lTheŽ¡‘ ÌÍcorrect›‚Öw•¸ãa“y˜to˜de ne˜the˜la“y-Ž¡‘ ÌÍout–Såfor“fošGotnotes“is“to“mo˜difyŽ¡‘ ÌÍthe–øñcommands“Í\@makefntextŽ¡‘ ÌͲand–ÀÍ\@makefnmark².‘ ±ÙThe“k¸ãer-Ž¡‘ ÌÍnel–@command“Í\@footnotetextŽ¡‘ ÌͲshould–UUnot“bšGe“mo˜di ed.ŽŸ¡À‘ÌÍÒ2.4Ž‘'ŒÍT‘þàracing–€the“outputŽŸbL‘ÌͲT‘ÿ*ªo–¼nunderstand“the“reasoning“bGe-Ž¡‘ÌÍhind–¸åthe“decisions“T‘þU>Ÿ'EŽ‘ãxX“mak¸ãesŽ¡‘ÌÍwhen–ERproGcessing“a“Ìmulticols“²en¸ãvi-Ž¡‘ÌÍronmenš¸ãt,‘¤Êa–”ætracing“mec˜hanism“isŽ¡‘ÌÍpro•¸ãvided.‘wÙIf›y“ou˜set˜the˜coun“terŽ¡‘ÌÍ`Ìmulticols²'–2ðto“a“pGositiv¸ãe“¸hÏnumb‘ÿ}'er‘¸iŽŽ¡‘ÌͲy¸ãou–°•then“will“get“some“tracing“in-Ž¡‘ÌÍformation–-~on“the“terminal“and“inŽ¡‘ÌÍthe–UUtranscript“ le:ŽŽ’¡™š„ðñÇff þ9‘Ì͸hó+F C– cmbxti10Önumb‘ÿi>er‘r¸iŽ‘9°@²=‘Ç1ó*ò"V cmbx10Õ.ŽŽ‘Qp=²T‘þU>Ÿ'EŽ‘ãxX– Øûwill“no¸ãwޤ ‘ ÌÍtell›Ãy•¸ãou,‘ Lwhenev“er˜it˜en“tersŽ¡‘ ÌÍor›¿þlea•¸ãv“es˜a˜Ìmulticols˜²en“viron-Ž¡‘ ÌÍmen•¸ãt,‘gñthe›d8n“um“bGer˜of˜columns˜itŽ¡‘ ÌÍis–4œw¸ãorking“on“and“its“decisionŽ¡‘ ÌÍabšGout–È…starting“a“new“page“b˜e-Ž¡‘ ÌÍfore–UUor“after“the“en•¸ãvironmen“t.Ž©ªª‘Ì͸hÖnumb‘ÿi>er‘r¸iŽ‘9°@²=‘Ç2Õ.ŽŽ‘Qp=²In–ñthis“caseŽ¡‘ ÌÍy¸ãou–Ž4also“get“information“fromŽ¡‘ ÌÍthe– wbalancing“routine:‘µNtheŽ¡‘ ÌÍheigh¸ãts–Gtried“for“the“left“andŽ¡‘ ÌÍrigh¸ãt-most‘~dcolumns,‘ Ȧinforma-Ž¡‘ ÌÍtion– ¦abGout“shrinking“if“theŽ¡‘ ÌÍÍ\raggedcolumns–5g²declaration“isŽ¡‘ ÌÍin–ä»force“and“the“v‘ÿqÇalue“of“theŽ¡‘ ÌÍ`Ìunbalance²'–UUcounš¸ãter“if“pGositiv˜e.ަ‘Ì͸hÖnumb‘ÿi>er‘r¸iŽ‘9°@²=‘Ç3Õ.ŽŽ‘Qp=²SettingŽ¡‘ Ì͸hÏnumb‘ÿ}'er‘¸iŽ‘:ðß²to–6ùthis“v‘ÿqÇalue“will“ad-Ž¡‘ ÌÍditionally–‰trace“the“mark“han-Ž¡‘ ÌÍdling–ealgorithm.‘ øIt“will“sho¸ãwŽ¡‘ ÌÍwhat–ÜÙmarks“are“found,‘¾¹whatŽ¡‘ ÌÍmarks–ÔÂare“considered,‘4œetc.‘ð T‘ÿ*ªoŽ¡‘ ÌÍfully–Бunderstand“this“informa-Ž¡‘ ÌÍtion–®ëyš¸ãou“will“probably“ha˜v˜e“toŽ¡‘ ÌÍread–3‰carefully“trough“the“imple-Ž¡‘ ÌÍmen¸ãtation.ަ‘Ì͸hÖnumb‘ÿi>er‘r¸iŽ‘9°@‘Dz4Õ.ŽŽ‘Qp=²SettingŽ¡‘ Ì͸hÏnumb‘ÿ}'er‘¸iŽ‘;pß²to–¶ùsuc¸ãh“a“high“v‘ÿqÇalueŽ¡‘ ÌÍwill– èFadditionally“place“anŽ¡‘ ÌÍÍ\hrule–FG²inš¸ãto“y˜our“output,‘„sep-Ž¡‘ ÌÍarating–ôœthe“part“of“text“whic¸ãhŽ¡‘ ÌÍhad–UPalready“bGeen“consideredŽ¡‘ ÌÍon–Çthe“previous“page“from“theŽ¡‘ ÌÍrest.‘øClearly–Zthis“setting“shouldŽ¡‘ ÌÍÏnot‘:õ²bGe–Hused“for“the“ nal“out-Ž¡‘ ÌÍput.‘ÀþIt–Åwill“also“activ‘ÿqÇate“ev¸ãenŽ¡‘ ÌÍmore–¨ßdebugging“coGde“for“markŽ¡‘ ÌÍhandling.ŽŽŽŸ!ÄË3Ž‘LËPrefaces–ffto“older“vŒÌersionsŽŸçÒ3.1Ž‘ÀPreface–€to“v ersion“1.4ŽŸ`!Ÿµøß‘ ²Beside–· xing“some“bugs“asޤ men¸ãtioned–Ãin“the“Ìmulticol.bug“² leŽ¡this–3‹new“release“enhances“theŽ¡Ìmulticols›j¦²en•¸ãvironmen“t˜b“y˜allo“w-Ž¡ing–\mfor“balancing“in“arbitraryŽ¡conš¸ãtexts.‘Z6It–¢Ïis“no˜w,‘¶.for“example,Ž¡pGossible–Ž5to“balance“text“within“aŽŽ’˜ÌÍŸñÇ„UøèffŸ´‘ÌÍÌmulticols–îí²or“a“Ìminipage“²as“sho¸ãwnޤ ‘ÌÍin–wu2“where“a“Ìmulticols“²en¸ãviron-Ž¡‘ÌÍmenš¸ãt–ìmwithin“a“Ìquote“²en˜vironmen˜tŽ¡‘ÌÍwš¸ãas–2¨used.‘f8It“is“no˜w“ev˜en“pGossibleŽ¡‘ÌÍto–UUnest“Ìmulticols“²en•¸ãvironmen“ts.ŽŸ!‘ÌÎThe–_üonly“restriction“to“suc¸ãhŽ¡‘ÌÍinner– 8ÞÌmulticols“²en•¸ãvironmen“tsŽŽ’¡™š„UøèffŸ´‘ÌÍ(nested,‘zýor–suwithin“T‘þU>Ÿ'EŽ‘ãxX's“in¸ãternalޤ ‘ÌÍvš¸ãertical– ]moGde)“is“that“suc˜h“v‘ÿqÇari-Ž¡‘ÌÍan¸ãts–‘Äwill“prošGduce“a“b˜o¸ãx“with“theŽ¡‘ÌÍbalanced–Ñïmaterial“in“it,‘1so“thatŽ¡‘ÌÍthey–à³can“not“bGe“brok¸ãen“acrossŽ¡‘ÌÍpages–UUor“columns.ŽŸ!‘ÌÎAdditionally–‡,I‘†Ýrewrote“the“al-ŽŽŽŽŸ’ç€4ŽŽŒ‹Hô ¨ ýF œ ý⟠²gorithm–cŠfor“balancing“so“that“itޤ will–ƒŠnoš¸ãw“proGduce“sligh˜tly“bGetterŽ¡results.Ž¡‘ I‘¶úupšGdated–·"the“source“do˜cumen-Ž¡tation–¿übut“lik¸ãe“to“apGologize“in“ad-Ž¡v‘ÿqÇance–4œfor“some“`left“o•¸ãv“er'‘4œpartsŽ¡that–|lslippGed“through“the“revision.Ž¡‘ A‘“note–”to“pGeople“who“lik¸ãeŽ¡to›ìmimpro•¸ãv“e˜the˜balancing˜algo-ŽŽ’˜ÌÍŸñÇ„kñÇffŸž9‘ÌÍrithm–øáof“Ìmulticols²:‘¸ÞThe“balanc-ޤ ‘ÌÍing–Ë]routine“in“noš¸ãw“placed“in˜toŽ¡‘ÌÍa–)Ÿ'EŽ‘ãxX3,Ž¡‘ÌÍde ne–þa“faster“algorithm“for“ nd-Ž¡‘ÌÍing–žthe“righš¸ãt“column“heigh˜t,‘áØetc.Ž¡‘ÌÍIf›ˆ„someb•Go“dy˜thinks˜he/she˜has˜anŽ¡‘ÌÍenhancemen•¸ãt›ç"I‘æüw“ould˜bGe˜pleasedŽ¡‘ÌÍto–EQlearn“abšGout“it.‘But“please“ob˜eyŽ¡‘ÌÍthe›ûcop•¸ãyrigh“t˜notice˜and˜don'tŽ¡‘ÌÍc¸ãhange–UUÌmulticol.dtx“²directly!ŽŽŽ¤þ6Ò3.2Ž‘ÀPreface–€to“v ersion“1.2Ž p þ¦‘ ²After–i;the“article“abGout“the“Ìmul-ޤ ticols›‚Z²en•¸ãvironmen“t˜w“as˜publishedŽ¡in–·ÄÎTUGbGoat‘ïy²10#3,‘Ð_I‘·ªgot“n¸ãumer-Ž¡ous–š¨requests“for“these“macros.Ž¡Ho•¸ãw“ev“er,‘rïI‘ÒÅalso–Ójgot“a“c¸ãhangedŽ¡vš¸ãersion–²of“m˜y“st˜yle“ le,‘. togetherŽ¡with–ðÄa“letter“asking“me“if“I‘ð«w¸ãouldŽ¡include–V¾the“c¸ãhanges“to“get“bGetterŽ¡paragraphing–hßresults“in“the“caseŽ¡of– &narro¸ãw“lines.‘ :The“main“dif-Ž¡ferences–'Ïto“mš¸ãy“original“st˜yle“op-Ž¡tion–åçw¸ãere“additional“parametersŽ¡(lik¸ãe–œŽÍ\multicoladjdemerits“²toŽ¡bGe–3åused“for“Í\adjdemerits²,‘k‰etc.)Ž¡whic•¸ãh›Gw“ould˜in uence˜the˜lineŽ¡breaking‘UUalgorithm.Ž¡‘ But–ñÂactually“resetting“suc¸ãh“pa-Ž¡rameters–üpto“zero“or“evš¸ãen“w˜orse“toŽ¡a–LÉnegativš¸ãe“v‘ÿqÇalue“w˜on't“giv˜e“bGet-Ž¡ter–cŒline“breaks“inside“the“ÌmulticolsŽ¡²en•¸ãvironmen“t.‘ œvT‘þU>Ÿ'EŽ‘ãxXs–cline“break-Ž¡ing–gÎalgorithm“will“only“loGok“atŽ¡those–z§pGossible“line“breaks“whic¸ãhŽ¡can–ŒÉbGe“reac¸ãhed“without“a“badnessŽ¡higher–,than“the“curren¸ãt“v‘ÿqÇalue“ofŽ¡Í\tolerance–9²(or“Í\pretoleranceŽ¡²in–ŒWthe“ rst“pass).‘.ÈIf“this“isn't“pGos-Ž¡sible,–ø¢then,“as–×ùa“last“resort,‘ø¢T‘þU>Ÿ'EŽ‘ãxXŽ¡will–}žprošGduce“o•¸ãv“erfull‘}žb˜o“xes.‘ê¢AllŽ¡those–cŠ(and“only“those)“pGossibleŽŽ’˜ÌÍŸ€„f€ff þ£€‘ÌÍbreak–gpšGoin¸ãts“will“b˜e“consideredޤ ‘ÌÍand–d÷ nally“the“sequence“whic¸ãh“re-Ž¡‘ÌÍsults–j¨in“the“few¸ãest“demerits“willŽ¡‘ÌÍbGe–cŒc¸ãhosen.‘ œlThis“means“that“aŽ¡‘ÌÍv‘ÿqÇalue–¬wof“¸²1000“for“Í\adjdemeritsŽ¡‘ÌͲinstructs–£T‘þU>Ÿ'EŽ‘ãxX“to“prefer“visibly“in-Ž¡‘ÌÍcompatible–ìmlines“instead“of“pro-Ž¡‘ÌÍducing–UUbGetter“line“breaks.Ž¡‘ÌÎHo•¸ãw“ev“er,‘ƒ»with–àÛT‘þU>Ÿ'EŽ‘ãxX“3.0“it“isŽ¡‘ÌÍpGossible–&cto“get“decen¸ãt“line“breaksŽ¡‘ÌÍevš¸ãen–‹]in“small“columns“b˜y“settingŽ¡‘ÌÍÍ\emergencystretch–P¦²to“an“appro-Ž¡‘ÌÍpriate–µlv‘ÿqÇalue.‘ ’ I‘´Ðimplemen¸ãted“aŽ¡‘ÌÍv•¸ãersion›nìwhic“h˜is˜capable˜of˜run-Ž¡‘ÌÍning–&—bGoth“in“the“old“and“the“newŽ¡‘ÌÍT‘þU>Ÿ'EŽ‘ãxX–ô (actually“it“will“simply“ig-Ž¡‘ÌÍnore–I"the“new“feature“if“it“is“notŽ¡‘ÌÍa¸ãv‘ÿqÇailable).‘ÍThe–…¬calculation“ofŽ¡‘ÌÍÍ\emergencystretch–±Ý²is“probablyŽ¡‘ÌÍincorrect.‘pãI‘R§made–R¨a“few“tests“butŽ¡‘ÌÍof–eêcourse“one“has“ha•¸ãv“e›eêm“uc“h˜moreŽ¡‘ÌÍexpšGerience–ÁÄwith“the“new“p˜ossi-Ž¡‘ÌÍbilities–cŠto“ac•¸ãhiev“e–cŠthe“maxim¸ãumŽ¡‘ÌÍqualit¸ãy‘ÿ*ª.Ž¡‘ÌÎV‘ÿ*ªersion–d÷1.1a“had“a“nice“`fea-Ž¡‘ÌÍture':‘qÁthe–URpGenalt¸ãy“for“usingŽ¡‘ÌÍthe–5Qforbidden“ oats“w¸ãas“theirŽ¡‘ÌÍultimate–Õ‘remo¸ãv‘ÿqÇal“from“LŸýó5‘üff±AŽŽ‘͉²T‘þU>Ÿ'EŽ‘ãxXsŽ¡‘ÌÍÍ\@freelist–ÖŲso“that“after“a“fewŽ¡‘ÌÍÍ\marginpar²s–íinside“the“Ìmulti-ŽŽ’¡™š„f€ff þ£€‘ÌÍcols›cвen•¸ãvironmen“t˜ oats˜where˜dis-ޤ ‘ÌÍabled–'forev¸ãer.‘ç(Thanks“to“ChrisŽ¡‘ÌÍRoš¸ãwley–ofor“pGoin˜ting“this“out.)‘ÇIŽ¡‘ÌÍremo•¸ãv“ed–¸Ýthis“misbGeha¸ãviour“andŽ¡‘ÌÍat–‹Øthe“same“time“decided“to“al-Ž¡‘ÌÍlo¸ãw–}$at“least“ oats“spanning“allŽ¡‘ÌÍcolumns,–€`e.g.,“generated–^b¸ãy“theŽ¡‘ÌÍÍfigure*›¸å²en•¸ãvironmen“t.‘œwY‘ÿ*ªou˜canŽ¡‘ÌÍsee–Ø*the“new“functionalit¸ãy“in“ta-Ž¡‘ÌÍble–>Î2“whicš¸ãh“w˜as“inserted“at“thisŽ¡‘ÌÍv•¸ãery›¸ápGoin“t.‘œkHo“w“ev“er˜single˜col-Ž¡‘ÌÍumn–Òy oats“are“still“forbidden“andŽ¡‘ÌÍI›çdon't–ç¦think“I˜will“ha•¸ãv“e–ç¦time“toŽ¡‘ÌÍtac¸ãkle–Dºthis“problem“in“the“near“fu-Ž¡‘ÌÍture.‘ !ÁAs–åSan“advice“for“all“whoŽ¡‘ÌÍw•¸ãan“t–Zto“try:‘óÑw¸ãait“for“T‘þU>Ÿ'EŽ‘ãxX“3.0.Ž¡‘ÌÍIt–ˆJhas“a“few“features“whic¸ãh“willŽ¡‘ÌÍmakš¸ãe–Ûlife“m˜uc˜h“easier“in“m˜ulti-Ž¡‘ÌÍcolumn‘Šsurroundings.‘¬eNev¸ãerthe-Ž¡‘ÌÍless–Á.wš¸ãe“are“w˜orking“here“at“theŽ¡‘ÌÍedge–pof“T‘þU>Ÿ'EŽ‘ãxXs“capabilities,‘¶ÎreallyŽ¡‘ÌÍpGerfect–,nsolutions“w¸ãould“need“aŽ¡‘ÌÍdi eren•¸ãt›cŠapproac“h˜than˜it˜w“asŽ¡‘ÌÍdone–UUin“T‘þU>Ÿ'EŽ‘ãxXs“page“builder.Ž¡‘ÌÎThe–:Mtext“bGelo¸ãw“is“nearly“un-Ž¡‘ÌÍc¸ãhanged,‘Û3I‘ÀQonly–Àmadded“doGcumen-Ž¡‘ÌÍtation–¢at“places“where“new“coGdeŽ¡‘ÌÍw¸ãas‘UUadded.ŽŽŽŸ/‘ÄË4Ž‘LËThe‘ffImplemenŒÌtationŽŸç²W‘ÿ*ªe–Rare“noš¸ãw“switc˜hing“to“t˜w˜o-column“output“to“sho˜w“the“abilities“of“this“en˜vironmen˜t“(and“bad“la˜y˜outŽ© decisions).Ž¡Ò4.1Ž‘ÀThe–€do`cumenš tation“driv˜er“ leŽŸ$еŸñuK‘ ²The–gšnext“bit“of“cošGde“con¸ãtains“the“do˜cumen¸ãtationަdriv¸ãer–Ôq le“for“T‘þU>Ÿ'EŽ‘ãxX,–î9i.e.,“the–Ôq le“that“will“proGduce“theŽŽ’éÌÍŸ8ä„ÙffŸïŸ'EŽ‘ãxX“on“theŽ¡Í.dtx‘UU² le.Ž© R9‘üs±1Ž‘ ª®ÉhÇdriverŽ‘oÉiŽŸ ‘üs±2Ž‘ ª®Ñ\documentclass{ltxdoc}ŽŸ´ä²W‘ÿ*ªe–w¸use“the“Íbalancingshow“²option“when“loadingŽ¡Ìmulticols–_²so“that“full“tracing“is“proGduced.‘ÛThis“has“toŽ¡bšGe–=ædone“b˜efore“the“Ídoc“²pac¸ãk‘ÿqÇage“is“loaded,‘B–since“ÍdocŽ¡²otherwise–UUrequires“Ìmulticols“²without“an¸ãy“options.ަ‘üs±3Ž‘ ª®Ñ\usepackage{multicol}ŽŸ ‘üs±4Ž‘ ª®Ñ\usepackage{doc}ŽŸ´ä²First–fdwš¸ãe“set“up“the“page“la˜y˜out“suitable“for“this“ar-Ž¡ticle.ަ‘üs±5Ž‘ ª®Ñ\setlength{\textwidth}{39pc}ޤ ‘üs±6Ž‘ ª®Ñ\setlength{\textheight}{54pc}Ž¡‘üs±7Ž‘ ª®Ñ\setlength{\parindent}{1em}Ž¡‘üs±8Ž‘ ª®Ñ\setlength{\parskip}{0pt–¹–plus“1pt}Ž¡‘üs±9Ž‘ ª®Ñ\setlength{\oddsidemargin}{0pc}Ž¡±10Ž‘ ª®Ñ\setlength{\marginparwidth}{0pc}Ž¡±11Ž‘ ª®Ñ\setlength{\topmargin}{-2.5pc}Ž¡±12Ž‘ ª®Ñ\setlength{\headsep}{20pt}Ž¡±13Ž‘ ª®Ñ\setlength{\columnsep}{1.5pc}ޤ´ä²W‘ÿ*ªe›UUw•¸ãan“t˜a˜rule˜bGet“w“een˜columns.ަ±14Ž‘ ª®Ñ\setlength\columnseprule{.4pt}Ž¡²W‘ÿ*ªe–00also“w•¸ãan“t–00to“ensure“that“a“new“Ìmulticols“²en¸ãvi-ŽŽ’éÌÍŸ„.rff þÛ㎑ÌÍronmen¸ãt–™Ã nds“enough“space“at“the“bGottom“of“theޤ ‘ÌÍpage.Ž© ‘Ìͱ15Ž‘w{Ñ\setlength\premulticols{6\baselineskip}ŽŸ´&‘ÌͲWhen–D¸balancing“columns“w¸ãe“disregard“solutions“thatŽ¡‘ÌÍare–—VtošGo“bad.‘7ËAlso,‘§×if“the“last“column“is“to˜o“bad“w¸ãeŽ¡‘ÌÍtš¸ãypGeset–UUit“without“stretc˜h.ަ‘Ìͱ16Ž‘w{Ñ\setcounter{columnbadness}{7000}ަ‘Ìͱ17Ž‘w{Ñ\setcounter{finalcolumnbadness}{7000}ŽŸ´&‘ÌͲThe–çindex“is“suppGosed“to“come“out“in“four“columns.Ž¡‘ÌÍAnd–UUwš¸ãe“don't“sho˜w“macro“names“in“the“margin.ަ‘Ìͱ18Ž‘w{Ñ\setcounter{IndexColumns}{4}ަ‘Ìͱ19Ž‘w{Ñ\let\DescribeMacro\SpecialUsageIndexަ‘Ìͱ20Ž‘w{Ñ\let\DescribeEnv\SpecialEnvIndexަ‘Ìͱ21Ž‘w{Ñ\renewcommand\PrintMacroName[1]{}ަ‘Ìͱ22Ž‘w{Ñ\CodelineIndexަ‘Ìͱ23Ž‘w{Ñ%\DisableCrossrefs‘3ùr%–¹–Partial“indexަ‘Ìͱ24Ž‘w{Ñ\RecordChanges‘FßÊ%–¹–Change“logŽŸ´&‘ÌͲLine›UUn•¸ãum“bGers˜are˜v“ery˜small˜for˜this˜article.ަ‘Ìͱ25Ž‘w{Ñ\renewcommand{\theCodelineNo}ަ‘Ìͱ26Ž‘ê§Ñ{\scriptsize\rm\arabic{CodelineNo}}ަ‘Ìͱ27Ž‘w{Ñ\settowidth\MacroIndent{\scriptsize\rm–¹–00\“}ަ‘Ìͱ28ŽŽ¦‘ÌÍ29Ž‘w{Ñ\begin{document}ަ‘Ìͱ30Ž‘ê§Ñ\typeoutަ‘Ìͱ31Ž‘!¤=Ñ{****************************************ަ‘Ìͱ32Ž‘1Ñ^^J*–¹–Expect“some“Under-“and“overfull“boxes.ŽŽŽŽŸ’瀲6ŽŽŒ‹y$ ¨ ýF œ ýŸõ±33Ž‘dDÑ^^J****************************************}ŽŸ ±34Ž‘×pÑ\DocInput{multicol.dtx}ŽŽ’éÌÍŸ@„@ffŸòÀ‘Ìͱ35Ž‘w{Ñ\end{document}ŽŸ ‘Ìͱ36Ž‘w{Éhó5ùž" cmmi9È=ÇdriverŽ‘oÉiŽŽŽ¤þ6Ò4.2Ž‘ÀIden ti cation–€and“option“pro`cessingŽ ÆUT ÿR‘ ²W‘ÿ*ªe–t#start“bš¸ãy“iden˜tifying“the“pac˜k‘ÿqÇage.‘ Î1Since“itޤ makš¸ães–’Ýuse“of“features“only“a˜v‘ÿqÇailable“in“LŸýó5‘üff±AŽŽ‘͉²T‘þU>Ÿ'EŽ‘ãxX‘ü2Ÿÿµ"ŽŽ‘,yd²w˜eŽ¡ensure–ŒÊthat“this“format“is“a•¸ãv‘ÿqÇailable.‘&(No“w–ŒÊthis“isŽ¡done–UUearlier“in“the“ le.)ޤ ±37Ž‘ ª®ÉhÇpack¾9ageŽ‘#g ÉiŽ¡±38Ž‘ ª®Ñ%‘¹–\NeedsTeXFormat{LaTeX2e}Ž¡±39Ž‘ ª®Ñ%‘¹–\ProvidesPackage{multicol}[..../../..Ž¡±40Ž‘ ª®Ñ%‘æXv...–¹–multicolum“formatting]ŽŸ‘ ²Next–URwš¸ãe“declare“options“suppGorted“b˜y“Ìmulticols².ޤ Tw¸ão•Gcolumn›…mo“de˜and˜Ìmulticols˜²do˜not˜w¸ãork˜to-Ž¡gether–so“wš¸ãe“w˜arn“abšGout“p˜ossible“problems.‘¿ùHo¸ãw-Ž¡ev•¸ãer,‘'qsince›ýly“ou˜can˜rev“ert˜to˜Í\onecolumn˜²in˜whic“hŽ¡case–~×Ìmulticols“²doGes“w•¸ãork,‘‰7w“e–~×don't“mak¸ãe“this“an“er-Ž¡ror.ޤ ±41Ž‘ ª®Ñ\DeclareOption{twocolumn}Ž¡±42Ž‘×pÑ{\PackageWarning{multicol}{May–¹–not“workŽŽ’éÌÍŸ„ºff ÿP‘Ìͱ43Ž‘PäÑwith–¹–the“twocolumn“option}}ŽŸ‘ÌͲT‘ÿ*ªracing–¢Ais“done“using“a“coun•¸ãter.‘X‹Ho“w“ev“er–¢Ait“is“alsoޤ ‘ÌÍpGossible–‚§to“in•¸ãv“ok“e–‚§the“tracing“using“the“options“de-Ž¡‘ÌÍclared‘UUbGelo¸ãw.ŽŸ ð‘Ìͱ44Ž‘w{Ñ\newcount\c@tracingmulticolsޤ ‘Ìͱ45Ž‘w{Ñ\DeclareOption{errorshow}Ž¡‘Ìͱ46Ž‘&]ÓÑ{\c@tracingmulticols\z@}Ž¡‘Ìͱ47Ž‘w{Ñ\DeclareOption{infoshow}Ž¡‘Ìͱ48Ž‘&]ÓÑ{\c@tracingmulticols\@ne}Ž¡‘Ìͱ49Ž‘w{Ñ\DeclareOption{balancingshow}Ž¡‘Ìͱ50Ž‘&]ÓÑ{\c@tracingmulticols\tw@}Ž¡‘Ìͱ51Ž‘w{Ñ\DeclareOption{markshow}Ž¡‘Ìͱ52Ž‘&]ÓÑ{\c@tracingmulticols\thr@@}Ž¡‘Ìͱ53Ž‘w{Ñ\DeclareOption{debugshow}Ž¡‘Ìͱ54Ž‘&]ÓÑ{\c@tracingmulticols5\relax}Ž¡‘Ìͱ55Ž‘w{Ñ\ProcessOptionsŽŽŽ¡Ò4.3Ž‘ÀStarting–€and“Ending“the“Ômulticols“ÒEn• vironmen“tŽ t®@ þ£§²As–+¡menš¸ãtioned“bGefore,‘3ùthe“Ìmulticols“²en˜vironmen˜t“hasޤ one–Åèmandatory“argumenš¸ãt“(the“n˜um˜bGer“of“columns)Ž¡and–tup“to“t•¸ãw“o–toptional“ones.‘…%W‘ÿ*ªe“start“b¸ãy“readingŽ¡the›1Én•¸ãum“bGer˜of˜columns˜in“to˜the˜Í\col@number˜²regis-Ž¡ter.Ž©x/±56Ž‘ ª®Ñ\def\multicols#1{\col@number#1\relaxŽŸx/²If–ž™the“user“forgot“the“argumen¸ãt,‘°éT‘þU>Ÿ'EŽ‘ãxX“will“complainŽ¡abšGout–•Ra“missing“n•¸ãum“b˜er–•Rat“this“p˜oin¸ãt.‘1¿The“errorŽ¡reco•¸ãv“ery›ÕÐmec“hanism˜will˜then˜use˜zero,‘õîwhic“h˜isn'tŽ¡a›$go•Go“d˜c•¸ãhoice˜in˜this˜case.‘®4So˜w“e˜should˜no“w˜testŽ¡whether–|Ôevš¸ãerything“is“ok‘ÿqÇa˜y‘ÿ*ª.‘èDThe“minim˜um“is“t˜w˜oŽ¡columns–UUat“the“momen¸ãt.ަ±57Ž‘ÚÑ\ifnum\col@number<\tw@ޤ ±58Ž‘"JœÑ\PackageWarning{multicol}%Ž¡±59Ž‘'2Ñ{Using‘¹–`\number\col@number'Ž¡±60Ž‘+½ÈÑcolumns–¹–doesn't“seem“a“good“idea.^^JŽ¡±61Ž‘+½ÈÑI–¹–therefore“use“two“columns“instead}%Ž¡±62Ž‘"JœÑ\col@number\tw@‘¹–\fiŽŸx/²W‘ÿ*ªe›)Ãha•¸ãv“e˜only˜enough˜bGo“x˜registers˜for˜ten˜columns,ޤ so–ñÅwš¸ãe“need“to“c˜hec˜k“that“the“user“hasn't“ask˜ed“forŽ¡more.ަ±63Ž‘ÚÑ\ifnum\col@number>10ޤ ±64Ž‘"JœÑ\PackageError{multicol}%Ž¡±65Ž‘'2Ñ{Too–¹–many“columns}%Ž¡±66Ž‘'2Ñ{Current–¹–implementation“doesn'tŽ¡±67Ž‘+½ÈÑsupport–¹–more“than“10“columns.%Ž¡±68Ž‘+½ÈÑ\MessageBreakŽ¡±69Ž‘+½ÈÑI–¹–therefore“use“10“columns“instead}%Ž¡±70Ž‘"JœÑ\col@number10‘¹–\fiŽŽ’éÌÍŸ„hXìff þ¡§‘ÌͲWithin–¸àthe“en•¸ãvironmen“t›¸àw“e˜need˜a˜spGecial˜v“ersion˜ofޤ ‘ÌÍthe–ÈPkš¸ãernel“Í\@footnotetext“²command“so“w˜e“assignŽ¡‘ÌÍit–UUrigh¸ãt“at“the“bGeginning.ޤ î‘Ìͱ71Ž‘+iÑ\let\@footnotetext\mult@footnotetextŽ©î‘ÌͲNo•¸ãw›UUw“e˜can˜safely˜loGok˜for˜the˜optional˜argumen“ts.Ž¡‘Ìͱ72Ž‘ê§Ñ\@ifnextchar[\mult@cols{\mult@cols[]}}ŽŸÉ‘ÌͲThe–¼õÍ\mult@cols“²macro“grabs“the“ rst“optional“ar-ŽŸ ‘ÌÍgumenš¸ãt–UU(if“an˜y)“and“loGoks“for“the“second“one.Ž¡‘Ìͱ73Ž‘w{Ñ\def\mult@cols[#1]{\@ifnextchar[%ަ‘ÌͲThis–ÍÊargumen¸ãt“should“bGe“a“¸hÏdimen‘Äc¸iŽ‘,ºô²denoting“theޤ ‘ÌÍminimš¸ãum–²¨free“space“needed“on“the“curren˜t“page“toŽ¡‘ÌÍstart–ž the“en•¸ãvironmen“t.‘4¯If–ž the“user“didn't“supply“one,Ž¡‘ÌÍw¸ãe–UUuse“Í\premulticols“²as“a“default.Ž© î‘Ìͱ74Ž‘ê§Ñ{\mult@@cols{#1}}%ŽŸ ‘Ìͱ75Ž‘ê§Ñ{\mult@@cols{#1}[\premulticols]}}ŽŸÉ‘ÌͲAfter–ÿremoš¸ãving“all“argumen˜ts“from“the“input“w˜e“areŽ¡‘ÌÍable–UUto“start“with“Í\mult@@cols².ަ‘Ìͱ76Ž‘w{Ñ\def\mult@@cols#1[#2]{%ŽŸî‘ÌͲFirst–1thing“w¸ãe“do“is“to“decide“whether“or“not“this“isŽ¡‘ÌÍan–¨íunš¸ãbGounded“m˜ulticols“en˜vironmen˜t,‘½Ói.e.‘lone“thatŽ¡‘ÌÍmaš¸ãy–º split“across“pages,‘Ùor“one“that“has“to“bGe“t˜ypGesetŽ¡‘ÌÍinš¸ãto–òöa“bGo˜x.‘JªIf“w˜e“are“in“T‘þU>Ÿ'EŽ‘ãxX's“\inner"“moGde“(e.g.,Ž¡‘ÌÍinside–xa“bGoš¸ãx“already)“then“w˜e“ha˜v˜e“a“bGo˜xed“v˜ersionŽ¡‘ÌÍof–ʰmš¸ãulticols“therefore“w˜e“set“the“Í@boxedmulticolsŽ¡‘ÌͲswitcš¸ãh–Ðyto“true.‘E~The“Ìmulticols“²should“start“in“v˜erticalŽ¡‘ÌÍmoGde.‘\mIf–øâwš¸ãe“are“not“already“there“w˜e“no˜w“force“itŽ¡‘ÌÍwith– ÆÍ\par“²since“otherwise“the“test“for“\inner"“moGdeŽ¡‘ÌÍw•¸ãouldn't›UUsho“w˜if˜w“e˜are˜in˜a˜bGo“x.ŽŽŽŽŸ’ç€7ŽŽŒ‹ŽÆ ¨ ýF œŸðO] ý‘°£±77Ž‘ÚÑ\parŽ© ±78Ž‘ÚÑ\ifinner‘¹–\@boxedmulticolstrueŽŸ’¢²Otherwise–­wš¸ãe“c˜hec˜k“Í\doublecol@number².‘xùThisޤ counš¸ãter–VVis“zero“outside“a“m˜ulticols“en˜vironmen˜t“butŽ¡pšGositiv¸ãe–dAinside“(this“happ˜ens“a“little“later“on).‘žŒInŽ¡the– msecond“case“wš¸ãe“need“to“proGcess“the“curren˜t“m˜ul-Ž¡ticols–aöalso“in“\bšGo¸ãxed“mo˜de"“and“so“cš¸ãhange“the“switc˜hŽ¡accordingly‘ÿ*ª.ޤ’¢±79Ž‘ÚÑ\elseަ±80Ž‘‘Ñ\ifnum‘¹–\doublecol@number>\z@ަ±81Ž‘+½ÈÑ\@boxedmulticolstrueަ±82Ž‘‘Ñ\fiަ±83Ž‘ÚÑ\fiŽŸ’¢²Then–UUw¸ãe“loGok“to“see“if“statistics“are“requested:Ž¡±84Ž‘ÚÑ\mult@info\z@ަ±85Ž‘'2Ñ{Starting–¹–environment“withަ±86Ž‘+½ÈÑ\the\col@number\space‘¹–columns%ŽŸ’¢²In–UUbšGo¸ãxed“mo˜de“w¸ãe“add“some“more“info.Ž¡±87Ž‘0w^Ñ\if@boxedmulticols\MessageBreakަ±88Ž‘>¤ Ñ(boxed‘¹–mode)\fiަ±89Ž‘'2Ñ}%Ž©’¢²Then–™wš¸ãe“measure“the“curren˜t“page“to“see“whether“aޤ useful–£‰pGortion“of“the“mš¸ãulticolumn“en˜vironmen˜t“canŽ¡b•Ge›UUt¸ãyp“eset.‘qÇThis˜routine˜migh¸ãt˜start˜a˜new˜page.ŽŸ’¢±90Ž‘×pÑ\enough@room{#2}%ަ²No•¸ãw›Äw“e˜output˜the˜ rst˜argumen“t˜and˜proGduce˜v“er-Ž¡tical–½space“abGo•¸ãv“e–½the“columns.‘?(Note“that“this“argu-Ž¡menš¸ãt–ÅcorrespGonds“to“the“ rst“optional“argumen˜t“ofŽ¡the–î6Ìmulticols“²en•¸ãvironmen“t.)‘Ÿ'EŽ‘ãxX˜is˜not˜in“v“oking˜the˜outputަ‘ÌÍroutine.ޤ_É‘ÐZ±101Ž‘w{Ñ\def\enough@room#1{%ŽŸ_É‘ÌͲMeasuring–5Smakš¸ães“only“sense“when“w˜e“are“not“inަ‘ÌÍ\b•Go¸ãxed›éÃmo“de"˜so˜the˜routine˜do“es˜nothing˜if˜theަ‘ÌÍswitc¸ãh–UUis“true.Ž¡‘ÐZ±102Ž‘!¤=Ñ\if@boxedmulticols\elseŽŸ ‘ÐZ±103Ž‘!¤=Ñ\parŽŸ_É‘ÌͲT‘ÿ*ªo–_emptš¸ãy“the“con˜tribution“list“the“ rst“release“con-ަ‘ÌÍtained–E…a“pGenalt¸ãy“zero“but“this“had“the“result“thatަ‘ÌÍÍ\addvspace–[²couldn't“detect“preceding“glue.‘„vSo“thisަ‘ÌÍw•¸ãas›Ä¿c“hanged˜to˜Í\addpenalty².‘ÀBut˜this˜turned˜outަ‘ÌÍto–¸bGe“not“enough“as“Í\addpenalty“²will“not“add“aަ‘ÌÍpGenaltš¸ãy–†Swhen“Í@nobreak“²is“true.‘ÀTherefore“w˜e“forceަ‘ÌÍthis–/Ôswitcš¸ãh“loGcally“to“false.‘EAs“a“result“there“ma˜yަ‘ÌÍbšGe–˜{a“break“b˜et•¸ãw“een–˜{preceding“text“and“the“start“ofަ‘ÌÍa–¦mš¸ãulticols“en˜vironmen˜t,‘ºJbut“this“seems“acceptableަ‘ÌÍsince–üthere“is“the“optional“argumen¸ãt“for“exactly“thisަ‘ÌÍreason.Ž¡‘ÐZ±104Ž‘!¤=Ñ\bgroup\@nobreakfalse\addpenalty\z@\egroupޤ ‘ÐZ±105Ž‘!¤=Ñ\page@free‘¹–\pagegoalŽ¡‘ÐZ±106Ž‘!¤=Ñ\advance–¹–\page@free“-\pagetotalŽŸ_É‘ÌͲT‘ÿ*ªo–l™bGe“able“to“output“the“v‘ÿqÇalue“w¸ãe“need“to“assign“itަ‘ÌÍto–ZNa“register“ rst“since“it“migh¸ãt“bGe“a“register“(de-ަ‘ÌÍfault)–in“whicš¸ãh“case“w˜e“need“to“use“Í\the“²or“it“migh˜tަ‘ÌÍbGe–Àµa“plain“v‘ÿqÇalue“in“whicš¸ãh“case“Í\the“²w˜ould“bGe“wrong.ަŸ_É‘ÐZ±107Ž‘+iÑ\@tempskipa#1\relaxŽŽŽŸff‰ffYÿ¦Ÿ J=‘ "5Ÿý-:À7ŽŽŽ‘LÜ¿See–ÕXthe“do“free=\the\page@freeŽ¡‘ü±113Ž‘0w^Ñ\MessageBreakŽ¡‘ü±114Ž‘0w^Ñneeded‘¹–\the\@tempskipaŽ¡‘ü±115Ž‘LÐâÑ\space(for‘¹–#1)}%ŽŸx¯²Our–úÑlast“action“is“to“force“a“page“break“if“there“isn'tŽŸ enough–UUroGom“left.ަ‘ü±116Ž‘×pÑ\ifdim–¹–\page@free“<#1\newpage“\fiŽ¡‘ü±117Ž‘ÚÑ\fi}ŽŸÛm²When–[preparing“for“mš¸ãulticolumn“output“sev˜eralޤ things–UUm¸ãust“bGe“done.ަ‘ü±118Ž‘ ª®Ñ\def\prepare@multicols{%ŽŸx¯²W‘ÿ*ªe–¸ëstart“saš¸ãving“the“curren˜t“Í\@totalleftmarginŽ¡²and–ðåthen“resetting“the“Í\parshape“²in“case“w¸ãe“areŽ¡inside–ÝRsome“list“en•¸ãvironmen“t.‘ ¿The–ÝRcorrect“inden-Ž¡tation–èáfor“the“Ìmulticols“²en•¸ãvironmen“t–èáin“suc¸ãh“a“caseŽ¡will–×±bšGe“pro˜duced“bš¸ãy“mo˜ving“the“result“to“the“righ˜tŽ¡bš¸ãy–¸Í\multicol@leftmargin“²later“on.‘™ÚIf“w˜e“w˜ouldŽ¡use–e›the“v‘ÿqÇalue“of“of“Í\@totalleftmargin“²directly“thenŽ¡lists–©£inside“the“Ìmulticols“²en•¸ãvironmen“t–©£could“cause“aŽ¡shift–UUof“the“output.ަ‘ü±119Ž‘ÚÑ\multicol@leftmargin\@totalleftmarginޤ ‘ü±120Ž‘ÚÑ\@totalleftmargin\z@Ž¡‘ü±121Ž‘ÚÑ\parshape\z@ŽŸx¯²W‘ÿ*ªe–Ç#also“set“the“register“Í\doublecol@number“²forޤ later–ò use.‘GêThis“register“should“con¸ãtain“2‘L¸Ž¡Í\col@numberŽ‘9¿ß².‘͈This–sëis“also“an“indicator“that“w¸ãe“areŽ¡within–$¹a“Ìmulticols“²en•¸ãvironmen“t–$¹as“menš¸ãtioned“abGo˜v˜e.Ž¡¦‘ü±122Ž‘ÚÑ\doublecol@number\col@numberޤ ‘ü±123Ž‘ÚÑ\multiply\doublecol@number\tw@Ž¡‘ü±124Ž‘ÚÑ\advance\doublecol@number\mult@rightboxŽŸ¯‹‘ü±125Ž‘ÚÑ\if@boxedmulticolsŽ¡‘ü±126Ž‘‘Ñ\let\l@kept@firstmark\kept@firstmarkŽ¡‘ü±127Ž‘‘Ñ\let\l@kept@botmark\kept@botmarkŽ¡‘ü±128Ž‘‘Ñ\global\let\kept@firstmark\@emptyŽ¡‘ü±129Ž‘‘Ñ\global\let\kept@botmark\@emptyŽ¡‘ü±130Ž‘ÚÑ\elseŽŸ¯‹²W‘ÿ*ªe–=Ûadd“an“emptš¸ãy“bGo˜x“to“the“main“v˜ertical“list“toޤ ensure–æµthat“wš¸ãe“catc˜h“an˜y“insertions“(held“o˜v˜er“or“in-Ž¡serted–ß«at“the“top“of“the“page).‘ÈOtherwise“it“migh¸ãtŽ¡happGen–½÷that“the“Í\eject“²is“discarded“without“callingŽ¡the–Üoutput“routine.‘I_Inside“the“output“routine“w¸ãe“re-Ž¡mo•¸ãv“e–ôœthis“bšGo¸ãx“again.‘OœAgain“this“co˜de“applies“onlyŽ¡if–nìwš¸ãe“are“on“the“main“v˜ertical“list“and“not“withinŽ¡a›Ò"bGo•¸ãx.‘è-Ho“w“ev“er,‘ñUit˜is˜not˜enough˜to˜turn˜o ˜in“ter-Ž¡line–ŠÇspacing,‘˜#wš¸ãe“also“ha˜v˜e“to“clear“Í\topskip“²bGeforeŽ¡adding–ïTthis“bGoš¸ãx,‘Ósince“Í\topskip“²is“alw˜a˜ys“insertedŽŽ’éÌÍŸ8䄊8äff ýÇ‘ÌÍbšGefore–_Gthe“ rst“b˜oš¸ãx“on“a“page“whic˜h“w˜ould“lea˜v˜e“usޤ ‘ÌÍwith–Â_an“extra“space“of“Í\topskip“²if“Ìmulticols“²start“onŽ¡‘ÌÍa–UUfresh“sheet.Ž©‘ÐZ±131Ž‘&]ÓÑ\nointerlineskip‘¹–{\topskip\z@\null}%ޤ ‘ÐZ±132Ž‘&]ÓÑ\output{%Ž¡‘ÐZ±133Ž‘/ÐÿÑ\global\setbox\partial@page\vboxŽ¡‘ÐZ±134Ž‘9D+Ñ{%ŽŸ‘ÌͲNo•¸ãw›õSw“e˜ha“v“e˜to˜mak“e˜sure˜that˜w“e˜catc“h˜one˜spGe-ޤ ‘ÌÍcial–ŒFsituation“whicš¸ãh“ma˜y“result“in“loss“of“text!‘™IfŽ¡‘ÌÍthe–user“has“a“hš¸ãuge“amoun˜t“of“v˜ertical“materialŽ¡‘ÌÍwithin–oüthe“ rst“optional“argumen¸ãt“that“is“larger“thenŽ¡‘ÌÍÍ\premulticols–¦;²and“w¸ãe“are“near“the“bGottom“of“theŽ¡‘ÌÍpage–:wthen“it“can“happGen“that“not“the“Í\eject“²isŽ¡‘ÌÍtriggering–this“spGecial“output“routine“but“rather“theŽ¡‘ÌÍo•¸ãv“erfull–umain“vš¸ãertical“list.‘…&In“that“case“w˜e“get“an-Ž¡‘ÌÍother–`âbreakpšGoin¸ãt“through“the“Í\eject“²p˜enalt¸ãy‘ÿ*ª.‘”oAsŽ¡‘ÌÍa–Œnresult“this“spšGecial“output“routine“w¸ãould“b˜e“calledŽ¡‘ÌÍtš¸ãwice–UYand“the“con˜ten˜ts“of“Í\partial@page²,‘•Yi.e.“theŽ¡‘ÌÍmaterial–ЧbGefore“the“Ìmulticols“²en•¸ãvironmen“t–Чgets“lost.Ž¡‘ÌÍThere–„ are“sevš¸ãeral“solutions“to“a˜v˜oid“this“problem,Ž¡‘ÌÍbut–X*for“noš¸ãw“w˜e“will“simply“detect“this“and“inform“theŽ¡‘ÌÍuser–PDthat“he/she“has“to“enlarge“the“Í\premulticolsŽ¡‘ÌͲbš¸ãy–UUusing“a“suitable“v‘ÿqÇalue“for“the“second“argumen˜t.ަ‘ÐZ±135Ž‘w{ÉhÇcheckŽ‘AºÉiޤ ‘ÐZ±136Ž‘=ýÁÑ\ifvoid\partial@page\elseŽ¡‘ÐZ±137Ž‘GpíÑ\PackageError{multicol}%Ž¡‘ÐZ±138Ž‘L*ƒÑ{Error–¹–saving“partial“page}%Ž¡‘ÐZ±139Ž‘L*ƒÑ{The–¹–part“of“the“page“beforeŽ¡‘ÐZ±140Ž‘PäÑthe–¹–multicols“environment“wasŽ¡‘ÐZ±141Ž‘PäÑnearly–¹–full“with^^Jthe“resultŽ¡‘ÐZ±142Ž‘PäÑthat–¹–starting“the“environmentŽ¡‘ÐZ±143Ž‘PäÑwill–¹–produce“an“overfullŽ¡‘ÐZ±144Ž‘PäÑpage.‘ s,Some^^Jtext–¹–may“be“lost!Ž¡‘ÐZ±145Ž‘PäÑPlease–¹–increase“\premulticolsŽ¡‘ÐZ±146Ž‘PäÑeither–¹–generally“or“for“this%Ž¡‘ÐZ±147Ž‘PäÑ^^Jenvironment–¹–by“specifying“aŽ¡‘ÐZ±148Ž‘PäÑsuitable–¹–value“in“the“secondŽ¡‘ÐZ±149Ž‘PäÑoptional–¹–argument“to^^JtheŽ¡‘ÐZ±150Ž‘PäÑmulticols‘¹–environment.}Ž¡‘ÐZ±151Ž‘GpíÑ\unvbox\partial@pageŽ¡‘ÐZ±152Ž‘GpíÑ\box\last@lineŽ¡‘ÐZ±153Ž‘=ýÁÑ\fiŽ¡‘ÐZ±154Ž‘w{ÉhÈ=ÇcheckŽ‘AºÉiŽ¡‘ÐZ±155Ž‘=ýÁÑ\unvbox\@cclvŽ¡‘ÐZ±156Ž‘=ýÁÑ\global\setbox\last@line\lastboxŽ¡‘ÐZ±157Ž‘9D+Ñ}%ŽŸ‘ÌͲFinally–”ˆwš¸ãe“need“to“record“the“marks“that“are“presen˜tޤ ‘ÌÍwithin–÷ãthe“Í\partial@page“²so“that“w¸ãe“can“constructŽ¡‘ÌÍcorrect–[K rst“and“bGottom“marks“later“on.‘oThis“is“doneŽ¡‘ÌÍbš¸ãy–UUthe“follo˜wing“coGde.ަ‘ÐZ±158Ž‘GpíÑ\prep@keptmarksŽŸ‘ÌͲFinally–í wš¸ãe“ha˜v˜e“to“initialize“Í\kept@topmark“²whic˜hŽ¡‘ÌÍshould–@àideally“bGe“initialized“with“the“mark“that“isŽ¡‘ÌÍcurrenš¸ãt–ìŸ'EŽ‘ãxXŽ¡sometimes– ~calls“the“output“routine“for“ oat“manage-Ž¡men•¸ãt.Ÿü^ÿ±8ŽŽ‘°S²Therefore›› w“e˜use˜the˜second˜bGest˜solution˜b“yŽ¡initializing–Ú¸it“with“Í\firstmark².‘HèIn“fact,‘ó>for“our“pur-Ž¡pšGose–¼÷this“do˜esn't“matter“as“w¸ãe“use“Í\kept@topmarkŽ¡²only–Î=to“initialize“Í\firstmark“²and“Í\botmark“²of“a“fol-Ž¡loš¸ãwing–¤ Ñ\global\let\kept@topmark\firstmarkŽŸ ‘ü±160Ž‘9êŠÑ}\ejectŽŸð²The–¡›next“thing“to“do“is“to“assign“a“new“v‘ÿqÇalue“toŽ¡Í\vsize².‘ZŠLŸýó5‘üff±AŽŽ‘͉²T‘þU>Ÿ'EŽ‘ãxX–žmain¸ãtains“the“free“roGom“on“the“pageŽ¡(i.e.– nthe“page“heigh¸ãt“without“the“space“for“alreadyŽ¡con¸ãtributed–P oats)“in“the“register“Í\@colroom².‘aËW‘ÿ*ªeŽ¡mš¸ãust–Ãsubtract“the“heigh˜t“of“Í\partial@page“²to“putŽ¡the–UUactual“free“roGom“in¸ãto“this“v‘ÿqÇariable.ަ‘ü±161Ž‘‘Ñ\advance\@colroom-\ht\partial@pageŽŸð²Then–-Ôwš¸ãe“ha˜v˜e“to“calulate“the“Í\vsize“²v‘ÿqÇalue“to“useŽ¡during–Âccolumn“assemš¸ãbly‘ÿ*ª.‘¸òÍ\set@mult@vsize“²tak˜esŽ¡an–?argumenš¸ãt“whic˜h“allo˜ws“to“mak˜e“the“setting“loGcalŽ¡(Í\relax²)–cor“global“(Í\global²).‘œxThe“latter“v‘ÿqÇarian¸ãt“isŽ¡used–^‘inside“the“output“routine“bšGelo•¸ãw.‘{A“t–^‘this“p˜oin¸ãtŽ¡here–|rwš¸ãe“ha˜v˜e“to“mak˜e“a“loGcal“c˜hange“to“Í\vsize“²bGe-Ž¡cause–Ínwš¸ãe“w˜an˜t“to“get“the“original“v‘ÿqÇalue“for“Í\vsizeŽ¡²restored–»íin“case“this“Ìmulticols“²en•¸ãvironmen“t–»íends“onŽ¡the–UUsame“page“where“it“has“started.ަ‘ü±162Ž‘‘Ñ\set@mult@vsize\relaxŽŸð²No•¸ãw›ù®w“e˜switc“h˜to˜a˜new˜Í\output˜²routine˜whic“h˜willŽ¡bGe–ó‹used“to“put“the“gathered“column“material“to-Ž¡gether.ަ‘ü±163Ž‘‘Ñ\output{\multi@column@out}%ŽŸð²Finally–|Ôwš¸ãe“handle“the“foGotnote“insertions.‘èCW‘ÿ*ªe“ha˜v˜eŽ¡to–um¸ãultiply“the“magni cation“factor“and“the“extraŽ¡skip–¹Äbš¸ãy“the“n˜um˜bGer“of“columns“since“eac˜h“foGotnoteŽ¡reduces–L-the“space“for“evš¸ãery“column“(remem˜bGer“thatŽ¡w•¸ãe›ƒha“v“e˜pagewide˜foGotnotes).‘\×If,‘#on˜the˜other˜hand,Ž¡fošGotnotes–are“t¸ãyp˜eset“at“the“v¸ãery“end“of“the“do˜cu-Ž¡men•¸ãt,‘2 our›)7sc“heme˜still˜w“orks˜since˜Í\count\footinsŽ¡²is–W¦zero“then,‘˜:so“it“will“not“cš¸ãhange.‘xºT‘ÿ*ªo“allo˜w“ev˜enŽ¡further–t&customization“the“setting“of“the“Í\footinsŽ¡²parameters–UUis“done“in“a“separate“macro.ަ‘ü±164Ž‘‘Ñ\init@mult@footinsŽŸð²F‘ÿ*ªor–ëthe“same“reason“(pagewide“foGotnotes),‘Ñ theŽ¡¸hÏdimen‘Äc¸iŽ‘)9˲register–kconš¸ãtrolling“the“maxim˜um“spaceŽ¡used–…„for“foGotnotes“isn't“c•¸ãhanged.‘UHa“ving–…„done“this,Ž¡w•¸ãe›Rm“ust˜reinsert˜all˜the˜foGotnotes˜whic“h˜are˜alreadyŽ¡presenš¸ãt–ÈH(i.e.“those“encoun˜tered“when“the“materialŽ¡sa•¸ãv“ed–­Xin“Í\partial@page“²w¸ãas“ rst“proGcessed).‘yÑThisŽ¡will–Î;reduce“the“free“space“(i.e.“Í\pagetotal²)“b¸ãy“theŽŽ’éÌÍŸ€„zÏ]ff ý0£‘ÌÍappropriate–šfamounš¸ãt“since“w˜e“ha˜v˜e“c˜hanged“the“mag-ޤ ‘ÌÍni cation–UUfactor,“etc.“abGo•¸ãv“e.Ž© ²Ó‘ÐZ±165Ž‘&]ÓÑ\reinsert@footnotesŽŸ²Ó‘ÌͲAll–,Ÿ'EŽ‘ãxX“to“prošGduce“`go˜o˜d'“paragraphs“within“nar-Ž¡‘ÌÍro¸ãw‘UUcolumns.ަ‘ÐZ±167Ž‘ê§Ñ\vbadness\@Mi‘¹–\hbadness5000ŽŸ ‘ÐZ±168Ž‘ê§Ñ\tolerance\multicoltoleranceŽŸ²Ó‘ÌͲSince–L¢nearly“alw•¸ãa“ys–L¢the“ rst“pass“will“fail“w¸ãe“ignoreŽ¡‘ÌÍit–«tcompletely“telling“T‘þU>Ÿ'EŽ‘ãxX“to“h¸ãyphenate“directly‘ÿ*ª.‘t$InŽ¡‘ÌÍfact,‘®±w•¸ãe›œÒno“w˜use˜another˜register˜to˜k“eep˜the˜v‘ÿqÇalueŽ¡‘ÌÍfor–<…the“mš¸ãulticol“pre-tolerance,‘t¯so“that“a“designer“ma˜yŽ¡‘ÌÍallo¸ãw–UUto“use“Í\pretolerance².ަ‘ÐZ±169Ž‘ê§Ñ\pretolerance\multicolpretoleranceŽŸ²Ó‘ÌͲF‘ÿ*ªor–Í6use“with“the“new“T‘þU>Ÿ'EŽ‘ãxX“w¸ãe“setŽ¡‘ÌÍÍ\emergencystretch–_Z²to“Í\col@numberŽ‘A q¸‘ê8²4µpt².‘ÕHo¸ãw-Ž¡‘ÌÍevš¸ãer–[%this“is“only“a“guess“so“at“the“momen˜t“this“isŽ¡‘ÌÍdone–Ïpin“a“macro“Í\setemergencystretch“²whic¸ãh“getsŽ¡‘ÌÍthe–currenš¸ãt“Í\hsize“²and“the“n˜um˜bGer“of“columns“asŽ¡‘ÌÍargumen¸ãts.‘ª£Therefore–hIusers“are“able“to“ gure“outŽ¡‘ÌÍtheir–UUoš¸ãwn“form˜ula.ަ‘ÐZ±170Ž‘ê§Ñ\setemergencystretch\col@number\hsizeŽŸ²Ó‘ÌͲAnother–ÝrhošGok“to“allo¸ãw“p˜eople“adding“their“o¸ãwnŽ¡‘ÌÍextensions–•Qwithout“making“a“new“pac¸ãk‘ÿqÇage“isŽ¡‘ÌÍÍ\set@floatcmds–Eµ²whicš¸ãh“handles“an˜y“rede nitions“ofŽ¡‘ÌÍLŸýó5‘üff±AŽŽ‘͉²T‘þU>Ÿ'EŽ‘ãxXs–®Óinš¸ãternal“ oat“commands“to“w˜ork“with“theŽ¡‘ÌÍÌmulticols›ç²en•¸ãvironmen“t.‘ (DA“t˜the˜momen“t˜it˜is˜onlyŽ¡‘ÌÍused–UUto“rede ne“Í\@dblfloat“²and“Í\end@dblfloat².ަ‘ÐZ±171Ž‘ê§Ñ\set@floatcmdsŽŸ²Ó‘ÌͲAdditionally‘ÿ*ª,‘ C]wš¸ãe– z*adv‘ÿqÇance“Í\baselineskip“²b˜yŽ¡‘ÌÍÍ\multicolbaselineskip–›²to“allo¸ãw“corrections“forŽ¡‘ÌÍnarro¸ãw‘UUcolumns.ަ‘ÐZ±172Ž‘ê§Ñ\advance\baselineskip\multicolbaselineskipŽŸ²Ó‘ÌͲThe–.Í\hsize“²of“the“columns“is“givš¸ãen“b˜y“the“form˜ula:ŽŸ³ÁŸù<$‘4Í\linewidthŽ‘EìḖ8à²(Í\col@numberŽ‘;ø¿¸“²1)“¸“Í\columnsepŽŽ‘4Ÿw‰feÔ1\Ÿ (Ö‘M8¿\col@numberŽŽŽŽŽŸ!A‘ÌͲThe–ì¯formš¸ãula“abGo˜v˜e“has“c˜hanged“from“release“toŽ¡‘ÌÍrelease.‘ à°W‘ÿ*ªe–$ønoš¸ãw“start“with“the“curren˜t“v‘ÿqÇalue“ofŽ¡‘ÌÍÍ\linewidth–uزso“that“the“column“width“is“propGerlyŽ¡‘ÌÍcalculated–when“w¸ãe“are“inside“a“minipage“or“a“listŽ¡‘ÌÍor–4ísome“other“en•¸ãvironmen“t.‘This–4íwill“bGe“ac•¸ãhiev“edŽ¡‘ÌÍwith:ŽŽŽŸæf‰ffYÿ¦Ÿ J=‘ "5Ÿý-:À8ŽŽŽ‘LÜ¿During–ÕXsucšÃŽh“a“call“the“Ð\botmark“¿gets“globally“copied“to“Ð\topmark“¿b˜y“the“T‘þ•AŸ¸ãEŽ‘MX“program.ŽŽŸ’äÿÿ²10ŽŽŒ‹ Ï& ¨ ýF œŸÊO] ý·°£‘ü±173Ž‘ÚÑ\hsize\linewidth‘¹–\advance\hsize\columnsepޤ ‘ü±174Ž‘ÚÑ\advance\hsize-\col@number\columnsepŽ¡‘ü±175Ž‘ÚÑ\divide\hsize\col@numberŽŸM²W‘ÿ*ªe–ïralso“set“Í\linewidth“²and“Í\columnwidth“²toޤ Í\hsize–]|²In“the“past“Í\columnwidth“²w¸ãas“left“un-Ž¡cš¸ãhanged.‘ª²This–hNis“inconsisten˜t,‘m but“Í\columnwidth“²isŽ¡used–¡Äonly“bš¸ãy“ oats“(whic˜h“aren't“allo˜w˜ed“in“theirŽ¡curren•¸ãt›ÂÙimplemen“tation)˜and˜b“y˜the˜Í\footnoteŽ¡²macro.‘ElSince–ÐDwš¸ãe“w˜an˜t“pagewide“foGotnotesŸü^ÿ±9ŽŽ‘L·²this“sim-Ž¡ple–pÄtricš¸ãk“sa˜v˜ed“us“from“rewriting“the“Í\footnoteŽ¡²macros.‘ K~Ho•¸ãw“ev“er,‘`some–H’applications“refered“toŽ¡Í\columnwidth–ºî²as“the“\width“of“the“curren¸ãt“column"Ž¡to–ìÂtš¸ãypGeset“displa˜ys“(the“Íamsmath“²pac˜k‘ÿqÇage,‘¬for“exam-Ž¡ple)–”ˆand“to“alloš¸ãw“the“use“of“suc˜h“applications“to-Ž¡gether–UUwith“Ímulticol“²this“is“noš¸ãw“c˜hanged.Ž¡‘ Before–k±wš¸ãe“c˜hange“Í\linewidth“²to“the“new“v‘ÿqÇalueŽ¡w¸ãe–þrecord“its“old“v‘ÿqÇalue“in“some“register“calledŽ¡Í\full@width².‘«This–´¡v‘ÿqÇalue“is“used“later“on“when“w¸ãeŽ¡pac¸ãk‘ÿqÇage–UUall“columns“together.Ž© M‘ü±176Ž‘ÚÑ\full@width\linewidthޤ ‘ü±177Ž‘ÚÑ\linewidth\hsizeŽ¡‘ü±178Ž‘ÚÑ\columnwidth\hsizeŽ¡‘ü±179Ž‘ ª®Ñ}ŽŸç²This–Smacro“is“used“to“set“up“the“parameters“asso-ޤ ciated–ýÛwith“fošGotnote“ oats.‘kYIt“can“b˜e“rede ned“b¸ãyŽ¡applications–>Ìthat“require“di erenš¸ãt“amoun˜t“of“spacesŽ¡when–UUt¸ãypšGesetting“fo˜otnotes.ަ‘ü±180Ž‘ ª®Ñ\def\init@mult@footins{%ޤ ‘ü±181Ž‘‘Ñ\multiply\count\footins\col@numberŽ¡‘ü±182Ž‘‘Ñ\multiply\skip‘¹–\footins\col@numberŽ¡‘ü±183Ž‘ ª®Ñ}ŽŸç²Since–ˆåwš¸ãe“ha˜v˜e“to“set“Í\col@umber“²columns“on“oneޤ page,‘Î eacš¸ãh–µæwith“a“heigh˜t“of“Í\@colroom²,‘Î w˜e“ha˜v˜e“toŽ¡assign‘"]Í\vsizeŽ‘'¿²=‘ÏÍ\col@numberŽ‘@ž=¸‘ÁÍ\@colroomŽ‘6#Ѳin‘"]or-Ž¡der–wÜto“collect“enough“material“bGefore“en¸ãtering“theŽ¡Í\output–}(²routine“again.‘ é?In“fact“wš¸ãe“ha˜v˜e“to“addŽ¡another‘ê¾(Í\col@numberŽ‘=±®¸–ñϲ1)“¸“²(Í\baselineskipŽ‘H1¨¸Ž¡Í\topskipŽ‘)ÿè²)–UUif“y¸ãou“think“abGout“it.ަ‘ü±184Ž‘ ª®Ñ\def\set@mult@vsize#1{%ޤ ‘ü±185Ž‘‘Ñ\vsize\@colroomŽ¡‘ü±186Ž‘‘Ñ\@tempdima\baselineskipŽ¡‘ü±187Ž‘‘Ñ\advance\@tempdima-\topskipŽ¡‘ü±188Ž‘‘Ñ\advance\vsize\@tempdimaŽ¡‘ü±189Ž‘‘Ñ\vsize\col@number\vsizeŽ¡‘ü±190Ž‘‘Ñ\advance\vsize-\@tempdimaŽŸM²But–Ýthis“mighš¸ãt“not“bGe“enough“since“w˜e“use“Í\vsplitޤ ²later–aÄto“extract“the“columns“from“the“gathered“ma-Ž¡terial.‘&Therefore–rwš¸ãe“add“some“`extra“lines,'‘Ÿ~the“n˜um-Ž¡b•Ger›eRdep“ending˜on˜the˜v‘ÿqÇalue˜of˜the˜`Ìmulticols²'˜coun¸ãter.ŽŽ’éÌÍŸñÇ„TA$ff ýµ¾Ü‘ÌÍThe–FS nal“v‘ÿqÇalue“is“assigned“globally“if“Í#1“²is“Í\globalޤ ‘ÌͲbGecause–ËØwš¸ãe“w˜an˜t“to“use“this“macro“later“inside“theŽ¡‘ÌÍoutput–UUroutine“toGo.Ž©†4‘ÐZ±191Ž‘&]ÓÑ#1\advance\vsizeŽŸ ‘ÐZ±192Ž‘9D+Ñ\c@collectmore\baselineskip}ŽŸh_‘ÌͲHere–¤Vis“the“dimen“register“wš¸ãe“need“for“sa˜ving“a˜w˜a˜yŽ¡‘ÌÍthe–UUouter“v‘ÿqÇalue“of“Í\@totalleftmargin².ަ‘ÐZ±193Ž‘w{Ñ\newdimen\multicol@leftmarginŽŸh_‘ÌͲWhen–¹Äthe“end“of“the“Ìmulticols“²en•¸ãvironmen“t–¹Äis“sensedŽ¡‘ÌÍw•¸ãe›_˜ha“v“e˜to˜balance˜the˜gathered˜material.‘DepGend-Ž¡‘ÌÍing–®6on“whether“or“not“wš¸ãe“are“inside“a“bGo˜xed“m˜ulticolŽ¡‘ÌÍdi erenš¸ãt–¯¢things“m˜ust“happGen.‘€®But“ rst“w˜e“end“theŽ¡‘ÌÍcurren¸ãt–UUparagraph“with“a“Í\par“²command.ަ‘ÐZ±194Ž‘w{Ñ\def\endmulticols{\parŽŸ ‘ÐZ±195Ž‘ê§Ñ\if@boxedmulticolsŽŸ†4‘ÌͲIn–Ò½bšGo¸ãxed“mo˜de“wš¸ãe“ha˜v˜e“to“close“the“bGo˜x“in“whic˜h“w˜eŽ¡‘ÌÍha•¸ãv“e–UUgathered“all“material“for“the“columns.ަ‘ÐZ±196Ž‘&]ÓÑ\egroupŽŸ†4‘ÌͲNo•¸ãw›Mw“e˜call˜Í\balance@columns˜²the˜routine˜thatŽ¡‘ÌÍbalances–UUmaterial“stored“in“the“bGo¸ãx“Í\mult@box².ަ‘ÐZ±197Ž‘&]ÓÑ\balance@columnsŽŸ†4‘ÌͲAfter–øbalancing“the“result“has“to“bGe“returned“b¸ãy“theŽ¡‘ÌÍcommand–åîÍ\page@sofar².‘#“But“bGefore“wš¸ãe“do“this“w˜eŽ¡‘ÌÍreinsert–UUanš¸ãy“marks“found“in“bGo˜x“Í\mult@box².ަ‘ÐZ±198Ž‘&]ÓÑ\return@nonemptymark{first}%ޤ ‘ÐZ±199Ž‘cÊqÑ\kept@firstmarkŽ¡‘ÐZ±200Ž‘&]ÓÑ\return@nonemptymark{bot}%Ž¡‘ÐZ±201Ž‘h„Ñ\kept@botmarkŽ¡‘ÐZ±202Ž‘&]ÓÑ\page@sofarŽŸ L‘ÐZ±203Ž‘&]ÓÑ\global\let\kept@firstmarkŽ¡‘ÐZ±204Ž‘ZWEÑ\l@kept@firstmarkŽ¡‘ÐZ±205Ž‘&]ÓÑ\global\let\kept@botmarkŽ¡‘ÐZ±206Ž‘L*ƒÑ\l@kept@botmarkŽ¡‘ÐZ±207Ž‘w{ÉhÇma¾9rktraceŽ‘+²ÉiŽ¡‘ÐZ±208Ž‘&]ÓÑ\mult@info\tw@Ž¡‘ÐZ±209Ž‘/ÐÿÑ{Restore–¹–kept“marks“to\MessageBreakŽ¡‘ÐZ±210Ž‘4Š•Ñfirst:‘¹–\meaning\kept@firstmarkŽ¡‘ÐZ±211Ž‘4Š•Ñ\MessageBreak‘¹–bot\space\space:Ž¡‘ÐZ±212Ž‘v°ÉÑ\meaning\kept@botmark‘¹–}%Ž¡‘ÐZ±213Ž‘w{ÉhÈ=Çma¾9rktraceŽ‘+²ÉiŽŸ L‘ÌͲThis–UU nishes“the“cošGde“for“the“\b˜o¸ãxed"“case.ަ‘ÐZ±214Ž‘ê§Ñ\elseŽŽŽŸff‰ffYÿ¦Ÿ J=‘ "5Ÿý-:À9ŽŽŽ‘LÜ¿I'm–… not“sure“that“I‘„ùreally“w•ÃŽan“t–… pagewide“fošŸ'EŽ‘ãxXs“Ïp‘ÿ}'age‘‰ffŽ‘®builder“²will“not“to-Ž¡tally–ÁÄemptš¸ãy“the“con˜tribution“list.Ÿü^ÿ±10ŽŽ‘/ù²Therefore“w˜eŽ¡mš¸ãust–»¼also“add“an“explicit“Í\penalty².‘¤üNo˜w“the“con-Ž¡tribution–ÿ list“will“bGe“emptied“and,‘i’if“its“materialŽ¡doGesn't–ërall“ t“onš¸ãto“the“curren˜t“page“then“the“outputŽ¡routine–‹+will“bšGe“called“b˜efore“wš¸ãe“c˜hange“it.‘ &’A˜t“thisŽ¡pGoin•¸ãt›[w“e˜need˜to˜use˜Í\penalty˜²not˜Í\addpenalty˜²toŽ¡ensure–a‚that“a)“the“recenš¸ãt“con˜tributions“are“emptiedŽ¡and–„Ab)“that“the“vš¸ãery“last“item“on“the“main“v˜erticalŽ¡list–jªis“a“v‘ÿqÇalid“break“pGoin¸ãt“so“that“T‘þU>Ÿ'EŽ‘ãxX“breaks“theŽ¡page–UUin“case“it“is“o•¸ãv“erfull.Ž©Ü"‘ü±215Ž‘×pÑ\penalty\z@ŽŸÜ!²Noš¸ãw–3it's“safe“to“c˜hange“the“output“routine“in“orderŽ¡to–UUbalance“the“columns.ަ‘ü±216Ž‘‘Ñ\output{\balance@columns@out}\ejectŽŸÜ!²If–·°the“Ìmulticols“²en•¸ãvironmen“t›·°b•Go“dy˜w¸ãas˜completelyŽ¡emptš¸ãy–õ¸or“if“a“m˜ulti-page“Ìmulticols“²just“ends“at“aŽ¡page–R§bGoundary“wš¸ãe“ha˜v˜e“the“un˜usual“case“that“theŽ¡Í\eject–ø²will“ha•¸ãv“e–øno“e ect“(since“the“main“v¸ãerticalŽ¡list–+‹is“empt•¸ãy)|th“us–+‹no“output“routine“is“called“atŽ¡all.‘|lAs–Xáa“result“the“material“preceding“the“ÌmulticolsŽ¡²(stored–(æin“Í\partial@page“²will“get“lost“if“w¸ãe“don'tŽ¡takš¸ãe–UUof“this“b˜y“hand.ަ‘ü±217Ž‘‘Ñ\ifvbox\partial@pageŽŸ ‘ü±218Ž‘50ôÑ\unvbox\partial@page\fiŽŸÜ!²After–aÄthe“output“routine“has“acted“w¸ãe“restore“theŽ¡k¸ãept–UUmarks“to“their“initial“v‘ÿqÇalue.ަ‘ü±219Ž‘"JœÑ\global\let\kept@firstmark\@emptyޤ ‘ü±220Ž‘"JœÑ\global\let\kept@botmark\@emptyŽ¡‘ü±221Ž‘ ª®ÉhÇma¾9rktraceŽ‘+²ÉiŽ¡‘ü±222Ž‘"JœÑ\mult@info\tw@Ž¡‘ü±223Ž‘+½ÈÑ{Make–¹–kept“marks“empty}%Ž¡‘ü±224Ž‘ ª®ÉhÈ=Çma¾9rktraceŽ‘+²ÉiŽ¡‘ü±225Ž‘ÚÑ\fiŽŸÜ!²The–Äoutput“routine“abGo•¸ãv“e–Äwill“tak¸ãe“care“of“theޤ Í\vsize–ç/²and“reinsert“the“balanced“columns,‘ý7etc.‘MButŽ¡it–can't“reinsert“the“Í\footnotes“²bGecause“w¸ãe“ rstŽ¡ha•¸ãv“e–×_to“restore“the“Í\footins“²parameter“since“w¸ãeŽ¡are–î6returning“to“one“column“mošGde.‘ Ÿ'EŽ‘ãxX“coun¸ãters“are“al-Ž¡‘ÌÍw•¸ãa“ys›UUc“hanged˜this˜w“a“y‘ÿ*ª.Ÿü^ÿ±11ŽŽŽ¦‘ÐZ231Ž‘ê§Ñ\global\c@unbalance\z@ŽŸ¦6‘ÌͲW‘ÿ*ªe–ŒFalso“takš¸ãe“a“loGok“at“the“amoun˜t“of“free“space“onŽ¡‘ÌÍthe–6Kcurren¸ãt“page“to“see“if“it's“time“for“a“page“break.Ž¡‘ÌÍThe–î·v¸ãertical“space“added“thereafter“will“v‘ÿqÇanish“ifŽ¡‘ÌÍÍ\enough@room–UU²starts“a“new“page.ަ‘ÐZ±232Ž‘ê§Ñ\enough@room\postmulticolsŽŸ ‘ÐZ±233Ž‘ê§Ñ\addvspace\multicolsepŽŸ¦6‘ÌͲIf–pástatistics“are“required“wš¸ãe“ nally“repGort“that“w˜eŽ¡‘ÌÍha•¸ãv“e–UU nished“ev¸ãerything.ަ‘ÐZ±234Ž‘ê§Ñ\mult@info\z@ޤ ‘ÐZ±235Ž‘+iÑ{Ending‘¹–environmentŽ¡‘ÐZ±236Ž‘PäÑ\if@boxedmulticolsŽ¡‘ÐZ±237Ž‘_ÛÑ\space(boxed‘¹–mode)\fiŽ¡‘ÐZ±238Ž‘U¯Ñ}}ŽŸ.3‘ÌͲLet–Ñ_us“end“this“section“b¸ãy“alloGcating“all“the“registersŽŸ ‘ÌÍused–UUso“far.ަ‘ÐZ±239Ž‘w{Ñ\newcount\c@unbalanceŽ¡‘ÐZ±240Ž‘w{Ñ\newcount\c@collectmoreŽŸ¦6‘ÌͲIn–Ðþthe“new“LŸýó5‘üff±AŽŽ‘͉²T‘þU>Ÿ'EŽ‘ãxX“release“Í\col@number“²is“already“al-ŽŸ ‘ÌÍloGcated–UUbš¸ãy“the“k˜ernel,“so“w˜e“don't“alloGcate“it“again.ަ‘ÐZ±241Ž‘w{Ñ%\newcount\col@numberŽ¡‘ÐZ±242Ž‘w{Ñ\newcount\doublecol@numberŽ¡‘ÐZ±243Ž‘w{Ñ\newcount\multicoltoleranceŽ¡‘ÐZ±244Ž‘w{Ñ\newcount\multicolpretoleranceŽ¡‘ÐZ±245Ž‘w{Ñ\newdimen\full@widthŽ¡‘ÐZ±246Ž‘w{Ñ\newdimen\page@freeŽ¡‘ÐZ±247Ž‘w{Ñ\newdimen\premulticolsŽ¡‘ÐZ±248Ž‘w{Ñ\newdimen\postmulticolsŽ¡‘ÐZ±249Ž‘w{Ñ\newskip\multicolsepŽ¡‘ÐZ±250Ž‘w{Ñ\newskip\multicolbaselineskipŽ¡‘ÐZ±251Ž‘w{Ñ\newbox\partial@pageŽ¡‘ÐZ±252Ž‘w{Ñ\newbox\last@lineŽŸ¦6‘ÌͲAnd–UUhere“are“their“default“v‘ÿqÇalues:ަ‘ÐZ±253Ž‘w{Ñ\c@unbalance‘,Â=‘¹–0Ž¡‘ÐZ±254Ž‘w{Ñ\c@collectmore–¹–=“0ŽŽŽŸff‰ffYÿ¦Ÿ J=‘wŽŸý-:À10ŽŽŽ‘LÜ¿This–ɸonce“caused“a“puzzling“bug“where“some“of“the“material“wšÃŽas“balanced“t˜wice,‘Ì resulting“in“some“o˜v˜erprin˜ts.‘Ã@The“reasonޤ €wšÃŽas–Úthe“Ð\eject“¿whic˜h“w˜as“placed“at“the“end“of“the“con˜tribution“list.‘£§Then“the“Óp¥age‘†Ò‰ff¢$Ž‘(öbuilder“¿w˜as“called“(an“explicit“Ð\penaltyŽ¡¿will–ã?emptšÃŽy“the“con˜tribution“list),‘æ¹but“the“line“with“the“Ð\eject“¿didn't“ t“on˜to“the“curren˜t“page.‘ðÖIt“w˜as“then“reconsidered“afterŽ¡the–ÕXoutput“routine“had“ended,“causing“a“second“break“after“one“line.ŽŸ Š>‘wŽŸý-:À11ŽŽŽ‘LÜ¿Actually‘ÿJª,–ÕXwšÃŽe“are“still“in“a“group“started“b˜y“the“Ð\begin“¿macro,“so“Ð\global“¿m˜ust“bŸ'EŽ‘ãxX“pGolicy“to“a•¸ãv“oid‘ºPanŽ¡o•¸ãv“er o“w–UUof“the“sa•¸ãv“e‘UUstac“k.ŽŸ ŽTherefore–²Îw¸ãe“de ne“a“Í\process@cols“²macro“to“helpŽ¡us–àáin“using“these“registers“in“the“output“routinesŽ¡bGeloš¸ãw.‘ ʦIt–Ÿhas“t˜w˜o“argumen˜ts:‘\the“ rst“one“is“aŽ¡n•¸ãum“bšGer;‘pVthe–second“one“is“the“pro˜cessing“informa-Ž¡tion.‘L\It–åloGops“starting“with“Í\count@=#1“²(Í\count@“²isŽ¡a–²jscratc¸ãh“register“de ned“in“ÝPlain‘²T‘þU>Ÿ'EŽ‘ãxX),‘ɯproGcessesŽ¡argumenš¸ãt–Å8Í#2²,‘!1adds“t˜w˜o“to“Í\count@²,‘!1proGcesses“ar-Ž¡gumenš¸ãt–¨Í#2“²again,‘¼Åetc.“un˜til“Í\count@“²is“higher“thanŽ¡Í\doublecol@number².‘€It–6=migh¸ãt“bGe“easier“to“under-Ž¡stand–}Lit“through“an“example,‘ÇJso“wš¸ãe“de ne“it“no˜wŽ¡and–UUexplain“its“usage“afterw¸ãards.Ž©>Ò‘ü±262Ž‘ ª®Ñ\def\process@cols#1#2{\count@#1\relaxޤ ‘ü±263Ž‘"JœÑ\loopŽ¡‘ü±264Ž‘ ª®ÉhÇdebugŽ‘ÒœÉiŽ¡‘ü±265Ž‘"JœÑ\typeout{Looking–¹–at“box“\the\count@}Ž¡‘ü±266Ž‘ ª®ÉhÈ=ÇdebugŽ‘ÒœÉiŽ¡‘ü±267Ž‘'2Ñ#2%Ž¡‘ü±268Ž‘"JœÑ\advance\count@\tw@Ž¡‘ü±269Ž‘"JœÑ\ifnum\count@<\doublecol@numberŽ¡‘ü±270Ž‘×pÑ\repeat}ŽŸr8²W‘ÿ*ªe–fnoš¸ãw“de ne“Í\page@sofar“²to“giv˜e“an“exampleޤ of–‰-the“Í\process@cols“²macro.‘ OÍ\page@sofar“²shouldŽ¡output–W®evš¸ãerything“prepared“b˜y“the“balancing“routineŽ¡Í\balance@columns².ަ‘ü±271Ž‘ ª®Ñ\def\page@sofar{%ŽŸ>ÒÍ\balance@columns–À²prepares“its“output“in“the“ev¸ãenŽ¡n•¸ãum“bGered›,oscratc“h˜bGo“x˜registers.‘ ÷No“w˜w“e˜outputŽ¡the–K)columns“gathered“assuming“that“they“are“sa•¸ãv“edŽ¡in–øMthe“bGo¸ãx“registers“2“(left“column),‘! 4“(second“col-Ž¡umn),›Π.–ªª.“.‘aHo•¸ãw“ev“er,˜the–¶^last“column“(i.e.“the“righ¸ãt-Ž¡most)–ï¢should“bšGe“sa•¸ãv“ed–ï¢in“b˜o¸ãx“register“0.Ÿü^ÿ±12ŽŽ‘¹”²FirstŽ¡wš¸ãe–çensure“that“the“columns“ha˜v˜e“equal“width.‘'W‘ÿ*ªeŽ¡use–JÍ\process@cols“²for“this“purpGose,‘-‡starting“withŽ¡Í\count@Ž‘*G»²=‘‡ÐÍ\mult@rightboxŽ‘O¦².‘ fJTherefore‘ü+Í\count@Ž¡²loGops–õthrough“Í\mult@rightbox²,‘XÍ\mult@rightboxŽ‘N—²+Ž¡2,.–ªª.“.“(to‘UUÍ\doublecol@number²).ަ‘ü±272Ž‘×pÑ\process@cols\mult@rightboxŽŽ’éÌÍŸ„Š ff þuô‘ÌͲW‘ÿ*ªe›_pha•¸ãv“e˜to˜c“hec“k˜if˜the˜bGo“x˜in˜question˜is˜v“oid,‘a÷bGe-ޤ ‘ÌÍcause– ?the“opšGeration“Í\wd¸hÏnumb‘ÿ}'er‘¸iŽ‘+øX²on“a“v¸ãoid“b˜o¸ãx“willŽ¡‘ÌÍÏnot‘H-²c¸ãhange–UUits“dimension“(sigh).Ž©^P‘ÐZ±273Ž‘4Š•Ñ{\ifvoid\count@ޤ ‘ÐZ±274Ž‘B·WÑ\setbox\count@\hbox‘¹–to\hsize{}%Ž¡‘ÐZ±275Ž‘9D+Ñ\elseŽ¡‘ÐZ±276Ž‘B·WÑ\wd\count@\hsizeŽ¡‘ÐZ±277Ž‘9D+Ñ\fi}%ŽŸ^O‘ÌͲNo•¸ãw›UUw“e˜giv“e˜some˜tracing˜information.ަ‘ÐZ±278Ž‘!¤=Ñ\mult@info\z@Ž¡‘ÐZ±279Ž‘&]ÓÑ{Column‘¹–spec:\MessageBreakŽ¡‘ÐZ±280Ž‘4Š•Ñ(\the\multicol@leftmargin\space‘¹–-->Ž¡‘ÐZ±281Ž‘9D+Ñ\the\full@width\space–¹–=“\the\hsizeŽ¡‘ÐZ±282Ž‘9D+Ñ\space–¹–x“\the\col@number)%Ž¡‘ÐZ±283Ž‘+iÑ}%ޤ^O‘ÌͲAš¸ãt–?ýthis“pGoin˜t“w˜e“should“alw˜a˜ys“bGe“in“v˜ertical“moGde.ަ‘ÐZ±284Ž‘w{Ñ\ifvmode\else\errmessage{Multicol‘¹–Error}\fiŽ¡‘ÌͲNo•¸ãw› #‹w“e˜put˜all˜columns˜together˜in˜anޤ ‘ÌÍÍ\hbox– ß²of“width“Í\full@width“²(shifting“it“b¸ãyŽ¡‘ÌÍÍ\multicol@leftmargin–Ö`²to“the“righ¸ãt“so“that“it“willŽ¡‘ÌÍbGe–6placed“correctly“if“wš¸ãe“are“within“a“list“en˜viron-Ž¡‘ÌÍmen¸ãt)ަ‘ÐZ±285Ž‘!¤=Ñ\moveright\multicol@leftmarginޤ ‘ÐZ±286Ž‘&]ÓÑ\hbox‘¹–to\full@width{%ŽŸ^O‘ÌͲand–UUseparating“the“columns“with“a“rule“if“desired.ަ‘ÐZ±287Ž‘+iÑ\process@cols\mult@gfirstbox{\box\count@Ž¡‘ÐZ±288Ž‘4Š•Ñ\hss\vrule\@width\columnseprule\hss}%ŽŸ^O‘ÌͲAs–6yš¸ãou“will“ha˜v˜e“noticed,‘pw˜e“started“with“bGo˜x“regis-ޤ ‘ÌÍter–L^Í\mult@gfirstbox“²(i.e.“the“left“column).‘nÊSo“thisŽ¡‘ÌÍtime–afÍ\count@“²lo•Gop“ed–afthrough“2,‘dj4,.–ªª.“.‘ (plus–afthe“ap-Ž¡‘ÌÍpropriate–©Ìo set).‘8šFinally“wš¸ãe“add“bGo˜x“0“and“close“theŽ¡‘ÌÍÍ\hbox².ަ‘ÐZ±289Ž‘+iÑ\box\mult@rightboxŽŸ^O‘ÌͲThe–Q_depths“of“the“columns“depGend“on“their“last“lines.Ž¡‘ÌÍT‘ÿ*ªo–ª¨ensure“that“wš¸ãe“will“alw˜a˜ys“get“a“similar“loGok“asŽ¡‘ÌÍfar–GÐas“the“rules“are“concerned“w¸ãe“force“the“depth“atŽ¡‘ÌÍleast–UUthe“depth“of“a“letter“`p'.ަ‘ÐZ±290Ž‘w{Ñ%‘Ÿî\strutޤ ‘ÐZ±291Ž‘/ÐÿÑ\rlap{\phantom‘¹–p}%Ž¡‘ÐZ±292Ž‘w{Ñ}%Ž¡‘ÐZ±293Ž‘w{Ñ}ŽŽŽŸ·°‰ffYÿ¦Ÿ J=‘wŽŸý-:À12ŽŽŽ‘LÜ¿Y‘ÿJªou–åÉwill“see“the“reason“for“this“n•ÃŽum“bšŸ'EŽ‘ãxX's‘UUÏp‘ÿ}'age‘‰ffŽ‘®builder².ŽŸ Ú‘ Instead–Çof“actually“reinserting“the“foGotnotes“w¸ãeŽ¡insert–ðCan“empt¸ãy“foGotnote.‘PThis“will“trigger“insertionŽ¡mecš¸ãhanism–"¨as“w˜ell“and“since“the“old“foGotnotes“areŽ¡still–®‹in“their“bGoš¸ãx“and“w˜e“are“on“a“fresh“page“Í\skipŽ¡footins–UU²should“bGe“correctly“takš¸ãen“in˜to“accoun˜t.Ž©ßÑü±294Ž‘ ª®Ñ\def\reinsert@footnotes{\ifvoid\footins\elseŽŸ ‘ü±295Ž‘50ôÑ\insert\footins{}\fi}ŽŸhL²No•¸ãw›9äw“e˜can't˜p•Gostp“one˜the˜diculties˜an¸ãy˜longer.Ž¡The–´,Í\multi@column@out“²routine“will“bGe“called“inŽ¡t•¸ãw“o–÷usituations.‘ X'Either“the“page“is“full“(i.e.“w¸ãeŽ¡ha•¸ãv“e–QAcollected“enough“material“to“generate“all“theŽ¡required–columns)“or“a“ oat“or“marginpar“(or“aŽ¡Í\clearpage–âÆ²is“sensed.‘In“the“latter“case“theŽ¡Í\outputpenalty–*p²is“less“than“¸²10000,‘3otherwise“theŽ¡pGenalt•¸ãy›o»whic“h˜triggered˜the˜output˜routine˜is˜higher.Ž¡Therefore–O¢it's“easy“to“distinguish“bGoth“cases:‘îíw¸ãe“sim-Ž¡ply–UUtest“this“register.ަ‘ü±296Ž‘ ª®Ñ\def\multi@column@out{%ŽŸ ‘ü±297Ž‘×pÑ\ifnum\outputpenalty‘¹–<-\@MŽŸßòIf–wthis“wš¸ãas“a“Í\clearpage²,‘(£a“ oat“or“a“marginpar“w˜eŽ¡call‘UUÍ\speci@lsަ‘ü±298Ž‘×pÑ\speci@ls‘¹–\elseŽŸßòotherwise–øwš¸ãe“construct“the“ nal“page.‘€°Let“us“no˜wŽ¡consider–žÑthe“normal“case.‘ N;W‘ÿ*ªe“ha•¸ãv“e–žÑto“Í\vsplitŽ¡²the–Ácolumns“from“the“accumš¸ãulated“material“in“bGo˜xŽ¡255.‘p¦Therefore–Qów¸ãe“ rst“assign“appropriate“v‘ÿqÇalues“toŽ¡Í\splittopskip–UU²and“Í\splitmaxdepth².ަ‘ü±299Ž‘×pÑ\splittopskip\topskipŽŸ ‘ü±300Ž‘×pÑ\splitmaxdepth\maxdepthŽŸßòThen–0Àwš¸ãe“calculate“the“curren˜t“column“heigh˜t“(inŽ¡Í\dimen@²).‘ØNote–Ú°that“the“heigh¸ãt“of“Í\partial@pageŽ¡²is–èäalready“subtracted“from“Í\@colroom“²so“w¸ãe“can“useŽ¡its–UUv‘ÿqÇalue“as“a“starter.ަ‘ü±301Ž‘×pÑ\dimen@\@colroomŽŸßòBut–š¨wš¸ãe“m˜ust“also“subtract“the“space“oGccupied“b˜yŽ¡foGotnotes–e®on“the“currenš¸ãt“page.‘¢ÑNote“that“w˜e“ rstŽ¡ha•¸ãv“e–_to“reset“the“skip“register“to“its“normal“v‘ÿqÇalue.Ž¡Again,‘h'the–10actual“action“is“carried“out“in“a“utilit¸ãyŽ¡macro,–UUso“that“other“applications“can“moGdify“it.ަ‘ü±302Ž‘×pÑ\divide\skip\footins\col@numberޤ ‘ü±303Ž‘×pÑ\ifvoid\footins‘¹–\elseŽ¡‘ü±304Ž‘'2Ñ\leave@mult@footinsŽ¡‘ü±305Ž‘×pÑ\fiŽŽ’éÌÍŸ8䄊8äff ýÇ‘ÌͲNo•¸ãw›D‡w“e˜are˜able˜to˜Í\vsplit˜²o ˜all˜but˜the˜last˜col-ޤ ‘ÌÍumn.‘ÖRecall–v¿that“these“columns“should“bGe“sa•¸ãv“ed‘v¿inŽ¡‘ÌÍthe–UUbGo¸ãx“registers“2,“4,.–ªª.“.‘ÿÿ(plus‘UUo set).Ž© I%‘ÐZ±306Ž‘!¤=Ñ\process@cols\mult@gfirstbox{%ޤ ‘ÐZ±307Ž‘9D+Ñ\setbox\count@Ž¡‘ÐZ±308Ž‘L*ƒÑ\vsplit\@cclv‘¹–to\dimen@ޤI%‘ÌͲAfter–UUsplitting“wš¸ãe“upGdate“the“k˜ept“marks.ަ‘ÐZ±309Ž‘L*ƒÑ\set@keptmarksŽ¡‘ÌͲIf–½,Í\raggedcolumns“²is“in“force“w¸ãe“add“a“Ívfill“²at“theŽŸ ‘ÌÍbGottom–UUbš¸ãy“un˜bGo˜xing“the“split“bGo˜x.ަ‘ÐZ±310Ž‘L*ƒÑ\ifshr@nkingޤ ‘ÐZ±311Ž‘U¯Ñ\setbox\count@Ž¡‘ÐZ±312Ž‘cÊqÑ\vbox‘¹–to\dimen@Ž¡‘ÐZ±313Ž‘h„Ñ{\unvbox\count@\vfill}%Ž¡‘ÐZ±314Ž‘L*ƒÑ\fiŽ¡‘ÐZ±315Ž‘GpíÑ}%ŽŸI%‘ÌͲThen–UUthe“last“column“follo¸ãws.ަ‘ÐZ±316Ž‘!¤=Ñ\setbox\mult@rightboxŽ¡‘ÐZ±317Ž‘4Š•Ñ\vsplit\@cclv‘¹–to\dimen@Ž¡‘ÐZ±318Ž‘!¤=Ñ\set@keptmarksŽ¡‘ÐZ±319Ž‘!¤=Ñ\ifshr@nkingŽ¡‘ÐZ±320Ž‘/ÐÿÑ\setbox\mult@rightbox\vbox‘¹–to\dimen@Ž¡‘ÐZ±321Ž‘B·WÑ{\unvbox\mult@rightbox\vfill}%Ž¡‘ÐZ±322Ž‘!¤=Ñ\fiŽŸI%‘ÌͲHaš¸ãving–‘done“this“w˜e“hopšGe“that“b˜o¸ãx“255“is“emptied.ŽŸ ‘ÌÍIf–UUnot,“wš¸ãe“reinsert“its“con˜ten˜ts.ަ‘ÐZ±323Ž‘!¤=Ñ\ifvoid\@cclv‘¹–\elseŽ¡‘ÐZ±324Ž‘4Š•Ñ\unvbox\@cclvŽ¡‘ÐZ±325Ž‘4Š•Ñ\penalty\outputpenaltyŽŸI%‘ÌͲIn–:uthis“case“a“fošGotnote“that“happ˜ens“to“fall“in¸ãtoޤ ‘ÌÍthe›ð0lefto•¸ãv“er˜bit˜will˜bGe˜t“ypGeset˜on˜the˜wrong˜page.Ž¡‘ÌÍTherefore–7Mwš¸ãe“w˜arn“the“user“if“the“curren˜t“page“con-Ž¡‘ÌÍtains–VfoGotnotes.‘tThe“older“v¸ãersions“of“Ìmulticols“²pro-Ž¡‘ÌÍduced–R§this“w¸ãarning“regardless“of“whether“or“not“foGot-Ž¡‘ÌÍnotes–Kwš¸ãere“presen˜t,‘ˆ„resulting“in“man˜y“unnecessaryŽ¡‘ÌÍw¸ãarnings.ަ‘ÐZ±326Ž‘4Š•Ñ\ifvoid\footins\elseޤ ‘ÐZ±327Ž‘=ýÁÑ\PackageWarning{multicol}%Ž¡‘ÐZ±328Ž‘B·WÑ{I–¹–moved“some“lines“toŽ¡‘ÐZ±329Ž‘GpíÑthe–¹–next“page.\MessageBreakŽ¡‘ÐZ±330Ž‘GpíÑFootnotes–¹–on“pageŽ¡‘ÐZ±331Ž‘GpíÑ\thepage\space–¹–might“be“wrong}%Ž¡‘ÐZ±332Ž‘4Š•Ñ\fiŽŸI%‘ÌͲIf–´îthe“`Ìtracingmulticols²'“counš¸ãter“is“4“or“higher“w˜e“alsoŽŸ ‘ÌÍadd–UUa“rule.ަ‘ÐZ±333Ž‘4Š•Ñ\ifnum‘¹–\c@tracingmulticols>\thr@@Ž¡‘ÐZ±334Ž‘q÷3Ñ\hrule\allowbreak‘¹–\fiŽ¡‘ÐZ±335Ž‘!¤=Ñ\fiŽŸI%‘ÌͲT‘ÿ*ªo–®6get“a“correct“marks“for“the“curren¸ãt“pageޤ ‘ÌÍw•¸ãe›`ha“v“e˜to˜(loGcally˜rede ne˜Í\firstmark˜²andŽ¡‘ÌÍÍ\botmark².‘>If–îÃÍ\kept@firstmark“²is“non-empt¸ãy“thenŽ¡‘ÌÍÍ\kept@botmark–²mš¸ãust“bGe“non-empt˜y“toGo“so“w˜e“canŽ¡‘ÌÍuse–N7their“v›ÿqÇalues.‘ \lOtherwise“w¸ãe“use“the“v˜alue“ofŽ¡‘ÌÍÍ\kept@topmark–Ž=²whicš¸ãh“w˜as“ rst“initialized“when“w˜eŽŽŽŽŸ’äÿÿ14ŽŽŒ‹)ç ¨ ýF œŸæÏ] ý›0£²gathered–Athe“Í\partical@page“²and“later“on“w¸ãas“up-Ž© dated–UUto“the“Í\botmark“²for“the“preceding“pageŽŸ¢‘ü±336Ž‘×pÑ\ifx\@empty\kept@firstmarkޤ ‘ü±337Ž‘'2Ñ\let\firstmark\kept@topmarkŽ¡‘ü±338Ž‘'2Ñ\let\botmark\kept@topmarkŽ¡‘ü±339Ž‘×pÑ\elseŽ¡‘ü±340Ž‘'2Ñ\let\firstmark\kept@firstmarkŽ¡‘ü±341Ž‘'2Ñ\let\botmark\kept@botmarkŽ¡‘ü±342Ž‘×pÑ\fiŽŸ¢²W‘ÿ*ªe–~žalso“initalize“Í\topmark“²with“Í\kept@topmark².ަThis–¥êwill“makš¸ãe“this“mark“ok‘ÿqÇa˜y“for“all“middle“pagesަof–UUthe“Ìmulticols“²en•¸ãvironmen“t.ŽŸ ÑH‘ü±343Ž‘×pÑ\let\topmark\kept@topmarkŽ¡‘ü±344Ž‘ ª®ÉhÇma¾9rktraceŽ‘+²ÉiŽ¡‘ü±345Ž‘×pÑ\mult@info\tw@Ž¡‘ü±346Ž‘0w^Ñ{Use–¹–kept“top“mark:\MessageBreakŽ¡‘ü±347Ž‘9êŠÑ\meaning\kept@topmarkŽ¡‘ü±348Ž‘50ôÑ\MessageBreakŽ¡‘ü±349Ž‘50ôÑUse–¹–kept“first“mark:\MessageBreakŽ¡‘ü±350Ž‘9êŠÑ\meaning\kept@firstmarkŽ¡‘ü±351Ž‘0w^Ñ\MessageBreakŽ¡‘ü±352Ž‘50ôÑUse–¹–kept“bot“mark:\MessageBreakŽ¡‘ü±353Ž‘9êŠÑ\meaning\kept@botmarkŽ¡‘ü±354Ž‘0w^Ñ\MessageBreakŽ¡‘ü±355Ž‘50ôÑProduce–¹–first“mark:\MessageBreakŽ¡‘ü±356Ž‘9êŠÑ\meaning\firstmarkŽ¡‘ü±357Ž‘0w^Ñ\MessageBreakŽ¡‘ü±358Ž‘0w^ÑProduce–¹–bot“mark:\MessageBreakŽ¡‘ü±359Ž‘9êŠÑ\meaning\botmarkŽ¡‘ü±360Ž‘50ôÑ\@gobbletwo}%Ž¡‘ü±361Ž‘ ª®ÉhÈ=Çma¾9rktraceŽ‘+²ÉiŽŸÑH²With–hIa“little“more“e ort“wš¸ãe“could“ha˜v˜e“done“bGet-ަter.‘.´If–”Ow¸ãe“had,›¤ for“example,˜recorded“the“shrink‘ÿqÇageަof–ÁÊthe“material“in“Í\partial@page“²it“wš¸ãould“bGe“no˜wަpGossible–xãto“try“higher“v‘ÿqÇalues“for“Í\dimen@“²(i.e.“theަcolumn–[jheighš¸ãt)“to“o˜v˜ercome“the“problem“with“theަnonempt•¸ãy›Þ‘bGo“x˜255.‘ zBut˜this˜w“ould˜mak“e˜the˜coGdeަevš¸ãen–£•more“complex“so“I‘£?skippGed“it“in“the“curren˜tަimplemen¸ãtation.ަ‘ No•¸ãw›† w“e˜use˜LŸýó5‘üff±AŽŽ‘͉²T‘þU>Ÿ'EŽ‘ãxX's˜standard˜output˜mec“ha-ަnism.Ÿü^ÿ±13ŽŽ‘ ê­²Admittedly–UUthis“is“a“funnš¸ãy“w˜a˜y“to“do“it.ŽŸ¢‘ü±362Ž‘×pÑ\setbox\@cclv\vbox{\unvbox\partial@pageŽ¡‘ü±363Ž‘r’Ñ\page@sofar}%ŽŸ¢²The–…macro“Í\@makecol“²adds“all“ oats“assigned“forަthe–Ÿcurren¸ãt“page“to“this“page.‘PžÍ\@outputpage“²shipsަout–Üothe“resulting“bšGo¸ãx.‘Note“that“it“is“just“p˜ossibleަthat–jsucš¸ãh“ oats“are“presen˜t“ev˜en“if“w˜e“do“not“allo˜wަanš¸ãy–UUinside“a“Ìmulticols“²en˜vironmen˜t.ŽŸ ÑH‘ü±364Ž‘×pÑ\@makecol\@outputpageŽŸÑH²After–?3the“page“is“shippGed“out“wš¸ãe“ha˜v˜e“to“pre-ަpare–xàthe“kš¸ãept“marks“for“the“follo˜wing“page.ަÍ\kept@firstmark–@²and“Í\kept@botmark“²reinitilizedŽŽ’éÌÍŸ8ä„qAff ý˜÷¿‘ÌÍb¸ãy–ãäsetting“them“to“Í\@empty².‘K÷The“v‘ÿqÇalue“of“Í\botmarkŽ© ‘ÌͲis–UUthen“assigned“to“Í\kept@topmark².ŽŸhË‘ÐZ±365Ž‘+iÑ\global\let\kept@topmark\botmarkޤ ‘ÐZ±366Ž‘+iÑ\global\let\kept@firstmark\@emptyŽ¡‘ÐZ±367Ž‘+iÑ\global\let\kept@botmark\@emptyŽ¡‘ÐZ±368Ž‘w{ÉhÇma¾9rktraceŽ‘+²ÉiŽ¡‘ÐZ±369Ž‘+iÑ\mult@info\tw@Ž¡‘ÐZ±370Ž‘9D+Ñ{(Re)Init–¹–top“mark:\MessageBreakŽ¡‘ÐZ±371Ž‘=ýÁÑ\meaning\kept@topmarkŽ¡‘ÐZ±372Ž‘=ýÁÑ\@gobbletwo}%Ž¡‘ÐZ±373Ž‘w{ÉhÈ=Çma¾9rktraceŽ‘+²ÉiޤhË‘ÌͲNo•¸ãw›òÑw“e˜reset˜Í\@colroom˜²to˜Í\@colht˜²whic“h˜isަ‘ÌÍLŸýó5‘üff±AŽŽ‘͉²T‘þU>Ÿ'EŽ‘ãxX's›UUsa•¸ãv“ed˜v‘ÿqÇalue˜of˜Í\textheight².ŽŸhË‘ÐZ±374Ž‘!¤=Ñ\global\@colroom\@colhtŽ¡‘ÌͲThen–'›wš¸ãe“proGcess“deferred“ oats“w˜aiting“for“theirަ‘ÌÍc¸ãhance–UUto“bGe“placed“on“the“next“page.ŽŸhË‘ÐZ±375Ž‘!¤=Ñ\process@deferredsޤ ‘ÐZ±376Ž‘!¤=Ñ\@whilesw\if@fcolmade\fi{\@outputpageŽ¡‘ÐZ±377Ž‘/ÐÿÑ\global\@colroom\@colhtŽ¡‘ÐZ±378Ž‘/ÐÿÑ\process@deferreds}%ŽŸhË‘ÌͲIf–¿ýthe“user“is“inš¸ãterested“in“statistics“w˜e“inform“himަ‘ÌÍabGout–UUthe“amounš¸ãt“of“space“reserv˜ed“for“ oats.ŽŸhË‘ÐZ±379Ž‘!¤=Ñ\mult@info\@neŽ¡‘ÐZ±380Ž‘+iÑ{Colroom:\MessageBreakŽ¡‘ÐZ±381Ž‘/ÐÿÑ\the\@colht\spaceŽ¡‘ÐZ±382Ž‘U¯Ñafter–¹–float“space“removedŽ¡‘ÐZ±383Ž‘U¯Ñ=–¹–\the\@colroom“\@gobble}%ޤhË‘ÌͲHaš¸ãving–§done“all“this“w˜e“m˜ust“prepare“to“tac˜kle“theަ‘ÌÍnext–‰òpage.‘ ŸTherefore“w¸ãe“assign“a“new“v‘ÿqÇalue“toަ‘ÌÍÍ\vsize².‘!New,‘r-bGecause–9bÍ\partial@page“²is“noš¸ãw“empt˜yަ‘ÌÍand–sÍ\@colroom“²mighš¸ãt“bGe“reduced“b˜y“the“space“re-ަ‘ÌÍserv¸ãed–UUfor“ oats.ŽŸhË‘ÐZ±384Ž‘&]ÓÑ\set@mult@vsize‘¹–\globalŽ¡‘ÌͲThe–SNÍ\footins“²skip“register“will“bGe“adjusted“whenަ‘ÌÍthe–UUoutput“group“is“closed.ޤhË‘ÐZ±385Ž‘ê§Ñ\fi}ŽŸ¾ˆ‘ÌͲThis–< macro“is“used“to“subtract“the“amoun¸ãt“of“spaceަ‘ÌÍošGccupied–®5b¸ãy“fo˜otnotes“for“the“curren¸ãt“space“from“theަ‘ÌÍspace–9aš¸ãv‘ÿqÇailable“for“the“curren˜t“column.‘ÉtThe“spaceަ‘ÌÍcurrenš¸ãt–x-column“is“stored“in“Í\dimen@².‘ÚPSee“abGo˜v˜e“forަ‘ÌÍthe–UUdescription“of“the“default“action.Ž¡‘ÐZ±386Ž‘w{Ñ\def\leave@mult@footins{%ޤ ‘ÐZ±387Ž‘!¤=Ñ\advance\dimen@-\skip\footinsŽ¡‘ÐZ±388Ž‘!¤=Ñ\advance\dimen@-\ht\footinsŽ¡‘ÐZ±389Ž‘w{Ñ}ŽŸ¾ˆ‘ÌͲW‘ÿ*ªe–—cleft“out“t•¸ãw“o–—cmacros:‘õãÍ\process@deferreds“²andަ‘ÌÍÍ\speci@ls².ŽŸhË‘ÐZ±390Ž‘w{Ñ\def\speci@ls{%Ž¡‘ÐZ±391Ž‘1Ñ\ifnum\outputpenalty‘¹–<-\@MiŽŽŽŸŸJ‰ffYÿ¦Ÿ J=‘wŽŸý-:À13ŽŽŽ‘LÜ¿This–¬nwill“proš¤ Ñ{Floats–¹–and“marginpars“notŽ¡‘ü±394Ž‘C]¶Ñallowed–¹–inside“`multicols'Ž¡‘ü±395Ž‘C]¶Ñenvironment!Ž¡‘ü±396Ž‘>¤ Ñ\@gobble}%Ž¡‘ü±397Ž‘×pÑ\unvbox\@cclv\reinsert@footnotesŽŸª«²Additionally–šwš¸ãe“empt˜y“the“Í\@currlist“²to“a˜v˜oidޤ later–error“messages“when“the“LŸýó5‘üff±AŽŽ‘͉²T‘þU>Ÿ'EŽ‘ãxX“output“routineŽ¡is–áÅagain“in“force.‘ But“ rst“wš¸ãe“ha˜v˜e“to“place“theŽ¡bGo•¸ãxes›ظbac“k˜on“to˜the˜Í\@freelist².‘H>(Í\@elt²s˜default˜isŽ¡Í\relax–UU²so“this“is“pGossible“with“Í\xdef².)ަ‘ü±398Ž‘×pÑ\xdef\@freelist{\@freelist\@currlist}%ŽŸ ‘ü±399Ž‘×pÑ\gdef\@currlist{}%ŽŸª«²If–÷Lthe“pGenalt¸ãy“is“¸²10001“it“will“come“from“aŽ¡Í\clearpage–M²and“w¸ãe“will“execute“Í\@doclearpage“²toŽ¡get–UUrid“of“an¸ãy“deferred“ oats.ަ‘ü±400Ž‘dDÑ\else–¹–\@doclearpage“\fiŽŸ ‘ü±401Ž‘ ª®Ñ}ŽŸÍ\process@deferreds–¬²is“a“simpli ed“v¸ãersion“ofŽ¡LŸýó5‘üff±AŽŽ‘͉²T‘þU>Ÿ'EŽ‘ãxX's–[©Í\@startpage².‘ „ÄW‘ÿ*ªe“ rst“call“the“macroŽ¡Í\@floatplacement–‰²to“sa•¸ãv“e–‰the“curren¸ãt“user“parame-Ž¡ters–¯Çin“inš¸ãternal“registers.‘:˜Then“w˜e“start“a“new“groupŽ¡and›¸åsa•¸ãv“e˜the˜Í\@deferlist˜²tempGorarily˜in˜the˜macroŽ¡Í\@tempb².ަ‘ü±402Ž‘ ª®Ñ\def\process@deferreds{%ޤ ‘ü±403Ž‘×pÑ\@floatplacementŽ¡‘ü±404Ž‘×pÑ\@tryfcolumn\@deferlistŽ¡‘ü±405Ž‘×pÑ\if@fcolmade\elseŽ¡‘ü±406Ž‘"JœÑ\begingroupŽ¡‘ü±407Ž‘‘Ñ\let\@tempb\@deferlistŽŸª«²Our–Ånext“action“is“to“(globally)“empt¸ãy“Í\@deferlistޤ ²and–æ·assign“a“new“meaning“to“Í\@elt².‘%ìHereŽ¡Í\@scolelt–Ò-²is“a“macro“that“lošGoks“at“the“b˜o¸ãxes“inŽ¡a–^list“to“decide“whether“they“should“bGe“placed“onŽ¡the–next“page“(i.e.“on“Í\@toplist“²or“Í\@botlist²)“orŽ¡should–UUw¸ãait“for“further“proGcessing.ަ‘ü±408Ž‘'2Ñ\gdef\@deferlist{}%ŽŸ ‘ü±409Ž‘'2Ñ\let\@elt\@scoleltŽŸª«²No•¸ãw›UUw“e˜call˜Í\@tempb˜²whic“h˜has˜the˜formޤUU‘ÞbÍ\@elt¸hÏb‘ÿ}'oxŽ‘Ÿr–ÿ}'e“gister‘¸iŽ–9·Í\@elt¸hÏb‘ÿ}'oxŽ‘Ÿr–ÿ}'e“gister‘¸iŽ“².–ªª.“.Ž¡So–|÷Í\@elt“²(i.e.“Í\@scolelt²)“will“distribute“the“bGo¸ãxesޤ to–UUthe“three“lists.ަ‘ü±410Ž‘0w^Ñ\@tempb‘¹–\endgroupŽŸ ‘ü±411Ž‘×pÑ\fi}ŽŸ¡ŽŽŽŽ²The–Ü„Í\raggedcolumns“²and“Í\flushcolumns“²declara-Ž¡tions–are“de ned“with“the“help“of“a“new“Í\if...Ž¡²macro.ŽŽ’éÌÍŸñÇ„‰ñÇff ý€9‘ÐZ±412Ž‘w{Ñ\newif\ifshr@nkingŽŸ¼‘ÌͲThe–Vactual“de nitions“are“simple:‘sWwš¸ãe“just“switc˜h“toޤ ‘ÌÍÌtrue–•S²or“Ìfalse“²depGending“on“the“desired“action.‘1ÀT‘ÿ*ªoŽ¡‘ÌÍa•¸ãv“oid–„oextra“spaces“in“the“output“w¸ãe“enclose“theseŽ¡‘ÌÍc¸ãhanges–UUin“Í\@bsphack².–ªª.“.“Í\@esphack².Ž©¼‘‘ÐZ±413Ž‘w{Ñ\def\raggedcolumns{%ޤ ‘ÐZ±414Ž‘!¤=Ñ\@bsphack\shr@nkingtrue\@esphack}Ž¡‘ÐZ±415Ž‘w{Ñ\def\flushcolumns{%Ž¡‘ÐZ±416Ž‘!¤=Ñ\@bsphack\shr@nkingfalse\@esphack}ŽŸùÁ‘ÌͲNoš¸ãw–˜Žfor“the“last“part“of“the“sho˜w:‘ø:the“column“bal-ޤ ‘ÌÍancing–¿output“routine.‘?¬Since“this“coGde“is“called“withŽ¡‘ÌÍan–IÆexplicit“pGenalt¸ãy“(Í\eject²)“there“is“no“need“toŽ¡‘ÌÍc•¸ãhec“k–Еfor“something“spGecial“(eg“ oats).‘ã‡W‘ÿ*ªe“startŽ¡‘ÌÍb¸ãy–UUbalancing“the“material“gathered.ަ‘ÐZ±417Ž‘w{Ñ\def\balance@columns@out{%ŽŸ¼‘ÌͲF‘ÿ*ªor–Hthis“wš¸ãe“need“to“put“the“con˜ten˜ts“of“bGo˜x“255“in˜toŽ¡‘ÌÍÍ\mult@box².ަ‘ÐZ±418Ž‘!¤=Ñ\setbox\mult@box\vbox{\unvbox\@cclv}%ŽŸ ‘ÐZ±419Ž‘!¤=Ñ\balance@columnsŽŸ¼‘ÌͲThis–_will“bring“us“in¸ãto“the“pGosition“to“applyŽ¡‘ÌÍÍ\page@sofar².‘€ÂBut–ZS rst“wš¸ãe“ha˜v˜e“to“set“Í\vsize“²toŽ¡‘ÌÍa–UUv‘ÿqÇalue“suitable“for“one“column“output.ަ‘ÐZ±420Ž‘!¤=Ñ\global\vsize\@colroomŽŸ ‘ÐZ±421Ž‘!¤=Ñ\global\advance\vsize\ht\partial@pageŽŸ¼‘ÌͲThen–ÿwš¸ãe“Í\unvbox“²the“Í\partial@page“²(whic˜h“ma˜yŽ¡‘ÌÍbGe–N7vš¸ãoid“if“w˜e“are“not“prcessing“the“ rst“page“of“thisŽ¡‘ÌÍÌmulticols‘UU²en•¸ãvironmen“t.ަ‘ÐZ±422Ž‘!¤=Ñ\unvbox\partial@pageŽŸ¼‘ÌͲThen–‡ãw¸ãe“return“the“ rst“and“bGottom“mark“and“theŽ¡‘ÌÍgathered–UUmaterial“to“the“main“v¸ãertical“list.ަ‘ÐZ±423Ž‘!¤=Ñ\return@nonemptymark{first}\kept@firstmarkޤ ‘ÐZ±424Ž‘!¤=Ñ\return@nonemptymark{bot}\kept@botmarkŽ¡‘ÐZ±425Ž‘!¤=Ñ\page@sofarŽŸ¼‘ÌͲW‘ÿ*ªe–çÐneed“to“add“a“pšGenalt¸ãy“at“this“p˜oinš¸ãt“whic˜h“allo˜wsޤ ‘ÌÍto–·Lbreak“at“this“pGoin¸ãt“since“calling“the“output“rou-Ž¡‘ÌÍtine–9maš¸ãy“ha˜v˜e“remo˜v˜ed“the“only“pGermissible“breakŽ¡‘ÌÍpGoin•¸ãt›Ê$thereb“y˜\glueing"˜an“y˜follo“wing˜skip˜to˜theŽ¡‘ÌÍbalanced–Ö bGoš¸ãx.‘óãIn“case“there“are“an˜y“w˜eird“settingsŽ¡‘ÌÍfor–;…Í\multicolsep“²etc.‘i,this“could“proGduce“funn¸ãy“re-Ž¡‘ÌÍsults.ަ‘ÐZ±426Ž‘!¤=Ñ\penalty\z@ŽŸ ‘ÐZ±427Ž‘w{Ñ}ŽŸ¼‘ÌͲAs– Lwš¸ãe“already“kno˜w,‘´reinserting“of“fošGotnotes“will“b˜eŽ¡‘ÌÍdone–UUin“the“macro“Í\endmulticols².ŽŸùÁ‘ÌÍThis–UUmacro“no¸ãw“doGes“the“actual“balancing.ަ‘ÐZ±428Ž‘w{Ñ\def\balance@columns{%ŽŽŽŽŸ’äÿÿ²16ŽŽŒ‹T  ¨ ýF œ ý‚²W‘ÿ*ªe–.5start“bš¸ãy“setting“the“k˜ept“marks“b˜y“upGdatingޤ them–qÄwith“anš¸ãy“marks“from“this“bGo˜x.‘ÇThis“has“toŽ¡bšGe–ö“done“Ïb–ÿ}'efor“e‘¶î²w¸ãe–ö“add“a“p˜enalt¸ãy“of“¸²10000“to“theŽ¡top–Öof“the“bGoš¸ãx,‘Votherwise“only“an“empt˜y“bGo˜x“will“bGeŽ¡considered.Ž©r‘ü±429Ž‘×pÑ\get@keptmarks\mult@boxŽŸr²W‘ÿ*ªe–Änthen“conš¸ãtine“b˜y“resetting“trying“to“remo˜v˜e“an˜yŽ¡discardable–øästu “at“the“end“of“Í\mult@box².‘\tThis“isŽ¡rather–³YexpGerimen¸ãtal.‘‹ÒW‘ÿ*ªe“also“add“a“forced“breakŽ¡pGoinš¸ãt–äÙat“the“v˜ery“bGeginning,‘ûYso“that“w˜e“can“split“theŽ¡bGoš¸ãx–ñíto“heigh˜t“zero“later“on,‘Ïthereb˜y“adding“a“kno˜wnŽ¡Í\splittopskip–UU²glue“at“the“bGeginning.ަ‘ü±430Ž‘×pÑ\setbox\mult@box\vbox{%ޤ ‘ü±431Ž‘0w^Ñ\penalty-\@MŽ¡‘ü±432Ž‘0w^Ñ\unvbox\mult@boxŽ¡‘ü±433Ž‘0w^Ñ\remove@discardable@itemsŽ¡‘ü±434Ž‘0w^Ñ}%ŽŸr²Then– URfolloš¸ãw“v‘ÿqÇalues“assignmen˜ts“to“get“theޤ Í\vsplit²ting–æ·righ¸ãt.‘ %íW‘ÿ*ªe“use“the“natural“part“ofŽ¡Í\topskip–ûK²as“the“natural“part“for“Í\splittopskipŽ¡²and–Žÿalloš¸ãw“for“a“bit“of“undershoGot“and“o˜v˜ershoGot“b˜yŽ¡adding–UUsome“stretc¸ãh“and“shrink.ަ‘ü±435Ž‘×pÑ\@tempdima\topskipޤ ‘ü±436Ž‘×pÑ\splittopskip\@tempdimaŽ¡‘ü±437Ž‘+½ÈÑ\@plus\multicolundershootŽ¡‘ü±438Ž‘+½ÈÑ\@minus\multicolovershootŽ¡‘ü±439Ž‘×pÑ\splitmaxdepth\maxdepthŽŸr²The–ïnext“step“is“a“bit“tric¸ãky:‘äûwhen“T‘þU>Ÿ'EŽ‘ãxX“assem-ޤ bles–ÿ8material“in“a“bGo¸ãx,‘)±the“ rst“line“isn't“precededŽ¡b•¸ãy›!üin“terline˜glue,‘•&i.e.‘ ×½there˜is˜no˜parameter˜lik“eŽ¡Í\boxtopskip–D„²in“T‘þU>Ÿ'EŽ‘ãxX.‘l,This“means“that“the“baselineŽ¡of–y—the“ rst“line“in“our“bGo¸ãx“is“at“some“unpredictableŽ¡p•Goin¸ãt›øàdep“ending˜on˜the˜heigh•¸ãt˜of˜the˜largest˜c“harac-Ž¡ter–¾7in“this“line.‘¬lBut“of“course“wš¸ãe“w˜an˜t“all“columnsŽ¡to–4#align“propGerly“at“the“baselines“of“their“ rst“lines.Ž¡F‘ÿ*ªor–this“reason“wš¸ãe“ha˜v˜e“opGened“Í\mult@box“²with“aŽ¡Í\penalty–lÌ-10000².‘ö This“will“noš¸ãw“allo˜w“us“to“splitŽ¡o –:xfrom“Í\mult@box“²a“tin¸ãy“bit“(in“fact“nothing“sinceŽ¡the–K rst“pšGossible“break-p˜oin¸ãt“is“the“ rst“item“in“theŽ¡bGo¸ãx).‘$The–‡result“is“that“Í\splittopskip“²is“insertedŽ¡at–²the“top“of“Í\mult@box“²whicš¸ãh“is“exactly“what“w˜eŽ¡likš¸ãe–UUto“ac˜hiev˜e.ަ‘ü±440Ž‘×pÑ\setbox\@tempboxa\vsplit\mult@box‘¹–to\z@ŽŸr²Next–!öwš¸ãe“try“to“ nd“a“suitable“starting“pGoin˜t“forŽ¡the–þ‘calculation“of“the“column“heigh¸ãt.‘mzIt“should“bGeŽ¡less–ê§than“the“heighš¸ãt“ nally“c˜hosen,‘ÿýbut“large“enoughŽ¡to–û?reac¸ãh“this“ nal“v‘ÿqÇalue“in“only“a“few“iterations.Ž¡The–ñÄformš¸ãula“whic˜h“is“no˜w“implemen˜ted“will“try“toŽ¡start– ¡with“the“nearest“v‘ÿqÇalue“whicš¸ãh“is“a“m˜ultiple“ofŽ¡Í\baselineskip².‘yThe–:icoGding“is“slighš¸ãtly“tric˜ky“in“T‘þU>Ÿ'EŽ‘ãxXŽ¡and–UUthere“are“pšGerhaps“b˜etter“w•¸ãa“ys‘UU.–ªª.“.ަ‘ü±441Ž‘×pÑ\@tempdima\ht\mult@boxŽŸ ‘ü±442Ž‘×pÑ\advance\@tempdima\dp\mult@boxŽŽ’éÌÍŸ„Šff ý€‘ÐZ±443Ž‘!¤=Ñ\divide\@tempdima\col@numberŽ©’I‘ÌͲThe–ˆåcošGde“ab˜o•¸ãv“e–ˆåsets“Í\@tempdima“²to“the“length“ofޤ ‘ÌÍa–î›column“if“wš¸ãe“simply“divide“the“whole“bGo˜x“in˜toŽ¡‘ÌÍequal–(¸pieces.‘ëðT‘ÿ*ªo“get“to“the“next“lo•¸ãw“er›(¸m“ultiple˜ofŽ¡‘ÌÍÍ\baselineskip–ቲwš¸ãe“con˜v˜ert“this“dimen“to“a“n˜um-Ž¡‘ÌÍbšGer–#‹(the“n•¸ãum“b˜er–#‹of“scaled“p˜oin¸ãts)“then“divide“thisŽ¡‘ÌÍbš¸ãy–@Í\baselineskip“²(also“in“scaled“pGoin˜ts)“and“thenŽ¡‘ÌÍm¸ãultiply–íthis“result“with“Í\baselineskip“²assigningŽ¡‘ÌÍthe–h‹result“to“Í\dimen@².‘«iThis“mak¸ães“Í\dimen@“¸“²toŽ¡‘ÌÍÍ\@tempdimena².ŽŸ ’I‘ÐZ±444Ž‘!¤=Ñ\count@\@tempdimaޤ ‘ÐZ±445Ž‘!¤=Ñ\divide\count@\baselineskipŽ¡‘ÐZ±446Ž‘!¤=Ñ\dimen@\count@\baselineskipަ‘ÌͲNext–ê¨step“is“to“correct“our“result“b¸ãy“takingޤ ‘ÌÍin•¸ãto›J¬accoun“t˜the˜di erence˜bGet“w“een˜Í\topskip˜²andŽ¡‘ÌÍÍ\baselineskip².‘+“W‘ÿ*ªe–=îstart“b¸ãy“adding“Í\topskip²;‘²;ifŽ¡‘ÌÍthis–6makš¸ães“the“result“toGo“large“then“w˜e“ha˜v˜e“to“sub-Ž¡‘ÌÍtract–UUone“Í\baselineskip².ŽŸ ’I‘ÐZ±447Ž‘!¤=Ñ\advance\dimen@\topskipޤ ‘ÐZ±448Ž‘!¤=Ñ\ifdim–¹–\dimen@“>\@tempdimaŽ¡‘ÐZ±449Ž‘+iÑ\advance\dimen@-\baselineskipŽ¡‘ÐZ±450Ž‘!¤=Ñ\fiަ‘ÌͲAš¸ãt–}Ûthe“user's“request“w˜e“start“with“a“higher“v‘ÿqÇalue“(orޤ ‘ÌÍlo•¸ãw“er,‘0 but–&Óthis“usually“only“increases“the“n•¸ãum“bGer‘&ÓofŽ¡‘ÌÍtries).ޤ ’I‘ÐZ±451Ž‘!¤=Ñ\advance\dimen@\c@unbalance\baselineskipަ‘ÌͲW‘ÿ*ªe–UUtš¸ãypGe“out“statistics“if“w˜e“w˜ere“ask˜ed“to“do“so.Ž¡‘ÐZ±452Ž‘!¤=Ñ\mult@info\@neޤ ‘ÐZ±453Ž‘/ÐÿÑ{Balance‘¹–columns\on@line:Ž¡‘ÐZ±454Ž‘9D+Ñ\ifnum\c@unbalance=\z@\elseŽ¡‘ÐZ±455Ž‘4Š•Ñ(off‘¹–balance=\number\c@unbalance)\fiŽ¡‘ÐZ±456Ž‘/ÐÿÑ\@gobbletwo}%ަ‘ÌͲBut–UUwš¸ãe“don't“allo˜w“nonsense“v‘ÿqÇalues“for“a“start.ŽŸ ’I‘ÐZ±457Ž‘!¤=Ñ\ifnum\dimen@<\topskipŽ¡‘ÐZ±458Ž‘+iÑ\mult@info\@neŽ¡‘ÐZ±459Ž‘4Š•Ñ{Start‘¹–valueŽ¡‘ÐZ±460Ž‘B·WÑ\the\dimen@‘ s,\space‘¹–->Ž¡‘ÐZ±461Ž‘B·WÑ\the\topskip–¹–\space“(corrected)}%Ž¡‘ÐZ±462Ž‘+iÑ\dimen@\topskipŽ¡‘ÐZ±463Ž‘!¤=Ñ\fiަ‘ÌͲNo•¸ãw›„w“e˜try˜to˜ nd˜the˜ nal˜column˜heigh“t.‘,0W‘ÿ*ªe˜startޤ ‘ÌÍbš¸ãy–Žsetting“Í\vbadness“²to“in nit˜y“(i.e.“10000)“to“sup-Ž¡‘ÌÍpress–Lounderfull“bšGo¸ãx“rep˜orts“while“w¸ãe“are“trying“toŽ¡‘ÌÍ nd–ÕSan“acceptable“solution.‘ñÀW‘ÿ*ªe“do“not“need“to“doŽ¡‘ÌÍit–sin“a“group“since“at“the“end“of“the“output“routineŽ¡‘ÌÍev¸ãerything–Wuwill“bGe“restored.‘x&The“setting“of“the“ nalŽ¡‘ÌÍcolumns–V€will“nearly“alw•¸ãa“ys–V€prošGduce“underfull“b˜o¸ãxesŽ¡‘ÌÍwith–”ˆbadness“10000“so“there“is“no“pGoinš¸ãt“in“w˜arningŽ¡‘ÌÍthe–UUuser“abGout“it.ŽŸ ’I‘ÐZ±464Ž‘!¤=Ñ\vbadness\@Mަ‘ÌͲW‘ÿ*ªe–ÆOalso“alloš¸ãw“for“o˜v˜erfull“bGo˜xes“while“w˜e“trying“toŽ¡‘ÌÍsplit–UUthe“columns.ŽŸ ’I‘ÐZ±465Ž‘!¤=Ñ\vfuzz‘¹–\col@number\baselineskipŽŽŽŽŸ’äÿÿ²17ŽŽŒ‹i ¨ ýF œŸæÏ] ý›0£²The–­ v‘ÿqÇariable“Í\last@try“²will“hold“the“dimensionޤ used–á÷in“the“previous“trial“splitting.‘ ¬W‘ÿ*ªe“initializeŽ¡it–UUwith“a“negativ¸ãe“v‘ÿqÇalue.Ž© Á/‘ü±466Ž‘×pÑ\last@try-\p@ŽŸ ‘ü±467Ž‘×pÑ\loopŽŸÁ/²In–ÙÇorder“not“to“clutter“up“T‘þU>Ÿ'EŽ‘ãxX's“v‘ÿqÇaluable“mainŽ¡memory–ɯwith“things“that“are“no“longer“needed,‘æÅw¸ãeŽ¡emptš¸ãy– õall“globally“used“bGo˜x“registers.‘`RThis“is“neces-Ž¡sary–a÷if“wš¸ãe“return“to“this“pGoin˜t“after“an“unsuccessfulŽ¡trial.‘!W‘ÿ*ªe–cuse“Í\process@cols“²for“this“purpGose,‘“}start-Ž¡ing–öŸ'EŽ‘ãxX's›P1Í\loop².–ªª.“.“Í\repeat˜²mec¸ãhanism˜cannotŽ¡bGe–UUnested“on“the“same“lev¸ãel“of“grouping.ަ‘ü±468Ž‘‘Ñ{\process@cols\mult@grightboxޤ ‘ü±469Ž‘>¤ Ñ{\global\setbox\count@Ž¡‘ü±470Ž‘dpÐÑ\box\voidb@x}}%ŽŸÁ/²The›…Vcon•¸ãten“ts˜of˜bGo“x˜Í\mult@box˜²are˜no“w˜copied˜glob-ޤ ally– Hto“bšGo¸ãx“Í\mult@grightbox².‘ ¡(This“will“b˜e“theŽ¡righš¸ãt-most–UUcolumn,“as“w˜e“shall“see“later.)ަ‘ü±471Ž‘‘Ñ\global\setbox\mult@grightboxŽŸ ‘ü±472Ž‘>¤ Ñ\copy\mult@boxŽŸÁ/²W‘ÿ*ªe–v‚start“with“the“assumption“that“the“trial“will“bGeŽ¡successful.‘#ˆIf–•w¸ãe“end“up“with“a“solution“that“is“toGoŽ¡bad–UUw¸ãe“set“Ítoo@bad“²to“Ífalse².ަ‘ü±473Ž‘ ª®ÉhÇbadnessŽ‘"šóÉiޤ ‘ü±474Ž‘×pÑ\global\too@badfalseŽ¡‘ü±475Ž‘ ª®ÉhÈ=ÇbadnessŽ‘"šóÉiŽŸÁ/²Using–YÍ\vsplit“²w¸ãe“extract“the“other“columns“fromޤ bGoš¸ãx–½[register“Í\mult@grightbox².‘?This“lea˜v˜es“bGo˜x“reg-Ž¡ister–¬sÍ\mult@box“²un•¸ãtouc“hed–¬sso“that“wš¸ãe“can“start“o˜v˜erŽ¡again–UUif“this“trial“w¸ãas“unsuccessful.ަ‘ü±476Ž‘×pÑ{\process@cols\mult@firstbox{%ޤ ‘ü±477Ž‘50ôÑ\global\setbox\count@Ž¡‘ü±478Ž‘50ôÑ\vsplit\mult@grightbox‘¹–to\dimen@ŽŸÁ/²After– levš¸ãery“split“w˜e“c˜hec˜k“the“badness“of“the“result-ޤ ing–˜column,‘©Znormally“the“amoun¸ãt“of“extra“white“inŽ¡the‘UUcolumn.ަ‘ü±479Ž‘ ª®ÉhÇbadnessŽ‘"šóÉiޤ ‘ü±480Ž‘50ôÑ\ifnum\c@tracingmulticols>\@neŽ¡‘ü±481Ž‘>¤ Ñ\@tempcnta\count@Ž¡‘ü±482Ž‘>¤ Ñ\advance\@tempcnta-\mult@grightboxŽ¡‘ü±483Ž‘>¤ Ñ\divide\@tempcnta‘¹–\tw@Ž¡‘ü±484Ž‘>¤ Ñ\message{^^JColumnŽ¡‘ü±485Ž‘LÐâÑ\number\@tempcnta\spaceŽ¡‘ü±486Ž‘QŠxÑbadness:‘¹–\the\badness\space}%Ž¡‘ü±487Ž‘50ôÑ\fiŽŸÁ/²If–Ó‹this“badness“is“larger“than“the“allo•¸ãw“ed‘Ó‹columnޤ badness–ýøwš¸ãe“reject“this“solution“b˜y“setting“Ítoo@badŽ¡²to‘UUÍtrue².ަ‘ü±488Ž‘50ôÑ\ifnum\badness>\c@columnbadnessŽŽ’éÌÍŸ„pÏ]ff ý™0£‘ÐZ±489Ž‘GpíÑ\ifnum\c@tracingmulticols>\@neޤ ‘ÐZ±490Ž‘PäÑ\message{too‘¹–badŽ¡‘ÐZ±491Ž‘h„Ñ(>\the\c@columnbadness)}%Ž¡‘ÐZ±492Ž‘GpíÑ\fiŽ¡‘ÐZ±493Ž‘GpíÑ\global\too@badtrueŽ¡‘ÐZ±494Ž‘=ýÁÑ\fiŽ¡‘ÐZ±495Ž‘w{ÉhÈ=ÇbadnessŽ‘"šóÉiŽ¡‘ÐZ±496Ž’„Ý‹Ñ}}%Ž©™u‘ÌͲThere–‰This“meansŽ¡‘ÌÍthat–Zwš¸ãe“ma˜y“end“up“with“a“v˜ery“large“depth“in“bGo˜xŽ¡‘ÌÍÍ\mult@grightbox–Pœ²whicš¸ãh“w˜ould“mak˜e“the“result“ofŽ¡‘ÌÍthe–½%testing“incorrect.‘©8So“wš¸ãe“c˜hange“the“v‘ÿqÇalue“b˜yŽ¡‘ÌÍun•¸ãbšGo“xing–UUthe“b˜oš¸ãx“in˜to“itself.ŽŸ™v‘ÐZ±497Ž‘!¤=Ñ\boxmaxdepth\maxdepthޤ ‘ÐZ±498Ž‘!¤=Ñ\global\setbox\mult@grightboxŽ¡‘ÐZ±499Ž‘/ÐÿÑ\vbox{\unvbox\mult@grightbox}%ަ‘ÌͲW‘ÿ*ªe–¾\@neޤ ‘ÐZ±503Ž‘4Š•Ñ\message{^^JFirst‘¹–columnŽ¡‘ÐZ±504Ž‘GpíÑ=‘¹–\the\dimen@\spaceŽ¡‘ÐZ±505Ž‘GpíÑ(\the\ht\mult@nat@firstbox)}\fiަ‘ÌͲIf–‚bÍ\raggedcolumns“²is“in“force“w¸ãe“also“shrink“the“ rstŽŸ ‘ÌÍcolumn–UUto“its“natural“heigh¸ãt.ŽŸ™v‘ÐZ±506Ž‘&]ÓÑ\ifshr@nkingŽ¡‘ÐZ±507Ž‘/ÐÿÑ\global\setbox\mult@firstboxŽ¡‘ÐZ±508Ž‘PäÑ\copy\mult@nat@firstboxŽ¡‘ÐZ±509Ž‘&]ÓÑ\fiަ‘ÌͲThen–öIwš¸ãe“giv˜e“information“abGout“the“last“column.Ÿü^ÿ±14ŽŽŽŸ™v‘ÐZ510Ž‘&]ÓÑ\ifnum\c@tracingmulticols>\@neŽ¡‘ÐZ±511Ž‘/ÐÿÑ\message{<>–¹–last“column“=Ž¡‘ÐZ±512Ž‘ZWEÑ\the\ht\mult@grightbox^^J}%ŽŽŽŸff‰ffYÿ¦Ÿ J=‘wŽŸý-:À14ŽŽŽ‘LÜ¿With–òxT‘þ•AŸ¸ãEŽ‘MX“všÃŽersion“3.141“it“is“no˜w“pš4Ž¡‘ü±515Ž‘50ôÑ{\showoutputŽ¡‘ü±516Ž‘9êŠÑ\batchmodeŽ¡‘ü±517Ž‘9êŠÑ\process@cols\@neŽ¡‘ü±518Ž‘>¤ Ñ{\showbox\count@}}%Ž¡‘ü±519Ž‘9êŠÑ\errorstopmodeŽ¡‘ü±520Ž‘'2Ñ\fiŽ¡‘ü±521Ž‘ ª®ÉhÈ=ÇdebugŽ‘ÒœÉiŽ¡‘ü±522Ž‘"JœÑ\fiŽŸ]²W‘ÿ*ªe›×c•¸ãhec“k˜whether˜our˜trial˜w“as˜successful.‘VòThe˜testޤ used–›™is“vš¸ãery“simple:‘éw˜e“merely“compare“the“ rst“andŽ¡the– ‹last“column.‘ ”iThš¸ãus“the“in˜termediate“columnsŽ¡ma¸ãy–˜ebGe“longer“than“the“ rst“if“Í\raggedcolumnsŽ¡²is–6used.‘ œkIf“the“righ¸ãt-most“column“is“longer“thanŽ¡the– rst“then“wš¸ãe“start“o˜v˜er“with“a“larger“v‘ÿqÇalue“forŽ¡Í\dimen@².ަ‘ü±523Ž‘‘Ñ\ifdim\ht\mult@grightbox‘¹–>\dimen@ŽŸ]²If–ª¨the“heighš¸ãt“of“the“last“bGo˜x“is“toGo“large“w˜e“mark“thisŽ¡trial–UUas“unsuccessful.ަ‘ü±524Ž‘ ª®ÉhÇbadnessŽ‘"šóÉiޤ ‘ü±525Ž‘'2Ñ\too@badtrueŽ¡‘ü±526Ž‘‘Ñ\elseŽŸ]²Otherwise–oÔwš¸ãe“ha˜v˜e“a“v‘ÿqÇalid“solution.‘ÁEIn“this“case“w˜eޤ tak¸ãe–É a“closer“loGok“at“the“last“column“to“decide“if“thisŽ¡column–ç~should“bGe“made“as“long“as“all“other“columnsŽ¡or–’]if“it“should“bšGe“allo•¸ãw“ed–’]to“b˜e“shorter.‘(ÞF‘ÿ*ªor“thisŽ¡wš¸ãe–y† rst“ha˜v˜e“to“rebGo˜x“the“column“in˜to“a“bGo˜x“of“theŽ¡appropriate–­heighš¸ãt.‘xÛIf“tracing“is“enabled“w˜e“thenŽ¡displaš¸ãy–UUthe“badness“for“this“bGo˜x.ަ‘ü±527Ž‘'2Ñ\global\setbox\mult@grightboxޤ ‘ü±528Ž‘50ôÑ\vbox‘¹–to\dimen@Ž¡‘ü±529Ž‘C]¶Ñ{\unvbox\mult@grightbox}%Ž¡‘ü±530Ž‘'2Ñ\ifnum\c@tracingmulticols>\@neŽ¡‘ü±531Ž‘0w^Ñ\message{Final‘¹–badness:Ž¡‘ü±532Ž‘Zý¤Ñ\the\badness}%Ž¡‘ü±533Ž‘'2Ñ\fiŽŸ]²W‘ÿ*ªe–yÄthen“compare“this“badness“with“the“allo•¸ãw“ed‘yÄbad-ޤ ness–yyfor“the“ nal“column.‘Þ3If“it“doGes“not“exceed“thisŽ¡v‘ÿqÇalue–›Hwš¸ãe“use“the“bGo˜x,‘ìÅotherwise“w˜e“rebGo˜x“it“onceŽ¡more–UUand“add“some“glue“at“the“bGottom.ަ‘ü±534Ž‘'2Ñ\ifnum\badness>\c@finalcolumnbadnessޤ ‘ü±535Ž‘0w^Ñ\global\setbox\mult@grightboxŽ¡‘ü±536Ž‘50ôÑ\vbox‘¹–to\dimen@Ž¡‘ü±537Ž‘LÐâÑ{\unvbox\mult@grightbox\vfill}%Ž¡‘ü±538Ž‘50ôÑ\ifnum\c@tracingmulticols>\@neŽ¡‘ü±539Ž‘>¤ Ñ\message{–¹–setting“naturalŽŽ’éÌÍŸ„gEff ý¢ºá‘ÐZ±540Ž‘U¯Ñ(>‘¹–\the\c@finalcolumnbadness)}%ޤ ‘ÐZ±541Ž‘=ýÁÑ\fiŽ¡‘ÐZ±542Ž‘/ÐÿÑ\fiŽ¡‘ÐZ±543Ž‘&]ÓÑ\fiŽŸÍu‘ÐZ±544Ž‘&]ÓÑ\ifdim\ht\mult@nat@firstbox<\dimen@Ž¡‘ÐZ±545Ž‘/ÐÿÑ\ifdim\ht\mult@nat@firstbox>\last@tryŽ¡‘ÐZ±546Ž‘9D+Ñ\too@badtrueŽ¡‘ÐZ±547Ž‘9D+Ñ\dimen@\ht\mult@nat@firstboxŽ¡‘ÐZ±548Ž‘9D+Ñ\last@try\dimen@Ž¡‘ÐZ±549Ž‘9D+Ñ\advance\dimen@-\p@Ž¡‘ÐZ±550Ž‘/ÐÿÑ\fiŽ¡‘ÐZ±551Ž‘&]ÓÑ\fiŽŸÍt‘ÌͲFinally–òYthe“switcš¸ãh“Ítoo@bad“²is“tested.‘PÈIf“it“w˜as“madeޤ ‘ÌÍtrue––either“earlier“on“or“due“to“a“righ¸ãtmost“columnŽ¡‘ÌÍb•Geing›to“o˜large˜w•¸ãe˜try˜again˜with˜a˜sligh“tly˜largerŽ¡‘ÌÍv‘ÿqÇalue–UUfor“Í\dimen@².Ž©@‘ÐZ±552Ž‘&]ÓÑ\iftoo@badޤ ‘ÐZ±553Ž‘w{ÉhÈ=ÇbadnessŽ‘"šóÉiŽ¡‘ÐZ±554Ž‘/ÐÿÑ\advance\dimen@\p@Ž¡‘ÐZ±555Ž‘&]ÓÑ\repeatŽŸ@‘ÌͲNo•¸ãw› _w“e˜sa“v“e˜the˜actual˜heigh“t˜of˜bGo“xޤ ‘ÌÍÍ\mult@firstbox–*¯²(i.e.“the“left“column)“in“theŽ¡‘Ì͸hÏdimen‘Äc¸iŽ‘1IJregister–—Í\dimen@“²since“otherwise“this“in-Ž¡‘ÌÍformation–®·will“bšGe“lost“when“pro˜cessing“the“co˜deŽ¡‘ÌÍbGelo¸ãw.Ÿü^ÿ±15ŽŽŽ¦‘ÐZ556Ž‘!¤=Ñ\dimen@\ht\mult@firstboxŽŸ@‘ÌͲIf–¹Äthe“determined“heigh¸ãt“for“the“columns“turns“outŽ¡‘ÌÍto–:¨bGe“larger“than“the“aš¸ãv‘ÿqÇailable“space“(whic˜h“isŽ¡‘ÌÍÍ\@colroom²)–‰&wš¸ãe“sqeeze“the“columns“in˜to“the“spaceŽ¡‘ÌÍassuming–uPthat“they“will“ha•¸ãv“e–uPenough“shrink‘ÿqÇabilit¸ãyŽ¡‘ÌÍto–UUallo¸ãw“this.Ÿü^ÿ±16ŽŽŽ¦‘ÐZ557Ž‘!¤=Ñ\ifdim\dimen@>\@colroomޤ ‘ÐZ±558Ž‘/ÐÿÑ\dimen@\@colroomŽ¡‘ÐZ±559Ž‘!¤=Ñ\fiŽŸ@‘ÌͲThen–Ê%wš¸ãe“mo˜v˜e“the“con˜ten˜ts“of“the“o•Gdd-n˜um˜b“eredޤ ‘ÌÍbGoš¸ãx–®registers“to“the“ev˜en-n˜um˜bGered“ones,‘Ä?shrinkingŽ¡‘ÌÍthem–ßif“requested.‘_KW‘ÿ*ªe“ha•¸ãv“e–ßto“use“Í\vbox“²not“Í\vtopŽ¡‘ÌͲ(as–00it“wš¸ãas“done“in“the“ rst“v˜ersions)“since“otherwiseŽ¡‘ÌÍthe–Ÿ}resulting“bGoš¸ãxes“will“ha˜v˜e“no“heigh˜t“(ÎT‘þU>Ÿ'EŽ‘ãxXb•Go“okŽ¡‘ÌͲpage–´ð81).‘™This“w¸ãould“mean“that“extra“Í\topskipŽ¡‘ÌͲis–Öadded“when“the“bGo¸ãxes“are“returned“to“the“page-Ž¡‘ÌÍbuilder–UUvia“Í\page@sofar².ަ‘ÐZ±560Ž‘!¤=Ñ\process@cols\mult@rightboxޤ ‘ÐZ±561Ž‘4Š•Ñ{\@tempcnta\count@Ž¡‘ÐZ±562Ž‘9D+Ñ\advance\@tempcnta\@neŽ¡‘ÐZ±563Ž‘9D+Ñ\setbox\count@\vbox‘¹–to\dimen@Ž¡‘ÐZ±564Ž‘GpíÑ{%ŽŸÍu‘ÐZ±565Ž‘L*ƒÑ\vskip‘¹–\z@Ž¡‘ÐZ±566Ž‘U¯Ñ\@plus-\multicolundershootŽ¡‘ÐZ±567Ž‘U¯Ñ\@minus-\multicolovershootŽŽŽŸff‰ffYÿ¦Ÿ J=‘wŽŸý-:À15ŽŽŽ‘LÜ¿The–ÕXv‡alue“of“Ð\dimen@“¿mašÃŽy“di er“from“the“heigh˜t“of“b‘wŽŸý-:À16ŽŽŽ‘LÜ¿This–ÀªmighšÃŽt“b7Ò4.5Ž‘ÀThe–€bš`o x“allo˜cationsŽ ‹Ÿ‹Ÿ ŽŽŽ¤ ¡ŽŽŽŽ²Early–Äreleases“of“these“macros“used“the“ rst“bGo¸ãxޤ registers›ÐÍ0,–ïª2,“4,.–ªª.“.‘{wfor˜global˜bGo¸ãxes˜and˜1,–ïª3,“5,.–ªª.“.Ž¡for–ĺthe“correspšGonding“lo˜cal“b˜oš¸ãxes.‘¿ö(Y‘ÿ*ªou“migh˜t“stillŽ¡ nd–ë‹some“traces“of“this“setup“in“the“doGcumen¸ãtation,Ž¡sigh.)‘zHThis–­€proGduced“a“problem“at“the“momenš¸ãt“w˜eŽ¡had–F5more“than“5“columns“bGecause“then“ocially“allo-Ž¡cated–ÓbGoš¸ãxes“w˜ere“o˜v˜erwritten“b˜y“the“algorithm.‘F\TheŽ¡new–UUrelease“noš¸ãw“uses“priv‘ÿqÇate“bGo˜x“registersŽŸ ‘ü±571Ž‘ ª®Ñ\newbox\mult@rightboxޤ ‘ü±572Ž‘ ª®Ñ\newbox\mult@grightboxŽ¡‘ü±573Ž‘ ª®Ñ\newbox\mult@gfirstboxŽŽ’éÌÍŸ„ffŸ‰‘ÐZ±574Ž‘w{Ñ\newbox\mult@firstboxޤ ‘ÐZ±575Ž‘w{Ñ\newbox\@tempa\newbox\@tempaŽ¡‘ÐZ±576Ž‘w{Ñ\newbox\@tempa\newbox\@tempaŽ¡‘ÐZ±577Ž‘w{Ñ\newbox\@tempa\newbox\@tempaŽ¡‘ÐZ±578Ž‘w{Ñ\newbox\@tempa\newbox\@tempaŽ¡‘ÐZ±579Ž‘w{Ñ\newbox\@tempa\newbox\@tempaŽ¡‘ÐZ±580Ž‘w{Ñ\newbox\@tempa\newbox\@tempaŽ¡‘ÐZ±581Ž‘w{Ñ\newbox\@tempa\newbox\@tempaŽ¡‘ÐZ±582Ž‘w{Ñ\newbox\@tempa\newbox\@tempaŽ¡‘ÐZ±583Ž‘w{Ñ\newbox\@tempaŽ¡‘ÐZ±584Ž‘w{Ñ\let\@tempa\relaxŽŽŽŸ!ÄË5Ž‘LËNew–ffmacros“and“hacšŒÌks“for“v˜ersion“1.2Ž  ÿ²If–]w¸ãe“don't“use“T‘þU>Ÿ'EŽ‘ãxX“3.0“Í\emergencystretch“²is“un-ޤ de ned–¸áso“in“this“case“wš¸ãe“simply“add“it“as“an“un˜usedŽ¡¸hÏdimen‘Äc¸iŽ‘&tµ²register.Ž© m·‘ü±585Ž‘ ª®Ñ\@ifundefined{emergencystretch}ŽŸ ‘ü±586Ž‘"JœÑ{\newdimen\emergencystretch}{}ŽŸm·²My– $ºtests“sho•¸ãw“ed– $ºthat“the“follo¸ãwing“for-Ž¡m•¸ãula› cw“ork“ed˜prett“y˜w“ell.‘½ñNev“ertheless˜theŽ¡Í\setemergencystretch–ž²macro“also“gets“Í\hsize“²asŽ¡second–ƒ‹argumenš¸ãt“to“enable“the“user“to“try“di eren˜tŽ¡form¸ãulae.ަ‘ü±587Ž‘ ª®Ñ\def\setemergencystretch#1#2{%ޤ ‘ü±588Ž‘×pÑ\emergencystretch‘¹–4ptŽ¡‘ü±589Ž‘×pÑ\multiply\emergencystretch#1}ŽŸI%²Ev¸ãen–cŒif“this“should“bšGe“used“as“a“ho˜ok“w¸ãe“use“a“Í@“²inŽŸ the–UUname“since“it“is“more“for“expGerts.ަ‘ü±590Ž‘ ª®Ñ\def\set@floatcmds{%Ž¡‘ü±591Ž‘dDÑ\let\@dblfloat\@dbfltŽ¡‘ü±592Ž‘dDÑ\def\end@dblfloat{\parŽ¡‘ü±593Ž‘×pÑ\vskip\z@Ž¡‘ü±594Ž‘×pÑ\egroupŽŽ’éÌÍŸ„÷ff ÿ‘ÐZ±595Ž‘!¤=Ñ\color@endboxޤ ‘ÐZ±596Ž‘!¤=Ñ\@largefloatcheckŽ¡‘ÐZ±597Ž‘!¤=Ñ\outer@nobreakŽ©‘ÌͲThis–ïeis“cš¸ãheap“(defering“the“ oats“un˜til“after“the“cur-ޤ ‘ÌÍrenš¸ãt–Œ¡page)“but“an˜y“other“solution“w˜ould“go“deep“in˜toŽ¡‘ÌÍLŸýó5‘üff±AŽŽ‘͉²T‘þU>Ÿ'EŽ‘ãxX's–ºdoutput“routine“and“I‘º=don't“likš¸ãe“to“w˜ork“on“itŽ¡‘ÌÍun•¸ãtil›*©I‘*žkno“w˜whic“h˜parts˜of˜the˜output˜routine˜ha“v“eŽ¡‘ÌÍto–UUbGe“reimplemenš¸ãted“an˜yw˜a˜y“for“LŸýó5‘üff±AŽŽ‘͉²T‘þU>Ÿ'EŽ‘ãxX3.ŽŸ‘ÐZ±598Ž‘!¤=Ñ\ifnum\@floatpenalty<\z@ަ‘ÌͲW‘ÿ*ªe›Røha•¸ãv“e˜to˜add˜the˜ oat˜to˜the˜Í\@deferlist˜²bGe-Ž¡‘ÌÍcause–D wš¸ãe“assume“that“outside“the“Ìmulticols“²en˜viron-Ž¡‘ÌÍmen•¸ãt› w“e˜are˜in˜one˜column˜moGde.‘ûThis˜is˜not˜en-Ž¡‘ÌÍtirely–ãcorrect,‘I‘ãlalready“used“the“Ìmulticols“²en¸ãviron-Ž¡‘ÌÍmen¸ãt–Iinside“of“LŸýó5‘üff±AŽŽ‘͉²T‘þU>Ÿ'EŽ‘ãxXs“Í\twocolumn“²declaration“butŽ¡‘ÌÍit–UUwill“do“for“most“applications.ŽŸ‘ÐZ±599Ž‘+iÑ\@cons\@deferlist\@currboxޤ ‘ÐZ±600Ž‘!¤=Ñ\fiŽ¡‘ÐZ±601Ž‘!¤=Ñ\ifnum\@floatpenalty=-\@MiiŽ¡‘ÐZ±602Ž‘+iÑ\@EsphackŽ¡‘ÐZ±603Ž‘!¤=Ñ\fi}}ŽŽŽ¡Ò5.1Ž‘ÀMain taining–€the“mark“registersŽ qΟŠã†‘ ²This–'›section“con¸ãtains“the“routines“that“set“theޤ marks–{so“that“they“will“bGe“handled“correctly‘ÿ*ª.‘âÐTheyŽ¡ha•¸ãv“e–UUbšGeen“in¸ãtro˜duced“with“v¸ãersion“1.4.ŽŸz¡ŽŽŽŽFirst–$Vthing“wš¸ãe“do“is“to“reserv˜e“three“macro“namesŽ¡to–§žhold“the“replacemenš¸ãt“text“for“T‘þU>Ÿ'EŽ‘ãxX's“primitiv˜esŽ¡Í\firstmark²,‘jwÍ\botmark–3 ²and“Í\topmark².‘ çW‘ÿ*ªe“initial-Ž¡ize–þnthe“ rst“t•¸ãw“o–þnto“bGe“empt¸ãy“and“Í\kept@topmark“²toŽ¡con•¸ãtain›Rit“w“o˜empt“y˜pair˜of˜braces.‘pÎThis˜is˜necessaryŽ¡since–«²Í\kept@topmark“²is“suppGosed“to“con¸ãtain“the“lastŽ¡mark–¡Bfrom“a“preceding“page“and“in“LŸýó5‘üff±AŽŽ‘͉²T‘þU>Ÿ'EŽ‘ãxX“an¸ãy“\real"ŽŽ’éÌÍŸ'„C–ffŸˆ¼j‘ÌÍmark–÷Ümš¸ãust“con˜tain“t˜w˜o“parts“represen˜ting“left“andŽ© ‘ÌÍrigh¸ãt–UUmark“information.ŽŸ ‘ÐZ±604Ž‘w{Ñ\def\kept@topmark{{}{}}ޤ ‘ÐZ±605Ž‘w{Ñ\let\kept@firstmark\@emptyŽ¡‘ÐZ±606Ž‘w{Ñ\let\kept@botmark\@emptyŽŸ_‘ÌͲSometimes–…Swš¸ãe“w˜an˜t“to“return“the“v‘ÿqÇalue“of“aަ‘ÌÍ\kš¸ãept"–N8mark“in˜to“a“Í\mark“²noGde“on“the“mainަ‘ÌÍvš¸ãertical–W²list.‘xÝThis“is“done“b˜y“the“functionަ‘ÌÍÍ\return@nonemptymark².‘ >As–ˆ'the“name“suggests“itަ‘ÌÍonly–í€acts“if“the“replacemenš¸ãt“text“of“the“k˜ept“mark“isŽŽŽŽŸ’äÿÿ20ŽŽŒ‹« ¨ ýF œŸæÏ] ý›0£²non-emptš¸ãy‘ÿ*ª.‘>‹This–™–is“done“to“a˜v˜oid“adding“an“empt˜yޤ mark–ìÊwhen“no“mark“wš¸ãas“actually“presen˜t.‘ 8'If“w˜eŽ¡w•¸ãould›FOnev“ertheless˜add˜suc“h˜a˜mark˜it˜w“ould˜bGe˜re-Ž¡garded–UUas“a“v‘ÿqÇalid“Í\firstmark“²later“on.Ž© R‘ü±607Ž‘ ª®Ñ\def\return@nonemptymark#1#2{%ޤ ‘ü±608Ž‘ÚÑ\ifx#2\@emptyŽ¡‘ü±609Ž‘ÚÑ\elseŽŸR²F‘ÿ*ªor–Dºdebugging“purpGoses“wš¸ãe“tak˜e“a“loGok“at“the“v‘ÿqÇalueޤ of–]Ÿthe“kš¸ãept“mark“that“w˜e“are“abGout“to“return.‘ФThisŽ¡cošGde–UUwill“get“stripp˜ed“out“for“pro˜duction.ަ‘ü±610Ž‘ ª®ÉhÇma¾9rktraceŽ‘+²Éiޤ ‘ü±611Ž‘‘Ñ\mult@info\tw@Ž¡‘ü±612Ž‘'2Ñ{Returned–¹–#1“mark:\MessageBreakŽ¡‘ü±613Ž‘+½ÈÑ\meaning#2}%Ž¡‘ü±614Ž‘ ª®Ñ%‘Y„\nobreakŽ¡‘ü±615Ž‘ ª®Ñ%‘æX\fiŽ¡‘ü±616Ž‘ ª®ÉhÈ=Çma¾9rktraceŽ‘+²ÉiŽŸR²Since–ú§the“con•¸ãten“ts–ú§of“the“mark“ma¸ãy“bGe“arbitraryޤ LŸýó5‘üff±AŽŽ‘͉²T‘þU>Ÿ'EŽ‘ãxX–|êcošGde“w¸ãe“b˜etter“mak¸ãe“sure“that“it“do˜esn't“getŽ¡expanded–ÅQanš¸ãy“further.‘Á¼(Some“expansion“ha˜v˜e“bGeenŽ¡done–Äalready“during“the“execution“of“Í\markright“²orŽ¡Í\markboth².)‘\W‘ÿ*ªe–therefore“use“the“usual“mec¸ãhanismŽ¡of–UUa“toks“register“to“prohibit“expansion.Ÿü^ÿ±17ŽŽŽ¦‘ü617Ž‘‘Ñ\toks@\expandafter{#2}%ŽŸ ‘ü±618Ž‘‘Ñ\mark{\the\toks@}%ŽŸR²W‘ÿ*ªe–/ýdon't“w•¸ãan“t›/ýan“y˜breakpGoin“t˜bGet“w“een˜suc“h˜a˜re-Ž¡turned–©¢mark“and“the“folloš¸ãwing“material“(whic˜h“isŽ¡usually–UUjust“the“bGo¸ãx“where“the“mark“came“from).ަ‘ü±619Ž‘‘Ñ\nobreakŽŸ ‘ü±620Ž‘ÚÑ\fi}ŽŸöF²If–ÐYwš¸ãe“ha˜v˜e“some“material“in“a“bGo˜x“register“w˜e“ma˜yŽ¡w•¸ãan“t–ø;to“get“the“ rst“and“the“last“mark“out“of“thisŽ¡bšGo¸ãx.‘\This–:can“b˜e“done“with“Í\get@keptmarks“²whic¸ãhŽ¡takš¸ães–t#one“argumen˜t:‘¯cthe“bGo˜x“register“n˜um˜bGer“or“itsŽ¡nicš¸ãk–UUname“de ned“b˜y“Í\newbox².ަ‘ü±621Ž‘ ª®Ñ\def\get@keptmarks#1{%ŽŸR²F‘ÿ*ªor–Údebugging“purpGoses“wš¸ãe“tak˜e“a“loGok“at“the“cur-Ž¡renš¸ãt–Î6dimensions“of“the“bGo˜x“since“in“earlier“v˜ersionsŽ¡of–UUthe“coGde“I“made“some“mistak¸ães“in“this“area.ަ‘ü±622Ž‘ ª®ÉhÇdebugŽ‘ÒœÉiޤ ‘ü±623Ž‘'2Ñ\typeout{Mark–¹–box“#1“before:Ž¡‘ü±624Ž‘QŠxÑht–¹–\the\ht#1,“dp“\the\dp#1}%Ž¡‘ü±625Ž‘ ª®ÉhÈ=ÇdebugŽ‘ÒœÉiŽŸR²No•¸ãw›™4w“e˜op•Gen˜a˜new˜group˜an˜lo“cally˜cop¸ãy˜the˜b“o¸ãx˜toޤ itself.‘ÝvAs–Îa“result“an¸ãy“opGeration,›ìÞi.e.“Í\vsplit²,˜willŽ¡only›z,ha•¸ãv“e˜a˜loGcal˜e ect.‘àKWithout˜this˜tric“k˜the˜bGo“xŽ¡con•¸ãten“t›õSw“ould˜get˜lost˜up˜to˜the˜lev“el˜where˜the˜lastŽ¡assignmenš¸ãt–UUto“the“bGo˜x“register“w˜as“done.ަ‘ü±626Ž‘ÚÑ\begingroupޤ ‘ü±627Ž‘×pÑ\vbadness\@MŽ¡‘ü±628Ž‘×pÑ\setbox#1\copy#1%ŽŽ’éÌÍŸ„pÏ]ff ý™0£‘ÌͲNo•¸ãw›]9w“e˜split˜the˜bGo“x˜to˜the˜maximal˜pGossible˜di-ޤ ‘ÌÍmension.‘jThis–8áshould“split“o “the“full“con•¸ãten“ts‘8áofŽ¡‘ÌÍthe–øNbGoš¸ãx“so“that“e ectiv˜ely“ev˜erything“is“split“o .‘RÅAsŽ¡‘ÌÍa–\result“Í\splitfirstmark“²and“Í\splitbotmark“²willŽ¡‘ÌÍconš¸ãtain–ZÚthe“ rst“and“last“mark“in“the“bGo˜x“respGec-Ž¡‘ÌÍtiv¸ãely‘ÿ*ª.Ž©!ˆ‘ÐZ±629Ž‘!¤=Ñ\setbox#1\vsplit#1to\maxdimenŽŸ!ˆ‘ÌͲTherefore–ô$wš¸ãe“can“no˜w“set“the“k˜ept“marks“whic˜h“isŽ¡‘ÌÍa–5global“opGeration“and“afterw¸ãards“close“the“group.Ž¡‘ÌÍThis–UUwill“restore“the“original“bGoš¸ãx“con˜ten˜ts.ަ‘ÐZ±630Ž‘!¤=Ñ\set@keptmarksŽŸ ‘ÐZ±631Ž‘1Ñ\endgroupŽŸ!ˆ‘ÌͲF‘ÿ*ªor–í€debugging“wš¸ãe“tak˜e“again“a“lošGok“at“the“b˜o¸ãx“di-Ž¡‘ÌÍmension–UUwhicš¸ãh“shouldn't“ha˜v˜e“c˜hanged.ަ‘ÐZ±632Ž‘w{ÉhÇdebugŽ‘ÒœÉiޤ ‘ÐZ±633Ž‘&]ÓÑ\typeout{Mark–¹–box“#1“\space“after:Ž¡‘ÐZ±634Ž‘PäÑht–¹–\the\ht#1,“dp“\the\dp#1}%Ž¡‘ÐZ±635Ž‘w{ÉhÈ=ÇdebugŽ‘ÒœÉiŽ¡‘ÐZ±636Ž‘w{Ñ}ŽŸ<ø‘ÌͲThe–.=macro“Í\set@keptmarks“²is“respGonsible“for“set-ޤ ‘ÌÍting–‘£Í\kept@firstmark“²and“Í\kept@botmark²,‘ ¶b¸ãyŽ¡‘ÌÍc•¸ãhec“king–xthe“curren¸ãt“v‘ÿqÇalues“for“Í\splitfirstmarkŽ¡‘ÌͲand‘UUÍ\splitbotmark².ަ‘ÐZ±637Ž‘w{Ñ\def\set@keptmarks{%ŽŸ!ˆ‘ÌͲIf–n¿Í\kept@firstmark“²is“emptš¸ãy“w˜e“assume“that“itŽ¡‘ÌÍisn't–ÐYset.‘âÒThis“is“strictly“spGeaking“not“correct“asŽ¡‘ÌÍwš¸ãe–æ´loGose“the“abilit˜y“to“ha˜v˜e“marks“that“are“explic-Ž¡‘ÌÍitly–‰!empt¸ãy‘ÿ*ª,‘–but“for“standard“LŸýó5‘üff±AŽŽ‘͉²T‘þU>Ÿ'EŽ‘ãxX“application“it“isŽ¡‘ÌÍsucienš¸ãt.‘ÓâIf–v it“is“non-empt˜y“w˜e“don't“c˜hange“theŽ¡‘ÌÍv‘ÿqÇalue|within–ÕRthe“output“routines“it“will“then“bGe“re-Ž¡‘ÌÍstored–UUto“Í\@empty².ަ‘ÐZ±638Ž‘!¤=Ñ\ifx\kept@firstmark\@emptyŽŸ!ˆ‘ÌͲW‘ÿ*ªe–‹1noš¸ãw“put“the“con˜ten˜ts“of“Í\splitfirstmark“²in˜toŽ¡‘ÌÍÍ\kept@firstmark².‘ <~In–î=the“case“that“there“w¸ãasn'tŽ¡‘ÌÍanš¸ãy–$–mark“at“all“Í\kept@firstmark“²will“not“c˜hangeŽ¡‘ÌÍb¸ãy–UUthat“opGeration.ަ‘ÐZ±639Ž‘+iÑ\expandafter\gdef\expandafterޤ ‘ÐZ±640Ž‘9D+Ñ\kept@firstmarkŽ¡‘ÐZ±641Ž‘9D+Ñ\expandafter{\splitfirstmark}%ŽŸ!ˆ‘ÌͲWhen–¾ødebugging“wš¸ãe“sho˜w“the“assignmen˜t“but“onlyŽŸ ‘ÌÍwhen–UUsomething“actually“happGened.ަ‘ÐZ±642Ž‘w{ÉhÇma¾9rktraceŽ‘+²ÉiŽ¡‘ÐZ±643Ž‘+iÑ\ifx\kept@firstmark\@empty\elseŽ¡‘ÐZ±644Ž‘4Š•Ñ\mult@info\tw@Ž¡‘ÐZ±645Ž‘=ýÁÑ{Set–¹–kept“first“mark:\MessageBreakŽ¡‘ÐZ±646Ž‘B·WÑ\meaning\kept@firstmark%Ž¡‘ÐZ±647Ž‘B·WÑ\@gobbletwo}%Ž¡‘ÐZ±648Ž‘+iÑ\fiŽ¡‘ÐZ±649Ž‘w{ÉhÈ=Çma¾9rktraceŽ‘+²ÉiŽ¡‘ÐZ±650Ž‘!¤=Ñ\fiŽŽŽŸff‰ffYÿ¦Ÿ J=‘wŽŸý-:À17ŽŽŽ‘LÜ¿Due–ãto“the“currenšÃŽt“de nition“of“Ð\markright“¿etc.“it“w˜ouldn't“help“to“de ne“the“Ð\protect“¿command“to“prohibit“expansionŽŸ €as–ÕXanÃŽy“Ð\protect“¿has“already“v‡anished“due“to“earlier“expansions.ŽŽŸ’äÿÿ²21ŽŽŒ‹¾~ ¨ ýF œ ÿ] þ%²W‘ÿ*ªe›Vçalw•¸ãa“ys˜try˜to˜set˜the˜bGottom˜mark˜to˜theޤ Í\splitbotmark– (²but“of“course“only“when“there“hasŽ¡bGeen–ÍEa“Í\splitbotmark“²at“all.‘Ù˜Again,‘+Aw¸ãe“assumeŽ¡that–+±an“empt¸ãy“Í\splitbotmark“²means“that“the“splitŽ¡o –UUbGoš¸ãx“part“didn't“con˜tain“an˜y“marks“at“all.Ž© ª«‘ü±651Ž‘×pÑ\expandafter\def\expandafter\@tempaޤ ‘ü±652Ž‘'2Ñ\expandafter{\splitbotmark}%Ž¡‘ü±653Ž‘×pÑ\ifx\@tempa\@empty\elseŽ¡‘ü±654Ž‘'2Ñ\global\let\kept@botmark\@tempaŽ¡‘ü±655Ž‘ ª®ÉhÇma¾9rktraceŽ‘+²ÉiŽ¡‘ü±656Ž‘'2Ñ\mult@info\tw@Ž¡‘ü±657Ž‘0w^Ñ{Set–¹–kept“bot“mark:\MessageBreakŽ¡‘ü±658Ž‘50ôÑ\meaning\kept@botmark%Ž¡‘ü±659Ž‘50ôÑ\@gobbletwo}%Ž¡‘ü±660Ž‘ ª®ÉhÈ=Çma¾9rktraceŽ‘+²ÉiŽ¡‘ü±661Ž‘×pÑ\fi}%ŽŸ²The–zÍ\prep@keptmarks“²function“is“used“to“initializeޤ the–TTkš¸ãept“marks“from“the“con˜ten˜ts“of“Í\partial@page²,Ž¡i.e.–}$the“bGoš¸ãx“that“holds“ev˜erything“from“the“top“of“theŽ¡currenš¸ãt–Epage“prior“to“starting“the“Ìmulticols“²en˜viron-Ž¡men•¸ãt.‘Ú Ho“w“ev“er,‘Vsuc“h–"Âa“bGoš¸ãx“is“only“a˜v‘ÿqÇailable“if“w˜eŽ¡are–UUnot“prošGducing“a“b˜o¸ãxed“Ìmulticols².ަ‘ü±662Ž‘ ª®Ñ\def\prep@keptmarks{%ޤ ‘ü±663Ž‘×pÑ\if@boxedmulticols‘¹–\elseŽ¡‘ü±664Ž‘"JœÑ\get@keptmarks\partial@pageŽ¡‘ü±665Ž‘×pÑ\fi}ŽŸ¦‘ü±666Ž‘ ª®Ñ\def\remove@discardable@items{%Ž¡‘ü±667Ž‘ ª®ÉhÇdebugŽ‘ÒœÉiŽ¡‘ü±668Ž‘×pÑ\edef\@tempa{s=\the\lastskip,Ž¡‘ü±669Ž‘VDÑp=\the\lastpenalty,Ž¡‘ü±670Ž‘VDÑk=\the\lastkern}%Ž¡‘ü±671Ž‘×pÑ\typeout\@tempaŽ¡‘ü±672Ž‘ ª®ÉhÈ=ÇdebugŽ‘ÒœÉiŽ¡‘ü±673Ž‘0w^Ñ\unskip\unpenalty\unkernŽ¡‘ü±674Ž‘ ª®ÉhÇdebugŽ‘ÒœÉiŽ¡‘ü±675Ž‘×pÑ\edef\@tempa{s=\the\lastskip,Ž¡‘ü±676Ž‘VDÑp=\the\lastpenalty,Ž¡‘ü±677Ž‘VDÑk=\the\lastkern}%Ž¡‘ü±678Ž‘×pÑ\typeout\@tempaŽ¡‘ü±679Ž‘ ª®ÉhÈ=ÇdebugŽ‘ÒœÉiŽŽ’éÌÍŸ@„ç@ff þ"À‘ÐZ±680Ž‘9D+Ñ\unskip\unpenalty\unkernޤ ‘ÐZ±681Ž‘w{ÉhÇdebugŽ‘ÒœÉiŽ¡‘ÐZ±682Ž‘!¤=Ñ\edef\@tempa{s=\the\lastskip,Ž¡‘ÐZ±683Ž‘_ÛÑp=\the\lastpenalty,Ž¡‘ÐZ±684Ž‘_ÛÑk=\the\lastkern}%Ž¡‘ÐZ±685Ž‘!¤=Ñ\typeout\@tempaŽ¡‘ÐZ±686Ž‘w{ÉhÈ=ÇdebugŽ‘ÒœÉiŽ¡‘ÐZ±687Ž‘9D+Ñ\unskip\unpenalty\unkernŽ¡‘ÐZ±688Ž‘w{ÉhÇdebugŽ‘ÒœÉiŽ¡‘ÐZ±689Ž‘!¤=Ñ\edef\@tempa{s=\the\lastskip,Ž¡‘ÐZ±690Ž‘_ÛÑp=\the\lastpenalty,Ž¡‘ÐZ±691Ž‘_ÛÑk=\the\lastkern}%Ž¡‘ÐZ±692Ž‘!¤=Ñ\typeout\@tempaŽ¡‘ÐZ±693Ž‘w{ÉhÈ=ÇdebugŽ‘ÒœÉiŽ¡‘ÐZ±694Ž‘9D+Ñ\unskip\unpenalty\unkernŽ¡‘ÐZ±695Ž‘w{Ñ}ŽŸ‘ÐZ±696Ž‘w{ÉhÇbadnessŽ‘"šóÉiŽ¡‘ÐZ±697Ž‘w{Ñ\newif\iftoo@badŽ©Ÿ‘ÐZ±698Ž‘w{Ñ\newcount\c@columnbadnessŽ¡‘ÐZ±699Ž‘w{Ñ\c@columnbadness=10000Ž¡‘ÐZ±700Ž‘w{Ñ\newcount\c@finalcolumnbadnessŽ¡‘ÐZ±701Ž‘w{Ñ\c@finalcolumnbadness=9999Ž¡‘ÐZ±702ŽŽ¡‘ÐZ703Ž‘w{Ñ\newdimen\last@tryŽ¡‘ÐZ±704ŽŽ¡‘ÐZ705Ž‘w{Ñ\newdimen\multicolovershootŽ¡‘ÐZ±706Ž‘w{Ñ\multicolovershoot=2ptŽ¡‘ÐZ±707Ž‘w{Ñ\newdimen\multicolundershootŽ¡‘ÐZ±708Ž‘w{Ñ\multicolundershoot=2ptŽ¡‘ÐZ±709Ž‘w{Ñ\newbox\mult@nat@firstboxŽ¡‘ÐZ±710Ž‘w{ÉhÈ=ÇbadnessŽ‘"šóÉiަ‘ÌͲA–UUhelpšGer“for“pro˜ducing“info“messagesŽŸ‘ÐZ±711Ž‘w{Ñ\def\mult@info#1#2{%Ž¡‘ÐZ±712Ž‘ê§Ñ\ifnum\c@tracingmulticols>#1%Ž¡‘ÐZ±713Ž‘!¤=Ñ\GenericWarningŽ¡‘ÐZ±714Ž‘4Š•Ñ{(multicol)\@spaces\@spaces}%Ž¡‘ÐZ±715Ž‘4Š•Ñ{Package–¹–multicol:“#2}%Ž¡‘ÐZ±716Ž‘ê§Ñ\fiŽ¡‘ÐZ±717Ž‘w{Ñ}Ž¡‘ÐZ±718ŽŽŽŽŸ#QÄË6Ž‘LËFixing–ffthe“ó3߆µTff cmtt12Þ\columnwidthŽŸ®<Ÿ™²If– Æwš¸ãe“store“the“curren˜t“column“width“inޤ Í\columnwidth–Âc²wš¸ãe“ha˜v˜e“to“rede ne“the“in˜ternalŽ¡Í\@footnotetext–ïs²macro“to“use“Í\textwidth“²for“theŽ¡width–ÉÃof“the“foGotnotes“rather“then“using“the“originalŽ¡de nition.ŽŸáp‘ W‘ÿ*ªe–É!start“bš¸ãy“c˜hec˜king“that“the“k˜ernel“de nitionŽ¡hasn't›Ñ^c•¸ãhanged.‘åãA“t˜the˜time˜of˜writing˜(97/11/16)Ž¡this–Ûwill“result“in“a“wš¸ãarning“if“this“pac˜k‘ÿqÇage“is“usedŽ¡together–iÇwith“the“Íamsart“²class“as“the“latter“rede nesŽŽ’éÌÍŸ„rápffŸ—‘ÌÍthat–~¥k¸ãernel“command“unnecessarily‘ÿ*ª.‘*8This“is“unfortu-ޤ ‘ÌÍnate–¾5but“can't“bGe“a•¸ãv“oided–¾5at“the“momen¸ãt|the“AMSŽ¡‘ÌÍclass–UUis“sc¸ãheduled“to“bšGe“up˜dated.ŽŸáp‘ÐZ±719Ž‘w{Ñ\CheckCommand\@footnotetext[1]{%ޤ ‘ÐZ±720Ž‘1Ñ\insert\footins{%Ž¡‘ÐZ±721Ž‘ê§Ñ\reset@font\footnotesizeŽ¡‘ÐZ±722Ž‘ê§Ñ\interlinepenalty\interfootnotelinepenaltyŽ¡‘ÐZ±723Ž‘ê§Ñ\splittopskip\footnotesepŽ¡‘ÐZ±724Ž‘ê§Ñ\splitmaxdepth‘¹–\dp\strutboxŽŽŽŽŸ’äÿÿ²22ŽŽŒ‹Ô¨ ¨ ýF œ þ! ÿa‘ü±725Ž‘ÚÑ\floatingpenalty‘¹–\@MMޤ ‘ü±726Ž‘ÚÑ\hsize\columnwidth‘¹–\@parboxrestoreŽ¡‘ü±727Ž‘ÚÑ\protected@edef\@currentlabel{%Ž¡‘ü±728Ž‘+½ÈÑ\csname‘¹–p@footnote\endcsname\@thefnmarkŽ¡‘ü±729Ž‘‘Ñ}%Ž¡‘ü±730Ž‘ÚÑ\color@begingroupŽ¡‘ü±731Ž‘‘Ñ\@makefntext{%Ž¡‘ü±732Ž‘'2Ñ\rule\z@\footnotesepŽ¡‘ü±733Ž‘'2Ñ\ignorespaces#1\@finalstrut\strutbox}%Ž¡‘ü±734Ž‘ÚÑ\color@endgroup}}ŽŸ²No•¸ãw›=ôfollo“ws˜the˜de nition˜w“e˜use˜for˜foGotnotesޤ within–the“Ímulticols“²en•¸ãvironmen“t›whic“h˜di ersŽ¡only–UUin“the“initialization“for“Í\hsize².ŽŸ ‘ü±735Ž‘ ª®Ñ\newcommand\mult@footnotetext[1]{%ŽŸ ‘ü±736Ž‘dDÑ\insert\footins{%ŽŽ’éÌÍŸñÇ„ªñÇff ÿ_9‘ÐZ±737Ž‘ê§Ñ\reset@font\footnotesizeޤ ‘ÐZ±738Ž‘ê§Ñ\interlinepenalty\interfootnotelinepenaltyŽ¡‘ÐZ±739Ž‘ê§Ñ\splittopskip\footnotesepŽ¡‘ÐZ±740Ž‘ê§Ñ\splitmaxdepth‘¹–\dp\strutboxŽ¡‘ÐZ±741Ž‘ê§Ñ\floatingpenalty‘¹–\@MMŽ¡‘ÐZ±742Ž‘ê§Ñ\hsize\textwidth‘¹–\@parboxrestoreŽ¡‘ÐZ±743Ž‘ê§Ñ\protected@edef\@currentlabel{%Ž¡‘ÐZ±744Ž‘+iÑ\csname‘¹–p@footnote\endcsname\@thefnmarkŽ¡‘ÐZ±745Ž‘&]ÓÑ}%Ž¡‘ÐZ±746Ž‘ê§Ñ\color@begingroupŽ¡‘ÐZ±747Ž‘&]ÓÑ\@makefntext{%Ž¡‘ÐZ±748Ž‘/ÐÿÑ\rule\z@\footnotesepŽ¡‘ÐZ±749Ž‘/ÐÿÑ\ignorespaces#1\@finalstrut\strutbox}%Ž¡‘ÐZ±750Ž‘ê§Ñ\color@endgroup}}Ž¡‘ÐZ±751Ž‘w{ÉhÈ=Çpack¾9ageŽ‘#g ÉiŽŽŽŸ ËËIndexŽŸç²Num¸ãbšGers–=ëwritten“in“italic“refer“to“the“page“where“the“corresp˜onding“en¸ãtry“is“describ˜ed,‘Bšthe“ones“underlinedŽŸ to–UUthe“cošGde“line“of“the“de nition,“the“rest“to“the“co˜de“lines“where“the“en¸ãtry“is“used.Ž ñÇ ÿ‘ WõÆSym´CbK¼olsޤ UÑ\@footnotetext‘B‘}„Å.Ž‘ŒÎ‘}„.Ž‘ ìÂ719Ž‘ 쟙”‰fe ßúŽŽ©@‘/÷MÆBŽ¡Ñ\balance@columns‘¦Å428Ž‘¦Ÿ™”‰fe ßúŽŽ¡Ñ\balance@columns@outŽŸ ‘‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž‘ ¬È417Ž‘ ¬ÈŸ™”‰fe ßúŽŽ¦‘/ç{ÆCŽ¡Ñ\c@collectmore‘B‘}„Å.Ž‘ŒÎ‘}„.Ž‘ ìÂ238Ž‘ 쟙”‰fe ßúŽŽ¡Ñ\c@columnbadness‘¦Å698Ž‘¦Ÿ™”‰fe ßúŽŽ¡Ñ\c@finalcolumnbadnessŽŸ ‘‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž‘ ¬È698Ž‘ ¬ÈŸ™”‰fe ßúŽŽ¡Ñ\c@unbalance‘YÒ‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž“‘}„.Ž‘ ìÂ239Ž‘ 쟙”‰fe ßúŽŽ¡Ñ\col@number‘†š‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž‘ ìÂ238Ž‘ 쟙”‰fe ßúŽŽ¡Ñ\columnseprule‘B‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž“‘}„.Ž‘Ãw×2ަ‘/«‘ÆDŽ¡Ñ\doublecol@number‘ MÅ238Ž‘ MŸ™”‰fe ßúŽŽ¦‘0ApÆEŽ¡Ñ\emergencystretch‘ MÅ585Ž‘ MŸ™”‰fe ßúŽŽ¡Ñ\endmulticols‘- ‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž‘ ìÂ194Ž‘ 쟙”‰fe ßúŽŽŽ‘pLÍŸLÏ„ýLÏff ÿ ³1‘ÌÍÑ\enough@room‘YÒ‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž“‘}„.Ž‘ ìÂ101Ž‘ 쟙”‰fe ßúŽŽ©ÕU‘94ÆFޤ ‘ÌÍÑ\flushcolumns‘- ‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž‘ ìÂ412Ž‘ 쟙”‰fe ßúŽŽ¡‘ÌÍÑifshr@nking‘†š‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž‘ ìÂ412Ž‘ 쟙”‰fe ßúŽŽ¦‘8]‡ÆGŽ¡‘ÌÍÑ\get@keptmarks‘B‘}„Å.Ž‘ŒÎ‘}„.Ž‘ ìÂ621Ž‘ 쟙”‰fe ßúŽŽ¦‘:ЬÆIŽ¡‘ÌÍÑ\if@boxedmulticols‘ 3xÅ98Ž‘ 3xŸ™”‰fe ?üŽŽ¡‘ÌÍÑ\init@mult@footins‘“zÅ180Ž‘“zŸ™”‰fe ßúŽŽ¦‘8bSÆKŽ¡‘ÌÍÑ\kept@botmark‘- ‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž‘ ìÂ604Ž‘ 쟙”‰fe ßúŽŽ¡‘ÌÍÑ\kept@firstmark‘Óz‘}„Å.Ž‘ ìÂ604Ž‘ 쟙”‰fe ßúŽŽ¡‘ÌÍÑ\kept@topmark‘- ‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž‘ ìÂ604Ž‘ 쟙”‰fe ßúŽŽ¦‘9YøÆLŽ¡‘ÌÍÑ\leave@mult@footinsŽ¡‘&ÌÍ‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž‘ ¬È386Ž‘ ¬ÈŸ™”‰fe ßúŽŽ¦‘7€ºÆMŽ¡‘ÌÍÑ\mult@@cols‘†š‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž‘ ÿò76Ž‘ ÿòŸ™”‰fe ?üŽŽŽ–yš„ýLÏff ÿ ³1‘ÌÍÑ\mult@cols‘@0‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž‘ ÿò73Ž‘ ÿòŸ™”‰fe ?üŽŽ¤ ‘ÌÍÑ\mult@firstbox‘B‘}„Å.Ž‘ŒÎ‘}„.Ž‘ ìÂ571Ž‘ 쟙”‰fe ßúŽŽ¡‘ÌÍÑ\mult@footnotetext‘“zÅ719Ž‘“zŸ™”‰fe ßúŽŽ¡‘ÌÍÑ\mult@gfirstbox‘Óz‘}„Å.Ž‘ ìÂ571Ž‘ 쟙”‰fe ßúŽŽ¡‘ÌÍÑ\mult@grightbox‘Óz‘}„Å.Ž‘ ìÂ571Ž‘ 쟙”‰fe ßúŽŽ¡‘ÌÍÑ\mult@info‘@0‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž‘ ìÂ711Ž‘ 쟙”‰fe ßúŽŽ¡‘ÌÍÑ\mult@rightbox‘B‘}„Å.Ž‘ŒÎ‘}„.Ž‘ ìÂ571Ž‘ 쟙”‰fe ßúŽŽ¡‘ÌÍÑ\multi@column@out‘ MÅ296Ž‘ MŸ™”‰fe ßúŽŽ¡‘ÌÍÑ\multicol@leftmarginŽ¡‘&ÌÍ‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž‘ ¬È193Ž‘ ¬ÈŸ™”‰fe ßúŽŽ¡‘ÌÍÑ\multicolbaselineskipŽ¡‘&ÌÍ‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž‘ fb×2Å,‘T238Ž‘TŸ™”‰fe ßúŽŽ¡‘ÌÍÑ\multicolpretoleranceŽ¡‘&ÌÍ‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž‘ fb×2Å,‘T238Ž‘TŸ™”‰fe ßúŽŽ¡‘ÌÍÑ\multicols‘@0‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž‘ ÿò56Ž‘ ÿòŸ™”‰fe ?üŽŽ¡‘ÌÍÑ\multicolsep‘YÒ‘}„Å.Ž‘ŒÎ‘}„.Ž‘ ¦\×2Å,‘T238Ž‘TŸ™”‰fe ßúŽŽ¡‘ÌÍÑ\multicoltoleranceŽ¡‘&ÌÍ‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž‘ fb×2Å,‘T238Ž‘TŸ™”‰fe ßúŽŽŸ‘8éøÆPŽ¡‘ÌÍÑ\page@free‘@0‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž‘ ìÂ238Ž‘ 쟙”‰fe ßúŽŽ¡‘ÌÍÑ\page@sofar‘†š‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž‘ ìÂ271Ž‘ 쟙”‰fe ßúŽŽ¡‘ÌÍÑ\partial@page‘- ‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž‘ ìÂ238Ž‘ 쟙”‰fe ßúŽŽŽ“„ýLÏff ÿ ³1‘ÌÍÑ\postmulticols‘ Ð×2Å,‘T238Ž‘TŸ™”‰fe ßúŽŽ¤ ‘ÌÍÑ\premulticols‘- ‘}„Å.Ž‘ ¦\×2Å,‘T238Ž‘TŸ™”‰fe ßúŽŽ¡‘ÌÍÑ\prep@keptmarks‘Óz‘}„Å.Ž‘ ìÂ662Ž‘ 쟙”‰fe ßúŽŽ¡‘ÌÍÑ\prepare@multicols‘“zÅ118Ž‘“zŸ™”‰fe ßúŽŽ¡‘ÌÍÑ\process@cols‘- ‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž‘ ìÂ262Ž‘ 쟙”‰fe ßúŽŽ¡‘ÌÍÑ\process@deferreds‘“zÅ402Ž‘“zŸ™”‰fe ßúŽŽ©‘8MÆRŽ¡‘ÌÍÑ\raggedcolumns‘B‘}„Å.Ž‘ŒÎ‘}„.Ž‘ ìÂ412Ž‘ 쟙”‰fe ßúŽŽ¡‘ÌÍÑ\reinsert@footnotesŽ¡‘&ÌÍ‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž‘ ¬È294Ž‘ ¬ÈŸ™”‰fe ßúŽŽ¡‘ÌÍÑ\remove@discardable@itemsŽ¡‘&ÌÍ‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž‘ ¬È666Ž‘ ¬ÈŸ™”‰fe ßúŽŽ¡‘ÌÍÑ\return@nonemptymarkŽ¡‘&ÌÍ‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž‘ ¬È607Ž‘ ¬ÈŸ™”‰fe ßúŽŽ¦‘9—{ÆSŽ¡‘ÌÍÑ\set@floatcmds‘B‘}„Å.Ž‘ŒÎ‘}„.Ž‘ ìÂ590Ž‘ 쟙”‰fe ßúŽŽ¡‘ÌÍÑ\set@keptmarks‘B‘}„Å.Ž‘ŒÎ‘}„.Ž‘ ìÂ637Ž‘ 쟙”‰fe ßúŽŽ¡‘ÌÍÑ\set@mult@vsize‘Óz‘}„Å.Ž‘ ìÂ184Ž‘ 쟙”‰fe ßúŽŽ¡‘ÌÍÑ\setemergencystretchŽ¡‘&ÌÍ‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž‘ ¬È585Ž‘ ¬ÈŸ™”‰fe ßúŽŽ¡‘ÌÍÑ\speci@ls‘lø‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž‘ ìÂ390Ž‘ 쟙”‰fe ßúŽŽŽŽŽŸ’äÿÿ²23ŽŽŒøæAƒ’À;è¨Ô ó3߆µTff cmtt12ó2Œ-ø cmcsc10ó,¼j‘¹ cmti9ó+F C– cmbxti10ó*ò"V cmbx10ó)‚ÎR6 cmss12ó(#Ñfcmti8ó'ÂÖN  cmbx12ó&ߤN cmtt9ó%ßCÊscmtt8ó$ý': cmti10ó#p®0J cmsl10ó"ßê cmmi10óKñ`y cmr10óÙ“ Rcmr7ù„ßßßßßß