宏包套件.docx

上传人:b****6 文档编号:4691843 上传时间:2022-12-07 格式:DOCX 页数:12 大小:28.22KB
下载 相关 举报
宏包套件.docx_第1页
第1页 / 共12页
宏包套件.docx_第2页
第2页 / 共12页
宏包套件.docx_第3页
第3页 / 共12页
宏包套件.docx_第4页
第4页 / 共12页
宏包套件.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

宏包套件.docx

《宏包套件.docx》由会员分享,可在线阅读,更多相关《宏包套件.docx(12页珍藏版)》请在冰豆网上搜索。

宏包套件.docx

宏包套件

【次页】:

8.表格的处理【标题页】:

latex123【前页】:

6.LaTeX的标准文稿类别 目录 索引

7.宏套件

LaTeX系统已经好久没有更新,有些部份可能会跟不上实际的脚步,而且有些内定的宏定义,经过大家的使用,发觉并不是那么的顺手,尤其是功能的强化方面,因此这章谈谈如何引用他人已经写好的宏,这很重要,尽量避免重复制造轮子,写TeX/LaTeXmacro可说是很专业的工作,要避免破坏了整体的结构,所以先找看看有什么宏套件可以使用。

7.1一般套件的使用

我们曾在第3.4.3小节,页

,提到过简单宏的引用,事实上,有些宏含有许多的参数来做微调,但是每个宏套件的参数都不会一样,因此,使用套件之前要先看一看他所附上的使用手册。

几乎大部份的宏套件都有使用手册,如果是系统上就有的宏,那么这些文件通常会放在:

$TEXMF/doc=>Unix-like系统

$TEXMF\doc=>DOS/Windows系统

这些目录底下,这些文件会有原始TeX/LaTeX文稿,也有编译好的*.dvi或POSTSCRIPT档可以阅览,为求方便的话,可以将他们转成pdf格式来阅览,原因是可以以关键词来搜寻全文,在查指令、环境时会比较方便。

在Unix-like系统或Windows下的cygwin环境的话,可以使用texdoc这个指令来阅览,例如:

texdocamsguide=>阅览amsguide.dvi这个档的说明

texdoc-sams=>查系统上所有含ams字样的文件

7.2LaTeX官方文件中的标准宏套件

底下是LaTeX官方文件中所附的标准宏套件。

虽然是标准宏套件,但一般情形下,使用这些packages的机会并不多,都是有特殊需要时才会引入。

7.2.1alltt

这个宏套件提供alltt环境,和verbatim环境的作用相同,只是\,{,}的作用和一般文章中相同会被LaTeX解读。

这有什么用呢?

这样一来LaTeX这个特殊标志也可以使用,也可以让环境中的文字具有颜色,或做其他变化,当然,里头的文字默认仍然是使用打字机字族的。

7.2.2doc

这是用来写LaTeX文件的宏套件,这在使用ltxdoc这个class的同时就会加载docpackage。

由于这不是用于一般的文件使用场合,所以,这里就不多谈,有兴趣的话可自行参考他的文件说明。

7.2.3exscale

由于原先的ComputerModernfont中的数学延伸符号(cmex)只有10pt大小的字型(cmex10),内文放大到large以上的字型时,例如放大到Large时,有些数学符号仍然会维持一定的大小,这时可以使用这个套件,让这些数学符号也跟着放大,例如积分符号。

exscale只有字型缩放的定义,因此只要把这个套件在preamble区引用就可以了,无需任何指令。

不过,这里要说明一下,在TeX/LaTeX里字型放大,有时可能会造成表现失真的情形,尤其是数学式子,为了顾及数学式子中各个字母间的空间安排,cmex10的设计并不适合拿来放大,可以把cmr5放大成10pt和真正的cmr10来比较就会知道表现出来会不一样,因此,如果考虑精确配合的问题,放大数学式子的字型时可能要考虑一下使用场合,尤其目前采用向量字更是如此。

请试试以下的例子,我们把cmr5、cmr10及cmr12同样放大到30pt来看看结果会不会一样:

%test-fonts.tex

\font\largecmr=cmr12at30pt

\largecmr

Thisiscmr12at30pt.

\font\largecmr=cmr10at30pt

\largecmr

Thisiscmr10at30pt.

\font\largecmr=cmr5at30pt

\largecmr

Thisiscmr5at30pt.

\bye

请注意,这是TeX文稿,不是LaTeX文稿,所以要使用tex或pdftex来编译,他的结果如下,大家可很清楚的看得出来,虽然同样是向量字,但放大时的表现并不会一样:

http:

//edt1023.sayya.org/tex/latex123/test-fonts.tex

http:

//edt1023.sayya.org/tex/latex123/test-fonts.pdf

根据Knuth教授当初设计Metafont,他的理念是一个同样的字型在放大的时候,同一个字,他的笔划置放的相对位置应该要随放大的倍数而稍加调整。

因此,假如我们只使用一种向量字体,用在不同的放大倍率的时候,文字符号间的空间配合会产生不一样的结果,尤其是用在数学式子的时候,更加明显。

当然,实用上Metafont虽然也是一种向量字体,但由于太过于复杂,不适合拿来屏幕显示上用,所以才会退而求其次,转成pk位图字体来使用。

这也就是为什么同样是cmr的字型,会有几种不同点数的独立字型的原因,纵使是向量字也是如此。

TeX已经20几岁了,但是,我们的字型技术似乎还是没有完全赶上当初Knuth教授的理念。

7.2.4fontenc

在第4.7.1小节,页

,曾提到字型编码的问题。

要改变字型编码,可以使用这个fontencpackage。

以T1fontencoding来说:

...

\usepackage[T1]{fontenc}

...

这样就可以了,但由于一些字型,例如欧洲字符,在原来的ComputermodernType1字型中安排不一样,所以,有些部份会使用原始的Metafont字型所转换成的pk点阵字,这样的话,一般打印机印出来是差异不大,但如果是想制作成PDF格式在荧光幕阅览的话,字型的表现会变得很丑。

理想的话,要安装cm-superType1字型,但是一般用户恐怕自行安装字型会有困难。

这在teTeX2.x以后的版本,已经有附上pxfonts及txfontspackage及其字型,所以,如果是新近版本的teTeX的话,可以由以下的方式来使用:

...

\usepackage{txfonts}

\usepackage[T1]{fontenc}

...

其中txfonts是仿真Times系列的字型,pxfonts是仿真Palatino系列的字型。

当然,这里关于字型的问题有点复杂,这不在这篇文章的讨论范围,只能做简单的说明,如果没有特殊需要,例如,欧洲字符、一些有重音符号的字母,那使用默认的OT1编码就行了,因为这些套件所附的有些字型,只有一种大小的Type1字型在缩放,因此使用上恐怕会有失真的情形。

7.2.5graphpap

这是产生方格纸的宏。

他提供了一个指令,可以画方格,可以配合picture环境来使用,他的语法是:

...

\usepackage{graphpap}

...

\graphpaper[n](x,y)(x1,y1)

...

其中的n如果省略的话,预设是10,他指的是方格纸的最小刻度单位。

(x,y)及(x1,y1)指的是左下角及右上角的坐标值,例如:

\documentclass{article}

\usepackage{graphpap}

\begin{document}

\graphpaper(0,0)(360,360)

\end{document}

这样会画出以10为最小刻度的方格,编译好的例子如下:

http:

//edt1023.sayya.org/tex/latex123/test-graphpap.tex

http:

//edt1023.sayya.org/tex/latex123/test-graphpap.pdf

7.2.6ifthen

TeX本身是一种排版程序语言,当然会有条件判断式来方便写宏,但如果文稿中也充满了条件判断式,将会使文稿复杂化,难以阅读、维护,因此,一般条件判断式大多数使用在宏定义,而不是写在文稿当中。

这个package就是在简化条件判断式,以便也可以方便使用在文稿当中。

ifthenpackage提供了\ifthenelse指令来做条件判断。

他后面有三个参数,第一个是条件式,第二个是条件为真的时候要执行的内容,第三个是条件为伪的时候要执行的内容。

这里不多谈他的使用,底下只提供一个实例片段:

...

\usepackage{ifthen}

...

\ifthenelse{\isodd{\thepage}}%

{\setlength{\leftmargin}{10pt}}%

{\setlength{\leftmargin}{0pt}}

...

这样奇数页时,leftmargin会设为10pt,偶数页时则为0pt。

后面加%代表,这三行是一整行,其间没有空白。

7.2.7inputenc

由于fontencpackage的一些字型编码安排,和一般所谓的Latin-1这些编码(inputencoding),他们的内容不一定相符,所以,fontencpackage常会和inputencpackage互相配合使用,以确保在使用欧洲字符、符号时能正确取得到字。

例如:

...

\usrpackage[T1]{fontenc}

\usepackage[latin1]{inputenc}

...

\inputencoding{ascii}%也可以在文稿内文变换

...

\inputencoding{latin2}

...

\inputencoding{latin1}

...

当然,我们的文稿如果只是英美语系的文章,那这些都可以不必理会。

7.2.8latexsym

这是LaTeX额外提供的符号。

在新版的LaTeX2e并不会自动加载,要自行引入这个独立出来的package。

这主要是提供lasy*这些字型里头的符号。

如果有使用amsfonts或amssymbpackage的话,这些latexsym符号应该是可以无需引入(有少数符号是LaTeX特有的)。

至于各种符号的package有哪些内容,可以参考系统上的symbols*这些档案,他可能存在的形式是:

symbols.dvi

symbols-a4.ps[pdf]

symbols-letter.ps[pdf]

或者,也可以从CTAN下载最新的版本:

ftp:

//cam.ctan.org/tex-archive/info/symbols/comprehensive/symbols-a4.pdf

7.2.9makeidx

这是在制作索引时要引入的package,我们会在第11.3节,页

再来讨论。

7.2.10newlfont

这是仿真旧版LaTeX的字型用法,让他使用新的取字机制的package。

也就是我们在第4.7.2,页

所提到的用法。

为免麻烦,我们尽量避免使用旧用法,而使用字型的标准指令。

7.2.11oldlfont

这是仿真旧版LaTeX的字型用法的package。

7.2.12showidx

这个package会显示,\index指令下在什么地方。

这也会在第11.3节来讨论。

7.2.13syntonly

syntonlypackage提供\syntaxonly指令,他可以检查语法是否正确,并不会有*.dvi档的输出。

但这个\syntaxonly指令一定要放在preamble区。

7.2.14tracefnt

这是追踪字型使用情形的package。

通常编译时所产生的信息已经很足够,但如果希望有更详细的字型使用信息的话,可以使用这个package:

...

\usepackage[debugshow]{tracefnt}

...

请注意,这样会增加编译的时间,而且*.log档会很大。

7.3LaTeX官方文件中的工具组

这些宏套件,LaTeX官方文件是归类在相关软件(relativesoftware)中,可能会比上一节提到的标准宏套件来得实用些。

但也同时可以看得出来LaTeX非内建的套件不少,加上其他外来的宏套件,那真的是套件满天飞,我们很希望在可能的情形下LaTeXteam可以考虑将一些必要的套件纳入内建,更加落实版面处理和文稿写作分开的理念。

7.3.1AmS-LaTeX

LaTeX本身就有排版数学式子的能力,但在比较专业使用时,可能会需要增强他的功能,AmS-LaTeX是美国数学协会(AmericanMathematicalSociety,AMS)所发展的一个增强LaTeX数学式子编辑的宏组,是由AmS-TeX

indexamstex@AmS-TeX移植过来给LaTeX使用的,他主要分成两个部份:

amscls及amsmath,前者提供符合AMS的文件规格的文稿类别,后者可加强原来LaTeX的数学模式。

我们会在第10章,页

加以介绍。

7.3.2babel

如果想排版英文以外的其他欧洲国家的语文,例如:

德文、法文,那可以利用babel宏套件。

7.3.3cyrillic

这是专为排版斯拉夫民族语文,例如:

俄文,那可以使用这个套件。

7.3.4graphics

这是处理图形要用到的宏套件。

但目前一般都使用功能较完善的graphicx宏套件来取代graphics了,事实上,引用graphicx会自动的引用graphics,而在指令使用的方便性上,graphicx较佳,因此我们往后都是以graphicx为主来说明的。

这两个套件属于LaTeX的图形工具组,这个工具组包括了和颜色、图形相关的各种宏,我们会在第9章,页

来讨论。

7.3.5psnfss

这是Type1字型的宏套件组,例如:

times,charter,mathptmx等等,他会去使用这些Type1字型。

但通常这些字型有许多是商业字型,系统上不一定会有,如果没有的话,会去使用free的代替字型,或者就不嵌入这些字型了。

如果没有这些商业字型,又想要嵌入替代的Type1字型的话,可以考虑使用txfonts或pxfonts宏套件及其所附字型。

当然,如果专业使用的话,可能得考虑购买专业的商业字型来使用。

7.3.6array

这是加强原来的array,tabular环境的宏套件,可增许多细部微调的功能。

这在第8.4节,页

,时会讨论到。

7.3.7calc

这个套件可以让LaTeX接受一些简单的代数运算。

主要用于微调一些原始预设的长度及计数器(counter)。

7.3.8dcolumn

这是让表格中具有小数点的数字对齐的宏套件。

我们会在第8.9节,页

中详细讨论。

7.3.9delarray

这是加强array宏套件的功能,让矩阵或行列式的大分界符号可以使用较简单的指令。

这个套件要配合array宏套件来使用。

通常在array宏套件中,这些矩阵或行列式的大分界符号是由\left及\right来引导才会出来,但使用delarray宏则不必如此麻烦。

这在第10章会讨论到。

7.3.10hhline

这个宏套件会方便在画横线时也可以插入表格的纵线。

7.3.11longtable

longtable是用在跨页表格。

通常在LaTeX中的tabular表格是当做一个box来处理,因此无法再分割,所以无法跨页来表现。

这也会在第8.10,页

谈到表格时提及。

7.3.12tabularx

这是tabular表格环境的加强版,他可以方便的排版指定宽度的表格。

同样的,这会在第8.3节,页

时提及。

7.3.13afterpage

这个件主要在调整LaTeX的浮动环境(floatingenvironment)时,置放浮动对象,例如:

图、表的位置。

7.3.14bm

bm的意思,就是boldmath(symbol),这会让数学式子以粗体的方式来显示。

这个宏套件,提供一个\bm{}指令,只要把数学式子置于大括号中就会由粗体来显示。

7.3.15enumerate

这是加强enumerate列举式条列环境的宏套件。

他可以很方便的指定要使用什么方式来起头,原始的enumerate环境,预设第一层是阿拉伯数目字,虽然也可变更,但要重新定义,不是很方便。

这里举个例子:

%example15.tex

\documentclass{article}

\usepackage{enumerate}

\begin{document}

\begin{enumerate}[Example-1.]

\itemThisisaitem1.

\itemThisisaitem2.

\begin{enumerate}[

(1)]

\itemThisisaitem

(1).

\itemThisisaitem

(2).

\end{enumerate}

\itemThisisaitem3.

\itemThisisaitem4.

\end{enumerate}

\end{document}

可以指定会顺延显示的有:

A,a,I,i,1,如果这些是属于固定显示的部份,则要以大括号括起来,否则他会顺序计算显示。

请试着和第5.5.2小节,页

的标准enumerate环境比较一下。

编译后的结果如下:

http:

//edt1023.sayya.org/tex/latex123/example15.tex

http:

//edt1023.sayya.org/tex/latex123/example15.pdf

这里请注意一下一些同名的环境、宏套件,例如array宏套件及array环境,这里的enumerate宏套件也是一样。

7.3.16fontsmpl

这是字型sample测试package,他可以是互动的,也可以引用这个package后直接使用\fontsample这个指令来印出目前使用的字型sample。

互动的话,要自行输入字族名称。

sample文件在$TEXMF/tex/latex/tools目录下,只要下:

latexfontsmpl.tex

就可以了,他会出现:

ThisisTeX,Version3.14159(Web2C7.4.5)

(./fontsmpl.tex

LaTeX2e<2001/06/01>

Babelandhyphenationpatternsforamerican,french,

german,ngerman,nohyphenation,loaded.

(/usr/share/texmf/tex/latex/base/article.cls

DocumentClass:

article2001/04/21v1.4eStandardLaTeXdocumentclass

(/usr/share/texmf/tex/latex/base/size10.clo))(./fontsmpl.sty)

Pleaseenterafamilyname(forexample`cmr').

\family=

只要输入要测试的字型字族,例如cmr,他就会产生fontsmpl.dvi这个档,然后就可以使用dvips或dvipdfm[x]把他转成ps/pdf格式的档案。

他只会测试OT1及T1两种字型编码。

7.3.17ftnright

LaTeX在两栏式排版(two-columnmode)时,他的脚注是置放在各自字段底部。

ftnright会将两栏式排版时,把所有的脚注都置放在右栏底部。

这样可以将脚注集中,看起来不会那么凌乱。

7.3.18indentfirst

通常,LaTeX的章节开头的第一个段落是不缩排的,在第二个段落起才会缩排。

如果习惯每个段落都有缩排,可以使用indentfirstpackage。

这个套件也是引入就可以了,无需任何指令。

7.3.19layout

这是显示目前版面配置的package。

引入这个package后,只要在本文区下\layout指令,他就会画出目前的版面配置,也会将各种数据显示出来。

我们在第5.2.1小节,页

,里头所显示的版面图,就是这样画出来的。

7.3.20multicol

在LaTeX宣告文稿类别的同时,我们可以选用twocolumn来选择两栏式的排版,再多则不行。

在两栏式的排版时,我们可以使用\onecolumn及\twocolumn指令,在单栏及两栏间变换,但这有一个很严重的缺点,那就是字段变换也会迫使换新页,原来的页面将会显得空旷。

multicol的目的,不仅突破两栏,可以做多栏式的排版(最多可至十栏的排版),也可以在变换字段编排时在同一页面变换,而不必换新页。

他提供了multicols环境来做字段的变换。

他的使用方法很简单,字段数目及变换完全由环境来控制:

...

\usepackage{multicol}

...

\begin{multicols}{栏数}

...

内容,依正常单栏方式书写即可

...

\end{multicols}

请注意,引入时multicol是没有`s'的,而环境中的multicols是有`s'的。

multicolpackage处理脚注的方式,和单栏排版相同,就是通通置于本页底部,不分左右字段。

7.3.21rawfonts

这是仿真LaTeX2.09旧版的低阶字型指令,例如\texrm代表10pt的罗马字族的字。

在新版的LaTeX2e并没有定义这些指令。

7.3.22somedefs

这是写LaTeX宏的一些范例定义,可以很容易的更改其中设定来写自己的package。

这不在这篇文章的讨论范围,因此就不多谈了。

7.3.23showkeys

这个package会把\label,\ref,\pageref等交互参照的指令内容,或文献引用内容,在指令所在处印出来。

7.3.24varioref

这是加强型的交互参照的方式,我们会在第11章来讨论。

7.3.25verbatim

这是加强LaTeX原来的verbatim环境的同名套件。

可以在里头使用批注,也可以利用\verbatiminput{文件名}指令来引入外来档案,当然,引入后会自动进入verbatim环境中。

7.3.26xr

xr是eXternalReferences的缩写,意思就是交互参照外部的档案。

这会在第

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 经济学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1