÷ƒ’À;è TeX output 1995.07.30:1528‹ÿÿÿÿŸòó !",š cmsy10·xŽ‘qÉóKñ`y cmr10«1‘T¸ãypšGesetting–UUGerman“Do˜cumenš¸ãts“with“Plain“T‘þU>Ÿ'EŽ‘ãxX’“ÂIn˜troGduction‘1ŽŽ ƒ3Ú ý†Ì&óò"V cmbx10Â1.‘ üIn®9troQÇduction.ŽŸ «There–UUare“sevš¸ãeral“defencies“of“plain“T‘þU>Ÿ'EŽ‘ãxX“if“used“for“German“doGcumen˜ts:Ž¤ ¬‘ÿÿ|Ž‘Mappings–™of“national“cš¸ãharacters“(`umlauts'“and“`sharp“s')“to“macros“or“to“other“c˜haracter“coGdes“(ifŽ© ‘spGecial–UUfonš¸ãts“are“a˜v‘ÿqÇailable)“are“missing.Ž¡‘ÿÿ|Ž‘T‘þU>Ÿ'EŽ‘ãxX‘RqprošGduces–R³lots“of“o•¸ãv“erfull‘R³h“b˜o“xes–R³for“German“texts.‘iàThat's“b˜ecause“the“w¸ãords“there“are“usuallyŽ¦‘longer–oõthan“English“ones.‘Á§F‘ÿ*ªurthermore“wš¸ãe“ha˜v˜e“to“use“m˜uc˜h“more“h˜yphenation“for“German“texts“thanŽ¦‘for–‡ÇEnglish“ones,‘°änarroš¸ãw“t˜ypšGesetting“is“more“imp˜ortanš¸ãt“than“few“h˜yphenations.‘-CIn“particular,‘°äw˜ords“withŽ¦‘umlauts–UUare“not“hš¸ãyphenated“often“an˜yho˜w,“ev˜en“with“the“`m˜ultiple-w˜ord'“approac˜h“from“ó2ßêŸ'EŽ‘ãxX‘ chas“no“easy‘ÿ*ª,Ž¦‘readable›UUw•¸ãa“y˜to˜pro“vide˜this.Ž¡This–)* le“doGes“the“according“de nitions.›íGThey“are“quite“often“only“a“kludge.˜But“it“is“hard“to“mak¸ãe“theŽ¦restrictions–ÕdisappšGear,‘î½sometimes“it“is“ev¸ãen“imp˜ossible“within“the“currenš¸ãt“implemen˜tation“of“T‘þU>Ÿ'EŽ‘ãxX|and“thereŽ¦will–UUnevš¸ãer“bGe“an˜y“other“implemen˜tation.‘qÇSo“w˜e“m˜ust“liv˜e“with“these“kludges.ŽŸ$Š½Â2.‘ «Of–[course,›'there“is“more“to“German“t¸ãypGesetting.‘UÉHyphenation,˜also“for“w¸ãords“with“umlauts“and“sharp“s,Ž¦etc.‘PåThis–ò­basic“functionalitš¸ãy“is“supplied“b˜y“the“óm#½R cmss10¾babGel“«system“and“D˜ANTE's“Ýgerman.styŽ‘7r«,‘hw˜e“ha˜v˜e“to“load“theŽ¦appropriate‘UUmoGdule.Ž¡‘There's–¬one“problem,›$Îthough.‘]¾babGel“«3.5“de nes“Ý\DeclareTextSymbolŽ‘a˜v«,˜a“symš¸ãbGol“used“b˜y“Ýgerman.styŽ‘:±:«toŽ¦decide–eif“it“shall“use“NFSS‘VcošGde“to“access“sym¸ãb˜ols.‘]ÍBut“that“usage“will“lead“to“an“endless“recursion,‘%bb˜ecauseŽ¦some–~\text“symš¸ãbGols“are“de ned“b˜y“themselv˜es.‘ìÜI‘~Qdon't“kno˜w“if“that“problem“is“caused“b˜y“¾babšGel«'s“co˜de“or“b¸ãyŽ¦its–UUusage“in“Ýgerman.styŽ‘;*Œ«{“turning“it“o “seems“to“bGe“an“appropriate“ x.Ž¤*°Ý\let\DeclareTextSymbol\undefinedŽ¦\input‘?ýgerman.styŽŸ$Š½Â3.‘ «But–¥˜bGefore“wš¸ãe“start“w˜e“declare“some“shorthands“for“category“coGdes.‘bBy“declaring“the“at“sign“(`Ý@Ž‘?ý«')Ž¦as–‡€wš¸ãell“as“the“underscore“`(Ý_Ž‘?ý«)'“as“letters“w˜e“can“use“them“in“our“macros.‘G(I‘‡1agree“with“D.“Kn˜uth“thatŽ¦Ý\identifier_several_words_longŽ’¢;p«is–»Êmore“readable“than“Ý\IdentifierSeveralWordsLongŽ’—7C«and“in“ev¸ãeryŽ¦case–K÷bGetter“than“Ý\p@@@sŽ‘"Ëå«.)‘n¨With“the“at“sign“w¸ãe“can“use“the“\priv‘ÿqÇate"“Plain“macros“and“with“the“underscoreŽ¦wš¸ãe–Œcan“mak˜e“our“o˜wn“macros“more“readable.‘ÏBut“as“w˜e“ha˜v˜e“to“restore“these“category“coGdes“at“the“end“ofŽ¦this–Lxmacro“ le“wš¸ãe“store“their“former“v‘ÿqÇalues“in“con˜trol“sequences.‘nÓThis“methošGd“is“b˜etter“than“to“use“a“groupŽ¦bšGecause–UUnot“all“macros“ha•¸ãv“e–UUto“b˜e“de ned“global“this“w•¸ãa“y‘ÿ*ª.Ž¡Ý\ifx‘?ý\CatEscape\undefinedŽ¦‘ÿô\chardef\CatEscape=0Ž¦‘ÿô\chardef\CatOpen=1Ž¦‘ÿô\chardef\CatClose=2Ž¦‘ÿô\chardef\CatIgnore=9Ž¦‘ÿô\chardef\CatLetter=11Ž¦‘ÿô\chardef\CatOther=12Ž¦‘ÿô\chardef\CatActive=13‘N¿Ó%–?ý\active“of“plain.texŽ¦‘ÿô\chardef\CatInvalid=15Ž¦¦‘ÿô\chardef\CatAtCode=\catcode`\@Ž¦‘ÿô\chardef\CatUsCode=\catcode`\_Ž¦\fiŽ¦¦\catcode`\@=\CatLetter‘^Ê%–?ýtop“level“macro“fileŽ¦\catcode`\_=\CatLetterŽŽŸŒ‹*Ÿò·xŽ‘qÉ«4‘T¸ãypšGesetting–UUGerman“Do˜cumenš¸ãts“with“Plain“T‘þU>Ÿ'EŽ‘ãxX’“ÂIn˜troGduction‘2ŽŽ ƒ3Ú ý†Ì&Â4.‘ «Let's–UUiden¸ãtify“this“macro“ le“against“the“user“and“in“the“Log“ le.ŽŸÝ\begingroupŽ¤ ‘ÿô\catcode`\$=\CatIgnoreŽ¡‘ÿô\catcode`\:=\CatIgnoreŽ¡‘ÿô\message{Support–?ýfor“German“documents,“$Revision:“1.4“$}Ž¡\endgroupŽŽŸŒ‹!Ÿò·xŽ‘qÉ«5‘T¸ãypšGesetting–UUGerman“Do˜cumen¸ãts“with“Plain“T‘þU>Ÿ'EŽ‘ãxX‘qšNational“Characters‘3ŽŽ ƒ3Ú ý†Ì&Â5.‘ üNational‘ÕTCharacters.ŽŸþ«By–¼Êdefault“no“extended“cš¸ãharacters“are“a˜v‘ÿqÇailable,‘§except“those“de ned“bGelo˜w.‘¨'I.e.,‘§w˜e“start“to“treat“allŽ¤ c¸ãharacters–UUfrom“Ý"7FŽ›j¡«to“Ý"FFŽ˜«as“inš¸ãv‘ÿqÇalid“c˜haracters.Ž©ÿüÝ\count@="7FŽ¡\loopŽ¡‘ÿô\catcode–?ý\the\count@“=“\CatInvalidŽ¡‘ÿô\advance\count@–?ýby“1Ž¡‘ ú\ifnum–?ý\count@“<“"100Ž¡\repeatŽŸ/TÂ6.‘ «W‘ÿ*ªe–‹£proš¸ãvide“a“command“for“the“de nition“of“non-ASCIGI–‹•c˜haracters:‘ÞdÝ\ExtendCharŽ‘>žC«.‘²A“sample‘‹£de nitionŽ¡of–UUan“\Umlaut-a"“(‘úÿÿa)“in“the“extended“cošGde“of“an“IBM“PC“(hex“co˜de“Ý"84Ž‘L«)“is:Ž¤?÷’žÀÏÝ\ExtendChar\^^84:‘?ý{^^84}{\"a}ŽŽ¡«First–"*the“hex“coGde“is“givš¸ãen“as“a“con˜trol“sequence,‘,ffollo˜w˜ed“b˜y“a“colon.‘`¹Afterw˜ards“come“t˜w˜o“parameters,‘,ftheŽ¤ rst–UUis“again“the“hex“coGde,“the“second“is“the“tokš¸ãen“list“whic˜h“should“bšGe“used“instead“of“the“hex“co˜de.Ž¡‘The–0=macro“de nition“is“rather“easy‘ÿ*ª,‘7©wš¸ãe“just“ha˜v˜e“to“mak˜e“the“respGectiv˜e“c˜haracter“activ˜e“and“bind“it“toŽ¡it's–UUnew“meaning.Ž¦Ý\def\ExtendChar‘?ý#1:{%Ž¡‘ÿô\catcode`#1‘?ý\CatActiveŽ¡‘ÿô\extend_charŽ¡‘ÿô}Ž¡\def\extend_char‘?ý#1#2{%Ž¡‘ÿô\def‘?ý#1{#2}%Ž¡‘ÿô}ŽŸ/TÂ7.‘ «No•¸ãw›UUw“e˜can˜de ne˜some˜replacemen“ts.Ž¡‘The–Bëbraces“after“the“conš¸ãtrol“sequences“are“needed“when“c˜haracters“from“the“extended“c˜haracter“set“areŽ¡written–to“an“auxiliary“ le“and“read“in“later.‘ËÈDuring“the“Ý\writeŽ‘'»î«they“are“expanded“and“follo¸ãwing“whiteŽ¡space–UUwš¸ãould“bGe“gobbled“if“the“braces“w˜ould“not“bGe“there.Ž¦Ý%‘?ýISO-Latin-1Ž¡\ExtendChar\^^c4:‘?ý{^^c4}{\"A}Ž¡\ExtendChar\^^d6:‘?ý{^^d6}{\"O}Ž¡\ExtendChar\^^dc:‘?ý{^^dc}{\"U}Ž¡\ExtendChar\^^df:‘?ý{^^df}{\ss{}}Ž¡\ExtendChar\^^e4:‘?ý{^^e4}{\"a}Ž¡\ExtendChar\^^f6:‘?ý{^^f6}{\"o}Ž¡\ExtendChar\^^fc:‘?ý{^^fc}{\"u}Ž¡¡%–?ýIBM“PC“(code“page“850)Ž¡\ExtendChar\^^81:‘?ý{^^81}{\"u}Ž¡\ExtendChar\^^84:‘?ý{^^84}{\"a}Ž¡\ExtendChar\^^8e:‘?ý{^^8e}{\"A}Ž¡\ExtendChar\^^94:‘?ý{^^94}{\"o}Ž¡\ExtendChar\^^99:‘?ý{^^99}{\"O}Ž¡\ExtendChar\^^9a:‘?ý{^^9a}{\"U}Ž¡\ExtendChar\^^e1:–?ý{^^e1}{\ss{}}“%“actually“\beta,“used“as“\ss“in“GermanyŽ¡¡%–?ýAtari“ST“(like“IBM“PC,“but“with“a“real“`sharp~s')Ž¡\ExtendChar\^^9e:‘?ý{^^9e}{\ss{}}ŽŽŸŒ‹ÄŸò·xŽ‘qÉ«8‘T¸ãypšGesetting–UUGerman“Do˜cumenš¸ãts“with“Plain“T‘þU>Ÿ'EŽ‘ãxX‘qèKP˜aragraph“Breaking‘4ŽŽ ƒ3Ú ý†Ì&Â8.‘ üP®9aragraph‘ÕTBreaking.ŽŸ u«As–õàoutlined“in“the“in•¸ãtroGduction,‘w“e›õàallo“w˜longer˜in“terw“ord˜spaces.‘SiA‘õ·line˜no“w˜ma“y˜ha“v“e˜a˜badness˜up˜toŽ¤ 2500,‘v¦o•¸ãv“er–oü1500“a“wš¸ãarning“is“to“bGe“giv˜en.‘Á½F‘ÿ*ªurthermore“the“pGenalties“for“h˜yphenation“are“lo˜w˜ered“bGecause“aŽ¡narro•¸ãw›UUt“ypGesetting˜is˜preferred˜against˜few˜h“yphenations.Ž¤ |‘These–UUv‘ÿqÇalues“are“still“expšGerimen¸ãtal“and“should“b˜e“tuned.Ž¡‘As‘ØJÝgerman.styŽ‘:0v«uses–ØJ¾babšGel“«compatible“structure,‘ñMthe“german“language“ho˜ok“is“a“go˜o˜d“place“to“store“suc¸ãhŽ¤ de nitions.‘`But– to“use“¾babšGel«'s“con•¸ãv“enien“t‘ macros,–*¸to˜o,“w•¸ãe› ha“v“e˜to˜assure˜that˜it's˜k“ernel˜coGde˜is˜loaded˜ rst.Ž© ñÝ\ifx‘?ý\babel@core@loaded\undefinedŽ¡‘ÿô\input‘?ýbabel.defŽ¡\fiŽ¡\addto\extrasgerman{%Ž¡‘ÿô\babel@savevariable\toleranceŽ¡‘ÿô\babel@savevariable\hbadnessŽ¡‘ÿô\babel@savevariable\doublehyphendemeritsŽ¡‘ÿô\babel@savevariable\finalhyphendemeritsŽ¡‘ÿô\babel@savevariable\adjdemeritsŽ¡‘ÿô\tolerance–?ý2500‘ ú\hbadness“1500Ž¡‘ÿô\doublehyphendemerits‘?ý50000Ž¡‘ÿô\finalhyphendemerits‘?ý25000Ž¡‘ÿô\adjdemerits‘?ý50000Ž¡‘ÿô}ŽŸ$-PÂ9.‘ «In–<¸some“languages“ligatures“should“not“appšGear“b˜et•¸ãw“een–<¸comp˜ound“w¸ãords.‘'ðW‘ÿ*ªe“use“óßê cmmi10±:–ª¨:“:ŽŽ¦Ý\addto\extrasgerman{%Ž¡‘ÿô\mdqoffŽ¡‘ÿô\umlautlowŽ¡‘ÿô}ŽŸ$-PÂ11.‘ «De ne‘Ü°Ý\SwitchtoLanguageŽ‘^ù-«for›Ü°up•¸ãw“ard˜compatibilit“y‘ÿ*ª.‘IIt˜doGes˜not˜really˜do˜the˜same,‘ôÑthe˜old˜de nitionŽ¡wš¸ãas–1³more“similar“to“Ý\selectlanguageŽ‘Qñ†«.‘eæBut“other“languages“ha˜v˜e“to“bGe“declared“explicitely‘ÿ*ª,‘8Óthat's“not“doneŽ¡bš¸ãy–UUthis“macro“ le.‘qÇSo“w˜e“just“w˜an˜t“to“mak˜e“old“doGcumen˜ts“proGcessable.Ž¦Ý\def\SwitchtoLanguage#1{\language–?ý\csname“l@#1\endcsname}ŽŽŸŒ‹aŸò·xŽ‘qÉ«12‘T¸ãypšGesetting–UUGerman“Do˜cumenš¸ãts“with“Plain“T‘þU>Ÿ'EŽ‘ãxX‘lèJP˜aragraph“Breaking‘5ŽŽ ƒ3Ú ý†Ì&Â12.‘ «W‘ÿ*ªe–žŒare“ nished;‘C'switcš¸ãh“to“german“language“(to“enable“the“new“extras“de ned“abGo˜v˜e),‘ðÙrestore“theŽ¤ catcoGdes–UUand“prev•¸ãen“t–UUfrom“follo¸ãwing“garbage.ŽŸÝ\selectlanguage{german}Ž¡¡\catcode`\@=\CatAtCodeŽ¡\catcode`\_=\CatUsCodeŽ¡¡\endinputŽŽŸŒ‹ÿÿÿÿ%#ŸòŽ ƒ3Ú þG»Š‘@Yàó.Ù“ R„›cmr7ÙT²ypšrMesetting––›German“Do˜cumen²ts“with“Plain“«T‘þU>Ÿ'EŽ‘ãxXŽŸ(sç’˜•Section‘ P¸ãageŽŽ¤ In¸ãtroGduction?÷.Ž–.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž‘ ÁC1‘1ŽŽ¡National‘UUCharacters‘ÕJ.Ž–.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž‘ ÁC5‘3ŽŽ¡P¸ãaragraph‘UUBreaking‘#€.Ž–.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž‘ ÁC8‘4ŽŽŽŸ’é}iŽŒø&øƒ’À;è›3ÚÕÁGó2ßê cmmi10óKñ`y cmr10ù+’ßßßßß