3源代码说明16
25262728
\\newif\\ifCTEX@indent\\CTEX@indenttrue
\\DeclareOption{noindent}{\\CTEX@indentfalse}\\DeclareOption{indent}{\\CTEX@indenttrue}??/ctex|cls??
\\ifCTEX@psnfss
A用于判断是否使用PostScript字体替代CM字体,缺省是不使用。psnfss选项使得LTEX使
用PostScript字体替代缺省的CM字体。
29303132
???ctex|cls??
\\newif\\ifCTEX@psfont\\CTEX@psfontfalse\\DeclareOption{psfont}{\\CTEX@psfonttrue}??/ctex|cls??
\\ifCTEX@fancyhdr用于判断是否使用fancyhdr宏包,缺省是不使用。fancyhdr选项使得ctex宏包保持和fancyhdr宏包兼容。
33343536
???ctex|cls??
\\newif\\ifCTEX@fancyhdr\\CTEX@fancyhdrfalse\\DeclareOption{fancyhdr}{\\CTEX@fancyhdrtrue}??/ctex|cls??
\\ifCTEX@fntef用于判断是否使用CJKfntef或者CCTfntef宏包,缺省是不使用。fntef选项为使用CJKfntef和CCTfntef宏包提供了统一接口。
37383940
???ctex|cls??
\\newif\\ifCTEX@fntef\\CTEX@fnteffalse\\DeclareOption{fntef}{\\CTEX@fnteftrue}??/ctex|cls??
支持\\subsubsection以下的小节标题编号,通过修改\\paragraph和\\subparagraph实现。
414243444546
???ctexcap|cls??
\\newcounter{CTEX@sectiondepth}\\setcounter{CTEX@sectiondepth}{2}
\\DeclareOption{sub3section}{\\setcounter{CTEX@sectiondepth}{3}}\\DeclareOption{sub4section}{\\setcounter{CTEX@sectiondepth}{4}}??/ctexcap|cls??
用于文档类的一些选项:
\\ifCTEX@sfoursize
用于判断是否使用中文小四号字,缺省是不使用。
47484950
???cls??
\\newif\\ifCTEX@sfoursize\\CTEX@sfoursizefalse
\\DeclareOption{cs4size}{\\CTEX@sfoursizetrue\\CTEX@fivesizefalse}??/cls??
3源代码说明17
\\ifCTEX@fivesize用于判断是否使用中文五号字,缺省是使用。
51525354
???cls??
\\newif\\ifCTEX@fivesize\\CTEX@fivesizetrue
\\DeclareOption{c5size}{\\CTEX@fivesizetrue\\CTEX@sfoursizefalse}??/cls??
A如果指定了标准的LTEX字体大小(10pt/11pt/12pt),则不使用中文字号作为缺省大
小。
5556575859606162636465666768697071727374
???cls??
\\DeclareOption{10pt}{%
\\CTEX@sfoursizefalse\\CTEX@fivesizefalse%\\PassOptionsToClass{\\CurrentOption}%??article??{article}}??report??{report}}??book??{book}}
\\DeclareOption{11pt}{%
\\CTEX@sfoursizefalse\\CTEX@fivesizefalse%\\PassOptionsToClass{\\CurrentOption}%??article??{article}}??report??{report}}??book??{book}}
\\DeclareOption{12pt}{%
\\CTEX@sfoursizefalse\\CTEX@fivesizefalse%\\PassOptionsToClass{\\CurrentOption}%??article??{article}}??report??{report}}??book??{book}}??/cls??
把没有定义的选项传递给缺省的文档类
75767778
??cls??\\DeclareOption*{\\PassOptionsToClass{\\CurrentOption}%??article??{article}}??report??{report}}??book??{book}}
处理选项
79
??sty|cls??\\ProcessOptions
A如果使用中文的缺省字号大小,则需要传递合适的参数给标准的LTEX文档类。
8081828384
???cls??
\\ifCTEX@sfoursize
\\PassOptionsToClass{12pt}%??article??{article}??report??{report}
3源代码说明18
858687888990919293
??book??{book}\\fi
\\ifCTEX@fivesize
\\PassOptionsToClass{10pt}%??article??{article}??report??{report}??book??{book}\\fi??/cls??
装入缺省的文档类
949596
??article??\\LoadClass{article}??report??\\LoadClass{report}??book??\\LoadClass{book}
3.2宏包
我们需要使用的一些宏包,其中cctbase和CJK用来处理中文:
979899100101102103104105106107108109110111112113114115116117118119120121122123
???cct??
\\ifCTEX@cctfont
\\RequirePackage{cctbase}[2003/04/05]\\else
\\RequirePackage[CJK]{cctbase}[2003/04/05]\\fi
\\ifCTEX@punct\\CCTpuncttrue\\else
\\CCTpunctfalse\\fi??/cct?????cjk??
\\RequirePackage{CJK}[2003/03/28]
\\RequirePackage{CJKnumb}[2003/03/28]\\ifCTEX@punct
\\RequirePackage{CJKpunct}[2004/02/13]\\fi??/cjk??%
%以及一些其他工具宏包:???ctex|cls??
\\RequirePackage{keyval}[1999/03/16]\\ifCTEX@indent
\\RequirePackage{indentfirst}\\fi
\\ifCTEX@psfont
3源代码说明19
124125126127128129130131132
\\RequirePackage[T1]{fontenc}\\RequirePackage{textcomp}\\RequirePackage{mathptmx}
\\RequirePackage[scaled]{helvet}\\RequirePackage{courier}\\else
\\RequirePackage{type1cm}\\fi
??/ctex|cls??
fancyhdr宏包,控制页眉页脚的设置
133134135136137
???ctex|cls??
\\ifCTEX@fancyhdr
\\RequirePackage{fancyhdr}\\fi
??/ctex|cls??
CCTfntef宏包和CJKfntef宏包
138139140141142143144145146147148149
???cct??
\\ifCTEX@fntef
\\RequirePackage{CCTfntef}\\normalem\\fi??/cct?????cjk??
\\ifCTEX@fntef
\\RequirePackage{CJKfntef}\\normalem\\fi??/cjk??
ctexcap宏包需要先装入ctex宏包。
150151152153154155
???ctexcap??
\\ifCTEX@caption
\\PassOptionsToPackage{cap}{ctex}\\fi
\\RequirePackage{ctex}??/ctexcap??
文档类还需要的宏包:
156157
???cls????/cls??
3.3辅助定义
我们定义一些将在后面使用的宏。
3源代码说明20
158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
???ctex|cls??
\\DeclareRobustCommand\\CTeX{C\\kern-.05em\\TeX{}}\\newcommand*\\CTEX@key{\\define@key{CTEX}}
\\newcommand*\\CTEXoptions[1][]{\\setkeys{CTEX}{#1}}\\newcommand*\\CTEX@subkey[1]{\\define@key{CTEX#1}}\\newcommand*\\CTEXsetup[2][]{\\setkeys{CTEX#2}{#1}}??/ctex|cls??
???ctex|cls??
??article??\\def\\CTEX@cls@article{}??report??\\def\\CTEX@cls@report{}??book??\\def\\CTEX@cls@book{}???ctex??
\\@ifclassloaded{article}{\\def\\CTEX@cls@article{}}{}\\@ifclassloaded{report}{\\def\\CTEX@cls@report{}}{}\\@ifclassloaded{book}{\\def\\CTEX@cls@book{}}{}??/ctex??
\\def\\ifCTEX@cls#1{%
\\expandafter\\ifx\\csnameCTEX@cls@#1\\endcsname\\relax\\expandafter\\@secondoftwo\\else
\\expandafter\\@firstoftwo\\fi}??/ctex|cls??
???ctexcap??
\\@ifundefined{if@mainmatter}{\\let\\if@mainmatter\\iftrue}{}??/ctexcap??
???ctex|cls??
\\def\\CTEX@replacecommand#1#2#3{%
\\expandafter\\expandafter\\expandafter\\let\\expandafter\\csname#1#3\\expandafter\\endcsname\\csname#2#3\\endcsname
\\expandafter\\expandafter\\expandafter\\def\\expandafter\\csname#2#3\\expandafter\\endcsname{\\csname#1#3\\endcsname}}??/ctex|cls??
3.4通用中文设置
和CCT以及CJK相关的内容分放在各自的.clo文件中
193194195196
???ctex|cls??\\ifCTEX@cct
\\input{ctexcct.clo}\\else
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库ctex(4)在线全文阅读。
相关推荐: