`
ldb19890624
  • 浏览: 243587 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

LaTeX2e类和包的设计(一)

 
阅读更多
LaTeX2e类和包的设计(一)
一、类和包版本介绍
LaTeX2.09对用户书写class和package提供的支持很少,用户不得不使用底层命令。
LaTeX2e提供了许多用于组织package文件的高级命令,同时在已有class和package的基础上建立另一个class或package也容易多了。
二、类和包的书写
1)使用doc和docstrip工具
如果要书写的LaTeX类或包比较大,可考虑使用随LaTeX发布的doc软件。
可由docstrip软件加以处理,产生.cls和.sty文件。
doc软件可自动产生定义和命令使用索引以及更新目录列表。-->对大规模TeX资源维护的文档建立有用。
2)文档类和包
确定class和package的原则:如果这些命令可以用于所有的文档类,则把它处理成一个package,否则处理成一个class。
文档class分类:1)独立存在,如:article、report;2)不能独立存在,是别的文档类的扩展或变种。
3)LaTeX命令:
1、author命令:文档作者使用,由小写字母组成。如:/section、/emph、/times等;
2、类和包书写命令:大写开头,大小写混合。如:/InputIfFileExists;
3、内部命令:实现LaTeX系统时用;命令中带@符号。如:/tempcnta。
4)盒子的命令与颜色
永远使用LaTeX的盒子命令而不要使用TeX盒子的原语,尽量用/sbox、/mbox、/parbox、minpage环境等命令。
5)定义文本和数学字符
这一部分LaTeX2e尚在建设中,定义这类编码独立的命令时应当使用/DeclareRobustCommand命令。
6)基本命令
6.1)装入其它命令:
/LoadClass, /LoadClassWithOptions,
/RequirePackage, /RequirePackageWithOptions
这些命令用以在一个class或package中使用别的类或包。
6.2)优化自己的类或包文件:
尽量多使用LaTeX命令;使用/PackageError, /PackageWarning, /PackageInfo等。
如:/ds@<option>定义选项,用/@options引用它-->最好用/DeclareOption和/ProcessOptions命令来代替。
6.3)增强class或package文件的兼容性:
文档中应当只包含可见的7位编码文档,文件名也采用了8.3格式;
7)class和package的结构
1、文件标识:说明是LaTeX2e的包或类文件,另外包含对自己的简单介绍;
2、预声明:部分声明一些命令,这些命令通常只在可选项声明和处理时用到,也可装入其它文件;
3、可选项:声明和处理可选项;
4、进一步声明:文件的大部分内容,如声明新的变量、命令和字体等,另外装入所有其它必要的文件。
7.1)文件标识
包的标识形式:
/NeedsTeXFormat{LaTeX2e}[date other-information]
/ProvidesPackage{package}[date other-information]
类的标识形式:
/NeedsTeXFormat{LaTeX2e}
/ProvidesClass{class-name}[date other-information]
类的描述信息在使用时显示出来,包的描述信息则存入log文件中,这些信息可用/listfiles命令来显示。
7.2)其它类和包的使用
LaTeX2e的类和包中支持模块化设计,那文件中可以使用更小的模块入别的类或包文件,而不用将所有功能都在一个大文件中定义。
在LaTeX类和包文件中使用另一个包文件:
/RequirePackage[options]{package}[date]
在LaTeX类和包文件中使用另一个类文件:
/LoadClass[options]{date-name}[date]
如果想在使用别的类或包时采用当前类所采用的可选项,通常可以使用下面这两条命令:
/LoadClassWithOptions{class-name}[date]
/RequrePackageWithOptions{package}[date]
7.3)可选项声明和处理
/DeclareOption{option}{code}
注:在装入类或包文件中,有时用户提供的可选项在类或包文件中并没有定义,这时如使用的是类,系统将产生警告;如使用的是包,系统将出错。
/DeclareOption*{code} 表示用户使用了未定义的可选项时要执行的code。
所有的可选项声明过之后,未执行相应代码,使用命令:/ProcessOptions/relax
例:
/DeclareOption{foo}{/typeout{saw foo.}}
/DeclareOption{baz}{/typeout{saw baz.}}
/DeclareOption*{/typeout{What's /CurrentOption ?}}
/ProcessOptions/relax
用户在文档中书写了/usepackage[foo,bar]{jame}命令,将看到如下信息:
saw foo. What's bar ?
使用命令:可选项从一个类或包文件中传递搞另一个类或包文件:
/PassOptionsToPackage{option}{package}
/PassOptionsToClass{option}{class}
如:在article上定义一新类,其所有未定义的可选项都交给article处理:
/DeclareOption*{%
/PassOptionsToClass{/CurrentOption}{article}%
}
注:采用上述方法,则目的类或包必须在此后才能装入;因为类或包文件只有在被装入时才处理可选项。
7.4)最小的类文件
写class或package文件,最大的工作量在于定义新的命令或改变文档的外观,用/newcommand, /setlength等命令实现。
最小类文件如下:
/NeedsTeXFormat{LaTeX2e}
/ProvidesClass{minimal}[1995/10/30 Standard LaTeX minimal class]
/renewcommand{/normalsize}{/fontsize{10pt}{12pt}/selectfont}
/setlength{/textwidth}{6.5in}
/setlength{/textheight}{8in}
7.5)类文件实例
7.5.1)公司内部信件类,名未neplet.cls
1、进行类文件标识
/NeedsTeXFormat{LaTeX2e}
/ProvidesClass{neplet}[1995/04/01 NonExistent Press Letter Class]
2、向letter类传递可选项,并以A4纸张装入letter类
/DeclareOption*{/PassOptionsToClass{/CurrentOption{letter}}
/ProcessOptions/relax
/LoadClass[a4paper]{letter}
3、重新定义firstpage页面类型,使用自己的标题和脚注
/renewcommand{/ps@firstpage}{%
/renewcommand{/@oddhead}{newletterhead}%
/renewcommand{/@oddfoot}{newletterfoot}%
}
7.5.2)时势通讯类,名为smphnews.cls
1、进行类文件标识
/NeedsTeXFormat{LaTeX2e}
/ProvidesClass{smplnews}[2005/05/22 The Simple News newsletter class]
/newcommand{/headlinecolor}{/normalcolor}
2、可选项传递与处理:自己处理onecolumn可选项,其它交给article处理,自定义可选项green,标题设为绿色
/DeclareOption{onecolumn}{/OptionNotUsed}
/DeclareOption{green}{/renewcommand{/headlinecolor}{/color{green}}}
/DeclareOption*{/PassOptionsToClass{/CurrentOption}{article}}
/ProcessOptions/relax
3、装入必要的类和包文件:用twocolumn可选项装入article类
/LoadClass[twocolumn]{article}
/RequirePackage{color}
4、重新定义/maketitle及分节命令,设置标题字体及颜色
/renewcommand{/maketitle}{%
/twocolumn{%
/fontsize{72}{80}/fontfamily{pho}/fontseries{b}%
/fontshape{sl}/selectfont/headlinecolor
/@title
}%
}
5、将section命令重新定义分节格式并关掉分节编号功能
/renewcommand{/section}{%
/@startsection{section}{1}{0pt}{-1.5ex plus -1ex minus -.2ex}%
{1ex plus .2ex}{/large/sffamily/slshape/headlinecolor}%
}
6、进行三项基本设置工作
/renewcommand{/normalsize}{/fontsize{9}{10}/selectfont}
/setlength{/textwidth}{17.5cm}
/setlength{/textheight}{25cm}
7、其它工作:还需定义文章作者、页面风格等指令。
分享到:
评论

相关推荐

    The_LaTeX2e_Sources

    学习LaTeX2e的源代码,可以帮助我们理解这些类和包是如何工作的,甚至可以自定义或创建自己的类和包。 此外,LaTeX2e支持多种语言,包括中文,通过ctex宏包可以方便地进行中文排版。对于中文用户来说,熟悉LaTeX2e...

    LaTeX2e 文类和宏包学习手册.pdf

    例如,使用`\NeedsTeXFormat{LaTeX2e}`命令来指明文档需要的LaTeX格式版本,而`\ProvidesClass{book}`则是定义一个文档类并提供相关的信息,比如版本号和发布日期。 文档类的定义中会包含许多预设的宏包引用、格式...

    LaTeX2e文类和宏包学习手册

    一部解说 LaTeX 文类和宏包文件编写方法,将 LaTeX 命令集中注释的工具书。 借鉴语文课本的编写方式,选取最常用的文类和宏包文件作为范本,逐行逐段进行详细解说,以起到举一反三,触类旁通的示范效果; 260页的...

    LaTeX2e 完全学习手册示例源文件1-4.rar

    《LaTeX2e完全学习手册》是一本深入探讨LaTeX2e排版系统的经典教程,其示例源文件1-4.rar包含了一系列精心设计的示例,旨在帮助读者通过实践来掌握LaTeX2e的基本概念和高级技巧。下面将详细阐述这些章节的主要知识点...

    LaTeX2e使用手册

    《LaTeX2e使用手册》是一本详尽的指南,专为那些想要深入掌握LaTeX2e排版系统的用户而设计。LaTeX2e是一种基于TeX的文字处理系统,广泛应用于科学、技术、数学和工程领域的文档创作,尤其在学术论文、报告、书籍以及...

    CCT的LaTeX2e中文文档

    - **中文排版需求**:LaTeX2e作为一款优秀的排版工具,最初是为西文排版设计的。然而,中文排版的需求同样强烈,特别是在科技文献、学术论文等领域。 - **CCT与LaTeX2e**:CCT是中国最早的一款支持中文排版的TeX系统...

    一份不太简短的LaTeX2e介绍

    #### 一、LaTeX2ε简介 LaTeX2ε是一种广泛使用的排版系统,尤其适用于技术文档、学术论文、书籍等复杂格式文档的编写。它建立在TeX之上,提供了更高级别的命令和环境来简化文档的编写过程。 #### 二、LaTeX2ε的...

    The not so Short Introduction to LaTeX 2e

    最快上手的LaTeX资源,popular introduction to LaTeX The not so Short Introduction to LaTeX 2e The not so Short Introduction to LaTeX 2e

    The_Not_So_Short_Introduction_to_LATEX_2_Or_LATEX2e

    综上所述,《The Not So Short Introduction to LATEX 2ε 或 LATEX2e》不仅为LaTeX新手提供了一个全面的基础入门指南,也揭示了LaTeX如何成为科学和技术文档制作的行业标准。通过阅读本书,用户可以掌握LaTeX的基本...

    一份不太简短的LaTeX2e介绍.pdf

    LaTeX使用TEX作为排版引擎,TEX是一个优秀的排版系统,它是由Donald E. Knuth开发的。LaTeX的源代码结构包括文档类和宏包。文档类是一组定义好的格式,用于控制文档的结构和外观,而宏包则是一组定义好的命令和环境...

    LATEX2e完全学习手册(第二版)

    介绍LATEX2e版本的使用方法。清华大学出版社胡伟编著。

    latex2e用户手册

    《LaTeX2e用户手册》是一本全面介绍LaTeX2e这一强大排版系统的指南,旨在帮助用户掌握其基本操作和高级技巧。手册分为四个章节,涵盖了从基础到进阶的多个方面,使得无论是初学者还是有经验的用户都能从中受益。 第...

    IEEE-Transactions-LaTeX2e-templates-and-instructions.zip

    1. LaTeX2e:LaTeX 是一种基于 TeX 的排版系统,LaTeX2e 是其当前的稳定版本。它简化了复杂的排版任务,尤其适合科技论文,因为它能够自动处理数学公式、参考文献和复杂的表格,使得论文的格式统一且专业。 2. IEEE...

    LATEX2e的教学文档

    ### LATEX2e教学文档的关键知识点 #### 引言:LATEX的历史与功能 LATEX,作为排版领域的佼佼者,由Donald Knuth的TEX发展而来,是...无论你是科研工作者、教师还是学生,掌握LATEX2e都将为你的学术生涯增添一抹亮色。

    LaTeX2e插图指南

    在LaTeX2e中插入图像是一项基础但至关重要的任务,尤其对于编写技术文档、学术论文或报告时。CTeX是LaTeX在中国的常用版本,它提供了更多的中文支持和便捷的功能。本指南将深入探讨如何在LaTeX2e和CTeX环境中有效地...

    LaTeX2e 完全学习手册 示例源文件 9-13. rar

    《LaTeX2e完全学习手册》是一本深入探讨LaTeX2e排版系统的经典教程,其包含了一系列详尽的示例源文件,旨在帮助读者掌握LaTeX2e的各种功能和用法。本压缩包文件提供了第9至13章的部分示例源文件,包括第9章插图、第...

    LaTeX2e 完全学习手册示例源文件chapter1-7

    《LaTeX2e完全学习手册示例源文件chapter1-7》是一份极其珍贵的资源,它涵盖了LaTeX2e的初级到进阶的各种应用场景,包括了从基础语法到复杂排版的全方位教程。这份压缩包包含的章节分别对应LaTeX2e的不同核心功能,...

    LaTeX2e 完全学习手册示例源文件

    LaTeX2e的beamer类提供了一种创建专业级幻灯片的方法。在这一章,你将学习如何设置幻灯片主题、添加标题、创建框架(frames)、插入图片、动画效果(如`\pause`)等。beamer的强大之处在于它允许你在同一源文件中...

    The latex2e sources

    LaTeX2ε(通常写作LaTeX2e)是LaTeX系统的一个版本,它是一种广泛用于排版文档、特别是含有大量数学公式的科学和技术文献的标准工具。LaTeX2ε源代码包含了系统的内核,以及一系列支持文件,这些文件定义了LaTeX的...

    Manual of Latex2e_中文

    《LaTeX2e_中文使用手册》是一本详尽的指南,专为中文使用者设计,旨在帮助初学者和有经验的用户更好地掌握LaTeX排版系统。LaTeX是一种基于TeX的文字处理系统,广泛用于科技、学术及出版领域,因其强大的公式排版...

Global site tag (gtag.js) - Google Analytics