÷ƒ’À;è TeX output 1996.03.06:1224‹ÿÿÿÿ ¨ ýF œ ý¬’·èÇóDÓítG®G®cmr17ºThe›7t\óÖÆG®G®cmss17»p•Œqrograms.st“yº"˜st“yle˜ leŸùº¯ó!",š cmsy10ÀŽŽŽŸí¡’ô$ºóX«Q cmr12¼Miguel‘ê¨AlabauŽŽ¤’Ê{óo´‹Ç cmr9ÇLaBRI,–TUniv¾9ersit¾ª‘û¡Xe“Bordeaux“I“(F‘ÿ:«rance)ŽŽ¡’»¸éó¼j‘¹ cmti9Èe-mail‘ìpÇ:‘póߤN cmtt9ÉMiguel.Alabau@labri.u-bordeaux.frŽŽŽŽŽŸ5v+’õri¼Marc¬rh–ê¨6,“1996ŽŸ/5Ý’¡Kót ‰: cmbx9ÊAbstractŽŸPï’†ßüÇThis–stš¾9yle“ le“con˜tains“a“set“of“de nitions“that“allo˜w“a“fairly“easy“prett˜y-Ž¤ ‘yprinš¾9ting–m}of“programs.‘ä~In“particular,‘text“alignemen˜t“is“obtained“b˜y“simply“t˜ypingŽ¡‘yÉspace–V-Çcš¾9haracters.‘ܸEmphasized“c˜haracters,‘|imathematical“sym˜bAÇols“and“commandsŽ¡‘yare–Tdirectly“takš¾9en“in˜to“accoun˜t.Ž ±ˆï ÿeÿð‘`ó!ÂÖN ff cmbx12ÌCon•ŒÌten“tsŽ¤€‘`ó"2Ç@Écmbx8Í1Ž‘lÀ InºOtroE±duction‘iYp1ŽŽ¡‘`2Ž‘lÀ User's‘DFManºOual‘aqv2ŽŽ¤ ‘lÀ ó|{Ycmr8Á2.1Ž’€LìEn•ÃŽvironmen“ts– Ìfor“tÃŽypŸ'EŽ‘ãxX“óßêŸ'EŽ‘ãxX›À/pro“vides˜the˜¹tabbing˜²en“vi-Ž¡‘`ronmenš¸ãt–%Ofor“freely“t˜ypGesetting“programs.Ž¡‘`But–[>a“cum¸ãbšGersome“asp˜ect“of“this“en¸ãviron-Ž¡‘`menš¸ãt–sŒis“the“w˜a˜y“tabs“are“spGeci ed:‘®5theirŽ¡‘`presence–¡,mak¸ães“the“text“to“bGe“obscured.Ž¡‘`The–ÖS le“ó#ý': cmti10Îpr–ÿ}'o“gr“ams.sty‘¸Ð²pro•¸ãvides‘ÖSdi eren“tŽ¡‘`en•¸ãvironmen“ts–uOand“commands“for“t¸ãypGeset-Ž¡‘`ting–>Íprograms.‘ .0Spaces“are“in¸ãterpretedŽŽ ÿe-š’#as–èin“the“¹verbatim“²en•¸ãvironmen“t,‘=La“v“oid-Ž¤ ’#ing–Ž8the“user“to“tš¸ãypGe“¹\=“²and“¹\>“²con˜trolŽ¡’#c•¸ãharacters.‘uÍAccen“ts,‘Á­mathematical‘¬sym-Ž¡’#bšGols,‘´ emphasized–¡+and“b˜oldface“fon¸ãts“canŽ¡’#bGe–¼oused.‘§Another“useful“feature“is“theŽ¡’#capabilitš¸ãy–Zto“n˜um˜bGer“lines“and“to“put“la-Ž¡’#bGels–æon“lines“(and,› Ÿ'EŽ‘ãxX“prede ned“fon¸ãt“sizes:ŽŸ>®Þ’×ÀŸÌL͉ff…ܤfd‘en•¸ãvironmen“tsŽ‘\8ïsizesŽŽ©‰ff…ÜŸ‰ff…Ü¡‘programŽ‘L#–normalsizeŽŽ¤ ‘programlŽ‘L#–largeŽŽ¡‘programLŽ‘L#–LargeŽŽ¡‘programsŽ‘L#–smallŽŽ¡‘programfŽ‘L#–foGotnotesizeŽŽ¡‘programscŽ‘L#–scriptsizeŽŽ¡‘program¸ãtŽ‘L#–tin¸ãyŽŽ¦‰ff…ÜŽŽŽŸ>y‰‘`These›rÒen•¸ãvironmen“ts˜are˜to˜bGe˜used˜lik“e˜the˜¹verbatim˜²en“vironmen“t.‘&FHo“w“ev“er˜they˜w“orkŽ¡‘`di erenš¸ãtly‘ÿ*ª,‘y¿since–rwthe“usual“LŸýó5‘üff±AŽŽ‘͉²T‘þU>Ÿ'EŽ‘ãxX“escapGes“are“allo˜w˜able“from“within“the“en˜vironmen˜t.Ž¡‘`F‘ÿ*ªor–UUinstance,“math“moGde“as“wš¸ãell“as“emphasized“c˜haracters“ma˜y“bGe“used.Ž¦‘`By–¥|default,‘¹…lines“are“n•¸ãum“bšGered.‘b;If–¥|someone“w•¸ãan“ts–¥|to“t¸ãyp˜e“an“unn•¸ãum“b˜ered–¥|text,‘¹…it“isŽ¡‘`necessary–UUto“put“a“¹*“²just“after“the“bGeginning“of“the“en•¸ãvironmen“t.‘qÇF‘ÿ*ªor‘UUinstance:ŽŸn)‘d¹–É\begin{programL}*Ž¤ ‘wŸîŽ¡‘d¹–\end{programL}Ž¡ŽŸ’€²2ŽŽŒ‹³ ¨ ýF œ ý‚‘`²Program–‘†indenš¸ãtation“obGey“to“the“v‘ÿqÇariable“¹\ProgramIndent“²(see“section“2.2).‘0ƒHo˜w˜ev˜er,Ž¤ ‘`it–Œ?is“pGossible,‘Ùùfor“one“givš¸ãen“en˜vironmen˜t,‘Ùùnot“to“obGey“to“the“global“inden˜tation“ofŽ¡‘`programs.‘p This–Qàis“done“bš¸ãy“indicating“another“inden˜tation“bGet˜w˜een“square“braces“justŽ¡‘`after–q.enš¸ãtering“the“en˜vironmen˜t.‘ÅSF‘ÿ*ªor“instance,‘x%an“unn˜um˜bGered“program“inden˜ted“2cmŽ¡‘`from–UUthe“left“margin“of“the“text“is:ŽŸÇj‘d¹–É\begin{programL}[2cm]*Ž¤ ‘wŸîŽ¡‘d¹–\end{programL}Ž¡ŸÇj‘`²There–$¾is“also“a“set“of“inclusion“commands“similar“to“the“¹\verbatimfile“²(v¸ãerbatimŽ¤ ‘`inclusion–›¹of“a“ le)“and“¹\verbatimlisting“²(vš¸ãerbatim“inclusion“of“a“ le,‘ÀÙwith“n˜um˜bGeredŽ¡‘`lines)–·commands“of“the“\Îverb‘ÿ}'atim les.sty‘â}²"“bš¸ãy“Chris“Ro˜wley‘ÿ*ª.‘W=Of“course,‘¤the“ les“inputŽ¡‘`bš¸ãy–·these“commands“are“sub‘Ž8ject“to“the“same“pGermisiv˜e“syn˜tax“as“for“the“en˜vironmen˜tsŽ¡‘`abGo•¸ãv“e–UU(math“syn¸ãtax,“emphasized“text,“Îetc.²).ŽŸG”6’‘ðŸÆš‰ff!¤fd‘H‡$program–UUinclusion“commandsŽŽ©‰ff!¡‘unn•¸ãum“bGered‘UUprogramsŽ‘t1Õn•¸ãum“bGered‘UUprogramsŽ’ç\sizesŽŽ¦‰ff!Ÿ‰ff!¡‘¹\²fprogramŽ‘t1Õ¹\²lprogramŽ’×G6normalsizeŽŽ¤ ‘¹\²fprogramlŽ‘t1Õ¹\²lprogramlŽ’×G6largeŽŽ¡‘¹\²fprogramLŽ‘t1Õ¹\²lProgramLŽ’×G6LargeŽŽ¡‘¹\²fprogramsŽ‘t1Õ¹\²lprogramsŽ’×G6smallŽŽ¡‘¹\²fprogramfŽ‘t1Õ¹\²lprogramfŽ’×G6foGotnotesizeŽŽ¡‘¹\²fprogramscŽ‘t1Õ¹\²lprogramscŽ’×G6scriptsizeŽŽ¡‘¹\²fprogram¸ãtŽ‘t1Õ¹\²lprogram¸ãtŽ’×G6tin¸ãyŽŽ¦‰ff!ŽŽŽŸGý‘`W‘ÿ*ªe–UUdescribGe“in“section“2.5“hoš¸ãw“to“de ne“new“program“en˜vironmen˜ts.ŽŸMÙ‘`Ñ2.2Ž‘~ÀGlobal‘€commandsŽŸ‘`²This–command“servš¸ães“to“con˜trol“the“default“inden˜tation“of“the“programs.‘V It“is“used“asŽ‘ÙÌÉ\ProgramIndentŽŽŽŽ¡‘`²describ•Ged‘UUb“elo¸ãw:ŽŸ&.‘ræXÉ\ProgramIndent{1cm}ŽŸ Ÿ&.‘`²and–á¦has“the“e ect“to“makš¸ãe“all“the“programs“to“bGe“inden˜ted“b˜y“default“one“cen˜time-Ž¡‘`ter–tfrom“the“left“margin,‘»Ëunless“this“v‘ÿqÇalue“is“cš¸ãhanged“b˜y“another“¹\ProgramIndentŽ¡‘`²command.‘qÇDefault–UUis“no“inden¸ãtation“at“all.Ž© ¡<‘`This–Hómacro“rede nes“the“macro“¹\ProgramIndent².‘m¦It“is“presenš¸ãt“here“for“compatibilit˜yŽ‘ÙÌÉ\programindentŽŽŽŽ¡‘`²with–UUprevious“vš¸ãersions“of“the“Îpr–ÿ}'o“gr“ams.sty‘7Ò²st˜yle.Ž¦‘`These–â‡four“commands“are“self-explanatory‘ÿ*ª.‘]They“allo¸ãw“the“user“to“spGecify“that“lineŽ‘õÉ\LeftMarginNumberLineŽŽŽŽ¡‘õ\RightMarginNumberLineŽŽŽŽŸ‘õ\BothMarginsNumberLineŽŽŽŽŸ$‘õ\InBodyLeftNumberLineŽŽŽŽ¡‘`²n•¸ãum“bGers›¶m“ust˜bGe˜put˜in˜either˜the˜left˜or˜the˜righ“t˜margin,–L or˜in˜bGoth˜margins,“orŽ¡‘`that–yFlines“m¸ãust“appšGear“inside“the“b˜o˜dy“of“the“text“on“the“left“of“the“program.‘ÝšTheseŽ¡‘`options–¿maš¸ãy“bGe“put“an˜ywhere“in“the“text,‘Din“the“pream˜ble“as“w˜ell“as“in“the“b•Go“dy‘ÿ*ª.‘WëTheŽ¡‘`e ect–òof“one“of“these“commands“stands“unš¸ãtil“it“is“c˜hanged“b˜y“another“one“of“them.‘W¦OfŽ¡‘`course,‘iddi erenš¸ãt–eacommands“ma˜y“bGe“put“in“sev˜eral“parts“of“the“text,‘idif“the“user“w˜an˜tsŽ¡‘`its–a programs“to“bšGe“n•¸ãum“b˜ered›a di eren“tly‘ÿ*ª.‘”ãThe˜default˜is˜for˜the˜lines˜to˜appGear˜in˜theŽ¡‘`left–UUmargin“of“the“text“(¹\LeftMarginNumberLine²).Ž¦‘`This–âbmacro“rede nes“the“macro“¹\BothMarginsNumberLine².‘ ïIt“is“presen¸ãt“here“forŽ‘õÉ\BothMarginNumberLineŽŽŽŽ¡‘`²compatibilitš¸ãy–UUwith“previous“v˜ersions“of“the“Îpr–ÿ}'o“gr“ams.sty‘7Ò²st˜yle.Ž¦‘`T‘ÿ*ªext–ÕÖof“programs“are“usually“tš¸ãypGed“with“a“telet˜ypGe“fon˜t“(lik˜e“in“the“¹verbatim“²en˜vi-Ž‘%À$É\ttProgramŽŽŽŽ¡‘%À$\rmProgramŽŽŽŽŸ‘%À$\emProgramŽŽŽŽ¡‘`²ronmenš¸ãt).‘M\The–I1user“has“the“abilit˜y“to“c˜hange“this“default“fon˜t“to“one“of“the“threeŽ¡‘`prede ned›UUfon•¸ãts:‘qÇtelet“ypGe,˜roman,˜italicized˜roman.Ž¦‘`The–C>command“¹\ProgramDefaultFont“²servš¸ães“to“reset“the“prin˜ting“to“the“default“fon˜t.Ž‘û9ÞÉ\ProgramDefaultFontŽŽŽŽŽŸ’€²3ŽŽŒ‹#! ¨ ýF œ ý‚‘`Ñ2.3Ž‘~ÀCommands–€to“bš`e“used“b˜efore“a“program“en• vironmen“tŽŸuT‘`²Programs–»are“usually“tš¸ãypGeset“as“they“are.‘£Ho˜w˜ev˜er“a“user“can“spGecify“that“the“nextŽ‘ f É\ProgramSurroundŽŽŽŽ¤ ‘`²program–×oto“bšGe“prin¸ãted“will“b˜e“surrounded“bš¸ãy“t˜w˜o“horizon˜tal“lines,‘ðas“long“as“the“widthŽ¡‘`of–S%the“text.‘q This“is“done“b¸ãy“putting“this“command“in“the“b•Go“dy–S%of“the“text“bGefore“theŽ¡‘`program‘UUappGears.Ž©‘`This–DÓmacro“rede nes“the“macro“¹\ProgramSurround².‘ñIt“is“presenš¸ãt“here“for“compatibilit˜yŽ‘ f É\programsurroundŽŽŽŽ¡‘`²with–UUprevious“vš¸ãersions“of“the“Îpr–ÿ}'o“gr“ams.sty‘7Ò²st˜yle.Ž¦‘`By–þddefault,‘Çprogram“lines“are“counš¸ãted“from“1.‘TÌIt“is“pGossible“to“c˜hange“the“v‘ÿqÇalue“of“theŽótÉ\SetProgramCounterŽŽŽŽ¡‘`² rst– aline“n•¸ãum“bGer– aof“the“next“program“bš¸ãy“issuing“the“follo˜wing“command“bGefore“theŽ¡‘`program–UUis“included:ŽŸ‘wŸîÉ\SetProgramCounter{6}ŽŸ ¡‘`²In–UUthis“example,“the“lines“of“the“next“program“will“start“from“6.Ž¦‘`This–cmacro“rede nes“the“macro“¹\SetProgramCounter².‘œxIt“is“presen¸ãt“here“for“compat-ŽótÉ\setprogramcounterŽŽŽŽ¡‘`²ibilitš¸ãy–UUwith“previous“v˜ersions“of“the“Îpr–ÿ}'o“gr“ams.sty‘7Ò²st˜yle.Ž¦‘`If–ÿ'the“user“desires“that“the“n•¸ãum“bGer–ÿ'of“the“ rst“line“of“the“next“program“is“equal“toŽ‘õÉ\NoResetProgramCounterŽŽŽŽ¡‘`²the›Xn•¸ãum“bGer˜of˜the˜last˜line˜of˜the˜last˜previous˜program,‘XÑhe˜m“ust˜issue˜the˜commandŽ¡‘`¹\NoResetProgramCounter–í¤²bGefore“the“next“program.‘:´This“command“has“no“e ect“ifŽ¡‘`issued–UUbGefore“the“ rst“program.Ž¦‘`This–âbmacro“rede nes“the“macro“¹\NoResetProgramCounter².‘ ïIt“is“presen¸ãt“here“forŽ‘õÉ\noresetprogramcounterŽŽŽŽ¡‘`²compatibilitš¸ãy–UUwith“previous“v˜ersions“of“the“Îpr–ÿ}'o“gr“ams.sty‘7Ò²st˜yle.ŽŸþ6‘`Ñ2.4Ž‘~ÀCommands–€to“b`e“used“inside“a“program“en• vironmen“tŽŸuT‘b«:²This–«:command“is“to“bšGe“used“only“Îwithin‘o²programs.‘9It“m¸ãust“app˜ear“at“the“end“of“a“lineŽ‘%À$É\UnnumLineŽŽŽŽ¡‘`²and–`Èhas“the“e ect“not“to“n•¸ãum“bGer–`Èthe“folloš¸ãwing“line.‘” It“serv˜es“when“the“user“w˜an˜ts“toŽ¡‘`kš¸ãeep–L‘only“one“unique“line“n˜um˜bGer“for“long“statemen˜ts“that“span“accross“sev˜eral“lines.Ž¦‘`This–!ámacro“rede nes“the“macro“¹\UnnumLine².‘`¡It“is“presenš¸ãt“here“for“compatibilit˜y“withŽ‘%À$É\unnumlineŽŽŽŽ¡‘`²previous–UUvš¸ãersions“of“the“Îpr–ÿ}'o“gr“ams.sty‘7Ò²st˜yle.ŽŸþ6‘`Ñ2.5Ž‘~ÀMeta-Commands:‘ }hoš w–¾Èto“de ne“new“program“en˜viron-Ž¦‘~Àmen tsŽŸuT‘e)²The–)¹\NewProgram“²command“servš¸ães“to“de ne“a“new“program“en˜vironmen˜t.‘ ìÛTheŽ‘!ŽÉ\NewProgramŽŽŽŽ¡‘“b\RenewProgramŽŽŽŽ¡‘`¹\RenewProgram–bC²command“is“to“bGe“used“for“rede ning“already“de ned“program“en-Ž¡‘`vironmenš¸ãts.‘qÇThese–UUcommands“m˜ust“bšGe“used“as“b˜elo¸ãw:Ž©‘y¹\NewProgram¸fÎname–À[¸gfÎfont‘‰ffŽ‘®name“¸gŽ¡‘y¹\RenewProgram¸fÎname–À[¸gfÎfont‘‰ffŽ‘®name“¸gŽ¦‘`²The–¿hcommand“¹\NewProgram“²de nes“one“en•¸ãvironmen“t–¿hand“t•¸ãw“o–¿hcommands.‘°Let“usŽ¡‘`assume–UUthat“the“user“issues“the“follo¸ãwing“command:ŽŸ‘wŸîÉ\NewProgram{LittleProg}{smallsize}ŽŸ ¡‘`²then–h¹an“en•¸ãvironmen“t–h¹called“¹LittleProg“²will“bšGe“generated“for“direct“t¸ãyp˜esetting“ofŽ¡‘`programs,‘µ¾and›oCt•¸ãw“o˜commands˜will˜bGe˜created:‘¥£¹fLittleProg˜²and˜¹lLittleProg˜²forŽ¡‘`inclusion–UUof“unn•¸ãum“bšGered‘UU(resp.‘qÇn“um“b˜ered)‘UUtext.ŽŸ‘`These›ót•¸ãw“o˜macros˜are˜old˜names˜presen“t˜here˜for˜compatibilit“y˜with˜previous˜v“ersionsŽ‘!ŽÉ\newprogramŽŽŽŽ¡‘“b\renewprogramŽŽŽŽ¡‘`²of–¯óthe“Îpr–ÿ}'o“gr“ams.sty‘’p²st¸ãyle.‘¡¹\newprogram–¯ó²rede nes“¹\NewProgram²,‘Æšand“¹\renewprogramŽ¡‘`²rede nes‘UU¹\RenewProgram².ŽŽŸ’€4ŽŽŒ‹3™ ¨ ýF œ ý‚‘`Ñ2.6Ž‘~ÀThe–€Index“FileŽŸuT‘`²In–÷order“for“the“prošGcessing“of“this“ le“to“b˜e“complete,‘) an“index“format“ le“is“required.Ž¤ ‘`Let–dåus“assume“that“it“is“named“¹programs.ist²,‘hÉthen“the“folloš¸ãwing“command“m˜ust“bGeŽ¡‘`run–UUand“then“another“compilation“of“the“curren¸ãt“ le:Ž©‘cüs±1Ž‘jª®ó(©±Ê cmsy9Óhó)ÒoÇw cmss9ÔindexŽ‘#ÓiŽ¤ ‘cüs±2Ž‘jª®ÓhÔindexŽ‘#ÓiÉ%%‘¹–-----------------------------------------------------------Ž¡‘cüs±3Ž‘jª®ÓhÔindexŽ‘#ÓiÉ%%–¹–Assuming“this“file“is“named“"programs.ist"“(after“beingŽ¡‘cüs±4Ž‘jª®ÓhÔindexŽ‘#ÓiÉ%%–¹–generated“from“"programs.dtx"“by“running“"latex“docstrip"),Ž¡‘cüs±5Ž‘jª®ÓhÔindexŽ‘#ÓiÉ%%–¹–the“following“command“will“produce“a“well“formated“index:Ž¡‘cüs±6Ž‘jª®ÓhÔindexŽ‘#ÓiÉ%%Ž¡‘cüs±7Ž‘jª®ÓhÔindexŽ‘#ÓiÉ%%‘U Œmakeindex–¹–-s“programs.ist“programs.idxŽ¡‘cüs±8Ž‘jª®ÓhÔindexŽ‘#ÓiÉ%%‘¹–-----------------------------------------------------------Ž¡‘cüs±9Ž‘jª®ÓhÔindexŽ‘#ÓiŽŸ‘`²Another–º­pGossibilitš¸ãy“is“to“set“the“en˜vironmen˜t“v‘ÿqÇariable“¹INDEXSTYLE‘º†²to“a“directory“nameŽŸ ‘`where–UUthe“\.ist"“ les“(index“format“ les)“ma¸ãy“bGe“found.ŽŸ‘`A–UUpšGossible“index“ le“is“giv¸ãen“b˜elo¸ãwŸü^ÿ±1ŽŽ‘|s²:Ž¦‘`±10Ž‘jª®ÓhÔindexŽ‘#ÓiÉactual‘¹–'='Ž¡‘`±11Ž‘jª®ÓhÔindexŽ‘#ÓiÉquote‘¹–'!'Ž¡‘`±12Ž‘jª®ÓhÔindexŽ‘#ÓiÉlevel‘¹–'>'Ž¡‘`±13Ž‘jª®ÓhÔindexŽ‘#ÓiÉpreambleŽ¡‘`±14Ž‘jª®ÓhÔindexŽ‘#ÓiÉ"\n–¹–\\begin{theindex}“\n“\\makeatletter\\scan@allowedfalse\n"Ž¡‘`±15Ž‘jª®ÓhÔindexŽ‘#ÓiÉpostambleŽ¡‘`±16Ž‘jª®ÓhÔindexŽ‘#ÓiÉ"\n\n‘¹–\\end{theindex}\n"Ž¡‘`±17Ž‘jª®ÓhÔindexŽ‘#ÓiÉitem_x1‘,Â"\\efill–¹–\n“\\subitem“"Ž¡‘`±18Ž‘jª®ÓhÔindexŽ‘#ÓiÉitem_x2‘,Â"\\efill–¹–\n“\\subsubitem“"Ž¡‘`±19Ž‘jª®ÓhÔindexŽ‘#ÓiÉdelim_0‘,Â"\\pfill‘¹–"Ž¡‘`±20Ž‘jª®ÓhÔindexŽ‘#ÓiÉdelim_1‘,Â"\\pfill‘¹–"Ž¡‘`±21Ž‘jª®ÓhÔindexŽ‘#ÓiÉdelim_2‘,Â"\\pfill‘¹–"Ž¡‘`±22Ž‘jª®ÓhÔindexŽ‘#ÓiÉ%–¹–The“next“lines“will“produce“some“warnings“whenŽ¡‘`±23Ž‘jª®ÓhÔindexŽ‘#ÓiÉ%–¹–running“Makeindex“as“they“try“to“cover“two“differentŽ¡‘`±24Ž‘jª®ÓhÔindexŽ‘#ÓiÉ%–¹–versions“of“the“program:Ž¡‘`±25Ž‘jª®ÓhÔindexŽ‘#ÓiÉlethead_prefix‘,Â"{\\bf\\hfil‘¹–"Ž¡‘`±26Ž‘jª®ÓhÔindexŽ‘#ÓiÉlethead_suffix‘,Â"\\hfil}\\nopagebreak\n"Ž¡‘`±27Ž‘jª®ÓhÔindexŽ‘#ÓiÉlethead_flag‘!1Ž¡‘`±28Ž‘jª®ÓhÔindexŽ‘#ÓiÉheading_prefix‘,Â"{\\bf\\hfil‘¹–"Ž¡‘`±29Ž‘jª®ÓhÔindexŽ‘#ÓiÉheading_suffix‘,Â"\\hfil}\\nopagebreak\n"Ž¡‘`±30Ž‘jª®ÓhÔindexŽ‘#ÓiÉheadings_flag‘!1ŽŸþ6‘`Ñ2.7Ž‘~ÀThe–€Driv er“FileŽŸuT‘`²There–:Ûis“also“a“driv¸ãer“ le,›@'called“Îpr–ÿ}'o“gr“ams.drv‘²,˜that–:Ûis“included“in“the“distribution.‘hôItŽ¤ ‘`is–”devš¸ãoted“to“con˜trol“the“latex“compilation“of“the“doGcumen˜tation.‘£…Its“coGde“is“giv˜enŽ¡‘`bGelo¸ãw.Ž¦‘`±31Ž‘jª®ÓhÔdriverŽ‘oÓiŽ¤ ‘`±32Ž‘jª®É\newif\ifnoprogsfileŽ¡‘`±33Ž‘jª®É\openin1‘¹–programs.styŽ¡‘`±34Ž‘jª®É\ifeof1‘¹–\noprogsfiletrue\else\noprogsfilefalse\fi\closein1Ž¡‘`±35Ž‘jª®É\ifnoprogsfileŽ¡‘`±36Ž‘}‘É\typeout{*******************************************************}Ž¡‘`±37Ž‘}‘É\typeout{To–¹–get“a“more“complete“documentation,“you“should}Ž¡‘`±38Ž‘}‘É\typeout{copy–¹–the“current“file“into“'programs.sty'}Ž¡‘`±39Ž‘}‘É\typeout{*******************************************************}Ž‘`Ÿff‰ff”Ì8Ÿ J=‘ "5Ÿý-:ó¹Aa¨cmr6Â1ŽŽŽ‘LÜÁIt–ÕXcan“bŸ'EŽ‘ãxX“st¸ãyle“ lesŽ¡‘`directory‘ÿ*ª.‘qÇExtraction–UUis“pGerformed“bš¸ãy“t˜yping:Ž©‘ræXÉlatex‘¹–docstripŽŸ Ÿ‘`²This–ëis“an“in•¸ãteractiv“e–ëprogram,‘|and“the“dialogue“for“generating“the“st¸ãyle“ le“shouldŽ¡‘`bGe:Ž¦‘ræXÉ**********************************************************Ž¤ ‘ræX*–¹–This“program“converts“documented“macro-files“into“fast“*Ž¡‘ræX*–¹–loadable“files“by“stripping“off“(nearly)“all“comments!“*Ž¡‘ræX**********************************************************Ž©‘ræX****************************************************Ž¡‘ræX*–¹–First“type“the“extension“of“your“input“file(s):‘ s,*Ž¡‘ræX\infileext=docŽ¡‘ræX****************************************************Ž¦‘ræX****************************************************Ž¡‘ræX*–¹–Now“type“the“extension“of“your“output“file(s)‘ s,:“*ŽŽŸ’€²6ŽŽŒ‹QS ¨ ýF œ ý‚‘ræXÉ\outfileext=styŽ¤ ‘ræX****************************************************Ž©‘ræX****************************************************Ž¡‘ræX*–¹–Now“type“the“name(s)“of“option(s)“to“include‘,Â:“*Ž¡‘ræX\Options=styleŽ¡‘ræX****************************************************Ž¦‘ræX****************************************************Ž¡‘ræX*–¹–Finally“give“the“list“of“input“file(s)“without‘,Â*Ž¡‘ræX*–¹–extension“seperated“by“commas“if“necessary‘Ÿî:“*Ž¡‘ræX\filelist=programsŽ¡‘ræX****************************************************Ž¡Ÿ‘`²F‘ÿ*ªor–å•generating“the“index“ le“it“suces“to“rerun“the“¹docstrip“²utilitš¸ãy“and“to“answ˜erŽ¤ ‘`\ist/index"–~[instead“of“\st•¸ãy/st“yle"›~[in“t˜the˜abGo“v“e˜steps˜2˜and˜3,‘ˆœand˜in˜another˜run˜toŽ¡‘`answ•¸ãer‘UU"drv/driv“er".Ž©‘`The– Nthree“ les“ma¸ãy“bšGe“pro˜duced“in“a“single“pass,‘ó b¸ãy“simply“latexing“the“ le“Îpr‘ÿ}'o-Ž¡‘`gr›ÿ}'ams.ins‘'v²whic¸ãh–UUgoGes“along“with“the“ le“Îpr˜o˜gr˜ams.dtx‘4D².Ž¦‘`Generation–UUof“the“došGcumen¸ãtation“is“then“simply“p˜erformed“as“follo¸ãws:ŽŸ‘ræXÉlatex‘¹–programs.drvŽ¤ ‘ræXlatex‘¹–programs.drvŽ¡‘ræXlatex‘¹–programs.drvŽ¡‘ræXmakeindex‘ s,-s–¹–programs.ist“programs.idxŽ¡‘ræXlatex‘¹–programs.drvŽ¡Ÿ‘`±69Ž‘jª®ÓhÔst¾9yleŽ‘Ö[ÓiŽŸ#Ä‘`Ì3Ž‘xLËDescription–ffof“MacrosŽŸç‘à&ÄÉ\AlreadyDefined@@ProgramsŽŽŽ‘`²This–YÄmacro“can“bGe“tested“bš¸ãy“an˜y“st˜yle“ le“to“kno˜w“if“the“ le“\ó,m#½R cmss10×p˜rograms.st˜y²"“has“bGeenŽ¤ ‘`input.‘iBut–Üàit“alloš¸ãws“a“moGdular“programming“st˜yle“similar“to“the“one“used“with“theŽ¡‘`C–…Žheader“ les.‘sHence,‘‘the“ rst“time“the“\×p•¸ãrograms.st“y²"›…Žst“yle˜ le˜is˜included˜all˜of˜itsŽ¡‘`b•Go“dy–UUwill“bšGe“included;“the“second“time,“the“b˜o˜dy“will“not“b˜e“included.Ž©‘`±70Ž‘jª®É\expandafter\ifx\csname‘¹–AlreadyDefined@@Programs\endcsname\relax%Ž¤ ‘`±71Ž‘jª®É\expandafter\def\csname‘¹–AlreadyDefined@@Programs\endcsname{}%Ž¡‘`±72Ž‘jª®É\else\endinput\fiŽŸþ6‘`Ñ3.1Ž‘~ÀConš trolling–€program“inden˜tationŽŸuT‘ 6É\ProgramIndentŽŽŸ ‘ ­ \@@programindentŽŽŽŽŽ‘`¹\@@programindent–ð˜²is“the“amounš¸ãt“of“program“inden˜tation“for“the“left“margin“of“theŽŸ ‘`text.‘qÇInitially‘ÿ*ª,–UUit“is“set“to“¹\z@“²:Ž¦‘`±73Ž‘jª®ÓhÔst¾9yleŽ‘6]Óió/ßêŸ'EŽ‘ãxX“to“switc˜h“to“the“default“fon˜t“for“t˜yping“pro-Ž¤ ‘`grams–º9(whicš¸ãh,‘qin“the“curren˜t“implemen˜tation“is“¹\tt“²in“order“to“ha˜v˜e“a“bGeha˜viourŽ¡‘`consistenš¸ãt–UUwith“the“¹verbatim“²en˜vironmen˜t).Ž¦‘\±225Ž‘jª®É\ProgramDefaultFontŽŽŸ’ÿÿ²12ŽŽŒ‹ ŸÇ ¨ ýF œ ý‚‘`Ñ3.8Ž‘~ÀOld–€macro“names“presenš t“here“for“compatibilit˜y“reasonsŽŸuT‘"LøÉ\newprogramŽŽŸ ‘ÙÌ\renewprogramŽŽŽŽ¤ ¡‘îS†\noresetprogramcounterŽŽŽŽ¤ ¡¡‘ 6\programindentŽŽŽŽ¤ ¡¡¡‘ ­ \programsurroundŽŽŽŽ¤ ¡¡¡¡‘9Þ\setprogramcounterŽŽŽŽ¤ ¡¡¡¡¡‘'Ž\unnumlineŽŽŽŽ¤ ¡¡¡¡¡¡‘ó \BothMarginNumberLineŽŽŽŽŽ‘`²These–-žmacro“names“are“simple“rede nitions“of“macros“de ned“elsewhere“in“this“doGcu-Ž¤ ‘`men•¸ãt›Œst“yle.‘_„They˜are˜presen“t˜here˜b•Gecause˜they˜had˜b“een˜de ned˜in˜previous˜v¸ãersionsŽ¡‘`of–UUthis“st¸ãyle.ŽŸ‘\±226Ž‘jª®ÓhÔst¾9yleŽ‘6]ÓiÚ%%–¹—OLD“MACRO“NAMES“PRESENT“HERE“FOR“COMPATIBILITY“REASONSŽ¤ ‘\±227Ž‘jª®É\let\newprogram=\NewProgram‘¹–\let\renewprogram=\RenewProgramŽ¡‘\±228Ž‘jª®É\let\noresetprogramcounter=\NoResetProgramCounterŽ¡‘\±229Ž‘jª®É\let\programindent=\ProgramIndentŽ¡‘\±230Ž‘jª®É\let\programsurround=\ProgramSurroundŽ¡‘\±231Ž‘jª®É\let\setprogramcounter=\SetProgramCounter‘¹–\let\unnumline=\UnnumLineŽ¡‘\±232Ž‘jª®É\let\BothMarginNumberLine=\BothMarginsNumberLineŽ¤‘\±233Ž‘jª®ÓhÒ=Ôst¾9yleŽ‘Ö[ÓiŽŸ#Ä‘`ÌReferencesŽŸç‘`²[1]ŽŽ‘oŽ;ó1Œ-ø cmcsc10ÜD.E.‘=Knuth².‘½•Computers–Å¡&“T¸ãypšGesetting“(The“T‘þU>Ÿ'EŽ‘ãxXb˜o˜ok).‘½•Addison-W–ÿ*ªesley“,‘á´V“ol.Ž© ‘oŽ;A,‘UU1986.Ž¡‘`[2]ŽŽ‘oŽ;ÜL.‘¯hLampor‘ÿUTt².‘¼¸ÎLŸý雑üQíó2t}\Êcmti7ÝAŽŽ‘ÙÎT‘þKß'EŽ‘Í-X:‘a–ž×Do›ÿ}'cument“Pr˜ep˜ar˜ation“System².‘¼¸Addison-W‘ÿ*ªesley‘JôPublishingŽ¦‘oŽ;Compan¸ãy‘ÿ*ª,‘UU1986.Ž¡‘`[3]ŽŽ‘oŽ;ÜF.‘ÇMittelbaÇch².–nïThe›UU¹doc²-option.“ó3p®0J cmsl10ÞTUGbGoat²,˜V‘ÿ*ªol.˜10(2),˜Îpp².˜245{273,˜July˜1989.Ž¡‘`[4]ŽŽ‘oŽ;ÜF.–oMittelbaÇch,‘š‘D.“Duchier“and“J.“Braams².–‚¹docstrip.dtx› P².“The˜ le˜is˜partŽ¦‘oŽ;of–UUthe“DOC“pac¸ãk‘ÿqÇage.ŽŽŸ’ÿÿ13ŽŽŒ‹«/ ¨ ýF œ ý‚‘`ÌIndexŽŸç‘`ÎThe–k:italic“numb›ÿ}'ers“denote“the“p˜ages“wher˜e“the“c˜orr˜esp˜onding“entry“is“describ˜e˜d,‘s\num-Ž¤ ‘`b–ÿ}'ers›÷[underline“d˜p“oint˜to˜the˜de nition,‘8al‘‚Øl˜others˜indic“ate˜the˜plac“es˜wher“e˜it˜is˜use“dŽ¡‘`(ie.‘™–the–“çline“numb›ÿ}'ers“wher˜e“it“app˜e˜ars).Ž +€ þí‘`ÇBothMarginNum¾9bAÇerLine=‘æXÉ\subitem–¹–*+\BothMarginNumberLine+,“\usage{3},“\main{226}Ž¤ ‘`ÇBothMarginsNum¾9bAÇerLine=‘æXÉ\subitem–¹–*+\BothMarginsNumberLine+,“\usage{3},“\main{93},“232Ž© ‘`ÇCoAÇdelineIndex=‘æXÉ\subitem–¹–*+\CodelineIndex+,“63Ž¡‘`Çcolumnsep=‘æXÉ\subitem–¹–*+\columnsep+,“57Ž¦‘`ÇDoAÇcInput=‘æXÉ\subitem–¹–*+\DocInput+,“66Ž¦‘`ÇemProgram=‘æXÉ\subitem–¹–*+\emProgram+,“\usage{3},“\main{103}Ž¡‘`ÇEnableCrossrefs=‘æXÉ\subitem–¹–*+\EnableCrossrefs+,“61Ž¦‘`Çheadsep=‘æXÉ\subitem–¹–*+\headsep+,“56Ž¦‘`Çifnoprogs le=‘æXÉ\subitem–¹–*+\ifnoprogsfile+,“32,“35,“41Ž¡‘`ÇInBo•AÇdyLeftNum¾9b“erLine=‘æXÉ\subitem–¹–*+\InBodyLeftNumberLine+,“\usage{3},“\main{93}Ž¦‘`ÇLeftMarginNum¾9bAÇerLine=‘æXÉ\subitem–¹–*+\LeftMarginNumberLine+,“\usage{3},“\main{93}Ž¦‘`ÇMak•¾9eP“ercen“tIgnore=‘æXÉ\subitem–¹–*+\MakePercentIgnore+,“47Ž¡‘`Çmarginparwidth=‘æXÉ\subitem–¹–*+\marginparwidth+,“54Ž¦‘`ÇNewProgram=‘æXÉ\subitem–¹–*+\NewProgram+,“\usage{4},“\main{138},“217--223,“227Ž¡‘`Çnewprogram=‘æXÉ\subitem–¹–*+\newprogram+,“\usage{4},“\main{226}Ž¡‘`Çnoprogs lefalse=‘æXÉ\subitem–¹–*+\noprogsfilefalse+,“34Ž¡‘`Çnoprogs letrue=‘æXÉ\subitem–¹–*+\noprogsfiletrue+,“34Ž¡‘`ÇNoResetProgramCoun¾9ter=‘æXÉ\subitem–¹–*+\NoResetProgramCounter+,“\usage{4},“\main{88},“228Ž¡‘`Çnoresetprogramcoun¾9ter=‘æXÉ\subitem–¹–*+\noresetprogramcounter+,“\usage{4},“\main{226}ŽŽ þí’#ÇoAÇddsidemargin=‘æXÉ\subitem–¹–*+\oddsidemargin+,“53Ž¤ *«’#ÇOldMak¾9eindex=‘æXÉ\subitem–¹–*+\OldMakeindex+,“64Ž©€’#Çpartopsep=‘æXÉ\subitem–¹–*+\partopsep+,“112Ž¡’#ÇProgramDefaultF‘ÿ:«on¾9t=‘æXÉ\subitem–¹–*+\ProgramDefaultFont+,“\usage{3},“\main{103},“159,Ç215ŽŸ™”‰fe ßúŽŽ¡’#ProgramInden¾9t=‘æXÉ\subitem–¹–*+\ProgramIndent+,“\usage{3},“\main{73},“229Ž¡’#Çprograminden¾9t=‘æXÉ\subitem–¹–*+\programindent+,“\usage{3},“\main{226}Ž¡’#ÇProgramSurround=‘æXÉ\subitem–¹–*+\ProgramSurround+,“\usage{4},“\main{77},“230Ž¡’#Çprogramsurround=‘æXÉ\subitem–¹–*+\programsurround+,“\usage{4},“\main{226}Ž¦’#ÇRecordChanges=‘æXÉ\subitem–¹–*+\RecordChanges+,“62Ž¡’#ÇRenewProgram=‘æXÉ\subitem–¹–*+\RenewProgram+,“\usage{4},“\main{138},“227Ž¡’#Çrenewprogram=‘æXÉ\subitem–¹–*+\renewprogram+,“\usage{4},“\main{226}Ž¡’#ÇRigh•¾9tMarginNum“bAÇerLine=‘æXÉ\subitem–¹–*+\RightMarginNumberLine+,“\usage{3},“\main{93}Ž¡’#ÇrmProgram=‘æXÉ\subitem–¹–*+\rmProgram+,“\usage{3},“\main{103}Ž¦’#ÇSetProgramCoun¾9ter=‘æXÉ\subitem–¹–*+\SetProgramCounter+,“\usage{4},“\main{90},“231Ž¡’#Çsetprogramcoun¾9ter=‘æXÉ\subitem–¹–*+\setprogramcounter+,“\usage{4},“\main{226}Ž¦’#Çtextheigh¾9t=‘æXÉ\subitem–¹–*+\textheight+,“50Ž¡’#Çtext¾9width=‘æXÉ\subitem–¹–*+\textwidth+,“49Ž¡’#ÇttProgram=‘æXÉ\subitem–¹–*+\ttProgram+,“\usage{3},“\main{103}Ž¦’#ÇUnn¾9umLine=‘æXÉ\subitem–¹–*+\UnnumLine+,“\usage{4},“\main{89},“231Ž¡’#Çunn¾9umline=‘æXÉ\subitem–¹–*+\unnumline+,“\usage{4},“\main{226}Ž¡’#Çusepac¾9k‘ÿ|rage=‘æXÉ\subitem–¹–*+\usepackage+,“45ŽŽŽŽŸ’ÿÿ²14ŽŽŒø²¯ƒ’À;è¨Ôó3p®0J cmsl10ó2t}\Êcmti7ó1Œ-ø cmcsc10ó0ò"V cmbx10ó/ßê