÷ƒ’À;è TeX output 1997.01.19:1026‹#ÿÿÿÿ ¨ ýFóKñ`y cmr10²TUGbGoat,–UUV‘ÿ*ªolume“12“(1991),“No.‘qÇ2’(Š’291ŽŽŽ œ‘` ýx‰™štŸ›óò"V cmbx10ºBabQÇel,–Õ9a“mš®9ultilingual“st˜yle-option“system“for“use“with“LŸýñ‘ûÜ*óf$Øcmbx7»AŽŽ‘èüºT‘þ<ŸâiEŽ‘3sX's“standardŽ© doQÇcumen•®9t‘Õ9st“ylesŸü^ÿó O!â…cmsy7·ŽŽŽ¤©Ö‘²Johannes‘U>BraamsŽŸ©ÖºAbstractŽ¡²The–>Ýstandard“distribution“of“LŸýó5‘üffóÙ“ Rcmr7±AŽŽ‘͉²T‘þU>ŸÓVEŽ‘ãxX“conš¸ãtains“a“n˜um˜bšGer“of“do˜cumenš¸ãt“st˜yles“that“areŽ¦meanš¸ãt–Áùto“bGe“used,‘!but“also“serv˜e“as“examples“for“other“users“to“create“their“o˜wnŽ¦doGcumen•¸ãt›@„st“yles.‘3SThese˜st“yles˜ha“v“e˜bGecome˜v“ery˜pGopular˜among˜LŸýó5‘üff±AŽŽ‘͉²T‘þU>ŸÓVEŽ‘ãxX˜users.‘3SButŽ¦it–ø^should“bGe“kš¸ãept“in“mind“that“they“w˜ere“designed“for“American“tastes“and“con˜tainŽ¦a›õn•¸ãum“b•Ger˜of˜hard-wired˜texts.‘K¦This˜article˜describ“es˜a˜set˜of˜do“cumen•¸ãt-st“yle˜optionsŽ¦that–|€can“bGe“used“in“comš¸ãbination“with“the“standard“st˜yles,‘ÆJwhic˜h“mak˜es“the“latterŽ¦adaptable–UUto“other“languages.ŽŸ©Öº1Ž‘?úIn®9troQÇductionŽ¡²Although–8ãLeslie“LampšGort“has“stated“[5Ž‘]“that“one“should“not“try“and“write“óý': cmti10Âone‘ù>²do˜cumen¸ãt-Ÿ€„ Ž¦st¸ãyle–ÔQoption“to“bšGe“used“with“Âal‘‚Øl‘ÜÚ²the“standard“do˜cumenš¸ãt“st˜yles“of“LŸýó5‘üff±AŽŽ‘͉²T‘þU>ŸÓVEŽ‘ãxX,‘îthat“is“exactlyŽ¦what–øŒI“ha•¸ãv“e–øŒdone“with“this“system“of“stš¸ãyle“options.‘RÙThe“reasons“for“this“approac˜h“willŽ¦bGe–UUexplained“in“section“2.ŽŸ ©ÖA‘¸lot–¸uof“the“ideas“incorpšGorated“in“this“set“of“ les“come“from“the“w¸ãork“of“Hub˜ertŽ¦Pš¸ãartl–%Ú[4Ž‘],‘/YóßêŸÓVEŽ‘ãxX“I“wš¸ãas“v˜ery“happ˜y“with“just“the“st˜yle“ les“that“areŽ¦distributed–¿¬with“the“standard“distributions“of“T‘þU>ŸÓVEŽ›ãxX“and“LŸýó5‘üff±AŽŽ‘͉²T‘þU>ŸÓVEŽ˜X.‘°ÌThat“means,‘ÚBas“longŽ¦as–›KI“made“texts“in“English“I“wš¸ãas“happ˜y‘ÿ*ª.‘C¨Then“as“other“users“found“out“abGout“LŸýó5‘üff±AŽŽ‘͉²T‘þU>ŸÓVEŽ‘ãxXŽ¦and–â‡its“adv‘ÿqÇan¸ãtages,‘ù~they“started“using“it“for“texts“in“languages“other“than“English.‘KƒAsŽ¦I–Ü(wš¸ãas“the“most“expGerienced“LŸýó5‘üff±AŽŽ‘͉²T‘þU>ŸÓVEŽ‘ãxX“user“at“the“time,‘ýÜthey“came“to“me“and“ask˜ed“meŽ¦`When–’FI'm“writing“a“repGort“in“Dutcš¸ãh“I“don't“w˜an˜t“c˜hapters“to“bGe“named“\Chapter",Ž¦I›™'w•¸ãan“t˜them˜to˜b•Ge˜named˜\Ho“ofdstuk",‘êho•¸ãw˜do˜y“ou˜c“hange˜that?'.‘=ŸÓVEŽ‘ãxXhax.‘§One–gof“the“pGersons“commenš¸ãting“w˜as“HubGert“P˜artl.‘§The“methoGd“he“sug-Ž¦gested–)ww¸ãas“to“mošGdify“the“standard“do˜cumenš¸ãt“st˜yles“b˜y“replacing“the“hard-wired“textsŽ¦bš¸ãy–’macros“suc˜h“as“Ã\@chapapp².‘/1This“led“me“to“m˜y“second“attempt“at“a“solution.‘/1I“moGd-Ž¦i ed–®%the“standard“st¸ãyles“(all“four“of“them)“as“suggested,‘ÄYbut“while“doing“that“addedŽ¦an–=Öoption,‘wöimplemenš¸ãted“lik˜e“the“option“Ãdraft²,‘wöb˜y“de ning“a“command“Ã\ds@dutch².Ž¦This–µÔcommand“wš¸ãould“set“a“v‘ÿqÇariable“to“indicate“whic˜h“language“w˜as“requested.‘“EThisŽŸ«Ú‰ff”Ì8Ÿ @‘ ª¼Ÿý-:óq¡% cmsy6ÁŽŽŽ‘\„ó|{Ycmr8¼During–dZthe“dev•ÃŽelopmen“t–dZideas“from“Nico“PšÃŽoppŸÓVEŽ‘ãxX“distribution“arriv˜ed“at“our“site,‘ë‚I“bGeganŽ¡‘`to–…qthink“abGout“a“di erenš¸ãt“w˜a˜y“to“solv˜e“the“problem.‘,|In“the“mean˜time“HubGert“P˜artl“hadŽ¡‘`his–sƒÃgerman.sty“²published“in“óp®0J cmsl10ÅTUGbšGoat‘«8²[4Ž‘].‘ÌRHis“article“p˜oinš¸ãted“the“w˜a˜y“to“a“di eren˜tŽ¡‘`solution.‘s/T‘ÿ*ªriggered–xbš¸ãy“the“discussion“in“T‘þU>ŸÓVEŽ‘ãxXhax“in“early“1989“abGout“ho˜w“to“detectŽ¡‘`whicš¸ãh–jÊis“the“main“(primary)“st˜yle“when“prošGcessing“a“do˜cumenš¸ãt,‘°'I“started“w˜ork“onŽ¡‘`what–_[is“noš¸ãw“a˜v‘ÿqÇailable“as“Ãdutch.sty“²v˜ersion“1.0,‘aÜdated“ma˜y“1989Ÿü^ÿ±1ŽŽ‘|s².‘ØWhile“w˜orking“onŽ¡‘`this–ù{stš¸ãyle“option“I“disco˜v˜ered“that“some“parts“could“bšGe“b˜orro•¸ãw“ed–ù{from“Ãgerman.sty².Ž¡‘`This›j?`disco•¸ãv“ery'˜and˜some˜discussions˜I‘iøhad˜with˜others˜at˜EuroT‘þU>ŸÓVEŽ‘ãxX89,‘¯zthe˜fourthŽ¡‘`EuropšGean–0YT‘þU>ŸÓVEŽ‘ãxX“Conference,‘gheld“in“septem¸ãb˜er“1989“in“Karlsruhe,‘gled“me“to•¸ãw“ards‘0YaŽ¡‘`more–¸ univš¸ãersal“approac˜h.‘š)The“basic“idea“bGehind“it“w˜as,‘ÐÓstarting“from“the“algorithmŽ¡‘`to–bËdetect“the“main“stš¸ãyle,‘f)to“design“an“approac˜h“with“one“common“ le“that“con˜tainedŽ¡‘`macro–Ïde nitions“needed“bš¸ãy“a“n˜um˜bšGer“of“language-sp˜eci c“st¸ãyle“options.‘E Users“sp˜ecifyŽ¡‘`the–~èname“of“an¸ãy“of“these“language-spGeci c“options“as“an“option“to“the“Ã\documentstyleŽ¡‘`²command,–UUand“in¸ãternally“the“common“ le“is“read.ŽŸŸ‘`º3Ž‘q?úLŸýñ‘ûÜ*»AŽŽ‘èüºT‘þ<ŸâiEŽ‘3sX–Õ9and“doQÇcumen•®9t-st“yle‘Õ9 lesŽŸŸ‘`²Before–›0the“I‘›discuss“some“of“the“cošGde“in“the“óm#½R cmss10Çbab˜el“²system“I‘›wš¸ãould“lik˜e“to“discuss“theŽ¡‘`doGcumen•¸ãt-st“yle›‰mec“hanism˜used˜b“y˜LŸýó5‘üff±AŽŽ‘͉²T‘þU>ŸÓVEŽ‘ãxX.‘ ÊEv“ery˜LŸýó5‘üff±AŽŽ‘͉²T‘þU>ŸÓVEŽ‘ãxX˜doGcumen“t˜should˜start˜withŽ¡‘`a–UUline“lik¸ãe:Ž¤->‘`Ã\documentstyle[opt1,opt2,...]{docstyle}Ž¡‘`²This–ô~line“of“coGde“instructs“LŸýó5‘üff±AŽŽ‘͉²T‘þU>ŸÓVEŽ‘ãxX“to“ rst“load“the“ le“Ãdocstyle.sty².‘OCWhen“that“isŽ¤ ‘`done–zthe“`options'“are“proGcessed“Âin–K\the“or›ÿ}'der“sp˜e˜ci e˜d²,‘@b¸ãy–zreading“the“ les“Ãopt1.styŸü^ÿ±2ŽŽ‘|s²,Ž¡‘`Ãopt2.sty²,›þŠetc.‘ßThis–ܲimplies“that“de nitions,˜made“in“the“ le“Ãdocstyle.sty“²can“bGeŽ¡‘`o•¸ãv“erridden–Kin“one“of“the“option“ les.‘ZnIt“is“ev¸ãen“pšGossible“to“rede ne“co˜de“from“the“v¸ãeryŽ¡‘`kš¸ãernel–UUof“LŸýó5‘üff±AŽŽ‘͉²T‘þU>ŸÓVEŽ‘ãxX,“but“y˜ou“ha˜v˜e“to“kno˜w“what“y˜ou“are“doing.Ž¦‘`Some–care“has“to“bšGe“tak¸ãen“in“writing“do˜cumen•¸ãt-st“yle–options,‘Gb˜ecause“a“n•¸ãum“b˜er‘ofŽ¡‘`problems–F(can“ošGccur.‘l¸First“of“all,‘I1if“a“do˜cumen•¸ãt-st“yle–F(option“should“b˜e“mo˜dest“in“size;Ž¡‘`if–+it“tries“to“rede ne“most“of“the“coGde“in“Ãdocstyle.sty“²I‘+think“y¸ãou“should“write“(andŽ¡‘`main•¸ãtain)›à§y“our˜o“wn,–{complete,“doGcumen•¸ãt˜st“yle.‘¼Next,‘{as˜it˜w“as˜pGossible˜to˜o“v“errideŽ¡‘`de nitions–J…from“the“main“ le“in“an“option“ le,‘L¯it“is“of“course“also“pGossible“to“o•¸ãv“errideŽ¡‘`de nitions–Hùmade“in“another“option“ le.‘L´When“this“happšGens,‘…ây¸ãour“do˜cumenš¸ãt“migh˜tŽ¡‘`depGend–UUon“the“order“in“whicš¸ãh“y˜ou“ha˜v˜e“spGeci ed“y˜our“doGcumen˜t-st˜yle“options.Ž¦‘`This–Ümmecš¸ãhanism“of“o˜v˜erriding“de nitions“from“the“main“doGcumen˜t“st˜yle“is“exploitedŽ¡‘`in–çVthe“ÇbabGel“²system.‘'ËThe“macros“that“con¸ãtain“the“hard-wired“texts“are“rede ned“inŽ¡‘`the–zcommon“part“of‘A2ÇbabGel²,‘ƒEreplacing“eac¸ãh“of“these“texts“with“a“unique“macro.‘àTheseŽ¡‘`macros›UUha•¸ãv“e˜to˜b•Ge˜de ned˜in˜the˜language-sp“eci c˜ les.ŽŸŸ‘`º4Ž‘q?úLŸýñ‘ûÜ*»AŽŽ‘èüºT‘þ<ŸâiEŽ‘3sX–Õ9and“mš®9ultilingual“doQÇcumen˜tsŽŸŸ‘`²In–þXa“europšGean“en•¸ãvironmen“t–þXit“sometimes“happ˜ens“that“one“w•¸ãan“ts–þXto“write“a“do˜cumen¸ãtŽ¡‘`that–žûconš¸ãtains“more“than“Âone‘_V²language.‘N¸I‘žèha˜v˜e“an“example“of“a“doGcumen˜t,‘±dpublishedŽ‘`Ÿ²«‰ff”Ì8Ÿ J=‘ ÕiŸý-:ó¹Aa¨cmr6½1ŽŽŽ‘\„¼This–ÕX le“is“aÃŽv‡ailable“from“óßCÊscmtt8Ælistserv@hearn.bitnet“¼as“ le“Ædutch.old¼.ŽŸ Š>‘ ÕiŸý-:½2ŽŽŽ‘\„¼Except– öwhen“the“doŸÓVEŽ‘ãxX“supplies“the“user“with“\quoted“text",‘ †but“a“Dutc˜hŽ¡‘`user–Ñmighš¸ãt“w˜an˜t“to“ha˜v˜e“Ÿã"ŽŽ‘pquoted“text",‘¬whereas“a“German“text“should“con˜tain“Ÿã"ŽŽ‘pquotedŽ¡‘`text‘ÿLÈ\‘sÇand–Àa“frencš¸ãhman“w˜ould“pGerhaps“lik˜e“to“see“something“lik˜e“Ÿÿ#ó °Ü0ncmsy5¶Ž‘ ŽÎ²quoted“textŸÿ#¶Ž‘Î?².‘@0TheseŽ¡‘`language–´›spšGeci c“con•¸ãv“en“tions–´›should“b˜e“implemen¸ãted“in“a“do˜cumen•¸ãt-st“yle–´›option“ leŽ¡‘`for–UUeac¸ãh“language.‘qÇThese“ les“should“then“bšGe“useable“with“Âal‘‚Øl‘]Þ²do˜cumenš¸ãt“st˜yles.Ž¦‘`In–»œsucš¸ãh“a“m˜ultilingual“doGcumen˜t“a“user“w˜ould“spGecify“the“languages“used“as“optionsŽ¡‘`to–ethe“Ã\documentstyle“²command.‘É÷He“wš¸ãould“also“w˜an˜t“a“mec˜hanism“to“bGe“able“toŽ¡‘`switc•¸ãh›DÌbGet“w“een˜these˜languages˜in˜a˜simple˜w“a“y‘ÿ*ª.‘lDWhen˜he˜w“ould˜use˜T‘þU>ŸÓVEŽ‘ãxX˜v“ersion˜3.0Ž¡‘`for–tBthe“prošGcessing“of“his“do˜cumenš¸ãt,‘{þhe“w˜ould“also“w˜an˜t“the“h˜yphenation“to“come“outŽ¡‘`righš¸ãt–UUfor“the“di eren˜t“languages.ŽŸ‘`º5Ž‘q?úOv®9erview–Õ9of“the“ÄbabN9el“ºsolutionŽ¤‘`5.1Ž‘z1¾The–Õ9core“of“the“systemŽ¡‘`²The–ÍCproblems“describšGed“in“sections“3“and“4“can“b˜e“solv¸ãed“using“the“Çbab˜el“²system“ofŽŸ ‘`doGcumen•¸ãt-st“yle‘UUoptions.Ž¦‘`The–UUcore“of“this“system“curren¸ãtly“pGerforms“three“functions.Ž¡‘g8ä1.ŽŽŽ‘tIt–UUde nes“a“user“inš¸ãterface“for“switc˜hing“bGet˜w˜een“languages;Ž¤‘g8ä2.ŽŽŽ‘tIt–UUconš¸ãtains“coGde“to“dynamically“load“sev˜eral“sets“of“h˜yphenation“patterns;Ž¡‘g8ä3.ŽŽŽ‘tIt–UU`repairs'“the“doGcumenš¸ãt“st˜yles“pro˜vided“in“the“standard“distribution“of“LŸýó5‘üff±AŽŽ‘͉²T‘þU>ŸÓVEŽ‘ãxX.ŽŸ‘`Ob¸ãviously–µÖpart“2“can“only“bGe“used“while“running“iniT‘þU>ŸÓVEŽ‘ãxX“to“create“a“new“format,Ž¤ ‘`whereas–0Òpart“3“should“Ânot‘#ª²bGe“read“bš¸ãy“iniT‘þU>ŸÓVEŽ‘ãxX.‘=P˜art“3“should“ev˜en“disappGear“whenŽ¡‘`LŸýó5‘üff±AŽŽ‘͉²T‘þU>ŸÓVEŽ‘ãxX–vš¸ãersion“3.0“arriv˜es,‘"«as“the“st˜yle“ les“supplied“with“the“new“LŸýó5‘üff±AŽŽ‘͉²T‘þU>ŸÓVEŽ‘ãxX“will“no“longerŽ¡‘`bšGe–èálanguage“sp˜eci c.‘,jP¸ãart“1“can“either“b˜e“loaded“inš¸ãto“the“format“with“m˜ultiple“h˜y-Ž¡‘`phenation–UUpatterns,“or“it“can“bšGe“read“while“pro˜cessing“a“do˜cumen¸ãt.Ž¦‘`F‘ÿ*ªor–8ãthis“reason“the“core“of“the“ÇbabGel“²system“is“stored“in“t•¸ãw“o–8ãseparate“ les,‘qÇÃbabel.switch²,ŸñDŽ㎎¡‘`conš¸ãtaining–Šparts“1“and“2,‘—Êand“Ãbabel.sty“²whic˜h“con˜tains“part“3.‘EThe“ le“Ãbabel.styŽ¡‘`²will–¯-instruct“LŸýó5‘üff±AŽŽ‘͉²T‘þU>ŸÓVEŽ‘ãxX“to“load“Ãbabel.switch“²if“necessary‘ÿ*ª,‘Å£the“ le“Ãbabel.switch“²c•¸ãhec“ksŽ¡‘`the–UUformat“to“see“if“h¸ãyphenation“patterns“Âc‘ÿ}'an‘¸²bGe“loaded.ŽŸ‘`º5.2Ž‘z1¾Language‘Õ9spQÇeci csŽŸ‘`²The–Ýlanguage“switcš¸ãhing“mec˜hanism“con˜tains“a“couple“of“hoGoks“for“the“dev˜elopGers“ofŽ¡‘`language-sp•Geci c›UUdo“cumen•¸ãt-st“yle˜options.Ž¦‘`First––Mof“all“the“macro“Ã\originalTeX‘•û²should“bGe“de ned.‘4°Its“function“is“to“disableŽ¡‘`spGecial–‡yde nitions“made“for“a“language“to“bring“T‘þU>ŸÓVEŽ‘ãxX“in¸ãto“a“`de ned'“state.‘-)A‘‡Elanguage-Ž¡‘`sp•Geci c›yPdo“cumen•¸ãt-st“yle˜option˜migh“t,–¥Qfor˜example,“in•¸ãtroGduce˜an˜extra˜activ“e˜c“haracter.Ž¡‘`It––Ýwš¸ãould“then“also“moGdify“the“de nitions“of“Ã\dospecials“²and“Ã\@sanitize².‘6`Suc˜h“anŽ¡‘`option–âÿw¸ãould“then“de ne“a“macro“to“restore“the“original“de nitions“of“these“macrosŽ¡‘`and–{¹restore“the“extra“activš¸ãe“c˜haracter“to“its“normal“category“coGde.‘äóIt“w˜ould“thenŽ¡‘`Ã\let‘?ý\originalTeX–UU²to“this“`restoration'“macro.Ž¦‘`T‘ÿ*ªo–5enable“the“language-spGeci c“de nitions“three“macros“are“proš¸ãvided“in“the“switc˜hingŽ¡‘`mec¸ãhanism,–UUÃ\captionsó !",š cmsy10¸hÂlanguage‘À[¸iŽ›.z²,“Ã\date¸hÂlanguage‘À[¸iŽ‘1mϲand“Ã\extras¸hÂlanguage‘À[¸iŽ˜².Ž¦‘`The–@emacro“Ã\captions¸hÂlanguage‘À[¸iŽ‘2Xß²should“pro¸ãvide“de nitions“for“the“macros“that“re-Ž¡‘`placed–QÏthe“hard-wired“texts“in“the“doGcumenš¸ãt“st˜yle“and“the“macro“Ã\date¸hÂlanguage‘À[¸iŽŽ¡‘`²should–8ãpro¸ãvide“a“de nition“for“Ã\today².‘÷The“real“fun“starts“with“the“macro“Ã\extras¸hÂlanguage‘À[¸iŽ‘.z².Ÿ€„ Ž¡‘`This–UUmacro“should“activ‘ÿqÇate“all“de nitions“needed“for“¸hÂlanguage‘À[¸iŽ‘1mϲ.ŽŽŽŒ‹&)] ¨ ýF²294’(Š’TUGbGoat,–UUV‘ÿ*ªolume“12“(1991),“No.‘qÇ2ŽŽŽ œ ý‚‘`º6Ž‘q?úThe–Õ9user“in®9terfaceŽŸýÞ‘`²The–±–user“in¸ãterface“to“the“ÇbabšGel“²system“is“quite“simple.‘;3He“should“sp˜ecify“the“languagesŽ¤ ‘`he›¯w•¸ãan“ts˜to˜use˜in˜his˜doGcumen“t˜in˜the˜list˜of˜doGcumen“t-st“yle˜options.‘F‘ÿ*ªor˜instance,Ž¡‘`for–V¸a“doGcumenš¸ãt“in“whic˜h“bGoth“the“English“and“the“Dutc˜h“language“are“used,‘Wthe“ rstŽ¡‘`line–UUcould“read:Ž¤û¼‘`Ã\documentstyle[a4,dutch,english]{artikel1}Ž¡‘`²Please–=note“that“in“this“case“the“Dutcš¸ãh-spGeci c“de nitions“are“inactiv˜e“when“LŸýó5‘üff±AŽŽ‘͉²T‘þU>ŸÓVEŽ‘ãxXŽŸ ‘`has–UU nished“prošGcessing“do˜cumen•¸ãt-st“yle–UUoption“ les.Ž© ýÞ‘`If–¾‘the“user“then“w•¸ãan“ts–¾‘to“switcš¸ãh“from“English“to“Dutc˜h“he“w˜ould“include“the“commandŽ¡‘`Ã\selectlanguage{dutch}Ž¡‘`²bGefore–UUstarting“to“write“Dutc¸ãh.Ž¦‘`If– oa“user“w•¸ãan“ts– oto“write“a“doGcumen•¸ãt-st“yle– ooption“of“his“oš¸ãwn“he“migh˜t“lik˜e“to“de neŽ¤ ‘`a–ÃOmacro“that“c•¸ãhec“ks›ÃOwhic“h˜language˜is˜in˜use˜at˜the˜time˜the˜macro˜is˜executed.Ž¡‘`F‘ÿ*ªor–ïîthis“purpGose“the“macro“Ã\iflanguage{¸hÂlanguage‘À[¸iŽ‘.zÃ}{¸hÂthen-clause‘À[¸iŽ‘9œÃ}{¸hÂelse-clause‘À[¸iŽ‘6EøÃ}Ž¡‘`²is‘UUa¸ãv‘ÿqÇailable.ŽŸýÞ‘`º7Ž‘q?úImplemen®9tation–Õ9of“the“core“of“the“systemŽŸýÞ‘`²In–¨Äthis“section“I‘¨®wš¸ãould“lik˜e“to“discuss“some“parts“of“the“implemen˜tation“of“the“ÇbabGelŽ¡‘`²system.‘aôNot–%Ýall“cošGde“will“b˜e“sho¸ãwn,‘/[b˜ecause“some“parts“of“it“are“just“series“of“sligh¸ãtlyŽ¡‘`mo•Gdi ed›÷Óco“de˜from˜the˜standard˜do“cumen•¸ãt˜st“yles.‘RœThe˜ les˜are˜fully˜doGcumen“ted˜andŽ¡‘`inš¸ãterested–nGreaders“can“prin˜t“them“if“they“ha˜v˜e“access“to“the“Ãdoc“²option,‘tƒdescribGed“b˜yŽ¡‘`F‘ÿ*ªrank‘UUMittelbac¸ãh.Ž¦‘`The– ±description“of“the“macros“that“folloš¸ãws“is“based“on“an“en˜vironmen˜t“using“T‘þU>ŸÓVEŽ‘ãxX“3.x,Ž¡‘`together–¼õwith“a“vš¸ãersion“of‘„Ãlplain.tex“²based“on“Ãplain.tex“²v˜ersion“3.x.‘¨¨The“actualŽ¡‘`implemen•¸ãtation›Îallo“ws˜for˜other˜situations˜as˜w“ell,‘,Bi.e˜a˜v“ersion˜of‘•0Ãbabel.sty˜²forŽ¡‘`T‘þU>ŸÓVEŽ‘ãxX–UU2.x“will“bGe“a¸ãv‘ÿqÇailable.ŽŸýÞ‘`º7.1Ž‘z1¾Switc®9hing‘Õ9languagesŽŸýÞ‘`²F‘ÿ*ªor–8ãeac¸ãh“language“to“bšGe“used“in“a“do˜cumenš¸ãt“a“con˜trol“sequence“of“the“form“Ã\l@¸hÂlanguage‘À[¸iŽ‘.zŸ€„ Ž¡‘`²has–ŒAto“bšGe“de ned.‘.ÁThis“will“either“b˜e“done“while“loading“h¸ãyphenation“patterns“or“whileŽ¡‘`loading–8ãthe“language-spGeci c“ le.‘÷The“implemen¸ãtation“of“Ã\selectlanguage{¸hÂlanguage‘À[¸iŽ‘.zÃ}Ž’‰‘*Ÿ€„ Ž¡‘`²andŽ¡‘`Ã\iflanguage{¸hÂlanguage‘À[¸iŽ‘.zÃ}{¸hÂthenŽ‘à®c‘ÿ}'ase‘À[¸iŽ‘0hÃ}{¸hÂelseŽ‘+Ošc‘ÿ}'ase‘À[¸iŽ‘A× Ã}Ž’\Õâ²is–>ubased“on“the“existence“ofŽ¡‘`Ã\l@¸hÂlanguage‘À[¸iŽŽ’Øq².Ž ¨¦g ÿlÇ‘`Ã\def\selectlanguage#1{%Ž¡‘jú\@ifundefined{l@#1}Ž¡’„¿ë{\@nolanerr{#1}}Ž¡’„¿ë{\originalTeXŽ¡’‰ÿè\language=\expandafter\csname‘?ýl@#1\endcsname\relaxŽ¡’‰ÿè\expandafter\csname‘?ýcaptions#1\endcsnameŽ¡’‰ÿè\expandafter\csname‘?ýdate#1\endcsnameŽ¡’‰ÿè\expandafter\csname‘?ýextras#1\endcsnameŽ¡’‰ÿè\gdef\originalTeX{\expandafter\csname‘?ýnoextras#1\endcsname}Ž¡’„¿ë}Ž¡‘`}ŽŸ’²YߺFigure‘ÕT1²:‘qÇThe–UUde nition“of“Ã\selectlanguage².ŽŽŽŸ{¼‘`T‘ÿ*ªo–˜’switcš¸ãh“from“one“language“to“another“the“macro“Ã\selectlanguage“²is“a˜v‘ÿqÇailable.Ž¡‘`Its–>de nition“can“bGe“seen“in“ gure“1.‘+ÕThe“ rst“action“it“takš¸ães“is“to“c˜hec˜k“whetherŽŽŽŒ‹'<é ¨ ýF²TUGbGoat,–UUV‘ÿ*ªolume“12“(1991),“No.‘qÇ2’(Š’295ŽŽŽ œ ý‚‘`the‘ J¸hÂlanguage‘À[¸iŽ‘61²is– Jknoš¸ãwn,‘:if“it“is“not“an“error“is“signalled.‘–¥If“the“language“is“kno˜wnŽ¤ ‘`Ã\originalTeX‘?û²is–@called“upšGon“to“reset“an¸ãy“previously“set“language-sp˜eci c“de nitions.Ž¡‘`Next–the“register“Ã\language“²is“upGdated“and“the“three“macros“that“should“activ‘ÿqÇate“allŽ¡‘`language-spGeci c–Àde nitions“are“executed.‘±ÐFinally“the“macro“Ã\originalTeX‘¿ç²receiv¸ãesŽ¡‘`a–ènew“replacemen¸ãt“text“in“order“to“bGe“able“to“deactiv›ÿqÇate“the“de nitions“just“activ˜ated.ŽŸwľŸœÇ‘`Ã\def\iflanguage#1#2#3{%Ž¡‘jú\@ifundefined{l@#1}Ž¡‘tÿô{\@nolanerr{#1}}Ž¡‘tÿô{\ifnum\language=\expandafter\csname‘?ýl@#1\endcsname\relaxŽ¡’„¿ë#2–?ý\else“#3Ž¡‘z?ñ\fi}Ž¡‘`}ŽŸ’¾=hºFigure‘ÕT2²:‘qÇThe–UUde nition“of“Ã\iflanguageŽŽŽ©¶…‘`²The–TÜmacro“Ã\iflanguage“²(see“ gure“2)“will“issue“a“wš¸ãarning“when“its“argumen˜t“is“an“`un-Ž¡‘`k•¸ão“wn'–€ælanguage.‘*øIt“then“goGes“on“to“compare“the“v‘ÿqÇalue“of“Ã\language“²and“Ã\l@¸hÂlanguage‘À[¸iŽŽ¡‘`²and–UUexecutes“either“its“secon“or“third“argumen¸ãt.ŽŸÔ&‘`º7.2Ž‘z1¾Dynamically–Õ9loading“patternsŽŸÔ&‘`²With–IÅthe“adv•¸ãen“t–IÅof“T‘þU>ŸÓVEŽ‘ãxX“3.0“it“has“bšGecome“p˜ossible“to“build“a“format“with“more“thanŽ¡‘`one–æŠhš¸ãyphenation“pattern“preloaded.‘%eThe“core“of“the“ÇbabGel“²system“pro˜vides“coGde,‘ ÖtoŽ¡‘`bGe–ŠZexecuted“bš¸ãy“iniT‘þU>ŸÓVEŽ‘ãxX“Âonly²,‘×›to“dynamically“load“h˜yphenation“patterns.‘ÖThe“onlyŽ¡‘`restriction–Xis“that“the“implemenš¸ãtation“of“T‘þU>ŸÓVEŽ‘ãxX“that“y˜ou“use“has“to“ha˜v˜e“rather“highŽ¡‘`settings–Xof‘!Ãtrie‘¡E‰ff&fŽ›Ç«size“²and“Ãtrie‘¡E‰ff&fŽ˜op‘¡E‰ff&fŽ˜size“²to“actually“load“sevš¸ãeral“h˜yphenation“patterns.ŽŸ Ô&‘`F‘ÿ*ªor–ßthe“purpGose“of“dynamically“loading“h¸ãyphenation“patterns“a“`con guration“ le'“hasŽ¡‘`to–…übšGe“in¸ãtro˜duced.‘»This“ le“will“b˜e“read“bš¸ãy“iniT‘þU>ŸÓVEŽ‘ãxX.‘»Eac˜h“line“should“con˜tain“either“aŽ¡‘`commenš¸ãt,‘ÚÌnothing–Àor“the“name“of“a“language“and“the“name“of“the“ le“that“con˜tainsŽ¡‘`the–Tàhš¸ãyphenation“patterns“for“that“language.‘piIn“ gure“3“an“example“of“suc˜h“a“ le,Ž¡‘`instructing–LDiniT‘þU>ŸÓVEŽ‘ãxX“to“load“patterns“for“three“languages,–NEnglish,“Dutc¸ãh–LDand“German.ŽŸk}¡Ÿ©9‘`Ã%–?ýFile‘ÿô:“language.datŽ¡‘`%–?ýPurpose“:“tell“iniTeX“what“files“with“patterns“to“load.Ž¡‘`english‘ÿôenglish.hyphenationsŽ¡¡‘`dutch‘îhyphen.dutch–?ý%“NederlandsŽ¡‘`german‘?ýhyphen.gerŽŸ’ÀÙźFigure‘ÕT3²:‘qÇAn–UUexample“con guration“ leŽŽŽ¦‘`The–Òöcon guration“ le“will“bGe“read“line“bš¸ãy“line“using“T‘þU>ŸÓVEŽ‘ãxX's“Ã\read“²primitiv˜e.‘ê«Be-Ž¡‘`cause–Å4the“name“of“a“ le“mighš¸ãt“bGe“follo˜w˜ed“b˜y“a“space-tok˜en“and“commen˜t“(as“inŽ¡‘`the–Sexample)“a“macro“to“proGcess“eac¸ãh“line“is“needed.‘½ÀThe“de nition“of“this“macro,Ž¡‘`Ã\process@language²,‘½can–×bšGe“found“in“ gure“4.‘WHAs“can“b˜e“seen“in“the“de nition“of“thisŽ¡‘`macro,‘"its–ùsecond“argumenš¸ãt“Âalways‘Ë?²has“to“bGe“follo˜w˜ed“b˜y“a“space-tok˜en.‘]!The“e ectŽ¡‘`of–&¨this“is“that“anš¸ãy“trailing“spaces“are“remo˜v˜ed.‘åÀThe“macro“strips“all“spaces“follo˜w-Ž¡‘`ing–Nits“argumenš¸ãts.‘[×It's“ rst“argumen˜t“is“used“to“de ne“Ã\l@¸hÂlanguage‘À[¸iŽ‘.z².‘[×The“macroŽ¡‘`Ã\addlanguage–ëû²is“basically“a“non-outer“v¸ãersion“of“the“plain“T‘þU>ŸÓVEŽ‘ãxX“macro“Ã\newlanguage².Ž¡‘`The–Dsecond“argumenš¸ãt“of“Ã\process@language“²is“the“name“of“the“ le“con˜taining“theŽ¡‘`h¸ãyphenation–µ%patterns.‘‘6Before“the“ le“can“bGe“read,‘ the“register“Ã\language“²has“toŽ¡‘`upGdated.ŽŸ Ô&‘`The–Ézcon guration“ le“is“read“in“a“Ã\loop“²(see“ gure“5).‘Î6When“a“record“is“read“fromŽ¡‘`the–øŸÓVEŽ‘ãxX“has“to“con•¸ãtin“ue–¯proGcessing“theŽ¡‘`Ã\loop².‘qÇWhen–UUall“patterns“ha•¸ãv“e–UUbšGeen“pro˜cessed“the“v‘ÿqÇalue“of“Ã\language“²is“restored.Ž ›Xþ ÿy9‘`Ã\loopŽ¡‘jú\read1–?ýto“\@config@lineŽ¡‘jú\ifx\@config@line\emptyŽ¡‘jú\elseŽ¡‘tÿô\edef\@config@line{\@config@line\space}Ž¡‘tÿô\expandafter\process@language\@config@lineŽ¡‘jú\fiŽ¡‘jú\ifeof1–?ý\@morefalse“\fiŽ¡‘jú\if@more\repeatŽ¡‘`\language=0ŽŸ’¦«ŠºFigure‘ÕT5²:‘qÇReading–UUthe“con guration“ le“line“b¸ãy“lineŽŽŽŸ¨‘`º7.3Ž‘z1¾`Repairing'–Õ9LŸýñ‘ûÜ*»AŽŽ‘èüºT‘þ<ŸâiEŽ‘3sX's“standard“doQÇcumenš®9t“st˜ylesŽŸžF‘`²A‘²clarge–²½part“of“the“core“of“the“ÇbabGel“²system“is“dedicated“to“`repair'“the“standardŽ¡‘`doGcumen•¸ãt›UUst“yles.‘qÇThis˜means˜rede ning˜the˜macros˜in˜table˜1.Ž ØxGŸ‘i?Ÿ«³1’¦€macro‘?ÒŸ™œ„ ffŽ’áarticleŽ’-¿ärepGortŽ’T¿èb•Go“okŽ’v#|letterŽŽ’ €Ÿ‰ffòÿàŸfd‘Ã\fnum@figure‘ÌÁŸ™œ„ ffŽ‘o¼D¸Ž’–ÜGŽ’»Ž’ÝnŽŽ¡‘Ã\fnum@table‘ ¾Ÿ™œ„ ffŽ‘o¼D¸Ž’–ÜGŽ’»Ž’ÝnŽŽ¡‘Ã\tableofcontents‘ÌÍŸ™œ„ ffŽ‘o¼D¸Ž’–ÜGŽ’»ŽŽ¡‘Ã\listoffigures‘LÇŸ™œ„ ffŽ‘o¼D¸Ž’–ÜGŽ’»ŽŽ¡‘Ã\listoftables‘ŒÄŸ™œ„ ffŽ‘o¼D¸Ž’–ÜGŽ’»ŽŽ¡‘Ã\thebibliography‘ÌÍŸ™œ„ ffŽ‘o¼D¸Ž’–ÜGŽ’»ŽŽ¡‘Ã\theindex‘*Œ¸Ÿ™œ„ ffŽ‘o¼D¸Ž’–ÜGŽ’»ŽŽ¡‘Ã\abstract‘*Œ¸Ÿ™œ„ ffŽ‘o¼D¸Ž’–ÜGŽ’»ŽŽ¡‘Ã\part‘?Œ¬Ÿ™œ„ ffŽ‘o¼D¸Ž’–ÜGŽ’»ŽŽ¡‘Ã\chapter‘/̵Ÿ™œ„ ffŽ’–ÜG¸Ž’»ŽŽ¡‘Ã\appendix‘*Œ¸Ÿ™œ„ ffŽ’–ÜG¸Ž’»ŽŽ¡‘Ã\cc‘J ¦Ÿ™œ„ ffŽ’Ýn¸ŽŽ¡‘Ã\encl‘?Œ¬Ÿ™œ„ ffŽ’Ýn¸ŽŽ¡‘Ã\ps@headings‘ÌÁŸ™œ„ ffŽ’Ýn¸ŽŽŽŽŽŸi¤ú‘hQ³²T‘ÿ*ªable–UU1:‘qÇmacros“that“need“to“bšGe“rede ned“for“the“four“standard“do˜cumenš¸ãt“st˜yles.ŽŽŽŸJÅ‘`As–8ãan“example“of“the“w•¸ãa“y–8ãthe“macros“ha•¸ãv“e–8ãto“bGe“rede ned,‘qÇthe“rede nition“of“Ã\tableofcontentsŸñDŽ㎎¡‘`²is–UUsho¸ãwn“in“ gure“6.ŽŸ žF‘`The–¶standard“stš¸ãyles“can“bGe“distinguished“b˜y“c˜hec˜king“the“existence“of“the“macrosŽ¡‘`Ã\chapter–²Ñ²(not“in“Ãarticle“²and“Ãletter²)“and“Ã\opening“²(only“in“Ãletter²).‘Š;The“resultŽ¡‘`of–cthese“c•¸ãhec“ks–cis“stored“in“the“macro“Ã\doc@style².‘šóWhen“Ã\doc@style“²already“existsŽŽŽŒ‹)ZŸ ¨ ýF²TUGbGoat,–UUV‘ÿ*ªolume“12“(1991),“No.‘qÇ2’(Š’297ŽŽŽ œ þ㎠ÿy9‘`Ã\@ifundefined{contentsname}Ž¤ ‘jú{\def\tableofcontentsŽ¡‘tÿô{\section*{\contentsnameŽ¡‘î\@mkboth{\uppercase\expandafter{\contentsname}}Ž¡’©Ö{\uppercase\expandafter{\contentsname}}Ž¡’©Ö}Ž¡‘î\@starttoc{toc}Ž¡‘tÿô}Ž¡‘jú}Ž¡‘jú{}ŽŸ’¯}QºFigure‘ÕT6²:‘qÇAn–UUexample“of“rede ning“a“commandŽŽŽŸ àø‘`(whic¸ãh–ë¯is“the“case“when“for“instance“Ãartikel1.sty“²is“used“[7Ž‘])“it“is“not“supGersededŽ¤ ‘`(see–UU gure“7).Ž ‡D†Ÿ‘9‘`Ã\@ifundefined{doc@style}Ž¡‘tÿô{\def\doc@style{0}Ž¡’‰ÿè\@ifundefined{opening}Ž¡’žÿÜ{\@ifundefined{chapter}Ž¡’³ÿÐ{\def\doc@style{1}}Ž¡’³ÿÐ{\def\doc@style{2}}Ž¡’žÿÜ}{\def\doc@style{3}}Ž¡‘tÿô}{\relax}ŽŸ’®GüºFigure‘ÕT7²:‘qÇDetermining–UUthe“main“doGcumenš¸ãt“st˜yleŽŽŽŸ `ø‘`º8Ž‘q?úImplemen®9ting–Õ9a“language“spšQÇeci c“do˜cumen•®9t-st“yle–Õ9option“ leŽ©p|‘`²T‘ÿ*ªo–öÛillustrate“the“w•¸ãa“y–öÛa“language“spšGeci c“ le“can“b˜e“implemen¸ãted“the“ le“Ãdutch.sty“²isŽ¡‘`discussed– éhere.‘XùNote“that“not“all“of“the“coGde“conš¸ãtainde“in“the“ le“Ãdutch.sty“²is“sho˜wnŽ¡‘`here,‘;Žonly– ƒthose“parts“that“are“of“in¸ãterest“for“the“scopGe“of“this“article“are“included.Ž¡‘`If–ÿþthe“reader“wš¸ãould“lik˜e“to“see“the“complete“coGde,‘*¨he“can“prin˜t“all“ les“in“the“ÇbabGelŽ¡‘`²system,–UUusing“the“ le“Ãdoc.sty²,“describGed“bš¸ãy“F‘ÿ*ªrank“Mittelbac˜h“in“[6Ž‘].ŽŸp|‘`º8.1Ž‘z1¾Compatibilt®9y–Õ9with“plain“T‘þ<ŸâiEŽ‘3sXŽ¦‘`²The–A le“Ãgerman.tex“²[4Ž‘]“wš¸ãas“written“in“suc˜h“a“w˜a˜y“that“it“can“bGe“used“b˜y“bGoth“plainŽ¡‘`T‘þU>ŸÓVEŽ›ãxX–~Iusers“and“LŸýó5‘üff±AŽŽ‘͉²T‘þU>ŸÓVEŽ˜X“users.‘ì£This“seemed“a“go•Go“d–~Iidea,‘ˆ†so“all“ les“in“the“ÇbabGel“²systemŽ¡‘`can–=bšGe“pro˜cessed“b¸ãy“b˜oth“plain“T‘þU>ŸÓVEŽ›ãxX“and“LŸýó5‘üff±AŽŽ‘͉²T‘þU>ŸÓVEŽ˜X.‘i±But“some“of“the“\useful“hac¸ãks"“fromŽ¡‘`LŸýó5‘üff±AŽŽ‘͉²T‘þU>ŸÓVEŽ›ãxX–5¤are“used,‘;ûso“for“a“plain“T‘þU>ŸÓVEŽ˜X“user“they“ha•¸ãv“e–5¤to“bšGe“de ned.‘g7F‘ÿ*ªor“this“purp˜ose“theŽ¡‘`format–ais“c•¸ãhec“k“ed–aat“the“start“of“a“language“spGeci c“ le.‘¥êIf“the“format“is“Ãplain“²anŽ¡‘`extra–UU le,“called“Ãlatexhax.sty“²is“read.ŽŸ{D‡ŸœÇ‘`Ã{\def\format{plain}Ž¡‘`\ifx\fmtname\formatŽ¡‘tÿô\expandafter\ifx\csname‘?ý@ifundefined\endcsname\relaxŽ¡‘î\gdef\next{latexhax.sty}Ž¡‘î\aftergroup\input\aftergroup\nextŽ¡‘tÿô\fiŽ¡‘`\fi}ŽŸ’°d‚ºFigure‘ÕT8²:‘qÇConditonal–UUloading“of‘rÃlatexhax.styŽŽŽŽŽŒ‹*fã ¨ ýF²298’(Š’TUGbGoat,–UUV‘ÿ*ªolume“12“(1991),“No.‘qÇ2ŽŽŽ œ ý‚‘`This–"ˆ le“should“bGe“read“only“once,‘,±so“another“c•¸ãhec“k–"ˆis“done“on“the“existence“of“one“ofŽ¤ ‘`the–UUcommands“de ned“there.Ž©­Ô‘`A‘XÔnew–XÕgroup“is“started“to“kš¸ãeep“the“de nition“of“the“macro“Ã\format²,‘Y´whic˜h“is“used“inŽ¡‘`the–L©folloš¸ãwing“if“statemen˜t,‘NeloGcal.‘nãWhen“the“curren˜t“format“turns“out“to“bGe“plain“T‘þU>ŸÓVEŽ‘ãxXŽ¡‘`the–³ le“Ãlatexhax.sty“²has“to“bGe“read.‘‹But“the“de nitions“in“that“ le“should“remainŽ¡‘`v‘ÿqÇalid–„ºafter“the“group“is“closed.‘ÿ÷This“could“bGe“accomplished“b¸ãy“making“all“de nitionsŽ¡‘`Ãglobal²,‘öbut–ó^another“solution“is“to“tell“T‘þU>ŸÓVEŽ‘ãxX“to“proGcess“the“ le“Ãlatexhax.sty“Âafter‘ë²theŽ¡‘`currenš¸ãt–:Ïgroup“has“bGeen“closed.‘hðThe“command“Ã\aftergroup“²puts“the“next“tok˜en“on“aŽ¡‘`list–UUto“bšGe“pro˜cessed“after“the“group.ŽŸ­Ô‘`º8.2Ž‘z1¾Switcš®9hing–Õ9to“the“Dutc˜h“languageŽŸ­Ô‘`²In–„»section“7.1“the“names“of“macros“needed“to“switcš¸ãh“to“a“language“ha˜v˜e“bšGeen“describ˜ed.Ž¡‘`In–UU gure“9“these“macros“and“their“de nition“are“shoš¸ãwn“for“the“Dutc˜h“language.Ž u0ý þ¡9‘`Ã\def\captionsdutch{\gdef\refname{Referenties}%Ž¡’ÿÇ\gdef\abstractname{Samenvatting}%Ž¡’ÿÇ\gdef\bibname{Bibliografie}%Ž¡’ÿÇ...Ž¡’ÿÇ\gdef\pagename{Pagina}}Ž¡¡‘`\def\datedutch{%Ž¡‘tÿô\gdef\today{\number\day~\ifcase\month\orŽ¡’³ÿÐjanuari\or–?ýfebruari\or“maart\or“april\orŽ¡’³ÿÐmei\or–?ýjuni\or“juli\or“augustus\orŽ¡’³ÿÐseptember\or–?ýoktober\or“november\or“december\fiŽ¡’³ÿÐ\space‘?ý\number\year}}Ž¡‘`\begingroup‘?ý\catcode`\"\activeŽ¡¡‘`\gdef\extrasdutch{%Ž¡‘tÿô\global\let\dospecials\dutch@dospecialsŽ¡‘tÿô\global\let\@sanitize\dutch@sanitizeŽ¡‘tÿô\catcode`\"\activeŽ¡‘tÿô\gdef"{\protect\dutch@active@dq}Ž¡‘tÿô\gdef\"{\protect\@umlaut}Ž¡‘`}\endgroupŽ¡¡‘`\def\noextrasdutch{%Ž¡‘tÿô\catcode`\"12Ž¡‘tÿô\global\let\dospecials\original@dospecialsŽ¡‘tÿô\global\let\@sanitize\original@sanitizeŽ¡‘tÿô\global\let\"\dieresisŽ¡‘`}ŽŸ’ŽÝQºFigure‘ÕT9²:‘qÇThe–UUmacros“needed“to“switcš¸ãh“to“the“Dutc˜h“languageŽŽŽŸµ‘`The–µde nitions“of“Ã\captionsdutch“²and“Ã\datedutch“²are“prettš¸ãy“straigh˜tforw˜ard“andŽ¡‘`need–¨£not“bšGe“discussed.‘k±The“macro“Ã\extrasdutch“²will“b˜e“discussed“in“some“moreŽ¡‘`detail.Ž¦‘`First,‘8pbGecause–×Òfor“Dutcš¸ãh“(as“w˜ell“as“for“German)“the“Ã"“²c˜haracter“is“made“activ˜e,Ž¡‘`the–h÷LŸýó5‘üff±AŽŽ‘͉²T‘þU>ŸÓVEŽ‘ãxX“macros“Ã\dospecials“²and“Ã\@sanitize“²ha•¸ãv“e–h÷to“bGe“rede ned“to“include“thisŽ¡‘`cš¸ãharacter–fGas“w˜ell.‘¤žThe“new“de nitions“are“implemen˜ted“as“t˜w˜o“spGecial“commands,Ž¡‘`so–æ8wš¸ãe“globally“Ã\let“²the“originals“to“their“new“v˜ersions.‘ $oThen“the“Ã"“²c˜haracter“isŽ¡‘`made–™Xactivš¸ãe“and“is“de ned.‘=ÐThen,‘ªYto“prev˜en˜t“an“error“when“Ã\"“²appGears“in“a“mo˜vingŽŽŽŒ‹+q ¨ ýF²TUGbGoat,–UUV‘ÿ*ªolume“12“(1991),“No.‘qÇ2’(Š’299ŽŽŽ œ ý‚‘`argumen¸ãt,‘4¹the–,‘macro“Ã\"“²is“rede ned“and“made“robust.‘d1All“this“is“done“inside“a“groupŽ¤ ‘`to–UUkš¸ãeep“the“category“coGde“c˜hange“for“the“Ã"“²c˜haracter“loGcal.Ž©Œ1‘`The–ßmacro“Ã\extrasdutch“²has“a“coun¸ãterpart,–*Ã\noextrasdutch²,“that–ßcancels“the“extraŽ¡‘`de nitions–x„made“bš¸ãy“Ã\extrasdutch².‘(,It“c˜hanges“the“Ã\catcode“²of“the“Ã"“²c˜haracter“bac˜k“toŽ¡‘``other'–4aand“globally“Ã\let²s“the“macros“Ã\dospecials“²and“Ã\@sanitize“²to“their“originalŽ¡‘`de nitions.‘qÇThe–UUoriginal“de nition“of“Ã\"“²is“restored“as“w¸ãell.Ž¦‘`In–UU gure“10“the“coGde“needed“to“rede ne“Ã\dospecials“²and“Ã\@makeother“²is“sho¸ãwn.Ž Á{ð ÿTÇ‘`Ã\begingroupŽ¡‘jú\def\do{\noexpand\do\noexpand}%Ž¡‘jú\xdef\dutch@dospecials{\dospecials\do\"}%Ž¡‘jú\expandafter\ifx\csname‘?ý@sanitize\endcsname\relaxŽ¡‘`%–?ýdo“nothing“if“\@sanitize“is“undefined...Ž¡‘jú\elseŽ¡‘z?ñ\def\@makeother{\noexpand\@makeother\noexpand}%Ž¡‘z?ñ\xdef\dutch@sanitize{\@sanitize\@makeother\"}%Ž¡‘jú\fiŽ¡‘`\endgroupŽ¡¡‘`\global\let\original@dospecials\dospecialsŽ¡‘`\global\let\original@sanitize\@sanitizeŽŸ‘iöWºFigure‘ÕT10²:‘qÇCoGde–UUneeded“for“the“rede nition“of“Ã\dospecials“²and“Ã\@makeother².ŽŽŽŸ!k®‘`º8.3Ž‘z1¾An–Õ9extra“activš®9e“c˜haracterŽ©Œ1‘`²All–|)the“cošGde“disccussed“sofar“is“necessary“b˜ecause“wš¸ãe“need“an“extra“activ˜e“c˜haracter.Ž¡‘`This–*¨c¸ãharacter“is“then“used“as“indicated“in“table“2.‘cOne“of“the“reasons“for“this“is“thatŽ¡‘`in–¹Óthe“Dutcš¸ãh“language“a“w˜ord“with“an“umlaut“can“bGe“h˜yphenated“just“bGefore“the“letterŽ¡‘`with–…Zthe“umlaut,‘‘[but“the“umlaut“has“to“disappGear“if“the“wš¸ãord“is“brok˜en“bGet˜w˜een“theŽ¡‘`previous–UUletter“and“the“accen¸ãted“letter.Ž 4ÓŸ¸UUŸÏæd’œðeÃ"aŽ’³p_\"a–W™²whicš¸ãh“h˜yphenates“as“Ã-a²;‘Ø»also“implemen˜ted“forŽ¡’³p_the–UUother“letters.ŽŽŽŽ©’œðeÃ"|Ž’³p_²disable–UUligature“at“this“pGosition.ŽŽŽŽ¡’œðeÃ"-Ž’³p_²an–explicit“hš¸ãyphen“sign,‘Âallo˜wing“h˜yphenation“in“theŽ¡’³p_rest–UUof“the“w¸ãord.ŽŽŽŽ¦’œðeÃ"`Ž’³p_²lo•¸ãw“ered–UUdouble“left“quotes“(see“example“bGelo¸ãw).ŽŽŽŽ¡’œðeÃ"'Ž’³p_²normal–UUdouble“righ¸ãt“quotes.ŽŽŽŽ¡’œðeÃ\-Ž’³p_²likš¸ãe–7¾the“old“Ã\-²,‘=©but“allo˜wing“h˜yphenation“in“the“restŽ¡’³p_of–UUthe“w¸ãord.ŽŽŽŽŽŽŽŸEqÇ’ªÃ“T‘ÿ*ªable–UU2:‘qÇThe“extra“de nitions“made“b¸ãy‘xâÃdutch.styŽŽŽŸ&š‘`²In– "[3Ž‘]“the“quoting“con•¸ãv“en“tions– "for“the“Dutc¸ãh“language“are“discussed.‘-The“preferredŽ¡‘`con•¸ãv“en“tion–Ncis“the“single-quote“Anglo-American“con•¸ãv“en“tion,‘‚úi.e.›"`This–Ncis“a“quote'.˜An“al-Ž¡‘`ternativš¸ãe–—çis“the“sligh˜tly“old-fashioned“Dutc˜h“methoGd“with“initial“double“quotes“lo˜w˜eredŽ¡‘`to–UUthe“baseline,“Ÿã"ŽŽ‘îôThis“is“a“quote",“whicš¸ãh“should“bGe“t˜ypGed“as“Ã"`This–?ýis“a“quote"'².ŽŸŒ1‘`º8.3.1Ž’ƒ#‚SuppQÇorting–Õ9macro“de nitionsŽ¦‘`²The–¹de nition“of“the“activš¸ãe“Ã"“²c˜haracter“needs“a“couple“of“suppGort“macros.‘^“The“macroŽ¡‘`Ã\allowhyphens–KÚ²is“used“makš¸ãe“h˜yphenation“of“w˜ord“pGossible“where“it“otherwise“w˜ould“bGeŽ¡‘`inhibited–8ãb¸ãy“T‘þU>ŸÓVEŽ‘ãxX.‘÷Basically“its“de nition“is“nothing“more“than“Ã\nobreak–?ý\hskip“0pt“plus“0pt².Ÿ8ä„ *«ŽŽŽŒ‹,|ਠýF²300’(Š’TUGbGoat,–UUV‘ÿ*ªolume“12“(1991),“No.‘qÇ2ŽŽŽ œ ý‚‘`Ã\gdef\allowhyphens{\penalty\@M‘?ý\hskip\z@skip}Ž© >‘`²Then–"¶a“macro“is“de ned“to“lo•¸ãw“er–"¶the“Dutcš¸ãh“left“double“quote“to“the“same“lev˜el“as“theŽ¤ ‘`comma.‘bXIt–úÛprepares“a“lo¸ãw“double“opšGening“quote“in“b˜oš¸ãx“register“0.‘bXThis“macro“w˜asŽ¡‘`copied–UUform“Ãgerman.tex².Ž¦‘`Ã\gdef\set@low@box#1{%Ž¡‘tÿô\setbox\tw@\hbox{,}‘?ý\setbox\z@\hbox{#1}Ž¡‘tÿô\dimen\z@\ht\z@–?ý\advance\dimen\z@“-\ht\tw@Ž¡‘tÿô\setbox\z@\hbox{\lower\dimen\z@‘?ý\box\z@}Ž¡‘tÿô\ht\z@\ht\tw@‘?ý\dp\z@\dp\tw@}Ž¦‘`²The–Hmacro“Ã\set@low@box“²is“used“to“de ne“loš¸ãw“opGening“quotes.‘mUSince“it“ma˜y“bGe“usedŽ¡‘`in–UUargumen¸ãts“to“other“macros“it“needs“to“bGe“protected.Ž¦‘`Ã\gdef\dlqq{\protect\@dlqq}Ž¡‘`\gdef\@dlqq{{%Ž¡‘jú\ifhmodeŽ¡‘tÿô\edef\@SF{\spacefactor\the\spacefactor}Ž¡‘jú\elseŽ¡‘tÿô\let\@SF\emptyŽ¡‘jú\fiŽ¡‘jú\leavevmode\set@low@box{''}Ž¡‘jú\box\z@\kern-.04em\allowhyphens\@SF\relax}}Ž¦‘`²F‘ÿ*ªor–Ã2reasons“of“symmetry“w¸ãe“also“de ne“Ã"'².‘AThis“command“is“de ned“similar“to“Ã\dlqq²,Ž¡‘`except–UUthat“the“quotes“aren't“lo•¸ãw“ered–UUto“the“baseline.Ž¦‘`Ã\gdef\@drqq{{%Ž¡‘jú\ifhmodeŽ¡‘tÿô\edef\@SF{\spacefactor\the\spacefactor}Ž¡‘jú\elseŽ¡‘tÿô\let\@SF\emptyŽ¡‘jú\fiŽ¡‘jú''\@SF\relax}}Ž¦‘`²The–UUoriginal“double“quote“cš¸ãharacter“is“sa˜v˜ed“in“the“macro“Ã\dq“²to“k˜eep“it“a˜v‘ÿqÇailable.Ž¦‘`Ã\begingroup‘?ý\catcode`\"12Ž¡‘jú\gdef\dq{"}Ž¡‘`\endgroupŽ¦‘`²The–öaoriginal“de nition“of“Ã\"“²is“stored“as“Ã\dieresis².‘TêThe“resason“for“this“is“that“ifŽ¡‘`a–€ofonš¸ãt“with“a“di eren˜t“encoGding“sc˜heme“is“used“the“de nition“of“Ã\"“²migh˜t“not“bGe“theŽ¡‘`plain–UUT‘þU>ŸÓVEŽ‘ãxX“one.Ž¦‘`Ã\global\let\dieresis\"Ž¦‘`²In–º…the“Dutcš¸ãh“language“v˜o˜w˜els“with“a“dieresis“or“umlaut“accen˜t“are“treated“spGecially‘ÿ*ª.Ž¡‘`If–Üa“h¸ãyphenation“ošGccurs“b˜efore“a“v•¸ão“w“el-plus-umlaut,‘#Zthe–Üumlaut“should“disapp˜ear.‘\ôT‘ÿ*ªoŽ¡‘`bšGe–´Fable“to“do“this,‘Ô|the“h¸ãyphenation“break“b˜ehaš¸ãviour“for“the“ v˜e“v˜o˜w˜els,‘Ô|bGoth“lo˜w˜ercaseŽ¡‘`and–ðuppšGercase,‘jcould“b˜e“de ned“ rst“in“terms“of“Ã\discretionary².‘[PBut“this“results“inŽ¡‘`a–UUlarge“Ã\if²-construct“in“the“de nition“of“the“activ¸ãe“Ã"².ŽŸ …‘`As–­tbšGoth“Kn¸ãuth“and“Lamp˜ort“ha•¸ãv“e‘­tp˜oin“ted–­tout,‘{a“user“should“not“use“Ã"“²when“heŽ¡‘`really–èímeans“something“likš¸ãe“Ã''².‘M¥F‘ÿ*ªor“this“reason“no“distinction“is“made“bGet˜w˜een“v˜o˜w˜elsŽ¡‘`and–´Žconsonanš¸ãts.‘rTherefore“one“macro,– \Ã\@umlaut²,“spGeci es–´Žthe“h˜yphenation“breakŽ¡‘`bGeha¸ãviour–UUfor“all“letters.Ž¦‘`Ã\def\@umlaut#1{%Ž¡‘tÿô\allowhyphens%Ž¡‘tÿô\discretionary{-}{#1}{\dieresis‘?ý#1}%Ž¡‘tÿô\allowhyphens}ŽŽŽŒ‹-Š+ ¨ ýF²TUGbGoat,–UUV‘ÿ*ªolume“12“(1991),“No.‘qÇ2’(Š’301ŽŽŽ œ ý‚‘`The–UUlast“suppšGort“macro“to“b˜e“de ned“is“Ã\dutch@active@dq².Ž©L"‘`Ã\gdef\dutch@active@dq#1{%Ž¤ ‘z?ñ\if\string#1`\dlqq{}%Ž¡‘`\else\if\string#1'\drqq{}%Ž¡‘`\else\if\string#1-\allowhyphens-\allowhyphens%Ž¡‘`\else\if\string#1|\discretionary{-}{}{\kern.03em}%Ž¡‘`\else\if\string#1i\allowhyphens\discretionary{-}{i}{\dieresis\i}%Ž¡’¾Ê\allowhyphens%Ž¡‘`\else\if\string#1j\allowhyphens\discretionary{-}{j}{\dieresis\j}%Ž¡’¾Ê\allowhyphens%Ž¡‘`\else‘?ý\@umlaut{#1}\fi\fi\fi\fi\fi\fi}Ž¦‘`²The–gVmacro“reads“the“next“tok¸ãen“and“pšGerforms“some“appropriate“action.‘§ÊIf“no“sp˜ecialŽ¡‘`action–UUis“de ned,“it“will“proGduce“an“umlaut“accenš¸ãt“on“top“of“argumen˜t“1.ŽŸ ¦‘`The–Tlast“de nition“needed“is“a“replacemenš¸ãt“for“Ã\-².‘õÃThe“new“v˜ersion“of“Ã\-“²shouldŽ¡‘`indicate–#an“extra“hš¸ãyphenation“pGosition,‘úwhile“allo˜wing“other“h˜yphenation“pGositions“toŽ¡‘`bšGe–Ögenerated“automatically‘ÿ*ª.‘³IThe“standard“b˜eha¸ãviour“of“T‘þU>ŸÓVEŽ‘ãxX“in“this“resp˜ect“is“v¸ãeryŽ¡‘`unfortunate–pžfor“languages“sucš¸ãh“as“Dutc˜h“and“German,‘ž\where“long“compGound“w˜ords“areŽ¡‘`quite–Ž5normal“and“all“one“needs“is“a“means“to“indicate“an“extra“h¸ãyphenation“pGositionŽ¡‘`on–UUtop“of“the“ones“that“T‘þU>ŸÓVEŽ‘ãxX“can“generate“from“the“h¸ãyphenation“patterns.Ž¦‘`Ã\def\-{\allowhyphens\discretionary{-}{}{}\allowhyphens}ŽŸ¦‘`º8.4Ž‘z1¾Activ‘ÿ\rating–Õ9the“de nitionsŽŸ¦‘`²The–ZOlast“action“that“should“bšGe“p˜erformed“b¸ãy“a“language“sp˜eci c“ le,‘[Žis“activ‘ÿqÇating“it'sŽ¡‘`de nitions.‘qÇBefore–UUdoing“that“the“macro“Ã\originalTeX“²should“bGe“de nined.Ž¦‘`Ã\@ifundefined{originalTeX}{\let\originalTeX\relax}{}Ž¦‘`²Also,‘uthe–ßÕmacro“Ã\l@¸hÂlanguage‘À[¸iŽ‘1øO²should“bšGe“de ned.‘HIf“it“hasn't“already“b˜een“de ned,Ž¡‘`this–UUmeans“that“no“hš¸ãyphenation“patterns“w˜ere“loaded“for“this“language.Ž¦‘`Ã\@ifundefined{l@dutch}{\addlanguage{dutch}}{}Ž¡‘`\selectlanguage{dutch}Ž©¦‘`º9Ž‘q?úConclusionŽŸ¦‘`²In––jthis“article“a“system“of“došGcumen•¸ãt-st“yle––joption“ les“has“b˜een“presen¸ãted“that“supp˜ortsŽ¡‘`the–%¯mš¸ãultilingual“use“of“LŸýó5‘üff±AŽŽ‘͉²T‘þU>ŸÓVEŽ‘ãxX.‘âÔSome“of“the“coGde“in˜v˜olv˜ed“has“bGeen“discussed.‘âÔTheŽ¡‘`actual–žø les“will“me“made“aš¸ãv‘ÿqÇailable“through“the“in˜ternational“net˜w˜orks.‘N±They“will“bGeŽ¡‘`stored–7{in“the“ leserv¸ãer“in“the“Netherlands“(address:‘6ÃLISTSERV@HEARN.BITNET²),“theŽ¡‘` le–ÍêÃbabel‘?ýreadme“²will“explain“what“y¸ãou“need“to“get“to“bGe“able“to“use“the“system.‘D¤TheŽ¡‘`system–µàwš¸ãas“dev˜elopšGed“using“the“Çdo˜c“²option,‘ÕÄso“the“ les“a¸ãv‘ÿqÇailable“are“fully“do˜cumen¸ãted.Ž¦‘`ºReferencesŽŸ¦‘`²[1]ŽŽ‘oŽ;Donald–UUE.“Kn¸ãuth,“ÂThe‘“çT‘þKßÓVEŽ‘Í-Xb–ÿ}'o“ok²,›UUAddison-W–ÿ*ªesley“,˜1986.Ž¤ L"‘`[2]ŽŽ‘oŽ;Leslie–UULampGort,“ÂLŸý雑üîîót}\Êcmti7ÊAŽŽ<ÂT‘þKßÓVEŽ‘Í-X,–“çA“do›ÿ}'cument“pr˜ep˜ar˜ation“System²,›UUAddison-W–ÿ*ªesley“,˜1986.Ž¡‘`[3]ŽŽ‘oŽ;K.F.–\UT‘ÿ*ªreebus.“ÂT‘ÿ;¼ekstwijzer,‘ÂZe›ÿ}'en–…Ýgids“vo˜or“het“gr˜a sch“verwerken“van“tekst.‘\U²SDUŽ© ‘oŽ;Uitgev•¸ãerij› ñ('s-Gra“v“enhage,‘Ò1988).˜A‘ ÞDutc“h˜b•Go“ok˜on˜la•¸ãy“out˜design˜and˜t“ypGograph“y‘ÿ*ª.Ž¡‘`[4]ŽŽ‘oŽ;HubGert–UUP¸ãartl,“ÂGerman‘“çT‘þKßÓVEŽ‘Í-X²,“ÂTUGb–ÿ}'o“at‘H-²9–UU(1988)“#1,“p.“70{72.Ž¡‘`[5]ŽŽ‘oŽ;Leslie–UULampGort,“in:‘qÇT‘þU>ŸÓVEŽ‘ãxXhax“Digest,“V‘ÿ*ªolume“89,“#13,“17“februari“1989.Ž¡‘`[6]ŽŽ‘oŽ;F‘ÿ*ªrank–UUMittelbac¸ãh,“ÂThe‘“çó ÅUé cmssi10ËdoGcÂ-option²,“ÂTUGb–ÿ}'o“at‘H-²10–UU(1989)“#2,“p.“245{273.Ž¡‘`[7]ŽŽ‘oŽ;Johannes–¤Braams,›O·Victor“Eijkhout“and“Nico“P¸ãoppGelier,˜ÂThe–L0development“of“na-Ž¦‘oŽ;tional–“çLŸý雑üîîÊAŽŽ<ÂT‘þKßÓVEŽ‘Í-X“styles²,›UUÂTUGb–ÿ}'o“at‘H-²10˜(1989)˜#3,˜p.˜401{406.Ž¡‘`[8]ŽŽ‘oŽ;Joac•¸ãhim‘ø>Sc“hroGd,›`øÂInternational–MLŸý雑üîîÊAŽŽ<ÂT‘þKßÓVEŽ‘Í-X“is“r–ÿ}'e“ady–Mto“use²,˜ÂTUGb–ÿ}'o“at‘ë²11–ø>(1990)“#1,Ž¦‘oŽ;p.‘UU87{90.ŽŽŽŒø•]ƒ’À;è¨Ô ó ÅUé cmssi10ót}\Êcmti7óŒ-ø cmcsc10ó#Ñfcmti8óm#½R cmss10óßCÊscmtt8óp®0J cmsl10óñkAH cmssbx10óßê