2使用帮助5

2.3选项

宏包的选项用于改变一些缺省风格的设置。缺省的设置已经针对中文的习惯进行了尽量

的修改,所以一般用户无需使用这些选项。如果你觉得某些设置不合适,可以向作者反映。我们会考虑在后面的版本中予以改进。我们也欢迎关于增加或者删减选项的建议。

下面的选项可能会是最经常使用的。但是它们只能用于文档类(ctexart、ctexrep和ctexbook)。

cs4size使用小四字号为缺省字体大小。

c5size使用五号字为缺省字体大小。这个是ctex文档类的缺省格式。

下面这些则可以在文档类宏包和ctex.sty上使用。CCT使用CCT代替CJK做为底层的中文支持系统。

CCTfont使用传统的CCT字库方式,该选项会自动激活CCT选项。punct对中文标点的位置(宽度)进行调整。

nopunct不对中文标点的位置进行调整(每个标点占有相同的宽度)。

space使用CJK的保留空格模式,保留中文字符间的空格(类似英文的习惯)。你需要自己

处理中文字符间的空格以及换行产生的空格(在行尾加上%符号可以避免),否则排版结果可能不符合中文习惯。这种模式可以通过\\CTEXnospace转换到nospace模式。nospace使用CJK的忽略空格模式,也就是CJK*环境的模式。CJK会自动忽略中文字符

间的空格,比较符合中文习惯。在这种模式下,可以使用?来分隔中英文字符,产生的间距稍小于普通空格,排版效果比较美观。这种模式可以通过\\CTEXspace命令转换到space模式。这个是ctex宏包的缺省模式。

cap使用中文的标题样式。这个是文档类宏包的缺省模式。nocap保留使用英文的标题样式。

indent使用中文的段首缩进模式,即缩进两个汉字宽度,同时每个段落都缩进。这个是

ctex宏包的缺省模式。

noindent使用原来的段首缩进模式,章节标题后的第一段不缩进。

psfont使用PostScript字库来代替CM字库。这个选项只影响英文字库的使用,对中文没

有作用。

fancyhdr保持和fancyhdr宏包的兼容性。该选项将使得fancyhdr宏包被自动调用。

Aamstex保持和AMS-LTEX宏包的兼容性。

\\songti\\heiti\\fangsong\\kaishu\\lishu\\youyuan

2使用帮助6

fntef为CJKfntef宏包和CCTfntef宏包提供统一接口。该选项将使得CJKfntef宏包或者

CCTfntef宏包被自动调用。

下面这些则可以在文档类宏包和ctexcap.sty上使用。

cap使用中文的标题样式,缺省格式由ctexcap.cfg配置文件内的定义给出。这个是文档

类宏包的缺省模式。nocap保留使用英文的标题样式。

sub3section将\\paragraph命令产生的标题改为section类格式。此时\\subparagraph命

令产生的标题会具有原来\\paragraph的格式。

sub4section将\\paragraph和\\subparagraph命令产生的标题都改为section类格式。

总结:ctex宏包的缺省选项是nospacecapindent,文档类的缺省选项是nospacecapindentc5size。

2.4基本命令

ctex宏包给用户提供一个通用的文档框架,使得用户可以自由地在不同的底层中文系

统间切换。为此,我们为CJK定制了一些模拟CCT的命令,也对部分CCT命令进行了修改,使得两者保持一致。此外,我们还定义了用于设置文档参数的高级设置命令。2.4.1

字体设置

中文字体很多,但是常用的就那么几个。我们为CJK常用的六种中文字体定义了简单易用的命令。它们是:

宋体:\\songti,CJK等价命令\\CJKfamily{song}黑体:\\heiti,CJK等价命令\\CJKfamily{hei}仿宋:\\fangsong,CJK等价命令\\CJKfamily{fs}楷书:\\kaishu,CJK等价命令\\CJKfamily{kai}隶书:\\lishu,CJK等价命令\\CJKfamily{li}幼圆:\\youyuan,CJK等价命令\\CJKfamily{you}

TEX系统中必须已经定义好这六种中文字体,并且使用和CTEX套装中一致的字体名称。(参见上面CJK等价命令的参数)

上面的字体命令和CCT中的一致,但传统的CCT字库中没有隶书和仿宋两种字体,需要用户自行安装定义。如果使用CCT时选择CJK字库方式,则可以使用这两种中文字体。

\\zihao

\\ziju

\\ccwd

\\CTEXindent

\\CTEXnoindent\\CTEXsetfont

\\CTEXnumber

\\CTEXdigits

2使用帮助7

2.4.2

字号、字距、字宽和缩进

中文字号的设置命令是\\zihao{??字号??},例如\\zihao{3}。可以使用的参数有16个,小号字体在前面加负号表示,从大到小依次为

初号小初一号小一二号小二三号小三0-01-12-23-3四号小四五号小五六号小六七号八号4

-4

5

-5

6

-6

7

8

英文字体大小会始终保持和中文字体一致。

汉字字距的调整使用命令\\ziju{??字宽的倍数??}。参数可以是任意的数字,例如\\ziju{5}设置汉字字距为当前汉字字宽的5倍,\\ziju{0.5}设置汉字字距为当前汉字字宽的一半。这里的汉字字宽指的是实际汉字的宽度,不包含当前字距。该命令不影响英文字距。

当前汉字的字宽保存在宏\\ccwd中。字宽是相邻两个汉字中心的距离,也就是说字距会被计算在内。

正常的缩进两个汉字字宽的距离,同时在汉字大小和字距改变的情况都可以自动修改缩进距离。

取消缩进。

\\CTEXsetfont命令用于更新当前的中文字体信息,包括当前字距和缩进距离。一般来说,用户无需使用这个命令。2.4.3

中文数字转换

使用CJK提供的\\CJKnumber命令可以将阿拉伯数字转换为中文数字。由于LATEX臭

名昭著的脆弱命令的原因,当\\CJKnumber被用在章节标题等地方的时候,要么出现错误无法使用,要么无法达到预期目的,例如在产生PDF书签的时候。于是我们定义了一个\\CTEXnumber命令,可以将产生的中文数字保存下来。该命令的格式为

\\CTEXnumber{??result??}{??number??}

其中??result??必须是一个TEX宏的名字,不需要预先定义。例如

\\CTEXnumber{\\test}{100002005}

则\\test中的内容就是“一亿零二千零五”(不包括引号)。

\\CTEXdigits命令和\\CTEXnumber命令类似,用于代替CJK提供的\\CJKdigits命令。它和\\CTEXnumber命令的不同之处在于转换后结果是中文数字串,而不是按照中文习惯的数字。该命令的格式为

\\chinese

\\CTEXoptions

\\CTEXsetup

2使用帮助8

\\CTEXdigits{??result??}{??number??}

其中??result??必须是一个TEX宏的名字,不需要预先定义。例如

\\CTEXnumber{\\test}{100002005}

则\\test中的内容就是“一○○○○二○○五”(不包括引号)。

对于经常需要转换的计数器,我们特别定义了一个\\chinese命令。该命令可以象罗马数字转换命令\\roman、\\Roman一样使用。具体格式是

\\chinese{??counter??}

其中??counter??是一个LATEX计数器(counter),即由\\newcounter命令产生的,例如section,figure等。

2.5

高级设置

ctex宏包中一般的设置通过\\CTEXoptions命令完成。这个命令的基本格式是\\CTEXoptions[??key1??=??val1??,??key2??=??val2??,...]

其中??key1??,??key2??是设置选项,??val1??,??val2??则是对应选项的设置内容。多个选项可以在一个语句中完成设置。

部分设置如章节标题则通过\\CTEXsetup命令完成。这个命令比\\CTEXoptions多一个参数,用于指定设置对象。基本格式是

\\CTEXsetup[??key1??=??val1??,??key2??=??val2??,...]{??type??}

其中??type??是设置的对象类型,如part,chapter,section,subsection,subsubsection,paragraph,subparagraph等。??key1??,??key2??是设置选项,如name,number,format,nameformat,numberformat,aftername,titleformat等。??val1??,??val2??则是对应选项的设置内容。同一个目标类型的多个选项可以在一个语句中完成设置。

如果以上命令的参数中包含中文字符,则命令必须放在\\begin{document}之后才能正常工作。12.5.1

章节标题设置

普通章节标题的格式全部通过\\CTEXsetup命令完成。章节类型在\\CTEXsetup命令的第二个参数中指定。如果使用了宏包选项cap(缺省情况即是如此),则所有对章节标题的修改必须在\\begin{document}以后进行。原因是缺省的中文标题设置文件ctexcap.cfg文件是在\\begin{document}之后才会自动装入,因而之前的修改都会被覆盖而无效。这一限制对后面的附录标题以及其他标题设置一样有效。2

1从v0.7版本开始支持在导言区使用中文。

2从

v0.7版本开始,ctexcap.cfg文件在宏包文件结束时就已经被装入,因此可以在导言区使用设置命令。