附录CTX程序设计 HEX2的一个主要改进之处就是为类和宏包作者(简言之,即BIX程序 开发者)提供大力支持。绝大多数用户并没有体味到新版本相比于IEX2.09 的改进之处,只是知道多了一些新的字体命令,文档开头之处的声明换成了 tc1ass,用\ usepackage命令上载原来的选项文件。虽然在其它 地方也有可能发现多了点新东西,但大致的感觉就是新版本并没有带来多少 新事物。然而,对IX程序开发者而言,尤其是对曾经编写过选项文件,或 者安装过新字体框架的人员来说,他们就会非常欣赏NFSS以及新的类与宏包 控制功能。随着时间的推移,基本IX安装所提供的新扩展功能逐渐变得 与IX2密不可分,从而想使用新功能的用户就不可避免地把自己的系统 更新到新版本上 在8.5节中描述了新字体选择框架。本附录讲解设计类与宏包文件的特 殊命令,并给出了几个实用宏包的设计示例 C1类与宏包文件 8C.1.1ITEX209中的样式文件 类与宏包文件是新出现在IX2中的概念,它取代了IX2.09中的 主样式和样式选项文件。在原来的系统中,要想选择主样式,就要利用声明 0 Adocumentstyl[选项清单]样式} 这样就上载了一个名为样式.sty的文件,其定义了文档所需要的全局格式。 几个主要的样式为atic1e, report和book,这也是IIX2g中最重要的几 个类。在样式文件的某个地方,要用命令\@ options如下处理选项清单中的 如果存在命令ds选项,那就执行这条命令;否则,就把该选项放到第 二个清单中 2.当遍历完选项清单,就考虑第二个清单,对每一项,把文件选项.sty输 这一过程使得选项可以定义在样式文件内部,也可以存贮在与选项同名的单 独样式选项文件(扩展名为,sty)中。这样做的想法就是有些选项的代码与 主样式文件无关,从而可以存贮在外部的样式文件中 这就可能是采取选项文件概念的初始动机;其直接结果就是有大批的爱 好者开发了数目可观的添加选项,并把它们存贮在一个文件中,读入到其 它的文档中。通过网络服务器,添加的选项就传播开来,得到广泛的应用。由 于其中有些只是拙劣地修补了IEX的内部命令,不能只是简单地用\ input
✂✁ ✄ ☎✝✆✟✞✡✠☞☛✍✌✎ ✏✑ ✒✔✓✖✕✘✗✚✙✜✛✣✢✥✤✧✦✩★✩✪✩✫✭✬✯✮✩✰✲✱✩✳✩✴✩✵✷✶✩✸✩✹✩✺✩✻✲✼✾✽❀✿❂❁❃✰✭❄✚❅❆✒✔✓✖✕✥✗❇✙❉❈❋❊ ●❋❍✼❏■▲❑◆▼✩❖❂P✩◗❂❘❚❙❱❯❂❖❚❲◆❳✩❨❬❩✷❭❬❪✩❫✷❴❬❵✩❛❂❜✩❝❂❞✩❡❣❢✐❤❥✒✔✓✖✕✗✙❦✛♠❧ ♥♣♦ ✤◆✬◆✮✩✰❂✱q❄✧r❂✴❂s❬t❚❲❂✉✯✦❂✈❬❜✭✤①✇❂❴✩②❂③❚❄⑤④❂⑥●✷⑦✰❂✱❚✤◆⑧q⑨✯⑩❂❶❷✉ ❸♣❹✚❺✚❻✣❼♣❽✥❾♣❿➁➀✘❻➃➂➅➄♠➆➁➆ ❄❱❨ ❸➃❼✘➆➃❾♣➇✚➄✚❻➉➈✥➄♣➊✚❾ ②➋③✩➌❂➍❬➎❂➏❚✤➑➐❂➒✩➓❂➔→❙✧➣❂↔❬↕❂➙✩➛ ➜◆➝✷➞❫✩➟❷➠❍❂➡❲❂✉❬➢✯❜❂➤✩➥❷❄⑤➦✩❖❂➧❚✤◆➨✩➩❂✳❬✴✩❜❂❝✩❞❂❭✩❪❂❫✩➫❬➏✭❲①➭ ❜❋➯❂➲❚❙➳↔❂➵❚❄➳➸➺✒✓✕✗✙❉❈➋❊●❂❍✼✩➵❂❁❚❄➳➻❂➙✩✴✩➸❣➼✐➽✩➾❂➚✩➪❂➶✩➹✩④❂➘❚❄➳➴ ✼❋➷✩➬✩➪❂❜✩✇✩❴✷➮✩➱❚✤◆✃❚❐✯➏✩❒❚❄❰❮✩Ï✩✳✩Ð❂Ñ✩Ò✩Ó✷ÔÖÕØ×➅Ù✚Ù❰Ú✧Û✩❜❚✤◆✶✩Ü✩✹✩✺ Ý◆Þ❂ß➠❬❙➋à①á❷â❬ã❂✤◆ä❬å❷❄çæ❬❞❥✒✓✕✗✙▲➷❃➬❂è❂❑❬▼❷✤①❜❂é❂êß➠①ë❂ì❂í❬î Üï✒✓✕✗✙✜✛ ✢✣ð➋ñ➟❂ò❷❄✧óô➵✩õ❬ö❂❨❂❜ß➠❂✤◆❨❬❩✩✳ñ➟❬÷❂ø➜❂ùûú◆ü✤◆ý✩þ ÿ❜✷❛❬❜✩❝❂❞✩➌❷❙ ↕✁✚❧✄✂✆☎✞✝✠✟☛✡❷✉①❜❂✇✩❴❂➶✌☞❂➮✩➱❷❙⑤❞✎✍✑✏☛✒✔✓☛✕✌✖❂✶❬Ü✷✹❬✺❂④❬➘❷✤✠✗ ✘②✷③q❄✜❭✔✙✛✚✷✉✑✜❂★✔✢❂❨✩✹❬✺✭✤✑✕☛✖✔✣☛✤❚❙ ✥✧✦✩★✫✪ ✬✮✭✰✯✮✱✞✲✴✳ ✵✷✶✹✸✻✺✼✸✽✺ ✾❀✿❂❁✧❃❅❄❇❆✧✸❉❈✼❊●❋■❍✠❏✌❑☛▲✔▼ ✶◆Ü❂✹ô✺❬④❂➘❂✴❬❜✎✚➡↕ ✒✓✕✗✙✜✛✣✢◆✝✲✤✩❖✌P❷❄⑤➛☛◗☛❘q✉ ✒✓✕✗✙❦✛♠❧✔♥➃♦❙✝◆✤ ❚❱❯✎❲ ✸ ❯✰❲➐❬➒ ④❬➘❚❙❦↕✷➎✩➏q✤❋ý✩þ✛✝✷❄❦✫✩õ✩➶✔☞❂✪✔❳✔❨❷❄❦✳✩✫✔❩✩❨❂⑧❚⑨ ❬❪❭ ❫❵❴ ❸➃❹✚❺♠❻✣❼♣❽♠❾♣❿➅➀✘➆✣➀❂❛✚➂➅❾❝❜➐✜➒✔❞☛❡❣❢✐❤ ❯☛❲✮❥ ❦❳✩✳❂➌✩➍❚✉✯✦✷★✌❧✩✵ ❯♠❲✞♥ ➆✣➀✷❛ ✤✧④✩➘❷❄ ➙✔♦☛♣❚✉✯④✷⑥✩è✌q✷✫❚✤✠r✔s☛t✔❨❚❙ ✜◆★✷✪❬✫❚✤✩❳✔❨❂✵ ➄✈✉➁➀✧✇♣❻➃➂➅❾✼①◆✉✚❾➃➇✚❺✈✉➅➀ ✸③② ❺➅❺➈ ❄ ❦➞✴Ö✒✓✕✗✙⑤✛ ✢◆✝⑤④✔⑥❬✫❷✤✠✜ ★❋✶❷❙▲↕✔❳☛❨✩④✩➘❷✤✠⑦✩★➜✩➝❄❦✫✷❨✩②❬③ ❸❂⑧➅❺♣➇➅➀✧✇ ❺♣❿✘➆⑩⑨❱❶✱✌❷ ➐❂➒✔❞✔❡❸✝✩✤ ➶◆➹✰❹ ❺♣❧ ⑨✩❻✔❼↕❬②✩③ ❸♣❹✘➆❽⑧➐✩➒ ❄✹❾✩✳✔❿☛➀❦☛➁②✩③✎➂➄➃➆➅❚❄❱✳ù✔➇➶❬➹✔➈❂❛✔➉ ➊◆★✔➋☛➌♠✝☛➂ ✛♠❧➎➍➐➏✔➑➆➒û➐❂➒✔❞☛❡① ✳❱➓✔➔☛➉✔➊❂★✔➋✔➌❷❄ ➸✌→✩✦✷➹q❄ ù④❂➘ ➐❂➒ ♥ ➆✣➀✷❛↔➣ ↕✮✩④❂⑥❚❙ ❦✦✷➪❬❈✩ö❂î✩➶❂➹✩➟❣Ú❇♦✔♣❂↕✔❳☛❨✩④❂➘➛➙❇➜❷❄ ➞➟❆Ú❼☛➝↕❂Ü✩➶❂➹♠➞✑❧✭✤✑➌ ➟❳☛❨✩➶❬➹✷④✩➘➡➠é✩ê☛❧✩✵ ♥ ➆✣➀✷❛✔➢ ✝✩❙ ❦❳➆➤❚✤①õ➆➥❬✳✩✴✷❫❬✈✩➶❂➹❚✤✠❘☛➦✩Ü ✪✩❳➆❨❬④✩➘☛➧✔➨❷❄⑤ó❂➵✩➟❣Ú❼✌➝↕✌➩☛➜❚✤✩❳✔❨❬④✷➘✛✝✩❙ ❦✳✩➟❷➠✯✴☛➫✔◗❂➶❬➹✩④❂➘✔❖☛P❚✤✩➭✔➯✌➲☛➳♠➂✜➙✌➵✔➸☛➺❻✳✩✴❂❫✩❖✌➻✭✤✑➼ ➽✼●❬❍✉◆❳③➾ ➟✔➚❷✤✑➪✔➶➘➹➶✩➹➷➴ ❄☞❭ù➛✷Ï❼✔➝↕❂✦✩★❬④✷➘✛✝✩❄⑤➬↕❛❬➙ ➛✷✤◆④✩⑥♠✝✩❙➱➮✩➪✰✃✠❐✔❒✎❮✠❰❚❄Ï➪✌➶❚✤❋➶✩➹❬✳➆Ð✔Ñ●➏❚❄▲î✷❛✌Ò✔Ó✭✤✑Ô✩❨✭❙❇Õ ❤◆➙✰✝①❫✩✈❂r✩✴☛Ö✔×➜✔Ø✌Ù✉ ✒✓✕✗✙✤➆➙❇➜✩②❂③❚❄ ñ➠①r✷✴❬✿☛➌➜❨ ❸✼✇➉❿➅➇➅❼➅➀ ✛➃♦✈Ú
附录CTX程序设计 命令把它包含进来,而要把文件名后缀指定为.sty,因此可以按照上面的第 2点以准选项角色包含进来。但它们实际上并不是真正的选项,只是新增加 的代码或功能 在编写主文件样式时还会出现一个新的难题。如果需要适合于某期刊的 文章样式,或者某出版社的书籍样式,那么可以利用已有的 article,sty或 book.sty样式为基础,进行必要的改动,得到新的主样式,但是不能保证 在对原主样式做更新后,改动仍然有效。但是有时候一些重大的更新就与对 NX进行的改动是一致的。我们可以只是写一个“选项来包含所做的改动, 也可以写一个新的主样式,输入原来的样式。然而,它并不是相应于其选项 清单的真正主样式。 8C12X2e的新概念 当 Leslie Lamport发布IIX时,他无论如何也不会预见到随后出现了 那么多的IX程序。这一切现在已成为不争的事实,而且这也是该系统的魅 力所在。ITEX2c则不但包容这些“外来”成员,而且实际上它进一步支持和 鼓励这种趋势,其中一个明证就是在 The lTEX Companion( Goosens et al. 1994)书所介绍的大量宏包 这就是事物发展的趋势。扩展的功能由那些需要该功能的人设计的,因 们意识到IX缺少了某些对他们而言是很重要的功能。另一方面,要 是把所有这些扩展的功能都加入到基本的TX安装中,那就会使得90%以 上的用户虽然上载了它们,但从来不会用它们。现在解决这个问题的方法就 是IX提供了一个基本的核心(或称内核),再首先用标准的类文件扩展其 功能,然后利用那千变万化的宏包和类增加功能 而 X Team的任务就是建立程序设计的方针,从而确保宏包不会与 内核或者其它宏包发生不必要的冲突,而且提供一种基本的稳定性,使得那 些实用的宏包将来在更新后的内核和标准类下也工作正常。在BTEX209中 就缺少了这种安全机制,在那个版本中,程序设计者们被迫自己寻找门路 这实际上并不是真的程序开发。LX2g在类和宏包控制方面的新功能,随 同组程序开发工具,应该在宏包内部相互作用以及对内核更新的适应等方 面达到比原来更强的可靠性和持久性 8C13命令的层次 命令有许多层次,它们的安全程度也相应不同。 用户命令(最高级命令)在本书及其它手册中进行了描述,其名称由小写字母 组成,例如\ texttt,它是永久被支持的ThX外部定义; 类与宏包命令其名称要稍长一些,而且大小写混杂(如\ leeds teXFormat) 主要是为程序设计人员提供的,而且也是有保障的;绝大多数是只能用 CTEXGuru, August 16, 1999
✛➃♦❽Û Ü✩ÝßÞ➘à✄áãâåä✐æèç✩é➆ê✌ë ②❋③ù➛✩✺☛ì✩✮✩➏❚❄❦➵✩✫ù④✩➘➆❧✌í✔î➆ï✌♦✩✵ ♥ ➆✣➀✷❛ ❄Ïð✩ñ✩➟✍Ú➐ò✔ó✩➌✔ô✎õ✠➉ ö➐÷ßø❇ù☛ú☛û✌ü☛ý✌þ☛ÿ✁✄✂✆☎✞✝✠✟✄✡✄☛✆☞✍✌✠✎✑✏✠✒✄✓✆✔☛õ✩ú✌û✖✕✘✗✄✒✠✙✑✚✠✛ õ✘✜✑✢✠✣✁✤✖✥✁☎ ✦✍✧✁★✄✩✁✪✄✫✁✬✄✭✆✮✰✯✄✱✳✲✍✴✁✵✄✶✙✛õ✍✷✁✸✖☎✘✹✁✺✄✻✁✼✄✽✁✾✄✿✁❀✠❁✑❂✛õ ✪✍❃✑✬✠✭✕✞✣✁❄✄❀✲❆❅✄❇õ✍❈✁❉✬✁✭✕✞❊✁❋✁● ø■❍✑❏▲❑◆▼✎õP❖❘◗❚❙❱❯❘❲❨❳❚❩❭❬❫❪❴❙❚❵❛✣ ❜❞❝❚❝❴❡ ❬❢❪❴❙❚❵ ✬❣✭✠❤❥✐❥❦✕✘❥❧❥♠❥✼✎õ❥♥♣♦✖✕✘q❥r❥✙õ✩❥✬❥✭✕✞✝❥✒❥✏s✥♣t✠✉ ✦✍✈✄✇✁✩✄✬✠✭✑①✠②✙✄③✖✕④♥❆♦✄⑤✠⑥✑▼✠⑦✖☎⑧✝✠✒✄▼✮✰⑨✠✵✑⑩✠❶✄❷õ②✙✁❸✄❹✈ ❺❼❻❾❽➀❿❚➁➂➃❧♠õ❣♥✰♦✁✒✵✑➄õ✁☎❨➅✁✡✁●➛ø◆✗✑✒★✁✵✁✶➇➆ú✔û❣➈➉✂❱þ✔ÿ❣➊①õ✁♥✰♦✳✕ ➋● ø★✁✵✠✶✙♠õ✩✠✬✄✭✕✞➌✠➍✇✂✎õ✬✄✭☎✘⑥✄➎✖✕✘✟✄✎✁✏✠✒✄➏✄➐✁✿✠➑☛ú✔û ➒✍➓õ❆✓✳✔✩✁✬✄✭☎ ➔❚→↔➣➙↕➀➣➜➛ ➝➟➞➡➠➤➢➦➥❥➛➨➧➫➩⑧➭✄➯✁➲ ➳ ❺➤➵➺➸➼➻➜➽➾➵➚❺➶➪❴➹➚➘➦➴❨➷➼➬➂➮➃➱✃❺❻❽❿➁✮✕✘❐✄❒✠❮✄✹✄❰➋✏✱✄Ï✄Ðr✖Ñ❆③ ✲✍✴✆Ò ❊④❋✳Ó✄ÔÕ❺❻❽❿➁×Ö④Ø✆☎ÚÙ✵✁Û✄✴✁✦ ❑⑧Ü❤✏✑Ý✳Ô✰Þ✄☛✳✕Ú➎✁ß✁Ù➋✒✁à✁á✄â✳Ô✰ã ä➊✦☎å❺❻❽❿➁✞æèç❨é④✏✑✝✌þ✁ê✄Ù⑩ë➆íì✂❣➈◆Ü✄î✁✕↔➎✄ß✁☛✆☞④✌✠✟✁✵✠ï✁ð✄ñ✁ò ó✍ôÙ✄õ✠ö✄÷✆✕✞➑✆ø✵✄✶✆ù✉✄❸✄✒✦ ú➫û➀üþý❼ÿ❴ú✁✄✂✆☎✞✝✠✟☛✡✌☞✎✍✑✏✒✝✓✍✕✔✗✖➴➡➴❘➸➵✙✘➸ ➵❾➬↔➪❴➻✛✚✢✜ ✣✥✤✦✤✓✧✩★ ✵❈✁➊✫✪✭✬✆Ô❷✯✮✱✰þ✆☎ Ù✍❸✄✒✁Þ✯✲✠➮✱✳✖Ô✍ö✁÷✆☎✵✴✫✳Ô❆✤✖✥✷✶✘❊⑩✻✄✼✁à✄✤✆✥✑Ô✹✸✯✺✱✻✖Ô✁✕✽✼ ❤❐✄✡✯✾✫✿✄r ❺❻❽❿➁❁❀❃❂Ò❀⑩✠✈❐✠✡✄➎✯❄✠✒✯❅❶✼✆Ô✍✤✆✥✄☎✽❆✵✯❇✫❈✕✘✼ ✒✽❉✑➊✠▼✁Ù⑩✴✯✳✳Ô✍✤✳✥✹❊✑✛✠➍✁r✐✯❋ÔP❺❻❽❿➁❁●❃❍✳ø✄✕⑧❊✠❸✱✯■q❏✤✁❑✁▲◆▼ ✌✄Ô✍❏✱❖✯P✠⑥✑✌✫◗Ò✟✄✡✳✕✘✝✯❘✠✂✑✏✱❏✁✟✄✡✆☎ ✴✄✦✫❙✭❚Ù✶✆❯✸✆Ô❇✯❱❸ ✒ ❺❻❽➦❿➤➁❁❲✕❳Ò✰✵✄✶✁✐✯❋Ô❩❨✯❬❪❭è✣✭❫❵❴❛❨❝❜➡✕❡❞✱❢✱❣✄❏✱❤☛ù✳Ô✹✐✪✠✫✴✯✳✁➑ ✤✄✥✑✕✘⑥✄③✁❍✠❏✑❊✫❥✯❦✱❧✯♠✳Ô✰þò✐✁✚✄✛✁✤✆✥✑☎ ➎ ❺❻❽❿➁✆❽➫➵ ➪❴➹ Ô✵♥♣♦✍❸✠✒✯q✯r✠Ö✄Ø✫✺✯✻✖Ô❇✫s✕t❘✄➎✯✉✠t✰þ✄✏✱❹ ❴✈❨✄✣✁❄✄➑✠✟✰þ✁➮✯✇✄✏✁♠✠✼✖Ô❩①✯②✆✕⑧➎✄ß✯❲✫❳✵õ✐✯❋Ô✕③✫④✯⑤✳✕ ■q✄❊ ⑩☛✄❏✖Ô✰þ✫⑥✑✂✦✄②✙✄③✖Ô♣❴t❨ò❤✌ù✯✐✫⑦➋✯⑧✫⑨✔✹⑩☎ ✦ ❺❻❽➀❿❚➁æ❶✚❷❑✁✤✘ø ❸✽❀✯❂ÒÙ✠õ✭●✫❸✱❹✯❺✖✕ ✦❊✶✠❅✭❋ø✄✕⑧Ö✠Ø✯✺✯✻✁❄✠✡✭❻✫❼❾❽❩❿t➀✫➁✆➂t➃✖✕ Ù✍☛✖☞✍✌✁✎✠✏✄✒✄✓✆Ô✍Ö✁Ø✯➄✠➮✖☎ ❺❻➺❽➀❿➤➁✞æ ç✦✐ò✭✰þ✯➅✫❺❇✫❈Ô❆✙✄✤✳✥✄✕✍Ñ ➆✵✭➇Ö✁Ø✯➄✁➮⑧✱➈✕✘➐✁à✦✫✰þ❵❴❛➉✄➏✱➊⑨❏➋▼➍➌✈ ❴❛❨②✙✖Ô✰✽✠➐✭➎❇ ❈✽➏r❵➐✇✂②✯➑Ô✍●✫➒✱⑤ò✁ñ✯➓⑤✖☎ ➔❚→↔➣➙↕➀➣→➔ ➣❃↔✳➩✹↕✯➙ ➛✽➜▼✯➝✳Ó✽➞✱➟✖✕✘✟✄✡✳Ô✹●✭❸✠Ö✯➠➋➏✁➐✠✏➆ ☎ ➡✕➢➣✭↔ ✔✢➤➦➥❩➧➛✱➜★ ✦✕❋❈✱➌✁➑✄✟✱➨✯➩✳ø✍✁❧Ò✕➫✱➭✕❛➑✱➯✫❫❝✶✹➲★✯➳✱➵ ➇Ü✳✕t➸✄✹➻➺❘❙➨❩✦➼❚❙❚❙❚❙ ✕❛✟✠✒✱➽➓❻ð✠ñÔP❺❼❻➺❽➤❿➤➁ì➉✫④✱➾➪➚ ➶✭➹✹➘✭➴➣✱↔ ➑✽➯✱❫✑✼✫➷✱➬✵✠⑩✕ ➎✄ß❷➲★✱➮✯➱✃✔✹✃➺✠❐➀❩❚❩✁❒➦❪✓❮❞❩✦❰ÐÏ ❝ ◗✦Ñ➀❖❨❙✑★ ✕ ✩✼✁✒❤Ö✠Ø✱✺✯✻✱✸✖î❩❲✯❳✳Ô✠✕⑧➎✑ß➋✒✄▼✁t➪Ò✁Ô✯➚ÔÓ❷Ó✽Õ✁✒✠✗✖✥✰❏ ×❃ØÚÙÜÛÞÝàß✦á✗ß Ö ✜✑âäã❶å✁ã❞➸➼➬æ✣✥ç❶✜Ú✣✎✤✁✤✦✤
§C.1类与宏包文件 295 在导言中的命令,但在类和宏包文件中并没有这个使用限制 TEX内部命令名称中包含@字符,只能用在类与宏包文件中;虽然其中有 些命令对得到特殊效果是密不可分的,但也无法保证永远可用:开发人 员要使用该命令,那就有可能将来某一天自己设计的宏包变得不再能用 TX低级命令名称也是由小写字母组成,而且没有@:即使X继续演化 其功能也应该是稳定的,但这也不是绝对的;只要有可能,就尽量避免 使用它们,见下面的解释 内部专用命令是用在其它人员开发的类与宏包文件内部的命令;建议所有命 令都前缀大写字母(以表示宏包的名称)后接@,这样可以避免与其它宏 包发生冲突;例如, show keys宏包中有一条命令为SK@cite 个令IIX开发人员感到迷惑的问题是IEX内部命令在类和宏包文 件中的应用范围到底有多大。总是存在着可能,将在某一天在新版本不存在 这些新命令了,因为在正式的说明书中从没有给出其说明。而诸如下节讨论 的TX命令,我们不应杜绝使用它们,但我们必须明白,用它们也同时伴随 着一定程度的风险。 ATEX Team建议的方针就是只要有可能,就尽量使用IIX高级命令 要用 mmand和\ renewcommand,而不用\def;如果要使用某一个 TX的定义命令(因为调用某模板,或者因为必须用\gdef或\xdef), 那么先调用一个空的\ newcommand命令,以检测名称是否有冲突。如果 无法确定命令名称是否存在,而且该命令不是很重要的,那么就调用 条空的\ providecommand,然后再调用\ renew command。现在高级命令 中可以定义有一个缺省值的命令,这使得原来经常要用低级命令的理由 中缺少了重要的一条。 利用\ manenvironment和\ renevenvironment命令,而不用\自己的环 境和\end自己的环境命令对 要用\ setlength命令给长度和橡皮长度赋值,而不要用直接等号方式。 避免使用TX盒子命令\ setbox,\hbox以及\vbox:而要用诸如\sbox mbox,\ parbox一类的命令。利用IIkX2c提供的可省参考值,原来对 等价X命令的需求现在大大降低,而且ⅣIX版本相比起来要透明得 多。另外,当用了co1or宏包时,IX的盒子仍然工作正常,而其它的 命令结果就无法预料了 如果想给出错误和警告消息,就用\ Packageerror和\ PackageWarning, 不要用\1 atexerr或\ warning:前面两条命令也同时告诉用户消息 的来源,来不是只把它们标为IX消息 我们不会建议你只使用 ifthen宏包(735节中的\ ifthenelse命令, 以代替TX的条件命令。但是似乎用这个宏包可以简化对条件的应用, http://202.38.68.78/texgur Email:texguru@263.net
è ☎❁é✢ê➪ë❃ì✹í✱î➪ï❩ð æ✁✤✦ñ ò➦ó✱ô♣õ✕ö✹÷✱ø➪ùtú✯ûë✽ü✱í✯î♣ï❩ð õ❛ý➪þ❩ÿ✁✄✂✆☎✁✝✟✞✁✠✄✡ ☛✌☞✎✍✑✏✓✒✕✔✗✖✁✘✁✙ ✚✜✛✣✢✥✤✁✦★✧✪✩✬✫✮✭✰✯✮✱✳✲✄✴✁✵✆✶✸✷✆✤✁✹✄✺✻✢✆✼✗✽✁✾✆✿✻✢❁❀ ❂✬❃✄❄✆❅✸❆✆❇✄❈✁❉✄❊✁❋✄●✁❍✄■✆❏✸❑✮▲ ✭✗▼✁◆✄❖✁P✄◗✁❘✄❙✆❚❏✲✟✼✗❯✁❱✄❲ ❳✰❨✄❩✲✁❬❃✆❄✭❪❭✆❫✸❀❏✱❵❴✆❛✄❜✁❝✄❞❢❡❁❣✐❤✄❥▲✷✄✤✆❦❆✆■✄❧✱❁✲ ♠ ✼ ✍✏✒♦♥✬♣✆✘✄✙ ✚❵✛✄◆●rq❁s❁t✩✸✉✄✈✄✇✟✭②①✜③✁④✄❀⑤✧✐✼⑦⑥❩⑨⑧❶⑩❸❷❺❹❼❻❾❽✬❿✄➀✄➁✭ ✿✬➂✟✱✥◆✸➃✆❬●✁➄✄➅✻▲ ✭✰▼✄➆✄◆■✄●✁➇✆❅✟▲ ✼✐✯❨❀❏✱✄✭✰❫✄➈✆➉✸➊✆➋ ❩✲✄➌✆➍✣✭✐➎✁➏✆➐▲✳➑✄➒✼ ✔✗✖✆➓✸➔✆✘✄✙ ●✲✄✴✁✿✄➌✁❲❳❯✁❱▲✵✄✶✆✷✸✤✄✹✆✺➣→✪↔▲✳❃✄❄✼❪↕✄➙✄➛✁❀❃ ❄❵➜✁➝✄➞✄➟✄t✩✄✉★➠➢➡✪➤✸➥✄✷✆✤▲✚✄✛➧➦➩➨❵➫➭✧➯✭②➆✄➲❏ ➡✐➊✄➋✄✶✄✿✁➌✄✷ ✤✬❱✄➳✆➵✸➸✮✼✰➺✆➻✟✭➭➼➾➽➪➚➹➶➹➘➷➴➹➬✓➼➮✷✳✤✟✢✳❀✁❝✄➱❃✸❄✆✃❒❐❰❮ ✧➷ÏÑÐ➢Ò➪➴✗Ó ❝✳Ô❄ ⑧❶⑩❸❷❺❹Ñ❻❯Õ❱✆❲❳✳Ö×❇✆Ø✁Ù✮▲✻Ú✕Û✁●Ü⑧❶⑩Ý❷❺❹➪❻ →➮↔❃✆❄✴✆✵✁Þ×✷✁✤✆✹ ✺✁✢ ▲➃✁✲✆ß✣à❇✄á❀✻â➟Ó✬ã●✸ä✴✁å✄æ✻✱✄✭✐❴✁✴✆❜✸❝✆❞✁✴✄ç✁è✆é■✁ä✴ ➆❂ç❃✁❄♠ ✭✳ê✃✴✟ë✳ì▲✳í✮î❵ï ✢✳ð✄④✁❀✄ñ✮ò✳✿í✻î Ó✗①✁ó✁➻✆➏✄ô✁õ✁ö ▲÷❷ø❹❼❻❾❃✬❄✭✐ù✁➍■➃✄ú➇✆❩✲✆➌✄➍✻✭✐▼✁ù✁➍✄û✆üî✮ý ✭✗✲×➌✄➍✁◆✮þ✄ÿ✁✄✂ å✳❝➅✆☎✞✝✻▲✠✟☛✡Ó ⑧⑩❷❹❻✁❷✌☞✎✍✑✏ ↕❵➙▲✠✒✔✓❫●✯❨❀✆æ✟✱✁✭ ❫✄➈✆➉❩✲ ⑧⑩❷❹❻✖✕✘✗✄❃✁❄Ó ✙ ❨✲✛✚✢✜➪➴ ➶✓Ï ➚✤✣✥✣✧✦✢✜✥★➮Þ✩✚✢✪➪➴✫✜➪➴➹➶✓Ï ➚✑✣✥✣✬✦✢✜✥★ ✭ ①■✲✭✚✫★➪➴✢✮✕✼ ➻❋✄❨✄❩✲✁❜✄❝✄Ô ❷❹❻▲✐➅✔✯✆❃✄❄ ➠ ê✃✔✰✲✄❜✆✱✳✲✮✭✵✴✆✶✟ê✃û✄ü✆✲✷✚✢✸✥★Ñ➴✢✮✹✴✺✚✫✻✥★➪➴✢✮➪➦ ✭ ❭✁✼✞✽✰✲✁❝✄Ô✔✾▲ ✚✢✜Ñ➴➹➶✓Ï ➚✤✣✿✣✬✦✢✜✥★ ❃❵❄✭✸➡❁❀✔❂✄✚✁✛●✆❃❀✆➵✄➸✻Ó✗➻❋ ❖✳P✔❄➅✁❃✆❄✚✁✛●✞❃✆ä✴✟✭✰①✆③✁❬❃✁❄✄■✆●✔❅✞❆✁❨✮▲ ✭✐❭✔✼✆❫✰✲✄❝ ➱✁✾▲ ✚✢❇✥✪➪➚✢❈øÐ❉★➪➴➷Ï ➚✑✣✥✣✬✦✢✜✥★➮✭ ✾✄➨❧✞✰✲✷✚✢✪➪➴✫✜➪➴➹➶✓Ï ➚✑✣✥✣✬✦✢✜✥★✕Ó❋❊✸✴✕✠✗✁❃✄❄ ✢✐æ÷➡➅✞✯❀✄❝✁Ô✆●✞❍✔■▲✳❃✄❄✭✐➆❩✁❆✞❏❛✆❑✞▲❨✲✔▼✗✁❃✄❄✮▲❖◆ q ✢✘●✞P♠❆✁❨✟▲❝✆➱✟Ó ✙❘◗✲✭✚✢✜➪➴➹➶Ñ➴✢✜✥❈✑Ð❉✪Ñ➚✢✜✢✣❺➴✢✜✎Ò Þ✛✚✢✪➪➴✫✜➪➴➹➶➪➴✢✜✿❈✑Ð❉✪➪➚✢✜✫✣❺➴✢✜Ò ❃✳❄✭✐①■✲✭✚❚❙❘❯✁❱✠❲ ❳ Þ✭✚✎➴✢✜✥★❨❙✠❯✠❱✁❲❳ ❃✸❄✄❅Ó ✙ ❨✲❩✚➷➼ ➴➹Ò❭❬✎➴✢✜✥✸Ò ➽ ❃❵❄ñ✆❪✝Þ✞❫✔❴✞❪✝✞❵■✟✭ ①■✁❨✲✞❛✁➫✞❜✄❝✒ì✟Ó ✙ ➊❵➋❩✲ ❷❹❻❡❞❖❢✁❃✄❄ ✚➪➼ ➴➹Ò✥❣➪➚✫✻✐❤❥✚ ➽✥❣➪➚✢✻➯➡❧❦✷✚✢❈✥❣Ñ➚✢✻➯✼ ①❨✲✁ó✄➻✷✚➪➼✑❣➪➚✢✻✐❤ ✚✤✣♠❣➪➚✢✻✐❤✐✚✫❇❭✦✢✪✥❣➪➚✫✻ ❝✳✵▲✥❃✁❄Ó ◗✲ ⑧⑩❷❹❻✵♥✤♦✫♣rq✮▲æ✔❍✆s✔t✞■✻✭ ❏❛❅ ❜✁✉ ❷❺❹Ñ❻❾❃✳❄✻▲✁✈✆✇❊✆✴➟✆➟☛①▼✻✭✐①✁③ ⑧⑩❷❺❹❻è✬é✆②④③✘⑤✆❛❨✞⑥✻î✥❆ â❵Ó⑧⑦✠⑨✻✭❶⑩✳✲ ♠ Ï ➚✥❬ ➚✢✪♦✷✳✤✣ÿ✄✭ ⑧⑩❷❹❻▲✘❞✳❢✞❷✾✳❸✞❹✮ë❖▲✟✭ ①✄✿✁➌▲ ❃✳❄✞❺✁❋❫✁❖✄P✔❻✆❼♠ Ó ✙ ➻❋✞❽ñ✮ò✠❾✳❿✆Þ✞➀✔➁✞➂✞➃✻✭ ❫✸✲✭✚✫➄❭✦➷Ï➢➘✬✦✫✸➪➴✢➅✥✪✥✪Ñ➚✢✪ Þ❩✚✢➄❭✦➷Ï➢➘✧✦✢✸➪➴✤➆✬✦✫✪✥✜✑Ð❉✜✥✸➇❤ ■✳❨✲➈✚ ✧✿❬✥✦➹Ò➪➴✢✻Ñ➴✢✪✥✪❶✴➉✚ ✧➹➶❭✦✫✪✥✜✑Ð❉✜✥✸✕✼ ➝➐✆➊✁➱❃✆❄◆✮þ✁ÿ✁➁✞➋✆✲✔➌✔➂✆➃ ▲❛✞➍✻✭✐❛■✆●✯✞➎✁➌✄➍✆➏✃★⑧❶⑩➢❷❺❹✑❻➂❖➃✮Ó ✙ ù❵➍■✳➐↕✆➙✳➑✄✯❩✲★Ð❉✮✎Ò ➽➪➴✢✜♦✷✬✤★➠➓➒✧➔ →✧➔↔➣ ô❁➦ ✢▲ ✚✓Ð❉✮✎Ò ➽➪➴✢✜➪➴✿❬➷➼ ➴ ❃✳❄✭ ➡❧↕✞➙ ❷❹❻▲➱✄✺❃✄❄Ó✗▼●✞➛✔➜✲✁➆✄Ô✆✷✸✤✆æ÷➡✘➝➁✁❅➱✁✺▲➃✁✲✟✭ ➞✥➟➠➟➢➡➥➤↔➦✫➦ ♥✢➧✫♥ ➔ →✢➨❭➔↔➩✫➨✧➔ ➒✢➨ ➦❉➟ ☞➭➫✿➯✢➲❭➳➠➲ ❹✏➵✍✤➸➻➺ ➤➼➟ ☞➽➫✥➯✫➲✧➳➠➲✬➾➚♥ ➩✢→❭➔ ➪☞➟
附录CTX程序设计 而且符合IAX的语法。本书所有的例子都用的是这个宏包,这就不需 要再解释相应的TX命令。 遵从这些以及与之类似的规则,有益于在将来即使EX内核进行了更新, 宏包也能继续保持有效的功能。 8C1.4TEX命令 为什么要避免用那些基本的TX命令呢?要想定义一条新命令,如果用 def就至少不会比用\ newcommand差,而且有时候还必须用前者。那么在将来 出现的X3中这条命令有可能被去掉吗?基本命令(原语)是所有LTX风 味得以建立的构造模块,因此它们一定会维持不变的。 而这并不是这样做的关键所在。基本TEX命令构成了所有格式的基石, 从而所有用它们直接定义的命令,其功能就永远与开发人员所期望的一样 然而,等价的X工具所能做的事情却会随着时间的发展而增多。例如, newcommand命令可以检测新定义的命令是否与已有命令发生冲突。而且 以后完全有可能会加进一种调试机制,它可以跟踪所有的重定义;而用\der 定义的命令则是排它的。而且现在的IEX2c中也有一种机制,它可以跟踪 所有中级和高级命令的文件输入 另外一个低层次程序开发人员容易误入歧途的例子的就是IX2g中牢 固命令处理的情形。有很多命令本质上是脆弱的,也就是说当把它们用做其 它命令的参数值时,会过早被解释,可如果给它们前缀、 protect,一般可以 使其变得牢固。在IIX2.09中,有几条脆弱命令在定义时采用的是一种牢 固方式,即定义中包含了、 protect,例如IlX的标志命令: Ndef \LaTexA\protect\polatexy def\polatext.H 真正的定义是在内部的\ palate中,并不是在外部的aex中。由于如此 的标志定义中有很多缺陷,因此有几个宏包引入了一个改进的版本。它们只 是重定义\LaTeκ,从而使得这条命令变成脆弱的了;因此聪明的方法是重定 义、 palate,这就利用了隐藏在IX2g后台的结果,但是命令却以一种完 全不同(而且更好)的方式变得牢固了。(顺便说一下,IIX标志的内部定 义已有了很大的改进。) 虽然我们希望只使用正式发布的IX命令,但也有很多情形,我们必须 用X内部命令或者TX基本命令。在目前阶段,为了得到一个工作稳定 的宏包,我们就必须考虑在将来可能会不兼容的风险。而且如果有等价的高 级命令可用,我们就不应冒这个风险 CTEXGuru, August 16, 1999
♥✫➶ ➩ ➹✁➘➷➴➮➬↔➱✑✃✫❐♠❒❡❮✁❰✳Ï✆Ð Ñ✘Ò✔Ó✆Ô ⑧⑩❷✓❹❻▲ÖÕP✮Ó✰éï➛✆❀▲➺❢✁➜✲ ▲✳●➆✁Ô✆✷×✤✻✭✐➆✁❫■✆✈ ❨✳❧✄➑✁➒②✁➃▲ ❷❹❻❾❃❵❄Ó ×ð✁➆❂ ➡✘❦✆✶✔Ø✁✵➛✻▲✠Ù✔Ú✭✰❀✆Û✔Ü✆✴✁❴✁❛✮⑥❩❒⑧⑩❷✓❹❻ →ÞÝ✞ß✔à♠✁áç✮✭ ✷✳✤✸◆✮✱❽✁❿◗✔â✄❀❊✮▲➂✻✱✄Ó ã✥ä✖åçæ✬åéè ✍✏✒♦✘✳✙ ✃✁ê✼❨➊✁➋✄✲✁❭❂✆ëé▲ ❷❹❻❾❃❵❄☛ì✞í✳❨✆❽✄➅✔✯❝✁➱✄ç❃✄❄✭✗➻❋✲ ✚✢★➪➴✫✮➩❫❖î✞P■✞➐ ③✲ï✚✢✜➪➴➹➶❺Ï ➚✤✣✥✣✬✦✫✜✥★➚ð✸✭ ①✄③✄❀✣ÿ✠ñ✞ò✄û✄ü✸✲➝✶✟Ó❭✳✼✄✴✄❴✄❛ ò➵❊▲ ⑧⑩❷❹❻→ ✢✗➆✄➱❃✄❄❀✄æ✟✱❖ó✆ô✞õ÷öí✠ëé❃✸❄ ➠❏✞Õ➦ ●➛✄❀ ⑧⑩❷❹❻❡✟ ø❆ ➡✪↕✞ù▲✠ú✔û✱✔ü✮✭✬ê✠ý✆➌✸➍✆❝➅✞➐✔þâ✆ÿ✸❦✁✄Ó ✂☎✄✝✆ÿ✝✞✄✝✟✡✠☞☛✍✌✏✎✝✑✓✒✕✔✡✖✘✗✚✙✜✛✣✢✥✤ú✝✦✓✧✎✡★✝✩✡✪✫☞✔✡✬✫✭ ✮✂✎✏★✝✯✡✰✝✱✡✲✝✳✡✴✏✵✫☎✢✝✤✓✭✷✶✝✸✓✹✻✺✡✼✝✽✡✾✏✿✝❀✡❁✫❂☎✎✝❃✡❄✫☞❅✟✒ ❆✂✭✷❇✡❈✓❊❉●❋❍✗✚✙■✛❑❏▼▲✏✎✓✹✠☞◆✡❖✏P✡◗✓❘☞❙✓❚✏❯✡☎❀✏❱✂✏❲✓❳ ✒✷❨✡❩✁✭ ❬❪❭❴❫❛❵❝❜❛❞❢❡■❡❤❣❪❭■✐ ✢☎✤✡❥❧❦♥♠✏♦✡♣✡✴✏✵✫☎✢✡✤✏✞✡q✝✾❧rs★✡✢✏✤✍❀✏t✡✉✏✈✓✒ ✂①✇✭ ❦③②✡④✝⑤✏★✍❥✁✹✻◗✍⑥✏⑦✝❅✡⑧✝⑨✡⑩✝❶✝❷✓✭❸✰✏❥❹❦✷❺✝❻✝✎✡★✫☎❼✝✴✝✵✓❽ ✂✯ ❬❪✐❾❫❪❿ ✴☎✵✓☎✢✏✤✡➀✏✞✍➁✏✰✓✏✒ ✂✏✇✡➂✑✁➃❉●❋➄✗✙✛➆➅➈➇✚➉✷➊✡★✏❅✡⑧✡❶✏❷✓✭✕✰①❥❹❦✷❺✏❻ ✎☎★➋➉☞➌✝➍✓➎✻➌✡✢✝✤✓☞➏✝➐✡➑✝➒✓✒ ➓✷➔❅✏→✍➣✏↔✡↕✏➙✍➛✏✿✡❀✝❁✓❂☞➜✓➝✻➞✡➒✏➟✡➠✫☎❨✏➡✫☎✺✡✞➃❉❋✗✙✛➆➅➈➇✚➉✷➢ ➤✢✡✤✝➥✡➦✁✥❖✏➧✫✒➆★✏➨❳✢✡✤✏✖✍➩✏➫✡✞✝➭✡➯✫✏✭➆➊✏✺✍✞✏➲✓➳✻➵✡✰✏✱✝✯✠✶ ✰✥✢✡✤✫☞➸✍➺✝➻✁❚✍✭➼◗✡➽✝➾✝➚✡➪✝➶✁✭➹❥✝❩✡➘✝➴✝✰✡✱✝➷✏➬ ❬❪➮■➱❾❞❪✃❴❫❤❜➈✃ ✭❐❅✝❒✡❥❹❦ ❮✶✡❰✡Ï✏➢➤ ✒➆✑Ð❉❋✗❝✙■✛Ñ➅❤Ò Ó❪ÔÕ➉☎✭✷★✡Ö✡×✏➭✡➯✏✢✡✤✝✑✡✴✏✵✓❚☎Ø✏✯✓Ù☞✞✡❅✡⑧✏➢ ➤✷Ú✪✁✭▼Û✻✴✏✵➋➉☞Ü✡Ý✧ ❬❪➮■➱❾❞❪✃❴❫❤❜➈✃ ✭Þ❨✏❩ß❉❋✗✚✙✜✛❸Ù✷à✡á✝✢✡✤✫â ❬❪✐❾❫❪❿❴❬❪ã❴❣❛ä❴❫❪å❴æ■❬❛➮■➱❴❞❪✃❴❫❴❜ç✃❴❬❛➮❴è■é❛❣❪✃❴❫❪ê❴ë ❬❪✐❾❫❪❿❴❬❪➮❴èìé■❣❪✃❴❫❪ê❾æîí■í■íïë ð✡ñÙ☞✴✝✵✡✞✝✑❧ò♥ó✓Ù ❬❛➮❴è■é■❣❪✃❾❫❪ê ➉☎✭ ✆✝ô✞✡✑➔ó✫Ù ❬❪ã❴❣❛ä❴❫❪å ➉☎✒✍õ♥ö✡❩✝÷ Ù✷à✡á✝✴✡✵✁➉✥★✏➨❳☎ø✓ù ✭☎ú☎÷✏★✍Ö✏→✡û✝Ü✓ü✻➒✧❅✝→✓ý☞⑦➋Ù☞þ✡✖✫✒✷✰✡✱✡ÿ ✞✥❼✡✴✝✵ ❬❪ã❴❣❛ä❴❫❪å ✭ ✮✁✍❮Ï✁✂✍×✏✢✝✤✍❰✦➭✍➯✫Ù ✧ ❽❸ú☎÷✁✄✆☎✡ÙÚ✁✝✞✡❼✝✴ ✵ ❬❪➮❴è■éì❣❪✃❴❫❪ê ✭✞✂✍✺✠✟✝✯ ✧✁✡☞☛✑✘❉●❋➄✗✚✙✛➆➅ ➇②✍✌✝Ù☞✎✡➘✫✭✑✏✍✞✏✢✝✤✡P❹❦♥❅✡⑧✝④ ⑤ô✓✒✕✔✇✠✖✘✗✚✙ ÙÚ✪✝❰✡Ï✏➢➤✏✧ ✒ ✔✜✛✣✢➲✏❅✘✤✁✭➃❉❋✗✙✛❑àá✫Ù✓ò✷ó✏✴ ✵✓r✕★✧➨✘✥✫Ù✡ý✻⑦✓✒ ✙ ✦❆✠✧✱✁★✝❄✝ÿ❮✯ ñ✪✡❀✁✩✫Ù ❉●❋➄✗✚✙✛❑✢▼✤✫✭✪✏✝➊✝★✡➨❳❖✝➧✫✭ ✧✱✁✫✁✬ ✯ ❉❋✗✚✙❤✛✕òó✏✢✡✤✘✭✠✮ ✗✚✙■✛✣✔✖✍✢✏✤✓✒✷✑✰✯❸➷✘✱✘✲✁✭✴✳ ✧Ï✘✵✡❅✏→✡❏✠✶✸✷✏✴ Ù✷û✡Ü✫✭ ✧✱✡✺✁✫✘✬✠✹✁✺✡✑✁✻✘✼✏❥➋✹☞◗ô✁✽➜✁Ù☞✾✓✿✝✒ ✇❩✝➘✡★✏❇✝❈✓Ù✡➎ ➌☎✢✍✤✏❥✝✯✓✭ ✧✱✏✺ô✁❀❂❁✂✏→✸✾❃✿✡✒ ❅❇❆❉❈❋❊✪●■❍❑❏▲❍◆▼P❖❘◗❚❙❯◗P❱❋❲❨❳❬❩❚▼❉❳ ❄ Ô❛Ô❪Ô
§C21TEX2程序设计语言 297 8C2TExX2g程序设计语言 本节描述的所有命令都是在BIEX2c中新增加的。虽然它们对类和宏包 文件而言,并不是很本质的,但它们确实扩展了类与宏包的用途,并保证使 用时的正确性 8C21文件识别 有三条命令用来测试类或宏包插入时所处的外部环境是否正确。其中第 条为 Needs TeXFormat{格式}[版本] 在类或宏包中的第一条语句就应该是所需要的TX格式声明。虽然已有很多 其它名称的格式,但只有名为LaTe2e的格式才认识这条声明。而所有其它 格式都会给出错误消息 1.1 Needs TeXFormat 此时,这条消息实际上就给出了提示信息 在ⅣIX2g中这条命令可能更有用的地方是它的可省参数值版本,该参 数的形式必须为表示发行日期的yyy/m/dd。如果一个宏包利用的功能是在 某一个版本中才引进的,那就必须给出这个日期,因此如果用的是ITEX2c 个更早的版本,就会显示出一条警告。例如,在IIX2c起初的测试版本中 并没有提供命令\ DeclareRobustcommand,只是在1994年6月1日正式发 行时才有了这条命令。因此使用了这条命令的宏包就应该以下面这条语句开 \Needs TeXFormat LaTeX2e][1994/06/01] 这里日期的形式是很重要的,必须有零和斜杠 这条声明并不是只限于用在类和宏包文件中,也可以在文档开头调用它 以保证用正确的IX处理该文档。然而调用的位置就必须是在导言中 下面两条命令用来标明类或宏包文件自身 Provides1ass{类}[版本 Prov idesPackage(宏包版本】在这两条命令中,版本都是由三 部分组成的:日期,版本号以及附加信息。日期与上面的格式相同,而版本号 可以是任何没有空格的标志,附加信息可以是有或没有空格的文本。例如 \ProvidesPackagetshortpag][1995/03/24 v1.4(F. Barnes)] IX只会检查其中的日期部分,也就是说如果使用了 usepackage命令并给 出了日期,那么IX就会对两处的日期进行比较。如果调用了\1 istol1es http://202.38.68.78/texguru Email:texguru@263.net
❭❬❪❴❫❛❵❝❜❡❞❣❢❑❤◆✐❥❵➇❑❦♠❧✁♥✘♦✁♣✓q ➅❛Ô❑r s✉t♠✈①✇ ②④③⑥⑤❴⑦⑨⑧⑩✇❷❶❹❸⑩❺❼❻❼❽❼❾➀❿ ✖♠➁✘➂✠➃✓Ù✻✎✡★✏✢✡✤✘➄✠➅✝✑ ❉❋✗✙✛➆➅❢➇❤➉✷♣❲⑥✁Ù✡✒ ✦❆✰✡✱✠➆✘➇✏➍✡û✝Ü ➏☎➐✘➈✭➊➉ô➅✡➨✝✖✡➩✁Ù✍✭➊✏✡✰✏✱✘➋✁➌✘➍✏❱✧➇✡✾✏û✝Ü✓Ù☎✯✝➠✁✭❥➉✠➎✘➏❮ ✯✡❚✍Ù ñ➋✘➐✫✒ ➑◆➒❨➓✜➔✉➓➣→ ↔❇↕✁➙✠➛ ★♠➜✝×✡✢✝✤✡✯✁✼✡♦✏⑩✁➇✘✭✝û✡Ü✁➝✡➒✫❚☞✎✡➥✫Ù➔ó✘➞✁➟✠➅✍qñ➋✫✒✷✶➋➉➡➠ ❅☎×✸✳ ➢❋➤ ❬➦➥✚❫■❫❛✐➨➧➈ä❴❫❪å➫➩❴❞❪➱❪❡✚❣❛✃■æ➯➭✘➲ ë⑨➳❴➵❇➸➻➺ ✑♠➇✸✭✏û✝Ü✓➉✝Ù♠➠✝❅✡×✁➼✠➽✍✺❀✁➾➅✝✎✘➚✠➪➋Ù ✗✚✙✜✛✣✩☎✪✁➶✓☎✝✒ ✦❆ rs★✡➨❳ ✶☎✰✸➹✠➘✫Ù☎✩✝✪✓✭➊✏✝ÿ✡★✁➹✘✳ ã❴❣❛ä❴❫❪åP➴■❫ Ù✕✩✡✪✁➷✘➬✁➮✘✂✏×✁➶✓☎✝✒ ✎✏★✍✶✏✰ ✩☎✪✸➄✏◗✝➴✓➱☞✃✡➞✁❐✘❒✁â ❮Ï❰❭■✐❴❫❪❿ÑÐç❭❴❫❪✐✡❜❢❞❪❭■✃■➱❴❞ìé✸➧❛❫❑Ò◆Ó❾❫❪❭❝❜❛❫îí Ô í Ô ❬Õ➥✚❫■❫❪✐➨➧ ä❴❫❪å◆➩❴❞❛➱❪❡✚❣❪✃ æ❪ã❴❣❪ä❴❫❛åP➴■❫■ë ÷✡❚✍✭➊✂✡×✁❐✠❒✸➌❃Ö☎➫✝✺✡➴✆➱ ✧Ø×✠Ù✘Ú❒✓✒ ✑ ❉❋✗✚✙✜✛➆➅ ➇ ➉✴✂✍×✝✢✏✤✍❥✫✹✖★✝✯✫Ù♠ÛÚ➅✡✰✫Ù✻❥✁Ü✡➸✝➺✝➻ ➵✁➸ ✭ ➾➸ ➺✍Ù✻➧✝✪✸✫✠✬✁✳✸ÝÙ❀✁Þàß✕❃✁Ùâá◆á➫á◆áPã❡■❡ã ✐■✐ ✒❤❩✍➘✝❅✝→✝û✝Ü✸✟✝✯✁Ù✥✸✫✹☞➅✝✑ ä❅✝→✝þ✡✖✫➉☞➷➋ü✻⑦✫Ù✡✭æå✝✺✠✫✸✬✝➴✆➱☞✂✝→❂ß♥❃✫✭❑ú☎÷✝❩✝➘✍✯✫Ù☞➅ ❉❋➄✗✚✙✜✛➆➅❢➇❛❅ →✖➾✓Ù☞þ✡✖✁✭➆✺✏◗✘çÙ➱☎❅✏×✘è✘é✁✒➆❨✏❩✓✭✷✑Ð❉❋✗✚✙❤✛✷➅ ➇Õê❇ëÙ☎♦✏⑩✡þ✡✖✁➉ ➉♠ì✡★×✁í✢✡✤ ❬➦î✚❫❤❜❛éì❣❪➱❴❫➦ï✚❞❯ð◆Ó➨➧➈✃Pñì❞❢❡■❡❾❣❪❭■✐ ✭ ÿ✠➅✡✑ ❳ Ô❪ÔÕòôó ❩➡õö❳ ß ñ✪✝❀ Þ✡❚Ø➷✏★✧✂✝×✡✢✝✤✓✒☎ú✻÷❮✯ ✧✂✝×✡✢✝✤✓Ù✻û✡Ü✏✺❀✘➾ ❦➊✤✁÷✘✂✝×✠➼✸➽✏✿ øâ ❬➦➥❤❫■❫❪✐➨➧➈ä❾❫❪å◆➩❴❞❪➱❛❡✚❣❪✃❴æ❪ã❾❣❢ä❴❫❛åP➴■❫❛ë⑨➳ Ôúù◆ùÕû ã◆ü➫ý◆ã❑ü Ô ➺ ✂♠þ❼ßs❃✫Ù☎➧✝✪✘➅✝➨✡❼✠➪✫Ù✡✭➊✫✸✬✏★✘ÿ✝➍✁✄✂✆☎ ✂✥×✁➶✆☎☞➉ô➅✍ÿ✞✝✻ö✯✄✟✁➇✝➍✍ûÜ✍➏✝➐✫➉ ✭ ➊✏❥❦✠✟✍➏✄✡☞☛ø⑨✄✌✄✍✏✎ ✑➎✸➏✒✌ ñ➋✫Ù✔✓✖✕✘✗✚✙✜✛✣✢✥✤➾✒✦✡✆☎★✧✄✩✒✪✫✌✆✬✮✭✄✯✁✰✄✱✒✲✫✳✒✟✞✴✮✵✷✶✄☎ ✸✮✹✄✺✁✻✄✼✁✽✌✁✾✒✿✞❀✮❁✄❂✁❃✄❄✦✒❅❇❆❉❈✞❊ ❋❍● ■❑❏▼▲❖◆◗P❙❘❯❚❖❱❳❲❩❨▼❬▼❭❳❲▼❲❩❪❴❫❛❵❝❜❡❞✥❢❤❣ ❋❍● ■❑❏▼▲❖◆◗P❙❘❯❚❖❱❳❲✐❏❖❭❳❥❯❦✚❭◗❧▼❱▼❪♥♠✷♦♣❵q❜♥❞r❢❛❣✠s✮t✺✄✻✫✼✒✽✶✫✎ ❞✁❢❇✉✳✇✈✠① ②✥③✁④✄⑤✬ ❊⑦⑥✠⑧✎❴⑨✄⑩✷❶ ✑✠❷❹❸❻❺✄❼✫❽✆❾❿⑥✠⑧✄➀✄➁✁✹✬➃➂✫➄✒➅✞➆✫✎❴✩✄⑨✁⑩✞❶ ➇✑✳✒➈✄➉✁➊✄➋✁➌✄➂✷✬❻✿✄➍✷✎ ❸✥❺✒❼✁❽➇ ✑✳✒➋✫❂✒➊✄➋✁➌✁➂✞✬✦⑩❾★➎✄➏ ✎ ■❑❏➐▲❖◆❑P❙❘❯❚➑❱❳❲➒❏❖❭❳❥✘❦✚❭❑❧❖❱▼❪❖❲❯➓❖◆◗▲▼➔▼→➐❭❑❧❖❵❝❜✘➣↕↔▼↔▼➙➐➛▼➜❑➝➐➛▼➞❑➟✥P➠➣✜➡➢➟♣➤➦➥♥➡➨➧❖❭❑▲▼➩❖❱❖❲✚➫➭❣ ✓✕✗✙✛✣➯r➲✄➳✄➵✄➸❹✶✒✬ ⑥➺⑧②✄③✎➼➻✄✰✒✳✫➽➏✄➾✄➚✄➪✷➶ ■❑➹➘❲◗❱◗→❖❭❳❥❯❦✚❭◗❧❖❱ ✼✥✽✄➴✄➷ ➬➶✞⑥✠⑧✎➐➮✄➱❛✓✃✕↕✗✚✙✜✛✣✰✥➲✄❐✺✢✞✬ ⑥✠⑧✫❒✄❮Ï❰✠Ð✞❾➐➏✫➾✪➪✞➶ ■▼❬➘❘◗❲➒➔▼Ñ❙❘➒❬➐❱❳❲ ✎ Ò▼ÓÔÓ❍Õ➠Ö✃×◗×◗Ø❑Ù◗Ø❳Ú Û❑Ü❖Ú✃Ý◗Ü❳Ú Þ❑Ü◗×❯ÓÔß➭à➐á❑â❖ãÔâ ✙åä➺æ❩çéè Ö✜ÓÔß↕à▼á◗â❳ãÔâ✚êëØ◗Ý❑Û❖Ú ì❖ß↕Ó