(2)两种环境。 CJK定义了两个环境,它们是: (A)CJK*环境。 \begin{CJK*}[字模编码]{编码}{字体族} ............ \end{CJK*}
(B)CJK环境。 \begin{CJK}[字模编码]{编码}{字体族} ............ \end{CJK} 两个环境的区别是:CJK*环境将忽略汉字之间的空格以及换行,只考虑象'\空格'那样受保护的空白。而CJK环境与之相反。根据我们汉字习惯,应该使用CJK*环境。 两个环境之间切换的命令为: \CJKspace, CJK*切换到CJK \CJKnospace, CJK切换到CJK*
一个例子: \begin{CJK*}{GBK}{song} %里面的汉字默认为宋体 \end{CJK*}
(3)六种中文字体及字体切换。 CTEX中文套装中定义了六种中文字体,分别是 song, 宋体 fs, 仿宋 kai, 楷书 hei, 黑体 li, 隶书 yuan, 幼圆
在一个CJK环境中字体之间切换的可以使用下面命令: \CJKenc{编码} \CJKfamily{字体}
例如切换成繁体宋, \CJKenc{Big5} \CJKfamily{song}
(4)两种使用方法。 有两种使用CJK的方法 (A)常规方法: \documentclass{book} \usepackage{CJK} \begin{CJK*}{GBK}{song} ......%导言中含有中文 \end{CJK*} \begin{document} \begin{CJK*}{GBK}{song}
......%正文中含有中文
\newpage \end{CJK*} \end{document}
(B)非常用法。 \documentclass{book} \usepackage{CJK} \begin{CJK*}{GBK}{song} ......%导言中含有中文 \begin{document}
......%正文中含有中文
\newpage \end{CJK*} \end{document} 后者可以解决页眉、页脚、装订线等在常规用法中不能正确显示的问题。副作用是在文章最后产生了一个空白页。
(5)相关排版命令 (1)\CJKcaption{GB} 章节标题为中文 (2)\CJKtilde 重新定义“~”的值,使得中英文之间能产生合适的间距。例如,变量~$x$~的范围。 (3)\standardtilde 恢复原来“~”的定义。如果不想恢复原来的定义而要用的话可以使用\nbs代替“~”。 (4)\CJKindent CJK缩进命令,最好与indentfirst宏包结合使用,它是CJK4.5.1新增的命令。 (5)\CJKglue,\CJKkern,\CJKboldshift等的功能不详,好象也不常用。
(6)关于CJK中汉字间距的问题。(Shredder提供)\CJKglue 很简单,就是插在每个汉字之间的 glue它的缺省大小定义在 CJK.sty 里:\newcommand{\CJKglue}{\hskip \z@ \@plus .08\baselineskip}是 0pt plus 0.08\baselineskip 稍微可以伸长,而且这个伸长量跟字体大小有关系。TeX 选择断行点的时候会这样看:这个点如果断开,行里的 glue 如果在原位,那么就是很好的。否则,如果 glue 有伸长,TeX 的算法会认为这一行有 100r^{3} 的 penalty, 其中 r 代表伸长的比例。比如如果你这行一共有 10 个pt的伸长容量,如果你的这样算下来,那些 glue 一共伸长了 9pt, 那么 penalty 是 100*(9/10)^3=72.9。最后,TeX 会综合很多很多因素,从中选出最优的断行方法。你知道 TeX 为什么如此完美了吧?呵呵。 CCT 的\ziju相当于是没有伸缩功能的 glue, 它可以定义为:\newcommand\ziju[1]{\renewcommand{\CJKglue}{\hskip #1pt}}(我不知道CCT的字距的单位是什么?pt? 就当是pt吧。不是的话你自己改改。)你可以试试以下的内容改变字距,体会一下 glue 是什么东西
%=====================================================================\newcommand\ziju[1]{\renewcommand{\CJKglue}{\hskip #1pt}}\begin{verbatim}\newcommand\ziju[1]{\renewcommand{\CJKglue}{\hskip #1pt}}\end{verbatim}
\ziju{2.3}\begin{verbatim}\ziju{2.3}\end{verbatim}现在的字距是 2.3pt.
\ziju{1}\begin{verbatim}\ziju{1}\end{verbatim}现在的字距是 1pt.
\renewcommand{\CJKglue}{\hskip 2.3pt}\begin{verbatim}\renewcommand{\CJKglue}{\hskip 2.3pt}\end{verbatim}现在的字距是 2.3pt.
\renewcommand{\CJKglue}{\hskip 1em}\begin{verbatim}\renewcommand{\CJKglue}{\hskip 1em}\end{verbatim}现在的字距是 1em(一个汉字的宽度).
\renewcommand{\CJKglue}{\hskip 2.3pt plus 3pt}\begin{verbatim}\renewcommand{\CJKglue}{\hskip 2.3pt plus 3pt}\end{verbatim}现在的字距是 2.3pt plus 3pt (有 3pt 的伸长容量).
\framebox[1.2\width][s]{现在的字距是 2.3pt plus 3pt (有 3pt 的伸长容量).}
\renewcommand{\CJKglue}{\hskip 2.3pt plus 3pt minus 2.3pt}\begin{verbatim}\renewcommand{\CJKglue}{\hskip 2.3pt plus 3pt minus 2.3pt}\end{verbatim}现在的字距是 2.3pt plus 3pt (有 3pt 的伸长容量和 2.3pt 的收缩容量).
\framebox[3in][s]{现在的字距是 2.3pt plus 3pt minus 2.3pt(有 3pt 的伸长容量和 2.3pt 的收缩容量).}
\renewcommand{\CJKglue}{\hskip 2.3pt plus 3pt minus 10pt}\begin{verbatim}\renewcommand{\CJKglue}{\hskip 2.3pt plus 3pt minus 10pt}\end{verbatim}\framebox[3in][s]{现在的字距是 2.3pt plus 3pt minus 10pt (有 3pt 的伸长容量和 10pt 的收缩容量).}
(7)CJK中的字号的定义。摘自cxterm的cjkcct宏包。%% define the size of CJK characters. but not recommend to use%\newcount\CJK@ZihaoNo\def\defCJKfontsize#1#2#3#4{% \fontsize{#1}{#2 plus#3 minus #4}\selectfont\CJKindent}\def\zihao#1{\CJK@ZihaoNo=#1 \ifnum \CJK@ZihaoNo=0 \defCJKfontsize{34pt}{46pt}{.5pt}{.3pt} \else\ifnum \CJK@ZihaoNo=1 \defCJKfontsize{26pt}{35pt}{.5pt}{.3pt} \else\ifnum \CJK@ZihaoNo=2 \defCJKfontsize{20pt}{28.5pt}{.5pt}{.3pt} \else\ifnum \CJK@ZihaoNo=3 \defCJKfontsize{15pt}{20pt}{.3pt}{.2pt} \else\ifnum \CJK@ZihaoNo=4 \defCJKfontsize{13.75pt}{19pt}{.3pt}{.2pt} \else\ifnum \CJK@ZihaoNo=-4 \defCJKfontsize{11.32pt}{18pt}{.3pt}{.2pt} \else\ifnum \CJK@ZihaoNo=5 \defCJKfontsize{9.9pt}{13pt}{.3pt}{.2pt} \else\ifnum \CJK@ZihaoNo=-5 \defCJKfontsize{8.5pt}{12pt}{.2pt}{.1pt} \else\ifnum \CJK@ZihaoNo=6 \defCJKfontsize{7.5pt}{10pt}{.2pt}{.1pt} \else\ifnum \CJK@ZihaoNo=7 \defCJKfontsize{5pt}{8pt}{.1pt}{.1pt} \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}%%