÷ƒ’À;è TeX output 1996.03.07:1115‹ÿÿÿÿŸ$Ÿæ‘è€óò"V cmbx10Â14Žó$ý': cmti10ÏMidnight‘“çMacr–ÿ}'os:‘™–style“def.texŽŽ ƒ3Ú ý˜“Có4pÚãi( cmssdc10ßst‘þñÉyledef.texŽ’ØzøóKñ`y cmr10«stš¸ãyledef.tex:‘Macros–U>to“selectiv˜ely“input“parts“of“a“ le.Ž¤ ’ØzøV‘ÿ*ªersion:›1.0–U>(16“April“1991)“(doGc:˜19“Sep“1991)Ž¡’ØzøCop•¸ãyrigh“t‘[ž²×cŽŽŽ‘U>ó !",š cmsy10· ŽŽŽŽ‘ª}«1991–U>Marcel“R.“v‘ÿqÇan“der“GoGotŽŽŽŸ?‹³Consider–^athe“folloš¸ãwing“situation:‘ƒÞY‘ÿ*ªou“write“a“set“of“T‘þU>Ÿ'EŽ‘ãxX“macros“to“t˜ypGeset“letters.‘ŒêThese“macros“m˜ustŽ¤ set‘¹Cfonš¸ãts,–Ò>margins,“o sets,“etc.‘Ho˜w˜ev˜er,“y˜ou–¹Cw˜an˜t“to“use“di eren˜t“st˜yles“for“di eren˜t“t˜ypGes“of“letters.‘F‘ÿ*ªorŽ¡instance,›Nxa–LÁshort“letter“ma¸ãy“need“extra“white“space“at“the“top“to“get“a“full“page,˜whereas“this“is“not“neededŽ¡for–ùÇa“letter“sev¸ãeral“pages“long.‘_And“a“business“letter“has“a“standard“header,‘"ãwith“sub‘Ž8ject“and“references,Ž¡whereas–yÝa“small“note“to“a“friend“only“has“a“date.‘ß^Probably“the“macros“for“the“di erenš¸ãt“st˜yles“ha˜v˜e“a“lot“inŽ¡common,‘8Ôa–1³reason“to“put“them“all“in“one“ le.‘eæBut“the“di erenš¸ãt“st˜yles“ma˜y“ha˜v˜e“some“con icting“de nitions,Ž¡of–:»whicš¸ãh“y˜ou“only“w˜an˜t“to“include“one.‘héSt˜yledef.tex*“pro˜vides“some“macros“to“óßꟌEŽ‘ãxX.“One“mak˜es“one“ le“\letter.st˜y"“with“all“the“commonŽ¡de nitions–7Efor“letters;‘AJan“additional“ le“is“made“for“eacš¸ãh“st˜yle.‘gÂL‘üffŸþµU­AŽ‘DN«T‘þU>ŸŒEŽ‘ãxX's“È\documentstyle“«macro“is“then“usedŽ¡to–UUinclude“the“propGer“ les.‘qÇE.g.,“one“could“writeŽ¤x®‘$È\documentstyle[business,narrow]{letter}ŽŽŽ¡«to–çwrite“a“letter“with“the“\business"“and“\narroš¸ãw"“st˜yle“options.‘(yThis“methoGd“allo˜ws“sharing“of“commonŽ¤ de nitions,‘Ÿ'EŽ‘ãxX,“since“that“doGes“not“ha•¸ãv“e–šyan“equiv‘ÿqÇalenš¸ãt“mec˜hanism.‘A3Ho˜w˜ev˜er,‘«Âthe“macros“can“also“bGe“used“withŽ¡L‘üffŸþµU­AŽ‘DN«T‘þU>ŸŒEŽ‘ãxX;–UUlater“on“wš¸ãe“describGe“ho˜w“to“mak˜e“the“È\documentstyle“«command“in˜teract“with“the“st˜yledef“macros.Ž¡‘$First–€ˆwš¸ãe“describGe“ho˜w“to“È\input“«only“parts“of“a“ le.‘ó`In“order“to“use“an˜y“of“these“macros,‘‹Uy˜ou“ rstŽ¡ha•¸ãv“e–¤ãto“È\input‘½Istyledef«.‘`rThen“yš¸ãou“ha˜v˜e“to“alloGcate“one“or“more“\st˜yle“registers":‘äa“st˜yle“register“calledŽ¡\È\myst«"–UUis“alloGcated“with“the“commandŽ¤x®‘$È\newstyle\mystŽŽŽ¡‘$«Y‘ÿ*ªou–cþcan“givš¸ãe“a“new“v‘ÿqÇalue“to“a“st˜yle“register“through“the“È\setstyle“«command.‘ÃIt“tak˜es“a“st˜yleŽ© register–UUand“a“list“of“stš¸ãyles“as“argumen˜ts.‘qÇE.g.,Ž¡‘$È\setstyle\myst{business,‘?ýnarrow}ŽŽŽ¡«F‘ÿ*ªor–S“this“command,›Sías“for“all“others,˜a“stš¸ãyle“list“is“a“list“of“st˜yle“names“separated“b˜y“spaces“and/or“commas;Ž¦the–Îlwhole“list“mš¸ãust“bGe“enclosed“in“braces.‘DÏThe“st˜yle“names“themselv˜es“can“bGe“an˜y“names“that“are“meaningfulŽ¦to–zùthe“macro“pacš¸ãk‘ÿqÇage“y˜ou“are“using.‘â³The“È\addstyle“«command“is“used“in“the“same“w˜a˜y“as“È\setstyle«,‘„bbutŽ¦it–ƒùadds“one“or“more“stš¸ãyles“to“the“st˜yle“register“without“remo˜ving“the“old“con˜ten˜ts.‘ý²Y‘ÿ*ªou“can“use“È\the\mystŽ¦«to–A±get“the“con•¸ãten“ts–A±of“the“stš¸ãyle“register,‘EŸand“st˜yle“registers“can“bGe“assigned“to“eac˜h“other“using“`È=«'.‘k;The“lastŽ¦opGeration›UUin•¸ãv“olving˜st“yle˜registers˜is˜È\readstyle«.‘qÇIt˜tak“es˜a˜st“yle˜register˜and˜a˜ le˜name:‘qÇThe˜commandŽ¡‘$È\readstyle\myst{letter.style}ŽŽŽŸ ››‰€ÕÁGŸ ø®‘ø­*Ž‘$Y‘ÿJªou–ÕXalso“need“MidnighšÃŽt/dolines.tex“and“Midnigh˜t/loŸ'EŽ‘ãxX.“Ho˜w˜ev˜er,‘ -whenŽ¡in–UUthat“ le“a“commandŽ¤O´‘$È\styledef{business,‘?ýlong}ŽŽŽ¡«is–Ì|encounš¸ãtered,‘çÛT‘þU>Ÿ'EŽ‘ãxX“c˜hec˜ks“whether“the“st˜yle“register“that“is“used“with“È\readstyle“«con˜tains“st˜yle“\business"Ž¤ or–…östš¸ãyle“\long."‘,¨If“at“least“one“of“them“is“con˜tained“in“the“register,‘¯pT‘þU>Ÿ'EŽ‘ãxX“con˜tin˜ues“to“input“the“ le.‘,¨But“if“noneŽ¡of–Töthe“stš¸ãyles“matc˜h,‘U T‘þU>Ÿ'EŽ‘ãxX“skips“lines“of“the“ le“un˜til“an“È\endstyle“«command“is“encoun˜tered.‘q§È\negstyledefŽ¡«has–®=exactly“the“oppGosite“e ect:‘#—if“anš¸ãy“st˜yle“matc˜hes,‘Äwthe“ le“is“skippGed“till“the“next“È\endstyle“«command;Ž¡only–uif“no“stš¸ãyle“matc˜hes“is“this“part“of“the“ le“included.‘ÐùThe“È\endstyle“«command“m˜ust“oGccur“on“a“line“b˜yŽ¡itself,–µwith›¡ìnothing,“not˜ev•¸ãen˜a˜commen“t,‘µfollo“wing˜it.‘WThe˜È\endstyle˜«command˜stops˜T‘þU>Ÿ'EŽ‘ãxX˜from˜skippingŽ¡text;–UUif“it“is“encounš¸ãtered“when“T‘þU>Ÿ'EŽ‘ãxX“is“not“skipping“text,“it“is“equiv‘ÿqÇalen˜t“to“È\relax«.Ž¡‘$T‘ÿ*ªext–Cóthat“is“not“enclosed“bš¸ãy“a“È\styledef“ó  b> cmmi10±:–ª¨:“:Ž‘™BÈ\endstyle“«(or“È\negstyledef“«equiv‘ÿqÇalen˜t)“is“alw˜a˜ysŽ¡included.‘€ÔÈ\styledef–¯¯«commands“can“bGe“used“within“eac¸ãh“other's“range,‘Ebut“they“do“not“actually“nest:Ž¡when–‘²part“of“the“text“is“skippGed,‘ Éskipping“alw•¸ãa“ys–‘²stops“at“the“ rst“È\endstyle«;‘¯áanš¸ãy“in˜terv˜ening“È\styledefŽ¡«commands–UUare“also“skippGed.‘qÇE.g.,ŽŸ33BŸÜ‘$È\styledef{business}Ž¡‘$\negstyledef{narrow}Ž¡‘)?ý...Ž¡‘$\endstyleŽŽŽŸO´«The–Îtext“correspšGonding“to“`È...«'‘D¬(whic¸ãh“do˜es“not“include“anš¸ãy“È\endstyle«)“is“only“included“if“the“st˜yle“registerŽ¡con•¸ãtains›:st“yle˜\business"˜and˜doGes˜not˜con“tain˜\narro“w."‘[If˜st“yle˜\business"˜is˜not˜con“tained˜in˜the˜register,Ž¡the–„CÈ\negstyledef“«command“as“w¸ãell“as“the“`È...«'›þare“skippGed.˜As“a“catcš¸ãh-all“y˜ou“ma˜y“w˜an˜t“to“put“anŽ¡È\endstyle–íÓ«at“the“end“of“the“included“ le:‘>if“yš¸ãou“missed“an“È\endstyle“«somewhere,‘‡this“catc˜h-all“will“at“leastŽ¡restrict–UUthe“e ects“to“this“ le.Ž©Ÿhó1*à=» manfntÜŽ‘$óo´‹Ç cmr9¬The–ëöóߤN cmtt9É\readstyle“¬command“uses“an“inš¾9ternal“st˜yle“register“to“store“whic˜h“st˜yles“m˜ust“bAÇe“included.‘¦Therefore,Ž¤ ‘$if–ja“ le“whicš¾9h“is“bAÇeing“read“with“É\readstyle¬,‘5uses“É\readstyle“¬to“read“y˜et“another“ le,‘5the“original“list“ofŽ¡st¾9yles–òàwill“bšAÇe“lost.‘ôAlthough“this“situation“seldomly“o˜ccurs,‘ùÄthere“is“a“command“É\savereadstyle“¬whicš¾9h“tak˜es“a“st˜yleŽ¡register–Ûûas“argumenš¾9t“and“sa˜v˜es“the“in˜ternal“st˜yle“list“in“this“register.‘pfOf“course,‘ ¥if“the“second“ le“should“bAÇe“readŽ¡with– (exactly“the“same“stš¾9yle“list,‘ —y˜ou“should“just“use“É\input“¬instead“of“É\readstyle¬.‘aT‘ÿ:«o“restore“the“original“st˜yle“list,Ž¡yš¾9ou–‰duse“É\setreadstyle¬,‘¦hwhic˜h“also“tak˜es“a“st˜yle“register“as“argumen˜t.‘x¡É\setreadstyle“¬can“also“bAÇe“used“instead“ofŽ¡É\readstyle¬,–Tif“yš¾9ou“w˜an˜t“to“select“certain“parts“of“the“curren˜t“ le“rather“than“É\input“¬a“di eren˜t“ le.Ž¦ÜŽ‘$¬Stš¾9yle–y©names“can“bAÇe“built“from“an˜y“c˜haracters,›’¿except“for“spaces,˜commas,˜dots,˜and“some“c¾9haracters“withŽ¡‘$a–·ˆspšAÇecial“meaning“to“T‘þuAŸïÿEŽ‘˜ŸX“(e.g.,–àbraces,“hash–·ˆsigns“(É#¬),‘àand“p˜ercenš¾9tage“signs).‘ Also,‘àc˜haracters“in“a“st˜yleŽ¡name–Ô©mš¾9ust“ha˜v˜e“the“same“catcoAÇde“in“the“É\styledef“¬command“as“in“the“É\setstyle“¬command.‘âWhen“a“É\styledef“¬orŽ¡É\negstyledef–S€¬command“is“encounš¾9tered,‘c the“follo˜wing“conditions“m˜ust“hold:‘˜ÈThe“only“escapAÇe“c˜haracter“(catcoAÇde“0)Ž¡is–ØB`É\¬';›ìthe“only“grouping“c¾9haracters“(catcoAÇdes“1“and“2)“are“`É{¬'“and“`É}¬';˜the“only“parameter“c¾9haracter“(catcoAÇde“6)“is“`É#¬';Ž¡and–Äthe“only“commenš¾9t“c˜haracter“(catcošAÇde“14)“is“`É%¬'.‘@After“the“É\styledef“¬command“these“catco˜des“ma¾9y“b˜e“c¾9hanged,Ž¡as–hlong“as“the“conditions“hold“again“when“the“next“É\styledef“¬is“encounš¾9tered.‘ÌThese“particular“catcoAÇde“assignmen˜tsŽ¡are–Tso“standard“that“this“rule“is“unlikš¾9ely“to“ev˜er“cause“problems.ŽŸŸh‘$«SuppGose–ô#yš¸ãou“ha˜v˜e“written“a“ le“letter.tex,‘”whic˜h“is“to“bGe“used“b˜y“sev˜eral“pGeople.‘QaY‘ÿ*ªou“also“ha˜v˜e“a“ leŽ¤ letter.stš¸ãyle–þdwith“some“standard“st˜yles;‘_pGeople“can“cop˜y“and“c˜hange“this“ le“to“suit“their“o˜wn“needs.‘TÌT‘ÿ*ªo“mak˜eŽ¡life–ƒeasier“for“those“who“only“w•¸ãan“t–ƒto“use“yš¸ãour“standard“st˜yles,‘-Îy˜ou“ma˜y“not“w˜an˜t“to“force“them“to“learnŽ¡abGout›(Lst•¸ãyledef.tex.‘bÄInstead,‘1Ny“ou˜can˜de ne˜a˜macro˜È\style˜«whic“h˜alw“a“ys˜reads˜a˜ le˜with˜name˜letter.st“yle.Ž¡Its–UUusage“w¸ãould“bGe:ŽŸ'3BŸè‘$È\input‘?ýletterŽ¡‘$\style–?ýbusiness,“long,“narrow.Ž¡‘)?ý...ŽŽŽŽŒ‹ÍŸ$Ÿæ‘è€Â16ŽÏMidnight‘“çMacr–ÿ}'os:‘™–style“def.texŽŽ ƒ3Ú ý†Ì&«so–UUthat“users“need“not“bšGe“concerned“ab˜out“st¸ãyle“registers“etc.‘qÇHere“is“part“of“an“appropriate“letter.tex:ŽŸX-‰ffÕÁGŸ €È\input‘?üstyledefŽ¤ \newstyle\letterstyleŽ©\def\style#1.%–?üterminate“the“argument“with“a“dotŽ¡‘¿ô{\setstyle\letterstyle{#1}Ž¡‘ÿð\readstyle\letterstyle{letter.style}Ž¡‘¿ô}ŽŸæf‰ffÕÁGŸ€Ü‘Ž‘$¬Something–Xsimilar“can“bAÇe“done“with“L‘ü«‡ŸþÖfóÙ“ Rcmr7®AŽ‘/x¬T‘þuAŸ¶dEŽ‘˜ŸX's“É\documentstyle¬,‘hËproš¾9vided“y˜ou“kno˜w“whic˜h“st˜yles“can“appAÇearŽ¤ ‘$in– letter.stš¾9yle.‘XThis“is“done“as“follo˜ws:‘Ì rst,‘ çrename“letter.tex“to“letter.st˜y‘ÿ:«,‘ çso“that“L‘ü«‡ŸþÖf®AŽ‘/x¬T‘þuAŸ¶dEŽ‘˜ŸX“can“read“it.‘XThenŽ¡add–Tthe“follo¾9wing“to“the“end“of“that“ le:ŽŸFŸÉ‘$É\newstyle\lstŽ¡‘$\def\ds@business{\addstyle\lst{business}}Ž¡‘$\def\ds@narrow{\addstyle\lst{narrow}}Ž¡‘(¹–...–¹–%“same“for“every“styleŽ¡‘$\@optionsŽ¡‘$\readstyle\lst{letter.style}ŽŽŽŸ¬Y‘ÿ:«ou–:ëcan“then“write“É\documentstyle[narrow]{letter}¬.‘6L‘ü«‡ŸþÖf®AŽ‘/x¬T‘þuAŸ¶dEŽ‘˜ŸX“takš¾9es“this“as“a“command“to“read“letter.st˜y‘ÿ:«.‘6TheŽ¡É\@options–Y¬command“causes“L‘ü«‡ŸþÖf®AŽ‘/x¬T‘þuAŸ¶dEŽ‘˜ŸX“to“execute,› %for“ev¾9ery“option“`xyz,'˜the“command“É\ds@xyz¬,˜if“it“exists.‘ÇAll“optionsŽ¡for–ûwhicš¾9h“this“command“doAÇes“not“exist“lead“to“the“input“of“a“ le“xyz.st˜y‘ÿ:«,‘Vso“that“standard“L‘ü«‡ŸþÖf®AŽ‘/x¬T‘þuAŸ¶dEŽ‘˜ŸX“options“can“still“bAÇeŽ¡used.‘žêNote––'that“letter.stš¾9y“is“here“the“main“st˜yle“ le“(only“there“can“É\@options“¬bšAÇe“used);‘Ö‘b˜e“w¾9arned“that“it“is“notŽ¡easy–Tto“write“a“main“st¾9yle“ le“that“satis es“all“of“L‘ü«‡ŸþÖf®AŽ‘/x¬T‘þuAŸ¶dEŽ‘˜ŸX's“assumptions.Ž¦‘$«Although–/Pwš¸ãe“ha˜v˜e“suggested“that“these“macros“are“suitable“to“handle“di eren˜t“\st˜yles,"‘eÎselectiv˜eŽ¤ inclusion–zœcan“also“bGe“useful“in“conš¸ãtexts“unrelated“to“st˜yles.‘áœF‘ÿ*ªor“instance,‘ƒîy˜ou“ma˜y“write“a“papGer“whic˜h“hasŽ¡some–UUdetails“and“spGeculations“whicš¸ãh“are“not“relev‘ÿqÇan˜t“for“ev˜ery“reader.‘qÇY‘ÿ*ªou“can“write“the“papGer“lik˜e“this:ŽŸX-‰ffÕÁGŸ €–?üÈ...“%“relevant“thoughtsŽ¡\styledef{details}Ž¡–?ü...“%“messy“detailsŽ¡\endstyleŽ¡\negstyledef{details}Ž¡Details–?üare“left“as“an“exercise“for“the“reader.Ž¡\endstyleŽ¡–?ü...“%“important“stuffŽ¡\styledef{speculations}Ž¡–?ü...“%“wild“fantasiesŽ¡\endstyleŽŸæf‰ffÕÁGŸ ñÇ«If–UUyš¸ãou“w˜an˜t“to“prin˜t“a“v˜ersion“with“spGeculations“but“without“details,“y˜ou“can“start“the“ le“withŽŸ3㎟ܑ$È\newstyle\printŽ¡‘$\setstyle\print{speculations}Ž¡‘$\setreadstyle\printŽ¡‘)?ý...ŽŽŽŽŒø,žƒ’À;è©3ÚÕÁGó4pÚãi( cmssdc10ó1*à=» manfntó$ý': cmti10óßCÊscmtt8óߤN cmtt9óßê cmmi10óÙ“ Rcmr7ó|{Ycmr8óo´‹Ç cmr9óKñ`y cmr10ù7^ßßßß