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

LaTeX2e类和包的设计(三)

 
阅读更多

LaTeX2e类和包的设计(三)


1)User-defined commands用户自定义命令
可以在LaTeX下用命令定义新命令或重定义命令。
定义新命令:
/newcommand{/com_name}[narg][opt]{def}
重新定义命令:
/renewcommand{/com_name}[narg][opt]{def}
命令/newcommand用来定义一条新命令;命令/renewcommand用来重定义一条已存在的命令。
narg:指定新命令或重定义的命令带有多少个参数,从1到9取值;
如果调用了不正确的变量,会产生一个错误。
opt:给出了新命令在缺省情况下带有的可选参数。
def:是命令的实际定义。

1.1)Commands without arguments不带参数的命令
我们先来说明/newcommand不带参数的情况。当LaTeX有一个固定的组合或用户命令经常用它自身的名字重复使用时,应用它。
例如:X1,...,Xn的结构,我们可以定义一条命令来表示这种结构。
/newcommand{/xvec}{x_1,/ldots,x_n}
当调用/xvec时,将插入已定义的命令和文本序列来处理。
要注意的是,实际使用是$/xvec$,它需要在数学环境中。故我们可以这样定义它,
/newcommand{/xvec}{$x_1,/ldots,x_n$}
就能在一般场合下使用了。
还可以这样定义,
/newcommand{/xvec}{/ensuremath{x_1,/ldots,x_n}}
它同时允许/xvec和$/xvec$使用,产生同样的结果。
如果想在/xvec使用后输出一个空格,以便跟其它内容分隔开,则命令可以这样定义:
/newcommand{/xvec}{/ensuremath{x_1,/ldots,x_n}/xspace}
xspace包专门用来产生一个空格。
如果不清楚一个命令的名字是否已经存在时,可以用如下的定义:
/providecommand{/com_name}[narg][opt]{def}
它的语法与/newcommand和/renewcommand的语法相同。不同的是,如果命令存在的话,此新定义将会被忽略。
例子:
/newcommand{/thechapter}{/arabic{chapter}}
/newcommand{/thesection}{/thechapter./arabic{section}}
/newcommand{/thesubsection}{/thesection./arabic{subsection}}

1.2)Commands with arguments带参数的命令
在上例中,如果有Y1,...,Yn或者Z1,...,Zn的组合时,又该如何定义命令让它满足呢?我们可以定义/yvec和/zvec,但是这过于麻烦。我们可以考虑用一个参数来实现它。这个参数可以代表字母x,y,z等等。如下:
/newcommand{/avec}[1]{/ensuremath{#1_1,/ldots,#1_n}}
这样,我们想输入X1,...,Xn的结构时可以用/avec{X},想输入y1,...,yn的结构时可以用/avec{y}等等。#1就是那个参数的替代。
如果要输入U1,...,Um的结构时,可以用两个参数,如下:
/newcommand{/anvec}[2]{/ensuremath{#1_1,/ldots,#1_#2}}
同理,三个参数的情况:
/newcommand{/subvec}[3]{/ensuremath{#1_#2,/ldots,#1_#3}}
则我们通过调用/subvec{a}{i}{j}可以产生ai,...,aj。
注:当超过一个参数时,参数必须被封装在{}内。

1.3)Commands with an optional argument带一个可选参数的命令
正如我们所见,许多LaTeX命令带有一个可选参数,包括/newcommand命令。如下:
/renewcommand{/subvec}[3][x]{/ensuremath{#1_{#2},/ldots,#1_{#3}}}
即,它默认第一个参数为x,当你输入/subvec{i}{j}将打印xi,...,xj;当你输入/subvec{a}{i}{j}时,将打印ai,...,aj。

1.4)附加的一些例子
example 1:
/newcommand{/latop}[2]{{#1} /atop {#2}}
/newcommand{/lchoose}[2]{{#1} /choose {#2}}
example 2:
/newlength{/wdth}
/newcommand{/defbox}[1]{/settowidth{/wdth}{#1}}
/newcommand{/textbox}[1]{/framebox[/wdth]{#1}}
example 3:
/newcounter{myfn}[page]
/renewcommand{/thefootnote}{/fnsymbol{footnote}}
/newcommand{/myftnote}[1]{/setcounter{footnote}{/value{myfn}}%
/footnote{#1}/stepcounter{myfn}}
example 4:
建立命令/alpheqn,一旦它被调用,等式序列将保持同样的数,但是它紧跟的字母a,b将不断增加,且用-符号隔开。命令/reseteqn保存初始的数字。因此产生的序列可以为4,5,6-a,6-b,7。
/newcounter{saveeqn}
/newcommand{/alpheqn}{/setcounter{saveeqn}{/value{equation}}%
/stepcounter{saveeqn}/setcounter{equation}{0}%
/renewcommand{/theequation}%
{/mbox{/arabix{saveeqn}-/alph{equation}}}}
/newcommand{/reseteqn}{/setcounter{equation}{/value{saveeqn}}%
/renewcommand{/theequation}{/arabic{equation}}}

1.5)Conditional text带条件的文本
我们引入ifthen宏包,如下:
/usepackage{ifthen}
它带有两条命令,如下:
/ifthenelse{test}{then_text}{else_text}
测试test,如果为真,执行then_text语句;如果为假,执行else_text。
/whiledo{test}{do_text}
测试test,为真则执行do_text语句,为假则不执行。
例子:
/newcommand{/three}{3}
/ifthenelse{/three =3}{OK}{what?}
/ifthenelse{/value{page} <100}{Page xx}{Page xxx}

2)User-defined environments用户自定义环境
可以用命令来创建或改变环境
/newenvirenment{env-name}[narg][opt]{beg_def}{end_def}
/renewenvirenment{env-name}[narg][opt]{beg_def}{end_def}
env-name: 环境的名称,在/newenvirenment中,它不同于任何已存在的环境名或命令名;而在/renewenvirenment;它必须是已经存在的环境名。
narg:从1到9的一个数,用于声明环境带有多少个参数;如果省略的话,默认为0个参数。
opt:默认为第一个可选项的名字。
beg_def:当/begin{env-name}开始时要调用的插入内容;如果带参数,则环境开始时,调入/begin{env-name}{arg_1}...{arg_n}
end_def:环境结束时的插入内容。

4)Envirenments without arguments
正如用户自定义命令一样,我们先来解释不带参数的环境。用以下命令创建:
/newenvirenment{sitquote}{/begin{quote}/small/itshape}{/end{quote}}
它设置了文本在/begin{sitquote}和/end{sitquote}之间以规定的/small/itshape形式显示。
注意:/small/itshape会在整个环境中持续生效。
看下面的例子:
/newcounter{com}
/newenvironment{comment}
{/noindent/slshape Comment: /begin{quote}/small/itshape}
{/stepcounter{com}/hfill(/arabic{com})/end{quote}}


分享到:
评论

相关推荐

    The_LaTeX2e_Sources

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

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

    在LaTeX2e的文类和宏包学习手册中,主要的知识点围绕着如何使用LaTeX2e来编写文档类(class)和宏包(package),以及如何使用常见的宏包来撰写文档。下面详细地展开这些知识点。 首先,我们需要了解LaTeX文档的...

    LaTeX2e文类和宏包学习手册

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

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

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

    LaTeX2e使用手册

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

    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

    CCT的LaTeX2e中文文档

    通过上述分析可以看出,CCT的LaTeX2e中文文档类和包为中文排版提供了一套较为完整的解决方案。虽然这些工具仍然有待进一步完善和发展,但它们已经在很大程度上满足了中文排版的基本需求,并为后续的相关研究和技术...

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

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

    The_Not_So_Short_Introduction_to_LATEX_2_Or_LATEX2e

    《The Not So Short Introduction to LATEX 2ε 或 LATEX2e》是LaTeX入门的经典之作,它不仅适合于初学者从零基础开始学习,而且在学术界被广泛推荐。该文档的版本2.2-Beta发布于1996年1月25日,它的公共领域声明...

    LATEX2e的教学文档

    ### LATEX2e教学文档的关键知识点 #### 引言:LATEX的历史与功能 LATEX,作为排版领域的佼佼者,由Donald Knuth的TEX发展而来,是科学文献、数学公式、学术论文等领域中不可或缺的工具。LATEX2e,即本文档所聚焦的...

    latex2e用户手册

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

    LaTeX2e插图指南

    - CTeX:基于LaTeX2e,专门为中文环境设计,包括了对中文字符和排版的良好支持。 2. **插入图像的基本步骤** 在LaTeX中,插入图像主要依赖`graphicx`包,首先需要在文档的开头包含该包: ```latex \usepackage{...

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

    《IEEE Transactions LaTeX2e 模板与指南》 在学术界,尤其是在计算机科学与信息技术领域,IEEE Transactions 杂志是极具权威的出版物之一。它提供了高质量的研究成果展示平台,而使用正确的论文格式是提交论文的第...

    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的...

    一份不太简短的LaTeX2e介绍

    #### 三、LaTeX2ε文档结构 - **文档类**:定义了文档的基本样式,例如`article`、`report`、`book`等。 - **文档环境**:如`equation`、`figure`等用于控制特定部分的格式。 - **命令**:用于定义文档中的元素,如...

    Manual of Latex2e_中文

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

    latex2e科技排版使用手册

    使用latex进行科技论文排版的简单使用手册,供大家学习参考。

Global site tag (gtag.js) - Google Analytics