÷ƒ’À;è TeX output 1997.03.05:1633‹ÿÿÿÿ ¨ ý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ŽŽŽŽŽŸ%ˆ‹’°P‚Prin•¬rted›ê¨Marc“h˜5,˜1997ŽŸ.’Õ¡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‰ff»2xŸ 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ŽŽŽŸ‚‰ff»2xŸ 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.ŽŸEÒÍ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.ŽŸEÒÍ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ŽŽ’˜ÌÍŸñÇ„“ñÇff þv9‘ ÌÍ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[..]².ŽŸb‘ÌÍÍFloats–?ýand“marginpars“notŽ¡‘ ÌÍallowed–?ýinside“`multicols'Ž¡‘ ÌÍenvironment!ŽŸ1 ‘ ÌͲ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!ŽŸ€R‘ÌÍÒ2.4Ž‘'ŒÍT‘þàracing–€the“outputŽŸ¢ø‘ÌͲ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:ŽŸI’‘Ì͸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.ŽŽ’¡™š„“ñÇff þv9‘Ì͸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Ž ½! ÿXøß‘ ²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Ž¡Ì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ŽŽ’˜ÌÍŸñÇ„²øèff ÿW‘ÌÍ(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-Ž¡‘ÌÍ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.ŽŽ’¡™š„²øèff ÿW‘ÌÎA‘“note–”to“pGeople“who“lik¸ãeŽ¤ ‘ÌÍto›ìmimpro•¸ãv“e˜the˜balancing˜algo-Ž¡‘ÌÍrithm–øáof“Ìmulticols²:‘¸ÞThe“balanc-Ž¡‘ÌÍing–Ë]routine“in“noš¸ãw“placed“in˜toŽ¡‘ÌÍa–)Ÿ'EŽ‘ãxX3,Ž¡‘ÌÍde ne–þa“faster“algorithm“for“ nd-ŽŽŽŽŸ’ç€4ŽŽŒ‹Hþ ¨ ýF œ þ:ñÇŸØ9 ÿo‘²The–w%macro“Í\balance@columns“²that“con¸ãtainsŽ¤ ‘the–ÞvcoGde“for“balancing“gathered“material“is“aŽ¡‘macro–­³without“parameters.‘záIt“assumes“thatŽ¡‘the–Ãmaterial“for“balancing“is“stored“in“the“bGo¸ãxŽ¡‘Í\mult@box–{E²whicš¸ãh“is“a“Í\vbox².‘ã˜It“also“\kno˜ws"Ž¡‘abGout–c‹all“parameters“set“up“b¸ãy“the“ÌmulticolsŽ¡‘²en•¸ãvironmen“t,›Glik“e–ãÍ\col@number²,˜etc.‘ yIt“canŽ¡‘also–Äassume“that“Í\@colroom“²is“the“still“a¸ãv‘ÿqÇail-Ž¡‘able–UUspace“on“the“curren¸ãt“page.ŽŸ‘When–°¿it“ nishes“it“m¸ãust“return“the“individ-Ž¡‘ual–}ôcolumns“in“bGo¸ãxes“suitable“for“further“pro-Ž¡‘cessing–V\with“Í\page@sofar².‘tÛThis“means“thatŽ¡‘the–?ýleft“column“should“bšGe“stored“in“b˜o¸ãx“reg-ŽŽ’éÌÍŸñÇ„œñÇff ÿm9‘ÌÍister–¢Í\mult@gfirstbox²,‘€µthe“next“in“registerŽ¤ ‘ÌÍÍ\mult@firstbox–Aç²+“2,›FE.–ªª.“.“,˜only–ââthe“last“oneŽ¡‘ÌÍas–b(an“exception“in“register“Í\mult@grightbox².Ž¡‘ÌÍF‘ÿ*ªurthermore–ùÄit“has“to“set“up“t•¸ãw“o–ùÄthe“macrosŽ¡‘ÌÍÍ\kept@firstmark–G/²and“Í\kept@botmark“²to“holdŽ¡‘ÌÍthe–Ÿv‘ÿqÇalues“for“the“ rst“and“bGottom“mark“asŽ¡‘ÌÍfound–µRin“the“individual“columns.‘‘½There“areŽ¡‘ÌÍsome–dhelpGer“functions“de ned“in“section‘Éwhic¸ãhŽ¡‘ÌÍmaš¸ãy–#abGe“used“for“this.‘a Getting“the“marks“righ˜tŽ¡‘ÌÍ\bš¸ãy–¶5hand"“is“non-trivial“and“it“ma˜y“pa˜y“o Ž¡‘ÌÍto–‡ü rst“tak¸ãe“a“lošGok“at“the“do˜cumen¸ãtation“andŽ¡‘ÌÍimplemenš¸ãtation–öof“Í\balance@columns“²bGelo˜wŽ¡‘ÌÍbGefore–UUtrying“anew.ŽŽŽŸ&‘v.JT‘ÿ*ªable–UU1:‘qÇIn¸ãterface“description“for“Í\balance@columnsŽŽŽŸ4Ÿê²ing–žthe“righš¸ãt“column“heigh˜t,‘áØetc.Ž¤ If›ˆ„someb•Go“dy˜thinks˜he/she˜has˜anŽ¡enhancemen•¸ãt›ç"I‘æüw“ould˜bGe˜pleasedŽŽ’˜ÌÍŸñÇ„!ñÇffŸè9‘ÌÍto–EQlearn“abšGout“it.‘But“please“ob˜eyŽ¤ ‘ÌÍthe›ûcop•¸ãyrigh“t˜notice˜and˜don'tŽ¡‘ÌÍc¸ãhange–UUÌmulticol.dtx“²directly!ŽŽ’¡™š„!ñÇffŽŸþ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.ŽŽŽŽŸ’ç€5ŽŽŒ‹aF ¨ ýF œ ýðñÇŸÊ9ŸÇ‘Ñ\setemergencystretchÅ:‘í(This–¶Åis“a“hošAÇok“for“p˜eopleŽ¤ ‘who–blikš¾9e“to“pla˜y“around.‘uIt“is“suppAÇosed“to“set“theŽ¡‘Ñ\emergencystretch‘¨nó©±Ê cmsy9Éhó,¼j‘¹ cmti9×dimen‘¶9ÉiŽ‘'Ç(Åregister–¨npro¾9vided“inŽ¡‘the–%Únew“T‘þuAŸïÿEŽ‘˜ŸX“3.0.‘NThe“ rst“argumenš¾9t“is“the“n˜um-Ž¡‘bAÇer–S'of“columns“and“the“second“one“is“the“curren¾9tŽ¡‘Ñ\hsizeÅ.‘ú"Aš¾9t–´the“momen˜t“the“default“de nition“isŽŽ’éÌÍŸÀ„DÀffŸÅ@‘ÌÍ4ÑptŽ– 95É‘Æ Ñ#1Ž“Å,‘mûi.e.–) the“Ñ\hsize“Åisn't“used“at“all.‘WœButŽ¤ ‘ÌÍma¾9ybšAÇe–Tthere“are“b˜etter“form¾9ulae.ŽŸ ‘ÌÍÑ\set@floatcmdsÅ:‘¿This–ãòis“the“hošAÇok“for“the“exp˜ertsŽ¡‘ÌÍwho–xdlikš¾9e“to“implemen˜t“a“full“ oat“mec˜hanism“forŽ¡‘ÌÍthe–¶[Çmulticols“Åen•¾9vironmen“t.‘ÿ…The–¶[Ñ@“Åin“the“nameŽ¡‘ÌÍshould–Tsignal“that“this“migh¾9t“not“bAÇe“easy‘ÿ:«.ŽŽŽŸ²T‘ÿ*ªable–×<2:‘2»The“new“commands“of“Ìmulticol.stš¸ãy“²v˜ersion“1.2.‘G¿Both“commands“migh˜t“bGe“remo˜v˜ed“if“go•Go“d‘ן'EŽ‘ãxX,–î9i.e.,“the–Ôq le“that“will“proGduce“theŽ¡doGcumen•¸ãtation›#éy“ou˜are˜curren“tly˜reading.‘aNIt˜will˜bGeŽ¡extracted–"Šfrom“this“ le“b¸ãy“the“Ídocstrip“²program.Ž¡Since–f"this“is“the“ rst“cošGde“in“this“ le“one“can“pro˜duceŽ¡the–D(doGcumenš¸ãtation“simply“b˜y“running“LŸýó5‘üff±AŽŽ‘͉²T‘þU>Ÿ'EŽ‘ãxX“on“theŽ¡Í.dtx‘UU² le.Ž© <‘üs±1Ž‘ ª®ÉhÇdriverŽ‘oÉiŽŸ ‘üs±2Ž‘ ª®Ñ\documentclass[draft]{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-ŽŽ’éÌÍŸ@„]@ff þ¬À‘ÌÍronmen¸ãt–™Ã nds“enough“space“at“the“bGottom“of“theŽ¡‘ÌÍpage.Ž© 0M‘Ìͱ15Ž‘w{Ñ\setlength\premulticols{6\baselineskip}ŽŸjC‘ÌͲ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}ŽŸjC‘ÌͲThe–çindex“is“suppGosed“to“come“out“in“four“columns.Ž¡‘ÌÍiAnd–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ŽŸjC‘ÌͲ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.Ž¡‘Ìͱ33Ž‘1Ñ^^J****************************************}Ž¡‘Ìͱ34Ž‘!¤=Ñ\DocInput{multicol.dtx}Ž¡‘Ìͱ35Ž‘w{Ñ\end{document}Ž¡‘Ìͱ36Ž‘w{Éhó5ùž" cmmi9È=ÇdriverŽ‘oÉiŽŽŽ¦Ò4.2Ž‘ÀIden ti cation–€and“option“pro`cessingŽŸ0*²Ÿè*¢‘ ²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ŽŽ’éÌÍŸ@„$^ffŸåꢑÌÍensure–ŒÊthat“this“format“is“a•¸ãv‘ÿqÇailable.‘&(No“w–ŒÊthis“isŽ¡‘ÌÍdone–UUearlier“in“the“ le.)ŽŸ Õ^‘Ìͱ37Ž‘w{ÉhÇpack¾9ageŽ‘#g ÉiŽŽŽŽŸ’瀲6ŽŽŒ‹y› ¨ ýF œ ý÷Ÿ‹±38Ž‘ ª®Ñ%‘¹–\NeedsTeXFormat{LaTeX2e}Ž¤ ±39Ž‘ ª®Ñ%‘¹–\ProvidesPackage{multicol}[..../../..Ž¡±40Ž‘ ª®Ñ%‘æXv...–¹–multicolum“formatting]Ž©‘ ²Next–UUwš¸ãe“declare“options“suppGorted“b˜y“Ìmulticols².Ž¡±41Ž‘ ª®Ñ\DeclareOption{twocolumn}Ž¡±42Ž‘×pÑ{\PackageWarning{multicol}{May–¹–not“workŽ¡±43Ž‘HLÑwith–¹–a“twocolumn“layout}}Ž¦²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Ž‘ ª®Ñ\newcount\c@tracingmulticolsŽŽ’éÌÍŸ„ffŸ‰‘Ìͱ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ŽŽŽŸþ6Ò4.3Ž‘ÀStarting–€and“Ending“the“Ômulticols“ÒEn• vironmen“tŽ íÊ þ+SŠ²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.Ž©¢:±56Ž‘ ª®Ñ\def\multicols#1{\col@number#1\relaxŽŸ¢;²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ŽŸ¢;²Aš¸ãt–çýthe“momen˜t“w˜e“can't“ha˜v˜e“more“than“ v˜eŽ¤ columns–î5otherwise“some“allošGcated“b˜o¸ãx“register“willŽ¡bGe›ýo•¸ãv“erwritten.‘ñÀThis˜is˜only˜a˜temp˜restriction˜andŽ¡will–UUbGe“remo•¸ãv“ed.Ž¦±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Ž¤¢;²No•¸ãw›UUw“e˜can˜safely˜loGok˜for˜the˜optional˜argumen“ts.Ž¦±71Ž‘ÚÑ\@ifnextchar[\mult@cols{\mult@cols[]}}ŽŸøk²The–¼õÍ\mult@cols“²macro“grabs“the“ rst“optional“ar-ŽŸ gumenš¸ãt–UU(if“an˜y)“and“loGoks“for“the“second“one.Ž¦±72Ž‘ ª®Ñ\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ŽŽ’éÌÍŸ„à¬vff þ)SŠ‘ÌÍstart–ž the“en•¸ãvironmen“t.‘4¯If–ž the“user“didn't“supply“one,Ž¤ ‘ÌÍw¸ãe–UUuse“Í\premulticols“²as“a“default.Ž©$A‘Ìͱ73Ž‘ê§Ñ{\mult@@cols{#1}}%ŽŸ ‘Ìͱ74Ž‘ê§Ñ{\mult@@cols{#1}[\premulticols]}}ŽŸAë‘ÌͲAfter–ÿremoš¸ãving“all“argumen˜ts“from“the“input“w˜e“areŽ¡‘ÌÍable–UUto“start“with“Í\mult@@cols².Ž¦‘Ìͱ75Ž‘w{Ñ\def\mult@@cols#1[#2]{%ŽŸ$A‘ÌͲ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.Ž¦‘Ìͱ76Ž‘ê§Ñ\parŽŸ ‘Ìͱ77Ž‘ê§Ñ\ifinner‘¹–\@boxedmulticolstrueŽŸ$A‘ÌͲ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‘ÿ*ª.Ž¦‘Ìͱ78Ž‘ê§Ñ\elseŽ¤ ‘Ìͱ79Ž‘&]ÓÑ\ifnum‘¹–\doublecol@number>\z@Ž¡‘Ìͱ80Ž‘4Š•Ñ\@boxedmulticolstrueŽ¡‘Ìͱ81Ž‘&]ÓÑ\fiŽ¡‘Ìͱ82Ž‘ê§Ñ\fiŽŸ$A‘ÌͲThen–UUw¸ãe“loGok“to“see“if“statistics“are“requested:Ž¦‘Ìͱ83Ž‘ê§Ñ\mult@info\z@Ž¡‘Ìͱ84Ž‘/ÐÿÑ{Starting–¹–environment“withŽ¡‘Ìͱ85Ž‘4Š•Ñ\the\col@number\space‘¹–columns%ŽŸ$A‘ÌͲIn–UUbšGo¸ãxed“mo˜de“w¸ãe“add“some“more“info.Ž¦‘Ìͱ86Ž‘9D+Ñ\if@boxedmulticols\MessageBreakŽ¡‘Ìͱ87Ž‘GpíÑ(boxed‘¹–mode)\fiŽ¡‘Ìͱ88Ž‘/ÐÿÑ}%ŽŽŽŽŸ’瀲7ŽŽŒ‹A ¨ ýF œŸðO] ý‘°£²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.Ž©61±89Ž‘×pÑ\enough@room{#2}%ŽŸ61²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.Ž©Jv‘ÐZ±100Ž‘w{Ñ\def\enough@room#1{%ŽŸJu‘ÌͲ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±101Ž‘!¤=Ñ\if@boxedmulticols\elseŽŸ ‘ÐZ±102Ž‘!¤=Ñ\parŽŸJu‘ÌͲ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±103Ž‘!¤=Ñ\bgroup\@nobreakfalse\addpenalty\z@\egroupŽ¤ ‘ÐZ±104Ž‘!¤=Ñ\page@free‘¹–\pagegoalŽ¡‘ÐZ±105Ž‘!¤=Ñ\advance–¹–\page@free“-\pagetotalŽŸJu‘ÌͲ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±106Ž‘+iÑ\@tempskipa#1\relaxŽŸJu‘ÌͲNo•¸ãw›N5w“e˜test˜whether˜tracing˜information˜is˜required:Ž¦‘ÐZ±107Ž‘!¤=Ñ\mult@info\z@Ž¤ ‘ÐZ±108Ž‘4Š•Ñ{Current‘¹–page:\MessageBreakŽ¡‘ÐZ±109Ž‘9D+Ñheight=%Ž¡‘ÐZ±110Ž‘9D+Ñ\the\pagegoal:–¹–used“\the\pagetotalŽ¡‘ÐZ±111Ž‘9D+Ñ\space–¹–->“free=\the\page@freeŽ¡‘ÐZ±112Ž‘9D+Ñ\MessageBreakŽ¡‘ÐZ±113Ž‘9D+Ñneeded‘¹–\the\@tempskipaŽ¡‘ÐZ±114Ž‘U¯Ñ\space(for‘¹–#1)}%ŽŸJu‘ÌͲOur–úÑlast“action“is“to“force“a“page“break“if“there“isn'tŽŸ ‘ÌÍenough–UUroGom“left.Ž¦‘ÐZ±115Ž‘!¤=Ñ\ifdim–¹–\page@free“<#1\newpage“\fiŽ¡‘ÐZ±116Ž‘ê§Ñ\fi}ŽŸ‡a‘ÌͲWhen–[preparing“for“mš¸ãulticolumn“output“sev˜eralŽ¤ ‘ÌÍthings–UUm¸ãust“bGe“done.Ž¦‘ÐZ±117Ž‘w{Ñ\def\prepare@multicols{%ŽŸJu‘ÌͲ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ŽŽŽŸŸJ‰ff»2xŸ J=‘ "5Ÿý-:À7ŽŽŽ‘LÜ¿See–ÕXthe“doŸ'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–Ÿ'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.ŽŸ)ì‘ÐZ±160Ž‘&]ÓÑ\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ŽŽŽŸff‰ff»2xŸ J=‘ "5Ÿý-:À8ŽŽŽ‘LÜ¿During–ÕXsucšÃŽh“a“call“the“Ð\botmark“¿gets“globally“copied“to“Ð\topmark“¿b˜y“the“T‘þ•AŸ¸ãEŽ‘MX“program.ŽŽŸ’瀲9ŽŽŒ‹ ·w ¨ ýF œŸÊO] ý·°£²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.Ž©F‘ü±161Ž‘‘Ñ\set@mult@vsize\relaxŽŸF²No•¸ãw›ù®w“e˜switc“h˜to˜a˜new˜Í\output˜²routine˜whic“h˜willŽ¡bGe–ó‹used“to“put“the“gathered“column“material“to-Ž¡gether.Ž¦‘ü±162Ž‘‘Ñ\output{\multi@column@out}%ŽŸF²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.Ž¦‘ü±163Ž‘‘Ñ\init@mult@footinsŽŸF²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Ž¡appropriate–šfamounš¸ãt“since“w˜e“ha˜v˜e“c˜hanged“the“mag-Ž¡ni cation–UUfactor,“etc.“abGo•¸ãv“e.Ž¦‘ü±164Ž‘‘Ñ\reinsert@footnotesŽŸF²All–,Ÿ'EŽ‘ãxX“to“prošGduce“`go˜o˜d'“paragraphs“within“nar-Ž¡ro¸ãw‘UUcolumns.Ž¦‘ü±166Ž‘ÚÑ\vbadness\@Mi‘¹–\hbadness5000ŽŸ ‘ü±167Ž‘ÚÑ\tolerance\multicoltoleranceŽŸF²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ŽŽ’éÌÍ©'„Tvyff ýµ‰‡‘ÌÍ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±168Ž‘ê§Ñ\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±169Ž‘ê§Ñ\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±170Ž‘ê§Ñ\set@floatcmdsŽŸú"‘ÌͲAdditionally‘ÿ*ª,‘ C]wš¸ãe– z*adv‘ÿqÇance“Í\baselineskip“²b˜yŽ¡‘ÌÍÍ\multicolbaselineskip–›²to“allo¸ãw“corrections“forŽ¡‘ÌÍnarro¸ãw‘UUcolumns.Ž¦‘ÐZ±171Ž‘ê§Ñ\advance\baselineskip\multicolbaselineskipŽŸú"‘ÌͲThe–.Í\hsize“²of“the“columns“is“givš¸ãen“b˜y“the“form˜ula:ŽŸNŸù<$‘4Í\linewidthŽ‘EìḖ8à²(Í\col@numberŽ‘;ø¿¸“²1)“¸“Í\columnsepŽŽ‘4Ÿw‰feÔ1\Ÿ (Ö‘M8¿\col@numberŽŽŽŽŽŸ…ΑÌͲ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:Ž¦‘ÐZ±172Ž‘ê§Ñ\hsize\linewidth‘¹–\advance\hsize\columnsepŽ¤ ‘ÐZ±173Ž‘ê§Ñ\advance\hsize-\col@number\columnsepŽ¡‘ÐZ±174Ž‘ê§Ñ\divide\hsize\col@numberŽŸú"‘ÌͲW‘ÿ*ªe–Œ6also“set“Í\linewidth“²to“Í\hsize“²but“lea•¸ãv“eŽ¤ ‘ÌÍÍ\columnwidth–9Ò²uncš¸ãhanged.‘hœThis“is“inconsisten˜t,‘?SbutŽ¡‘ÌÍÍ\columnwidth–G²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.‘±ËSince“wš¸ãe“w˜an˜t“pagewide“foGot-Ž¡‘ÌÍnotesŸü^ÿ±9ŽŽ‘ S²this–Œàsimple“tricš¸ãk“sa˜v˜es“us“from“rewriting“theŽ¡‘ÌÍÍ\footnote‘UU²macros.Ž¡‘ÌÎ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.ŽŽŽŸ‚‰ff»2xŸ J=‘ "5Ÿý-:À9ŽŽŽ‘LÜ¿I'm–… not“sure“that“I‘„ùreally“w•ÃŽan“t–… pagewide“fošÌthat“require“di erenš¸ãt“amoun˜t“of“spacesŽ¡when–UUt¸ãypšGesetting“fo˜otnotes.ŽŸ ”‘ü±178Ž‘ ª®Ñ\def\init@mult@footins{%Ž¤ ‘ü±179Ž‘‘Ñ\multiply\count\footins\col@numberŽ¡‘ü±180Ž‘‘Ñ\multiply\skip‘¹–\footins\col@numberŽ¡‘ü±181Ž‘ ª®Ñ}Ž¦²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.Ž© ”‘ü±182Ž‘ ª®Ñ\def\set@mult@vsize#1{%Ž¤ ‘ü±183Ž‘‘Ñ\vsize\@colroomŽ¡‘ü±184Ž‘‘Ñ\@tempdima\baselineskipŽ¡‘ü±185Ž‘‘Ñ\advance\@tempdima-\topskipŽ¡‘ü±186Ž‘‘Ñ\advance\vsize\@tempdimaŽ¡‘ü±187Ž‘‘Ñ\vsize\col@number\vsizeŽ¡‘ü±188Ž‘‘Ñ\advance\vsize-\@tempdimaŽŸ ”²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.Ž¡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.Ž¦‘ü±189Ž‘‘Ñ#1\advance\vsizeŽŸ ‘ü±190Ž‘0w^Ñ\c@collectmore\baselineskip}ŽŸ°²Here–¤Vis“the“dimen“register“wš¸ãe“need“for“sa˜ving“a˜w˜a˜yŽ¡the–UUouter“v‘ÿqÇalue“of“Í\@totalleftmargin².Ž¦‘ü±191Ž‘ ª®Ñ\newdimen\multicol@leftmarginŽŸ°²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.Ž¦‘ü±192Ž‘ ª®Ñ\def\endmulticols{\parŽŸ ‘ü±193Ž‘ÚÑ\if@boxedmulticolsŽŸ ”²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.Ž¦‘ü±194Ž‘‘Ñ\egroupŽŽ’éÌÍŸ„]Ï]ff ý¬0£‘ÌͲNo•¸ãw›Mw“e˜call˜Í\balance@columns˜²the˜routine˜thatŽ¤ ‘ÌÍbalances–UUmaterial“stored“in“the“bGo¸ãx“Í\mult@box².Ž©R‘ÐZ±195Ž‘&]ÓÑ\balance@columnsŽŸR‘ÌͲ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±196Ž‘&]ÓÑ\return@nonemptymark{first}%Ž¤ ‘ÐZ±197Ž‘cÊqÑ\kept@firstmarkŽ¡‘ÐZ±198Ž‘&]ÓÑ\return@nonemptymark{bot}%Ž¡‘ÐZ±199Ž‘h„Ñ\kept@botmarkŽ¡‘ÐZ±200Ž‘&]ÓÑ\page@sofarŽŸ½‘ÐZ±201Ž‘&]ÓÑ\global\let\kept@firstmarkŽ¡‘ÐZ±202Ž‘ZWEÑ\l@kept@firstmarkŽ¡‘ÐZ±203Ž‘&]ÓÑ\global\let\kept@botmarkŽ¡‘ÐZ±204Ž‘L*ƒÑ\l@kept@botmarkŽ¡‘ÐZ±205Ž‘w{ÉhÇma¾9rktraceŽ‘+²ÉiŽ¡‘ÐZ±206Ž‘&]ÓÑ\mult@info\tw@Ž¡‘ÐZ±207Ž‘/ÐÿÑ{Restore–¹–kept“marks“to\MessageBreakŽ¡‘ÐZ±208Ž‘4Š•Ñfirst:‘¹–\meaning\kept@firstmarkŽ¡‘ÐZ±209Ž‘4Š•Ñ\MessageBreak‘¹–bot\space\space:Ž¡‘ÐZ±210Ž‘v°ÉÑ\meaning\kept@botmark‘¹–}%Ž¡‘ÐZ±211Ž‘w{ÉhÈ=Çma¾9rktraceŽ‘+²ÉiŽŸ½‘ÌͲThis–UU nishes“the“cošGde“for“the“\b˜o¸ãxed"“case.Ž¦‘ÐZ±212Ž‘ê§Ñ\elseŽŸR‘ÌͲIf–m´wš¸ãe“are“in“an“unrestricted“Ìmulticols“²en˜vironmen˜tŽ¤ ‘ÌÍwš¸ãe–“end“the“curren˜t“paragraph“with“Í\par“²but“thisŽ¡‘ÌÍisn't–0çsucien¸ãt“since“T‘þU>Ÿ'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.Ž¦‘ÐZ±213Ž‘!¤=Ñ\penalty\z@ŽŸR‘ÌͲNoš¸ãw–3it's“safe“to“c˜hange“the“output“routine“in“orderŽ¡‘ÌÍto–UUbalance“the“columns.Ž¦‘ÐZ±214Ž‘&]ÓÑ\output{\balance@columns@out}\ejectŽŸR‘ÌͲ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ŽŽŽŸff‰ff»2xŸ 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.ŽŽŸ’äÿÿ²11ŽŽŒ‹ çñ ¨ ýF œ ÿy þ ²(stored–(æin“Í\partial@page“²will“get“lost“if“w¸ãe“don'tŽ¤ takš¸ãe–UUof“this“b˜y“hand.Ž© )`‘ü±215Ž‘‘Ñ\ifvbox\partial@pageŽŸ ‘ü±216Ž‘50ôÑ\unvbox\partial@page\fiŽŸ)`²After–±Äthe“output“routine“has“acted“wš¸ãe“restore“w˜eŽ¡reset–UUthe“k¸ãept“marks“to“their“initial“v‘ÿqÇalue.Ž¦‘ü±217Ž‘"JœÑ\global\let\kept@firstmark\@emptyŽ¤ ‘ü±218Ž‘"JœÑ\global\let\kept@botmark\@emptyŽ¡‘ü±219Ž‘ ª®ÉhÇma¾9rktraceŽ‘+²ÉiŽ¡‘ü±220Ž‘"JœÑ\mult@info\tw@Ž¡‘ü±221Ž‘+½ÈÑ{Make–¹–kept“marks“empty}%Ž¡‘ü±222Ž‘ ª®ÉhÈ=Çma¾9rktraceŽ‘+²ÉiŽ¡‘ü±223Ž‘ÚÑ\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ŽŽŽ¦‘ü229Ž‘ÚÑ\global\c@unbalance\z@ŽŸ)`²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.ŽŽ’éÌÍŸñÇ„ñÇff þ9‘ÐZ±230Ž‘ê§Ñ\enough@room\postmulticolsŽ¤ ‘ÐZ±231Ž‘ê§Ñ\addvspace\multicolsepŽŸKL‘ÌͲIf–pástatistics“are“required“wš¸ãe“ nally“repGort“that“w˜eŽ© ‘ÌÍha•¸ãv“e–UU nished“ev¸ãerything.ŽŸKK‘ÐZ±232Ž‘ê§Ñ\mult@info\z@Ž¡‘ÐZ±233Ž‘+iÑ{Ending‘¹–environmentŽ¡‘ÐZ±234Ž‘PäÑ\if@boxedmulticolsŽ¡‘ÐZ±235Ž‘_ÛÑ\space(boxed‘¹–mode)\fiŽ¡‘ÐZ±236Ž‘U¯Ñ}}ŽŸZ[‘ÌͲLet–Ñ_us“end“this“section“b¸ãy“alloGcating“all“the“registersŽ¦‘ÌÍused–UUso“far.ŽŸKK‘ÐZ±237Ž‘w{Ñ\newcount\c@unbalanceŽ¡‘ÐZ±238Ž‘w{Ñ\newcount\c@collectmoreŽŸKL‘ÌͲ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.Ž©KK‘ÐZ±239Ž‘w{Ñ%\newcount\col@numberŽ¡‘ÐZ±240Ž‘w{Ñ\newcount\doublecol@numberŽ¡‘ÐZ±241Ž‘w{Ñ\newcount\multicoltoleranceŽ¡‘ÐZ±242Ž‘w{Ñ\newcount\multicolpretoleranceŽ¡‘ÐZ±243Ž‘w{Ñ\newdimen\full@widthŽ¡‘ÐZ±244Ž‘w{Ñ\newdimen\page@freeŽ¡‘ÐZ±245Ž‘w{Ñ\newdimen\premulticolsŽ¡‘ÐZ±246Ž‘w{Ñ\newdimen\postmulticolsŽ¡‘ÐZ±247Ž‘w{Ñ\newskip\multicolsepŽ¡‘ÐZ±248Ž‘w{Ñ\newskip\multicolbaselineskipŽ¡‘ÐZ±249Ž‘w{Ñ\newbox\partial@pageŽ¡‘ÐZ±250Ž‘w{Ñ\newbox\last@lineŽŸKL‘ÌͲAnd–UUhere“are“their“default“v‘ÿqÇalues:Ž¦‘ÐZ±251Ž‘w{Ñ\c@unbalance‘,Â=‘¹–0Ž¡‘ÐZ±252Ž‘w{Ñ\c@collectmore–¹–=“0ŽŸKL‘ÌͲT‘ÿ*ªo–[kalloš¸ãw“c˜hec˜king“whether“some“macro“is“usedŽ¤ ‘ÌÍwithin– nthe“Ìmulticols“²en•¸ãvironmen“t– nthe“coun¸ãterŽ¡‘ÌÍÍ\col@number–<²gets“a“default“of“Í1“²outside“the“the“en-Ž¡‘ÌÍvironmen¸ãt.Ž¦‘ÐZ±253Ž‘w{Ñ\col@number–¹–=“1Ž¤ ‘ÐZ±254Ž‘w{Ñ\multicoltolerance–¹–=“9999Ž¡‘ÐZ±255Ž‘w{Ñ\multicolpretolerance–¹–=“-1Ž¡‘ÐZ±256Ž‘w{Ñ\premulticols–¹–=“50ptŽ¡‘ÐZ±257Ž‘w{Ñ\postmulticols=‘¹–20ptŽ¡‘ÐZ±258Ž‘w{Ñ\multicolsep–¹–=“12pt“plus“4pt“minus“3ptŽ¡‘ÐZ±259Ž‘w{Ñ\multicolbaselineskip=0ptŽŽŽŸ‘öÒ4.4Ž‘ÀThe–€output“routinesŽŸZÊŸ¼õô‘ ²W‘ÿ*ªe–3 rst“start“with“some“simple“macros.‘ïaWhenŽ¤ tš¸ãypGesetting–¨the“page“w˜e“sa˜v˜e“the“columns“either“inŽ¡the–&"bšGo¸ãx“registers“0,–ZU2,“4,.–ªª.“.‘ÐÌ(lo˜cally)–&"or“1,–ZU3,“5,.–ªª.“.Ž¡(globally).‘ ¹This–ºPis“ó2Œ-ø cmcsc10ÝPlain‘²T‘þU>Ÿ'EŽ‘ãxX“pGolicy“to“a•¸ãv“oid‘ºPanŽ¡o•¸ãv“er o“w–UUof“the“sa•¸ãv“e‘UUstac“k.ŽŽ’éÌÍŸ€„OŠ ffŸºuô‘ÌÍ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ŽŽŽŸ ‰ff»2xŸ J=‘wŽŸý-:À11ŽŽŽ‘LÜ¿Actually‘ÿJª,–ÕXwšÃŽe“are“still“in“a“group“started“b˜y“the“Ð\begin“¿macro,“so“Ð\global“¿m˜ust“bŽ¡‘ü±279Ž‘0w^Ñ\the\full@width\space–¹–=“\the\hsizeŽ¡‘ü±280Ž‘0w^Ñ\space–¹–x“\the\col@number)%Ž¡‘ü±281Ž‘"JœÑ}%Ž¤t ²Aš¸ãt–?ýthis“pGoin˜t“w˜e“should“alw˜a˜ys“bGe“in“v˜ertical“moGde.Ž¦‘ü±282Ž‘ ª®Ñ\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ŽŽ’éÌÍŸ€„qO]ff ý˜°£‘ÌÍÍ\multicol@leftmargin–Ö`²to“the“righ¸ãt“so“that“it“willŽ¤ ‘ÌÍbGe–6placed“correctly“if“wš¸ãe“are“within“a“list“en˜viron-Ž¡‘ÌÍmen¸ãt)Ž¤H»‘ÐZ±283Ž‘!¤=Ñ\moveright\multicol@leftmarginŽ© ‘ÐZ±284Ž‘&]ÓÑ\hbox‘¹–to\full@width{%ŽŸHº‘ÌͲand–UUseparating“the“columns“with“a“rule“if“desired.Ž¡‘ÐZ±285Ž‘+iÑ\process@cols\mult@gfirstbox{\box\count@Ž¦‘ÐZ±286Ž‘4Š•Ñ\hss\vrule\@width\columnseprule\hss}%Ž©Hº‘ÌͲ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².ŽŸH»‘ÐZ±287Ž‘+iÑ\box\mult@rightboxŽ¦‘ÌͲThe–’)depth“of“the“columns“depGend“on“there“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“Í\strut².Ž©H»‘ÐZ±288Ž‘w{Ñ%‘Ÿî\strutŽ¤ ‘ÐZ±289Ž‘/ÐÿÑ\rlap{\phantom‘¹–p}%Ž¡‘ÐZ±290Ž‘w{Ñ}%Ž¡‘ÐZ±291Ž‘w{Ñ}ŽŸU°‘ÌͲBefore–:èwš¸ãe“tac˜kle“the“bigger“output“routines“w˜eŽ¤ ‘ÌÍde ne–^6just“one“more“macro“whic¸ãh“will“help“usŽ¡‘ÌÍto– nd“our“w•¸ãa“y–through“the“m¸ãysteries“later.Ž¡‘ÌÍÍ\reinsert@footnotes–Op²will“do“what“its“name“in-Ž¡‘ÌÍdicates:‘dit–)¤reinserts“the“foGotnotes“presen¸ãt“inŽ¡‘ÌÍÍ\footinbox–®½²so“that“they“will“bšGe“repro˜cessed“b¸ãyŽ¡‘ÌÍT‘þU>Ÿ'EŽ‘ãxX's‘UUÏp‘ÿ}'age‘‰ffŽ‘®builder².ŽŸ •l‘ÌÎ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Ž¡‘ÌÍtheir–Ó5bGoš¸ãx“and“w˜e“are“on“a“fresh“page“Í\skip“footinsŽ¡‘ÌͲshould–UUbGe“correctly“takš¸ãen“in˜to“accoun˜t.Ž¦‘ÐZ±292Ž‘w{Ñ\def\reinsert@footnotes{\ifvoid\footins\elseŽŸ ‘ÐZ±293Ž‘=ýÁÑ\insert\footins{}\fi}ŽŸU°‘ÌͲ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.Ž¦‘ÐZ±294Ž‘w{Ñ\def\multi@column@out{%ŽŸ ‘ÐZ±295Ž‘!¤=Ñ\ifnum\outputpenalty‘¹–<-\@MŽŽŽŸæf‰ff»2xŸ J=‘wŽŸý-:À12ŽŽŽ‘LÜ¿Y‘ÿJªou–åÉwill“see“the“reason“for“this“n•ÃŽum“bš¤ Ñ}%ŽŸxx²Then–UUthe“last“column“follo¸ãws.Ž¦‘ü±314Ž‘×pÑ\setbox\mult@rightboxŽ¡‘ü±315Ž‘+½ÈÑ\vsplit\@cclv‘¹–to\dimen@Ž¡‘ü±316Ž‘×pÑ\set@keptmarksŽ¡‘ü±317Ž‘×pÑ\ifshr@nkingŽ¡‘ü±318Ž‘'2Ñ\setbox\mult@rightbox\vbox‘¹–to\dimen@Ž¡‘ü±319Ž‘9êŠÑ{\unvbox\mult@rightbox\vfill}%Ž¡‘ü±320Ž‘×pÑ\fiŽŸxx²Haš¸ãving–‘this“done“w˜e“hopšGe“that“b˜o¸ãx“255“is“emptied.ŽŸ If–UUnot,“wš¸ãe“reinsert“its“con˜ten˜ts.Ž¦‘ü±321Ž‘×pÑ\ifvoid\@cclv‘¹–\elseŽ¡‘ü±322Ž‘+½ÈÑ\unvbox\@cclvŽ¡‘ü±323Ž‘+½ÈÑ\penalty\outputpenaltyŽŽ’éÌÍŸ„Šff ý€‘ÌͲ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–\%where“presenš¸ãt,‘]Ùresulting“in“man˜y“unnecessaryŽ¡‘ÌÍw¸ãarnings.Ž©d ‘ÐZ±324Ž‘4Š•Ñ\ifvoid\footins\elseŽ¤ ‘ÐZ±325Ž‘=ýÁÑ\PackageWarning{multicol}%Ž¡‘ÐZ±326Ž‘B·WÑ{I–¹–moved“some“lines“toŽ¡‘ÐZ±327Ž‘GpíÑthe–¹–next“page.\MessageBreakŽ¡‘ÐZ±328Ž‘GpíÑFootnotes–¹–on“pageŽ¡‘ÐZ±329Ž‘GpíÑ\thepage\space–¹–might“be“wrong}%Ž¡‘ÐZ±330Ž‘4Š•Ñ\fiŽŸd ‘ÌͲIf–´îthe“`Ìtracingmulticols²'“counš¸ãter“is“4“or“higher“w˜e“alsoŽŸ ‘ÌÍadd–UUa“rule.Ž¦‘ÐZ±331Ž‘4Š•Ñ\ifnum‘¹–\c@tracingmulticols>\thr@@Ž¡‘ÐZ±332Ž‘q÷3Ñ\hrule\allowbreak‘¹–\fiŽ¡‘ÐZ±333Ž‘!¤=Ñ\fiŽŸd ‘ÌͲ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Ž¡‘ÌÍgathered–Athe“Í\partical@page“²and“later“on“w¸ãas“up-Ž¡‘ÌÍdated–UUto“the“Í\botmark“²for“the“preceding“pageŽŸã‘ÐZ±334Ž‘!¤=Ñ\ifx\@empty\kept@firstmarkŽ¤ ‘ÐZ±335Ž‘/ÐÿÑ\let\firstmark\kept@topmarkŽ¡‘ÐZ±336Ž‘/ÐÿÑ\let\botmark\kept@topmarkŽ¡‘ÐZ±337Ž‘!¤=Ñ\elseŽ¡‘ÐZ±338Ž‘/ÐÿÑ\let\firstmark\kept@firstmarkŽ¡‘ÐZ±339Ž‘/ÐÿÑ\let\botmark\kept@botmarkŽ¡‘ÐZ±340Ž‘!¤=Ñ\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.Ž¦‘ÐZ±341Ž‘!¤=Ñ\let\topmark\kept@topmarkŽ¤ ‘ÐZ±342Ž‘w{ÉhÇma¾9rktraceŽ‘+²ÉiŽ¡‘ÐZ±343Ž‘!¤=Ñ\mult@info\tw@Ž¡‘ÐZ±344Ž‘9D+Ñ{Use–¹–kept“top“mark:\MessageBreakŽ¡‘ÐZ±345Ž‘B·WÑ\meaning\kept@topmarkŽ¡‘ÐZ±346Ž‘=ýÁÑ\MessageBreakŽ¡‘ÐZ±347Ž‘=ýÁÑUse–¹–kept“first“mark:\MessageBreakŽ¡‘ÐZ±348Ž‘B·WÑ\meaning\kept@firstmarkŽ¡‘ÐZ±349Ž‘9D+Ñ\MessageBreakŽ¡‘ÐZ±350Ž‘=ýÁÑUse–¹–kept“bot“mark:\MessageBreakŽ¡‘ÐZ±351Ž‘B·WÑ\meaning\kept@botmarkŽ¡‘ÐZ±352Ž‘9D+Ñ\MessageBreakŽ¡‘ÐZ±353Ž‘=ýÁÑProduce–¹–first“mark:\MessageBreakŽ¡‘ÐZ±354Ž‘B·WÑ\meaning\firstmarkŽ¡‘ÐZ±355Ž‘9D+Ñ\MessageBreakŽ¡‘ÐZ±356Ž‘9D+ÑProduce–¹–bot“mark:\MessageBreakŽ¡‘ÐZ±357Ž‘B·WÑ\meaning\botmarkŽŽŽŽŸ’äÿÿ²14ŽŽŒ‹)) ¨ ýF œŸæÏ] ý›0£‘ü±358Ž‘50ôÑ\@gobbletwo}%Ž© ‘ü±359Ž‘ ª®ÉhÈ=Çma¾9rktraceŽ‘+²ÉiŽŸ•œ²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.ŽŸ D‘ 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.ŽŸÙž‘ü±360Ž‘×pÑ\setbox\@cclv\vbox{\unvbox\partial@pageŽ¦‘ü±361Ž‘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.Ž©•‘ü±362Ž‘×pÑ\@makecol\@outputpageŽŸ•œ²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Ž¡b¸ãy–ãäsetting“them“to“Í\@empty².‘K÷The“v‘ÿqÇalue“of“Í\botmarkŽ¡²is–UUthen“assigned“to“Í\kept@topmark².Ž¦‘ü±363Ž‘"JœÑ\global\let\kept@topmark\botmarkŽ¤ ‘ü±364Ž‘"JœÑ\global\let\kept@firstmark\@emptyŽ¡‘ü±365Ž‘"JœÑ\global\let\kept@botmark\@emptyŽ¡‘ü±366Ž‘ ª®ÉhÇma¾9rktraceŽ‘+²ÉiŽ¡‘ü±367Ž‘"JœÑ\mult@info\tw@Ž¡‘ü±368Ž‘0w^Ñ{(Re)Init–¹–top“mark:\MessageBreakŽ¡‘ü±369Ž‘50ôÑ\meaning\kept@topmarkŽ¡‘ü±370Ž‘50ôÑ\@gobbletwo}%Ž¡‘ü±371Ž‘ ª®ÉhÈ=Çma¾9rktraceŽ‘+²ÉiŽ¤•œ²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².Ž¦‘ü±372Ž‘×pÑ\global\@colroom\@colhtŽ¡²Then–'›wš¸ãe“proGcess“deferred“ oats“w˜aiting“for“theirŽŸ c¸ãhance–UUto“bGe“placed“on“the“next“page.Ž¦‘ü±373Ž‘×pÑ\process@deferredsŽ¤ ‘ü±374Ž‘×pÑ\@whilesw\if@fcolmade\fi{\@outputpageŽ¡‘ü±375Ž‘'2Ñ\global\@colroom\@colhtŽ¡‘ü±376Ž‘'2Ñ\process@deferreds}%ŽŸ•œ²If–¿ýthe“user“is“inš¸ãterested“in“statistics“w˜e“inform“himŽŸ abGout–UUthe“amounš¸ãt“of“space“reserv˜ed“for“ oats.Ž¦‘ü±377Ž‘×pÑ\mult@info\@neŽ¡‘ü±378Ž‘"JœÑ{Colroom:\MessageBreakŽ¡‘ü±379Ž‘'2Ñ\the\@colht\spaceŽ¡‘ü±380Ž‘LÐâÑafter–¹–float“space“removedŽ¡‘ü±381Ž‘LÐâÑ=–¹–\the\@colroom“\@gobble}%ŽŽ’éÌÍŸ„pÏ]ff ý™0£‘ÌͲ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.Ž©ió‘ÐZ±382Ž‘&]ÓÑ\set@mult@vsize‘¹–\globalŽŸió‘ÌͲThe–SNÍ\footins“²skip“register“will“bGe“adjusted“whenŽ¡‘ÌÍthe–UUoutput“group“is“closed.Ž¦‘ÐZ±383Ž‘ê§Ñ\fi}ŽŸÀ£‘ÌͲThis–Ë×macro“is“used“to“substract“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–Çcolumn“is“stored“in“Í\dimen@².‘ÇSee“abGo˜v˜e“toŽ¡‘ÌÍthe–UUdescription“of“the“default“action.Ž¦‘ÐZ±384Ž‘w{Ñ\def\leave@mult@footins{%Ž¤ ‘ÐZ±385Ž‘!¤=Ñ\advance\dimen@-\skip\footinsŽ¡‘ÐZ±386Ž‘!¤=Ñ\advance\dimen@-\ht\footinsŽ¡‘ÐZ±387Ž‘w{Ñ}ŽŸÀ£‘ÌͲW‘ÿ*ªe–—cleft“out“t•¸ãw“o–—cmacros:‘õãÍ\process@deferreds“²andŽŸ ‘ÌÍÍ\speci@ls².Ž¦‘ÐZ±388Ž‘w{Ñ\def\speci@ls{%Ž¡‘ÐZ±389Ž‘1Ñ\ifnum\outputpenalty‘¹–<-\@MiŽŸió‘ÌͲIf–'wš¸ãe“encoun˜ter“a“ oat“or“a“marginpar“in“the“cur-Ž¤ ‘ÌÍren•¸ãt›úèimplemen“tation˜w“e˜simply˜w“arn˜the˜user˜thatŽ¡‘ÌÍthis–¾ is“not“allo•¸ãw“ed.‘«ðThen›¾ w“e˜reinsert˜the˜page˜andŽ¡‘ÌÍits‘UUfoGotnotes.Ž¦‘ÐZ±390Ž‘!¤=Ñ\PackageWarning{multicol}%Ž¤ ‘ÐZ±391Ž‘GpíÑ{Floats–¹–and“marginpars“notŽ¡‘ÐZ±392Ž‘L*ƒÑallowed–¹–inside“`multicols'Ž¡‘ÐZ±393Ž‘L*ƒÑenvironment!Ž¡‘ÐZ±394Ž‘GpíÑ\@gobble}%Ž¡‘ÐZ±395Ž‘!¤=Ñ\unvbox\@cclv\reinsert@footnotesŽŸió‘ÌͲ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².)Ž¦‘ÐZ±396Ž‘!¤=Ñ\xdef\@freelist{\@freelist\@currlist}%ŽŸ ‘ÐZ±397Ž‘!¤=Ñ\gdef\@currlist{}%ŽŸió‘ÌͲ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.Ž¦‘ÐZ±398Ž‘1Ñ\else–¹–\@doclearpage“\fiŽŸ ‘ÐZ±399Ž‘w{Ñ}ŽŸÀ£‘ÌÍÍ\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ŽŽŽŸff‰ff»2xŸ J=‘wŽŸý-:À13ŽŽŽ‘LÜ¿This–¬nwill“prošŸ'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.Ž©8ä‘ü±438Ž‘×pÑ\setbox\@tempboxa\vsplit\mult@box‘¹–to\z@ŽŸ8ä²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.–ªª.“.Ž¦‘ü±439Ž‘×pÑ\@tempdima\ht\mult@boxŽ¤ ‘ü±440Ž‘×pÑ\advance\@tempdima\dp\mult@boxŽ¡‘ü±441Ž‘×pÑ\divide\@tempdima\col@numberŽŸ8ä²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².Ž¦‘ü±442Ž‘×pÑ\count@\@tempdimaŽ¤ ‘ü±443Ž‘×pÑ\divide\count@\baselineskipŽ¡‘ü±444Ž‘×pÑ\dimen@\count@\baselineskipŽŸ8ä²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-Ž¡stract–UUone“Í\baselineskip².Ž¦‘ü±445Ž‘×pÑ\advance\dimen@\topskipŽ¤ ‘ü±446Ž‘×pÑ\ifdim–¹–\dimen@“>\@tempdimaŽ¡‘ü±447Ž‘"JœÑ\advance\dimen@-\baselineskipŽ¡‘ü±448Ž‘×pÑ\fiŽŸ8ä²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).Ž¦‘ü±449Ž‘×pÑ\advance\dimen@\c@unbalance\baselineskipŽŽ’éÌÍŸ@„Š@ff ýÀ‘ÌͲW‘ÿ*ªe–UUtš¸ãypGe“out“statistics“if“w˜e“w˜ere“ask˜ed“to“do“so.Ž© ff‘ÐZ±450Ž‘!¤=Ñ\mult@info\@neŽ¤ ‘ÐZ±451Ž‘/ÐÿÑ{Balance‘¹–columns\on@line:Ž¡‘ÐZ±452Ž‘9D+Ñ\ifnum\c@unbalance=\z@\elseŽ¡‘ÐZ±453Ž‘4Š•Ñ(off‘¹–balance=\number\c@unbalance)\fiŽ¡‘ÐZ±454Ž‘/ÐÿÑ\@gobbletwo}%ŽŸff‘ÌͲBut–UUwš¸ãe“don't“allo˜w“nonsense“v‘ÿqÇalues“for“a“start.Ž¦‘ÐZ±455Ž‘!¤=Ñ\ifnum\dimen@<\topskipŽ¡‘ÐZ±456Ž‘+iÑ\mult@info\@neŽ¡‘ÐZ±457Ž‘4Š•Ñ{Start‘¹–valueŽ¡‘ÐZ±458Ž‘B·WÑ\the\dimen@‘ s,\space‘¹–->Ž¡‘ÐZ±459Ž‘B·WÑ\the\topskip–¹–\space“(corrected)}%Ž¡‘ÐZ±460Ž‘+iÑ\dimen@\topskipŽ¡‘ÐZ±461Ž‘!¤=Ñ\fiŽŸff‘ÌͲ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.Ž¦‘ÐZ±462Ž‘!¤=Ñ\vbadness\@MŽŸff‘ÌͲW‘ÿ*ªe–ÆOalso“alloš¸ãw“for“o˜v˜erfull“bGo˜xes“while“w˜e“trying“toŽ¡‘ÌÍsplit–UUthe“columns.Ž¦‘ÐZ±463Ž‘!¤=Ñ\vfuzz‘¹–\col@number\baselineskipŽŸff‘ÌͲ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.Ž¦‘ÐZ±464Ž‘!¤=Ñ\last@try-\p@ŽŸ ‘ÐZ±465Ž‘!¤=Ñ\loopŽŸff‘ÌͲ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.Ž¦‘ÐZ±466Ž‘&]ÓÑ{\process@cols\mult@grightboxŽ¤ ‘ÐZ±467Ž‘GpíÑ{\global\setbox\count@Ž¡‘ÐZ±468Ž‘m=Ñ\box\voidb@x}}%ŽŸff‘ÌͲ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.)Ž¦‘ÐZ±469Ž‘&]ÓÑ\global\setbox\mult@grightboxŽŸ ‘ÐZ±470Ž‘GpíÑ\copy\mult@boxŽŸff‘ÌͲW‘ÿ*ªe–v‚start“with“the“assumption“that“the“trial“will“bGeŽ¡‘ÌÍsuccessful.‘¤-If–Ìw¸ãe“end“up“with“a“solutiution“that“isŽ¡‘ÌÍtoGo–UUbad“w¸ãe“set“Ítoo@bad“²to“Ífalse².Ž¦‘ÐZ±471Ž‘w{ÉhÇbadnessŽ‘"šóÉiŽŽŽŽŸ’äÿÿ²17ŽŽŒ‹gø ¨ ýF œŸæÏ] ý›0£‘ü±472Ž‘×pÑ\global\too@badfalseŽ© ‘ü±473Ž‘ ª®É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.ŽŸž}‘ü±474Ž‘×pÑ{\process@cols\mult@firstbox{%Ž¦‘ü±475Ž‘50ôÑ\global\setbox\count@Ž¦‘ü±476Ž‘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.ŽŸž}‘ü±477Ž‘ ª®ÉhÇbadnessŽ‘"šóÉiŽ¦‘ü±478Ž‘50ôÑ\ifnum\c@tracingmulticols>\@neŽ¦‘ü±479Ž‘>¤ Ñ\@tempcnta\count@Ž¦‘ü±480Ž‘>¤ Ñ\advance\@tempcnta-\mult@grightboxŽ¦‘ü±481Ž‘>¤ Ñ\divide\@tempcnta‘¹–\tw@Ž¦‘ü±482Ž‘>¤ Ñ\message{^^JColumnŽ¦‘ü±483Ž‘LÐâÑ\number\@tempcnta\spaceŽ¦‘ü±484Ž‘QŠxÑbadness:‘¹–\the\badness\space}%Ž¦‘ü±485Ž‘50ôÑ\fiŽŸž}²If–,othis“badness“is“larger“the“the“allo•¸ãw“ed‘,ocolumn-Ž¡badness–ýøwš¸ãe“reject“this“solution“b˜y“setting“Ítoo@badŽ¡²to‘UUÍtrue².ŽŸž}‘ü±486Ž‘50ôÑ\ifnum\badness>\c@columnbadnessŽ¦‘ü±487Ž‘>¤ Ñ\ifnum\c@tracingmulticols>\@neŽ¦‘ü±488Ž‘HLÑ\message{too‘¹–badŽ¦‘ü±489Ž‘_·:Ñ(>\the\c@columnbadness)}%Ž¦‘ü±490Ž‘>¤ Ñ\fiŽ¦‘ü±491Ž‘>¤ Ñ\global\too@badtrueŽ¦‘ü±492Ž‘50ôÑ\fiŽ¦‘ü±493Ž‘ ª®ÉhÈ=ÇbadnessŽ‘"šóÉiŽ¦‘ü±494Ž‘|¾Ñ}}%ŽŸž}²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.ŽŸž}‘ü±495Ž‘×pÑ\boxmaxdepth\maxdepthŽ¦‘ü±496Ž‘×pÑ\global\setbox\mult@grightboxŽ¦‘ü±497Ž‘'2Ñ\vbox{\unvbox\mult@grightbox}%ŽŸž}²W‘ÿ*ªe–æalso“sa•¸ãv“e–æa“cop¸ãy“Í\mult@firstbox“²at“it“\natural"Ž¡size–UUfor“later“use.ŽŸž}‘ü±498Ž‘×pÑ\setbox\mult@nat@firstboxŽ¦‘ü±499Ž‘'2Ñ\vbox{\unvcopy\mult@firstbox}%ŽŸž}²After–µXÍ\process@cols“²has“done“its“job“wš¸ãe“ha˜v˜e“theŽ¡follo¸ãwing‘UUsituation:ŽŽ’éÌÍŸñÇ„pÁ$ff ý³ÆŸä’z‘)»bGo¸ãx‘UUÍ\mult@rightbox‘qÀ¸ ‘þUXŽŽŽŽ’Ÿe’²all‘UUmaterialŽŽ¤ ‘${bGo¸ãx‘UUÍ\mult@gfirstbox‘qÀ¸ ‘þUXŽŽŽŽ’Ÿe’² rst‘UUcolumnŽŽ¡‘B:bGo¸ãx‘UUÍ\mult@gfirstbox–8à²+“2‘qÀ¸ ‘þUXŽŽŽŽ’Ÿe’²second‘UUcolumnŽŽŸ§ÔŸø‘TðW.Ž¤‘TðW.Ž¡‘TðW.ŽŽŽŸø’Àúë.Ž¤’Àúë.Ž¡’Àúë.ŽŽŽŽ¡‘${bGo¸ãx‘UUÍ\mult@grightbox‘qÀ¸ ‘þUXŽŽŽŽ’Ÿe’²last‘UUcolumnŽŽŽŽŽŸ0þr‘ÌÍW‘ÿ*ªe–ÍrepGort“the“heighš¸ãt“of“the“ rst“column,‘è¸in“brac˜k˜etsŽ© ‘ÌÍthe–UUnatural“size“is“giv¸ãen.ŽŸ\Ò‘ÐZ±500Ž‘&]ÓÑ\ifnum\c@tracingmulticols>\@neŽ¤ ‘ÐZ±501Ž‘4Š•Ñ\message{^^JFirst‘¹–columnŽ¡‘ÐZ±502Ž‘GpíÑ=‘¹–\the\dimen@\spaceŽ¡‘ÐZ±503Ž‘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.Ž©\Ò‘ÐZ±504Ž‘&]ÓÑ\ifshr@nkingŽ¡‘ÐZ±505Ž‘/ÐÿÑ\global\setbox\mult@firstboxŽ¡‘ÐZ±506Ž‘PäÑ\copy\mult@nat@firstboxŽ¡‘ÐZ±507Ž‘&]ÓÑ\fiŽŸ\Ò‘ÌͲThen–öIwš¸ãe“giv˜e“information“abGout“the“last“column.Ÿü^ÿ±14ŽŽŽ¦‘ÐZ508Ž‘&]ÓÑ\ifnum\c@tracingmulticols>\@neŽ¡‘ÐZ±509Ž‘/ÐÿÑ\message{<>–¹–last“column“=Ž¡‘ÐZ±510Ž‘ZWEÑ\the\ht\mult@grightbox^^J}%ŽŸ\Ò‘ÌͲSome–V5tracing“coGde“that“wš¸ãe“don't“compile“in˜to“theŽ¤ ‘ÌÍproGduction–GØvš¸ãersion“unless“ask˜ed“for.‘mHIt“will“proGduceŽ¡‘ÌÍhš¸ãuge–7listings“of“the“bGo˜xes“in˜v˜olv˜ed“in“balancing“inŽ¡‘ÌÍthe–UUtranscript“ le.Ž¦‘ÐZ±511Ž‘w{ÉhÇdebugŽ‘ÒœÉiŽ¤ ‘ÐZ±512Ž‘/ÐÿÑ\ifnum\c@tracingmulticols>4Ž¡‘ÐZ±513Ž‘=ýÁÑ{\showoutputŽ¡‘ÐZ±514Ž‘B·WÑ\batchmodeŽ¡‘ÐZ±515Ž‘B·WÑ\process@cols\@neŽ¡‘ÐZ±516Ž‘GpíÑ{\showbox\count@}}%Ž¡‘ÐZ±517Ž‘B·WÑ\errorstopmodeŽ¡‘ÐZ±518Ž‘/ÐÿÑ\fiŽ¡‘ÐZ±519Ž‘w{ÉhÈ=ÇdebugŽ‘ÒœÉiŽ¡‘ÐZ±520Ž‘+iÑ\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@².Ž¦‘ÐZ±521Ž‘&]ÓÑ\ifdim\ht\mult@grightbox‘¹–>\dimen@ŽŸ\Ò‘ÌͲIf–ª¨the“heighš¸ãt“of“the“last“bGo˜x“is“toGo“large“w˜e“mark“thisŽ¡‘ÌÍtrial–UUas“unsuccessful.Ž¦‘ÐZ±522Ž‘w{ÉhÇbadnessŽ‘"šóÉiŽ¤ ‘ÐZ±523Ž‘/ÐÿÑ\too@badtrueŽ¡‘ÐZ±524Ž‘&]ÓÑ\elseŽŽŽŸff‰ff»2xŸ J=‘wŽŸý-:À14ŽŽŽ‘LÜ¿With–òxT‘þ•AŸ¸ãEŽ‘MX“všÃŽersion“3.141“it“is“no˜w“pš\@neŽ¡‘ü±529Ž‘0w^Ñ\message{Final‘¹–badness:Ž¡‘ü±530Ž‘Zý¤Ñ\the\badness}%Ž¡‘ü±531Ž‘'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.Ž¦‘ü±532Ž‘'2Ñ\ifnum\badness>\c@finalcolumnbadnessŽ¤ ‘ü±533Ž‘0w^Ñ\global\setbox\mult@grightboxŽ¡‘ü±534Ž‘50ôÑ\vbox‘¹–to\dimen@Ž¡‘ü±535Ž‘LÐâÑ{\unvbox\mult@grightbox\vfill}%Ž¡‘ü±536Ž‘50ôÑ\ifnum\c@tracingmulticols>\@neŽ¡‘ü±537Ž‘>¤ Ñ\message{–¹–setting“naturalŽ¡‘ü±538Ž‘LÐâÑ(>‘¹–\the\c@finalcolumnbadness)}%Ž¡‘ü±539Ž‘50ôÑ\fiŽ¡‘ü±540Ž‘'2Ñ\fiŽ¡‘ü±541Ž‘‘Ñ\fiŽŸr7‘ü±542Ž‘‘Ñ\ifdim\ht\mult@nat@firstbox<\dimen@Ž¡‘ü±543Ž‘'2Ñ\ifdim\ht\mult@nat@firstbox>\last@tryŽ¡‘ü±544Ž‘0w^Ñ\too@badtrueŽ¡‘ü±545Ž‘0w^Ñ\dimen@\ht\mult@nat@firstboxŽ¡‘ü±546Ž‘0w^Ñ\last@try\dimen@Ž¡‘ü±547Ž‘0w^Ñ\advance\dimen@-\p@Ž¡‘ü±548Ž‘'2Ñ\fiŽ¡‘ü±549Ž‘‘Ñ\fiŽŸr7²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ŽŽ’éÌÍŸñÇ„ÏñÇff þ:9‘ÌÍb•Geing›to“o˜large˜w•¸ãe˜try˜again˜with˜a˜sligh“tly˜largerŽ© ‘ÌÍv‘ÿqÇalue–UUfor“Í\dimen@².ŽŸ’‘ÐZ±550Ž‘&]ÓÑ\iftoo@badŽ¤ ‘ÐZ±551Ž‘w{ÉhÈ=ÇbadnessŽ‘"šóÉiŽ¡‘ÐZ±552Ž‘/ÐÿÑ\advance\dimen@\p@Ž¡‘ÐZ±553Ž‘&]ÓÑ\repeatŽ¤’‘ÌͲNo•¸ãw›w“e˜sa“v“e˜the˜actual˜heigh“t˜of˜bGo“x˜register˜3˜(i.e.Ž¦‘ÌÍthe–þ‘left“column)“in“the“¸hÏdimen‘Äc¸iŽ‘-‚²register“Í\dimen@Ž¦‘ÌͲsince–{ìotherwise“this“information“will“bGe“lost“whenŽ¦‘ÌÍprošGcessing–UUthe“co˜de“b˜elo¸ãw.Ÿü^ÿ±15ŽŽŽŸ’‘ÐZ554Ž‘!¤=Ñ\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ŽŽŽŸ’‘ÐZ555Ž‘!¤=Ñ\ifdim\dimen@>\@colroomŽ¤ ‘ÐZ±556Ž‘/ÐÿÑ\dimen@\@colroomŽ¡‘ÐZ±557Ž‘!¤=Ñ\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±558Ž‘!¤=Ñ\process@cols\mult@rightboxŽ¡‘ÐZ±559Ž‘4Š•Ñ{\@tempcnta\count@Ž¡‘ÐZ±560Ž‘9D+Ñ\advance\@tempcnta\@neŽ¡‘ÐZ±561Ž‘9D+Ñ\setbox\count@\vbox‘¹–to\dimen@Ž¡‘ÐZ±562Ž‘GpíÑ{%ŽŸ ‘ÐZ±563Ž‘L*ƒÑ\vskip‘¹–\z@Ž¡‘ÐZ±564Ž‘U¯Ñ\@plus-\multicolundershootŽ¡‘ÐZ±565Ž‘U¯Ñ\@minus-\multicolovershootŽ¡‘ÐZ±566Ž‘L*ƒÑ\unvbox\@tempcntaŽ¡‘ÐZ±567Ž‘L*ƒÑ\ifshr@nking\vfill\fi}}%Ž¡‘ÐZ±568Ž‘w{Ñ}ŽŽŽŸäÅÒ4.5Ž‘ÀThe–€bš`o x“allo˜cationsŽŸyŸ›êߟ ŽŽŽ¤ ¡ŽŽŽŽ²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ŽŸ!‘ü±569Ž‘ ª®Ñ\newbox\mult@rightboxŽŽ’éÌÍŸ„p!ffŸ™êß‘ÐZ±570Ž‘w{Ñ\newbox\mult@grightboxŽ¤ ‘ÐZ±571Ž‘w{Ñ\newbox\mult@gfirstboxŽ¡‘ÐZ±572Ž‘w{Ñ\newbox\mult@firstboxŽ¡‘ÐZ±573Ž‘w{Ñ\newbox\@tempa\newbox\@tempaŽ¡‘ÐZ±574Ž‘w{Ñ\newbox\@tempa\newbox\@tempaŽ¡‘Ð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ŽŽŽŸ·°‰ff»2xŸ 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“bŸ'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·‘ü±583Ž‘ ª®Ñ\@ifundefined{emergencystretch}ŽŸ ‘ü±584Ž‘"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.Ž¦‘ü±585Ž‘ ª®Ñ\def\setemergencystretch#1#2{%Ž¤ ‘ü±586Ž‘×pÑ\emergencystretch‘¹–4ptŽ¡‘ü±587Ž‘×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.Ž¦‘ü±588Ž‘ ª®Ñ\def\set@floatcmds{%Ž¡‘ü±589Ž‘dDÑ\let\@dblfloat\@dbfltŽ¡‘ü±590Ž‘dDÑ\def\end@dblfloat{\parŽ¡‘ü±591Ž‘×pÑ\vskip\z@Ž¡‘ü±592Ž‘×pÑ\egroupŽŽ’éÌÍŸ„÷ff ÿ‘ÐZ±593Ž‘!¤=Ñ\color@endboxŽ¤ ‘ÐZ±594Ž‘!¤=Ñ\@largefloatcheckŽ¡‘ÐZ±595Ž‘!¤=Ñ\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Ž‘ãxXs–output“routine“and“I‘jdon'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±596Ž‘!¤=Ñ\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-Ž¡‘ÌÍtierly–ã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±597Ž‘+iÑ\@cons\@deferlist\@currboxŽ¤ ‘ÐZ±598Ž‘!¤=Ñ\fiŽ¡‘ÐZ±599Ž‘!¤=Ñ\ifnum\@floatpenalty=-\@MiiŽ¡‘ÐZ±600Ž‘+iÑ\@EsphackŽ¡‘ÐZ±601Ž‘!¤=Ñ\fi}}ŽŽŽŸÞÒ5.1Ž‘ÀMain taining–€the“mark“registersŽ áe þûÕò‘ ²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.Ž¡¡ŽŽŽŽ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"Ž¡mark–÷Ümš¸ãust“con˜tain“t˜w˜o“parts“represen˜ting“left“andŽ¡righ¸ãt–UUmark“information.ŽŸ ʃ‘ü±602Ž‘ ª®Ñ\def\kept@topmark{{}{}}Ž¤ ‘ü±603Ž‘ ª®Ñ\let\kept@firstmark\@emptyŽ¡‘ü±604Ž‘ ª®Ñ\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Ž¡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ŽŽ’éÌÍŸ„*ff þùÕò‘ÌÍw•¸ãould›FOnev“ertheless˜add˜suc“h˜a˜mark˜it˜w“ould˜bGe˜re-Ž© ‘ÌÍgarded–UUas“a“v‘ÿqÇalid“Í\firstmark“²later“on.ŽŸÕ6‘ÐZ±605Ž‘w{Ñ\def\return@nonemptymark#1#2{%Ž¤ ‘ÐZ±606Ž‘ê§Ñ\ifx#2\@emptyŽ¡‘ÐZ±607Ž‘ê§Ñ\elseŽŸÕ6‘ÌͲ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.ŽŸÕ6‘ÐZ±608Ž‘w{ÉhÇma¾9rktraceŽ‘+²ÉiŽ¡‘ÐZ±609Ž‘&]ÓÑ\mult@info\tw@Ž¡‘ÐZ±610Ž‘/ÐÿÑ{Returned–¹–#1“mark:\MessageBreakŽ¡‘ÐZ±611Ž‘4Š•Ñ\meaning#2}%Ž¡‘ÐZ±612Ž‘w{Ñ%‘Y„\nobreakŽ¡‘ÐZ±613Ž‘w{Ñ%‘æX\fiŽ¡‘ÐZ±614Ž‘w{ÉhÈ=Çma¾9rktraceŽ‘+²ÉiŽŸÕ6‘ÌͲ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–“anš¸ãy“further“(Some“expansion“ha˜v˜e“bGeenŽ¦‘ÌÍdone–Äalready“during“the“execution“of“Í\markright“²orŽ¦‘ÌÍÍ\markboth².‘dvW‘ÿ*ªe–¦:therefore“use“the“usual“mec¸ãhanismŽ¦‘ÌÍof–UUa“toks“register“to“prohibit“expansion.Ÿü^ÿ±17ŽŽŽŸÕ6‘ÐZ615Ž‘&]ÓÑ\toks@\expandafter{#2}%ŽŽŽŸý‰ff»2xŸ J=‘wŽŸý-:À17ŽŽŽ‘LÜ¿Due–ç4to“the“currenšÃŽt“de nition“of“Ð\markright“¿usw.“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ŽŽŸ’äÿÿ²20ŽŽŒ‹©6 ¨ ýF œ ý‚‘ü±616Ž‘‘Ñ\mark{\the\toks@}%ŽŸÙš²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).Ž© Ùš‘ü±617Ž‘‘Ñ\nobreakŽŸ ‘ü±618Ž‘ÚÑ\fi}ŽŸŒÍ²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².Ž¦‘ü±619Ž‘ ª®Ñ\def\get@keptmarks#1{%ŽŸÙš²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.Ž¦‘ü±620Ž‘ ª®ÉhÇdebugŽ‘ÒœÉiŽ¤ ‘ü±621Ž‘'2Ñ\typeout{Mark–¹–box“#1“before:Ž¡‘ü±622Ž‘QŠxÑht–¹–\the\ht#1,“dp“\the\dp#1}%Ž¡‘ü±623Ž‘ ª®ÉhÈ=ÇdebugŽ‘ÒœÉiŽŸÙš²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.Ž¦‘ü±624Ž‘ÚÑ\begingroupŽ¤ ‘ü±625Ž‘×pÑ\vbadness\@MŽ¡‘ü±626Ž‘×pÑ\setbox#1\copy#1%ŽŸÙš²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‘ÿ*ª.Ž¦‘ü±627Ž‘×pÑ\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.Ž¦‘ü±628Ž‘×pÑ\set@keptmarksŽŸ ‘ü±629Ž‘dDÑ\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.Ž¦‘ü±630Ž‘ ª®ÉhÇdebugŽ‘ÒœÉiŽ¤ ‘ü±631Ž‘‘Ñ\typeout{Mark–¹–box“#1“\space“after:Ž¡‘ü±632Ž‘HLÑht–¹–\the\ht#1,“dp“\the\dp#1}%Ž¡‘ü±633Ž‘ ª®ÉhÈ=ÇdebugŽ‘ÒœÉiŽ¡‘ü±634Ž‘ ª®Ñ}ŽŸŒÍ²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².Ž¦‘ü±635Ž‘ ª®Ñ\def\set@keptmarks{%ŽŽ’éÌÍŸ„Šff ý€‘ÌͲ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±636Ž‘!¤=Ñ\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±637Ž‘+iÑ\expandafter\gdef\expandafterŽ¤ ‘ÐZ±638Ž‘9D+Ñ\kept@firstmarkŽ¡‘ÐZ±639Ž‘9D+Ñ\expandafter{\splitfirstmark}%ŽŸ‘ÌͲWhen–¾ødebugging“wš¸ãe“sho˜w“the“assignmen˜t“but“onlyŽŸ ‘ÌÍwhen–UUsomething“actually“happGened.Ž¦‘ÐZ±640Ž‘w{ÉhÇma¾9rktraceŽ‘+²ÉiŽ¡‘ÐZ±641Ž‘+iÑ\ifx\kept@firstmark\@empty\elseŽ¡‘ÐZ±642Ž‘4Š•Ñ\mult@info\tw@Ž¡‘ÐZ±643Ž‘=ýÁÑ{Set–¹–kept“first“mark:\MessageBreakŽ¡‘ÐZ±644Ž‘B·WÑ\meaning\kept@firstmark%Ž¡‘ÐZ±645Ž‘B·WÑ\@gobbletwo}%Ž¡‘ÐZ±646Ž‘+iÑ\fiŽ¡‘ÐZ±647Ž‘w{ÉhÈ=Çma¾9rktraceŽ‘+²ÉiŽ¡‘ÐZ±648Ž‘!¤=Ñ\fiŽŸ‘ÌͲ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.Ž¦‘ÐZ±649Ž‘!¤=Ñ\expandafter\def\expandafter\@tempaŽ¤ ‘ÐZ±650Ž‘/ÐÿÑ\expandafter{\splitbotmark}%Ž¡‘ÐZ±651Ž‘!¤=Ñ\ifx\@tempa\@empty\elseŽ¡‘ÐZ±652Ž‘/ÐÿÑ\global\let\kept@botmark\@tempaŽ¡‘ÐZ±653Ž‘w{ÉhÇma¾9rktraceŽ‘+²ÉiŽ¡‘ÐZ±654Ž‘/ÐÿÑ\mult@info\tw@Ž¡‘ÐZ±655Ž‘9D+Ñ{Set–¹–kept“bot“mark:\MessageBreakŽ¡‘ÐZ±656Ž‘=ýÁÑ\meaning\kept@botmark%Ž¡‘ÐZ±657Ž‘=ýÁÑ\@gobbletwo}%Ž¡‘ÐZ±658Ž‘w{ÉhÈ=Çma¾9rktraceŽ‘+²ÉiŽ¡‘ÐZ±659Ž‘!¤=Ñ\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².Ž¦‘ÐZ±660Ž‘w{Ñ\def\prep@keptmarks{%Ž¤ ‘ÐZ±661Ž‘!¤=Ñ\if@boxedmulticols‘¹–\elseŽ¡‘ÐZ±662Ž‘+iÑ\get@keptmarks\partial@pageŽ¡‘ÐZ±663Ž‘!¤=Ñ\fi}ŽŽŽŽŸ’äÿÿ²21ŽŽŒ‹½Ã ¨ ýF œ þÆ þ¼Ÿ‘ü±664Ž‘ ª®Ñ\def\remove@discardable@items{%Ž¤ ‘ü±665Ž‘ ª®ÉhÇdebugŽ‘ÒœÉiŽ¡‘ü±666Ž‘×pÑ\edef\@tempa{s=\the\lastskip,Ž¡‘ü±667Ž‘VDÑp=\the\lastpenalty,Ž¡‘ü±668Ž‘VDÑk=\the\lastkern}%Ž¡‘ü±669Ž‘×pÑ\typeout\@tempaŽ¡‘ü±670Ž‘ ª®ÉhÈ=ÇdebugŽ‘ÒœÉiŽ¡‘ü±671Ž‘0w^Ñ\unskip\unpenalty\unkernŽ¡‘ü±672Ž‘ ª®ÉhÇdebugŽ‘ÒœÉiŽ¡‘ü±673Ž‘×pÑ\edef\@tempa{s=\the\lastskip,Ž¡‘ü±674Ž‘VDÑp=\the\lastpenalty,Ž¡‘ü±675Ž‘VDÑk=\the\lastkern}%Ž¡‘ü±676Ž‘×pÑ\typeout\@tempaŽ¡‘ü±677Ž‘ ª®ÉhÈ=ÇdebugŽ‘ÒœÉiŽ¡‘ü±678Ž‘0w^Ñ\unskip\unpenalty\unkernŽ¡‘ü±679Ž‘ ª®ÉhÇdebugŽ‘ÒœÉiŽ¡‘ü±680Ž‘×pÑ\edef\@tempa{s=\the\lastskip,Ž¡‘ü±681Ž‘VDÑp=\the\lastpenalty,Ž¡‘ü±682Ž‘VDÑk=\the\lastkern}%Ž¡‘ü±683Ž‘×pÑ\typeout\@tempaŽ¡‘ü±684Ž‘ ª®ÉhÈ=ÇdebugŽ‘ÒœÉiŽ¡‘ü±685Ž‘0w^Ñ\unskip\unpenalty\unkernŽ¡‘ü±686Ž‘ ª®ÉhÇdebugŽ‘ÒœÉiŽ¡‘ü±687Ž‘×pÑ\edef\@tempa{s=\the\lastskip,Ž¡‘ü±688Ž‘VDÑp=\the\lastpenalty,Ž¡‘ü±689Ž‘VDÑk=\the\lastkern}%Ž¡‘ü±690Ž‘×pÑ\typeout\@tempaŽ¡‘ü±691Ž‘ ª®ÉhÈ=ÇdebugŽ‘ÒœÉiŽ¡‘ü±692Ž‘0w^Ñ\unskip\unpenalty\unkernŽŽ’éÌÍŸ„Pff þº‘ÐZ±693Ž‘w{Ñ}ŽŸ#‘ÐZ±694Ž‘w{ÉhÇbadnessŽ‘"šóÉiŽ¤ ‘ÐZ±695Ž‘w{Ñ\newif\iftoo@badŽŸ:‰©‘ÐZ±696Ž‘w{Ñ\newcount\c@columnbadnessŽ¡‘ÐZ±697Ž‘w{Ñ\c@columnbadness=10000Ž¡‘ÐZ±698Ž‘w{Ñ\newcount\c@finalcolumnbadnessŽ¡‘ÐZ±699Ž‘w{Ñ\c@finalcolumnbadness=9999Ž¡‘ÐZ±700ŽŽ¡‘ÐZ701Ž‘w{Ñ\newdimen\last@tryŽ¡‘ÐZ±702ŽŽ¡‘ÐZ703Ž‘w{Ñ\newdimen\multicolovershootŽ¡‘ÐZ±704Ž‘w{Ñ\multicolovershoot=2ptŽ¡‘ÐZ±705Ž‘w{Ñ\newdimen\multicolundershootŽ¡‘ÐZ±706Ž‘w{Ñ\multicolundershoot=2ptŽ¡‘ÐZ±707Ž‘w{Ñ\newbox\mult@nat@firstboxŽ¡‘ÐZ±708Ž‘w{ÉhÈ=ÇbadnessŽ‘"šóÉiŽŸ.Ô‘ÌͲA–UUhelpšGer“for“pro˜ducing“info“messagesŽ¦‘ÐZ±709Ž‘w{Ñ\def\mult@info#1#2{%Ž¡‘ÐZ±710Ž‘ê§Ñ\ifnum\c@tracingmulticols>#1%Ž¡‘ÐZ±711Ž‘!¤=Ñ\GenericWarningŽ¡‘ÐZ±712Ž‘4Š•Ñ{(multicol)\@spaces\@spaces}%Ž¡‘ÐZ±713Ž‘4Š•Ñ{Package–¹–multicol:“#2}%Ž¡‘ÐZ±714Ž‘ê§Ñ\fiŽ¡‘ÐZ±715Ž‘w{Ñ}Ž¡‘ÐZ±716ŽŽ¡‘ÐZ717Ž‘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.Ž ô¶º ÿ ª¦‘/÷MÆBŽ¤ M5Ñ\balance@columns‘¦Å426Ž‘¦Ÿ™”‰fe ßúŽŽ¡Ñ\balance@columns@out‘8Ÿ¿ÿ„ÿÿŽ© ‘‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž‘ ¬È415Ž‘ ¬ÈŸ™”‰fe ßúŽŽŸ矑/ç{ÆCŽ¡Ñ\c@collectmore‘B‘}„Å.Ž‘ŒÎ‘}„.Ž‘ ìÂ236Ž‘ 쟙”‰fe ßúŽŽ¡Ñ\c@columnbadness‘¦Å696Ž‘¦Ÿ™”‰fe ßúŽŽ¡Ñ\c@finalcolumnbadness‘8Ÿ¿ÿ„ÿÿŽ¦‘‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž‘ ¬È696Ž‘ ¬ÈŸ™”‰fe ßúŽŽ¡Ñ\c@unbalance‘YÒ‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž“‘}„.Ž‘ ìÂ237Ž‘ 쟙”‰fe ßúŽŽ¡Ñ\col@number‘†š‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž‘ ìÂ236Ž‘ 쟙”‰fe ßúŽŽ¡Ñ\columnseprule‘B‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž“‘}„.Ž‘Ãw×2Ž©矑/«‘ÆDŽ¡Ñ\doublecol@number‘ MÅ236Ž‘ MŸ™”‰fe ßúŽŽ¦‘0ApÆEŽ¡Ñ\emergencystretch‘ MÅ583Ž‘ MŸ™”‰fe ßúŽŽ¡Ñ\endmulticols‘- ‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž‘ ìÂ192Ž‘ 쟙”‰fe ßúŽŽ¡Ñ\enough@room‘YÒ‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž“‘}„.Ž‘ ìÂ100Ž‘ 쟙”‰fe ßúŽŽŽ‘pLÍŸLÏ„ì¢)ff ÿ]ב94ÆFŽ¤ ‘ÌÍÑ\flushcolumns‘- ‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž‘ ìÂ410Ž‘ 쟙”‰fe ßúŽŽ¡‘ÌÍÑifshr@nking‘†š‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž‘ ìÂ410Ž‘ 쟙”‰fe ßúŽŽ©DE‘8]‡ÆGŽ¡‘ÌÍÑ\get@keptmarks‘B‘}„Å.Ž‘ŒÎ‘}„.Ž‘ ìÂ619Ž‘ 쟙”‰fe ßúŽŽ¦‘:Š¬ÆIŽ¡‘ÌÍÑ\if@boxedmulticols‘ 3xÅ97Ž‘ 3xŸ™”‰fe ?üŽŽ¡‘ÌÍÑ\init@mult@footins‘“zÅ178Ž‘“zŸ™”‰fe ßúŽŽ¦‘8bSÆKŽ¡‘ÌÍÑ\kept@botmark‘- ‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž‘ ìÂ602Ž‘ 쟙”‰fe ßúŽŽ¡‘ÌÍÑ\kept@firstmark‘Óz‘}„Å.Ž‘ ìÂ602Ž‘ 쟙”‰fe ßúŽŽ¡‘ÌÍÑ\kept@topmark‘- ‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž‘ ìÂ602Ž‘ 쟙”‰fe ßúŽŽ¦‘9YøÆLŽ¡‘ÌÍÑ\leave@mult@footins‘8Ÿ¿ÿ„ÿÿŽ¡‘&ÌÍ‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž‘ ¬È384Ž‘ ¬ÈŸ™”‰fe ßúŽŽ¦‘7€ºÆMŽ¡‘ÌÍÑ\mult@@cols‘†š‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž‘ ÿò75Ž‘ ÿòŸ™”‰fe ?üŽŽ¡‘ÌÍÑ\mult@cols‘@0‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž‘ ÿò72Ž‘ ÿòŸ™”‰fe ?üŽŽŽ–yš„ì¢)ff ÿ]בÌÍÑ\mult@firstbox‘B‘}„Å.Ž‘ŒÎ‘}„.Ž‘ ìÂ569Ž‘ 쟙”‰fe ßúŽŽ¤ ‘ÌÍÑ\mult@gfirstbox‘Óz‘}„Å.Ž‘ ìÂ569Ž‘ 쟙”‰fe ßúŽŽ¡‘ÌÍÑ\mult@grightbox‘Óz‘}„Å.Ž‘ ìÂ569Ž‘ 쟙”‰fe ßúŽŽ¡‘ÌÍÑ\mult@info‘@0‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž‘ ìÂ709Ž‘ 쟙”‰fe ßúŽŽ¡‘ÌÍÑ\mult@rightbox‘B‘}„Å.Ž‘ŒÎ‘}„.Ž‘ ìÂ569Ž‘ 쟙”‰fe ßúŽŽ¡‘ÌÍÑ\multi@column@out‘ MÅ294Ž‘ MŸ™”‰fe ßúŽŽ¡‘ÌÍÑ\multicol@leftmargin‘8Ÿ„@Ž¡‘&ÌÍ‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž‘ ¬È191Ž‘ ¬ÈŸ™”‰fe ßúŽŽ¡‘ÌÍÑ\multicolbaselineskip‘8Ÿ„@Ž¡‘&ÌÍ‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž‘ fb×2Å,‘T236Ž‘TŸ™”‰fe ßúŽŽ¡‘ÌÍÑ\multicolpretolerance‘8Ÿ„@Ž¡‘&ÌÍ‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž‘ fb×2Å,‘T236Ž‘TŸ™”‰fe ßúŽŽ¡‘ÌÍÑ\multicols‘@0‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž‘ ÿò56Ž‘ ÿòŸ™”‰fe ?üŽŽ¡‘ÌÍÑ\multicolsep‘YÒ‘}„Å.Ž‘ŒÎ‘}„.Ž‘ ¦\×2Å,‘T236Ž‘TŸ™”‰fe ßúŽŽ¡‘ÌÍÑ\multicoltoleranceŽ¡‘&ÌÍ‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž‘ fb×2Å,‘T236Ž‘TŸ™”‰fe ßúŽŽŸ‘8éøÆPŽ¡‘ÌÍÑ\page@free‘@0‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž‘ ìÂ236Ž‘ 쟙”‰fe ßúŽŽ¡‘ÌÍÑ\page@sofar‘†š‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž‘ ìÂ269Ž‘ 쟙”‰fe ßúŽŽ¡‘ÌÍÑ\partial@page‘- ‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž‘ ìÂ236Ž‘ 쟙”‰fe ßúŽŽ¡‘ÌÍÑ\postmulticols‘ Ð×2Å,‘T236Ž‘TŸ™”‰fe ßúŽŽŽ“„ì¢)ff ÿ]בÌÍÑ\premulticols‘- ‘}„Å.Ž‘ ¦\×2Å,‘T236Ž‘TŸ™”‰fe ßúŽŽ¤ ‘ÌÍÑ\prep@keptmarks‘Óz‘}„Å.Ž‘ ìÂ660Ž‘ 쟙”‰fe ßúŽŽ¡‘ÌÍÑ\prepare@multicols‘“zÅ117Ž‘“zŸ™”‰fe ßúŽŽ¡‘ÌÍÑ\process@cols‘- ‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž‘ ìÂ260Ž‘ 쟙”‰fe ßúŽŽ¡‘ÌÍÑ\process@deferreds‘“zÅ400Ž‘“zŸ™”‰fe ßúŽŽ©*­‘8MÆRŽ¡‘ÌÍÑ\raggedcolumns‘B‘}„Å.Ž‘ŒÎ‘}„.Ž‘ ìÂ410Ž‘ 쟙”‰fe ßúŽŽ¡‘ÌÍÑ\reinsert@footnotes‘8Ÿ¿ÿ„ÿÿŽ¡‘&ÌÍ‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž‘ ¬È292Ž‘ ¬ÈŸ™”‰fe ßúŽŽ¡‘ÌÍÑ\remove@discardable@items‘8Ÿ¿ÿ„ÿÿŽ¡‘&ÌÍ‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž‘ ¬È664Ž‘ ¬ÈŸ™”‰fe ßúŽŽ¡‘ÌÍÑ\return@nonemptymark‘8Ÿ„@Ž¡‘&ÌÍ‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž‘ ¬È605Ž‘ ¬ÈŸ™”‰fe ßúŽŽ¦‘9—{ÆSŽ¡‘ÌÍÑ\set@floatcmds‘B‘}„Å.Ž‘ŒÎ‘}„.Ž‘ ìÂ588Ž‘ 쟙”‰fe ßúŽŽ¡‘ÌÍÑ\set@keptmarks‘B‘}„Å.Ž‘ŒÎ‘}„.Ž‘ ìÂ635Ž‘ 쟙”‰fe ßúŽŽ¡‘ÌÍÑ\set@mult@vsize‘Óz‘}„Å.Ž‘ ìÂ182Ž‘ 쟙”‰fe ßúŽŽ¡‘ÌÍÑ\setemergencystretch‘8Ÿ„@Ž¡‘&ÌÍ‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž‘ ¬È583Ž‘ ¬ÈŸ™”‰fe ßúŽŽ¡‘ÌÍÑ\speci@ls‘lø‘}„Å.Ž–ŒÎ‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž“‘}„.Ž‘ ìÂ388Ž‘ 쟙”‰fe ßúŽŽŽŽŽŸ’äÿÿ²22ŽŽŒøÓ ƒ’À;è¨Ô ó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ùð"ßßßßßß