summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/xelatex/xecjk/tex/xeCJK-manual-cn.tex
blob: 7f8cfeb9512d1aece0f58660990c74d1c3c3b3d6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
% -*- coding: utf-8 -*-
\documentclass[11pt]{article}
\usepackage{color}
\usepackage[bookmarks=true,bookmarksopen=true,dvipdfm,pdfstartview=FitH]{hyperref}
\usepackage[boldfont,slantfont,CJKnumber]{xeCJK}
\textheight 220mm
\textwidth 150mm
\oddsidemargin 0pt
\evensidemargin 0pt
%
%    要查看系统已安装的中文字体名, 请在命令行下运行
%
%           C:\>fc-list :lang=zh-cn
%
%
\defaultfontfeatures{Mapping=tex-text}
\iffalse
\setmainfont{TeX Gyre Termes}% 设置缺省英文字体
\setCJKmainfont{Bitstream CyberCJK}% 设置缺省中文字体
\setCJKmonofont[Scale=0.9]{Bitstream CyberCJK}% 设置 中文字体
\setCJKfamilyfont{song}{Bitstream CyberCJK}% 设置 中文字体
\else
\setmainfont{Times New Roman}% 设置缺省英文字体
\setCJKmainfont{SimSun}% 设置缺省中文字体
\setCJKmonofont[Scale=0.9]{YouYuan}% 设置 中文字体
\setCJKfamilyfont{song}{SimSun}% 设置 中文字体
\fi
\def\xeCJK{{\textcolor{blue}{\texttt{xeCJK}}}}

\begin{document}
\zhcnparindent
\parskip 5pt
\title{xeCJK 宏包}
\author{孙文昌}
\def\today{\the\year 年 \the\month 月\the\day 日}
\date{\today}
\maketitle


\section{简介}

\zhcnparindent

\xeCJK\  是一个 XeLaTeX 宏包,用于排版 CJK 文字,包括字体选择、标点控制等。
提供四种标点处理方式: 全部全角式、全部半角式、开明式、CCT 格式。

\long\def\sometexts{计算机(computer / calculation machine)是总称,一般在学术性或正式场合使用。
在通常用语中,计算机一般指电子计算机中用的个人电脑。
计算机是一种能够按照指令对各种数据和信息进行自动加工和处理的电子设备。
它由多个零配件组成,如中央处理器、主板、内存、电源、显卡等。接收、
处理和提供数据的一种装置,通常由输入输出设备、存储器、运算和逻辑
部件以及控制器组成;有模拟式、数字式及混合式三种类型。}

{\color{blue}全角标点

\punctstyle{quanjiao}\sometexts}

半角标点

\punctstyle{banjiao}\sometexts

{\color{blue}
开明

\punctstyle{kaiming}\sometexts}

CCT

\punctstyle{CCT}\sometexts



对于中英文混排,允许在非标点汉字和英文字母 (a-z, A-Z) 间断行。 支持自动切换中英文字体。

\section{系统要求}

\xeCJK\  使用了 XeTeX 的一些最新特性, 需要 XeTeX 0.997 [2008/03/07] 以后的版本。

\subsection{MiKTeX}

对于 MiKTeX 系统, 下载最新版即可。

\subsection{TeXLive 2007}
对于 Windows 下的 TeXLive 2007, 可以下载

ftp://akagi.ms.u-tokyo.ac.jp/pub/TeX/win32/xetex-dev-w32.tar.bz2

\noindent
解压缩后, 把 /bin 中的文件复制到 \$TEXMFMAIN../bin/win32/, 覆盖
原来文件。
把 /share/ texmf
中的文件保持目录结构复制到 \$TEXMFLOCAL,
然后把文件夹 \$TEXMFLOCAL/tex/ xetex/xelatex 移动到 \$TEXMFLOCAL/tex/xelatex,
更新文件名数据库即可。


\section{使用方法}



\begin{verbatim}
   \usepackage[Options]{xeCJK}
选项:
   [BoldFont]:     启用CJK粗体字.
   [SlantFont]:    启用CJK斜体字.
   [CJKnumber]:    调用CJKnumb宏包
   [CJKaddspaces]: 在中英文转换时自动插入空格。
\end{verbatim}

为实现对中文标点的特殊处理, 需要使用

\verb+\CJKlanguage{zh-cn}+

定义字体时 \verb+<font features>+
 中的 \verb+ItalicFont={<font name>}+ 和 \verb+BoldFont={<font name>}+
 分别比 \verb+[SlantFont]+ 和 \verb+[BoldFont]+ 选项具有更高的优先级,见下一节。





\section{英文字体}

英文字体完全参照 XeTeX 的标准。


\section{中文字体} \label{sec:a}

\subsection{设置字体}
提供以下宏命令:
\begin{verbatim}
     \setCJKmainfont[<font features>]{<font name>}
     \setCJKsansfont[<font features>]{<font name>}
     \setCJKmonofont[<font features>]{<font name>}
     \setCJKfamilyfont{<family name>}[<font features>]{<font name>}
\end{verbatim}
它们分别设置缺省中文字体、中文 sffamily、中文 ttfamily 和某个 CJKfamily 所对应中文字体,
其中最后两个参数的意义请参考 \verb+\fontspec.+

与 CJK 包类似, 使用命令 \verb+\CJKfamily{<family name>}+ 改变当前中文字体。


\subsection{例子}

以下命令设置缺省英文字体为 Times New Roman, 缺省中文字体为 SimSun (宋体),
最后一个命令设置 CJKfamily “song” 为 SimSun ({\CJKfamily{song}宋体})。
\begin{verbatim}
    \setmainfont{Times New Roman}
    \setCJKmainfont{SimSun}
    \setCJKfamilyfont{song}{SimSun}
\end{verbatim}

\noindent
下表中, 左边为输入, 右边为排版效果:

\begin{tabular}{p{80mm}|p{50mm}}
\verb+这是缺省字体 abCD+ &这是缺省字体 abCD\\
\verb+\bfseries 这是缺省字体 abCD+ &{\bfseries 这是缺省字体 abCD}\\
\verb+\itshape 这是缺省字体 abCD+ &{\itshape 这是缺省字体 abCD}\\
\verb+\bfseries\itshape 这是缺省字体 abCD+ &\bfseries\itshape 这是缺省字体 abCD\\
\\
\verb+\CJKfamily{song}这是宋体+ &{\CJKfamily{song}这是宋体}\\
\end{tabular}



\begin{verbatim}
注意:
  1. 要查看系统已安装的中文字体名, 请在命令行下运行
       C:\>fc-list :lang=zh-cn
  2. 如果在定义中文字体时<font features>中指定了ItalicFont={font name},
     则宏包的SlantFont选项对该字体不起作用。
  3. 如果在定义中文字体时<font features>中指定了BoldFont={font name},
     则宏包的BoldFont选项对该字体不起作用。
\end{verbatim}


\section{高级命令}

\subsection{设置标点格式}

提供以下命令
\begin{verbatim}
  \punctstyle{quanjiao}  % 全角标点
  \punctstyle{banjiao}   % 半角标点
  \punctstyle{kaiming}   % 开明式
  \punctstyle{CCT}       % CCT格式
\end{verbatim}



\subsection{设置 SlantFont 和 BoldFont}

可以使用命令
\begin{verbatim}
  \xeCJKsetslantfactor{<slant factor>}
  \xeCJKsetemboldenfactor{<embolden factor>}
\end{verbatim}
分别设置斜体和粗体的倾斜和粗细程度。其中 slant factor 的范围为 -0.999 $\sim$ 0.999. 缺省设置为
\begin{verbatim}
  \xeCJKsetslantfactor{0.17}
  \xeCJKsetemboldenfactor{4}
\end{verbatim}
注意,这两个宏命令仅对随后定义的 CJK 字体有效。


\subsection{设置字间距}
\begin{verbatim}
  \CJKglue:   设置中文字间距
缺省值:
  \def\CJKglue{\hskip \z@ \@plus .08\baselineskip}
\end{verbatim}

\subsection{中英文混排}

提供两个命令:

\verb+\CJKnormalspaces+(缺省值): 仅忽略汉字之间的空白,但保留中英文之间的空白。

\verb+\CJKaddspaces+: 忽略汉字之间的空白,并且自动在中英文转换时插入空白。

可以在调用宏包时指定 \verb+CJKaddspaces+ 选项以自动自动在中英文转换时插入空白。

试比较:

\noindent 输入:
\begin{verbatim}
  这是 English 中文 $x=y$ 数学 \textit{Chinese} {\bfseries 中文} \LaTeX\
  间隔 {\itshape Italic} 字体\par
  这是English中文$x=y$数学\textit{Chinese}{\bfseries 中文}\LaTeX\
  间隔{\itshape Italic}字体\par
\end{verbatim}

\noindent
使用 \verb+\CJKnormalspaces+ 排版的效果:

\CJKnormalspaces
  这是 English 中文 $x=y$ 数学 \textit{Chinese} {\bfseries 中文} \LaTeX\
  间隔 {\itshape Italic} 字体\par
  这是English中文$x=y$数学\textit{Chinese}{\bfseries 中文}\LaTeX\
  间隔{\itshape Italic}字体\par

\noindent
使用 \verb+\CJKaddspaces+ 排版的效果:

\CJKaddspaces
  这是 English 中文 $x=y$ 数学 \textit{Chinese} {\bfseries 中文} \LaTeX\
  间隔 {\itshape Italic} 字体\par
  这是English中文$x=y$数学\textit{Chinese}{\bfseries 中文}\LaTeX\
  间隔{\itshape Italic}字体\par

说明:
\begin{enumerate}
\item 在 \verb+\CJKaddspaces+模式下中英文间距由\verb+\CJKecglue+控制, 缺省值为

  \verb+\def\CJKecglue{\hskip 0.25em plus 0.10em minus 0.10em}+\newline
可以重新定义\verb+\CJKecglue+以调整中英文间距。

\item  有些情况下不能自动调整间距, 例如\mbox{boxes}。此时,需要手动调整,如盒子 \mbox{boxes}.
\end{enumerate}



\CJKnormalspaces

\subsection{多种语言支持}

使用命令 \verb+\CJKlanguage{<language spec>}+ 指定所使用的语言。目前支持

\begin{verbatim}
  \CJKlanguage{Chinese-Simp} % 简体中文(缺省值)
  \CJKlanguage{Chinese-Trid} % 繁体中文
  \CJKlanguage{Japanese}     % 日本语
  \CJKlanguage{Koren}        % 朝鲜语
\end{verbatim}

\subsection{设置 CJK 范围}

缺省状态下,\xeCJK\  把 0x3000 --- 0x9FFF 之间的字符看成 CJK 文字,即 CJK
相关的字体设置(仅)对
在此范围内的字符有效。可以使用如下宏改变字符类别:
\begin{verbatim}
  \xeCJKsetcharclass{<first>}{<last>}{<class>}
\end{verbatim}

例如,以下命令设置 0x0080 --- 0x2FFF 之间的字符为非 CJK 文字,而 0x20000
 --- 0x30000 之间的为 CJK 文字:
\begin{verbatim}
  \xeCJKsetcharclass{"80}{"2FFF}{0}
  \xeCJKsetcharclass{"20000}{"30000}{1}
\end{verbatim}
注意:最后一个参数只能为 0 或 1。不要轻易改变字符类别。







\section{兼容性}

\subsection{CJKfntef}
可以在 \xeCJK\  包之后调入 CJKfntef 宏包, 以实现对汉字加点、下划线等。

\subsection{CJKnumber}

\verb+\CJKnumber{12345}+:  \CJKnumber{12345}

\subsection{CTEX 宏包}
使用 ctex 宏包如 ctexart, ctexbook, ctexreport 时, 需要
在 \verb+\documentclass+ 之前加上一行

\verb+    \input{ctex4xetex.cfg}+

具体例子见 example-ctex.tex

\subsection{CJK}
为了与 CJKnumb, CJKulem 和 CJKfntef 包兼容,\xeCJK\  重新定义了 CJK 包的部分宏命令,如
\verb+\CJKfamily+, \verb+\CJKsymbol+, \verb+\CJKpunctsymbol+ 等。

需要指出,\xeCJK\  包不需要 CJK 包的支持,并且 \xeCJK\  包自动禁止载入 CJK 包。




\end{document}