÷ƒ’À;è TeX output 2001.10.31:1006‹ÿÿÿÿ ¨ ýF œ ý«þÀ‘QOóUªsÉG®G®ecrm1728ºUn›hçen•Œyvironnemen“t˜p•s†our˜comp“oser˜du˜texteŽ©’• tsur–hçplusieurs“colonnes.Ÿùº¯ó!",š cmsy10ÀŽŽ“Ÿùº¯yŽŽ‘ ÑΟùº¯zŽŽŽŸÿ’µVóÓ·å ecrm1200ÁF‘ÿerank‘êló †[ eccc1200ÈMittelba¨èchŽ‘K"hŸû¥2ó¾KÈ cmsy8ÆxŽŽŽŽŸ’Ž™ÐÁm€él–êl:‘ÔØcf.“au“d€ébut“du“c¬whier“sourceŽŽŽŽŽŸ%vV’£„òImprim€é–êlle“31“oSˆctobre“2001ŽŸ#Ï€’ס”ó!‹–uÌ ecbx0900ÌR€ésum€éŽŸ S<‘&ß$ó Ù.œŒ ecrm0900ËCe–vdoAÃcumenš¾moGdications“princi-Ž¡pales–ÚÆ:“ó)Œ6 ecss1000Ômulticols“¹prendra“main-Ž¡tenan¸èt–en“compte“jusqu'€à“10“co-Ž¡lonnes–aêet“deux“pGossibilit€és“sup-Ž¡pl€émenš¸ètaires–l”de“r€églage“on˜t“€ét€éŽ¡a‘Ž0jout€ées– cmmi10µ"ŽŽ‘.n¹.ŽŽ’¡™š„^&úffŸ«Ù‘ÌÎJeŸü^ÿÕ1ŽŽ‘m%¹v•¸èous›ðópr€ésen“te˜mes˜excusesŽ¤ ‘ÌÍpšGour–Jïle“niv¸èeau“de“do˜cumen¸ètationŽ¡‘ÌÍdu–u§cošGde,“mais“mes“resp˜onsabilit€ésŽ¡‘ÌÍen•¸èv“ers‘­åLŸýï‘üf ÕAŽŽ‘Íz¹T‘þUYŸ&úEŽ‘ã9X‘ä2Ÿÿµ"ŽŽ‘,­k¹m'o•Gccup“en¸èt‘­åtropŽ¡‘ÌÍpšGour–\}faire“du“b˜on“tra¸èv‘ÿqÐail.“J'es-Ž¡‘ÌÍpG€ère–”Mque“cela“sera“corrig€é“dans“unŽ¡‘ÌÍproGc•¸èhe‘U a“v“enir.ŽŽŽŸ!F(Ó1Ž‘ÁInctropœductionŽ ”Ž}Ÿqƒ‘ ¹P¸èasser–ód'une“€à“deux“colonnesŽ¤ et›Øïin•¸èv“ersemen“t˜est˜pGossible˜enŽ¡LŸýï‘üf ÕAŽŽ‘Íz¹T‘þUYŸ&úEŽ‘ã9X,–åÒmais“c¸èhaque“utilisation“deŽ¡ó+qLË ectt1000Ö\twocolumn–(‹¹ou“de“Ö\onecolumnŽ¡¹d€ébute–'#une“nouv¸èelle“page.“DeŽ¡plus,–Víla“toute“derni€ère“page“com-Ž¡pGos€ée– jen“deux“colonnes“n'estŽ¡pas– Y€équilibr€ée“et“cela“donneŽ¡souv•¸èen“t–À une“colonne“de“droiteŽ¡vide–ÿùou“presque“vide.“QuandŽ¡j'ai–,%commenc€é“€à“€écrire“des“ma-ŽŽ’˜ÌÍŸñ¨„Š€%ff ÿÛ‘ÌÍcros–MpšGour“Ôdo˜c.st¸èy“¹(cf.““TheŽ¤ ‘ÌÍÖdoc¹Option–Þi‘ÿ*¸,“ó,”í^Ó ecsl1000×TUGbGoat‘¹v¸èolumeŽ¡‘ÌÍ10–#}#2,“pp.“245273),“je“pGen-Ž¡‘ÌÍsais–néqu'il“serait“mieux“de“pla-Ž¡‘ÌÍcer–V l'index“sur“la“m€ême“page“queŽ¡‘ÌÍla–h·bibliographie.“L'€équilibrage“deŽ¡‘ÌÍcette–/öderni€ère“page“n'est“pasŽ¡‘ÌÍseulemen¸èt–Mune“simple“questionŽ¡‘ÌÍd'esth€étique,–óÈcela“gagne“aussi“deŽ¡‘ÌÍla–­‰place,“€à“condition,“bien“s€ûr,Ž¡‘ÌÍqu'il–aÚsoit“pGossible“de“commen-ŽŽ’¡™š„Š€%ff ÿÛ‘ÌÍcer–Pýla“section“suiv‘ÿqÐan¸ète“sur“laŽ¤ ‘ÌÍm€ême–k&page.“Comparativ•¸èemen“t,Ž¡‘ÌÍr€é€écrire›0l'en•¸èvironnemen“t˜d'indexŽ¡‘ÌÍest–HHfacile,“mais“le“but“€étan¸èt“deŽ¡‘ÌÍconstruire–ãñun“en•¸èvironnemen“t‘ãñquiŽ¡‘ÌÍprenne–fen“compte“les“notes“de“basŽ¡‘ÌÍde–S¢page,“les“ottan¸èts...,“c'€étaitŽ¡‘ÌÍune–ô±t€âc¸èhe“plus“ardue.“Cela“m'aŽ¡‘ÌÍpris–`ôun“wš¸èeek-end“en˜tier‘ª“Ÿü^ÿÕ2ŽŽ‘ ‡¹¹pGourŽ¡‘ÌÍr€éunir– %les“quelques“lignes“de“coGdeŽ¡‘ÌÍci-dessous–„¦et“il“y“a“encore“deŽŽŽŸff‰ff9™`Ÿ @‘ ö…Ÿý-:óq¡% cmsy6ÇŽŽ‘KÙó¦÷²"ecrm0800ÉV‘ÿJ¶ersion–Õ(:“v1.5w,“derni€ère“r€évision“:“1999/10/21Ž¤ × ‘ ZŸý-:ÇyŽŽ‘KÙÉNote–F8:“Ce“pacšÃ’k‡$age“est“distribu€é“sous“des“conditions“qui“inuen˜t“sur“son“utilisation“dans“un“con˜texte“commercial.“Cf.“lesŽŸ €d€étails–Õ(au“d€ébut“du“cÃ’hier“source.Ž¡‘ ZŸý-:ÇzŽŽ‘KÙÉTitre–Õ(original“:“An“en•Ã’vironmen“t–Õ(for“mÃ’ulticolumn“outputŽ¡‘ ZŸý-:ÇxŽŽ‘KÙÉT›ÿJ¶raduction–Õ(fran€çaise“par“Jean-Pierre“óXÓê<eccc0800ÊDrÀucber‘ÿ@ tŽ‘-‘Éet“F˜ran€çoise“ÊMarreŽ‘¶BÉ-ÊFÀournierŽ‘%ìÉ,“du“06/03/2000.Ž¤ …½‘ !iŸý-:Ñ1ŽŽŽ‘KÙÉF‘ÿJ¶rank‘Õ(ÊMittelbaÀchŽŽ¡‘ !iŸý-:Ñ2ŽŽŽ‘KÙÉJ'ašÃ’v‡$ais–|˜commenc€é“a˜v˜ec“l'algorithme“pr€ésen˜t€é“page“417“du“T‘þ•YŸ¸ÈEŽ‘LàXb•¡faibles,“mais“si“cela“arriv¸èe,Ž¡‘ÌÍv•¸èous›t­pGouv“ez˜aider˜T‘þUYŸ&úEŽ‘ã9X˜en˜pla-Ž¡‘ÌÍ€çan¸èt–‘une“commande“Ö\pagebreakŽ¡‘Ì͹dans–J!le“doGcumen¸èt“nal.“Un“autreŽ¡‘ÌÍmo•¸èy“en–EjpGour“inuencer“le“com-Ž¡‘ÌÍpGortemen¸èt–ã¥de“T‘þUYŸ&úEŽ‘ã9X“€à“ce“sujet“estŽ¡‘ÌÍoert–×8par“la“v‘ÿqÐariable“compteurŽ¡‘ÌÍ–ô‘Ôcollectmoš¸ère“¹‘ÿ*¸.“Si“v˜ous“utili-Ž¡‘ÌÍsez–Åla“d€éclaration“Ö\setcounterŽ¡‘Ì͹pGour– útforcer“ce“compteur“€àŽ¡‘ÌÍun‘dæ¸hØnombr‘ÿ}/e‘ÀO¸iŽ‘/»d¹,–dæT‘þUYŸ&úEŽ‘ã9X“consid€èreraŽ¡‘Ì͸hØnombr‘ÿ}/e‘ÀO¸iŽ‘6„»¹lignes–apen“plus“(ou“enŽ¡‘ÌÍmoins)››-a•¸èv‘ÿqÐan“t˜de˜prendre˜sa˜d€éci-Ž¡‘ÌÍsion–1»nale.“La“v‘ÿqÐaleur“¸²1“¹pGourraŽ¡‘ÌÍdonc–™3r€ésoudre“tous“v¸èos“probl€èmesŽ¡‘ÌÍau–ÇAprix“de“colonnes“un“pGeu“moinsŽ¡‘ÌÍoptimales.Ž¦‘ÌÎDans–×la“seconde“€étapGe“(€équili-Ž¡‘ÌÍbrage–Qëdes“colonnes)“nous“a•¸èv“onsŽ¡‘ÌÍd'autres–Ágadgets.“D'abGord,“v¸èousŽ¡‘ÌÍpGouv¸èez– ÇRdire“Ö\raggedcolumnsŽ¡‘Ì͹si– 3Dvš¸èous“n'a˜v˜ez“pas“bGesoinŽ¡‘ÌÍque–Êles“lignes“du“bas“des“co-Ž¡‘ÌÍlonnes–öÇsoien¸èt“align€ées.“L'optionŽ¡‘ÌÍÖ\flushcolumns–Ã˹est“prise“par“d€é-Ž¡‘ÌÍfaut,–SØdonc“T‘þUYŸ&úEŽ‘ã9X“essaiera“d'alignerŽ¡‘ÌÍles–lignes“de“base“du“haut“et“duŽ¡‘ÌÍbas–U de“toutes“les“colonnes.Ž¦‘ÌÎDe–^4plus,“vš¸èous“pGouv˜ez“utiliserŽ¡‘ÌÍun–QMautre“compteur,““Ôunbalance“¹‘ÿ*¸,Ž¡‘ÌÍen–ØAlui“donnan¸èt“une“v‘ÿqÐaleur“pGosi-Ž¡‘ÌÍtiv¸èe‘²ð¸hØnombr‘ÿ}/e‘ÀO¸iŽ‘+ n¹.–²ðCeci“rendra“toutesŽ¡‘ÌÍles–bicolonnes,“sauf“celle“la“plus“€àŽ¡‘ÌÍdroite,–ÍŠplus“longues“de“¸hØnombr‘ÿ}/e‘ÀO¸iŽŽ¡‘Ì͹lignes–Õqqu'elles“ne“l'auraien¸èt“€ét€éŽ¡‘ÌÍnormalemen¸èt.–Ë•Les““lignes““dansŽ¡‘ÌÍce–bconš¸ètexte“son˜t“des“lignes“deŽŽ’¡™š„]¿Éff ý¬@7‘ÌÍtexte–4dnormal“(c'est-€à-dire“€écar-Ž¤ ‘ÌÍt€ées–Êöde“Ö\baselineskip¹)‘ª“;“ainsi,“siŽ¡‘ÌÍvš¸èotre–“¾colonne“con˜tien˜t“des“hors-Ž¡‘ÌÍtexte,–úÄpar“exemple,“v¸èous“aurezŽ¡‘ÌÍbGesoin–t¬d'un“¸hØnombr‘ÿ}/e‘ÀO¸iŽ‘/?Ö¹plus“grandŽ¡‘ÌÍpGour–3Ôd€écaler“quelque“c¸èhose“d'uneŽ¡‘ÌÍcolonne–U v¸èers“une“autre.Ž© sˆ‘ÌÎCon•¸ètrairemen“t– *€à““Ôcollect-Ž¡‘ÌÍmo¸ère–~ù¹‘ÿ*¸,“le“compteur““Ôunbalance“¹Ž¡‘ÌÍest–ûremis“€à“z€éro“€à“la“n“de“l'en-Ž¡‘ÌÍvironnemen¸èt–êÅan“qu'il“ne“s'ap-Ž¡‘ÌÍplique–g/qu'€à“un“seul“en¸èvironne-Ž¡‘ÌÍmen¸èt‘U Ômulticols¹.Ž¦‘ÌÎLes–Ž,deux“m€éthošGdes“p˜euv•¸èen“tŽ¡‘ÌÍ€être–Ùcom¸èbin€ées“mais“je“conseilleŽ¡‘ÌÍde–õn'utiliser“ces“pGossibilit€és“queŽ¡‘ÌÍpGour–¬=mettre“la“derni€ère“touc¸èhe“€àŽ¡‘ÌÍd'impGortan¸ètes‘U publications.Ž¦‘ÌÎDeux–¦nouv¸èelles“pGossibilit€és“deŽ¡‘ÌÍr€églage–ŽQon¸èt“€ét€é“a‘Ž0jout€ées“dans“laŽ¡‘ÌÍv¸èersion–sQ1.5.“T‘þUYŸ&úEŽ‘ã9X“pGermet“de“me-Ž¡‘ÌÍsurer– )la“mauv‘ÿqÐaise“qualit€é““la“lai-Ž¡‘ÌÍdeur–ð}“d'une“colonne“sous“formeŽ¡‘ÌÍd'une–½v‘ÿqÐaleur“en¸èti€ère,“o€ù“0“signi-Ž¡‘ÌÍe–¾‰optimal“et“toute“autre“v‘ÿqÐa-Ž¡‘ÌÍleur–T%plus“haute“d€énote“la“pr€ésenceŽ¡‘ÌÍd'une–vßcertaine“quan¸ètit€é“d'espaceŽ¡‘ÌÍblanc–p•en“trop.“10000“est“consid€ér€éŽ¡‘ÌÍcomme–Óbinnimen¸èt“mauv‘ÿqÐais“(T‘þUYŸ&úEŽ‘ã9XŽ¡‘ÌÍne–H…fait“plus“de“distinction“au-Ž¡‘ÌÍdessus–óUde“cette“v‘ÿqÐaleur).“De“plus,Ž¡‘ÌÍla–Uv‘ÿqÐaleur“spG€éciale“100000“signieŽ¡‘ÌÍun–d€ébGordemen¸èt“(c'est-€à-dire“queŽ¡‘ÌÍla–½Mcolonne“con•¸ètien“t–½Mplus“de“texteŽ¡‘ÌÍqu'il–U n'est“pGossible“d'y“mettre).Ž¦‘ÌÎLa–';nouvš¸èelle“v˜ersion“mesure“d€é-Ž¡‘ÌÍsormais–ªác¸èhaque“colonne“engen-Ž¡‘ÌÍdr€ée–%et“ignore“les“solutions“pGourŽ¡‘ÌÍlesquelles–Ôau“moins“une“colonne“aŽ¡‘ÌÍune–âUlaideur“supG€érieure“€à“la“v‘ÿqÐaleurŽ¡‘ÌÍdu–Gcompteur“Ôcolumnbadness¹.“LaŽ¡‘ÌÍv‘ÿqÐaleur–ôÁpar“d€éfaut“pGour“ce“comp-Ž¡‘ÌÍteur–Ø%est“10000,“donc“T‘þUYŸ&úEŽ‘ã9X“ac-Ž¡‘ÌÍceptera–œ¡toutes“les“solutions“saufŽ¡‘ÌÍcelles›ÓÚa•¸èv“ec˜d€ébGordemen“t.˜En˜don-Ž¡‘ÌÍnan¸èt–KÖ€à“ce“ce“compteur“une“v‘ÿqÐa-Ž¡‘ÌÍleur–EÝplus“pšGetite,“v¸èous“p˜ouv¸èez“for-Ž¡‘ÌÍcer–à;l'algorithme“€à“rec•¸èherc“her‘à;desŽ¡‘ÌÍsolutions–‹‰qui“n'auron¸èt“pas“de“co-Ž¡‘ÌÍlonnes›-hcon•¸ètenan“t˜bGeaucoup˜d'es-ŽŽŽŸff‰ff9™`Ÿ E¼‘ !iŸý-:Ñ6ŽŽŽ‘KÙÉLa–^€raison“qui“se“cacšÃ’he“derri€ère“ce“compípGeut“€être“plus“courte,“ce“quiŽ¡donne–U un“bien“meilleur“r€ésultat.Ž¦‘ Il– d¥y“a“deux“autres“para-Ž¡m€ètres– rqui“son¸èt“encore“unŽ¡p•Geu›êÅexp“€érimen¸ètaux˜:˜l'un˜s'ap-Ž¡pGelle– u Ö\multicolovershoot“¹etŽ¡l'autre‘ $ Ö\multicolundershoot¹.Ž¡Ils›n‹con•¸ètr€ôlen“t˜la˜quan“tit€é˜d'espaceŽ¡don¸èt–ñéune“colonne“est“autoris€ée“€àŽ¡€être–g“trop“pleine““ou““tropŽ¡courte–™±“sans“aecter“la“laideurŽ¡de–8ñla“colonne.“Ils“v‘ÿqÐalen¸èt“2pt“parŽ¡d€éfaut.ŽŸ+¶Û2.2Ž‘¾Non‘ó÷€équilibrageŽŸ‘¾des‘¸colonnesŽŸ…2‘ ¹Bien–U1que“ce“pac¸èk‘ÿqÐage“ait“€ét€éŽ¡€écrit–apGour“r€ésoudre“le“probl€èmeŽ¡de–|“l'€équilibrage“des“colonnes,“ilŽ¡m'a›å`souv•¸èen“t˜€ét€é˜demand€é˜uneŽŽ’˜ÌÍŸñ¨„pņff ý™:z‘ÌÍv¸èersion–*Ádans“laquelle“tout“l'es-Ž¤ ‘ÌÍpace–sblanc“est“automatiquemen¸ètŽ¡‘ÌÍplac€é–]dans“la“(les)“derni€ère(s)“co-Ž¡‘ÌÍlonne(s).–¢Depuis“la“v¸èersion“v1.5qŽ¡‘ÌÍceci–>‘existe“d€ésormais“:“si“v¸èousŽ¡‘ÌÍutilisez–3¤Ömulticols*“¹au“lieu“deŽ¡‘ÌÍl'en•¸èvironnemen“t–ahabituel,“les“co-Ž¡‘ÌÍlonnes–™sur“la“derni€ère“page“neŽ¡‘ÌÍson¸èt–ª¹pas“€équilibr€ées.“Bien“s€ûr,Ž¡‘ÌÍcet›ílen•¸èvironnemen“t˜ne˜fonctionneŽ¡‘ÌÍqu'au–¥niv¸èeau“le“plus“haut,“c'est-€à-Ž¡‘ÌÍdire–ôÑ€à“l'in¸èt€érieur“d'une“bGo€îte“qu'ilŽ¡‘ÌÍfaut–ì¼€équilibrer“an“de“d€éterminerŽ¡‘ÌÍune–w‘hauteur“de“colonne“en“l'ab-Ž¡‘ÌÍsence–U de“v‘ÿqÐaleur“x€ée.Ž©í<‘ÌÍÛ2.3Ž‘'ŠáCoupure‘ Z&man uelleŽŸ‘'Šádes‘¸colonnesŽŸ|´‘ÌιUn–5sautre“demande“souv•¸èen“t‘5sen-Ž¡‘ÌÍtendue–„]€était“:““Commen¸èt“puis-Ž¡‘ÌÍje–½¸dire“€à“LŸýï‘üf ÕAŽŽ‘Íz¹T‘þUYŸ&úEŽ‘ã9X“qu'il“doit“cou-Ž¡‘ÌÍpGer–%\la“premi€ère“colonne“apr€èsŽ¡‘ÌÍcette–Üœligne-l€à‘ª“?“‘ÿ*¸.“La“commandeŽ¡‘ÌÍÖ\pagebreak–a›¹(qui“fonctionne“a•¸èv“ecŽ¡‘ÌÍl'option–yWÖtwocolumn“¹de“LŸýï‘üf ÕAŽŽ‘Íz¹T‘þUYŸ&úEŽ‘ã9X)“neŽ¡‘ÌÍsert–;_€à“rien“ici“car“elle“termineraitŽ¡‘ÌÍla–xýphase“de“collecte“de“ÔmulticolsŽ¡‘Ì͹et–l!donc“toutes“les“colonnes“surŽ¡‘ÌÍcette–>ýpage.“Dans“la“v¸èersion“1.5u“laŽ¡‘ÌÍcommande–ïÛÖ\columnbreak“¹a“doncŽ¡‘ÌÍ€ét€é–Ota‘Ž0jout€ée.“Si“elle“est“utilis€ée“€àŽ¡‘ÌÍl'in¸èt€érieur–IÈd'un“paragraphe,“elleŽ¡‘ÌÍmarque–ÊÏla“n“de“la“ligne“couran¸èteŽ¡‘ÌÍcomme–°qpGoin¸èt“de“coupure“de“co-Ž¡‘ÌÍlonne–âsouhait€é.“V‘ÿ*¸ous“pGouv¸èez“ob-Ž¡‘ÌÍserv¸èer–>¡son“eet“sur“la“premi€èreŽ¡‘ÌÍpage‘ª“Ÿü^ÿÕ8ŽŽ‘ ´n¹la–©page“o€ù“quelques“lignesŽ¡‘ÌÍde– texte“onš¸èt“€ét€é“articiellemen˜tŽ¡‘ÌÍforc€ées–©"dans“la“troisi€ème“colonneŽ¡‘ÌÍ(ce–ç/qui“a“donn€é“un“pGeu“d'espaceŽ¡‘ÌÍblanc–§[en¸ètre“les“paragraphes“dansŽ¡‘ÌÍla–U deuxi€ème“colonne).Ž¦‘ÌÍÛ2.4Ž‘'Šá€Él€émen• ts‘ c½ottan“tsŽ¤‘'Šá€à– _l'in t€érieur“d'unŽ¡‘'Šáen• vironnemen“t‘êŽó3âÆâ ecss1200Þmul-Ž¡‘'ŠáticolsŽŸ|´‘Ìι€À‘›§l'inš¸èt€érieur–œÂde“l'en˜vironne-ŽŸ ‘ÌÍmen¸èt–É°Ômulticols¹,“les“commandesŽŽ’¡™š„pņff ý™:z‘ÌÍhabituelles–|ìd'€él€émenš¸èts“ottan˜tsŽ¤ ‘ÌÍson¸èt–~zdispGonibles“(sous“leur“formeŽ¡‘Ì͸¹)–c«mais“leur“fonction“est“assez“dif-Ž¡‘ÌÍf€érenš¸ète–µsde“celle“qu'elles“a˜v‘ÿqÐaien˜tŽ¡‘ÌÍdans–å le“moGde“deux“colonnes“duŽ¡‘ÌÍLŸýï‘üf ÕAŽŽ‘Íz¹T‘þUYŸ&úEŽ‘ã9X–“Üstandard.“Les“ottan¸èts“¸¹,Ž¡‘ÌÍcomme–LÖfigure*¹,“indiquen¸èt“desŽ¡‘ÌÍ€él€émen•¸èts›ƒŸottan“ts˜sur˜toute˜laŽ¡‘ÌÍlargeur–*¹de“la“page“qui“son¸èt“trai-Ž¡‘ÌÍt€és–;ùd'une“mani€ère“analogue“€à“celleŽ¡‘ÌÍdes–%Œottan¸èts“normaux“en“dehorsŽ¡‘ÌÍde›ál'en•¸èvironnemen“t˜Ômulticols¹.˜Ce-Ž¡‘ÌÍpGendanš¸èt,–9il“ne“seron˜t“jamais“im-Ž¡‘ÌÍprim€és–¢¥sur“la“page“o€ù“ils“son¸èt“ren-Ž¡‘ÌÍcon¸ètr€és.–%|En“d'autres“termes,“onŽ¡‘ÌÍpšGeut–ÀEinuencer“leur“p˜ositionne-Ž¡‘ÌÍmenš¸èt–7ben“spG€écian˜t“une“com˜binai-Ž¡‘ÌÍson–ƒ“de“Öt¹,“Öb“¹et/ou“Öp“¹dans“leur“ar-Ž¡‘ÌÍgumen¸èt–M optionnel,“mais“Öh“¹ne“fonc-Ž¡‘ÌÍtionne–p…pas“car“le“premier“endroitŽ¡‘ÌÍpGossible–hÁest“le“haut“de“la“page“sui-Ž¡‘ÌÍv‘ÿqÐan¸ète.–2Il“faut“aussi“noter“que“ceciŽ¡‘ÌÍsignie–ªÙque“le“compGortemen¸èt“deŽ¡‘ÌÍleur–CÓplacemen¸èt“est“d€étermin€é“parŽ¡‘ÌÍles–Ê÷v‘ÿqÐaleurs“de“Ö\topfraction¹,“etc.Ž¡‘ÌÍet–U non“par“Ö\dbl¹...ŽŸ»l‘ÌÍÛ2.5Ž‘'ŠáA‘þ€v• ertissemen“tsŽŸk‘ÌιDans–ªâcertaines“circonstances,Ž¡‘ÌÍl'utilisation–±®de“l'en¸èvironne-Ž¡‘ÌÍmenš¸èt–-8Ômulticols“¹pGeut“pro˜v˜oGquerŽ¡‘ÌÍquelques›ªÁa•¸èv“ertissemen“ts˜de˜laŽ¡‘ÌÍpart–y"de“T‘þUYŸ&úEŽ›ã9X“ou“LŸýï‘üf ÕAŽŽ‘Íz¹T‘þUYŸ&úEŽ˜X.“V‘ÿ*¸oici“uneŽ¡‘ÌÍliste–Ûdes“plus“impGortan¸èts“et“desŽ¡‘ÌÍcauses‘U pGossiblesŽŸZ‘ÌÍÖUnderfull–?¬\hbox“(badnessŽ¡‘ ÌÍ...)Ž©+‘ Ì͹Comme–w*les“colonnes“son¸èt“sou-Ž¡‘ ÌÍv•¸èen“t–Štr€ès“€étroites,“T‘þUYŸ&úEŽ‘ã9X“n'a“pasŽ¡‘ ÌÍ€ét€é–Ù½capable“de“trouv¸èer“un“bGonneŽ¡‘ ÌÍfa€çon–'/de“coupGer“le“paragrapheŽ¡‘ ÌÍen–lignes.““Underfull““signaleŽ¡‘ ÌÍune–€ligne“creuse“mais“tan¸èt“que“laŽ¡‘ ÌÍlaideur–Ý est“en“dessous“de“²10000Ž¡‘ Ì͹le–e„r€ésultat“est“probablemen¸èt“ac-Ž¡‘ ÌÍceptable.ŽŸV‘ÌÍÖUnderfull–?¬\vbox“...“whileŽ¡‘ ÌÍ\output–?¬is“activeŽ¦‘ Ì͹Si–±Íune“colonne“con•¸ètien“t–±Íun“ca-Ž¡‘ ÌÍract€ère›Sa•¸èy“an“t˜une˜profondeurŽŽŽŸff‰ff9™`Ÿ E¼‘ !iŸý-:Ñ8ŽŽŽ‘KÙÉDans–»le“cšÃ’hier“original,“la“rupture“de“colonne“€était“r€éalis€ée“€à“la“n“de“la“premi€ère“colonne“de“la“page“3.“Cepd'utilisation“est“expliqu€éeŽ¡‘ÌÍdans–mle“tableau“1.“Il“y“a“plusieursŽ¡‘ÌÍam€éliorations–ÇqpšGossibles,“on“p˜eutŽ¡‘ÌÍpGenser–ºu€à“l'in¸èt€égration“de“la“fonc-Ž¡‘ÌÍtion–'IÖ\badness“¹de“T‘þUYŸ&úEŽ‘ã9X3,“d€énirŽ¡‘ÌÍun–ã±algorithme“plus“rapide“de“re-Ž¡‘ÌÍc•¸èherc“he–½=de“la“bGonne“hauteur“deŽ¡‘ÌÍcolonne,–eˆetc.“Si“quelqu'un“pGenseŽ¡‘ÌÍqu'il/elle–W0a“un“solution“d'am€é-Ž¡‘ÌÍlioration,–6)je“serais“heureux“de“leŽ¡‘ÌÍsa•¸èv“oir.–gíMais,“s'il“v¸èous“plait,“res-ŽŽŽŽŸ’ç€(5ŽŽŒ‹fp ¨ ýF œ þ6À’Ÿç?n ÿd‘¹La–tmacro“Ö\balance@columns“¹qui“con•¸ètien“t‘tleŽ¤ ‘co•Gde›Çp“our˜€équilibrer˜le˜mat€ériel˜rassem¸èbl€é,˜estŽ¡‘une– ¬macro“sans“param€ètres.“Elle“suppGose“queŽ¡‘le–À€mat€èriel“€à“€équilibrer“est“stošGc•¸èk“€é–À€dans“la“b˜o€îteŽ¡‘Ö\mult@box–ÅÕ¹qui“est“une“Ö\vbox¹.“Elle““connait“Ž¡‘aussi–ª6tous“les“param€ètres“x€és“par“l'en¸èvironne-Ž¡‘men¸èt–ñ@Ômulticols¹,“comme“Ö\col@number¹,“etc.“ElleŽ¡‘pšGeut–Í¢aussi“supp˜oser“que“Ö\@colroom“¹est“l'es-Ž¡‘pace–U encore“dispGonible“dans“la“page“en“cours.ŽŸ Üc‘Quand–Iuelle“a“ni,“elle“doit“retourner“lesŽ¡‘colonnes–Hindividuelles“dans“des“bGo€îtes“ap-Ž¡‘propri€ées–¹^pGour“la“suite“du“traitemen¸èt“parŽ¡‘Ö\page@sofar¹.–ÕüCela“signie“que“la“colonneŽ¡‘gaucš¸èhe–NÙdevra“€être“stoGc˜k˜€ée“dans“la“bGo€îte“registreŽŽ’éÌÍŸñ¨„§ñ¨ff ÿbX‘ÌÍÖ\mult@gfirstbox¹,–|la“suiv‘ÿqÐan¸ète“dans“le“registreŽ¤ ‘ÌÍÖ\mult@firstbox–î²+“2¹,›¯¼.–ª.“.,˜seule˜la˜derni€ère,˜parŽ¡‘ÌÍexception,–¯Wdans“le“registre“Ö\mult@grightbox¹.Ž¡‘ÌÍEn–ñoutre,“elle“doit“xer“les“deux“macrosŽ¡‘ÌÍÖ\kept@firstmark–-—¹et“Ö\kept@botmark“¹pGour“r€é-Ž¡‘ÌÍcupG€érer–*9les“v‘ÿqÐaleurs“des“marques“initiales“et“duŽ¡‘ÌÍbas–̃comme“trouv¸è€ées“dans“les“colonnes“indivi-Ž¡‘ÌÍduelles.–”õIl“y“a“quelques“fonctions“d'aide“dans“laŽ¡‘ÌÍsection–—ù5.1“qui“pšGeuv•¸èen“t–—ù€être“utilis€ées“p˜our“cela.Ž¡‘ÌÍDonner–‰Gles“marques“correctes““€à“la“main“Ž¡‘ÌÍn'est–iIpas“trivial“et“il“pGeut“€être“n€écessaire“deŽ¡‘ÌÍjeter–{un“coup“d'€÷il“€à“la“doGcumen¸ètation“et“€àŽ¡‘ÌÍl'impl€émenš¸ètation–ñde“Ö\balance@columns“¹a˜v‘ÿqÐan˜tŽ¡‘ÌÍd'essa•¸èy“er–U €à“nouv¸èeau.ŽŽŽŸÎê‘kî£ó6åÉV eccc1000áT‘ÿ ab.–U ¹1““Description“de“l'in¸èterface“de“Ö\balance@columnsŽŽŽŸ¹pGectez–0‰le“cop•¸èyrigh“t–0‰et“de“c¸èhangezŽŽ’˜ÌÍŸñ¨„ ñ¨ffŸþX‘ÌÍpas–U Ômulticol.dtx“¹directemen¸èt‘ª“!ŽŽ’¡™š„ ñ¨ffŽŸýYÛ3.2Ž‘¾Pr€éface–¸de“la“v ersion“1.2Ž B þ†½ë‘ ¹Apr€ès–ÿque“l'article“sur“l'en¸èvi-Ž¤ ronnemen¸èt–9Ômulticols“¹a“€ét€é“publi€éŽ¡dans–Øg×TUGbGoat‘¹10#3,“j'ai“re€çuŽ¡de–Ó+nom¸èbreuses“demandes“pGourŽ¡ces–Òmacros.“Quoi“qu'il“en“soit,Ž¡j'ai–˜5aussi“re€çu“une“v¸èersion“mo-Ž¡di€ée–ŸAde“mon“cš¸èhier“st˜yle,“enŽ¡m€ême–À temps“qu'une“lettre“meŽ¡demandanš¸èt–jÍsi“je“v˜oulais“inclureŽ¡les›:àc•¸èhangemen“ts˜pGour˜donner˜deŽ¡meilleurs– zr€ésultats“de“mise“enŽ¡forme–N]des“paragraphes“dans“lesŽ¡cas–Ide“lignes“€étroites.“Les“prin-Ž¡cipales–Õqdi€érences“a•¸èv“ec–Õqmon“-Ž¡c•¸èhier›¨òst“yle˜original˜€étaien“t˜desŽ¡param€ètres–'Ìadditionnels“(commeŽ¡Ö\multicoladjdemerits–uเà“utili-Ž¡ser–×XpGour“Ö\adjdemerits¹,“etc)“quiŽ¡pGouv‘ÿqÐaien¸èt–„Hinuencer“l'algorithmeŽ¡de–U rupture“de“lignes.ŽŸB‘ Mais,–Ž1en“fait,“remettre“€à“z€éroŽ¡de–ýYtels“param€ètres,“ou“m€ême“pireŽ¡leur–©donner“une“v‘ÿqÐaleur“n€égativ¸èe,Ž¡ne–donnera“pas“de“meilleures“cou-Ž¡pures–ºède“lignes“dans“l'en¸èvironne-Ž¡men¸èt–y-Ômulticols¹.“L'algorithme“deŽ¡rupture–„ade“ligne“de“T‘þUYŸ&úEŽ‘ã9X“n'en¸èvi-Ž¡sagera–y que“les“coupures“de“lignesŽ¡pšGoten¸ètielles–Ešqui“p˜euv•¸èen“t–Eš€être“r€éa-Ž¡lis€ées–ÙÍsans“induire“une“laideur“su-Ž¡pG€érieure–e€à“la“v‘ÿqÐaleur“couran¸ète“deŽ¡Ö\tolerance–kV¹(ou“Ö\pretoleranceŽŽ’˜ÌÍŸØ„…Áíff þ„>‘Ì͹pGour–DAla“premi€ère“passe).“Si“ceŽ¤ ‘ÌÍn'est–=Epas“pGossible,“alors,“en“der-Ž¡‘ÌÍnier–Xýressort,“T‘þUYŸ&úEŽ‘ã9X“proGduira“desŽ¡‘ÌÍb•Go€îtes› —¼d€éb“ordan¸ètes.˜T‘ÿ*¸ous˜cesŽ¡‘ÌÍpšGoin¸èts–àde“rupture“p˜ossibles“(etŽ¡‘ÌÍseulemenš¸èt–×Øceux-la)“seron˜t“prisŽ¡‘ÌÍen–½=compte“et,“nalemen¸èt,“la“s€é-Ž¡‘ÌÍquence–*¹qui“sera“la“moins“pG€éna-Ž¡‘ÌÍlisanš¸ète–msera“c˜hoisie.“Cela“signi-Ž¡‘ÌÍe–Cqu'une“v‘ÿqÐaleur“de“¸²1000“¹pGourŽ¡‘ÌÍÖ\adjdemerits–Zä¹enjoin¸èt“€à“T‘þUYŸ&úEŽ‘ã9X“deŽ¡‘ÌÍpr€éf€érer–®‡des“lignes“visiblemen¸èt“in-Ž¡‘ÌÍcompatibles–£­plut€ôt“que“de“pro-Ž¡‘ÌÍduire–exde“meilleures“ruptures“deŽ¡‘ÌÍlignes.ŽŸB‘ÌÎCepGendan•¸èt,›¯ a“v“ec˜T‘þUYŸ&úEŽ‘ã9X˜3.0,˜il˜estŽ¡‘ÌÍpšGossible–de“pro˜duire“des“rupturesŽ¡‘ÌÍde–€lignes“con•¸èv“enables–€m€ême“dansŽ¡‘ÌÍde–“ŽpGetites“colonnes,“en“xan¸ètŽ¡‘ÌÍÖ\emergencystretch–i¹€à“une“v‘ÿqÐa-Ž¡‘ÌÍleur–#íappropri€ée.“J'ai“impl€émen¸èt€éŽ¡‘ÌÍune–ÕYv¸èersion“qui“est“capable“deŽ¡‘ÌÍfonctionner–u€à“la“fois“pGour“l'an-Ž¡‘ÌÍcien–†ùet“le“nouv¸èeau“T‘þUYŸ&úEŽ‘ã9X“(enŽ¡‘ÌÍfait,–ºØelle“ignorera“simplemen¸èt“laŽ¡‘ÌÍnouv¸èelle–Ü•caract€éristique“si“elleŽ¡‘ÌÍn'est–ñÁpas“dispGonible).“Le“cal-Ž¡‘ÌÍcul–“/de“Ö\emergencystretch“¹estŽ¡‘ÌÍprobablemen¸èt–; incorrect.“J'ai“faitŽ¡‘ÌÍquelques– tests,“mais,“bien“s€ûr,Ž¡‘ÌÍon–Ç9aura“bšGeaucoup“plus“d'exp˜€é-Ž¡‘ÌÍrience›ma•¸èv“ec˜les˜nouv“elles˜pGossi-ŽŽ’¡™š„…Áíff þ„>‘ÌÍbilit€és–%|pGour“atteindre“la“qualit€éŽ¤ ‘ÌÍmaxim¸èum.ŽŸB‘ÌÎLa–]¹vš¸èersion“1.1a“a“une“c˜har-Ž¡‘ÌÍman¸ète–V½“caract€éristique““:“laŽ¡‘ÌÍpunition–ÞôpGour“l'utilisation“desŽ¡‘ÌÍottan•¸èts›in“terdits˜€était˜leur˜sup-Ž¡‘ÌÍpression–5[d€énitiv¸èe“€à“partir“deŽ¡‘ÌÍla–Ó¬Ö\@freelist“¹de“LŸýï‘üf ÕAŽŽ‘Íz¹T‘þUYŸ&úEŽ‘ã9X,“deŽ¡‘ÌÍtelle– ?ýsorte“qu'apr€ès“quelquesŽ¡‘ÌÍÖ\marginpar– *ú¹dans“l'en¸èvironne-Ž¡‘ÌÍmenš¸èt– ‚HÔmulticols¹,“les“ottan˜tsŽ¡‘ÌÍ€étaien•¸èt›áƒd€ésactiv“€és˜pGour˜toujoursŽ¡‘ÌÍ(Merci–ì|€à“Chris“áR•µZo“wleyŽ‘4Ïl¹pGourŽ¡‘ÌÍl'a•¸èv“oir–0remarqu€é).“J'ai“enlev¸è€é“ceŽ¡‘ÌÍdysfonctionnemen¸èt– et,“en“m€êmeŽ¡‘ÌÍtemps,–¥¤d€écid€é“de“pGermettre“qu'auŽ¡‘ÌÍmoins–®gles“ottanš¸èts“puissen˜t“€êtreŽ¡‘ÌÍ€à–OÁc¸èhev‘ÿqÐal“sur“toutes“les“colonnes,Ž¡‘ÌÍc'est-€à-dire,–B¬proGduits“par“l'en¸èvi-Ž¡‘ÌÍronnemen¸èt–»ˆÖfigure*¹.“V‘ÿ*¸ous“pGou-Ž¡‘ÌÍv•¸èez›ŠÛv“oir˜cette˜nouv“elle˜fonction-Ž¡‘ÌÍnalit€é–dans“le“tableau“2“qui“aŽ¡‘ÌÍ€ét€é–u‡ins€ér€é“ici“m€ême.“CepGendan¸èt,Ž¡‘ÌÍdes–l„ottan¸èts“dans“les“colonnesŽ¡‘ÌÍuniques–Îmsonš¸èt“toujours“in˜terditsŽ¡‘ÌÍet– …je“ne“pGense“pas“que“j'aurai“leŽ¡‘ÌÍtemps–åde“m'attaquer“€à“ce“pro-Ž¡‘ÌÍbl€ème–VÝdans“un“proGcš¸èhe“a˜v˜enir.“€ÀŽ¡‘ÌÍtous–‹iceux“qui“v•¸èeulen“t›‹iessa“y“er˜:Ž¡‘ÌÍattendez–ËyT‘þUYŸ&úEŽ‘ã9X“3.0.“Il“a“quelquesŽ¡‘ÌÍcaract€éristiques–Î}qui“rendron¸èt“laŽ¡‘ÌÍvie–ã¡plus“facile“dans“un“en¸èviron-ŽŽŽŽŸ’ç€(6ŽŽŒ‹€ƒ ¨ ýF œ ýö¸ŸÏHŸ¼‘Ú\setemergencystretch–Æ Ë:“C'est“un“pAÃoinš¾Žj'ai“seulemen˜t“a‘Ž0jout€é“deŽ¤ ‘ÌÍla–rdoGcumen¸ètation“aux“endroits“o€ùŽ¡‘ÌÍle–U nouv¸èeau“coGde“a“€ét€é“ins€ér€é.ŽŽŽŸ/~Ó4Ž‘ÁL'impl€émenctationŽŸæ~‘ ¹Nous–>Isortons“main•¸ètenan“t–>Idu“mošGde“m¸èulti-colonne“p˜our“monš¸ètrer“les“capacit€és“de“cet“en˜vironnemen˜t“(et“lesŽ¤ mauv‘ÿqÐaises–U d€écisions“de“mise“en“page)ŽŸýYÛ4.1Ž‘¾Le–¸cš hier“pilote“de“do_úcumen˜tationŽ C5‰ þÕ§‘ ¹Le–6ÀpšGetit“b˜out“de“co˜de“suiv‘ÿqÐanš¸èt“con˜tien˜t“le“c˜hierŽ¡pilote–%?de“doGcumenš¸ètation“de“T‘þUYŸ&úEŽ‘ã9X,“Øi.e.“¹le“c˜hier“quiŽ¡prošGduira–•la“do˜cumenš¸ètation“que“v˜ous“€êtes“en“trainŽ¡de–å~lire.“Il“sera“extrait“de“ce“c¸èhier“par“le“programmeŽ¡Ödocstrip¹.–‡ÃPuisque“c'est“le“premier“coGde“dans“ce“-Ž¡c¸èhier,–õon“pšGeut“pro˜duire“la“do˜cumen¸ètation“simple-Ž¡menš¸èt–U en“ex€écutan˜t“LŸýï‘üf ÕAŽŽ‘Íz¹T‘þUYŸ&úEŽ‘ã9X“sur“le“c˜hier“Ö.dtx¹.Ž©`‘üàÕ1Ž‘ ª®Ðhó9ÒoÇw cmss9ädriverŽ‘oÐiŽŸ ‘üàÕ2Ž‘ ª®Ú\documentclass{ltxdoc}ŽŸ`¹Nous–¦$utilisons“l'option“Öbalancingshow“¹quand“nousŽ¡c¸èhargeons–ö¦Ômulticols“¹pGour“que“le“tra€çage“complet“soitŽ¡proGduit.–àýCela“doit“€être“fait“a•¸èv›ÿqÐan“t–àýque“le“pac¸èk˜age“ÖdocŽ¡¹ne–ˆ¦soit“c¸èharg€é,“puisque“Ödoc“¹exige“Ômulticols“¹sans“au-Ž¡cune‘U option.Ž¦‘üàÕ3Ž‘ ª®Ú\usepackage{multicol}[1999/05/25]ŽŸ ‘üàÕ4Ž‘ ª®Ú\usepackage{doc}ŽŸ`¹T‘ÿ*¸out–´"d'abGord,“nous“xons“la“mise“en“page“con•¸èv“e-Ž¡nable–U pGour“cet“article.Ž¦‘üàÕ5Ž‘ ª®Ú\setlength{\textwidth}{39pc}Ž¤ ‘üàÕ6Ž‘ ª®Ú\setlength{\textheight}{54pc}Ž¡‘üàÕ7Ž‘ ª®Ú\setlength{\parindent}{1em}Ž¡‘üàÕ8Ž‘ ª®Ú\setlength{\parskip}{0pt–¹Nplus“1pt}Ž¡‘üàÕ9Ž‘ ª®Ú\setlength{\oddsidemargin}{0pc}Ž¡®Õ10Ž‘ ª®Ú\setlength{\marginparwidth}{0pc}Ž¡®Õ11Ž‘ ª®Ú\setlength{\topmargin}{-2.5pc}ŽŽ’éÌÍŸÿà„6à9ff þÓÇ‘Í{Õ12Ž‘w{Ú\setlength{\headsep}{20pt}ŽŸ ‘Í{Õ13Ž‘w{Ú\setlength{\columnsep}{1.5pc}Ž¤\ ‘Ì͹Nous–U vš¸èoulons“un“let“en˜tre“les“colonnes.Ž©\ ‘Í{Õ14Ž‘w{Ú\setlength\columnseprule{.4pt}Ž¡‘Ì͹Nous–Hªvš¸èoulons“aussi“nous“assurer“que“le“nouv˜el“en˜vi-Ž¤ ‘ÌÍronnemenš¸èt–Ý Ômulticols“¹trouv˜e“assez“de“place“€à“la“n“deŽ¡‘ÌÍla‘U page.Ž¦‘Í{Õ15Ž‘w{Ú\setlength\premulticols{6\baselineskip}ŽŸ\ ‘Ì͹Lors–lfde“l'€équilibrage“des“colonnes,“nous“ne“tenonsŽ¡‘ÌÍaucun–yºcompte“des“solutions“trop“mauv‘ÿqÐaises.“De“plus,Ž¡‘ÌÍsi–IRla“derni€ère“colonne“est“trop“mauv‘ÿqÐaise,“nous“la“com-Ž¡‘ÌÍpGosons–U sans“€étiremen¸èt.Ž¦‘Í{Õ16Ž‘w{Ú\setcounter{columnbadness}{7000}ŽŸ ‘Í{Õ17Ž‘w{Ú\setcounter{finalcolumnbadness}{7000}ŽŸ\ ‘Ì͹L'index–ïŠest“cens€é“appara€ître“sur“quatre“colonnes.“EtŽ¡‘ÌÍnous–¯)ne“mon¸ètrons“pas“les“noms“des“macros“dans“laŽ¡‘ÌÍmarges.Ž¦‘Í{Õ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öZ%–¹NPartial“indexŽ¡‘Í{Õ24Ž‘w{Ú\RecordChanges‘FÛ’%–¹NChange“logŽŽŽŸff‰ffYÿ¦Ÿ E¼‘ !iŸý-:Ñ9ŽŽŽ‘KÙÉc'est–¿la“partie“de“T‘þ•YŸ¸ÈEŽ‘LàX“qui“d€écoup¹¨‘ ¹Nous–2ˆcommen€çons“par“idenš¸ètier“le“pac˜k‘ÿqÐage.Ž¤ Puisque–HLson“utilisation“requiert“des“caract€éristiquesŽ¡seulemen¸èt–‰wdispGonibles“dans“LŸýï‘üf ÕAŽŽ‘Íz¹T‘þUYŸ&úEŽ‘ã9X‘ä2Ÿÿµ"ŽŽ‘(Û¹,“nous“nous“as-Ž¡surons–1mque“ce“format“est“dispGonible“(main•¸ètenan“t,Ž¡cela–U est“fait“plus“t€ôt“dans“le“c¸èhier).Ž© s®Õ38Ž‘ ª®Ðhäpack¾9ageŽ‘#g ÐiŽ¤ ®Õ39Ž‘ ª®Ú%‘¹N\NeedsTeXFormat{LaTeX2e}Ž¡®Õ40Ž‘ ª®Ú%‘¹N\ProvidesPackage{multicol}[..../../..Ž¡®Õ41Ž‘ ª®Ú%‘å8v...–¹Nmulticolum“formatting]ŽŸs‘ ¹Ensuite,–Ú³nous“d€éclarons“les“options“prises“enŽ¤ c¸èharge–Õpar“Ômulticols¹.“Le“moGde“Ötwocolumn“¹et“Ômul-Ž¡ticols–B¹ne“fonctionnenš¸èt“pas“ensem˜ble,“donc“nous“met-Ž¡tons–­ven“garde“con¸ètre“des“probl€èmes“pGossibles.“QuoiŽ¡qu'il–çen“soit,“puisque“nous“pGouvš¸èons“rev˜enir“au“moGdeŽ¡Ö\onecolumn–c@¹dans“lequel“Ômulticols“¹fonctionne,“nousŽ¡n'en¸ètra€înons–U pas“d'erreur.Ž¦®Õ42Ž‘ ª®Ú\DeclareOption{twocolumn}ŽŽ’éÌÍŸÿà„ÍF8ff ÿ<¹È‘Í{Õ43Ž‘!£eÚ{\PackageWarning{multicol}{May–¹Nnot“workŽ© ‘Í{Õ44Ž‘PàqÚwith–¹Nthe“twocolumn“option}}ŽŸ#,‘Ì͹Le–Úxtra€çage“est“fait“grace“€à“un“compteur.“CepGendan¸èt,Ž¤ ‘ÌÍil–‘est“€égalemen¸èt“pšGossible“d'app˜eler“le“tra€çage“en“uti-Ž¡‘ÌÍlisan¸èt–U les“options“d€éclar€ées“ci-dessous.ŽŸ#,‘Í{Õ45Ž‘w{Ú\newcount\c@tracingmulticolsŽ¦‘Í{Õ46Ž‘w{Ú\DeclareOption{errorshow}Ž¦‘Í{Õ47Ž‘&\³Ú{\c@tracingmulticols\z@}Ž¦‘Í{Õ48Ž‘w{Ú\DeclareOption{infoshow}Ž¦‘Í{Õ49Ž‘&\³Ú{\c@tracingmulticols\@ne}Ž¦‘Í{Õ50Ž‘w{Ú\DeclareOption{balancingshow}Ž¦‘Í{Õ51Ž‘&\³Ú{\c@tracingmulticols\tw@}Ž¦‘Í{Õ52Ž‘w{Ú\DeclareOption{markshow}Ž¦‘Í{Õ53Ž‘&\³Ú{\c@tracingmulticols\thr@@}Ž¦‘Í{Õ54Ž‘w{Ú\DeclareOption{debugshow}Ž¦‘Í{Õ55Ž‘&\³Ú{\c@tracingmulticols5\relax}Ž¦‘Í{Õ56Ž‘w{Ú\ProcessOptionsŽŽŽ¡Û4.3Ž‘¾Ouvrir–¸et“fermer“l'en• vironnemen“t‘¸ÞmulticolsŽ Íà þ÷2 ¹Comme–Û×pr€écis€é“pr€éc€édemmenš¸èt,“l'en˜vironnemen˜tŽ¤ Ômulticols–9ž¹a“un“argumenš¸èt“obligatoire“(le“nom˜bre“de“co-Ž¡lonnes)–&ãet“jusqu'€à“deux“argumen¸èts“optionnels.“NousŽ¡commen€çons–{Rpar“lire“le“nom¸èbre“de“colonnes“dans“leŽ¡registre‘U Ö\col@number¹.Ž©)-®Õ57Ž‘ ª®Ú\def\multicols#1{\col@number#1\relaxŽŸ)-¹Si–„êl'utilisateur“oublie“l'argumen¸èt,“T‘þUYŸ&úEŽ‘ã9X“se“plaindra“deŽ¡l'absence–Vâd'un“nomš¸èbre“€à“ce“pGoin˜t.“Le“m€écanisme“deŽ¡r€éparation–)2d'erreur“utilisera“ensuite“z€éro,“qui“n'estŽ¡pas–wun“bGon“cš¸èhoix“dans“ce“cas.“Donc,“nous“dev˜onsŽ¡main•¸ètenan“t–2tester“si“tout“est“correct.“Le“minim¸èumŽ¡est–U de“deux“colonnes“pGour“le“momen¸èt.Ž¦®Õ58Ž‘JÚ\ifnum\col@number<\tw@Ž¤ ®Õ59Ž‘"I4Ú\PackageWarning{multicol}%Ž¡®Õ60Ž‘'‚Ú{Using‘¹N`\number\col@number'Ž¡®Õ61Ž‘+»ÐÚcolumns–¹Ndoesn't“seem“a“good“idea.^^JŽ¡®Õ62Ž‘+»ÐÚI–¹Ntherefore“use“two“columns“instead}%Ž¡®Õ63Ž‘"I4Ú\col@number\tw@‘¹N\fiŽŸ)-¹Nous›a•¸èv“ons˜seulemen“t˜assez˜de˜registres˜de˜bGo€îteŽ¤ pšGour–ŽÏdix“colonnes,“donc“nous“a•¸èv“ons–ŽÏb˜esoin“de“v¸è€é-Ž¡rier–U que“l'utilisateur“n'en“demande“pas“plus.Ž¦®Õ64Ž‘JÚ\ifnum\col@number>10ŽŽ’éÌÍŸÿà„ÍÀff þõ2@‘Í{Õ65Ž‘+Ú\PackageError{multicol}%Ž¤ ‘Í{Õ66Ž‘/ÏOÚ{Too–¹Nmany“columns}%Ž¡‘Í{Õ67Ž‘/ÏOÚ{Current–¹Nimplementation“doesn'tŽ¡‘Í{Õ68Ž‘4ˆÚsupport–¹Nmore“than“10“columns.%Ž¡‘Í{Õ69Ž‘4ˆÚ\MessageBreakŽ¡‘Í{Õ70Ž‘4ˆÚI–¹Ntherefore“use“10“columns“instead}%Ž¡‘Í{Õ71Ž‘+Ú\col@number10‘¹N\fiŽŸæð‘Ì͹€À‘pTl'inš¸èt€érieur–p[de“l'en˜vironnemen˜t,“nous“a˜v˜ons“bGesoinŽ¤ ‘ÌÍd'une–X·vš¸èersion“spG€éciale“de“la“commande“fondamen˜taleŽ¡‘ÌÍÖ\@footnotetext–31¹puisque“l'original“d€énit“Ö\hsizeŽ¡‘Ì͹pGour–ÜÖ\columnwidth“¹ce“qui“n'est“pas“correct“dansŽ¡‘ÌÍl'en•¸èvironnemen“t–»xÔmulticols¹.“Ici,“Ö\columnwidth“¹se“r€é-Ž¡‘ÌÍf€ère–þá€à“la“largeur“d'une“colonne“unique“et“la“noteŽ¡‘ÌÍde–1bas“de“page“doit“€être“de“longueur“Ö\textwidth¹.Ž¡‘ÌÍPuisque–üðÖ\@footnotetext“¹a“une“d€énition“di€éren¸èteŽ¡‘ÌÍdans›¿­l'en•¸èvironnemen“t˜minipage,˜nous˜ne˜le˜red€é-Ž¡‘ÌÍnissons–µpas“directemen¸èt.“€À‘´ðla“place,“nous“xonsŽ¡‘ÌÍlošGcalemen¸èt–Ö\columnwidth“¹€à“Ö\textwidth“¹et“app˜e-Ž¡‘ÌÍlons–/la“d€énition“originale“(couranš¸ète)“stoGc˜k˜€ée“dansŽ¡‘ÌÍÖ\orig@footnotetext¹.ŽŸæð‘Í{Õ72Ž‘+Ú\let\orig@footnotetext\@footnotetextŽ¤ ‘Í{Õ73Ž‘+Ú\long\def\@footnotetext##1{\begingroupŽ¡‘Í{Õ74Ž‘=û9Ú\columnwidth\textwidthŽŽŽŽŸ’ç€(¹8ŽŽŒ‹ ®^ ¨ ýF œ ý‚®Õ75Ž‘5.lÚ\orig@footnotetext{##1}\endgroup}%ŽŸ--¹Main•¸ètenan“t,– cnous“pGouvš¸èons“rec˜herc˜her,“en“toute“s€é-Ž¤ curit€é,–U les“argumen¸èts“optionnels.Ž©--®Õ76Ž‘JÚ\@ifnextchar[\mult@cols{\mult@cols[]}}ŽŸùLa–V.macro“Ö\mult@cols“¹saisit“le“premier“argumen¸èt“op-Ž¡tionnel–U (s'il“existe)“et“rec•¸èherc“he–U le“second.Ž¦®Õ77Ž‘ ª®Ú\def\mult@cols[#1]{\@ifnextchar[%ŽŸ--¹Cet–Largumenš¸èt“doit“€être“une“¸hØdimen‘ÄU¸iŽ‘* J¹indiquan˜t“l'es-Ž¡pace– Ælibre“minim¸èum“n€écessaire“sur“la“page“cou-Ž¡ranš¸ète–] pGour“commencer“l'en˜vironnemen˜t.“Si“l'utilisa-Ž¡teur–ä‰n'en“fournit“pas,“nous“utilisons“Ö\premulticolsŽ¡¹par‘U d€éfaut.Ž¦®Õ78Ž‘JÚ{\mult@@cols{#1}}%ŽŸ ®Õ79Ž‘JÚ{\mult@@cols{#1}[\premulticols]}}ŽŸùApr€ès›ÓÞa•¸èv“oir˜enlev“€é˜tous˜les˜argumen“ts˜de˜l'en-Ž¡tr€ée,–6nous“sommes“capables“de“commencer“a•¸èv“ecŽ¡Ö\mult@@cols¹.Ž¦®Õ80Ž‘ ª®Ú\def\mult@@cols#1[#2]{%ŽŸ--¹La–Ðfpremi€ère“c¸èhose“que“nous“faisons“est“de“d€écider“si,Ž¡oui–²Nou“non,“il“y“a“un“en•¸èvironnemen“t›²Nm“ulticol˜non˜li€é,Ž¡Øi.e.–I{¹€à“c¸èhev‘ÿqÐal“sur“plusieurs“pages“ou“compGos€é“dans“uneŽ¡bšGo€îte.–ªSi“nous“sommes“en“mo˜de““in¸èt€érieur““de“T‘þUYŸ&úEŽ‘ã9XŽ¡(par–® exemple,“d€éj€à“dans“une“bGo€îte),“alors“nous“a•¸èv“onsŽ¡une– òvš¸èersion“em˜bGo€ît€ée“de“m˜ulticol“et“par“cons€équen˜t,Ž¡nous– ïxons“Ö@boxedmulticols“¹€à“vrai.“Ômulticols“¹doitŽ¡d€émarrer–L8en“moGde“v¸èertical.“Si“nous“n'y“sommes“pasŽ¡d€éj€à,–Önous“le“for€çons“main•¸ètenan“t›Öa“v“ec˜Ö\par˜¹puisque,Ž¡autremenš¸èt,–ple“test“de“moGde““in˜t€érieur““ne“sera“pasŽ¡fait–U pas“si“nous“sommes“dans“une“bGo€îte.Ž¦®Õ81Ž‘JÚ\parŽŸ ®Õ82Ž‘JÚ\ifinner‘¹N\@boxedmulticolstrueŽŸ--¹Autremenš¸èt,–Ånous“v˜€érions“Ö\doublecol@number¹.“CeŽ¡compteur–Ö&est“€à“z€éro“€à“l'ext€érieur“de“l'en•¸èvironnemen“tŽ¡mš¸èulticol–‘mais“pGositif“€à“l'in˜t€érieur“(cela“arriv˜e“un“pGe-Ž¡tit–XpšGeu“plus“tard).“Dans“le“second“cas,“nous“a•¸èv“ons‘Xb˜e-Ž¡soin–ÞŒde“compGoser“les“mš¸èulticolonnes“couran˜tes“aussiŽ¡en–$“mošGde“em¸èb˜o€ît€é““et“donc“de“cš¸èhanger“le“comm˜u-Ž¡tateur–U en“cons€équence.Ž¦®Õ83Ž‘JÚ\elseŽ¤ ®Õ84Ž‘æÚ\ifnum‘¹N\doublecol@number>\z@Ž¡®Õ85Ž‘+»ÐÚ\@boxedmulticolstrueŽ¡®Õ86Ž‘æÚ\fiŽ¡®Õ87Ž‘JÚ\fiŽŸ--¹Puis–Rnous“regardons“si“des“statistiques“son¸èt“deman-ŽŸ d€ées‘U :Ž¦®Õ88Ž‘JÚ\mult@info\z@Ž¡®Õ89Ž‘'‚Ú{Starting–¹Nenvironment“withŽ¡®Õ90Ž‘+»ÐÚ\the\col@number\space‘¹Ncolumns%ŽŸ--¹En–ÅæmošGde“em¸èb˜o€ît€é,“nous“a‘Ž0joutons“quelques“info.“sup-ŽŸ pl€émen¸ètaires.Ž¦®Õ91Ž‘0uÚ\if@boxedmulticols\MessageBreakŽŽ’éÌÍŸ8À„Š8Àff ýÇ@‘Í{Õ92Ž‘GmÕÚ(boxed‘¹Nmode)\fiŽŸ ‘Í{Õ93Ž‘/ÏOÚ}%Ž© ‘Ì͹Puis–Jçnous“mesurons“la“page“couranš¸ète“pGour“v˜oir“si“uneŽ¤ ‘ÌÍpartie– utilisable“de“l'en•¸èvironnemen“t› m“ulticol˜pGeutŽ¡‘ÌÍ€être–µ¨compšGos€ée.“Cette“routine“p˜eut‘Ù4‘úÜÄven•¸ètuellemen“tŽ¡‘ÌÍcommencer–U une“nouv¸èelle“page.ŽŸ ‘Í{Õ94Ž‘!£eÚ\enough@room{#2}%Ž¦‘Ì͹Main•¸ètenan“t–„_nous“sortons“le“premier“argumen¸èt“etŽ¡‘ÌÍproGduisons–xµun“espace“v¸èertical“au-dessus“des“colonnesŽ¡‘ÌÍ(Notez–Ïque“cet“argumen¸èt“correspGond“au“premierŽ¡‘ÌÍargumenš¸èt–ߨoptionnel“de“l'en˜vironnemen˜t“Ômulticols¹).Ž¡‘ÌÍDans–¥¼plusieurs“vš¸èersions,“cet“argumen˜t“€était“compGos€éŽ¡‘ÌÍdans–{un“groupšGe“p˜our“donner“un“eet“similaire“€à“celuiŽ¡‘ÌÍde–ŸÏÖ\twocolumn[..]“¹dans“lequel“l'argumen¸èt“est“aussiŽ¡‘ÌÍimplicitemen•¸èt›§en“tour€é˜de˜croGc“hets.˜CepGendan“t,˜ceciŽ¡‘ÌÍenš¸ètre––*en“conit“a˜v˜ec“des“c˜hangemen˜ts“loGcaux“r€éalis€ésŽ¡‘ÌÍpar–×des“instructions“comme“les“commandes“de“sec-Ž¡‘ÌÍtionnemenš¸èt–<ª(qui“renden˜t“compte“de“la“plupart“desŽ¡‘ÌÍcommandes–ìutilis€ées“dans“cet“argumenš¸èt),“g€âc˜han˜tŽ¡‘ÌÍl'espacemen•¸èt›"v“ertical,˜etc.,˜plus˜tard˜dans˜le˜doGcu-Ž¡‘ÌÍmenš¸èt,–Ÿ\de“telle“sorte“qu'€à“partir“de“la“v˜ersion“v1.5q,Ž¡‘ÌÍcet–,argumenš¸èt“est“de“nouv˜eau“compGos€é“dans“un“ni-Ž¡‘ÌÍv¸èeau‘U ext€èrieur.ŽŸ ‘Í{Õ95Ž‘!£eÚ#1\par\addvspace\multicolsepŽ¦‘Ì͹Nous–äicommen€çons“un“nouvš¸èeau“niv˜eau“de“groupGe-Ž¡‘ÌÍmenš¸èt–ÔñpGour“cac˜her“tous“les“c˜hangemen˜ts“suiv‘ÿqÐan˜tsŽ¡‘ÌÍ(r€éalis€és–U dans“Ö\prepare@multicols“¹par“exemple).ŽŸ ‘Í{Õ96Ž‘!£eÚ\begingroupŽŸ ‘Í{Õ97Ž‘+Ú\prepare@multicolsŽ¦‘Ì͹Si–\nous“sommes“en“mošGde“em¸èb˜o€ît€é,“nous“ouvronsŽ¡‘ÌÍmain•¸ètenan“t–¡˜une“bšGo€îte“p˜our“y“comp˜oser“tout“le“mat€é-Ž¡‘ÌÍriel–¾ë€à“partir“du“corps“m¸èulticolonne,“sinon“nous“pGour-Ž¡‘ÌÍsuiv•¸èons‘U simplemen“t.ŽŸ ‘Í{Õ98Ž‘+Ú\if@boxedmulticolsŽŸ ‘Í{Õ99Ž‘4ˆÚ\setbox\mult@box\vbox\bgroupŽ¦‘Ì͹Ici,–<šnous“a•¸èv“ons–<špGeut-€être“€à“r€éinitialiser“des“para-Ž¡‘ÌÍm€ètres‘ª“;–ÿÇpšGeut-€être“Ö\@parboxrestore“¹serait“la“b˜onneŽ¡‘ÌÍaction,–U mais“nous“le“laissons,“pGour“le“momen¸èt.Ž¤ ‘ÑIÕ100Ž‘+Ú\fiŽ¦‘Ì͹Nous–U nissons“par“supprimer“les“espaces“initiaux.Ž¡‘ÑIÕ101Ž‘+Ú\ignorespaces}Ž©¯þ‘Ì͹Ici–¼èest“le“comm¸èutateur“et“la“bšGo€îte“p˜our“le“co˜de“desŽŸ ‘ÌÍmš¸èulticolonnes–U “em˜bGo€ît€ées“‘ÿ*¸.Ž¡‘ÑIÕ102Ž‘w{Ú\newif\if@boxedmulticolsŽ¤ ‘ÑIÕ103Ž‘w{Ú\@boxedmulticolsfalseŽ¡‘ÑIÕ104Ž‘w{Ú\newbox\mult@boxŽ¦‘Ì͹La–üÀmacro“Ö\enough@room“¹utilis€ée“ci-dessous“n'estŽ¤ ‘ÌÍpas–Z¸parfaite“mais“fonctionne“raisonnablemen¸èt“bienŽ¡‘ÌÍdans–ôŽce“con¸ètexte.“Nous“mesurons“l'espace“libre“surŽ¡‘ÌÍla–.ÿpage“couranš¸ète“en“soustra˜y˜an˜t“Ö\pagetotal“¹deŽ¡‘ÌÍÖ\pagegoal¹.–¶Ce“n'est“pas“totalemen¸èt“correct“puisqueŽŽŽŽŸ’ç€(9ŽŽŒ‹ à  ¨ ýF œŸðSÞ ý‘¬"¹il–Qne“prend“pas“en“compte“le““retr€écissemen¸èt“Ž¤ (Øi.e.–ôÂÖ\pageshrink¹).“La““r€écenš¸ète“liste“de“con˜tribu-Ž¡tion–1~“pGourrait“€être“non-vide,“donc“nous“commen-Ž¡€çons›jna•¸èv“ec˜Ö\par˜¹et˜une˜pG€énalit€é˜implicite‘ª“Ÿü^ÿÕ10ŽŽ‘ "÷¹.˜En˜fait,Ž¡nous–‰Lutilisons“Ö\addpenalty“¹pGour“nous“assurer“qu'unŽ¡Ö\addvspace–&¹suiv‘ÿqÐanš¸èt““v˜erra““l'espace“v˜ertical“quiŽ¡pGourrait–À€être“pr€ésen¸èt.“L'utilisation“de“Ö\addpenaltyŽ¡¹aura–ŠþpGour“cons€équence“que“tous“les“items,“pro•¸èv“enan“tŽ¡des–>†conš¸ètributions“r€écen˜tes,“seron˜t“d€éplac€és“dans“laŽ¡liste–=¾v¸èerticale“principale“et“la“v‘ÿqÐaleur“de“Ö\pagetotalŽ¡¹sera–Êcorrectemenš¸èt“mise“€à“jour.“CepGendan˜t,“la“pG€éna-Ž¡lit€é–œ#sera“plac€ée“dev‘ÿqÐanš¸èt“tout“morceau“de“glue“a˜v˜ecŽ¡pGour–Íær€ésultat“que“la“liste“v¸èerticale“principale“seraŽ¡d€éj€à–}ÿd€ébšGordan¸ète“m€ême“si“T‘þUYŸ&úEŽ‘ã9X“n'app˜elle“pas“la“rou-Ž¡tine–U de“sortie.Ž©ìà‘ü|Õ105Ž‘ ª®Ú\def\enough@room#1{%ŽŸìß¹Mesurer–ʺa“uniquemen¸èt“un“sens“quand“nous“neŽ¡sommes–þñpas“en““mošGde“em¸èb˜o€ît€é“‘ÿ*¸,“donc“la“routineŽ¡ne–U fait“rien“si“le“comm¸èutateur“est“€à“vrai.Ž¦‘ü|Õ106Ž‘Ö˜Ú\if@boxedmulticols\elseŽŸ ‘ü|Õ107Ž‘Ö˜Ú\parŽŸìß¹Pš¸èour–wÄvider“la“liste“de“con˜tribution,“la“premi€ère“v˜er-Ž¡sion–ŠÎconš¸ètenait“une“pG€énalit€é“z€éro,“mais“cela“a˜v‘ÿqÐaitŽ¡pšGour–Ÿ¯cons€équence“que“Ö\addvspace“¹ne“p˜ouv‘ÿqÐait“d€é-Ž¡tecter–‡³la“glue“pr€éc€édenš¸ète.“Donc,“ceci“a“€ét€é“c˜hang€éŽ¡en–%¤Ö\addpenalty¹.“Cela“s'est“a•¸èv“€ér€é›%¤cepGendan“t˜insuf-Ž¡san¸èt–œ!puisque“Ö\addpenalty“¹n'a‘Ž0joutera“pas“de“pG€é-Ž¡nalit€é–Rquand“Ö@nobreak“¹est“vrai.“Donc,“nous“for€çonsŽ¡loGcalemenš¸èt–êce“comm˜utateur“€à“faux.“Il“pGeut“en“r€é-Ž¡sulter–Yune“rupture“enš¸ètre“le“texte“pr€éc€éden˜t“et“le“d€é-Ž¡but–bde“l'en•¸èvironnemen“t›bm“ulticol,˜mais˜cela˜sem“bleŽ¡acceptable– Jpuisqu'il“y“a“un“argumen¸èt“optionnel“pr€é-Ž¡cis€émen¸èt–U pGour“cette“raison.Ž¦‘ü|Õ108Ž‘Ö˜Ú\bgroup\@nobreakfalse\addpenalty\z@\egroupŽ¤ ‘ü|Õ109Ž‘Ö˜Ú\page@free‘¹N\pagegoalŽ¡‘ü|Õ110Ž‘Ö˜Ú\advance–¹N\page@free“-\pagetotalŽŸìß¹Pš¸èour–ëB€être“capable“de“sortir“la“v‘ÿqÐaleur,“nous“a˜v˜ons“bGe-Ž¤ soin–Ìòde“l'assigner“pr€éalablemen¸èt“€à“un“registre“puis-Ž¡qu'elle–Õ"pGourra€ît“€être“un“registre“(par“d€éfaut),“auquelŽ¡cas–‘yil“nous“faudrait“utiliser“Ö\the¹,“ou“elle“pGourra€îtŽ¡€être–ÀŠune“v‘ÿqÐaleur“€à“part“en¸èti€ère“et“alors“utiliser“Ö\theŽ¡¹serait‘U mauv‘ÿqÐais.Ž¦‘ü|Õ111Ž‘"I4Ú\@tempskipa#1\relaxŽŸìß¹Main•¸ètenan“t–š*nous“testons“si“les“informations“de“tra-Ž¡€çage–U son¸èt“demand€ées“:Ž¦‘ü|Õ112Ž‘Ö˜Ú\mult@info\z@Ž¤ ‘ü|Õ113Ž‘+»ÐÚ{Current‘¹Npage:\MessageBreakŽ¡‘ü|Õ114Ž‘0uÚheight=%Ž¡‘ü|Õ115Ž‘0uÚ\the\pagegoal:–¹Nused“\the\pagetotalŽ¡‘ü|Õ116Ž‘0uÚ\space–¹N->“free=\the\page@freeŽ¡‘ü|Õ117Ž‘0uÚ\MessageBreakŽŽ’éÌÍŸÿà„zS¾ff ý¬B‘ÑIÕ118Ž‘9AëÚneeded‘¹N\the\@tempskipaŽ¤ ‘ÑIÕ119Ž‘U™¿Ú\space(for‘¹N#1)}%ŽŸ@ì‘Ì͹Notre–ŽÆderni€ère“action“est“de“forcer“un“saut“de“pageŽ© ‘ÌÍs'il–U ne“reste“pas“assez“de“place.ŽŸ@ì‘ÑIÕ120Ž‘!£eÚ\ifdim–¹N\page@free“<#1\newpage“\fiŽ¡‘ÑIÕ121Ž‘êÚ\fi}ŽŸÙÏ‘Ì͹Lors–~ïde“la“pr€éparation“de“la“sortie“m¸èulticolonne,“plu-Ž¦‘ÌÍsieurs–U cš¸èhoses“son˜t“€à“faire.Ž¤@ì‘ÑIÕ122Ž‘w{Ú\def\prepare@multicols{%ŽŸ@ì‘Ì͹Nous–§ëcommen€çons“par“sauvš¸èer“la“v‘ÿqÐaleur“couran˜teŽ¦‘ÌÍde–‘gÖ\@totalleftmargin“¹et“puis“remettons“€à“z€éroŽ¦‘ÌÍÖ\parshape–I^¹dans“le“cas“o€ù“nous“sommes“€à“l'in-Ž¦‘ÌÍt€érieur–6de“quelque“en•¸èvironnemen“t–6de“liste.“L'in-Ž¦‘ÌÍden•¸ètation›Qhcon“v“enable˜pGour˜l'en“vironnemen“t˜Ômulti-Ž¦‘ÌÍcols–¯ã¹dans“un“tel“cas“sera“proGduite“par“le“d€éplace-Ž¦‘ÌÍmenš¸èt–ß­du“r€ésultat“v˜ers“la“droite“par“la“commandeŽ¦‘ÌÍÖ\multicol@leftmargin¹.–N Si“nous“v¸èoulions“utiliser“di-Ž¦‘ÌÍrectemen¸èt–“ˆla“v‘ÿqÐaleur“de“Ö\@totalleftmargin“¹alorsŽ¦‘ÌÍles–õlistes“€à“l'inš¸èt€érieur“d'un“en˜vironnemen˜t“ÔmulticolsŽ¦‘Ì͹pšGourra€îen•¸èt‘U pro“v“o˜quer–U un“d€écalage“de“la“sortie.Ž¡‘ÑIÕ123Ž‘êÚ\multicol@leftmargin\@totalleftmarginŽ¤ ‘ÑIÕ124Ž‘êÚ\@totalleftmargin\z@Ž¡‘ÑIÕ125Ž‘êÚ\parshape\z@ŽŸ@ì‘Ì͹Nous–eìd€énissons“€égalemen¸èt“le“registreŽ¦‘ÌÍÖ\doublecol@number–¾0¹pGour“un“usage“ult€érieur.“CeŽ¦‘ÌÍregistre–Âdoit“con¸ètenir“²2–W¸“Ö\col@numberŽ‘<½»¹.–ÂIl“indiqueŽ¦‘ÌÍaussi–æfque“nous“sommes“dans“un“en•¸èvironnemen“t‘æfÔmul-Ž¦‘ÌÍticols–U ¹comme“pr€écis€é“ci-dessus.ŽŸ@ì‘ÑIÕ126Ž‘êÚ\doublecol@number\col@numberŽ¡‘ÑIÕ127Ž‘êÚ\multiply\doublecol@number\tw@Ž¡‘ÑIÕ128Ž‘êÚ\advance\doublecol@number\mult@rightboxŽŸÙÏ‘ÑIÕ129Ž‘êÚ\if@boxedmulticolsŽ¡‘ÑIÕ130Ž‘&\³Ú\let\l@kept@firstmark\kept@firstmarkŽ¡‘ÑIÕ131Ž‘&\³Ú\let\l@kept@botmark\kept@botmarkŽ¡‘ÑIÕ132Ž‘&\³Ú\global\let\kept@firstmark\@emptyŽ¡‘ÑIÕ133Ž‘&\³Ú\global\let\kept@botmark\@emptyŽ¡‘ÑIÕ134Ž‘êÚ\elseŽŸÙÏ‘Ì͹Nous–cda‘Ž0joutons“une“bGo€îte“vide“€à“la“liste“v¸èerticale“prin-Ž¦‘ÌÍcipale–¸³pGour“nous“assurer“que“nous“prenons“toutes“lesŽ¦‘ÌÍinsertions–jo(remises“plus“tard“ou“ins€ér€ées“en“haut“deŽ¦‘ÌÍla–Òipage).“Sinon,“il“pGourrait“arriv¸èer“que“Ö\eject“¹soitŽ¦‘ÌÍsupprim€é–cCsans“appGel“de“la“routine“de“sortie.“DansŽ¦‘ÌÍcette–¼¢routine“de“sortie,“nous“enlevš¸èons“de“nouv˜eauŽ¦‘ÌÍcette–robšGo€îte.“De“nouv¸èeau,“le“co˜de“est“appliqu€é“seule-Ž¦‘ÌÍmenš¸èt–ÚXsi“nous“sommes“dans“la“liste“v˜erticale“prin-Ž¦‘ÌÍcipale–x—et“non“dans“une“bšGo€îte.“Cep˜endan¸èt,“ce“n'estŽ¦‘ÌÍpas–ÖAsusanš¸èt“pGour“ann˜uler“l'in˜terligne,“nous“dev˜onsŽ¦‘ÌÍaussi–leacer“Ö\topskip“¹a•¸èv‘ÿqÐan“t–ld'a‘Ž0jouter“cette“bGo€îte,Ž¦‘ÌÍpuisque–¾Ö\topskip“¹est“toujours“ins€ér€é“a•¸èv‘ÿqÐan“t–¾la“pre-Ž¦‘ÌÍmi€ère–h¨bšGo€îte“d'une“page,“ce“qui“p˜ourrait“nous“laisserŽŽŽŸff‰ffYÿ¦Ÿ E¼‘vùŸý-:Ñ10ŽŽŽ‘KÙÉcf.–Õ(la“doš¡Ú\PackageError{multicol}%Ž¡‘ü|Õ142Ž‘CZVÚ{Error–¹Nsaving“partial“page}%Ž¡‘ü|Õ143Ž‘CZVÚ{The–¹Npart“of“the“page“beforeŽ¡‘ü|Õ144Ž‘H¤Úthe–¹Nmulticols“environment“wasŽ¡‘ü|Õ145Ž‘H¤Únearly–¹Nfull“with^^Jthe“resultŽ¡‘ü|Õ146Ž‘H¤Úthat–¹Nstarting“the“environmentŽ¡‘ü|Õ147Ž‘H¤Úwill–¹Nproduce“an“overfullŽ¡‘ü|Õ148Ž‘H¤Úpage.‘ rœSome^^Jtext–¹Nmay“be“lost!Ž¡‘ü|Õ149Ž‘H¤ÚPlease–¹Nincrease“\premulticolsŽ¡‘ü|Õ150Ž‘H¤Úeither–¹Ngenerally“or“for“this%Ž¡‘ü|Õ151Ž‘H¤Ú^^Jenvironment–¹Nby“specifying“aŽ¡‘ü|Õ152Ž‘H¤Úsuitable–¹Nvalue“in“the“secondŽ¡‘ü|Õ153Ž‘H¤Úoptional–¹Nargument“to^^JtheŽ¡‘ü|Õ154Ž‘H¤Úmulticols‘¹Nenvironment.}Ž¡‘ü|Õ155Ž‘>¡Ú\unvbox\partial@pageŽ¡‘ü|Õ156Ž‘>¡Ú\box\last@lineŽ¡‘ü|Õ157Ž‘5.lÚ\fiŽ¡‘ü|Õ158Ž‘ ª®ÐhÏ=ächeckŽ‘AºÐiŽ¡‘ü|Õ159Ž‘5.lÚ\unvbox\@cclvŽ¡‘ü|Õ160Ž‘5.lÚ\global\setbox\last@line\lastboxŽ¡‘ü|Õ161Ž‘0uÚ}%ŽŸÝ“¹Finalemenš¸èt,– ïnous“a˜v˜ons“bGesoin“d'enregistrer“les“ba-Ž¦lises–ªqui“sonš¸èt“toujours“pr€ésen˜tes“€à“l'in˜t€érieur“deŽ¦Ö\partial@page–þš¹an“de“pGouv¸èoir“construire“plus“tardŽ¦des–ÛŠbalises“correctes“de“d€ébut“et“de“n.“Cela“est“r€éa-Ž¦lis€é–U par“le“coGde“suiv‘ÿqÐan¸èt.ŽŸ Ý“‘ü|Õ162Ž‘>¡Ú\prep@keptmarksŽŽ’éÌÍŸÿà„zS¾ff ý¬B‘Ì͹Finalemenš¸èt,–³Inous“dev˜ons“initialiser“Ö\kept@topmarkŽ¤ ‘Ì͹qui,–‘dans“l'id€éal,“devrait“€être“initialis€é“a•¸èv“ec–‘la“baliseŽ¡‘ÌÍqui–oŒest“en“cours“en““haut““de“la“page.“Malheu-Ž¡‘ÌÍreusemenš¸èt,–źnous“ne“pGouv˜ons“utiliser“Ö\topmark“¹parceŽ¡‘ÌÍque–Ã=ce“registre“ne“con¸ètiendra“pas“toujours“ce“queŽ¡‘ÌÍson–ëtnom“v¸èeut“dire,“parce“que,“parfois,“LŸýï‘üf ÕAŽŽ‘Íz¹T‘þUYŸ&úEŽ‘ã9X“appGelleŽ¡‘ÌÍla–Åroutine“de“sortie“pGour“la“gestion“des“ottan¸èts‘ª“Ÿü^ÿÕ11ŽŽ‘ "÷¹.Ž¡‘ÌÍDonc,–Þlnous“utilisons“le“deuxi€ème“meilleure“solu-Ž¡‘ÌÍtion,–ß«l'initialisanš¸èt“a˜v˜ec“Ö\firstmark¹.“En“fait,“dansŽ¡‘ÌÍnotre–ß»optique,“cela“n'a“vraimen¸èt“pas“d'impGortance,Ž¡‘ÌÍpuisque–Cnous“utilisons“Ö\kept@topmark“¹uniquemen¸ètŽ¡‘ÌÍpšGour–‡íinitialiser“Ö\firstmark“¹et“Ö\botmark“¹p˜our“laŽ¡‘ÌÍpage–Тsuiv‘ÿqÐanš¸ète,“si“nous“n'a˜v˜ons“pas“trouv˜€é“de“baliseŽ¡‘ÌÍpGour–U la“page“en“cours.Ž©j|‘ÑIÕ163Ž‘GmÕÚ\global\let\kept@topmark\firstmarkŽŸ ‘ÑIÕ164Ž‘B´‡Ú}\ejectŽŸj|‘Ì͹La–tcš¸èhose“suiv‘ÿqÐan˜te“€à“faire“est“d'assigner“une“nouv˜elleŽ¡‘ÌÍv‘ÿqÐaleur–®æ€à“Ö\vsize¹.“LŸýï‘üf ÕAŽŽ‘Íz¹T‘þUYŸ&úEŽ‘ã9X“conserv¸èe“la“place“libre“deŽ¡‘ÌÍla–øÈpage“(Øi.e.“¹la“hauteur“de“page“sans“l'espace“pGourŽ¡‘ÌÍles–À“ottan¸èts“d€éj€à“pris“en“compte)“dans“le“registreŽ¡‘ÌÍÖ\@colroom¹.–ç÷Nous“dev¸èons“soustraire“la“hauteur“deŽ¡‘ÌÍÖ\partial@page–b"¹pGour“mettre“la“v¸è€éritable“place“libreŽ¡‘ÌÍdans–U cette“v‘ÿqÐariable.Ž¦‘ÑIÕ165Ž‘&\³Ú\advance\@colroom-\ht\partial@pageŽŸj|‘Ì͹Puis,–^nous“dev¸èons“calculer“la“v‘ÿqÐaleur“de“Ö\vsizeŽ¡‘Ì͹€à– r”utiliser“pGendanš¸èt“l'assem˜blage“des“colonnes.Ž¡‘ÌÍÖ\set@mult@vsize–…0¹prend“un“argumen¸èt“qui“pGer-Ž¡‘ÌÍmet–†­les“d€énitions“loGcales“(Ö\relax¹)“ou“globalesŽ¡‘ÌÍ(Ö\global¹).–:²La“derni€ère“pGossibilit€é“est“utilis€ée“€à“l'in-Ž¡‘ÌÍt€érieur–‚îde“la“routine“de“sortie“ci-dessous.“€À‘‚âcet“ins-Ž¡‘ÌÍtanš¸èt,–ÞFnous“dev˜ons“r€éaliser“un“c˜hangemen˜t“lošGcal“p˜ourŽ¡‘ÌÍÖ\vsize–.¹parce“que“nous“v¸èoulons“restaurer“la“v‘ÿqÐaleurŽ¡‘ÌÍoriginale–ž:de“Ö\vsize“¹dans“le“cas“o€ù“l'en•¸èvironnemen“tŽ¡‘ÌÍÔmulticols–†%¹nit“sur“la“m€ême“page“que“celle“sur“laquelleŽ¡‘ÌÍil–U a“commenc€é.Ž¦‘ÑIÕ166Ž‘&\³Ú\set@mult@vsize\relaxŽŸj|‘Ì͹Main•¸ètenan“t–ÀÍnous“passons“€à“une“nouv¸èelle“routineŽ¡‘ÌÍÖ\output–ÃÞ¹qui“sera“utilis€ée“pGour“rassemš¸èbler“le“con˜ten˜uŽ¡‘ÌÍdes‘U colonnes.Ž¦‘ÑIÕ167Ž‘&\³Ú\output{\multi@column@out}%ŽŸj|‘Ì͹Finalemen¸èt,–íÓnous“g€érons“les“insertions“des“notesŽ¡‘ÌÍde–†Ïbas“de“page.“Nous“devš¸èons“m˜ultiplier“le“facteurŽ¡‘ÌÍd'agrandissemenš¸èt–­çet“le“saut“suppl€émen˜taire“par“leŽ¡‘ÌÍnomš¸èbre–©ˆde“colonnes“puisque“c˜haque“note“de“bas“deŽ¡‘ÌÍpage–Ù¿r€éduit“l'espace“de“c¸èhaque“colonne“(rappGelez-Ž¡‘ÌÍvš¸èous–ç/que“les“notes“de“bas“de“page“s'€étenden˜t“surŽ¡‘ÌÍtoute–Rla“largeur“de“la“page).“Si,“d'autre“part,Ž¡‘ÌÍles–pnotes“son¸èt“compšGos€ées“tout“€à“la“n“du“do˜cu-Ž¡‘ÌÍmenš¸èt,–£,notre“sc˜h€éma“fonctionnera“encore,“puisqueŽŽŽŸff‰ffYÿ¦Ÿ E¼‘vùŸý-:Ñ11ŽŽŽ‘KÙÉpšn€écessaire“dans“tous“les“cas.“Nous“assignonsŽ¡de–Ã+nouv¸èelles“v‘ÿqÐaleurs“€à“Ö\vbadness¹,“Ö\hbadness“¹etŽ¡Ö\tolerance–|(¹puisque“il“est“assez“dur“pGour“T‘þUYŸ&úEŽ‘ã9X“deŽ¡prošGduire–…de““b˜ons““paragraphes“€à“l'in¸èt€érieur“deŽ¡colonnes‘U €étroites.Ž¦‘ü|Õ171Ž‘JÚ\vbadness\@Mi‘¹N\hbadness5000ŽŸ ‘ü|Õ172Ž‘JÚ\tolerance\multicoltoleranceŽŸ“B¹Puisque–‡íla“premi€ère“passe“€éc¸èhouera“presque“tou-Ž¡jours,–)’nous“l'ignorons“et“demandons“€à“T‘þUYŸ&úEŽ‘ã9X“de“r€éali-Ž¡ser–yºles“c€ésures“directemenš¸èt.“En“fait,“main˜tenan˜t“nousŽ¡utilisons–~ un“autre“registre“pšGour“garder“la“v‘ÿqÐaleur“p˜ourŽ¡la–pr€é-tol€érance“de“m¸èulticol,“an“qu'un“concepteurŽ¡puisse–U utiliser“Ö\pretolerance¹.Ž¦‘ü|Õ173Ž‘JÚ\pretolerance\multicolpretoleranceŽŸ“B¹Pš¸èour–°†l'utilisation“a˜v˜ec“le“nouv˜eau“T‘þUYŸ&úEŽ‘ã9X,“nous“xonsŽ¡Ö\emergencystretch–›ç¹€à“Ö\col@numberŽ‘@XK¸“¹4“pt.“Ce-Ž¡pGendanš¸èt,–ëc'est“seulemen˜t“une“estimation,“doncŽ¡pGour–ɶl'instan¸èt“cela“est“r€éalis€é“dans“une“macro,Ž¡Ö\setemergencystretch–Ƹ¹qui“prend“la“v‘ÿqÐaleur“cou-Ž¡ranš¸ète–u de“Ö\hsize“¹et“le“nom˜bre“de“colonnes“commeŽ¡argumenš¸èt.–)"Donc,“les“utilisateurs“son˜t“capables“deŽ¡construire–U leur“propre“form¸èule.Ž¦‘ü|Õ174Ž‘JÚ\setemergencystretch\col@number\hsizeŽŽ’éÌÍŸÿà„TS¾ff ýµ¬B‘Ì͹Un–autre“pGoinš¸èt“d'en˜tr€ée,“pšGour“p˜ermettre“aux“utili-Ž¤ ‘ÌÍsateurs–1d'a‘Ž0jouter“leurs“propres“extensions“sans“faireŽ¡‘ÌÍun–w†nouvš¸èeau“pac˜k‘ÿqÐage,“est“Ö\set@floatcmds“¹qui“g€èren˜tŽ¡‘ÌÍtoutes–r©les“red€énitions“des“commandes“de“ottan¸ètŽ¡‘ÌÍinš¸èternes–{&€à“LŸýï‘üf ÕAŽŽ‘Íz¹T‘þUYŸ&úEŽ‘ã9X“pGour“fonctionner“a˜v˜ec“l'en˜vironne-Ž¡‘ÌÍmenš¸èt–¬‚Ômulticols¹.“P˜our“le“momen˜t,“c'est“seulemen˜t“uti-Ž¡‘ÌÍlis€é–U pGour“red€énir“Ö\@dblfloat“¹et“Ö\end@dblfloat¹.Ž© Áa‘ÑIÕ175Ž‘êÚ\set@floatcmdsŽŸ Áa‘Ì͹De–h°plus,“nous“augmen¸ètons“Ö\baselineskip“¹deŽ¡‘ÌÍÖ\multicolbaselineskip–®¹pšGour“p˜ermettre“les“correc-Ž¡‘ÌÍtions–U des“colonnes“€étroites.Ž¦‘ÑIÕ176Ž‘êÚ\advance\baselineskip\multicolbaselineskipŽŸ Áa‘Ì͹La–Â.v‘ÿqÐaleur“Ö\hsize“¹des“colonnes“est“donn€ée“par“la“for-Ž¡‘ÌÍm¸èule‘U :ŽŸ\ÏŸù<$‘9Ö\linewidthŽ‘E–8à²(Ö\col@numberŽ‘;õD¸“²1)“¸“Ö\columnsepŽŽ‘9Ÿw‰feÔ'Ÿ (Ö‘M5•\col@numberŽŽŽŽŽŸ­d‘Ì͹La–®formš¸èule“ci-dessus“a“c˜hang€é“de“v˜ersion“en“v˜ersion.Ž¡‘ÌÍMain•¸ètenan“t,–J_nous“commen€çons“a•¸èv“ec–J_la“v‘ÿqÐaleur“cou-Ž¡‘ÌÍran¸ète–hËde“Ö\linewidth“¹an“que“la“largeur“de“la“co-Ž¡‘ÌÍlonne–vWsoit“correctemen¸èt“calcul€ée“quand“nous“sommesŽ¡‘ÌÍdans–rfune“minipage,“dans“une“liste“ou“dans“tout“autreŽ¡‘ÌÍen•¸èvironnemen“t.–U Cela“sera“accompli“par“:Ž¦‘ÑIÕ177Ž‘êÚ\hsize\linewidth‘¹N\advance\hsize\columnsepŽ¤ ‘ÑIÕ178Ž‘êÚ\advance\hsize-\col@number\columnsepŽ¡‘ÑIÕ179Ž‘êÚ\divide\hsize\col@numberŽŸ Áa‘Ì͹Nous–P˜xons“€égalemen¸èt“Ö\linewidth“¹etŽ¤ ‘ÌÍÖ\columnwidth– ‹ì¹€à“Ö\hsize¹.“Dans“le“pass€é,Ž¡‘ÌÍÖ\columnwidth–FÒ¹a¸èv‘ÿqÐait“€ét€é“laiss€é“tel“quel.“C'est“inco-Ž¡‘ÌÍh€érenš¸èt–¿mais“Ö\columnwidth“¹est“utilis€é“seulemen˜t“parŽ¡‘ÌÍles–ottanš¸èts“(qui“ne“son˜t“pas“pGermis“dans“leur“im-Ž¡‘ÌÍpl€émen•¸ètation›;couran“te)˜et˜par˜la˜macro˜Ö\footnote¹.Ž¡‘ÌÍPuisque–¾nous“v¸èoulons“des“notes“de“bas“de“page“deŽ¡‘ÌÍla–õãlargeur“de“la“page‘ª“Ÿü^ÿÕ12ŽŽ‘ "÷¹,“cette“simple“astuce“nousŽ¡‘ÌÍ€évite–Êwde“r€é-€écrire“les“macros“Ö\footnote¹.“CepGendan¸èt,Ž¡‘ÌÍcertaines–êTapplications“se“r€éf€èren¸èt“€à“Ö\columnwidthŽ¡‘Ì͹comme–“la“largeur“de“la“colonne“couran¸ète““pGourŽ¡‘ÌÍcompGoser–k}les“acš¸èhages“(le“pac˜k‘ÿqÐage“Öamsmath¹,“parŽ¡‘ÌÍexemple),–íãet“pšGour“p˜ermettre“l'utilisation“de“tellesŽ¡‘ÌÍapplications–0zen“m€ême“temps“que“Ömulticol¹,“cela“aŽ¡‘ÌÍ€ét€é›U main•¸ètenan“t˜moGdi€é.Ž¡‘ÌÎA‘þã v‘ÿqÐanš¸èt–>kde“remplacer“Ö\linewidth“¹par“sa“nouv˜elleŽ¡‘ÌÍv›ÿqÐaleur,–)nous“enregistrons“son“ancienne“v˜aleur“dansŽ¡‘ÌÍun–Ÿregistre“appGel€é“Ö\full@width¹.“Cette“v‘ÿqÐaleur“estŽ¡‘ÌÍutilis€ée–ïplus“tard,“quand“nous“rassem¸èblons“toutesŽ¡‘ÌÍles‘U colonnes.Ž¦‘ÑIÕ180Ž‘êÚ\full@width\linewidthŽ¤ ‘ÑIÕ181Ž‘êÚ\linewidth\hsizeŽ¡‘ÑIÕ182Ž‘êÚ\columnwidth\hsizeŽ¡‘ÑIÕ183Ž‘w{Ú}ŽŽŽŸff‰ffYÿ¦Ÿ E¼‘vùŸý-:Ñ12ŽŽŽ‘KÙÉJe–’åne“suis“pas“s€ûr“de“vÃ’ouloir“des“notes“de“la“largeur“de“la“page,“mais“l'€équilibrage“de“la“derni€ère“page“ne“pmacro“est“utilis€ée“pGour“xer“les“param€ètresŽ¤ assoGci€és›Öa•¸èv“ec˜les˜notes˜(de˜bas˜de˜page)˜ottan“tes.Ž¡Elle–oÄpGeut“€être“red€énie“par“des“applications“qui“de-Ž¡mandenš¸èt–²šdes“quan˜tit€és“d'espace“di€éren˜tes“lors“de“laŽ¡compGosition–U des“notes.Ž© ´Ë‘ü|Õ184Ž‘ ª®Ú\def\init@mult@footins{%Ž¤ ‘ü|Õ185Ž‘æÚ\multiply\count\footins\col@numberŽ¡‘ü|Õ186Ž‘æÚ\multiply\skip‘¹N\footins\col@numberŽ¡‘ü|Õ187Ž‘ ª®Ú}ŽŸ.¹Puisque–yºnous“a•¸èv“ons–yºx€é“les“colonnes“Ö\col@umber“¹surŽ¤ une–ijpage,“cš¸èhacune“a˜v˜ec“une“hauteur“de“Ö\@colroom¹,Ž¡nous–ó!dev¸èons“assigner“Ö\vsizeŽ‘,•,²=‘$Ö\col@numberŽ‘DØ ¸Ž¡Ö\@colroomŽ‘2¨©¹pGour–krassemš¸èbler“assez“de“mat€ériel“a˜v‘ÿqÐan˜tŽ¡d'enš¸ètrer–Öde“nouv˜eau“dans“la“routine“Ö\output¹.“EnŽ¡fait,–]hnous“dev¸èons“encore“a‘Ž0jouter“²(Ö\col@numberŽ‘:¹¸•IU²1)“¸Ž¡²(Ö\baselineskipŽ‘F¿¸‘ƒ]Ö\topskipŽ‘,€½²)–ÄÕ¹si“vš¸èous“y“r€é€éc˜hissezŽ¡s€érieusemen¸èt.Ž¦‘ü|Õ188Ž‘ ª®Ú\def\set@mult@vsize#1{%Ž¤ ‘ü|Õ189Ž‘æÚ\vsize\@colroomŽ¡‘ü|Õ190Ž‘æÚ\@tempdima\baselineskipŽ¡‘ü|Õ191Ž‘æÚ\advance\@tempdima-\topskipŽ¡‘ü|Õ192Ž‘æÚ\advance\vsize\@tempdimaŽ¡‘ü|Õ193Ž‘æÚ\vsize\col@number\vsizeŽ¡‘ü|Õ194Ž‘æÚ\advance\vsize-\@tempdimaŽŸ´Ë¹Mais–!Ncela“pGourrait“€être“insusan¸èt“puisque“nous“uti-Ž¤ lisons–¿¾plus“tard“Ö\vsplit“¹pGour“extraire“les“colonnesŽ¡du–ðŽmat€ériel“r€éuni.“C'est“pGourquoi“nous“a‘Ž0joutons“desŽ¡–Ï%lignes“suppl€émenš¸ètaires“‘ÿ*¸,“leur“nom˜bre“d€épGendan˜tŽ¡de–†la“v›ÿqÐaleur“du“compteur““Ômulticols“¹‘ÿ*¸.“La“v˜aleurŽ¡nale–þest“assign€ée“globalemen¸èt“si“Ö#1“¹est“Ö\globalŽ¡¹parce–D8ce“que“nous“v¸èoulons“utiliser“cette“macro,“plusŽ¡tard,–U aussi“€à“l'in¸èt€érieur“de“la“routine“de“sortie.Ž¦‘ü|Õ195Ž‘æÚ#1\advance\vsizeŽŸ ‘ü|Õ196Ž‘0uÚ\c@collectmore\baselineskip}ŽŸ.¹V‘ÿ*¸oici–Ldans“la“page“couran˜te,“alors“la“routine“deŽ¡‘ÌÍsortie–†sera“appGel€ée“a•¸èv‘ÿqÐan“t–†que“nous“la“c¸èhangions.‘ *€ÀŽ¡‘ÌÍce–Omomenš¸èt,“nous“a˜v˜ons“bGesoin“d'utiliser“Ö\penaltyŽ¡‘Ì͹et–ënon“Ö\addpenalty“¹pGour“nous“assurer“que“a)“lesŽ¡‘ÌÍr€écen•¸ètes›p¨con“tributions˜son“t˜vid€ées˜et˜b)˜le˜tout˜der-Ž¡‘ÌÍnier–÷item“de“la“liste“vš¸èerticale“principale“est“un“pGoin˜tŽ¡‘ÌÍde–“†rupture“v‘ÿqÐalide“et“donc“que“T‘þUYŸ&úEŽ‘ã9X“coupGera“la“pageŽ¡‘ÌÍdans–U le“cas“o€ù“elle“est“d€ébGordan¸ète.Ž¦‘ÑIÕ219Ž‘!£eÚ\penalty\z@ŽŸéÊ‘Ì͹Main•¸ètenan“t,–´‚il“n'est“pas“dangereux“de“moGdier“laŽ¡‘ÌÍroutine–U de“sortie“pGour“€équilibrer“les“colonnes.Ž¦‘ÑIÕ220Ž‘&\³Ú\output{\balance@columns@out}\ejectŽŽŽŸff‰ffYÿ¦Ÿ E¼‘vùŸý-:Ñ13ŽŽŽ‘KÙÉCela–ïôcausait“aupara•Ã’v‡$an“t–ïôun“bug“fort“in•Ã’triguan“t–ïôdans“lequel“du“mat€ériel“€était“€équilibr€é“deux“fois,“ce“qui“causait“des“supÔde“sortie“ci-dessous.“Elle“a“deux“argumen¸èts“:Ž¡le–Í×premier“est“un“nom¸èbre‘ª“;“le“second“est“l'infor-Ž¡mation–J_d'ex€écution.“Elle“commence“la“bGoucle“a•¸èv“ecŽ¡Ö\count@=#1–ŒÚ¹(Ö\count@“¹est“un“registre“tempGoraire“d€é-Ž¡ni–L€en“áPlain‘¹T‘þUYŸ&úEŽ‘ã9X),“ex€écute“l'argumen¸èt“Ö#2¹,“a‘Ž0jouteŽ¡deux–ù²€à“Ö\count@¹,“ex€écute“de“nouvš¸èeau“l'argumen˜t“Ö#2¹,Ž¡etc.–tùjusqu'€à“ce“que“Ö\count@“¹soit“plus“grand“queŽ¡Ö\doublecol@number¹.–óàIl“pGourrait“€être“plus“facile“deŽ¡comprendre–´2gr€âce“€à“un“exemple,“donc“nous“la“d€é-Ž¡nissons›Yçmain•¸ètenan“t˜et˜expliquons˜son˜utilisation˜plusŽ¡tard.ŽŸ:|‘ü|Õ266Ž‘ ª®Ú\def\process@cols#1#2{\count@#1\relaxŽ¤ ‘ü|Õ267Ž‘"I4Ú\loopŽ¡‘ü|Õ268Ž‘ ª®ÐhädebugŽ‘ÒœÐiŽ¡‘ü|Õ269Ž‘"I4Ú\typeout{Looking–¹Nat“box“\the\count@}Ž¡‘ü|Õ270Ž‘ ª®ÐhÏ=ädebugŽ‘ÒœÐiŽ¡‘ü|Õ271Ž‘'‚Ú#2%Ž¡‘ü|Õ272Ž‘"I4Ú\advance\count@\tw@Ž¡‘ü|Õ273Ž‘"I4Ú\ifnum\count@<\doublecol@numberŽ¡‘ü|Õ274Ž‘Ö˜Ú\repeat}Ž¦¹Nous–QHd€énissons“main•¸ètenan“t–QHÖ\page@sofar“¹pGourŽ¤ donner–…Žun“exemple“de“la“macro“Ö\process@cols¹.Ž¡Ö\page@sofar–Ý2¹devrait“sortir“tout“ce“qui“est“pr€épar€éŽ¡par–U la“routine“d'€équilibrage,“Ö\balance@columns¹.Ž©:|‘ü|Õ275Ž‘ ª®Ú\def\page@sofar{%ŽŸ:|Ö\balance@columns–e¹pr€épare“sa“sortie“dans“les“re-Ž¡gistres–-ÿtempšGoraires“de“b˜o€îte“n¸èum€érot€és“pairs.“Main-Ž¡tenan¸èt,–$:nous“sortons“les“colonnes“r€éunies“en“sup-Ž¡pGosanš¸èt–*Rqu'elles“son˜t“sauv˜€ées“dans“les“registres“deŽ¡bGo€îte–(J2“(colonne“de“gauc¸èhe),“4“(seconde“colonne)Ž¡...–ÔCepGendan¸èt,“la“derni€ère“colonne“(Øi.e.“¹la“plusŽ¡€à– …droite)“devrait“€être“sauv¸è€ée“dans“le“registre“deŽ¡bšGo€îte–.Q0‘ª“Ÿü^ÿÕ15ŽŽ‘ "÷¹.“D'ab˜ord,“nous“nous“assurons“que“lesŽ¡colonnes–ø}onš¸èt“des“largeurs“iden˜tiques.“Nous“utili-Ž¡sons– ÒÖ\process@cols“¹dans“ce“but,“commen€çanš¸èt“a˜v˜ecŽ¡Ö\count@Ž‘'ؾ²=‘ Ö\mult@rightboxŽ‘L–r¹.–‡{Donc“Ö\count@“¹bGoucleŽ¡suiv‘ÿqÐan¸èt–CÖ\mult@rightbox¹,“Ö\mult@rightboxŽ‘S–½²+‘ 2¹,...Ž¡(jusqu'€à‘U Ö\doublecol@number¹).Ž¦‘ü|Õ276Ž‘Ö˜Ú\process@cols\mult@rightboxŽŸ:|¹Nous–devš¸èons“v˜€érier“si“la“bGo€îte“en“question“est“vide,Ž¡parce–NŽque“l'opšG€ération“Ö\wd¸hØnumb‘ÿ}/er‘}¸iŽ‘.9¡¹sur“une“b˜o€îteŽŽ’éÌÍŸ€„[SÞff ý®¬"‘ÌÍvide–U Øne‘o¹c¸èhangera“Øp‘ÿ}/as‘'5¹ses“dimensions“(*soupir*).Ž©Š‘ÑIÕ277Ž‘4ˆÚ{\ifvoid\count@Ž¤ ‘ÑIÕ278Ž‘B´‡Ú\setbox\count@\hbox‘¹Nto\hsize{}%Ž¡‘ÑIÕ279Ž‘9AëÚ\elseŽ¡‘ÑIÕ280Ž‘B´‡Ú\wd\count@\hsizeŽ¡‘ÑIÕ281Ž‘9AëÚ\fi}%ŽŸŠ‘Ì͹Main•¸ètenan“t,–{nous“donnons“des“informations“de“tra-ŽŸ ‘ÌÍ€çage.Ž¦‘ÑIÕ282Ž‘!£eÚ\mult@info\z@Ž¡‘ÑIÕ283Ž‘&\³Ú{Column‘¹Nspec:\MessageBreakŽ¡‘ÑIÕ284Ž‘4ˆÚ(\the\multicol@leftmargin\space‘¹N-->Ž¡‘ÑIÕ285Ž‘9AëÚ\the\full@width\space–¹N=“\the\hsizeŽ¡‘ÑIÕ286Ž‘9AëÚ\space–¹Nx“\the\col@number)%Ž¡‘ÑIÕ287Ž‘+Ú}%Ž¤Š‘Ì͹Pš¸èour–ßÍle“momen˜t,“nous“dev˜ons“toujours“€être“en“moGdeŽŸ ‘ÌÍv¸èertical.Ž¦‘ÑIÕ288Ž‘w{Ú\ifvmode\else\errmessage{Multicol‘¹NError}\fiŽ¡‘Ì͹Main•¸ètenan“t,–±nous“mettons“ensem¸èble“toutes“les“co-Ž¤ ‘ÌÍlonnes–‰êdans“Ö\hbox“¹de“largeur“Ö\full@width“¹(la“mo-Ž¡‘ÌÍdian¸èt–*@par“Ö\multicol@leftmargin“¹€à“droite“anŽ¡‘ÌÍqu'elle–}Êsoit“plac€ée“correctemen¸èt“si“nous“sommes“dansŽ¡‘ÌÍun›U en•¸èvironnemen“t˜de˜liste).Ž¦‘ÑIÕ289Ž‘!£eÚ\moveright\multicol@leftmarginŽ¤ ‘ÑIÕ290Ž‘&\³Ú\hbox‘¹Nto\full@width{%ŽŸŠ‘Ì͹et–s€éparons“les“colonnes“par“un“let,“si“on“le“d€ésire.Ž¦‘ÑIÕ291Ž‘+Ú\process@cols\mult@gfirstbox{\box\count@Ž¡‘ÑIÕ292Ž‘4ˆÚ\hss\vrule\@width\columnseprule\hss}%ŽŸŠ‘Ì͹Comme–w†vš¸èous“le“remarquerez,“nous“commen€çons“a˜v˜ecŽ¤ ‘ÌÍle–]~registre“de“bGo€îte“Ö\mult@gfirstbox“¹(Øi.e.“¹la“colonneŽ¡‘ÌÍde–„5gauc¸èhe).“Alors,“cette“fois,“Ö\count@“¹bGoucle“€à“tra-Ž¡‘ÌÍvš¸èers–Až2,“4,“...“(plus“le“d€écalage“appropri€é).“Finalemen˜t,Ž¡‘ÌÍnous–U a‘Ž0joutons“la“bGo€îte“0“et“fermons“Ö\hbox¹.Ž¦‘ÑIÕ293Ž‘+Ú\box\mult@rightboxŽŸŠ‘Ì͹Les–o profondeurs“des“colonnes“d€épGenden¸èt“de“leursŽ¡‘ÌÍderni€ères–=¾lignes.“P¸èour“nous“assurer“que“nous“auronsŽ¡‘ÌÍtoujours–Íla“m€ême“apparence“en“ce“qui“concerne“lesŽ¡‘ÌÍlets,–¯°nous“for€çons“la“profondeur“€à“€être“au“moinsŽ¡‘ÌÍcelle–U de“la“lettre““p“‘ÿ*¸.Ž¦‘ÑIÕ294Ž‘w{Ú%‘ž†\strutŽ¤ ‘ÑIÕ295Ž‘/ÏOÚ\rlap{\phantom‘¹Np}%Ž¡‘ÑIÕ296Ž‘w{Ú}%Ž¡‘ÑIÕ297Ž‘w{Ú}ŽŸ‡Ü‘Ì͹A‘þã v‘ÿqÐan¸èt–Y*d'attaquer“les“plus“grosses“routines“de“sortie,Ž¤ ‘ÌÍnous–Bbd€énissons“juste“une“macro“de“plus“qui“nousŽ¡‘ÌÍaidera–,€à“trouvš¸èer“notre“c˜hemin“€à“tra˜v˜ers“les“m˜ys-Ž¡‘ÌÍt€ères–/plus“tard.“Ö\reinsert@footnotes“¹fera“ce“queŽ¡‘ÌÍson– ônom“indique“:“elle“r€éins€ère“les“notes“de“bas“deŽŽŽŸff‰ffYÿ¦Ÿ E¼‘vùŸý-:Ñ15ŽŽŽ‘KÙÉV‘ÿJ¶ous– ÜvšÃ’errez“la“raison“ce“cette“n˜um€érotation,“quand“nous“regarderons“les“routines“de“sortie“Ù\multi@column@out“ÉetŽŸ €Ù\balance@columns@outÉ.ŽŽŸ’åP¹15ŽŽŒ‹M¸ ¨ ýF œ ý‚¹page–²špr€ésenš¸ètes“dans“Ö\footinbox“¹et“donc“elles“seron˜tŽ¤ r€é-ex€écut€ées–U par“le“Øp‘ÿ}/age_builder“¹de“T‘þUYŸ&úEŽ‘ã9X.Ž¡‘ Au–4élieu“de“vraimen¸èt“r€éins€érer“les“notes“de“basŽ¡de–ùƒpage,“nous“ins€érons“une“note“vide.“Cela“d€éclen-Ž¡c¸èhera–‘úle“m€écanisme“d'insertion“et,“puisque“les“an-Ž¡ciennes–‡ºnotes“son¸èt“encore“dans“leur“bGo€îte“et“que“nousŽ¡sommes–Y*sur“une“nouv¸èelle“page,“Ö\skip“footins“¹seraŽ¡correctemen¸èt–U pris“en“compte.Ž©p¤‘ü|Õ298Ž‘ ª®Ú\def\reinsert@footnotes{\ifvoid\footins\elseŽŸ ‘ü|Õ299Ž‘5.lÚ\insert\footins{}\fi}ŽŸ(ô¹Main•¸ètenan“t,– únous“ne“pšGouv¸èons“plus“rep˜ousser“les“dif-Ž¡cult€és–7plus“loin.“La“routine“Ö\multi@column@outŽ¡¹sera–þØappGel€ée“dans“deux“situations.“Soit“la“page“estŽ¡pleine–Çò(Øi.e.“¹nous“a•¸èv“ons›Çòaccum“ul€é˜assez˜de˜mat€é-Ž¡riel–ŒöpGour“construire“toutes“les“colonnes“d€ésir€ées)“ouŽ¡un–6÷ottan¸èt“ou“la“note“de“marge“(ou“bien“encoreŽ¡un–ÎÖ\clearpage¹)“est“d€étect€é.“Dans“le“dernier“cas,Ž¡Ö\outputpenalty–Fi¹est“inf€érieur“€à“¸²10000¹,“sinon“laŽ¡pG€énalit€é– equi“d€éclenc¸èhe“la“routine“de“sortie“est“plusŽ¡grande.–pDonc,“il“est“facile“de“faire“la“distinction“en¸ètreŽ¡les–U deux“cas“:“nous“testons“simplemen¸èt“ce“registre.Ž¦‘ü|Õ300Ž‘ ª®Ú\def\multi@column@out{%ŽŸ ‘ü|Õ301Ž‘Ö˜Ú\ifnum\outputpenalty‘¹N<-\@MŽŸp¤¹Si–¸´c'€était“un“Ö\clearpage¹,“un“ottan¸èt“ou“une“note“deŽ¡marge,–U nous“appGelons“Ö\speci@ls¹.Ž¦‘ü|Õ302Ž‘Ö˜Ú\speci@ls‘¹N\elseŽŸp¤¹sinon,–U nous“construisons“la“page“d€énitiv¸èe.Ž¡‘ Pš¸èour–U la“partie“du“coGde“qui“suit,“v˜oir“les“commen-Ž¡taires–U dans“la“section“7.2.Ž¦‘ü|Õ303Ž‘ ª®Ðhäcolb¾9reakŽ‘$S{ÐiŽ¤ ‘ü|Õ304Ž‘Ö˜Ú\ifvoid\colbreak@box\elseŽ¡‘ü|Õ305Ž‘"I4Ú\mult@info\@ne{Re-adding‘¹NforcedŽ¡‘ü|Õ306Ž‘Q†@Úbreak(s)–¹Nfor“splitting}%Ž¡‘ü|Õ307Ž‘"I4Ú\setbox\@cclv\vbox{%Ž¡‘ü|Õ308Ž‘0uÚ\unvbox\colbreak@boxŽ¡‘ü|Õ309Ž‘0uÚ\penalty-\@Mv\unvbox\@cclv}%Ž¡‘ü|Õ310Ž‘Ö˜Ú\fiŽ¡‘ü|Õ311Ž‘ ª®ÐhÏ=äcolb¾9reakŽ‘$S{ÐiŽŸp¤¹Consid€érons–Ble“cas“normal.“Nous“a•¸èv“ons–B€à“Ö\vsplit¹erŽ¤ les– ‚colonnes“€à“partir“du“mat€ériel“accum¸èul€é“dans“laŽ¡bšGo€îte–lv255.“Donc,“nous“assignons“d'ab˜ord“les“v‘ÿqÐaleursŽ¡appropri€ées–U €à“Ö\splittopskip“¹et“Ö\splitmaxdepth¹.Ž¦‘ü|Õ312Ž‘Ö˜Ú\splittopskip\topskipŽŸ ‘ü|Õ313Ž‘Ö˜Ú\splitmaxdepth\maxdepthŽŸp¤¹Puis–z^nous“calculons“la“hauteur“de“la“colonne“cou-Ž¡ran¸ète–!(dans“Ö\dimen@¹).“Notez“que“la“hauteur“deŽ¡Ö\partial@page–м¹est“d€éj€à“soustraite“de“Ö\@colroom¹,Ž¡donc,–Û*nous“pšGouv¸èons“utiliser“sa“v‘ÿqÐaleur“comme“p˜oin¸ètŽ¡de‘U d€épart.Ž¦‘ü|Õ314Ž‘Ö˜Ú\dimen@\@colroomŽŸp¤¹Mais–™Ãnous“dev¸èons“aussi“soustraire“l'espace“o•Gccup“€éŽ¡par–ªles“notes“de“bas“de“page“sur“la“page“couran¸ète.ŽŽ’éÌÍŸÿà„‰ÿàff ý€ ‘ÌÍNotez–úVque,“d'abGord,“nous“a•¸èv“ons–úV€à“remettre“le“re-Ž¤ ‘ÌÍgistre–¢de“saut“€à“sa“v‘ÿqÐaleur“initiale.“Encore“une“fois,Ž¡‘ÌÍla–رv¸è€éritable“action“est“de“transpGoser“dans“une“macroŽ¡‘ÌÍutilitaire,–Âan“que“d'autres“applications“puissen¸èt“laŽ¡‘ÌÍmoGdier.Ž© ‰Ù‘ÑIÕ315Ž‘!£eÚ\divide\skip\footins\col@numberŽ¤ ‘ÑIÕ316Ž‘!£eÚ\ifvoid\footins‘¹N\elseŽ¡‘ÑIÕ317Ž‘/ÏOÚ\leave@mult@footinsŽ¡‘ÑIÕ318Ž‘!£eÚ\fiŽŸ‰Ù‘Ì͹Main•¸ètenan“t,–8ˆnous“sommes“capables“de“Ö\vsplit¹erŽ¤ ‘ÌÍtoutes–¢les“colonnes,“sauf“la“derni€ère.“RappGelez-v¸èousŽ¡‘ÌÍque–Š]ces“colonnes“doiv•¸èen“t–Š]€être“sauv¸è€ées“dans“les“re-Ž¡‘ÌÍgistres–U de“bGo€îte“2,“4,“...“(plus“le“d€écalage).Ž¦‘ÑIÕ319Ž‘!£eÚ\process@cols\mult@gfirstbox{%Ž¤ ‘ÑIÕ320Ž‘9AëÚ\setbox\count@Ž¡‘ÑIÕ321Ž‘L'#Ú\vsplit\@cclv‘¹Nto\dimen@Ž¤‰Ù‘Ì͹Apr€ès–ðns€éparation,“nous“mettons“€à“jour“les“balisesŽŸ ‘ÌÍconserv¸è€ées.Ž¦‘ÑIÕ322Ž‘L'#Ú\set@keptmarksŽ¡‘Ì͹Si–èÖ\raggedcolumns“¹est“forc€é,“nous“a‘Ž0joutons“ÖvfillŽŸ ‘Ì͹au–U bas“en“d€ésem•¸èbšGo€îtan“t–U la“b˜o€îte“s€épar€ée.Ž¦‘ÑIÕ323Ž‘L'#Ú\ifshr@nkingŽ¤ ‘ÑIÕ324Ž‘U™¿Ú\setbox\count@Ž¡‘ÑIÕ325Ž‘cÅ©Ú\vbox‘¹Nto\dimen@Ž¡‘ÑIÕ326Ž‘h~÷Ú{\unvbox\count@\vfill}%Ž¡‘ÑIÕ327Ž‘L'#Ú\fiŽ¡‘ÑIÕ328Ž‘GmÕÚ}%ŽŸ‰Ù‘Ì͹Puis–U la“derni€ère“colonne“suit.Ž¦‘ÑIÕ329Ž‘!£eÚ\setbox\mult@rightboxŽ¡‘ÑIÕ330Ž‘4ˆÚ\vsplit\@cclv‘¹Nto\dimen@Ž¡‘ÑIÕ331Ž‘!£eÚ\set@keptmarksŽ¡‘ÑIÕ332Ž‘!£eÚ\ifshr@nkingŽ¡‘ÑIÕ333Ž‘/ÏOÚ\setbox\mult@rightbox\vbox‘¹Nto\dimen@Ž¡‘ÑIÕ334Ž‘B´‡Ú{\unvbox\mult@rightbox\vfill}%Ž¡‘ÑIÕ335Ž‘!£eÚ\fiŽŸ‰Ù‘Ì͹A‘ÿ*¸y•¸èan“t–l¢fait“cela,“nous“espšG€érons“que“la“b˜o€îte“255“est“vi-ŽŸ ‘ÌÍd€ée.–Í=Si“elle“ne“l'est“pas,“nous“r€éins€érons“son“con•¸èten“u.Ž¦‘ÑIÕ336Ž‘!£eÚ\ifvoid\@cclv‘¹N\elseŽ¡‘ÑIÕ337Ž‘4ˆÚ\unvbox\@cclvŽ¡‘ÑIÕ338Ž‘4ˆÚ\penalty\outputpenaltyŽŸ‰Ù‘Ì͹Dans–H/ce“cas,“une“note“de“bas“de“page,“qui“pGeut“€êtreŽ¤ ‘ÌÍins€ér€ée–ôŽdans“le“pšGetit“espace“restan¸èt,“sera“comp˜os€éeŽ¡‘ÌÍsur–ð~la“mauv‘ÿqÐaise“page.“Donc,“nous“a•¸èv“ertissons‘ð~l'uti-Ž¡‘ÌÍlisateur–ð si“la“page“couranš¸ète“con˜tien˜t“des“notes.“LesŽ¡‘ÌÍanciennes–\thr@@Ž¤ ‘ü|Õ347Ž‘i$ÆÚ\hrule\allowbreak‘¹N\fiŽ¡‘ü|Õ348Ž‘Ö˜Ú\fiŽŸ‹ü¹P¸èour–qZdonner“des“balises“correctes“pGour“la“pageŽ¦couranš¸ète,– $™nous“dev˜ons‘ ™÷‘ûŠòred€énir“(loGcalemen˜t)Ž¦Ö\firstmark–$é¹and“Ö\botmark¹.“Si“Ö\kept@firstmarkŽ¦¹n'est–¢pas“vide,“alors“Ö\kept@botmark“¹ne“doit“pasŽ¦€être–¶jvide“non“plus,“donc“nous“pGouv¸èons“utiliserŽ¦leurs–9~v›ÿqÐaleurs,“Sinon,“nous“utilisons“la“v˜aleur“deŽ¦Ö\kept@topmark–¯¹qui“a“d'abGord“€ét€é“initialis€é“quandŽ¦nous›~ a•¸èv“ons˜r€éuni˜Ö\partical@page˜¹et˜plus˜tard,˜a˜€ét€éŽ¦mise–U €à“jour“au“Ö\botmark“¹pGour“la“page“pr€éc€éden¸ète.ŽŸÑø‘ü|Õ349Ž‘Ö˜Ú\ifx\@empty\kept@firstmarkŽ¡‘ü|Õ350Ž‘'‚Ú\let\firstmark\kept@topmarkŽ¡‘ü|Õ351Ž‘'‚Ú\let\botmark\kept@topmarkŽ¡‘ü|Õ352Ž‘Ö˜Ú\elseŽ¡‘ü|Õ353Ž‘'‚Ú\let\firstmark\kept@firstmarkŽ¡‘ü|Õ354Ž‘'‚Ú\let\botmark\kept@botmarkŽ¡‘ü|Õ355Ž‘Ö˜Ú\fiŽŸÑø¹Nous– ´initialisons“€égalemenš¸èt“Ö\topmark“¹a˜v˜ecŽ¦Ö\kept@topmark¹.–7Cela“rendra“cette“balise“correcteŽ¦pGour–ÙÏtoutes“les“pages“m€édianes“de“l'en•¸èvironnemen“tŽ¦Ômulticols¹.ŽŸ ‹ü‘ü|Õ356Ž‘Ö˜Ú\let\topmark\kept@topmarkŽ¡‘ü|Õ357Ž‘ ª®Ðhäma¾9rktraceŽ‘+²ÐiŽ¡‘ü|Õ358Ž‘Ö˜Ú\mult@info\tw@Ž¡‘ü|Õ359Ž‘0uÚ{Use–¹Nkept“top“mark:\MessageBreakŽ¡‘ü|Õ360Ž‘9çºÚ\meaning\kept@topmarkŽ¡‘ü|Õ361Ž‘5.lÚ\MessageBreakŽ¡‘ü|Õ362Ž‘5.lÚUse–¹Nkept“first“mark:\MessageBreakŽ¡‘ü|Õ363Ž‘9çºÚ\meaning\kept@firstmarkŽ¡‘ü|Õ364Ž‘0uÚ\MessageBreakŽ¡‘ü|Õ365Ž‘5.lÚUse–¹Nkept“bot“mark:\MessageBreakŽ¡‘ü|Õ366Ž‘9çºÚ\meaning\kept@botmarkŽ¡‘ü|Õ367Ž‘0uÚ\MessageBreakŽ¡‘ü|Õ368Ž‘5.lÚProduce–¹Nfirst“mark:\MessageBreakŽ¡‘ü|Õ369Ž‘9çºÚ\meaning\firstmarkŽ¡‘ü|Õ370Ž‘0uÚ\MessageBreakŽ¡‘ü|Õ371Ž‘0uÚProduce–¹Nbot“mark:\MessageBreakŽ¡‘ü|Õ372Ž‘9çºÚ\meaning\botmarkŽ¡‘ü|Õ373Ž‘5.lÚ\@gobbletwo}%Ž¡‘ü|Õ374Ž‘ ª®ÐhÏ=äma¾9rktraceŽ‘+²ÐiŽŸ‹ü¹A‘þã v¸èec–Šun“pšGetit“p˜eu“plus“d'eort,“nous“aurions“pu“faireŽ¦mieux.–õ!Si“nous“a¸èvions,“par“exemple,“enregistr€é“le“re-Ž¦tr€écissemen¸èt–µ#du“mat€ériel“dans“Ö\partial@page¹,“il“se-Ž¦rait›¹Ñmain•¸ètenan“t˜pGossible˜d'essa“y“er˜les˜v‘ÿqÐaleurs˜supG€é-Ž¦rieures–”FpGour“Ö\dimen@“¹(Øi.e.“¹la“hauteur“des“colonnes)Ž¦pšGour–Àpasser“outre“le“probl€ème“de“la“b˜o€îte“255“nonŽ¦vide.–ªkMais“cela“aurait“rendu“le“cošGde“b˜eaucoup“plusŽ¦complexe,–Z€donc“je“l'ai“ignor€é“(le“probl€ème)“dans“l'im-Ž¦pl€émen¸ètation‘U actuelle.ŽŽ’éÌÍŸÿà„pÓ¾ff ý™,B‘ÌÎMain•¸ètenan“t,–Tnous“utilisons“le“m€écanisme“standardŽ¤ ‘ÌÍde–Q>sortie“de“LŸýï‘üf ÕAŽŽ‘Íz¹T‘þUYŸ&úEŽ‘ã9X‘ª“Ÿü^ÿÕ16ŽŽ‘ "÷¹.“C'est“vrai“que“c'est“une“fa€çonŽ¡‘ÌÍde–U faire“am•¸èusan“te.ŽŸÖ‘ÑIÕ375Ž‘!£eÚ\setbox\@cclv\vbox{\unvbox\partial@pageŽŸ ‘ÑIÕ376Ž‘{d/Ú\page@sofar}%ŽŸÖ‘Ì͹La–õ!macro“Ö\@makecol“¹a‘Ž0joute“€à“la“page“couran¸ète“tousŽ¡‘ÌÍles–ƒâottan¸èts“assign€és“€à“cette“page.“Ö\@outputpage“¹d€é-Ž¡‘ÌÍbarque–Õ"la“bGo€îte“r€ésultanš¸ète.“Notez“qu'il“est“seulemen˜tŽ¡‘ÌÍpGossible–žíque“de“tels“ottanš¸èts“soien˜t“pr€ésen˜ts“m€ême“siŽ¡‘ÌÍnous–¨n'en“pGermettons“aucun“dans“un“en•¸èvironnemen“tŽ¡‘ÌÍÔmulticols¹.Ž©j‘ÑIÕ377Ž‘!£eÚ\@makecol\@outputpageŽŸj‘Ì͹Apr€és–@{la“sortie“de“la“page,“nous“dev¸èons“pr€épa-Ž¡‘ÌÍrer–ÉÖles“marques“conservš¸è€ées“pGour“la“page“suiv‘ÿqÐan˜te.Ž¡‘ÌÍÖ\kept@firstmark–å¹et“Ö\kept@botmark“¹son¸èt“r€éinitiali-Ž¡‘ÌÍs€ées–Ýen“les“xan¸èt“€à“Ö\@empty¹.“La“v‘ÿqÐaleur“de“Ö\botmarkŽ¡‘Ì͹est–U ensuite“assign€ée“€à“Ö\kept@topmark¹.Ž¦‘ÑIÕ378Ž‘+Ú\global\let\kept@topmark\botmarkŽ¤ ‘ÑIÕ379Ž‘+Ú\global\let\kept@firstmark\@emptyŽ¡‘ÑIÕ380Ž‘+Ú\global\let\kept@botmark\@emptyŽ¡‘ÑIÕ381Ž‘w{Ðhäma¾9rktraceŽ‘+²ÐiŽ¡‘ÑIÕ382Ž‘+Ú\mult@info\tw@Ž¡‘ÑIÕ383Ž‘9AëÚ{(Re)Init–¹Ntop“mark:\MessageBreakŽ¡‘ÑIÕ384Ž‘=û9Ú\meaning\kept@topmarkŽ¡‘ÑIÕ385Ž‘=û9Ú\@gobbletwo}%Ž¡‘ÑIÕ386Ž‘w{ÐhÏ=äma¾9rktraceŽ‘+²ÐiŽ¤j‘Ì͹Main•¸ètenan“t–ÿ¹nous“xons“Ö\@colroom“¹€à“Ö\@colht¹,“quiŽŸ ‘ÌÍest–KÀla“v‘ÿqÐaleur“LŸýï‘üf ÕAŽŽ‘Íz¹T‘þUYŸ&úEŽ‘ã9X“sauv¸èegard€ée“pGour“Ö\textheight¹.Ž¦‘ÑIÕ387Ž‘!£eÚ\global\@colroom\@colhtŽ¡‘Ì͹Puis,–Bânous“traitons“les“ottanš¸èts“en“suspGens“attendan˜tŽŸ ‘ÌÍleur–U tour“pGour“€être“plac€és“sur“la“page“suiv‘ÿqÐan¸ète.Ž¦‘ÑIÕ388Ž‘!£eÚ\process@deferredsŽ¤ ‘ÑIÕ389Ž‘!£eÚ\@whilesw\if@fcolmade\fi{\@outputpageŽ¡‘ÑIÕ390Ž‘/ÏOÚ\global\@colroom\@colhtŽ¡‘ÑIÕ391Ž‘/ÏOÚ\process@deferreds}%ŽŸj‘Ì͹Si–l'utilisateur“demande“des“statistiques,“nous“l'in-Ž¤ ‘ÌÍformons–sur“la“quanš¸ètit€é“d'espace“r€éserv˜€ée“aux“ot-Ž¡‘ÌÍtan¸èts.Ž¦‘ÑIÕ392Ž‘!£eÚ\mult@info\@neŽ¤ ‘ÑIÕ393Ž‘+Ú{Colroom:\MessageBreakŽ¡‘ÑIÕ394Ž‘/ÏOÚ\the\@colht\spaceŽ¡‘ÑIÕ395Ž‘U™¿Úafter–¹Nfloat“space“removedŽ¡‘ÑIÕ396Ž‘U™¿Ú=–¹N\the\@colroom“\@gobble}%ŽŸj‘Ì͹A‘ÿ*¸y•¸èan“t–ÿ»fait“tout“cela,“nous“dev¸èons“pr€éparer“la“priseŽ¤ ‘ÌÍen–W¦compte“de“la“page“suiv‘ÿqÐan¸ète.“Donc,“nous“assi-Ž¡‘ÌÍgnons–Êúune“nouvš¸èelle“v‘ÿqÐaleur“€à“Ö\vsize¹.“Nouv˜elle,“parceŽ¡‘ÌÍque–ZÖÖ\partial@page“¹est“main•¸ètenan“t–ZÖvide“et“queŽ¡‘ÌÍÖ\@colroom–Õ!¹pGourrait“€être“diminš¸èu€é“de“l'espace“r€éserv˜€éŽ¡‘ÌÍaux‘U ottan¸èts.Ž¦‘ÑIÕ397Ž‘&\³Ú\set@mult@vsize‘¹N\globalŽŽŽŸff‰ffYÿ¦Ÿ E¼‘vùŸý-:Ñ16ŽŽŽ‘KÙÉCela–Swest“extr€êmemenšÃ’t“co€ûteux“car“les“deux“routines“de“sortie“son˜t“gard€ées“en“m€émoire.“La“b¡Úinside–¹Nmulticols“environment}\@ehdŽ¡‘ü|Õ408Ž‘Ö˜Ú\@specialoutputŽ¡‘ü|Õ409Ž‘JÚ\elseŽŸ³?¹Pš¸èour–p¨la“proGc˜haine“partie“du“coGde,“v˜oir“les“commen-ŽŸ taires–U dans“la“section“7.2.Ž¦‘ü|Õ410Ž‘ ª®Ðhäcolb¾9reakŽ‘$S{ÐiŽ¡‘ü|Õ411Ž‘"I4Ú\ifnum\outputpenalty–¹N=“-\@MvŽ¡‘ü|Õ412Ž‘5.lÚ\mult@info\@ne{Forced‘¹NcolumnŽ¡‘ü|Õ413Ž‘| þÚbreak‘¹Nseen}%Ž¡‘ü|Õ414Ž‘5.lÚ\global\advance\vsize-\pagetotalŽ¡‘ü|Õ415Ž‘5.lÚ\global\setbox\colbreak@boxŽ¡‘ü|Õ416Ž‘V?ŽÚ\vbox{\ifvoid\colbreak@boxŽ¡‘ü|Õ417Ž‘r—bÚ\elseŽ¡‘ü|Õ418Ž‘| þÚ\unvbox\colbreak@boxŽ¡‘ü|Õ419Ž‘| þÚ\penalty-\@MvŽ¡‘ü|Õ420Ž‘r—bÚ\fiŽ¡‘ü|Õ421Ž‘r—bÚ\unvbox\@cclv}Ž¡‘ü|Õ422Ž‘5.lÚ\reinsert@footnotesŽ¡‘ü|Õ423Ž‘"I4Ú\elseŽ¡‘ü|Õ424Ž‘ ª®ÐhÏ=äcolb¾9reakŽ‘$S{ÐiŽŸ³?¹Si–ã+nous“renconš¸ètrons“un“ottan˜t“ou“une“note“deŽŸ marge–Ldans“l'impl€émenš¸ètation“actuelle,“nous“a˜v˜ertis-ŽŽ’éÌÍŸ€„Š€ff ý€‘ÌÍsons–*rsimplemen¸èt“l'utilisateur“que“cela“n'est“pas“pGer-Ž¤ ‘ÌÍmis.–š"Puis,“nous“r€éins€érons“la“page“et“ses“notes“de“basŽ¡‘ÌÍde‘U page.Ž©_‘ÑIÕ425Ž‘9AëÚ\PackageWarning{multicol}%Ž¤ ‘ÑIÕ426Ž‘GmÕÚ{Floats–¹Nand“marginpars“notŽ¡‘ÑIÕ427Ž‘L'#Úallowed–¹Ninside“`multicols'Ž¡‘ÑIÕ428Ž‘L'#Úenvironment!Ž¡‘ÑIÕ429Ž‘GmÕÚ\@gobble}%Ž¡‘ÑIÕ430Ž‘9AëÚ\unvbox\@cclv\reinsert@footnotesŽŸ_‘Ì͹De–«^plus,“nous“vidons“Ö\@currlist“¹pGour“€éviter“desŽ¤ ‘ÌÍmessages–¬rd'erreur“futurs“quand“la“routine“de“sortieŽ¡‘ÌÍde–ÏLŸýï‘üf ÕAŽŽ‘Íz¹T‘þUYŸ&úEŽ‘ã9X“sera“forc€ée“de“nouv¸èeau.“Mais“d'abGord,“nousŽ¡‘ÌÍdev¸èons–Ñreplacer“les“bGo€îtes“dans“Ö\@freelist“¹(la“v‘ÿqÐa-Ž¡‘ÌÍleur–8par“d€éfaut“de“Ö\@elt“¹est“Ö\relax“¹donc“cela“estŽ¡‘ÌÍpGossible›U a•¸èv“ec˜Ö\xdef¹).Ž¦‘ÑIÕ431Ž‘4ˆÚ\xdef\@freelist{\@freelist\@currlist}%Ž¤ ‘ÑIÕ432Ž‘4ˆÚ\gdef\@currlist{}%Ž¡‘ÑIÕ433Ž‘w{Ðhäcolb¾9reakŽ‘$S{ÐiŽ¡‘ÑIÕ434Ž‘+Ú\fiŽ¡‘ÑIÕ435Ž‘w{ÐhÏ=äcolb¾9reakŽ‘$S{ÐiŽ¡‘ÑIÕ436Ž‘êÚ\fiŽŸ_‘Ì͹Si–™šla“pG€énalit€é“est“¸²1000¹,“elle“pro¸èviendra“deŽ¤ ‘ÌÍÖ\clearpage–?’¹et“nous“ex€écuterons“Ö\@doclearpageŽ¡‘Ì͹pGour–š\nous“d€ébarrasser“de“tous“les“ottan¸èts“en“at-Ž¡‘ÌÍten¸ète.Ž¦‘ÑIÕ437Ž‘0ÉÚ\else–¹N\@doclearpage“\fiŽŸ ‘ÑIÕ438Ž‘w{Ú}ŽŸ‹¬‘ÌÍÖ\process@deferreds–H!¹est“une“v¸èersion“simpli€ée“de“laŽ¡‘ÌÍcommande–j„Ö\@startpage“¹de“LŸýï‘üf ÕAŽŽ‘Íz¹T‘þUYŸ&úEŽ‘ã9X.“Nous“appGelonsŽ¡‘ÌÍd'abšGord– @Ö\@floatplacement“¹p˜our“sauv¸èegarder“lesŽ¡‘ÌÍparam€ètres–¸utilisateurs“couran¸èts“dans“les“registresŽ¡‘ÌÍinš¸èternes.–Ï5Puis“nous“commen€çons“un“nouv˜eau“groupGeŽ¡‘ÌÍet–ßÈsauvš¸èegardons“tempGorairemen˜t“Ö\@deferlist“¹dansŽ¡‘ÌÍla–U macro“Ö\@tempb¹.Ž¦‘ÑIÕ439Ž‘w{Ú\def\process@deferreds{%Ž¤ ‘ÑIÕ440Ž‘!£eÚ\@floatplacementŽ¡‘ÑIÕ441Ž‘!£eÚ\@tryfcolumn\@deferlistŽ¡‘ÑIÕ442Ž‘!£eÚ\if@fcolmade\elseŽ¡‘ÑIÕ443Ž‘+Ú\begingroupŽ¡‘ÑIÕ444Ž‘&\³Ú\let\@tempb\@deferlistŽŸ_‘Ì͹Notre–yÅproGcš¸èhaine“action“est“de“vider“(globalemen˜t)Ž¤ ‘ÌÍÖ\@deferlist–ªy¹et“assigner“une“nouv¸èelle“signication“€àŽ¡‘ÌÍÖ\@elt¹.–òvIci,“Ö\@scolelt“¹est“une“macro“qui“regarde“lesŽ¡‘ÌÍbšGo€îtes–G¾dans“une“liste“p˜our“d€écider“si“elles“doiv•¸èen“t‘G¾€êtreŽ¡‘ÌÍplac€ées–2sur“une“nouv¸èelle“page“(Øi.e.“¹dans“Ö\@toplistŽ¡‘Ì͹ou–$:Ö\@botlist¹)“ou“si“elles“doiv•¸èen“t–$:attendre“un“autreŽ¡‘ÌÍtraitemen¸èt.Ž¦‘ÑIÕ445Ž‘/ÏOÚ\gdef\@deferlist{}%ŽŸ ‘ÑIÕ446Ž‘/ÏOÚ\let\@elt\@scoleltŽŸ_‘Ì͹Main•¸ètenan“t,–ÅÆnous“appGelons“Ö\@tempb“¹qui“est“de“laŽ¡‘ÌÍformeŽŸ}ÿ‘…ƒÖ\@elt¸hØb‘ÿ}/oxŽ‘‘r–ÿ}/e“gister‘}¸iŽ–9³öÖ\@elt¸hØb‘ÿ}/oxŽ‘‘r–ÿ}/e“gister‘}¸iŽ“¹.–ª.“.ŽŽŽŽŸ’åP18ŽŽŒ‹t ¨ ýF œ ý‚¹Donc–ÒðÖ\@elt“¹(Øi.e.“Ö\@scolelt¹)“distribuera“les“bGo€îtesŽ¤ aux–U trois“listes.Ž©|‘ü|Õ447Ž‘0uÚ\@tempb‘¹N\endgroupŽŸ ‘ü|Õ448Ž‘Ö˜Ú\fi}ŽŸV¡ŽŽŽŽ¹Les–´d€éclarations“de“Ö\raggedcolumns“¹etŽ¡Ö\flushcolumns– ¹sonš¸èt“d€énies“€à“l'aide“d'une“nouv˜elleŽ¡macro‘U Ö\if...¹.Ž¦‘ü|Õ449Ž‘ ª®Ú\newif\ifshr@nkingŽŸ|¹Les–s‚d€énitions“r€éelles“sonš¸èt“simples“:“nous“comm˜u-Ž¡tons–HXjuste“€à“Ôtrue“¹ou“Ôfalse“¹en“fonction“de“l'actionŽ¡d€ésir€ée.–HPš¸èour“€éviter“des“espaces“suppl€émen˜tairesŽ¡en–©*sortie,“nous“encapsulons“ces“c•¸èhangemen“ts‘©*dansŽ¡Ö\@bsphack¹.–ª.“.Ö\@esphack¹.Ž¦‘ü|Õ450Ž‘ ª®Ú\def\raggedcolumns{%Ž¤ ‘ü|Õ451Ž‘Ö˜Ú\@bsphack\shr@nkingtrue\@esphack}Ž¡‘ü|Õ452Ž‘ ª®Ú\def\flushcolumns{%Ž¡‘ü|Õ453Ž‘Ö˜Ú\@bsphack\shr@nkingfalse\@esphack}ŽŸV¹Main•¸ètenan“t,–;la“derni€ère“partie“du“spGectacle“:“la“rou-Ž¤ tine–Fde“sortie“d'€équilibrage“des“colonnes.“Puisque“ceŽ¡cošGde–>est“app˜el€é“par“une“p˜€énalit€é“explicite“(Ö\eject¹),Ž¡il–Ón'est“pas“bšGesoin“de“v¸è€érier“des“trucs“sp˜€éciaux“(parŽ¡exemple,–LÎles“ottan¸èts).“Nous“commen€çons“par“€équi-Ž¡librer–U le“mat€ériel“r€éuni.Ž¦‘ü|Õ454Ž‘ ª®Ú\def\balance@columns@out{%ŽŸ|¹Pš¸èour–¾Ücela,“nous“a˜v˜ons“bGesoin“de“mettre“de“con˜ten˜uŽ¡de–U la“bGo€îte“255“dans“Ö\mult@box¹.Ž¦‘ü|Õ455Ž‘ ª®Ðhäcolb¾9reakŽ‘&åAÐi‘¹NÚ\setbox\mult@boxŽŸ ‘ü|Õ456Ž‘ ª®Ðhäcolb¾9reakŽ‘&åAÐi‘+êÚ\vbox{\unvbox\@cclv}%ŽŸ|¹Pš¸èour–E la“partie“suiv‘ÿqÐan˜te“du“coGde,“v˜oir“les“commen-Ž¡taires–U dans“la“section“7.2.Ž¦‘ü|Õ457Ž‘ ª®Ðhäcolb¾9reakŽ‘$S{ÐiŽ¤ ‘ü|Õ458Ž‘Ö˜Ú\setbox\mult@box\vbox{%Ž¡‘ü|Õ459Ž‘+»ÐÚ\ifvoid\colbreak@box\elseŽ¡‘ü|Õ460Ž‘5.lÚ\unvbox\colbreak@box\breakŽ¡‘ü|Õ461Ž‘5.lÚ\mult@info\@ne{Re-addingŽ¡‘ü|Õ462Ž‘>¡Úforced–¹Nbreak(s)“in“balancing}%Ž¡‘ü|Õ463Ž‘+»ÐÚ\fiŽ¡‘ü|Õ464Ž‘+»ÐÚ\unvbox\@cclv}%Ž¡‘ü|Õ465Ž‘ ª®ÐhÏ=äcolb¾9reakŽ‘$S{ÐiŽ¡‘ü|Õ466Ž‘Ö˜Ú\balance@columnsŽŸ|¹Cela–»žnous“am€ènera“dans“la“pGosition“dans“laquelleŽ¤ nous–Ylappliquerons“Ö\page@sofar¹.“Mais“d'abGord,“nousŽ¡dev¸èons–xer“Ö\vsize“¹€à“une“v‘ÿqÐaleur“idoine“pGour“la“sor-Ž¡tie–U d'une“colonne.Ž¦‘ü|Õ467Ž‘Ö˜Ú\global\vsize\@colroomŽŸ ‘ü|Õ468Ž‘Ö˜Ú\global\advance\vsize\ht\partial@pageŽŸ|¹Puis–Ö\nous“Ö\unvbox¹ons“Ö\partial@page“¹(qui“pGeutŽ¡€être–þ7vide“si“nous“n'a•¸èv“ons–þ7pas“trait€é“la“premi€ère“pageŽ¡de–U cet“en•¸èvironnemen“t‘U Ômulticols¹).Ž¦‘ü|Õ469Ž‘Ö˜Ú\unvbox\partial@pageŽŽ’éÌÍŸÿà„‰ÿàff ý€ ‘Ì͹Puis–}ªnous“retournons“les“marques,“premi€ère“et“duŽ¤ ‘ÌÍbas,–det“le“mat€ériel“r€éuni,“dans“la“liste“v¸èerticale“prin-Ž¡‘ÌÍcipale.Ž© KÚ‘ÑIÕ470Ž‘!£eÚ\return@nonemptymark{first}\kept@firstmarkŽ¤ ‘ÑIÕ471Ž‘!£eÚ\return@nonemptymark{bot}\kept@botmarkŽ¡‘ÑIÕ472Ž‘!£eÚ\page@sofarŽŸKÚ‘Ì͹Nous›Ä1a•¸èv“ons˜b•Gesoin˜d'a‘Ž0jouter˜une˜p“€énalit€é˜€à˜cet˜en-Ž¤ ‘ÌÍdroit,–Èpce“qui“nous“pšGermettra“de“coup˜er“en“ce“p˜oin¸ètŽ¡‘ÌÍpuisque–Cl'appšGel“de“la“routine“de“sortie“p˜eut“a•¸èv“oir‘Csup-Ž¡‘ÌÍprim€é–Ë\l'unique“pšGoin¸èt“de“rupture“p˜ossible,““collan¸èt“Ž¡‘ÌÍainsi–$"tout“saut“suiv‘ÿqÐan¸èt“€à“la“bGo€îte“€équilibr€ée.“Dans“leŽ¡‘ÌÍcas––o€ù“il“y“a“des“r€églages“bizarres“de“Ö\multicolsep¹,Ž¡‘ÌÍetc.,–3–cela“pšGourrait“pro˜duire“des“r€ésultats“am•¸èusan“ts.Ž¦‘ÑIÕ473Ž‘!£eÚ\penalty\z@ŽŸ ‘ÑIÕ474Ž‘w{Ú}ŽŸKÚ‘Ì͹Comme–nous“le“sa•¸èv“ons–d€éj€à,“la“r€éinsertion“des“notesŽ¡‘ÌÍde– 9bas“de“page“se“fait“par“la“macro“Ö\endmulticols¹.ŽŸqÅ‘ÌÍLa–macro“r€éalise“main•¸ètenan“t–le“v¸è€éritable“€équilibrage.Ž¦‘ÑIÕ475Ž‘w{Ú\def\balance@columns{%ŽŸKÚ‘Ì͹Nous–µ#commen€çons“par“r€égler“les“marques“conserv¸è€éesŽ¡‘ÌÍen–ttles“mettanš¸èt“€à“jour“a˜v˜ec“les“marques“de“cette“bGo€îte.Ž¡‘ÌÍCela–mSdoit“€être“r€éalis€é“Øavant‘`¹d'a‘Ž0jouter“la“pG€énalit€é“deŽ¡‘Ì͸²10000–@G¹en“haut“de“la“bšGo€îte,“sinon“seule“une“b˜o€îteŽ¡‘ÌÍvide–U sera“prise“en“compte.Ž¦‘ÑIÕ476Ž‘!£eÚ\get@keptmarks\mult@boxŽŸKÚ‘Ì͹Nous›¿con•¸ètin“uons˜ensuite˜par˜la˜remise˜€à˜z€éro˜des˜es-Ž¡‘ÌÍsais–þñpGour“enlev¸èer“tout“le“mat€ériel“ea€çable“€à“la“nŽ¡‘ÌÍde–U Ö\mult@box¹.“Ceci“est“plut€ôt“expG€érimen¸ètal.“NousŽ¡‘ÌÍa‘Ž0joutons–ðÉaussi“un“pGoin¸èt“de“rupture“forc€é“au“tout“d€é-Ž¡‘ÌÍbut,–×ret“nous“pšGouv¸èons“donc“diviser“la“b˜o€îte“de“hau-Ž¡‘ÌÍteur–²kz€éro“plus“tard,“a‘Ž0joutanš¸èt“ainsi“une“glue“conn˜ueŽ¡‘ÌÍÖ\splittopskip–U ¹au“d€ébut.Ž¦‘ÑIÕ477Ž‘!£eÚ\setbox\mult@box\vbox{%Ž¤ ‘ÑIÕ478Ž‘9AëÚ\penalty-\@MŽ¡‘ÑIÕ479Ž‘9AëÚ\unvbox\mult@boxŽ¡‘ÑIÕ480Ž‘9AëÚ\remove@discardable@itemsŽ¡‘ÑIÕ481Ž‘9AëÚ}%ŽŸKÚ‘Ì͹Puis›Lsuiv•¸èen“t˜des˜assignemen“ts˜de˜v‘ÿqÐaleurs˜pGour˜rendreŽ¤ ‘ÌÍÖ\vsplit–Áì¹correct.“Nous“utilisons“la“partie“natu-Ž¡‘ÌÍrelle–Öde“Ö\topskip“¹comme“la“partie“naturelle“deŽ¡‘ÌÍÖ\splittopskip–ºª¹et“pšGermettons“un“p˜eu“de“retrait“etŽ¡‘ÌÍde–ðŽd€épassemenš¸èt“par“l'a‘Ž0jout“d'€élargissemen˜t“et“de“re-Ž¡‘ÌÍtr€écissemen¸èt.Ž¦‘ÑIÕ482Ž‘!£eÚ\@tempdima\topskipŽ¤ ‘ÑIÕ483Ž‘!£eÚ\splittopskip\@tempdimaŽ¡‘ÑIÕ484Ž‘4ˆÚ\@plus\multicolundershootŽ¡‘ÑIÕ485Ž‘4ˆÚ\@minus\multicolovershootŽ¡‘ÑIÕ486Ž‘!£eÚ\splitmaxdepth\maxdepthŽŸKÚ‘Ì͹L'€étapšGe– 9suiv‘ÿqÐan¸ète“est“un“p˜eu“d€élicate“:“quand“T‘þUYŸ&úEŽ‘ã9X“as-Ž¤ ‘ÌÍsem¸èble–P©le“mat€ériel“dans“une“bGo€îte,“la“premi€ère“ligneŽ¡‘ÌÍn'est–~pas“pr€éc€éd€ée“par“la“glue“d'in¸èterligne,“Øi.e.“¹il“n'yŽ¡‘ÌÍa–@­pas“de“parem€ètre“tel“que“Ö\boxtopskip“¹dans“T‘þUYŸ&úEŽ‘ã9X.Ž¡‘ÌÍCela–®Àsignie“que“la“ligne“de“base“de“la“premi€ère“ligneŽŽŽŽŸ’åP19ŽŽŒ‹¤y ¨ ýF œ ý‚¹de–Šãnotre“bšGo€îte“est“situ€ée“en“un“p˜oin¸èt“impr€évisible“quiŽ¤ d€épGend–è de“la“hauteur“du“caract€ère“le“plus“large“deŽ¡cette–p¨ligne.“Mais,“bien“s€ûr,“nous“v¸èoulons“que“toutesŽ¡les–Ðcolonnes“soienš¸èt“correctemen˜t“align€ées“sur“la“ligneŽ¡de–¥base“de“leur“premi€ère“ligne.“P¸èour“cette“raison,Ž¡nous›mza•¸èv“ons˜ouv“ert˜Ö\mult@box˜¹a“v“ec˜un˜Ö\penalty˜¹deŽ¡Ô-10000¹.–NCela“nous“pšGermettra“alors“de“d€étac¸èher“un“p˜e-Ž¡tit–«Omorceau“de“Ö\mult@box“¹(en“fait,“rien,“puisque“leŽ¡premier–n pšGoin¸èt“de“rupture“p˜ossible“est“le“premier“itemŽ¡dans–Mýla“bGo€îte).“En“cons€équence,“Ö\splittopskip“¹estŽ¡ins€ér€é–Þau“d€ébut“de“Ö\mult@box“¹ce“qui“est“exactemen¸ètŽ¡ce–U que“nous“v¸èoulons“faire.Ž©‹£‘ü|Õ487Ž‘Ö˜Ú\setbox\@tempboxa\vsplit\mult@box‘¹Nto\z@ŽŸ‹£¹Ensuite––nous“essa•¸èy“ons––de“trouvš¸èer“un“pGoin˜t“de“d€é-Ž¡part›þÈcon•¸èv“enable˜pGour˜le˜calcul˜de˜hauteur˜de˜co-Ž¡lonne.–PNIl“doit“€être“inf€érieur“€à“la“hauteur“nale“d€é-Ž¡sir€ée–ºmais“susan¸èt“pGour“atteindre“cette“v‘ÿqÐaleur“-Ž¡nale–Ïen“quelques“it€érations“seulemenš¸èt.“La“form˜uleŽ¡qui–oest“main•¸ètenan“t›oimpl€émen“t€ée˜essaiera˜de˜com-Ž¡mencer›é„a•¸èv“ec˜la˜v‘ÿqÐaleur˜la˜plus˜proGc“he˜d'un˜m“ultipleŽ¡de–O-Ö\baselineskip¹.“Le“coGdage“est“l€ég€èremen¸èt“subtilŽ¡dans–U T‘þUYŸ&úEŽ‘ã9X“et“il“y“a“pGeut-€être“un“meilleur“mo•¸èy“en...Ž¦‘ü|Õ488Ž‘Ö˜Ú\@tempdima\ht\mult@boxŽ¤ ‘ü|Õ489Ž‘Ö˜Ú\advance\@tempdima\dp\mult@boxŽ¡‘ü|Õ490Ž‘Ö˜Ú\divide\@tempdima\col@numberŽŸ‹£¹Le–·ŽcoGde“ci-dessus“r€ègle“Ö\@tempdima“¹€à“la“longueurŽ¤ d'une–åRcolonne“si“nous“divisons“simplemen¸èt“la“bGo€îteŽ¡enš¸èti€ère–à¡en“parties“€égales.“P˜our“donner“le“plus“pGetitŽ¡m•¸èultiple›suiv‘ÿqÐan“t˜de˜Ö\baselineskip¹,˜nous˜con“v“er-Ž¡tissons–Îêcette“dimension“en“un“nomš¸èbre“(le“nom˜breŽ¡de–§ÁpGoinš¸èts“d'€éc˜helle)“et“puis,“nous“m˜ultiplions“ce“r€é-Ž¡sultat–!par“Ö\baselineskip“¹assignan¸èt“cette“v‘ÿqÐaleur“€àŽ¡Ö\dimen@¹.–U Cela“rend“Ö\dimen@“¸“¹€à“Ö\@tempdimena¹.Ž¦‘ü|Õ491Ž‘Ö˜Ú\count@\@tempdimaŽ¤ ‘ü|Õ492Ž‘Ö˜Ú\divide\count@\baselineskipŽ¡‘ü|Õ493Ž‘Ö˜Ú\dimen@\count@\baselineskipŽŸ‹£¹L'€étapGe–ûšsuiv‘ÿqÐan¸ète“est“de“corriger“notre“r€ésultat“enŽ¤ prenanš¸èt–{en“compte“la“di€érence“en˜tre“Ö\topskipŽ¡¹et–Œ|Ö\baselineskip¹.“Nous“commen€çons“par“a‘Ž0jouterŽ¡Ö\topskip‘ª“¹;–|–si“cela“donne“un“r€ésultat“trop“grand,Ž¡alors–U il“nous“faut“soustraire“une“Ö\baselineskip¹.Ž¦‘ü|Õ494Ž‘Ö˜Ú\advance\dimen@\topskipŽ¤ ‘ü|Õ495Ž‘Ö˜Ú\ifdim–¹N\dimen@“>\@tempdimaŽ¡‘ü|Õ496Ž‘"I4Ú\advance\dimen@-\baselineskipŽ¡‘ü|Õ497Ž‘Ö˜Ú\fiŽŸ‹£¹€À‘{la–|+demande“de“l'utilisateur,“nous“commen€çonsŽ¤ a•¸èv“ec–Jrla“v‘ÿqÐaleur“la“plus“haute“(ou“la“plus“faible,“mais,Ž¡d'habitude,–U cela“augmenš¸ète“le“nom˜bre“d'essais).Ž¦‘ü|Õ498Ž‘Ö˜Ú\advance\dimen@\c@unbalance\baselineskipŽŸ‹£¹Nous–/¨visualisons“les“statistiques“si“cela“a“€ét€é“de-Ž¡mand€é.Ž¦‘ü|Õ499Ž‘Ö˜Ú\mult@info\@neŽŽ’éÌÍŸÿà„‰ÿàff ý€ ‘ÑIÕ500Ž‘/ÏOÚ{Balance‘¹Ncolumns\on@line:Ž¤ ‘ÑIÕ501Ž‘9AëÚ\ifnum\c@unbalance=\z@\elseŽ¡‘ÑIÕ502Ž‘4ˆÚ(off‘¹Nbalance=\number\c@unbalance)\fiŽ¡‘ÑIÕ503Ž‘/ÏOÚ\@gobbletwo}%Ž©À‘Ì͹Mais–•nous“ne“pGermettons“pas“de“v‘ÿqÐaleurs“absurdesŽŸ ‘ÌÍpGour‘U commencer.ŽŸ À‘ÑIÕ504Ž‘!£eÚ\ifnum\dimen@<\topskipŽ¡‘ÑIÕ505Ž‘+Ú\mult@info\@neŽ¡‘ÑIÕ506Ž‘4ˆÚ{Start‘¹NvalueŽ¡‘ÑIÕ507Ž‘B´‡Ú\the\dimen@‘ rœ\space‘¹N->Ž¡‘ÑIÕ508Ž‘B´‡Ú\the\topskip–¹N\space“(corrected)}%Ž¡‘ÑIÕ509Ž‘+Ú\dimen@\topskipŽ¡‘ÑIÕ510Ž‘!£eÚ\fiŽ¦‘Ì͹Main•¸ètenan“t,–SÊnous“essa•¸èy“ons–SÊde“trouv¸èer“la“hauteurŽ¤ ‘ÌÍnale–_£des“colonnes.“Nous“commen€çons“par“r€églerŽ¡‘ÌÍÖ\vbadness–Gá¹€à“l'inni“(Øi.e.“²10000¹)“pGour“supprimer“lesŽ¡‘ÌÍbšGo€îtes–Vdinsusammen¸èt“remplies“p˜endan¸èt“que“nousŽ¡‘ÌÍsommes–Ôen“train“de“trouv¸èer“une“solution“acceptable.Ž¡‘ÌÍNous›h!n'a•¸èv“ons˜pas˜b•Gesoin˜de˜faire˜cela˜dans˜un˜group“eŽ¡‘ÌÍpuisqu'€à–Ç’la“n“de“la“routine“de“sortie,“tout“est“res-Ž¡‘ÌÍtaur€é.–ŽþLe“r€églage“des“colonnes“nales“proGduira“tou-Ž¡‘ÌÍjours–¼—des“bšGo€îtes“p˜eu“remplies,“a•¸èv“ec–¼—une““laideur“Ž¡‘ÌÍde–‡a²10000“¹et“donc“il“n'y“a“pas“lieu“d'en“a•¸èv“ertir‘‡al'uti-Ž¡‘ÌÍlisateur.ŽŸ À‘ÑIÕ511Ž‘!£eÚ\vbadness\@MŽ¦‘Ì͹Nous–êepšGermettons“aussi“les“b˜o€îtes“d€éb˜ordan¸ètes“p˜en-Ž¡‘ÌÍdanš¸èt–U que“nous“essa˜y˜ons“de“s€éparer“les“colonnes.ŽŸ À‘ÑIÕ512Ž‘!£eÚ\vfuzz‘¹N\col@number\baselineskipŽ¦‘Ì͹La–®v‘ÿqÐariable“Ö\last@try“¹prendra“la“dimension“utilis€éeŽ¡‘ÌÍdans–8ªle“pr€éc€éden¸èt“test“de“s€éparation.“Nous“l'initiali-Ž¡‘ÌÍsons›U a•¸èv“ec˜une˜v‘ÿqÐaleur˜n€égativ“e.ŽŸ À‘ÑIÕ513Ž‘!£eÚ\last@try-\p@ŽŸ ‘ÑIÕ514Ž‘!£eÚ\loopŽ¦‘Ì͹An–&de“ne“pas“encom¸èbrer“la“pr€écieuse“m€émoire“prin-Ž¡‘ÌÍcipale–Æîde“T‘þUYŸ&úEŽ‘ã9X“a•¸èv“ec–Æîdes“cš¸èhoses“don˜t“nous“n'a˜v˜ons“pasŽ¡‘ÌÍbšGesoin,–&Õnous“vidons“tous“les“registres“de“b˜o€îte“uti-Ž¡‘ÌÍlis€és–¬Èglobalemenš¸èt.“C'est“n€écessaire“si“nous“rev˜enonsŽ¡‘ÌÍ€à–Ì ce“pGoin¸èt“apr€ès“un“essai“infructueux.“Nous“utili-Ž¡‘ÌÍsons– ÒÖ\process@cols“¹dans“ce“but,“commen€çanš¸èt“a˜v˜ecŽ¡‘ÌÍÖ\mult@grightbox¹.–=ëNotez“les“accolades“suppl€émen-Ž¡‘ÌÍtaires–Ú‹autour“de“l'appGel“de“macro“:“elles“son¸èt“n€é-Ž¡‘ÌÍcessaires–.´puisque“le“m€écanisme“Ö\loop¹.–ª.“.Ö\repeat‘.´¹deŽ¡‘ÌÍáPlain‘¹T‘þUYŸ&úEŽ‘ã9X–nIne“pGeut“€être“encapsul€é“au“m€ême“niv¸èeauŽ¡‘ÌÍde‘U groupGemen¸èt.ŽŸ À‘ÑIÕ515Ž‘&\³Ú{\process@cols\mult@grightboxŽ¤ ‘ÑIÕ516Ž‘GmÕÚ{\global\setbox\count@Ž¡‘ÑIÕ517Ž‘m8EÚ\box\voidb@x}}%Ž¦‘Ì͹Le›‰Úcon•¸èten“u˜de˜la˜bGo€îte˜Ö\mult@box˜¹est˜main“tenan“tŽ¤ ‘ÌÍcopi€é–\$globalemen¸èt“dans“la“bGo€îte“Ö\mult@grightboxŽ¡‘Ì͹(ce–&0sera“la“colonne“la“plus“€à“droite,“comme“nous“de-Ž¡‘ÌÍvrions–U le“v¸èoir“plus“loin).ŽŸ À‘ÑIÕ518Ž‘&\³Ú\global\setbox\mult@grightboxŽŸ ‘ÑIÕ519Ž‘GmÕÚ\copy\mult@boxŽŽŽŽŸ’åP¹20ŽŽŒ‹º ¨ ýF œŸæÓÞ ý›,"¹Nous–ejcommen€çons“par“suppGoser“que“l'essai“sera“fruc-Ž¤ tueux.–‰ŠSi“nous“nissons“a•¸èv“ec–‰Šune“trop“mauv‘ÿqÐaise“so-Ž¡lution,–U nous“r€églons“Ötoo@bad“¹€à“Ötrue¹.Ž© Zb‘ü|Õ520Ž‘ ª®ÐhäbadnessŽ‘"šóÐiŽ¤ ‘ü|Õ521Ž‘Ö˜Ú\global\too@badfalseŽ¡‘ü|Õ522Ž‘ ª®ÐhÏ=äbadnessŽ‘"šóÐiŽŸZb¹En–‰êutilisanš¸èt“Ö\vsplit¹,“nous“extra˜y˜ons“les“autres“co-Ž¤ lonnes–‘‡du“registre“de“bGo€îte“Ö\mult@grightbox¹.“CelaŽ¡laisse–Ÿle“registre“de“bGo€îte“Ö\mult@box“¹in¸ètact“an“deŽ¡pGouv¸èoir–U recommencer“si“cet“essai“a“€ét€é“infructueux.Ž¦‘ü|Õ523Ž‘Ö˜Ú{\process@cols\mult@firstbox{%Ž¤ ‘ü|Õ524Ž‘5.lÚ\global\setbox\count@Ž¡‘ü|Õ525Ž‘5.lÚ\vsplit\mult@grightbox‘¹Nto\dimen@ŽŸZb¹Apr€ès–•toutes“les“s€éparations,“nous“v¸è€érions“la“lai-Ž¤ deur–“des“colonnes“r€ésultanš¸ètes“:“normalemen˜t,“c'est“laŽ¡quanš¸ètit€é–U de“blanc“suppl€émen˜taire“dans“la“colonne.Ž¦‘ü|Õ526Ž‘ ª®ÐhäbadnessŽ‘"šóÐiŽ¤ ‘ü|Õ527Ž‘5.lÚ\ifnum\c@tracingmulticols>\@neŽ¡‘ü|Õ528Ž‘>¡Ú\@tempcnta\count@Ž¡‘ü|Õ529Ž‘>¡Ú\advance\@tempcnta-\mult@grightboxŽ¡‘ü|Õ530Ž‘>¡Ú\divide\@tempcnta‘¹N\tw@Ž¡‘ü|Õ531Ž‘>¡Ú\message{^^JColumnŽ¡‘ü|Õ532Ž‘LÌòÚ\number\@tempcnta\spaceŽ¡‘ü|Õ533Ž‘Q†@Úbadness:‘¹N\the\badness\space}%Ž¡‘ü|Õ534Ž‘5.lÚ\fiŽŸZb¹Si–†la“laideur“est“plus“grande“que“celle“autoris€ée“parŽ¤ la–ijlaideur“des“colonnes,“nous“rejetons“cette“solutionŽ¡en–U xan¸èt“Ötoo@bad“¹€à“Ötrue¹.Ž¦‘ü|Õ535Ž‘5.lÚ\ifnum\badness>\c@columnbadnessŽ¤ ‘ü|Õ536Ž‘>¡Ú\ifnum\c@tracingmulticols>\@neŽ¡‘ü|Õ537Ž‘H¤Ú\message{too‘¹NbadŽ¡‘ü|Õ538Ž‘_²*Ú(>\the\c@columnbadness)}%Ž¡‘ü|Õ539Ž‘>¡Ú\fiŽ¡‘ü|Õ540Ž‘>¡Ú\global\too@badtrueŽ¡‘ü|Õ541Ž‘5.lÚ\fiŽ¡‘ü|Õ542Ž‘ ª®ÐhÏ=äbadnessŽ‘"šóÐiŽ¡‘ü|Õ543Ž‘| þÚ}}%ŽŸZb¹Il–Xíy“a“ici“une“subtilit€é“:“alors“que“toute“les“autresŽ¤ bGo€îtes–WÐconstruites“on¸èt“une“profondeur“d€étermin€éeŽ¡par–¿Ö\splitmaxdepth¹,“la“derni€ère“bGo€îte“aura“uneŽ¡profondeur–– naturelle“ne“tenan¸èt“pas“compte“du“r€é-Ž¡glage–îoriginal“et“de“la“v‘ÿqÐaleur“de“Ö\splitmaxdepth“¹ouŽ¡Ö\boxmaxdepth¹.–ÓâCela“signie“que“nous“pGouv¸èons“ter-Ž¡miner›Û[a•¸èv“ec˜une˜profondeur˜tr€ès˜grande˜dans˜la˜bGo€îteŽ¡Ö\mult@grightbox¹,–VIce“qui“pGourrait“donner“un“r€ésul-Ž¡tat–è°de“test“incorrect.“Donc,“nous“moGdions“la“v‘ÿqÐaleurŽ¡en–U vidan¸èt“la“bGo€îte“dans“elle-m€ême.Ž¦‘ü|Õ544Ž‘Ö˜Ú\boxmaxdepth\maxdepthŽ¤ ‘ü|Õ545Ž‘Ö˜Ú\global\setbox\mult@grightboxŽ¡‘ü|Õ546Ž‘'‚Ú\vbox{\unvbox\mult@grightbox}%ŽŸZb¹Nous–Ôsauv¸èegardons“aussi“une“copie“de“la“v‘ÿqÐaleur““na-ŽŸ turelle–U “Ö\mult@firstbox“¹pGour“un“usage“ult€érieur.ŽŽ’éÌÍŸñ¨„pņff ý™:z‘ÑIÕ547Ž‘!£eÚ\setbox\mult@nat@firstboxŽ© ‘ÑIÕ548Ž‘/ÏOÚ\vbox{\unvcopy\mult@firstbox}%ŽŸŒV‘Ì͹Apr€ès–x–que“Ö\process@cols“¹a“fait“son“tra¸èv‘ÿqÐail,“nousŽ¤ ‘ÌÍsommes–U dans“la“situation“suiv‘ÿqÐan¸ète“:ŽŸYðŸ$ÓâŸä’‚‘%EYbGo€îte‘U Ö\mult@rightbox‘qÀ¸ ‘þUXŽŽŽŽ’¡A¹tout–U le“mat€érielŽŽ¡‘ ­bGo€îte‘U Ö\mult@gfirstbox‘qÀ¸ ‘þUXŽŽŽŽ’¡A¹premi€ère‘U colonneŽŽ¡‘ÌÎbGo€îte‘U Ö\mult@gfirstbox–8à²+“2‘qÀ¸ ‘þUXŽŽŽŽ’¡A¹seconde‘U colonneŽŽŸ§ÄŸø‘S†.Ž¤‘S†.Ž¡‘S†.ŽŽŽŸø’Ç™].Ž¤’Ç™].Ž¡’Ç™].ŽŽŽŽ¡‘ ­bGo€îte‘U Ö\mult@grightbox‘qÀ¸ ‘þUXŽŽŽŽ’¡A¹derni€ère‘U colonneŽŽŽŽŽŸ-CX‘ÌÍNous–9®rappGortons“la“hauteur“de“la“premi€ère“colonne,Ž¡‘ÌÍla–U taille“naturelle“€étanš¸èt“donn€ée“en˜tre“croGc˜hets.ŽŸŒV‘ÑIÕ549Ž‘&\³Ú\ifnum\c@tracingmulticols>\@neŽ¦‘ÑIÕ550Ž‘4ˆÚ\message{^^JFirst‘¹NcolumnŽ¦‘ÑIÕ551Ž‘GmÕÚ=‘¹N\the\dimen@\spaceŽ¦‘ÑIÕ552Ž‘GmÕÚ(\the\ht\mult@nat@firstbox)}\fiŽŸŒV‘Ì͹Si–MýÖ\raggedcolumns“¹est“forc€é,“les“anciennes“v¸èersionsŽ¡‘ÌÍde–fNce“cš¸èhier“retr€écissen˜t“aussi“la“premi€ère“colonneŽ¡‘ÌÍjusqu'€à– ¥sa“v‘ÿqÐaleur“naturelle“€à“cet“endroit.“Cela“€étaitŽ¡‘ÌÍr€éalis€é–7de“telle“sorte“que“la“premi€ère“colonne“ne“soitŽ¡‘ÌÍpas–Yéplus“pGetite“compar€ée“€à“la“derni€ère,“mais“cela“pro-Ž¡‘ÌÍduisait–xµen“fait“des“r€ésultats“incorrects“(sup•Gerp“ositionŽ¡‘ÌÍde–sêtexte)“dans“les“cas“li€és.“C'est“pGourquoi“depuis“laŽ¡‘ÌÍv1.5q,–‘‡Ö\raggedcolumns“¹pGermetten¸èt“€à“toutes“les“co-Ž¡‘ÌÍlonnes–U d'€être“l€ég€èremen¸èt“courtes.ŽŸŒV‘ÑIÕ553Ž‘w{Ú%‘å8\ifshr@nkingŽ¦‘ÑIÕ554Ž‘w{Ú%‘WÔ\global\setbox\mult@firstboxŽ¦‘ÑIÕ555Ž‘w{Ú%‘=hö\copy\mult@nat@firstboxŽ¦‘ÑIÕ556Ž‘w{Ú%‘å8\fiŽŸŒV‘Ì͹Puis,–#Vnous“donnons“des“informations“sur“la“derni€èreŽ¡‘ÌÍcolonne‘ª“Ÿü^ÿÕ17ŽŽ‘ "÷¹.ŽŸŒV‘ÑIÕ557Ž‘&\³Ú\ifnum\c@tracingmulticols>\@neŽ¦‘ÑIÕ558Ž‘/ÏOÚ\message{<>–¹Nlast“column“=Ž¦‘ÑIÕ559Ž‘ZS Ú\the\ht\mult@grightbox^^J}%ŽŸŒV‘Ì͹Du–‰coGde“de“tra€çage“que“nous“ne“compilons“pas“dansŽ¡‘ÌÍla–|‹v¸èersion“de“proGduction“€à“moins“qu'il“ne“soit“de-Ž¡‘ÌÍmand€é.–-~Il“prošGduira“d'€énormes“listes“de“b˜o€îtes“impli-Ž¡‘ÌÍqu€ées–U dans“l'€équilibrage“dans“le“c¸èhier“log.ŽŸŒV‘ÑIÕ560Ž‘w{ÐhädebugŽ‘ÒœÐiŽ¦‘ÑIÕ561Ž‘/ÏOÚ\ifnum\c@tracingmulticols>4Ž¦‘ÑIÕ562Ž‘=û9Ú{\showoutputŽ¦‘ÑIÕ563Ž‘B´‡Ú\batchmodeŽ¦‘ÑIÕ564Ž‘B´‡Ú\process@cols\@neŽ¦‘ÑIÕ565Ž‘GmÕÚ{\showbox\count@}}%Ž¦‘ÑIÕ566Ž‘B´‡Ú\errorstopmodeŽ¦‘ÑIÕ567Ž‘/ÏOÚ\fiŽ¦‘ÑIÕ568Ž‘w{ÐhÏ=ädebugŽ‘ÒœÐiŽ¦‘ÑIÕ569Ž‘+Ú\fiŽŽŽŸff‰ffYÿ¦Ÿ E¼‘vùŸý-:Ñ17ŽŽŽ‘KÙÉA‘ÿHvšÃ’ec–¨ST‘þ•YŸ¸ÈEŽ‘LàX“v˜ersion“3.141,“il“est“main˜tenan˜t“p\dimen@ŽŸ¬B¹Si–&pla“hauteur“de“la“derni€ère“bGo€îte“est“trop“grande,Ž¡nous–U signalons“cet“essai“comme“infructueux.Ž¦‘ü|Õ571Ž‘ ª®ÐhäbadnessŽ‘"šóÐiŽ¤ ‘ü|Õ572Ž‘'‚Ú\too@badtrueŽ¡‘ü|Õ573Ž‘'‚Ú\ifnum\c@tracingmulticols>\@neŽ¡‘ü|Õ574Ž‘5.lÚ\typeout{Rejected:‘¹NlastŽ¡‘ü|Õ575Ž‘ZøÜÚcolumn–¹Ntoo“large!}%Ž¡‘ü|Õ576Ž‘'‚Ú\fiŽ¡‘ü|Õ577Ž‘æÚ\elseŽŸ¬B‘ ¹P¸èour–Ünous“assurer“qu'il“n'y“a“pas“de“ruptureŽ¤ forc€ée–rydans“la“derni€ère“colonne,“nous“essa•¸èy“onsŽ¡d'extraire–¹±une“bGo€îte“de“dimension“Ö\maxdimen“¹deŽ¡Ö\mult@grightbox–ðR¹(ou“mieux,“d'une“de“ses“copies).Ž¡Cela–Z.devrait“prošGduire“une“b˜o€îte“vide“apr€ès“l'extrac-Ž¡tion,–N€à“moins“qu'il“n'y“eut“une“rupture“forc€ée“quelqueŽ¡part–•Þdans“la“colonne,“dans“la“cas“o€ù“le“mat€ériel“apr€èsŽ¡la–U rupture“serait“rest€é“dans“la“bGo€îte.Ž¦‘ü|Õ578Ž‘ ª®Ðhäcolb¾9reakŽ‘$S{ÐiŽ¤ ‘ü|Õ579Ž‘'‚ó?qLË ecst0900ê\setbox\@tempboxaŽ¡‘ü|Õ580Ž‘>¡ê\copy\mult@grightboxŽ¡‘ü|Õ581Ž‘'‚ê\setbox\z@\vsplit\@tempboxa‘¹Nto\maxdimenŽ¡‘ü|Õ582Ž‘'‚ê\ifvoid\@tempboxaŽ¡‘ü|Õ583Ž‘ ª®ÐhÏ=äcolb¾9reakŽ‘$S{ÐiŽŸ¬B¹Donc,–¾Ìsi“Ö\@tempboxa“¹est“vide“nous“a•¸èv“ons–¾Ìune“so-Ž¤ lution–òv‘ÿqÐalide.“Dans“ce“cas,“nous“pr€êtons“un“regardŽ¡atten¸ètif–ò€à“la“derni€ère“colonne“pGour“d€écider“si“cetteŽ¡colonne–cddoit“€être“aussi“longue“que“les“autres“ou“si“elleŽ¡pšGeut–æése“p˜ermettre“d€être“plus“courte.“P¸èour“cela,“nousŽ¡dev¸èons–Óþtout“d'abšGord“remettre“en“b˜o€îte“la“colonneŽ¡dans–L(une“bGo€îte“de“hauteur“ad€équate.“Si“le“tra€çageŽ¡est–= activš¸è€é,“nous“mon˜trons“alors“la“laideur“de“cetteŽ¡bGo€îte.Ž¦‘ü|Õ584Ž‘0uÚ\global\setbox\mult@grightboxŽ¤ ‘ü|Õ585Ž‘>¡Ú\vbox‘¹Nto\dimen@Ž¡‘ü|Õ586Ž‘LÌòÚ{\unvbox\mult@grightbox}%Ž¡‘ü|Õ587Ž‘0uÚ\ifnum\c@tracingmulticols>\@neŽ¡‘ü|Õ588Ž‘9çºÚ\message{Final‘¹Nbadness:Ž¡‘ü|Õ589Ž‘dkxÚ\the\badness}%Ž¡‘ü|Õ590Ž‘0uÚ\fiŽŸ¬B¹Nous–¬‚comparons“ensuite“cette“laideur“a•¸èv“ec–¬‚la“m€édio-Ž¤ crit€é–}(autoris€ée“pGour“la“colonne“nale.“Si“elle“n'exc€èdeŽ¡pas–’lcette“v‘ÿqÐaleur,“nous“utilisons“la“bGo€îte,“sinon“nousŽ¡remettons–õwen“bGo€îte“une“fois“de“plus“et“a‘Ž0joutons“deŽ¡la–U glue“au“d€ébut.ŽŽ’éÌÍŸñ¨„‰ñ¨ff ý€X‘ÑIÕ591Ž‘9AëÚ\ifnum\badness>\c@finalcolumnbadnessŽ¤ ‘ÑIÕ592Ž‘B´‡Ú\global\setbox\mult@grightboxŽ¡‘ÑIÕ593Ž‘GmÕÚ\vbox‘¹Nto\dimen@Ž¡‘ÑIÕ594Ž‘U™¿Ú{\unvbox\mult@grightbox\vfill}%Ž¡‘ÑIÕ595Ž‘GmÕÚ\ifnum\c@tracingmulticols>\@neŽ¡‘ÑIÕ596Ž‘PàqÚ\message{–¹Nsetting“naturalŽ¡‘ÑIÕ597Ž‘U™¿Ú(>‘¹N\the\c@finalcolumnbadness)}%Ž¡‘ÑIÕ598Ž‘GmÕÚ\fiŽ¡‘ÑIÕ599Ž‘9AëÚ\fiŽ©$’‘Ì͹Si–êfÖ\@tempboxa“¹ci-dessus“n'est“pas“vide,“notre“essaiŽ¤ ‘ÌÍest–ƒQinfructueux,“nous“rappGortons“donc“ce“fait“et“r€é-Ž¡‘ÌÍessa•¸èy“ons.ŽŸ$’‘ÑIÕ600Ž‘w{Ðhäcolb¾9reakŽ‘$S{ÐiŽ¤ ‘ÑIÕ601Ž‘/ÏOê\elseŽ¡‘ÑIÕ602Ž‘9Aëê\too@badtrueŽ¡‘ÑIÕ603Ž‘9Aëê\ifnum\c@tracingmulticols>\@neŽ¡‘ÑIÕ604Ž‘B´‡ê\typeout{Rejected:‘¹NunprocessedŽ¡‘ÑIÕ605Ž‘L'#êforced–¹Nbreak(s)“in“last“column!}%Ž¡‘ÑIÕ606Ž‘9Aëê\fiŽ¡‘ÑIÕ607Ž‘/ÏOê\fiŽ¡‘ÑIÕ608Ž‘&\³ê\fiŽ¡‘ÑIÕ609Ž‘w{ÐhÏ=äcolb¾9reakŽ‘$S{ÐiŽ¦‘Ì͹Si–8¬la“hauteur“naturelle“de“la“premi€ère“bGo€îte“est“plusŽ¤ ‘ÌÍpGetite–/1que“la“taille“donn€ée“par“l'essai“en“cours,“maisŽ¡‘ÌÍplus–Îgrande“que“celle“donn€ée“par“l'essai“pr€éc€éden¸èt,Ž¡‘ÌÍil–5ñest“probable“que“nous“a•¸èv“ons–5ñoubli€é“une“solutionŽ¡‘ÌÍpšGoten•¸ètiellemen“t–+¡meilleure“(cela“p˜eut“arriv¸èer“si,“p˜ourŽ¡‘ÌÍquelque–ÞFraison,“la“taille“obten¸èue“apr€ès“notre“premierŽ¡‘ÌÍessai–_Å€était“trop“grande).“Dans“ce“cas,“nous“€écartonsŽ¡‘ÌÍcet–w#essai“et“red€émarrons“un“nouvš¸èel“essai“a˜v˜ec“la“tailleŽ¡‘ÌÍnaturelle.ŽŸ$’‘ÑIÕ610Ž‘&\³Ú\ifdim\ht\mult@nat@firstbox<\dimen@Ž¤ ‘ÑIÕ611Ž‘/ÏOÚ\ifdim\ht\mult@nat@firstbox>\last@tryŽ¡‘ÑIÕ612Ž‘9AëÚ\too@badtrueŽ¡‘ÑIÕ613Ž‘9AëÚ\ifnum\c@tracingmulticols>\@neŽ¡‘ÑIÕ614Ž‘GmÕÚ\typeout{Retry:–¹Nusing“naturalŽ¡‘ÑIÕ615Ž‘qñ“Úheight–¹Nof“first“column!}%Ž¡‘ÑIÕ616Ž‘9AëÚ\fiŽ¡‘ÑIÕ617Ž‘9AëÚ\dimen@\ht\mult@nat@firstboxŽ¡‘ÑIÕ618Ž‘9AëÚ\last@try\dimen@Ž¡‘ÑIÕ619Ž‘9AëÚ\advance\dimen@-\p@Ž¡‘ÑIÕ620Ž‘/ÏOÚ\fiŽ¡‘ÑIÕ621Ž‘&\³Ú\fiŽ¦‘Ì͹Finalemenš¸èt,–›le“comm˜utateur“Ötoo@bad“¹est“test€é.“S'ilŽ¤ ‘ÌÍa–!’€ét€é“x€é“€à“vrai,“soit“plus“t€ôt,“soit“€à“cause“d'une“co-Ž¡‘ÌÍlonne–®Ýde“droite“trop“grande,“nous“essa•¸èy“ons–®Ýde“nou-Ž¡‘ÌÍv•¸èeau›³~a“v“ec˜une˜v‘ÿqÐaleur˜de˜Ö\dimen@˜¹l€ég€èremen“t˜plusŽ¡‘ÌÍgrande.ŽŸ$’‘ÑIÕ622Ž‘&\³Ú\iftoo@badŽ¤ ‘ÑIÕ623Ž‘w{ÐhÏ=äbadnessŽ‘"šóÐiŽ¡‘ÑIÕ624Ž‘/ÏOÚ\advance\dimen@\p@Ž¡‘ÑIÕ625Ž‘&\³Ú\repeatŽ¦‘Ì͹€À‘àce–”momen¸èt,“Ö\dimen@“¹prend“la“hauteur“qui“aŽŸ ‘ÌÍ€ét€é–¹¦d€étermin€ée“par“la“bGoucle“d'€équilibrage.“Si“cetteŽŽŽŽŸ’åP22ŽŽŒ‹è! ¨ ýF œ þ ÿd¹hauteur–B²de“colonne“devien¸èt“plus“grande“que“l'es-Ž¤ pace–0>dispGonible“(qui“est“Ö\@colroom¹)“nous“faisonsŽ¡en¸ètrer–y{de“force“les“colonnes“dans“l'espace,“en“sup-Ž¡pGosanš¸èt–Àíqu'elles“auron˜t“assez“de“con˜tractibilit€é“pGourŽ¡le‘U faire‘ª“Ÿü^ÿÕ18ŽŽ‘ "÷¹.ŽŸ ¸Ê‘ü|Õ626Ž‘Ö˜Ú\ifdim\dimen@>\@colroomŽ¤ ‘ü|Õ627Ž‘'‚Ú\dimen@\@colroomŽ¡‘ü|Õ628Ž‘Ö˜Ú\fiŽŸ ¸Ê¹Puis,–¥6nous“d€épla€çons“le“con•¸èten“u–¥6des“registres“deŽ¤ bGo€îte– Úimpairs“v¸èers“les“registres“pairs,“en“l'€étr€écis-Ž¡sanš¸èt–à#s'il“le“faut.“Nous“dev˜ons“utiliser“Ö\vbox“¹et“nonŽ¡Ö\vtop–¬b¹(comme“c'€était“fait“dans“les“premi€ères“v¸èer-Ž¡sions)–X‡puisque,“sinon,“les“bGo€îtes“r€ésultan¸ètes“n'au-Ž¡ron¸èt–Smpas“de“hauteur“(×T‘þUYŸ&úEŽ‘ã9Xb•Go“ok‘page–Sm81).“Cela“de-ŽŽ’éÌÍŸØ„¨Øff ÿa€(‘ÌÍvrait–x¶dire“que“le“Ö\topskip“¹suppl€émen¸ètaire“est“a‘Ž0jout€éŽ¤ ‘ÌÍquand–B[les“bGo€îtes“son¸èt“rendues“au“Øp‘ÿ}/age_builder“¹viaŽ¡‘ÌÍÖ\page@sofar¹.ŽŸùð‘ÑIÕ629Ž‘!£eÚ\process@cols\mult@rightboxŽ¤ ‘ÑIÕ630Ž‘4ˆÚ{\@tempcnta\count@Ž¡‘ÑIÕ631Ž‘9AëÚ\advance\@tempcnta\@neŽ¡‘ÑIÕ632Ž‘9AëÚ\setbox\count@\vbox‘¹Nto\dimen@Ž¡‘ÑIÕ633Ž‘GmÕÚ{%ŽŸF‘ÑIÕ634Ž‘L'#Ú\vskip‘¹N\z@Ž¡‘ÑIÕ635Ž‘U™¿Ú\@plus-\multicolundershootŽ¡‘ÑIÕ636Ž‘U™¿Ú\@minus-\multicolovershootŽ¡‘ÑIÕ637Ž‘L'#Ú\unvbox\@tempcntaŽ¡‘ÑIÕ638Ž‘L'#Ú\ifshr@nking\vfill\fi}}%Ž¡‘ÑIÕ639Ž‘w{Ú}ŽŽŽŸ½=Û4.5Ž‘¾Les–¸alloš_úcations“de“b˜o€îtesŽ ˜q ÿ}ŽpŸ ŽŽŽ¤ ¡ŽŽŽŽ¹Les–ÐDpr€éc€édenš¸ètes“v˜ersions“de“ces“macros“utilisaien˜tŽ¤ les–„®premiers“registres“de“bšGo€îte“0,“2,“4,“...“p˜our“lesŽ¡bšGo€îtes–Üæglobales“et“1,“3,“5,“...“p˜our“les“b˜o€îtes“lo˜calesŽ¡correspšGondan¸ètes–ä(V‘ÿ*¸ous“p˜ourriez“encore“trouv¸èer“desŽ¡traces––*de“ce“setup“dans“la“doGcumen¸ètation.“*soupir*).Ž¡Cela–!ÃpGose“un“probl€ème“€à“partir“du“momen¸èt“o€ù“nousŽ¡a•¸èv“ons–¿¿plus“de“5“colonnes“puisque“les“bGo€îtes“ociel-Ž¡lemenš¸èt–allou€ées“seron˜t“r€é€écrites“par“l'algorithme.“LaŽ¡nouv•¸èelle›ÖAv“ersion˜utilise˜main“tenan“t˜des˜registres˜deŽ¡bGo€îte‘U priv¸è€és.ŽŸ ¸Ê‘ü|Õ640Ž‘ ª®Ú\newbox\mult@rightboxŽŸ ‘ü|Õ641Ž‘ ª®Ú\newbox\mult@grightboxŽŽ’éÌÍŸÿà„Žqpff ÿ{Ž‘ÑIÕ642Ž‘w{Ú\newbox\mult@gfirstboxŽ¤ ‘ÑIÕ643Ž‘w{Ú\newbox\mult@firstboxŽ¡‘ÑIÕ644Ž‘w{Ú\newbox\@tempa\newbox\@tempaŽ¡‘ÑIÕ645Ž‘w{Ú\newbox\@tempa\newbox\@tempaŽ¡‘ÑIÕ646Ž‘w{Ú\newbox\@tempa\newbox\@tempaŽ¡‘ÑIÕ647Ž‘w{Ú\newbox\@tempa\newbox\@tempaŽ¡‘ÑIÕ648Ž‘w{Ú\newbox\@tempa\newbox\@tempaŽ¡‘ÑIÕ649Ž‘w{Ú\newbox\@tempa\newbox\@tempaŽ¡‘ÑIÕ650Ž‘w{Ú\newbox\@tempa\newbox\@tempaŽ¡‘ÑIÕ651Ž‘w{Ú\newbox\@tempa\newbox\@tempaŽ¡‘ÑIÕ652Ž‘w{Ú\newbox\@tempaŽ¡‘ÑIÕ653Ž‘w{Ú\let\@tempa\relaxŽŽŽŸ!ÖÓ5Ž‘ÁNouvšcelles–G\macros“et“bidouilles“ppœour“la“v˜ersion“1.2Ž ñ”; ÿ'8d¹Si–]xnous“n'utilisons“pas“T‘þUYŸ&úEŽ‘ã9X“3.0,“Ö\emergencystretchŽ¤ ¹n'est–¦Ípas“d€éni,“donc,“dans“ce“cas,“nous“a‘Ž0joutonsŽ¡simplemen¸èt–U un“registre“¸hØdimen‘ÄU¸iŽ‘)Çò¹non“utilis€é.Ž©”ì‘ü|Õ654Ž‘ ª®Ú\@ifundefined{emergencystretch}ŽŸ ‘ü|Õ655Ž‘"I4Ú{\newdimen\emergencystretch}{}ŽŸ”í¹Mes– Oütests“mon•¸ètren“t– Oüque“la“formš¸èule“suiv‘ÿqÐan˜teŽ¡fonctionne– MŒassez“bien.“N€éanmoins,“la“macroŽ¡Ö\setemergencystretch–”¹prend“aussi“Ö\hsize“¹en“se-Ž¡cond–=argumen¸èt“pšGour“p˜ermettre“€à“l'utilisateur“d'es-Ž¡sa•¸èy“er›U di€éren“tes˜form“ules.Ž¦‘ü|Õ656Ž‘ ª®Ú\def\setemergencystretch#1#2{%Ž¤ ‘ü|Õ657Ž‘Ö˜Ú\emergencystretch‘¹N4ptŽ¡‘ü|Õ658Ž‘Ö˜Ú\multiply\emergencystretch#1}ŽŸsë¹M€ême– usi“cela“doit“€être“utilis€é“comme“pGoinš¸èt“d'en˜tr€ée,Ž¤ nous–¥¾utilisons“Ö@“¹dans“le“nom,“puisque“c'est“plus“pGourŽ¡des‘U expGerts.Ž¦‘ü|Õ659Ž‘ ª®Ú\def\set@floatcmds{%ŽŸ ‘ü|Õ660Ž‘cüÚ\let\@dblfloat\@dbfltŽŽ’éÌÍŸÿà„äÇ|ff ÿ%8„‘ÑIÕ661Ž‘0ÉÚ\def\end@dblfloat{\parŽ¤ ‘ÑIÕ662Ž‘!£eÚ\vskip\z@Ž¡‘ÑIÕ663Ž‘!£eÚ\egroupŽ¡‘ÑIÕ664Ž‘!£eÚ\color@endboxŽ¡‘ÑIÕ665Ž‘!£eÚ\@largefloatcheckŽ¡‘ÑIÕ666Ž‘!£eÚ\outer@nobreakŽ©B‰‘Ì͹C'est–pvfacile“(de“di€érer“les“ottan¸èts“jusqu'apr€ès“laŽ¤ ‘ÌÍpage–¹Ñcouran¸ète)“mais“toute“autre“solution“obligeraitŽ¡‘ÌÍ€à–øs'enfoncer“dans“la“routine“de“sortie“de“LŸýï‘üf ÕAŽŽ‘Íz¹T‘þUYŸ&úEŽ‘ã9X,“et“jeŽ¡‘ÌÍn'aime–¨pas“y“traš¸èv‘ÿqÐailler“tan˜t“que“je“ne“sais“pas“quelleŽ¡‘ÌÍpartie–¸³de“la“routine“de“sortie“devra“€être“r€éimpl€émen-Ž¡‘ÌÍt€ée–U pGour“LŸýï‘üf ÕAŽŽ‘Íz¹T‘þUYŸ&úEŽ‘ã9X3.ŽŸB‰‘ÑIÕ667Ž‘!£eÚ\ifnum\@floatpenalty<\z@Ž¦‘Ì͹Nous–T&devš¸èons“a‘Ž0jouter“le“ottan˜t“€à“Ö\@deferlist“¹parceŽ¡‘ÌÍque–^tnous“suppGosons“qu'en“dehors“de“l'en¸èvironne-Ž¡‘ÌÍmen¸èt–ûšÔmulticols¹,“nous“sommes“en“moGde“simple“co-Ž¡‘ÌÍlonne.–%Ce“n'est“pas“totalemen¸èt“correct,“j'ai“d€éj€à“uti-Ž¡‘ÌÍlis€é› l'en•¸èvironnemen“t˜Ômulticols˜¹dans˜une˜d€éclarationŽŽŽŸff‰ffYÿ¦Ÿ E¼‘vùŸý-:Ñ18ŽŽŽ‘KÙÉCe–.Lsera“pšÄpremi€ère“c¸èhose“que“nous“faisons“est“de“r€éser-Ž¡v¸èer–ßtrois“noms“de“macro,“pGour“prendre“le“texteŽ¡de–…rremplacemenš¸èt,“pGour“les“primitiv˜es“de“T‘þUYŸ&úEŽ‘ã9X,Ž¡Ö\firstmark¹,–2èÖ\botmark“¹et“Ö\topmark¹.“Nous“initiali-Ž¡sons–Xles“deux“premi€ères“pGour“qu'elles“soien¸èt“vides,Ž¡et–ÍõÖ\kept@topmark“¹qui“con•¸ètien“t–Íõdeux“paires“d'acco-Ž¡lades–f8vides.“C'est“n€écessaire“puisque“Ö\kept@topmarkŽ¡¹est–ÞsuppGos€é“conš¸ètenir“la“derni€ère“marque“pro˜v˜enan˜tŽ¡d'une–o¯page“pr€éc€éden¸ète,“et,“dans“LŸýï‘üf ÕAŽŽ‘Íz¹T‘þUYŸ&úEŽ‘ã9X,“toute“marqueŽ¡–‰™r€éelle““doit“conš¸ètenir“deux“parties,“repr€ésen˜tan˜t“lesŽ¡informations–U des“marques“droites“et“gauc¸èhes.Ž©m‘ü|Õ673Ž‘ ª®Ú\def\kept@topmark{{}{}}Ž¤ ‘ü|Õ674Ž‘ ª®Ú\let\kept@firstmark\@emptyŽ¡‘ü|Õ675Ž‘ ª®Ú\let\kept@botmark\@emptyŽŸvû¹Quelquefois,–Wxnous“v¸èoulons“retourner“la“v‘ÿqÐaleur“d'uneŽ¤ marque–‚“conserv¸è€ée““dans“un“n€÷ud“Ö\mark“¹de“laŽ¡liste–Œv¸èerticale“principale.“C'est“r€éalis€é“par“la“fonctionŽ¡Ö\return@nonemptymark¹.–ÌComme“le“nom“le“sugg€ère,Ž¡elle–Bbagit“seulemenš¸èt“si“le“texte“de“remplacemen˜t“deŽ¡la–É…marque“conserv¸è€ée“n'est“pas“vide.“C'est“fait“pGourŽ¡€éviter–°6d'a‘Ž0jouter“une“marque“vide,“quand“aucuneŽ¡marque–0 n'est“eectiv•¸èemen“t›0 pr€ésen“te.˜Si,˜n€éanmoins,Ž¡nous–æv¸èoulons“a‘Ž0jouter“une“telle“marque,“elle“doit“€êtreŽ¡consid€ér€ée–ñ‘plus“tard“comme“une“Ö\firstmark“¹v‘ÿqÐalide.Ž¦‘ü|Õ676Ž‘ ª®Ú\def\return@nonemptymark#1#2{%Ž¤ ‘ü|Õ677Ž‘JÚ\ifx#2\@emptyŽ¡‘ü|Õ678Ž‘JÚ\elseŽŸm¹Dans–8un“but“de“d€ébuggage,“nous“jetons“un“coupŽ¤ d'€÷il–&p€à“la“v‘ÿqÐaleur“de“la“marque“conserv¸è€ée“que“nousŽ¡v¸èoulons–U retourner.“Ce“coGde“le“fera.Ž¦‘ü|Õ679Ž‘ ª®Ðhäma¾9rktraceŽ‘+²ÐiŽ¤ ‘ü|Õ680Ž‘æÚ\mult@info\tw@Ž¡‘ü|Õ681Ž‘'‚Ú{Returned–¹N#1“mark:\MessageBreakŽ¡‘ü|Õ682Ž‘+»ÐÚ\meaning#2}%Ž¡‘ü|Õ683Ž‘ ª®Ú%‘WÔ\nobreakŽ¡‘ü|Õ684Ž‘ ª®Ú%‘å8\fiŽ¡‘ü|Õ685Ž‘ ª®ÐhÏ=äma¾9rktraceŽ‘+²ÐiŽŸm¹Puisque–ŽÆle“con•¸èten“u–ŽÆde“la“marque“pšGeut“€être“un“co˜deŽ¤ LŸýï‘üf ÕAŽŽ‘Íz¹T‘þUYŸ&úEŽ‘ã9X–ï—arbitraire,“nous“nous“assurons“mieux“de“sonŽ¡incapacit€é–üÀ€à“en¸ètra€îner“une“expansion“quelconqueŽŽ’éÌÍŸÿà„¡Óff ýñ^-‘ÌÍ(des–ú¶expansions“onš¸èt“€ét€é“d€éj€à“r€éalis€ées“pGendan˜t“l'ex€é-Ž¤ ‘ÌÍcution–Ÿ¯de“Ö\markright“¹ou“Ö\markboth¹).“Nous“utili-Ž¡‘ÌÍsons–ã:donc“le“m€écanisme“habituel“d'un“registre“deŽ¡‘ÌÍtokš¸èen–U pGour“in˜terdire“l'expansion‘ª“Ÿü^ÿÕ19ŽŽ‘ "÷¹.Ž© 챑ÑIÕ686Ž‘&\³Ú\toks@\expandafter{#2}%ŽŸ ‘ÑIÕ687Ž‘&\³Ú\mark{\the\toks@}%ŽŸ챑Ì͹Nous–ÞÚne“vš¸èoulons“aucun“pGoin˜t“de“rupture“en˜tre“uneŽ¡‘ÌÍtelle–Ymarque“retourn€ée“et“le“mat€ériel“suiv‘ÿqÐan¸èt“(qui,Ž¡‘ÌÍhabituellemenš¸èt,–ç:est“juste“la“bGo€îte“d'o€ù“v˜enait“laŽ¡‘ÌÍmarque).Ž¦‘ÑIÕ688Ž‘&\³Ú\nobreakŽŸ ‘ÑIÕ689Ž‘êÚ\fi}ŽŸc‘Ì͹Si–Înous“a•¸èv“ons–Îdu“mat€ériel“dans“un“registre“de“bGo€îte,Ž¡‘ÌÍnous–^ñv¸èoulons,“pGeut-€être,“mettre“la“premi€ère“et“la“der-Ž¡‘ÌÍni€ère–Jçmarques“hors“de“cette“bšGo€îte.“Cela“p˜eut“€être“r€éa-Ž¡‘ÌÍlis€é–¾ëpar“Ö\get@keptmarks“¹qui“prend“un“argumen¸èt“:“leŽ¡‘ÌÍn¸èum€éro–~/du“registre“de“bGo€îte“ou“son“alias,“d€éni“parŽ¡‘ÌÍÖ\newbox¹.Ž¦‘ÑIÕ690Ž‘w{Ú\def\get@keptmarks#1{%ŽŸ챑Ì͹Dans–'¹un“but“de“d€ébuggage,“nous“regardons“les“di-Ž¡‘ÌÍmensions–?×couran¸ètes“de“la“bGo€îte“car“dans“les“anciennesŽ¡‘ÌÍv¸èersions–wídu“coGde,“j'ai“fait“quelque“erreurs“dans“ce“do-Ž¡‘ÌÍmaine.Ž¦‘ÑIÕ691Ž‘w{ÐhädebugŽ‘ÒœÐiŽ¤ ‘ÑIÕ692Ž‘/ÏOÚ\typeout{Mark–¹Nbox“#1“before:Ž¡‘ÑIÕ693Ž‘ZS Úht–¹N\the\ht#1,“dp“\the\dp#1}%Ž¡‘ÑIÕ694Ž‘w{ÐhÏ=ädebugŽ‘ÒœÐiŽŸ챑Ì͹Main•¸ètenan“t,–¤bnous“ouvrons“un“nouv¸èeau“groupGe“et,“lo-Ž¤ ‘ÌÍcalemen¸èt,–6nous“y“copions“la“bGo€îte.“En“cons€équence,Ž¡‘ÌÍtoute–ØopG€ération,“Øi.‘Zde.“Ö\vsplit¹,“auronš¸èt“seulemen˜t“unŽ¡‘ÌÍeet–{lošGcal.“Sans“cette“astuce,“le“con•¸èten“u–{de“la“b˜o€îteŽ¡‘ÌÍpGerdrait–mzle“nivš¸èeau“auquel“le“dernier“assignemen˜t“duŽ¡‘ÌÍregistre–U de“bGo€îte“a“€ét€é“r€éalis€é.Ž¦‘ÑIÕ695Ž‘êÚ\begingroupŽ¤ ‘ÑIÕ696Ž‘!£eÚ\vbadness\@MŽ¡‘ÑIÕ697Ž‘!£eÚ\setbox#1\copy#1%ŽŸ챑Ì͹Main•¸ètenan“t,–¾ªnous“€étendons“la“bGo€îte“jusqu'€à“la“di-Ž¤ ‘ÌÍmension–ã)maximale“pGossible.“Cela“doit“s€éparer“leŽ¡‘ÌÍcon•¸èten“u›Ó,en“tier˜de˜la˜bGo€îte˜donc,˜tout˜est˜r€éelle-Ž¡‘ÌÍmenš¸èt–ús€épar€é.“P˜ar“cons€équen˜t,“Ö\splitfirstmark“¹etŽ¡‘ÌÍÖ\splitbotmark›êr¹con•¸ètiendron“t˜respGectiv“emen“t˜la˜pre-Ž¡‘ÌÍmi€ère–U et“la“derni€ère“marque.Ž¦‘ÑIÕ698Ž‘!£eÚ\setbox#1\vsplit#1to\maxdimenŽŽŽŸff‰ffYÿ¦Ÿ Ú‘vùŸý-:Ñ19ŽŽŽ‘KÙÉ€À‘w–cause–w­de“la“d€énition“couranšÃ’te“de“Ù\markrightÉ,“etc.,“ce“ne“serait“pas“utile“de“d€énir“la“commande“Ù\protect“Ép¦n'est“pas“congur€ée.“Strictemenš¸èt“parlan˜t,“celaŽ¡n'est–Bqpas“correct“puisque“nous“a•¸èv“ons–BqpGerdu“la“capa-Ž¡cit€é›\%d'a•¸èv“oir˜des˜marques˜explicitemen“t˜vides,˜maisŽ¡pGour–ý¿les“applications“normales“de“LŸýï‘üf ÕAŽŽ‘Íz¹T‘þUYŸ&úEŽ‘ã9X,“cela“estŽ¡susanš¸èt.–*cSi“elle“n'est“pas“vide,“nous“ne“c˜hangeonsŽ¡pas–àíla“v‘ÿqÐaleur““ensuite,“dans“les“routines“de“sortie,Ž¡elle–U sera“restaur€ée“comme“Ö\@empty¹.Ž¦‘ü|Õ707Ž‘Ö˜Ú\ifx\kept@firstmark\@emptyŽŸVe¹Nous– |Hmettons“main•¸ètenan“t– |Hle“con•¸èten“u‘ |HdeŽ¡Ö\splitfirstmark–†—¹dans“Ö\kept@firstmark¹.“DansŽ¡le–o:cas“o€ù“il“n'y“a¸èv‘ÿqÐait“pas“du“tout“de“marque,Ž¡Ö\kept@firstmark–k}¹ne“sera“pas“moGdi€ée“par“cetteŽ¡opG€ération.Ž¦‘ü|Õ708Ž‘"I4Ú\expandafter\gdef\expandafterŽ¤ ‘ü|Õ709Ž‘0uÚ\kept@firstmarkŽ¡‘ü|Õ710Ž‘0uÚ\expandafter{\splitfirstmark}%ŽŸVe¹Au–]:cours“du“d€ébuggage,“nous“mon¸ètrons“les“assigne-Ž¤ menš¸èts–Žîmais“seulemen˜t“si“quelque“c˜hose“se“proGduitŽ¡r€éellemen¸èt.Ž¦‘ü|Õ711Ž‘ ª®Ðhäma¾9rktraceŽ‘+²ÐiŽ¤ ‘ü|Õ712Ž‘"I4Ú\ifx\kept@firstmark\@empty\elseŽ¡‘ü|Õ713Ž‘+»ÐÚ\mult@info\tw@Ž¡‘ü|Õ714Ž‘5.lÚ{Set–¹Nkept“first“mark:\MessageBreakŽ¡‘ü|Õ715Ž‘9çºÚ\meaning\kept@firstmark%Ž¡‘ü|Õ716Ž‘9çºÚ\@gobbletwo}%Ž¡‘ü|Õ717Ž‘"I4Ú\fiŽ¡‘ü|Õ718Ž‘ ª®ÐhÏ=äma¾9rktraceŽ‘+²ÐiŽ¡‘ü|Õ719Ž‘Ö˜Ú\fiŽŸVe¹Nous›b‰essa•¸èy“ons˜toujours˜de˜xer˜la˜marque˜du˜bas˜€àŽ¤ Ö\splitbotmark–¦j¹mais,“bien“s€ûr,“seulemen¸èt“quand“il“yŽ¡a–`Ö\splitbotmark¹.“De“nouv¸èeau,“nous“suppGosons“queŽ¡si–³^Ö\splitbotmark“¹est“vide,“cela“signie“que“la“partieŽ¡s€épar€ée–U de“la“bGo€îte“ne“con•¸ètien“t–U plus“de“marque.ŽŽ’éÌÍŸÿà„‰ÿàff ý€ ‘ÑIÕ720Ž‘!£eÚ\expandafter\def\expandafter\@tempaŽ¤ ‘ÑIÕ721Ž‘/ÏOÚ\expandafter{\splitbotmark}%Ž¡‘ÑIÕ722Ž‘!£eÚ\ifx\@tempa\@empty\elseŽ¡‘ÑIÕ723Ž‘/ÏOÚ\global\let\kept@botmark\@tempaŽ¡‘ÑIÕ724Ž‘w{Ðhäma¾9rktraceŽ‘+²ÐiŽ¡‘ÑIÕ725Ž‘/ÏOÚ\mult@info\tw@Ž¡‘ÑIÕ726Ž‘9AëÚ{Set–¹Nkept“bot“mark:\MessageBreakŽ¡‘ÑIÕ727Ž‘=û9Ú\meaning\kept@botmark%Ž¡‘ÑIÕ728Ž‘=û9Ú\@gobbletwo}%Ž¡‘ÑIÕ729Ž‘w{ÐhÏ=äma¾9rktraceŽ‘+²ÐiŽ¡‘ÑIÕ730Ž‘!£eÚ\fi}%Ž©¨ì‘Ì͹La–°Vfonction“Ö\prep@keptmarks“¹est“utilis€ée“pGour“ini-Ž¤ ‘ÌÍtialiser–ôŽles“marques“conservš¸è€ées“€à“partir“du“con˜ten˜uŽ¡‘ÌÍde–BðÖ\partial@page¹,“Øi.‘nye.“¹la“bGo€îte“qui“prend“tout“€àŽ¡‘ÌÍpartir–C»du“haut“de“la“page“couranš¸ète“a˜v‘ÿqÐan˜t“de“d€émar-Ž¡‘ÌÍrer›Ö|l'en•¸èvironnemen“t˜Ômulticols¹.˜CepGendan“t,˜une˜telleŽ¡‘ÌÍbšGo€îte–best“v‘ÿqÐalable“seulemen¸èt“si“nous“ne“pro˜duisons“pasŽ¡‘ÌÍde–U Ômulticols“¹em¸èbGo€ît€é.ŽŸ}‘ÑIÕ731Ž‘w{Ú\def\prep@keptmarks{%Ž¤ ‘ÑIÕ732Ž‘!£eÚ\if@boxedmulticols‘¹N\elseŽ¡‘ÑIÕ733Ž‘+Ú\get@keptmarks\partial@pageŽ¡‘ÑIÕ734Ž‘!£eÚ\fi}Ž¦Ÿ}‘ÑIÕ735Ž‘w{Ú\def\remove@discardable@items{%Ž¡‘ÑIÕ736Ž‘w{ÐhädebugŽ‘ÒœÐiŽ¡‘ÑIÕ737Ž‘!£eÚ\edef\@tempa{s=\the\lastskip,Ž¡‘ÑIÕ738Ž‘_ [Úp=\the\lastpenalty,Ž¡‘ÑIÕ739Ž‘_ [Úk=\the\lastkern}%Ž¡‘ÑIÕ740Ž‘!£eÚ\typeout\@tempaŽ¡‘ÑIÕ741Ž‘w{ÐhÏ=ädebugŽ‘ÒœÐiŽ¡‘ÑIÕ742Ž‘9AëÚ\unskip\unpenalty\unkernŽ¡‘ÑIÕ743Ž‘w{ÐhädebugŽ‘ÒœÐiŽ¡‘ÑIÕ744Ž‘!£eÚ\edef\@tempa{s=\the\lastskip,Ž¡‘ÑIÕ745Ž‘_ [Úp=\the\lastpenalty,Ž¡‘ÑIÕ746Ž‘_ [Úk=\the\lastkern}%Ž¡‘ÑIÕ747Ž‘!£eÚ\typeout\@tempaŽ¡‘ÑIÕ748Ž‘w{ÐhÏ=ädebugŽ‘ÒœÐiŽ¡‘ÑIÕ749Ž‘9AëÚ\unskip\unpenalty\unkernŽ¡‘ÑIÕ750Ž‘w{ÐhädebugŽ‘ÒœÐiŽ¡‘ÑIÕ751Ž‘!£eÚ\edef\@tempa{s=\the\lastskip,Ž¡‘ÑIÕ752Ž‘_ [Úp=\the\lastpenalty,Ž¡‘ÑIÕ753Ž‘_ [Úk=\the\lastkern}%Ž¡‘ÑIÕ754Ž‘!£eÚ\typeout\@tempaŽ¡‘ÑIÕ755Ž‘w{ÐhÏ=ädebugŽ‘ÒœÐiŽ¡‘ÑIÕ756Ž‘9AëÚ\unskip\unpenalty\unkernŽ¡‘ÑIÕ757Ž‘w{ÐhädebugŽ‘ÒœÐiŽ¡‘ÑIÕ758Ž‘!£eÚ\edef\@tempa{s=\the\lastskip,Ž¡‘ÑIÕ759Ž‘_ [Úp=\the\lastpenalty,Ž¡‘ÑIÕ760Ž‘_ [Úk=\the\lastkern}%Ž¡‘ÑIÕ761Ž‘!£eÚ\typeout\@tempaŽ¡‘ÑIÕ762Ž‘w{ÐhÏ=ädebugŽ‘ÒœÐiŽ¡‘ÑIÕ763Ž‘9AëÚ\unskip\unpenalty\unkernŽ¡‘ÑIÕ764Ž‘w{Ú}ŽŸ¯9‘ÑIÕ765Ž‘w{ÐhäbadnessŽ‘"šóÐiŽ¡‘ÑIÕ766Ž‘w{Ú\newif\iftoo@badŽŽŽŽŸ’åP¹25ŽŽŒ‹' ¨ ýF œ ýúqŸ‡ŽpŸq‘ü|Õ767Ž‘ ª®Ú\newcount\c@columnbadnessŽ¤ ‘ü|Õ768Ž‘ ª®Ú\c@columnbadness=10000Ž¡‘ü|Õ769Ž‘ ª®Ú\newcount\c@finalcolumnbadnessŽ¡‘ü|Õ770Ž‘ ª®Ú\c@finalcolumnbadness=9999Ž¡‘ü|Õ771ŽŽ¡‘ü|772Ž‘ ª®Ú\newdimen\last@tryŽ¡‘ü|Õ773ŽŽ¡‘ü|774Ž‘ ª®Ú\newdimen\multicolovershootŽ¡‘ü|Õ775Ž‘ ª®Ú\multicolovershoot=2ptŽ¡‘ü|Õ776Ž‘ ª®Ú\newdimen\multicolundershootŽŽ’éÌÍŸñ¨„„c8ffŸ…œÈ‘ÑIÕ777Ž‘w{Ú\multicolundershoot=2ptŽ¤ ‘ÑIÕ778Ž‘w{Ú\newbox\mult@nat@firstboxŽ¡‘ÑIÕ779Ž‘w{ÐhÏ=äbadnessŽ‘"šóÐiŽŸ9‘Ì͹Une–U aide“pšGour“pro˜duire“les“messages“d'information.ŽŸxœ‘ÑIÕ780Ž‘w{Ú\def\mult@info#1#2{%Ž¡‘ÑIÕ781Ž‘êÚ\ifnum\c@tracingmulticols>#1%Ž¡‘ÑIÕ782Ž‘!£eÚ\GenericWarningŽ¡‘ÑIÕ783Ž‘4ˆÚ{(multicol)\@spaces\@spaces}%Ž¡‘ÑIÕ784Ž‘4ˆÚ{Package–¹Nmulticol:“#2}%Ž¡‘ÑIÕ785Ž‘êÚ\fiŽ¡‘ÑIÕ786Ž‘w{Ú}ŽŽŽŸ"BŠÓ6Ž‘ÁR€églage–G\de“óAÄN½¿ffffectt1440ëA\columnwidthŽ „ÌŸŸ”¹Si–-nous“stoGc•¸èk“ons–-la“largeur“de“la“colonne“couran¸èteŽ¤ dans–×`Ö\columnwidth¹,“nous“dev¸èons“red€énir“la“ma-Ž¡cro–CCin¸èterne“Ö\@footnotetext“¹pGour“qu'elle“utilise“laŽ¡largeur–-Ldes“notes“de“bas“de“page,“plut€ôt“que“la“d€é-Ž¡nition‘U originale.Ž¡‘ Depuis–Rlla“v1.5r,“cela“est“main•¸ètenan“t–Rlr€éalis€é“de“telleŽ¡fa€çon–ý²que“la“d€énition“originale“soit“toujours“utili-Ž¡s€ée,–2sauf“que,“loGcalemen¸èt,“Ö\columnwidth“¹est“x€é“€àŽ¡Ö\textwidth¹.Ž¡‘ Cela–P1r€ésoud“deux“probl€èmes“:“premi€èremen¸èt,“lesŽŽ’éÌÍŸñ¨„wñ¨ffŸ’X‘ÌÍred€énitions–{lde“Ö\@footnotetext“¹r€éalis€ées“par“uneŽ¤ ‘ÌÍclasse–nseronš¸èt“toujours“v‘ÿqÐalides‘ª“;“deuxi€èmemen˜t,“siŽ¡‘ÌÍÔmulticols–7Z¹est“utilis€é“dans“un“en•¸èvironnemen“t‘7Zmini-Ž¡‘ÌÍpage,–±•la“d€énition“spG€éciale“de“Ö\@footnotetext“¹dansŽ¡‘ÌÍcet›7¸en•¸èvironnemen“t˜sera˜prise˜et˜non˜celle˜du˜texteŽ¡‘ÌÍprincipal–cRen“cours“de“traitemen¸èt“(ce“dernier“devraitŽ¡‘ÌÍen¸ètra€îner–žla“pGerte“de“toutes“les“notes“de“bas“de“pageŽ¡‘ÌÍdans–U ce“cas).Ž¡‘ÌÎV‘ÿ*¸oir–$Jla“d€énition“de“la“commande“Ö\multicolsŽ¡‘Ì͹pšGour–U le“co˜de“exact.ŽŽŽŸ!ÖÓ7Ž‘ÁExtensions‘G\suppl€émenctairesŽ =nq þÛ^.‘ ¹Cette–C¿section“con•¸ètien“t–C¿le“cošGde“p˜our“les“extensionsŽ¤ a‘Ž0jout€ées–µ–€à“ce“pacš¸èk‘ÿqÐage.“T‘ÿ*¸outes“pGeuv˜en˜t“€être“activ˜es,Ž¡certaines›lfpGeuv•¸èen“t˜€être˜dorman“tes˜et˜en˜atten“te˜deŽ¡leur–U activ‘ÿqÐation“dans“de“futures“v¸èersions.ŽŸÂ3Û7.1Ž‘¾Non-€équilibrage–¸des“colonnesŽŸtî‘ ¹C'est–ÅÏassez“facile“€à“impl€émenš¸èter.“Nous“a˜v˜ons“justeŽ¡€à–™ inactiv¸èer“la“routine“de“sortie“d'€équilibrage“et“€à“laŽ¡remplacer–U par“celle“qui“expG€édie“les“autres“pages.ŽŸxäLe–ícošGde“p˜our“cet“en•¸èvironnemen“t–ía“€ét€é“prop˜os€é“parŽ¡Matthias‘U áClasenŽ‘&½”¹.Ž© ûD‘ü|Õ787Ž‘ ª®ÐhänobalanceŽ‘*çÐiŽŸ ‘ü|Õ788Ž‘cüÚ\@namedef{multicols*}{%ŽŸûD¹Si–”Mnous“sommes“dans“le“texte“principal“en“cours“deŽ¡traitemen¸èt,–-“Øi.‘oMe.“¹dans“une“bGo€îte“de“cette“sorte,“cetteŽ¡approGcš¸èhe–`ne“fonctionnera“pas,“puisque“nous“n'a˜v˜onsŽ¡pas–de“dimension“v¸èerticale,“il“est“donc“pr€éf€érableŽ¡d'a•¸èv“ertir–¤ml'utilisateur“plut€ôt“que“de“r€éaliser“l'€équi-Ž¡librage.Ž¦‘ü|Õ789Ž‘Ö˜Ú\ifinnerŽ¤ ‘ü|Õ790Ž‘"I4Ú\PackageWarning{multicol}%Ž¡‘ü|Õ791Ž‘+»ÐÚ{multicols*–¹Ninside“a“box“doesŽ¡‘ü|Õ792Ž‘0uÚnot–¹Nmake“sense.\MessageBreakŽ¡‘ü|Õ793Ž‘0uÚGoing–¹Nto“balance“anyway}%ŽŽ’éÌÍŸÿà„0¡²ff þÙ^N‘ÑIÕ794Ž‘!£eÚ\elseŽ¤ ‘ÑIÕ795Ž‘+Ú\let\balance@columns@outŽ¡‘ÑIÕ796Ž‘=û9Ú\multi@column@outŽ¡‘ÑIÕ797Ž‘!£eÚ\fiŽ¡‘ÑIÕ798Ž‘!£eÚ\begin{multicols}Ž¡‘ÑIÕ799Ž‘w{Ú}ŽŸÄ‚‘Ì͹Quand› 4l'en•¸èvironnemen“t˜est˜ni,˜nous˜fermons˜sim-Ž¤ ‘ÌÍplemen•¸èt›ÿ¶l'en“vironnemen“t˜Ömulticols˜¹in“t€érieur,˜saufŽ¡‘ÌÍqu'il–âhv‘ÿqÐaut“mieux,“€égalemen¸èt,“€être“dans“un“glue“€éti-Ž¡‘ÌÍrable›©*v•¸èerticalemen“t,˜pGour˜que˜la˜derni€ère˜colonne,Ž¡‘ÌÍqui›Hcon•¸ètien“t˜toujours˜le˜texte,˜ne˜soit˜pas˜€étir€ée˜v“er-Ž¡‘ÌÍticalemen¸èt–U de“mani€ère“exag€ér€ée.ŽŸ6¯‘ÑIÕ800Ž‘0ÉÚ\@namedef{endmulticols*}{\vfillŽ¤ ‘ÑIÕ801Ž‘!£eÚ\end{multicols}}Ž¡‘ÑIÕ802Ž‘w{ÐhÏ=änobalanceŽ‘*çÐiŽŸ\¦‘ÌÍÛ7.2Ž‘'ŠáRupture–¸man uelle“des“colonnesŽŸIû‘ÌιLe–4ƒprobl€ème,“a•¸èv“ec–4ƒles“ruptures“man¸èuelles“de“pageŽ¤ ‘ÌÍdans–:rÔmulticols“¹est“que,“pGendan¸èt“la“collecte“du“mat€é-Ž¡‘ÌÍriel––¬pšGour“toutes“les“colonnes,“une“p˜€énalit€é“de““for-Ž¡‘ÌÍ€çage–¨®de“page““(Øi.‘õ e.“¹-10000“ou“plus)“pGourrait“arr€êterŽ¡‘ÌÍla–™æpasse“de“collecte,“ce“qui“n'est“pas“tout“€à“fait“ce“quiŽ¡‘ÌÍest–5žd€ésir€é.“D'un“autre“c€ôt€é,“l'utilisation“d'une“pG€éna-Ž¡‘ÌÍlit€é–htelle“que“-9999“signierait“qu'il“y“aurait“des“casŽŽŽŽŸ’åP26ŽŽŒ‹: ¨ ýF œ ý‚¹pšGour–ƒOlesquels“les“op˜€érations“Ö\vsplit“¹dans“ÔmulticolsŽ¤ ¹ignorerait–ß:une“telle“pG€énalit€é“et“c¸èhoisirait“encore“unŽ¡pGoinš¸èt–U de“rupture“di€éren˜t.Ž© F5‘ Pš¸èour–/àcela,“l'impl€émen˜tation“actuelle“utilise“uneŽ¡approGc•¸èhe›9©totalemen“t˜di€éren“te.˜En˜un˜mot,˜elleŽ¡€étend–GÄle“traitemen¸èt“de“la“routine“de“sortie“de“LŸýï‘üf ÕAŽŽ‘Íz¹T‘þUYŸ&úEŽ‘ã9XŽ¡en›‹›in•¸ètroGduisan“t˜un˜drap•Geau˜de˜p“€énalit€é˜suppl€émen-Ž¡taire–Ê¿(Øi.‘ae.“¹un“pšG€énalit€é“qui“est“forc€ée“mais“sup˜€érieureŽ¡€à–>3-10000,“pGour“que“la“routine“de“sortie“puisse“consi-Ž¡d€érer–*cette“v‘ÿqÐaleur“et“donc,“sa•¸èv“oir–*pGourquoi“elle“a“€ét€éŽ¡appGel€ée).Ž¦‘ €À‘“.l'in¸èt€érieur–“>de“la“routine“de“sortie,“nous“testonsŽ¡cette–Ì v‘ÿqÐaleur“et“si“elle“appara€ît,“nous“faisons“deuxŽ¡cš¸èhoses–2r:“sauv˜egarde“du“texte“en“cours“de“traitemen˜tŽ¡€à–¤Ôpartir“de“ce“pšGoin¸èt“dans“une“b˜o€îte“sp˜€éciale“p˜ourŽ¡une–CÖutilisation“ult€érieure“et“r€éduction“de“Ö\vsize“¹deŽ¡la–Zhauteur“du“mat€ériel“vu.“De“cette“fa€çon,“la“pG€éna-Ž¡lit€é–¼1est“main•¸ètenan“t›¼1cac“h€ée˜dans˜cette˜bGo€îte˜et˜nousŽ¡pšGouv¸èons–ÂÚred€émarrer“le“pro˜cessus“de“collecte“p˜our“lesŽ¡colonnes–s¢restan¸ètes“(cela“est“r€éalis€é“par“Ö\speci@ls“¹ci-Ž¡dessus).Ž¦‘ Dans–Qles“routines“de“sortie“qui“appliquen¸èt“Ö\vsplitŽ¡¹soit–¨RpšGour“l'€équilibrage“soit“p˜our“une“page“en¸èti€ère,Ž¡nous–Qcomš¸èbinons“simplemen˜t“la“bšGo€îte“255“et“la“b˜o€îteŽ¡sauv¸èegard€ée,–à.ce“qui“donne“donc“une“bGo€îte“uniqueŽ¡de–ˆ s€éparation,“qui“con•¸ètien“t›ˆ main“tenan“t˜les˜rupturesŽ¡forc€ées–U €à“la“bGonne“place.ŽŸlÖ\columnbreak–ê¹est“construit“d'apr€ès“Ö\pagebreak¹,Ž¡sauf–U que“nous“prošGduisons“une“p˜€énalit€é“de“-10005.Ž©êr‘ü|Õ803Ž‘ ª®Ðhäcolb¾9reakŽ‘$S{ÐiŽ¤ ‘ü|Õ804Ž‘ ª®Ú\mathchardef\@Mv=10005Ž¡‘ü|Õ805Ž‘ ª®Ú\def\columnbreak{%ŽŸêr¹Nous–çZdev¸èons“nous“assurer“qu'elle“est“utilis€ée“seule-Ž¤ menš¸èt–X€à“l'in˜t€érieur“d'un“en˜vironnemen˜t“Ômulticols“¹carŽ¡si–?¦nous“a•¸èv“ons–?¦une“pšG€énalit€é“p˜ouv‘ÿqÐan¸èt“€être“consid€é-Ž¡r€ée–U2par“la“routine“de“sortie“inc¸èhang€ée“de“LŸýï‘üf ÕAŽŽ‘Íz¹T‘þUYŸ&úEŽ‘ã9X,“desŽ¡cš¸èhoses–U €étranges“pGourraien˜t“appara€ître.Ž¦‘ü|Õ806Ž‘cüÚ\ifnum\col@number<\tw@Ž¤ ‘ü|Õ807Ž‘JÚ\PackageError{multicol}%Ž¡‘ü|Õ808Ž‘Ö˜Ú{\noexpand\columnbreak–¹Noutside“multicols}%Ž¡‘ü|Õ809Ž‘Ö˜Ú{This–¹Ncommand“can“only“be“used“withinŽ¡‘ü|Õ810Ž‘æÚa–¹Nmulticols“or“multicols*“environment.}%Ž¡‘ü|Õ811Ž‘cüÚ\elseŽ¡‘ü|Õ812Ž‘JÚ\ifvmodeŽ¡‘ü|Õ813Ž‘æÚ\penalty‘¹N-\@Mv\relaxŽ¡‘ü|Õ814Ž‘JÚ\elseŽ¡‘ü|Õ815Ž‘æÚ\@bsphackŽ¡‘ü|Õ816Ž‘æÚ\vadjust{\penalty‘¹N-\@Mv\relax}%Ž¡‘ü|Õ817Ž‘æÚ\@esphackŽ¡‘ü|Õ818Ž‘JÚ\fiŽ¡‘ü|Õ819Ž‘cüÚ\fi}ŽŸ%Þ¹N€écessite–§Áune“bšGo€îte“p˜our“collecter“le“texte“en“coursŽŸ de–U traitemen¸èt“€à“partir“de“la“rupture“de“colonne.ŽŽ’éÌÍŸñ¨„‰ñ¨ff ý€X‘ÑIÕ820Ž‘w{Ú\newbox\colbreak@boxŽ¤ ‘ÑIÕ821Ž‘w{ÐhÏ=äcolb¾9reakŽ‘$S{ÐiŽ¡‘ÑIÕ822Ž‘w{ÐhÏ=äpack¾9ageŽ‘#g ÐiŽŽŽŽŸ’åP¹27ŽŽŒ‹M# ¨ ýF œ ý‚ÓIndexŽŸæ~‘ ¹Num¸èbšGers–ŸÙwritten“in“italic“refer“to“the“page“where“the“corresp˜onding“en¸ètry“is“describ˜ed,“the“ones“underlinedŽŸ to–U the“cošGde“line“of“the“denition,“the“rest“to“the“co˜de“lines“where“the“en¸ètry“is“used.Ž ñ¨ ÿ‘ YÌSym´HbK·olsŽ¤ Ú\@footnotetext‘ÿÇ‘}mË.Ž‘Œw‘}m.Ž‘ ò\787Ž‘ ò\Ÿ™”‰fe ß"ŽŽ©‘/÷‡ÌBŽ¡Ú\balance@columns‘ þË475Ž‘ þŸ™”‰fe ß"ŽŽ¡Ú\balance@columns@outŽ¡‘‘}mË.Ž–Œw‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž‘ °¯454Ž‘ °¯Ÿ™”‰fe ß"ŽŽ¦‘/ç¶ÌCŽ¡Ú\c@collectmore‘ÿÇ‘}mË.Ž‘Œw‘}m.Ž‘ ò\242Ž‘ ò\Ÿ™”‰fe ß"ŽŽ¡Ú\c@columnbadness‘ þË767Ž‘ þŸ™”‰fe ß"ŽŽ¡Ú\c@finalcolumnbadnessŽ¡‘‘}mË.Ž–Œw‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž‘ °¯767Ž‘ °¯Ÿ™”‰fe ß"ŽŽ¡Ú\c@unbalance‘Yu‘}mË.Ž–Œw‘}m.Ž“‘}m.Ž“‘}m.Ž‘ ò\243Ž‘ ò\Ÿ™”‰fe ß"ŽŽ¡Ú\col@number‘†L‘}mË.Ž–Œw‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž‘ ò\242Ž‘ ò\Ÿ™”‰fe ß"ŽŽ¡Ú\colbreak@box‘,ž‘}mË.Ž–Œw‘}m.Ž“‘}m.Ž‘ ò\820Ž‘ ò\Ÿ™”‰fe ß"ŽŽ¡Ú\columnbreak‘Yu‘}mË.Ž–Œw‘}m.Ž“‘}m.Ž“‘}m.Ž‘ ò\803Ž‘ ò\Ÿ™”‰fe ß"ŽŽ¡Ú\columnsep‘?š‘}mË.Ž–Œw‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž‘ÉKâ2Ž¡Ú\columnseprule‘ÿÇ‘}mË.Ž–Œw‘}m.Ž“‘}m.Ž“‘}m.Ž‘ÉKâ2Ž¦‘/«ÐÌDŽ¡Ú\doublecol@number‘ R°Ë242Ž‘ R°Ÿ™”‰fe ß"ŽŽ¦‘0A¤ÌEŽ¡Ú\emergencystretch‘ R°Ë654Ž‘ R°Ÿ™”‰fe ß"ŽŽŽ‘pLÍŸLÏ„ LÏff þü³1‘ÌÍÚ\endmulticols‘,ž‘}mË.Ž–Œw‘}m.Ž“‘}m.Ž‘ ò\198Ž‘ ò\Ÿ™”‰fe ß"ŽŽ¤ ‘ÌÍÚ\endmulticols*‘ÿÇ‘}mË.Ž‘Œw‘}m.Ž‘ ò\800Ž‘ ò\Ÿ™”‰fe ß"ŽŽ¡‘ÌÍÚ\enough@room‘Yu‘}mË.Ž–Œw‘}m.Ž“‘}m.Ž“‘}m.Ž‘ ò\105Ž‘ ò\Ÿ™”‰fe ß"ŽŽ©ÕU‘94MÌFŽ¡‘ÌÍÚ\flushcolumns‘,ž‘}mË.Ž–Œw‘}m.Ž“‘}m.Ž‘ ò\449Ž‘ ò\Ÿ™”‰fe ß"ŽŽ¦‘8]ÆÌGŽ¡‘ÌÍÚ\get@keptmarks‘ÿÇ‘}mË.Ž‘Œw‘}m.Ž‘ ò\690Ž‘ ò\Ÿ™”‰fe ß"ŽŽ¦‘:ŠÌÌIŽ¡‘ÌÍÚ\if@boxedmulticols‘™bË102Ž‘™bŸ™”‰fe ß"ŽŽ¡‘ÌÍÚ\ifshr@nking‘Yu‘}mË.Ž–Œw‘}m.Ž“‘}m.Ž“‘}m.Ž‘ ò\449Ž‘ ò\Ÿ™”‰fe ß"ŽŽ¡‘ÌÍÚ\init@mult@footins‘™bË184Ž‘™bŸ™”‰fe ß"ŽŽ¦‘8b“ÌKŽ¡‘ÌÍÚ\kept@botmark‘,ž‘}mË.Ž–Œw‘}m.Ž“‘}m.Ž‘ ò\673Ž‘ ò\Ÿ™”‰fe ß"ŽŽ¡‘ÌÍÚ\kept@firstmark‘Òð‘}mË.Ž‘ ò\673Ž‘ ò\Ÿ™”‰fe ß"ŽŽ¡‘ÌÍÚ\kept@topmark‘,ž‘}mË.Ž–Œw‘}m.Ž“‘}m.Ž‘ ò\673Ž‘ ò\Ÿ™”‰fe ß"ŽŽ¦‘9Z)ÌLŽ¡‘ÌÍÚ\leave@mult@footinsŽ¡‘&ÌÍ‘}mË.Ž–Œw‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž‘ °¯399Ž‘ °¯Ÿ™”‰fe ß"ŽŽ¦‘7ÌMŽ¡‘ÌÍÚ\mult@@cols‘†L‘}mË.Ž–Œw‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž‘ ›80Ž‘ ›Ÿ™”‰fe ?lŽŽŽ–yš„ LÏff þü³1‘ÌÍÚ\mult@cols‘?š‘}mË.Ž–Œw‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž‘ ›77Ž‘ ›Ÿ™”‰fe ?lŽŽ¤ 33‘ÌÍÚ\mult@firstbox‘ÿÇ‘}mË.Ž‘Œw‘}m.Ž‘ ò\640Ž‘ ò\Ÿ™”‰fe ß"ŽŽ¡‘ÌÍÚ\mult@footnotetext‘™bË787Ž‘™bŸ™”‰fe ß"ŽŽ¡‘ÌÍÚ\mult@gfirstbox‘Òð‘}mË.Ž‘ ò\640Ž‘ ò\Ÿ™”‰fe ß"ŽŽ¡‘ÌÍÚ\mult@grightbox‘Òð‘}mË.Ž‘ ò\640Ž‘ ò\Ÿ™”‰fe ß"ŽŽ¡‘ÌÍÚ\mult@info‘?š‘}mË.Ž–Œw‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž‘ ò\780Ž‘ ò\Ÿ™”‰fe ß"ŽŽ¡‘ÌÍÚ\mult@rightbox‘ÿÇ‘}mË.Ž‘Œw‘}m.Ž‘ ò\640Ž‘ ò\Ÿ™”‰fe ß"ŽŽ¡‘ÌÍÚ\multi@column@out‘ R°Ë300Ž‘ R°Ÿ™”‰fe ß"ŽŽ¡‘ÌÍÚ\multicol@leftmarginŽ© ‘&ÌÍ‘}mË.Ž–Œw‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž‘ °¯197Ž‘ °¯Ÿ™”‰fe ß"ŽŽ¡‘ÌÍÚ\multicolbaselineskipŽ¦‘&ÌÍ‘}mË.Ž–Œw‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž‘ jDâ2Ë,‘$242Ž‘$Ÿ™”‰fe ß"ŽŽ¡‘ÌÍÚ\multicolpretoleranceŽ¦‘&ÌÍ‘}mË.Ž–Œw‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž‘ jDâ3Ë,‘$242Ž‘$Ÿ™”‰fe ß"ŽŽ¡‘ÌÍÚ\multicols‘?š‘}mË.Ž–Œw‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž‘ ›57Ž‘ ›Ÿ™”‰fe ?lŽŽ¡‘ÌÍÚ\multicols*‘†L‘}mË.Ž–Œw‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž‘ ò\787Ž‘ ò\Ÿ™”‰fe ß"ŽŽ¡‘ÌÍÚ\multicolsep‘Yu‘}mË.Ž‘Œw‘}m.Ž‘ «ñâ2Ë,‘$242Ž‘$Ÿ™”‰fe ß"ŽŽ¡‘ÌÍÚ\multicoltoleranceŽ¦‘&ÌÍ‘}mË.Ž–Œw‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž‘ jDâ3Ë,‘$242Ž‘$Ÿ™”‰fe ß"ŽŽŸ™™‘8ê0ÌPŽ¡‘ÌÍÚ\page@free‘?š‘}mË.Ž–Œw‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž‘ ò\242Ž‘ ò\Ÿ™”‰fe ß"ŽŽ¡‘ÌÍÚ\page@sofar‘†L‘}mË.Ž–Œw‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž‘ ò\275Ž‘ ò\Ÿ™”‰fe ß"ŽŽ¡‘ÌÍÚ\partial@page‘,ž‘}mË.Ž–Œw‘}m.Ž“‘}m.Ž‘ ò\242Ž‘ ò\Ÿ™”‰fe ß"ŽŽŽ“„ LÏff þü³1‘ÌÍÚ\postmulticols‘ Aâ2Ë,‘$242Ž‘$Ÿ™”‰fe ß"ŽŽ¤ ÌÍ‘ÌÍÚ\premulticols‘,ž‘}mË.Ž‘ «ñâ2Ë,‘$242Ž‘$Ÿ™”‰fe ß"ŽŽ¡‘ÌÍÚ\prep@keptmarks‘Òð‘}mË.Ž‘ ò\731Ž‘ ò\Ÿ™”‰fe ß"ŽŽ¡‘ÌÍÚ\prepare@multicols‘™bË122Ž‘™bŸ™”‰fe ß"ŽŽ¡‘ÌÍÚ\process@cols‘,ž‘}mË.Ž–Œw‘}m.Ž“‘}m.Ž‘ ò\266Ž‘ ò\Ÿ™”‰fe ß"ŽŽ¡‘ÌÍÚ\process@deferreds‘™bË439Ž‘™bŸ™”‰fe ß"ŽŽŸfg‘8‹ÌRŽ¡‘ÌÍÚ\raggedcolumns‘ÿÇ‘}mË.Ž‘Œw‘}m.Ž‘ ò\449Ž‘ ò\Ÿ™”‰fe ß"ŽŽ¡‘ÌÍÚ\reinsert@footnotesŽ© ‘&ÌÍ‘}mË.Ž–Œw‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž‘ °¯298Ž‘ °¯Ÿ™”‰fe ß"ŽŽ¡‘ÌÍÚ\remove@discardable@itemsŽ¦‘&ÌÍ‘}mË.Ž–Œw‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž‘ °¯735Ž‘ °¯Ÿ™”‰fe ß"ŽŽ¡‘ÌÍÚ\return@nonemptymarkŽ¦‘&ÌÍ‘}mË.Ž–Œw‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž‘ °¯676Ž‘ °¯Ÿ™”‰fe ß"ŽŽŸfg‘9—¨ÌSŽ¡‘ÌÍÚ\set@floatcmds‘ÿÇ‘}mË.Ž‘Œw‘}m.Ž‘ ò\659Ž‘ ò\Ÿ™”‰fe ß"ŽŽ¡‘ÌÍÚ\set@keptmarks‘ÿÇ‘}mË.Ž‘Œw‘}m.Ž‘ ò\706Ž‘ ò\Ÿ™”‰fe ß"ŽŽ¡‘ÌÍÚ\set@mult@vsize‘Òð‘}mË.Ž‘ ò\188Ž‘ ò\Ÿ™”‰fe ß"ŽŽ¡‘ÌÍÚ\setemergencystretchŽ¦‘&ÌÍ‘}mË.Ž–Œw‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž‘ °¯654Ž‘ °¯Ÿ™”‰fe ß"ŽŽ¡‘ÌÍÚ\speci@ls‘lq‘}mË.Ž–Œw‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž‘ ò\403Ž‘ ò\Ÿ™”‰fe ß"ŽŽŽŽŸ!ÖÓChange‘G\HistoryŽ # þÿœËv1.0cŽ¤ =þ‘Ú\enough@room–7øË:“P¾‘!ÌÍÚ\set@floatcmds‘$Ëa‘ƒ†jout€é.‘f_‘}m.Ž–Œw‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž‘ sa12Ž¡‘!ÌÍÚ\setemergencystretch‘$Ëa‘ƒ†jout€é.‘ÌÞ‘}m.Ž–Œw‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž‘ sa12Ž¡‘!ÌÍÚ\vbadness–$Ë10001“main•¾Ö‘}m.Ž–Œw‘}m.Ž“‘}m.Ž“‘}m.Ž“‘}m.Ž‘ sa23Ž¡‘ÌÍÚ\speci@ls–$Ë:“Bo€îtes“ottan¾ cmmi10óKñ`y cmr10ùÓ×ßßßßßß