没有合适的资源?快使用搜索试试~ 我知道了~
124理论计算机科学电子笔记65 No.3(2002)网址:http://www.elsevier.nl/locate/entcs/volume65.html15页教训书目计划的再实施Jean-Michel HufflenLIFC,弗朗什-孔泰大学格雷路16号25030 BESANDON CEDEX -法国摘要本文报告了与LATEX工作流程相关的书目程序BIBTEX的再实施经验。首先,我们提出了新的功能,我们的新版本称为MlBIB的 TE X相比,顺便说一下,我们展示了检索数据的工具,即书目文件是必要的。然后,从一个更相关的语言描述的角度来看,我们解释了为什么我们必须形式化的精确语法的形式主义所使用的BIB TEX,我们如何利用这种方法,以及我们如何重新实现最终的程序。0介绍目前,TEX[22]和LATEX[23]指令处理器在学术界被广泛使用阅读这篇文章并不需要对TEX或LATEX有很多了解,但为了使我们的目的准确,我们回顾了一些要点。 TEX和LATEX(由TEX制作而成)不是所见即所得2。首先,用户键入一个源文件,然后LATEX(或TEX3)处理这个源文件,并生成一个输出文件,该文件可以显示在屏幕上或在激光打印机上打印。在以L A T E X开头的文章中引用的参考文献可以用标识符表示,例如:引用{moorcock 1971}- 从语法的角度来看,LATEX命令是用“\“开头的1 电子邮件地址:hufflen@lifc.univ-fcomte.fr2 “ 此表达式适用于交互式字处理程序,例如微软Word.3TEX提供了一个强大的框架来很好地格式化文本,为了适合使用,这个框架的定义需要在一个格式中进行组织。 这种格式是LATEX。当TEX被引用为一个word处理器时,这是对“普通T E X”格式的语言滥用·c 2002年由ElsevierScienceB出版。 诉 操作访问根据C CB Y-NC-N D许可证进行。赫夫伦125与LATEX相关,用于构建文章的“参考文献”部分,它使用包含条目的@BOOK{moorcock1971,作者= {Michael Moorcock},标题={The Sleeping Sorceress},出版者={New English Library},注= {1977年改名年份= 1971}并生成包含贯穿文章引用的条目的文件。当LATEX再次运行时,这个生成的文件将作为整篇文章的一部分进行处理,引用将如下所示:[1] 迈克尔·莫考克《沉睡的女巫》新英语图书馆,1971年9月. 1977年改名在这里和本文的参考书目中,参考文献都标有编号。关于BIB TE X使用的参考书目样式4,其他选择是可能的。我们重新实现的BIB TE X旨在将多语言功能付诸实践。LATEX).这是通过分组5来完成的,分组5通过附加功能来增加LATEX的表达能力。更确切地说,此外,用户可以在内部混合使用多种语言。同样的文件。让我们回到BIB TE X:可以肯定的是,BIB TE X考虑到这些因素,我们在2000年10月开始了一个新的实现,即所谓的MlBIB TE X(第一个版本,在技术上记录在[16]中,现在可用。它已经在[18]中被非正式地介绍过了,在[17]中更正式地介绍过了。在接下来的文章中,我们将通过重点关注以下内容来报告重新实施的经验:• 第一节我们选择的原因--与其他人相比• 需要精确描述MlBIB TE X• 在第3节中,我们讨论了重新实现的编程语言的选择,以及我们采用的方法。我们的结论讨论了我们工作的现状和未来。4例如,本文使用的参考书目样式是entcs.bst。[5]这个概念出现在最近的版本LATEX 2ε [23]中。赫夫伦1261多语制和BIB TE X1.1一般特征不熟悉的读者可以通过查看介绍中给出的BIB TE X条目的示例来猜测§0),大括号用作条目字段值的分隔符。它们也可以用来包围特殊字符。举例来说{The{S}tephen {K}ing Companion}告诉BIB TE X“{The最后方案}如果此字段要大写为书名,则显示为相反,如果此字段输入为:{The最终方案}“final”和“programme”这两个词永远不会大写。除此之外,BIB TE X还知道月份名称的缩写6:jan,feb,。. .当“Ref-eXtreme”部分被构建时\bblfeb,.. . - 可以在特定语言中扩展(默认局域网-语言为英语),这取决于用户事实上,一些参考书目BIB TE X可用的样式允许使用几个缩写和关键字,例如或也有专门针对某些特定语言的书目样式--有些可以在CTAN8的网站上找到--但从我们的观点来看,它们并不是真正的多语言。1.2什么是多语种书目?在我们展示由MlBIB TE X提供的多语言扩展之前,我们将深入探讨多语言书目的可能需求。也就是说,我们表明,“多语种书目”的直观概念必须精确地形式化。事实上,多语种书目有两种方法。• 根据第一种办法,与参考文献有关的信息应使用相应文件的语文表述。例如,发布月份应为. . 粗略地说,要放入BIB TE X条目字段中的6这些缩写在参考书目样式语言中被实现为宏[27]。7特别是,makebst程序[9]构建的书目样式可以与babel包接口工作。8完整的TE XA rchive网络:参见网页http://www.tug.org,http://ctan.loria.fr或http://www.dante.de/software/ctan,以获得有关此存储库及其镜像站点的更多详细信息。赫夫伦127打印在文件上。从“哲学”的在MIBTEX中,这种方法被称为参考依赖。• 对于一部印刷作品,第二种方法是尽可能地使用其语言作为所有参考书目的信息。因此,与说明第一种方法的例子相比,如果作品是用英语写的,则所有的发行月份都应该用英语表示。同样,它们应以法文表达(分别为:德语),如果作品是用法语写的(German). 但是,如果这种方法是系统性的,则除日期之外的某些信息字段应被翻译后的表格所取代。例如,让我们考虑一下导言中关于一本科幻小说的条目。该参考文献的格式可以与英文参考文献中的格式相同,但在法文参考文献中,NOTE字段的值应替换为更适合讲法语的人的注释,例如:法语翻译标题:《沉睡的魔法》。在MIBTEX中,这种方法被称为文档依赖9。从我们的观点来看,这两种方法之间的选择并不一定要由像BIB TE X这样的书目程序的设计者来做出这种选择是出于个人的考虑,或者是编辑或出版商的要求。这就是为什么我们认为一个多语种书目计划应该能够把这两种方法付诸行动。为此,我们考虑以下术语:• 条目• 参考文献如果参考书目的每一项都应该用其自己的语言表达,则由条目或者,如果整个文献目录使用的是整个文献所用的语言,则使用该语言(依赖于文献的方法)。如果一本书是由几个章节组成的,可能是用不同的语言写的,并且如果每一章都有自己的“参考文献”部分,那么这种语言可能是一个章节的语言参考文献语言的这种约定1.3讨论现在我们介绍我们的多语言扩展。如下文所述,它们会导致一些轻微的兼容性损失为了证明我们的方法是理性的-9例如,本文的英文,但以法文或德文撰写的参考文献标题除外。··赫夫伦128我们将它与其他可能做出的选择进行比较引用依赖的方法可以在不改变条目字段值的情况下付诸实施,只需添加一个新字段LANGUAGE10,其默认值为english。依赖于文档的方法可以通过牛津软件包[4]来实现,在这个意义上,这个软件包允许用户为书目选择一 种 全 局 语 言 。 根 据 所 使 用 的 语 言 , 可 以 使 用 源 自 babel 包 的\iflanguage命令来实现在几个文本中的选择,该\iflanguage命令被放在字段值中:注释={\iflanguage{french}{%Titre de la traduction française:《沉睡的女巫》{%\iflanguage{german}{%Titel der deutschen ubersetzung:“Der verzauberte Turm{%1977年《消失的塔》(The Vanishing Tower)只有当相应的引用属于使用babel包的文档的参考书目时,这才有效,其中至少包含法语和德语。此外,babel并不是用这些语言编写的唯一方法:还有一些特别的软件包法语[12]和德语[30]。因此,如果书目文件在几个人之间共享,这种另一种解决方案可能包括名称以语言名称作为后缀的字段,例如:NOTE-english = {Retitled注释-德语= {Titel der deutschenÜbersetzung:...},...首先,“语言名称”的概念必须精确;如上所述,用特定语言编写L A T E X文档可能存在多种方法。第二,如果参考文献是用所提到的语言以外的语言编写的,我们如何具体说明该怎么做在上面的例子中,NOTE字段的值可以被替换为空字符串而不会丢失大量信息,但是让我们考虑一个正确的名称,其拼写取决于语言,因为这个名称是从使用非拉丁字母表的语言音译而来的:俄罗斯人= {???????????????????},德语= {Dmitrij Dmitrijevitsch Schostakowitsch},法语={Dmitri Dmitrievitch Chostakovich},德语= {DmitrijDmitrijevitsch Schostakowitsch},...10这个字段被mlbib包[25]使用,它部分地将这种方法付诸行动。[11]例如,可以通过使用特定的french、frenchle或frenchpropack-ages来用法语写作[12]。babel包[11]的french或frenchb选项也是合适的。赫夫伦129在这种情况下,我们显然需要一个默认值,并且我们必须知道用于处理此默认值的语言。实际上,我们必须定义两种语法,这取决于是否需要默认值。至于另一点,我们可能不得不转换到另一种语言,以表达与其他印刷惯例的一致性,特别是关于外国词的正确连字。BIBTEX字段的值的子集条目的语言,例如:乔治·比姆(George Beahm)Title = {Tout sur Stephen King},注= {Traduit de...因此,我们认为,如果将与语言相关的注释放在字段值中,并且使用在大多数字段值中几乎不会出现的“普通”字符作为分隔符,则会更好。我们选择方括号-语言变更由“[...]:idf“,其中“idf“是以下内容的无歧义前缀:• LATEX的多语言包(法语、德语、... )的方式• 或babel包的选项(法语、法语b、德语、ngerman等)这种对无歧义前缀的选择允许语言标识符获得对处理语言13的若干方式的访问。举例来说@BOOK{beahm1996,乔治·比姆(George Beahm)Title = {Tout sur [Stephen King]:chinese},...,语言=法语}如果相应参考文献的当前语言为法语,则标题将以等同于以下方式指定:Tout sur \foreignlanguage{english}{Stephen King}“如果为文档加载了babel包,并且至少包含了英语选项,则会出现这种情况。如果未加载此选项,MlBIB TE X将发出警告消息,并且可能会不正确地处理相应的单词序列。换句话说,英文选项最好是加载,但最终用户不必这样做。当法语由一个特别的软件包处理时,还可以进行其他调整。粗略地说,我们尽可能地考虑了有关语言的注释,但它们并不是对最终用户的额外限制。没有默认值的语言切换专门用于详细说明,[12]在“传统”排版中解释,解释。. . [8,§ 5.128[13]例如,设置为法语的语言标识符适用于脚注11中给出的所有方式赫夫伦130∈≤≤一种特定的语言,但如果没有可用的翻译,可以省略。它们表示为:[string0]!idf0[string1]!idf1.[stringn]!以色列国防军(一)其中字符串 0、字符串 1、...,stringn(nN)是字符串,并且idf0,idf1,.、idfn是成对不同的语言标识符。 如果存在i(0in)使得引用否则,表达式(1)被替换为空字符串。让我们考虑一下导言中所给条目的@BOOK{moorcock1971,作者= {Michael Moorcock},标题={The Sleeping Sorceress},出版者={New English Library},[1977年]《消失的塔》英语[Titre de la traduction française:...]啊!法国[Titel der deutschen Übersetzung:.]啊!德语},月=九月,年=1971年,语言= English}根据依赖于引用的方法,相应的引用将如下所示:[1] 迈克尔·莫考克《沉睡的女巫》新英语图书馆,1971年9月. 1977年改名不管文档的语言是什么。下面是根据依赖于文档的方法生成的参考文件:• 法文文件[1] 迈克尔·莫考克 新英语图书馆,1971年9月.法语翻译标题:《沉睡的魔法》。• 对于俄语文档(注意俄语月份名称和空注释):[1]迈克尔·莫考克《沉睡的女巫》新英语图书馆,?-?你知道吗?一九七一年还有另一种语言转换,即所谓的默认语言转换。它们专门用于必须使用的信息,可能使用参考文献以外的另一种语言,[string0]*idf0[string1]*idf1.[字符串n]*idfn(二)14这里,赫夫伦131≤≤≤≤其中n、字符串0、字符串1、.,stringn,idf0,idf1,.、idfn具有与表达式(1)中相同的含义。• 如果存在i(0 in)使得引用的语言等于idf i,表达式(2)产生字符串i -也就是说,具有“*“的开关的行为与具有“!” in this• 如果存在i(0我n),使得idfi等于LANGUAGE字段,表达式(2)产生字符串i;• 否则,警告用户,并且表达式(2)被替换为空字符串。下面是这样一个开关的例子:@BOOK{shostakovich1959a,Dmitri Shostakovich = {[Dmitri Shostakovich] *English [Dmitri Chostakovitch] *French [Dmitri Schostakowitsch] *German...},...语言= English}此名称将根据其法语(分别)显示。德国)形式内的法国式(resp。德语)参考,英语形式将用于其他方面。另一方面,将注释放在字段值中允许用户编写一次公共部分。对于字段的后缀名,我们可以这样写:地址-英语= {Erlangen,Germany},地址-法语={Erlangen,Allemagne},地址-德语={Erlangen,Deutschland}我们的约定强调共同的和依赖语言的部分:地址= {Erlangen,[德国] * chinese[Allemagne] * french[Deutschland] * german}1.4再工程数据如上所述,我们可以添加额外的字段,但我们更喜欢丰富语法。但是MlBIBTE X与“旧”B IB T E X不是100%兼容的正如我们上面提到的,使用BIB TE X15中字段值中的方括号应该很少发生;另一方面,有大量的参考书目文件和一些语法更改这可能会给一些用户带来一些错误。因此,我们决定开发工具来简化reegram书目(.bib)文件。check-mlbibtex-syntax这个程序可以被看作是[5]中描述的一些工具的扩展,特别是bibcheck16。如果用户不使用这些工具,[15]在MlB IB T E X中有一个[17]第10段。16http://www.math.utah.edu/~beebe/software/bibcheck/bibcheck.html。赫夫伦132仅“动态地”,也就是说,当在LATEX文件中引用条目时,警告它们条目内的语法错误。这个程序检查可用于MlBIB TE X的书目文件的语法;它还检查MONTH字段的值是否由BIBTE X月份名称的缩写表示。所以这个工具可以用于其他目的比reeingleg。bibtex-to-mlbibtex此工具将“旧”B IB T E X的书目文件转换此外,只要月份名称没有缩写,它就会尝试猜测BIB TE X缩写,并要求最终用户确认。这些工具是交互式的,使用GNU17Emacs Lisp实现,并基于我们用bison构建的MlBIB TE X解析器。从技术角度来看,所有这些工具都在[20]中描述,计划于2002年夏季结束实施。更一般地说,我们知道许多工具都是基于BIB TE X18的。我们认为,对我们的句法惯例的精确了解将使我们更容易适应如果这些工具的开发者愿意的话,可以将这些工具的语法修改为新的MlBIBTE X2描述字段值2.1为什么要进行正式研究?据我们所知,没有在BIB TE X的文档[28]或作为L A T E X手册[23,13]的一部分中给出了编写条目的说明,www.cwi.nl/~mdejonge/grammar-base/bibtex.0/我们必须研究这些新公约是否不会引起冲突。例如,我们的多语言规范必须与大写规范共存,因此以下表达式:• {{[Firestarter] * english [Charlie] * french}}• {[{Firestarter}] * 中文[{Charlie}] * 法文}应该是等效的,也就是说,由MlBIB TE X以相同的方式处理同样,我们必须指定如何处理开关,标识符出现多次。在这种情况下,我们决定第二次发生17“G NU's Not U nix”的递归首字母缩写这个项目旨在开发自由软件。 有关更多详细信息,请参阅网页http://www.gnu.org。18例如,bib2bib和bibtex2html,在[10]中描述基于BIB TE X的工具列表如下http://www.ecst.csuchico.edu/~jacobsd/bib/formats/bibtex.html,main-由丹娜·雅各布森(Danna Jacobsen)赫夫伦133一个语言标识符打开另一个开关。举例来说@BOOK{king1978f,演员= {Stephen~Edwin King},头衔= {夜班},【20篇短篇小说集】* 中文[Recueil de 20~nouvelles.]* 法语[法语翻译标题:...]* 法语[Titel der deutschen\"{U}bersetzung:...]* 德语},...语言= English}规定:• “Collection of 20 short stories” in• “20个新剧集。Titre de la traduction française:.”法语;• 20篇短篇小说集Titel der deutschen ubersetzung:.”用德语写的第一个开关在“french“第一次出现时结束,因此,默认值-这些约定已经通过重写规则形式化:图1给出了一个关于实现,我们采用了逆向工程的方法,在这个意义上,我们推导出BIB TE X实际上,BIBTEX的扫描器和解析器此外,词汇和句法分析紧密地嵌套在这个程序(应该记得,第一个版本出现在20世纪80年代)。此外,我们还了解了每个ASCII字符在词法分析中的精确状态,如果我们想再次扩展语法,以便能够处理非拉丁字母的字符,克-MlBIB TE X的解析器使用的mar由LALR(1)-grammar 19给出,由bison处理,bisonMlBIB TE X所有这些语法规则都在[17]中给出此外,我们还通过将我们的工作与bibclean的语法进行比较而获益匪浅工具[5]。2.2语言标识符当安装MlBIB TE X时,语言名称的无歧义前缀的概念由所有多语言包的字典实现,这些包是专用的,并且babel包的所有选项。这个字典被组织成一个自动识别非歧义前缀的机器。[19]不熟悉编译相关术语的读者可以参考[1]了解更多细节。赫夫伦134字符串0* [idf0]序列字符串n* [idfn]* [idf0]*-switch-tree更多文本string可选序列* [idfn]字符串* [idf]字符串n* [idfn]序列* [idf0]序列* [idfn]*-switch-tree更多文本✁❈NT SNTS✜❧✜ ❧✜❧✂◗◗✜❧✜ ❧✂◗✜ ❧✡✡❏❏.✂✂❆❆ −→✱❧- 是的✁❈❧.✡✡❏❏..✂✂❆❆ −→✡✡❏❏.✂✂❆❆如果idf/∈ {idf0,..., idfn}如果idf∈ {idf0,., idfn}图1.重写规则以指定开关的示例。3如何重新实现BIB TE X?3.1选择编程语言为了能够在不断进步中掌握程序,我们选择从头开始开发MlBIBTE X,即使我们承认我们经常查阅当前BIB TE X的源文件以获得尽可能多的经验,根据我们的逆向工程方法。关于我们的重新实现,我们最终决定使用C编程语言编写它[21]。我们现在解释为什么。现在人们承认,效率不是程序的唯一品质,可读性和易于维护也是品质。然而,我们承认,当TE X本身被重新实施为一个新系统时,我们受到了影响20,100%兼容TE X [33]。使用面向对象技术,并已使用Java编程,给出了这些选择的原因20新排版系统*-switch-tree序列字符串* [idf]更多文本字符串0字符串0* [idf0]*-switch-tree字符串* [idf]更多文本序列字符串0stringnstring* [idf]*-switch-tree序列赫夫伦135NTSNTS在[38]中。 但正如该团队报告的那样[36],这个新程序比TE X慢100多倍。所以,我们对TE X和T E X之间的差距感到非常惊讶,. 一方面,TE X和BIB TE X都是单体程序,难度大延伸(特别是TE X21)。另一方面,我们希望对性能保持可信度,我们的原型可以与“老”B IB T E X相媲美因此,我们选择C是因为它在许多系统上都是高效且广泛可用的。此外,这个选择允许我们访问许多开发工具,特别是GNU工具,如第2节中提到的bison。此外,导入其他语言的C程序通常也是可能的22。但由于C不是一种真正的模块化编程语言,我们强调了命名变量和函数的精确术语。这个术语旨在提供一个模块化的分解,根据我们的逆向工程方法,从我们对“旧”B IB T E X的源文件和文档的研究中提取出来已经使用基于前置条件和后置条件的形式主义来指定MIBTEX的主要功能的效果下面是我们格式的框架:type- name publicint findDuplicate(intfindDuplicate){/*·对论点的约束或附加假设。• 函数的参数和结果之间的关系• 副作用的说明。“旧”B IB T E X中等效函数的名称一模一样*/...}3.2我们的战略我们认为,我们的建议是符合人体工程学,用户友好,并不需要很大的变化时,最终用户uppate他们的文件,但我们没有实际的反馈。所以我们的目标是完全能够进行一些实验。. . 和其他实验。我们采用了一种逐步的方法,如果其他句法特征似乎更可取,那么我们能够改变我们的约定是很重要的这是对我们的文法进行形式描述的另一个论证。4结论正如本文所提到的,我们对BIB TE X的重新实现符合重新工程活动,因为它的特性在[35,第34章]和[26]中定义[21]根据Adobe的可移植文件格式,当TE X被改编成pdfTE X以产生.pdf文件时,这一点就被指出了见[14],见[15],见[16]。TE X及其继任者的状态22我们将此功能用于第1.4节中描述的工具·赫夫伦136• 逆向工程(参见[2]),以便从重新设计中开发新程序;• 重新设计数据,以更新旧数据,避免惯性,这是众所周知的有一些关于BIB TE X的批评,因为人们认为这个工具达到了一定的局限性[5,§ 2]。有一些建议可以取代它[31]:Tib [3],ConTE Xt PublicationModule [15],但它们不提供多语言功能。BIB TE X存在一个改编,因为它的圣经文件外观接近BIB TE X多语言功能,或者23.此外,BIB TE X(1.0)的新版本也已由其作者[29]规划,但尚未问世。据我们所知,MlBIB TE X是BIB TE X的第一个完全重写:开发它对我们来说是一个真正的挑战。此外,我们个人经常错过这种多语言工具。在未来的版本中,我们计划扩展书目样式中使用的语言[27],第一步将是这种语言的正式规范,这还没有完成。我们还计划未来的版本基于Unicode[37],这使得MlBIB TE X能够处理世界上所有我们还在XML24的框架内给出了多语言书目的定义-因此该定义不需要与以前的程序兼容-并使用XSL24派生MlBIB TE X文件[19]。但是,我们认为我们采取了一种理性的做法,希望我们的产品应该具有适应性。 我们希望它成为“LATEXlegacy”最具适应性的程序之一[32]。确认我非常感谢匿名审稿人:他们的批评使我能够改进本文的第一个版本。非常感谢彼得格林菲尔德,谁校对第二个版本.引用[1] Aho,A.五、R. Sethi和J.D. Ullman,[2] Aiken,P.,A. Munitz和R.陈文辉,《逆向工程数据需求》,北京大学出版社,1994。23此外,还需要做大量工作来更新书目样式文件,与CAMEL citator兼容。24有关详细介绍,请参阅http://webcast.cern.ch/Projects/WebUniversity/AcademicTraining/Goossens/。赫夫伦137NTS[3] Alexander,J.C.的方法,CTAN:biblios/tib/tibdoc.tex.[4] Antman,P.,“Oxford Style Package,”[5] Beebe,N.H. F.、Bibliography prettyprinting and syntax checking,TUG boat14(1993),pp.395-419[6] Bennett,F.G.,Jr,http://www.loria.fr/[7] Braams,J.,[8] 《芝加哥风格手册》,芝加哥大学出版社(1993年),第14版的风格手册修订和扩展。[9] Dal y,P. W.,[10] 菲利亚特J. - Ch.和C.马歇,“B一译者将BIB TE X书目转换为HTML”,http://www.loria.fr/services/tex/[11] Flipo,D.,“http://www.tex.ac。UK(2001),版本v1.5e。[12] Gaulle,B.,[13] Goossens,M., F. Mittelbach和A. Samarin,[14] 哈根,H.,该项目的现状,Die TE Xnische Komödie1(2001),pp. 36比53[15] Hoekwater,T.,The bibliographic module for Context,in:EuroTE X 2001,Kerkrade(the Netherlands),2001,pp.61比73[16] Hufflen,J.- M.,http://lifc.univ-fcomte.fr/“MlB~hufflen/mlbibtex/mlbibtex/(2001).[17] Hufflen,J.- M.,MIBTE X:BIBTE X的新实现,在:EuroTE X 2001中,Kerkrade,荷兰,2001,pp.74比94[18] Hufflen,J.-M.,Vers une extension multilingue de BIBTE X,Cahiers GUTenberg39(2001),pp. 23比38[19] Hufflen,J.- M.,书目程序的多语言功能:从XML到MlBIBTE X,见:EuroTE X2002,Bachotek,波兰,2002年,第100页。46比59赫夫伦138NTSNTS[20] Hufflen , J.-M. , Software rund um MlBIBTE X ( 2002 ) , DANTE 2002 ,Erlangen.我们在库尔泽尔舍伊宁。[21] 克尼汉湾W. 和D.M. Ritchie,[22] Knuth,D. E、“Computers Vol. A:The TE Xbook,[23] 兰波特湖,“LATEX. 文件准备系统。《用户[24] 莱文,J.,T. Mason和D.Brown,[25] Matiaske,W.,“Multilinguale Zitierformate,”[26] 米勒,H。W.,[27] Patashnik,O.,[28] Patashnik,O.,[29] Patashnik,O.BIBTE X 1.0,Tugboat15(1994),pp.269-273。[30] Raichle,B.,[31] Rhead,D.,“操作要求”(?) 以支持LATEX3,技术报告L3-005,L A T E X 3(1993)中的参考文献。[32] 罗维埃,C。一、 LATEXL E GAC Y。2.09以及所有这些,在:AnnualACMSymposiumonPrinciples of Distributed Computing(2001),pp.17比25[33] Skoupestival,K.,软件质量和NT S,GUST16(2001),pp.41比49[34] Sojka,P.,H. T. Thàn和J. Zlatuška,TE X2PDF杂技的乐趣与DVI格式的替代品,TUG船17(1996),pp. 244-251[35] 萨默维尔岛,“Software Engineering,” Addison-Wesley Publishing Company,1996, 5th[36] Taylor,P., J. Zlatuška和K. Skoupellow,The project:from conception toimplementation,Cahiers GUTenberg3553比77[37] Unicode标准3.0版,Addison-Wesley(2000)。[38] Zlatuška,J.,:Programming languages and paradigms,in:EuroTE X1999,Heidelberg(Germany),1999,pp. 241-245
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++多态实现机制详解:虚函数与早期绑定
- Java多线程与异常处理详解
- 校园导游系统:无向图实现最短路径探索
- SQL2005彻底删除指南:避免重装失败
- GTD时间管理法:提升效率与组织生活的关键
- Python进制转换全攻略:从10进制到16进制
- 商丘物流业区位优势探究:发展战略与机遇
- C语言实训:简单计算器程序设计
- Oracle SQL命令大全:用户管理、权限操作与查询
- Struts2配置详解与示例
- C#编程规范与最佳实践
- C语言面试常见问题解析
- 超声波测距技术详解:电路与程序设计
- 反激开关电源设计:UC3844与TL431优化稳压
- Cisco路由器配置全攻略
- SQLServer 2005 CTE递归教程:创建员工层级结构
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功