OSDN Git Service

updated the Chinese manual.
[luatex-ja/luatexja.git] / doc / luatexja-zh.tex
1 \documentclass{ltjarticle}
2 \pdfgentounicode=1
3 \pdfglyphtounicode{ff}{0066 0066}
4 \pdfglyphtounicode{fi}{0066 0069}
5 \pdfglyphtounicode{fl}{0066 006C}
6 \pdfglyphtounicode{ffi}{0066 0066 0069}
7 \pdfglyphtounicode{ffl}{0066 0066 006C}
8 \DeclareYokoKanjiEncoding{ZH}{}{}
9 \DeclareKanjiEncodingDefaults{}{}
10 \DeclareErrorKanjiFont{ZH}{song}{m}{n}{10}
11 \DeclareKanjiSubstitution{ZH}{song}{m}{n}
12 \newcommand\songdefault{song}
13 \newcommand\heidefault{hei}
14 \newcommand\minchodefault{mincho}
15 \renewcommand\kanjiencodingdefault{ZH}
16 \renewcommand\kanjifamilydefault{\songdefault}
17 \renewcommand\kanjiseriesdefault{\mddefault}
18 \renewcommand\kanjishapedefault{\updefault}
19 \DeclareKanjiFamily{ZH}{song}{}
20 \DeclareFontShape{ZH}{song}{m}{n}{<->name:AdobeSongStd-Light:jfm=jis}{}
21 \DeclareFontShape{ZH}{song}{m}{it}{<->name:AdobeSongStd-Light:jfm=jis}{}
22 \DeclareFontShape{ZH}{song}{bx}{n}{<->ssub*hei/m/n}{}
23 \DeclareKanjiFamily{ZH}{hei}{}
24 \DeclareFontShape{ZH}{hei}{m}{n}{<->name:AdobeHeitiStd-Regular:jfm=jis}{}
25 \DeclareFontShape{ZH}{hei}{bx}{n}{<->name:AdobeHeitiStd-Regular:jfm=jis}{}
26 \DeclareKanjiFamily{ZH}{mincho}{}
27 \DeclareFontShape{ZH}{mincho}{m}{n}{<->name:KozMinPr6N-Regular:jfm=jis}{}
28 \fontencoding{ZH}\selectfont
29 \DeclareTextFontCommand{\textsong}{\songfamily}
30 \DeclareTextFontCommand{\texthei}{\heifamily}
31 \DeclareTextFontCommand{\textmincho}{\minchofamily}
32 \DeclareOldFontCommand{\song}{\normalfont\songfamily}{}
33 \DeclareOldFontCommand{\hei}{\normalfont\heifamily}{}
34 \DeclareOldFontCommand{\mincho}{\normalfont\minchofamily}{}
35 \DeclareSymbolFont{songti}{ZH}{song}{m}{n}
36 \jfam\symsongti
37 \SetSymbolFont{songti}{bold}{ZH}{hei}{m}{n}
38 \DeclareSymbolFontAlphabet{\mathsong}{songti}
39 \DeclareMathAlphabet{\mathhei}{ZH}{hei}{m}{n}
40 \makeatletter
41 \DeclareRobustCommand\songfamily{\not@math@alphabet\songfamily\mathsong\kanjifamily\songdefault\selectfont}
42 \DeclareRobustCommand\heifamily{\not@math@alphabet\heifamily\mathhei\kanjifamily\heidefault\selectfont}
43 \DeclareRobustCommand\minchofamily{\not@math@alphabet\minchofamily\mathhei\kanjifamily\minchodefault\selectfont}
44 \DeclareRobustCommand\rmfamily{\not@math@alphabet\rmfamily\mathrm\romanfamily\rmdefault\kanjifamily\songdefault\selectfont}
45 \DeclareRobustCommand\sffamily{\not@math@alphabet\sffamily\mathsf\romanfamily\sfdefault\kanjifamily\heidefault\selectfont}
46 \makeatother
47 \protected\def\Pkg#1{\underline{\smash{\texttt{#1}}}}
48 \def\postpartname{编}
49 \DeclareRobustCommand\eTeX{\ensuremath{\varepsilon}-\kern-.125em\TeX}
50 \DeclareRobustCommand\LuaTeX{Lua\TeX}
51 \DeclareRobustCommand\pdfTeX{pdf\TeX}
52 \DeclareRobustCommand\pTeX{p\kern-.05em\TeX}
53 \DeclareRobustCommand\upTeX{up\kern-.05em\TeX}
54 \DeclareRobustCommand\pLaTeX{p\kern-.05em\LaTeX}
55 \DeclareRobustCommand\pLaTeXe{p\kern-.05em\LaTeXe}
56 \DeclareRobustCommand\epTeX{\ensuremath{\varepsilon}-\kern-.125em\pTeX}
57 \usepackage[twoside,left=23mm,width=170mm,right=17mm,top=25mm,height=231mm,bottom=32mm]{geometry}
58 \usepackage{amsmath,amssymb,xcolor,pict2e,multienum,amsthm,float,makecell,booktabs,multicol,showexpl}
59 \usepackage{luatexja-otf}
60 \usepackage{luatexja-fontspec}
61 \usepackage[all]{xy}
62 \usepackage{hyperref}
63 \hypersetup{%
64         unicode,
65         bookmarksnumbered,
66         bookmarksopen,
67         colorlinks,
68         allbordercolors=1 1 1,
69         allcolors=blue,
70         pdfauthor={LuaTeX-ja团队},
71         pdftitle={LuaTeX-ja宏包}
72 }
73
74 \lstset{
75   basicstyle=\ttfamily\small, pos=r, breaklines=true,
76   numbers=none, rframe={}, basewidth=0.5em
77 }
78 \title{\LuaTeX-ja宏包}
79 \author{\LuaTeX-ja项目团队}
80 \date{}
81 \begin{document}
82 \maketitle
83 \tableofcontents
84 \part{用户手册}
85 \section{引言}
86 \LuaTeX-ja宏包是应用于\LuaTeX引擎上的高质量日语文档排版宏包。
87 \subsection{开发背景}
88 一般情况下,\TeX下的日语文档输出,是ASCII \pTeX(\TeX的一个扩展)及其衍生软件来完成的。
89 \pTeX作为\TeX的一个扩展引擎,在生成高质量的日语文档时,规避了繁杂的宏编写。
90 但是在和同时期的引擎相比之下,\pTeX的处境未免有些尴尬:\pTeX已经远远落后于\eTeX和pdf\TeX,此外也没有跟上计算机上对日文处理的演进(比如,UTF-8编码,TrueType字体,OpenType字体)。
91
92 最近开发的\pTeX扩展,即\upTeX(Unicode下的\pTeX实现)和\epTeX(\pTeX和\eTeX的融合版本),虽然在部分情况上弥补了上述的差距,但是差距依然存在。
93
94 不过,\LuaTeX的出现改变了整个状况。用户可以通过使用Lua语言的“callback”来调整\LuaTeX的内部处理机制。所以,没有必要去通过修改引擎的源代码来支持日文排版,相反,我们需要做的仅仅是编写其当处理callback的Lua脚本。
95 \subsection{与\pTeX的差异所在}
96 \LuaTeX-ja宏包在设计上,受\pTeX影响很大。最初开发的主要议题是实现\pTeX的特性。
97 不过,{\bf\LuaTeX-ja不是简简单单的移植\pTeX,很多不自然的特征和现象都被移出了。}
98
99 下面列举出了一些和\pTeX的差异:
100 \begin{itemize}
101 \item 一个日文字体是由三部分构成的元组:实际的字体(如小塚明朝,IPA明朝),日文字体测度(\textbf{JFM})和变体字串。
102 \item \pTeX中,日文字符之后的断行并不允许(也不产生空格),其他在源码中的断行是可以随处允许的。不过,因为\LuaTeX的特殊关系,\LuaTeX-ja并没有这个功能。
103 \item 插在日文字符和其他字符言之间的胶/出格(我们将此称为\textbf{JAglue})是重现实现的。
104         \begin{itemize}
105         \item 在\LuaTeX中,内部的字符处理是“基于node的”(例如:\verb!of{}fice!不会避免合字),
106                 \textbf{JAglue}的插入处理,现在也是“基于node的”。
107         \item 此外,两个字符之间的node在断行时不起作用的(例如,\verb!\special!node),还有
108                 意大利体校正带来的出格在插入处理中也是被忽略的。
109         \item \textbf{警告:鉴于以上两点,在\pTeX中分割\textbf{JAglue}处理的多种方法不再生效。}
110                 明确地说,下列两种方法不再生效:
111                 \begin{verbatim}
112                   ちょ{}っと  ちょ\/っと
113                 \end{verbatim}
114                 如果想得到此种结果,请使用空盒子替代:
115                 \begin{verbatim}
116                   ちょ\hbox{}っと
117                 \end{verbatim}
118         \item 处理过程中,两个在“真实”字体上具区别的日文字体可以被识别出来。
119         \end{itemize}
120 \item 当下,\LuaTeX-ja并不支持直行排版。
121 \end{itemize}
122 \subsection{一些约定} 
123 在本文档中,有下面一些约定:
124 \begin{itemize}
125 \item 所有的日文字符为\textbf{JAchar},所有的其他字符为\textbf{ALchar}
126 \item primitive,该词在本文档中不仅表示\LuaTeX的基本控制命令,也包括\LuaTeX-ja的相关的基本控制命令
127 \item 所有的自然数从0开始
128 \item 本文档中文文档是根据日文文档翻译并添加部分材料组织而成的,所以在大部分篇幅上还是主要依赖于日文原文档
129 \end{itemize}
130 \subsection{关于本项目}
131 \paragraph{项目wiki} 本项目wiki正在不断编写中。
132 \begin{itemize}
133 \item \url{http://sourceforge.jp/projects/luatex-ja/wiki/FrontPage%28en%29}(英文)
134 \item \url{http://sourceforge.jp/projects/luatex-ja/wiki/FrontPage}(日文)
135 \item \url{http://sourceforge.jp/projects/luatex-ja/wiki/FrontPage%28zh%29}(中文)
136 \end{itemize}
137 \paragraph{开发者}
138 \begin{multienumerate}
139 \def\labelenumi{$\bullet$}
140 \mitemxxx{北川弘典}{前田一贵}{八登崇之}
141 \mitemxxx{黒木裕介}{阿部纪行}{山本宗宏}
142 \mitemxxx{本田知亮}{斋藤修三郎}{马起园}
143 \end{multienumerate}
144 \section{初次使用}
145 \subsection{安装}
146 在安装\LuaTeX-ja之前,请确认:
147 \begin{itemize}
148 \item \LuaTeX(版本号为大于0.65)和相关支持宏包。\\
149 如果用户使用的是\TeX Live2011以及最新版本的W32\TeX,都可以不考虑此项。
150 \item \LuaTeX-ja的源码:)
151 \item \Pkg{xunicode}宏包,当前版本必须为\textit{v0.981(2011/09/09)}。\\
152 如果你使用\Pkg{fontspec}宏包,\Pkg{xunicode}必须存在。但是请注意该包版本,其他版本可能不会正常工作。
153 \end{itemize}
154 安装方法如下:
155 \begin{enumerate}
156 \item 用下列诸多方法下载源码归档。当前,\LuaTeX-ja并无\textbf{稳定}版本。
157         \begin{itemize}
158         \item 从git中复制\\
159                 \verb!$ git clone git://git.sourceforge.jp/gitroot/luatex-ja/luatexja.git!
160         \item 下载\texttt{master}分支HEAD的\texttt{tar.gz}归档\\
161                 \url{http://git.sourceforge.jp/view?p=luatex-ja/luatexja.git;a=snapshot;h=HEAD;sf=tgz}
162         \item 现在\LuaTeX-ja已经包含于CTAN中(在\texttt{macros/luatex/generic/luatexja}文件夹)和W32\TeX中(\texttt{luatexja.tar.gz})。这些版本基于\texttt{master}版本。
163         \end{itemize}
164 \item 解压归档。你将看到\texttt{src/}和其他文件夹。但是只有\texttt{src/}文件夹的内容是\LuaTeX-ja宏包运行所需。
165 \item 将\texttt{src/}文件夹内容复制到\texttt{TEXMF}树下某个位置。\texttt{TEXMF/tex/luatex/luatexja/}是一个例子。如果你克隆了全部的Git仓库,将\texttt{src/}做成符号链接来代替复制也不错。
166 \item 如果需要升级文件名数据库,请执行\texttt{mktexlsr}。
167 \end{enumerate}
168 \subsection{警告}
169 \begin{itemize}
170 \item 你的源文件编码必须是UTF-8。其他编码不行,例如EUC-JP或者Shift-JIS。
171 \end{itemize}
172 \subsection{plain \TeX格式下的使用}
173 在plain \TeX下使用\LuaTeX-ja相当简易,在文档开头放置一行:
174 \begin{verbatim}
175 \input luatexja.sty
176 \end{verbatim}
177
178 这里做出了做小的日文文档排版设定(如\texttt{ptex.tex}):
179 \begin{itemize}
180 \item 提前加载了六种日文字体,如下:
181 \begin{center}
182 \begin{tabular}{ccccc}
183 \toprule
184 \textbf{字体}&\textbf{字体名}&\bf `10\,pt'&\bf`7\,pt'&\bf`5\,pt'\\\midrule
185 明朝体&Ryumin-Light    &\verb+\tenmin+&\verb+\sevenmin+&\verb+\fivemin+\\
186 哥特体&GothicBBB-Medium&\verb+\tengt+ &\verb+\sevengt+ &\verb+\fivegt+\\
187 \bottomrule
188 \end{tabular}
189 \end{center}
190         \begin{itemize}
191         \item “Q(级)”是日本照排中使用的尺寸单位,$1 \mathrm{Q} = 0.25\mathrm{mm}$。该长度保存在长度\verb!\jQ!中。
192         \item 广为接受的“Ryumin-Light”和“GothicBBB-Medium”字体不嵌入PDF文件,而PDF阅读器则会使用外部日文字体替代(例如,在Adobe Reader中使用Kozuka Mincho字体替代Ryumin-Light)。我们使用默认设定。
193         \item 一般情况下,相同大小日文字体比西文字体要大一下。所以实际的日文字体尺寸需哟小于西文字体,即使用一个缩放率:0.962216。
194         \end{itemize}
195 \item 在\textbf{JAchar}和\textbf{ALchar}之间插入的胶(\textsf{xkanjiskip}参数)大小为:
196 $$(0.25\times0.962216\times\mathrm{10pt})^{\mathrm{+1pt}}_{\mathrm{-1pt}} = 2.40554\mathrm{pt}^{\mathrm{+1pt}}_{\mathrm{-1pt}}$$
197 \end{itemize}
198 \subsection{在\LaTeX下使用}
199 \paragraph{\LaTeXe} 在\LaTeXe下使用基本相同。设定日文的最小环境,你只需加载\texttt{luatexja.sty}:
200 \begin{verbatim}
201 \usepackage{luatexja}
202 \end{verbatim}
203
204 这些做了最小的设定(作用相当于\pLaTeX中的\verb!plfonts.dtx!和\verb!pldefs.ltx!):
205 \begin{itemize}
206 \item \texttt{JY3}是日文字体编码(在水平方向)。\\
207         在将来\LuaTeX-ja要支持直行排版的时候,\texttt{JT3}会用于直行字体。
208 \item 定义了两个字体族:\verb!mc!和\verb!gt!:\\
209 \begin{center}
210         \begin{tabular}{ccccc}
211         \hline
212         \textbf{字体}&\textbf{字体族}&\verb!\mdseries!&\verb!\bfseries!&缩放率\\
213         \hline
214         \textit{mincho}&\verb!mc!&Ryumin-Light&GothicBBB-Medium&0.962216\\
215         \textit{gothic}&\verb!gt!&GothicBBB-Medium&GothicBBB-Medium&0.962216\\
216         \hline
217         \end{tabular}
218 \end{center}
219 注意的是两个字体族的粗体系列同为中等系列的\textbf{哥特}族。这\pLaTeX中的规定。在近些年中的DTP实务中有仅使用2个字体的趋向(是为Ryumin-Light和GothicBBB-Medium)。
220 \item 在数学模式下,日文字符使用\verb!mc!字体族来排印
221 \end{itemize}
222
223 不过,上述设定并不能满足排版基于日文的文档。为了排印基于日文的文档,你最好不要使用\texttt{article.cls},\texttt{book.cls}等文档类文件。
224 现在,我们有相当于\Pkg{jclasses}(\pLaTeX标准文档类)和\Pkg{jsclasses}(奥村晴彦)的文档类,即\Pkg{ltjclasses}和\Pkg{ltjsclasses}。
225
226 \paragraph{OTF包中的\texttt{\char92CID},\texttt{\char92UTF}及其他宏} \pLaTeX下,\underline{\texttt{otf}}宏包(斋藤修三郎开发)是用来排印存在于Adobe-Japan1-6但不存在于JIS X 0208中的字符。
227 该包已经广泛使用,\LuaTeX-ja支持部分\Pkg{otf}包中的部分功能。
228 如果你想使用这些功能,加载\Pkg{luatexja-otf}宏包。
229 \bgroup
230 \mincho
231 \begin{LTXexample}
232 森\UTF{9DD7}外と内田百\UTF{9592}とが\UTF{9AD9}島屋に行く。
233
234 \CID{7652}飾区の\CID{13706}野家,
235 葛飾区の吉野家
236 \end{LTXexample}
237 \egroup
238 \subsection{改变字体}
239 \paragraph{注记:数学模式下的日文字符} \pTeX支持在数学模式下的日文字符,如以下源码:
240 \begin{LTXexample}
241 $f_{高温}$~($f_{\text{high temperature}}$).
242 \[ y=(x-1)^2+2\quad よって\quad y>0 \]
243 $5\in 素:=\{\,p\in\mathbb N:\text{$p$ is a prime}\,\}$.
244 \end{LTXexample}
245
246 我们(\LuaTeX-ja项目成员)认为在数学模式下使用日文字符,只有在这些字符充当标识符时才是正确的。在这点下,
247 \begin{itemize}
248 \item 第1行和第2行是不正确的,因为“高温”的作用为文本标签,“よって”用作为连词。
249 \item 不过,第3行是正确的,因为“素”是作为标识符的。
250 \end{itemize}
251
252 那么,根据我们的观点,上述输入应当校正为:
253 \begin{LTXexample}
254 $f_{\text{高温}}$~%
255 ($f_{\text{high temperature}}$).
256 \[ y=(x-1)^2+2\quad
257   \mathrel{\text{よって}}\quad y>0 \]
258 $5\in 素:=\{\,p\in\mathbb N:\text{$p$ is a prime}\,\}$.
259 \end{LTXexample}
260
261 我们也认为使用日文字符作为标识符的情况极为少见,所以我们不在此章节描述如何在数学模式下改变日文字体。
262 关于此方法,请参见。
263 \paragraph{plain \TeX} 在plain \TeX下改变日文字体,你必须使用基本语句\verb!\jfont!。请参见。
264
265 \paragraph{NFSS2} 对于\LaTeXe,\LuaTeX-ja采用了\pLaTeXe中(即\texttt{plfonts.dtx})大部分字体选择系统。
266 \begin{itemize}
267 \item \verb!\mcdefault!和\verb!\gtdefault!控制语句用来分别控制默认的\textit{mincho}和\textit{gothic}字体族。
268         默认值:\texttt{mc}用于\verb!\mcdefault!,\texttt{gt}用于\verb!\gtdefault!。
269 \item 命令\verb!\fontfamily!,\verb!\fontseries!,\verb!\fontshape!个\verb!\selectfont!用来改变日文字体属性。
270 \begin{center}
271 \begin{tabular}{cccccc}
272 \toprule
273 &\textbf{编码}&\textbf{族}&\textbf{系列}&\textbf{形状}&\textbf{选择}\\\midrule
274 西文字体
275 &\verb+\romanencoding+&\verb+\romanfamily+&\verb+\romanseries+&\verb+\romanshape+
276 &\verb+\useroman+\\
277 日文字体
278 &\verb+\kanjiencoding+&\verb+\kanjifamily+&\verb+\kanjiseries+&\verb+\kanjishape+
279 &\verb+\usekanji+\\
280 两者&---&--&\verb+\fontseries+&\verb+\fontshape+&---\\
281 自动选择&\verb+\fontencoding+&\verb+\fontfamily+&---&---&\verb+\usefont+\\
282 \bottomrule
283 \end{tabular}
284 \end{center}
285 \verb!\fontencoding{<encoding>}!依赖于参数以改变西文字体或者日文字体。
286 例如,\verb!\fontencoding{JY3}!改变当前日文字体至\texttt{JY3},\verb!\fontencoding{T1}!改变西文字体至\texttt{T1}。
287 \verb!\fontfamily!也会改变日文字体或西文字体的族,抑或二者。
288 细节详见。
289 \item 对于定义日文字体族,使用\verb!\DeclareKanjiFamily!代替\verb!\DeclareFontFamily!。
290 不过,在现在的实现中,使用\verb!\DeclareFontFamily!不会引起任何问题。
291 \end{itemize}
292
293 \subsection{fontspec}
294 为与\Pkg{fontspec}宏包共存,需要在导言区中使用\Pkg{luatexja-fontspec}宏包。
295 这个附加宏包会自动加载\Pkg{luatexja}和\Pkg{fontspec}。
296
297 在\texttt{luatexja-fontspec},定义了如下七条命令,这些命令和\texttt{fontspec}的相关命令对比如下:
298 \begin{center}
299         \begin{tabular}{ccccc}
300         \hline
301         日文字体&\verb+\jfontspec+&\verb+\setmainjfont+&\verb+\setsansjfont+&\verb+\newjfontfamily+\\
302         西文字体&\verb+\fontspec+&\verb+\setmainfont+&\verb+\setsansfont+&\verb+\newfontfamily+\\
303         \hline
304         日文字体&\verb+\newjfontface+&\verb+\defaultjfontfeatures+&\verb+\addjfontfeatures+&\\
305         西文字体&\verb+\newfontface+&\verb+\defaultfontfeatures+&\verb+\addfontfeatures+&\\
306         \hline
307         \end{tabular}
308 \end{center}
309 \bgroup
310 \begin{LTXexample}
311 \fontspec[Numbers=OldStyle]{TeX Gyre Termes}
312 \jfontspec{IPAexMincho}
313 JIS~X~0213:2004→辻
314
315 \addjfontfeatures{CJKShape=JIS1990}
316 JIS~X~0208:1990→辻
317 \end{LTXexample}
318 \egroup
319
320 请注意并没有\verb!\setmonofont!命令,因为流行的日文字体几乎全部是等宽的。
321 另注意,出格特性在这7个命令中默认关闭,因为此特性会与\textbf{JAglue}冲突(参见)。
322 \section{参数设定}
323 \LuaTeX-ja包含大量的参数,以控制排版细节。
324 设定这些参数需要使用命令:\verb!\ltjsetparameter!和\verb!\ltjgetparameter!命令。
325 \subsection{JAchar范围的设定}
326 在设定\textbf{JAchar}之前,需要分配一个小于217的自然数。如:
327 \begin{verbatim}
328 \ltjdefcharrange{100}{"10000-"1FFFF,`漢}
329 \end{verbatim}
330
331 请注意这个设定是全局性的,不建议在文档正文中进行设定。
332
333 在范围设定好了之后,需要进行\verb!jacharrange!的设定:
334 \begin{verbatim}
335 \ltjsetparameter{jacharrange={-1, +2, +3, -4, -5, +6, +7, +8}}
336 \end{verbatim}
337
338 这里定义了8个范围,在每个范围之前使用“+”或“-”进行设定,其中如果为$-$,则代表该范围为\textbf{ALchar},如果为$+$,则该范围视作\textbf{JAchar}。
339
340 \LuaTeX-ja默认设定了8个范围,这些范围来源于下列数据:
341 \begin{itemize}
342 \item Unicode 6.0
343 \item Adobe-Japan1-6与Unicode之间的映射\verb!Adobe-Japan1-UCS2!
344 \item 八登崇之的up\TeX宏包:\verb!PXbase!
345 \end{itemize}
346
347 \begin{description}
348 \item[范围 $\mathbf{8^J}$] ISO 8859-1(Latin-1补充)的上半部和JIS X 0208(日文基本字符集)的重叠部分,包含下列字符:
349 \begin{multicols}{2}
350         \begin{itemize}
351         \def\ch#1#2{\item \char"#1\ (\texttt{U+00#1}, #2)}
352         \ch{A7}{Section Sign}
353         \ch{A8}{Diaeresis}
354         \ch{B0}{Degree sign}
355         \ch{B1}{Plus-minus sign}
356         \ch{B4}{Spacing acute}
357         \ch{B6}{Paragraph sign}
358         \ch{D7}{Multiplication sign}
359         \ch{F7}{Division Sign}
360         \end{itemize}
361 \end{multicols}
362
363 \item[范围 $\mathbf{1^A}$] 包含于Adobe-Japan1-6中的拉丁字符,此范围包含下列Unicode区域,但不包括上述提到过的范围8:
364 \begin{multicols}{2}
365         \begin{itemize}
366         \item \texttt{U+0080}--\texttt{U+00FF}: 拉丁字母补充-1
367         \item \texttt{U+0100}--\texttt{U+017F}: 拉丁字母扩充-A
368         \item \texttt{U+0180}--\texttt{U+024F}: 拉丁字母扩充-B
369         \item \texttt{U+0250}--\texttt{U+02AF}: 国际音标扩充
370         \item \texttt{U+02B0}--\texttt{U+02FF}: 进格修饰符元
371         \item \texttt{U+0300}--\texttt{U+036F}: 组合音标附加符号
372         \item \texttt{U+1E00}--\texttt{U+1EFF}: 拉丁字母扩充附加
373         \end{itemize}
374 \end{multicols}
375
376 \item[范围 $\mathbf{2^J}$] 希腊文和西里尔字母,使用JIS X 0208的大部分日文字体包含这些字符:
377 \begin{multicols}{2}
378         \begin{itemize}
379         \item \texttt{U+0370}--\texttt{U+03FF}: 希腊字母
380         \item \texttt{U+0400}--\texttt{U+04FF}: 西里尔字母 
381         \item \texttt{U+1F00}--\texttt{U+1FFF}: 希腊文扩充
382         \end{itemize}
383 \end{multicols}
384
385 \item[范围 $\mathbf{3^J}$] 标点以及杂项符号:
386 \begin{multicols}{2}
387         \begin{itemize}
388         \item \texttt{U+2000}--\texttt{U+206F}: 一般标点符号
389         \item \texttt{U+2070}--\texttt{U+209F}: 上标及下标
390         \item \texttt{U+20A0}--\texttt{U+20CF}: 货币符号
391         \item \texttt{U+20D0}--\texttt{U+20FF}: 符号用组合附加符号
392         \item \texttt{U+2100}--\texttt{U+214F}: 类字母符号
393         \item \texttt{U+2150}--\texttt{U+218F}: 数字形式
394         \item \texttt{U+2190}--\texttt{U+21FF}: 箭头符号
395         \item \texttt{U+2200}--\texttt{U+22FF}: 数学运算符号
396         \item \texttt{U+2300}--\texttt{U+23FF}: 杂项技术符号
397         \item \texttt{U+2400}--\texttt{U+243F}: 控制图像
398         \item \texttt{U+2500}--\texttt{U+257F}: 制表符
399         \item \texttt{U+2580}--\texttt{U+259F}: 区块元素
400         \item \texttt{U+25A0}--\texttt{U+25FF}: 几何形状
401         \item \texttt{U+2600}--\texttt{U+26FF}: 杂项符号
402         \item \texttt{U+2700}--\texttt{U+27BF}: 什锦符号
403         \item \texttt{U+2900}--\texttt{U+297F}: 补充性箭头-B
404         \item \texttt{U+2980}--\texttt{U+29FF}: 混合数学符号-B
405         \item \texttt{U+2B00}--\texttt{U+2BFF}: 杂项符号和箭头符号
406         \item \texttt{U+E000}--\texttt{U+F8FF}: 私用区域
407         \end{itemize}
408 \end{multicols}
409
410 \item[范围 $\mathbf{4^A}$] 通常情况下不包含于日文字体的部分。本范围包含有其他范围尚未涵盖部分。故,我们直接给出定义:
411 \begin{verbatim}
412 \ltjdefcharrange{4}{%
413    "500-"10FF, "1200-"1DFF, "2440-"245F, "27C0-"28FF, "2A00-"2AFF, 
414   "2C00-"2E7F, "4DC0-"4DFF, "A4D0-"A82F, "A840-"ABFF, "FB50-"FE0F, 
415   "FE20-"FE2F, "FE70-"FEFF, "FB00-"FB4F, "10000-"1FFFF} % non-Japanese
416 \end{verbatim}
417
418 \item[范围 $\mathbf{5^A}$] 代替以及补充私有使用区域。
419 \item[范围 $\mathbf{6^J}$] 日文字符。
420 \begin{multicols}{2}
421         \begin{itemize}
422         \item \texttt{U+2460}--\texttt{U+24FF}: 圈状字母数字
423         \item \texttt{U+2E80}--\texttt{U+2EFF}: CJK部首补充
424         \item \texttt{U+3000}--\texttt{U+303F}: CJK标点符号
425         \item \texttt{U+3040}--\texttt{U+309F}: 平假名
426         \item \texttt{U+30A0}--\texttt{U+30FF}: 片假名
427         \item \texttt{U+3190}--\texttt{U+319F}: 汉文标注号
428         \item \texttt{U+31F0}--\texttt{U+31FF}: 片假名音标补充
429         \item \texttt{U+3200}--\texttt{U+32FF}: 圈状CJK字母及月份
430         \item \texttt{U+3300}--\texttt{U+33FF}: CJK兼容
431         \item \texttt{U+3400}--\texttt{U+4DBF}: CJK统一表意文字扩充A            \item \texttt{U+4E00}--\texttt{U+9FFF}: CJK统一表意文字
432         \item \texttt{U+F900}--\texttt{U+FAFF}: CJK兼容表意文字
433         \item \texttt{U+FE10}--\texttt{U+FE1F}: 直行标点
434         \item \texttt{U+FE30}--\texttt{U+FE4F}: CJK兼容形式
435         \item \texttt{U+FE50}--\texttt{U+FE6F}: 小写变体
436         \item \texttt{U+20000}--\texttt{U+2FFFF}: (补充字符)
437         \end{itemize}
438 \end{multicols}
439
440 \item[范围 $\mathbf{7^J}$] 不包含于Adobe-Japan1-6的CJK字符。
441 \begin{multicols}{2}
442         \begin{itemize}
443         \item \texttt{U+1100}--\texttt{U+11FF}: 谚文字母
444         \item \texttt{U+2F00}--\texttt{U+2FDF}: 康熙部首
445         \item \texttt{U+2FF0}--\texttt{U+2FFF}: 汉字结构描述字符
446         \item \texttt{U+3100}--\texttt{U+312F}: 注音字母
447         \item \texttt{U+3130}--\texttt{U+318F}: 谚文兼容字母
448         \item \texttt{U+31A0}--\texttt{U+31BF}: 注音字母扩充
449         \item \texttt{U+31C0}--\texttt{U+31EF}: CJK笔划
450         \item \texttt{U+A000}--\texttt{U+A48F}: 彝文音节
451         \item \texttt{U+A490}--\texttt{U+A4CF}: 彝文字母
452         \item \texttt{U+A830}--\texttt{U+A83F}: 一般印度数字
453         \item \texttt{U+AC00}--\texttt{U+D7AF}: 谚文音节
454         \item \texttt{U+D7B0}--\texttt{U+D7FF}: 谚文字母扩充-B
455         \end{itemize}
456 \end{multicols}
457 \end{description}
458 \subsection{\textsf{kanjiskip}和\textsf{xkanjiskip}}
459 \textbf{JAglue}分为下列三类范畴:
460 \begin{itemize}
461 \item JFM设定的胶或出格值。如果在一个日文字符附近使用\verb!\inhibitglue!,则胶便不会插入。
462 \item 两个\textbf{JAchar}之间默认插入的胶(\textsf{kanjiskip})
463 \item \textbf{JAchar}和\textbf{ALchar}之间默认插入的胶(\textsf{xkanjiskip})
464 \end{itemize}
465
466 \textsf{kanjiskip}和\textsf{xkanjiskip}的设定如下所示:
467 \begin{verbatim}
468 \ltjsetparameter{kanjiskip={0pt plus 0.4pt minus 0.4pt},
469                  xkanjiskip={0.25\zw plus 1pt minus 1pt}}
470 \end{verbatim}
471
472 当JFM包含“\textsf{kanjiskip}理想宽度”和/或“\textsf{xkanjiskip}理想宽度”数据时,上述设定产生作用。如果想用JFM中的数据,请设定\textsf{kanjiskip}或\textsf{xkanjiskip}为\verb!\maxdimen!。
473 \subsection{\textsf{xkanjiskip}插入设定}
474 并不是在所有的\textbf{JAchar}和\textbf{ALchar}周围插入\textsf{xkanjiskip}都是合适的。
475 比如,在开标点之后插入\textsf{xkanjiskip}并不合适[如,比较“(あ”和“(\hskip\ltjgetparameter{xkanjiskip}あ”]。
476 \LuaTeX-ja可以通过设定\textbf{JAchar}的\textsf{jaxspmode}以及\textbf{ALchar}的\textsf{alxspmode}来控制\textsf{xkanjiskip}在字符前后的插入。
477
478 \begin{LTXexample}
479 \ltjsetparameter{jaxspmode={`あ,preonly}, alxspmode={`\!,postonly}}
480 pあq い!う
481 \end{LTXexample}
482
483 第二个参数\textsf{preonly}表示的含义为“允许在该字符前插入\textsf{xkanjiskip},但不允许在该字符之后插入”。
484 其他参数还有\textsf{postonly},\textsf{allow}和\textsf{inhibit}。[TODO]
485
486 用户如果想开启/关闭\textsf{kanjiskip}和\textsf{xkanjiskip}的插入,设定\textsf{autospacing}和\textsf{autoxspacing}参数为\textsf{true}/\textsf{false}即可。
487 \subsection{基线浮动}
488 为了确保日文字体和西文字体能够对其,有时需要浮动其中一者的基线。
489 在\pTeX中,此项设定由设定\verb!\yabaselineshift!为非零长度(西文字体基线应向下浮动)。
490 不过,如果文档的中主要语言不是日文,那么最好上浮日文字体的基线,西文字体不变。
491 如上所述,\LuaTeX-ja可以独立设定西文字体的基线(\textsf{yabaselineshift}参数)和日文字体的基线(\textsf{yjabaselineshift}参数)。
492
493 \begin{LTXexample}
494 \vrule width 150pt height 0.4pt depth 0pt\hskip-120pt
495 \ltjsetparameter{yjabaselineshift=0pt, yalbaselineshift=0pt}abcあいう
496 \ltjsetparameter{yjabaselineshift=5pt, yalbaselineshift=2pt}abcあいう
497 \end{LTXexample}
498
499 上述水平线为此行基线。
500
501 这里还有一个有趣的副作用:不同大小的字符可以通过适当调整这两个参数而在一行中垂直居中。下面是一个例子(注意,参数值并没有精心调整):
502
503 \begin{LTXexample}
504 xyz漢字
505 {\scriptsize
506   \ltjsetparameter{yjabaselineshift=-1pt,
507     yalbaselineshift=-1pt}
508   XYZひらがな
509 }abcかな
510 \end{LTXexample}
511 \subsection{裁剪框标记}
512 裁剪框标记是在一页的四角和水平/垂直中央放置的标记。在日文中,裁剪框被称为“トンボ”。
513 \pLaTeX和\LuaTeX-ja均在底层支持裁剪框标记。需要下列步骤来实现:
514 \begin{enumerate}
515 \item 首先,首先定义页面左上角将会出现的注记。这由向\verb!@bannertoken!分配一个token列完成。\\
516 例如,下列所示将会设定注记为“\textsf{filename (YYYY-MM-DD hh:mm)}”:
517
518 \begin{verbatim}
519 \makeatletter
520
521 \hour\time \divide\hour by 60 \@tempcnta\hour \multiply\@tempcnta 60\relax
522 \minute\time \advance\minute-\@tempcnta
523 \@bannertoken{%
524    \jobname\space(\number\year-\two@digits\month-\two@digits\day
525    \space\two@digits\hour:\two@digits\minute)}%
526 \end{verbatim}
527
528 \item {[TODO]}
529 \end{enumerate}
530 \part{参考指南}
531 \section{字体测度和日文字体}
532 \subsection{\texttt{\char92jfont}基本语句}
533 为了加载日文字体,需要使用\verb!\jfont!基本语句替代\verb!\font!,前者支持后者所有相同句法。
534 \LuaTeX-ja自动加载\Pkg{luaotfload}宏包,故TrueType/OpenType字体的特性可以使用于日文字体:
535 \begin{LTXexample}
536 \jfont\tradgt={file:ipaexg.ttf:script=latn;%
537   +trad;-kern;jfm=ujis} at 14pt
538 \tradgt{}当/体/医/区
539 \end{LTXexample}
540
541 注意定义的控制序列(上例中的\verb!\tradgt!)使用的\verb!\jfont!并不是一个\textit{font\_def}标记,故类似\verb!\fontname\tradgt!输入会引起错误。
542 我们指出定义于\verb!\jfont!控制序列>
543 \paragraph{JFM}
544 \paragraph{注:kern特性}
545 \subsection{\texttt{\char92psft}前缀}
546 除使用\texttt{file:}和\texttt{name:}外,我们还可以在\verb!\jfont!(以及\verb!\font!)中使用\texttt{psft:}来设定一个“名义上”的并不嵌入PDF中的日文字体。
547 此前缀的典型使用是定义“标准”日文字体,即“Ryumin-Light”和“GothicBBB-Medium”。
548 \paragraph{\texttt{cid}键} 默认使用\texttt{psft:}前缀定义的字体是为Adobe-Japan1-6 CID字体。
549 也可以使用\texttt{cid}键来使用其他的CID字体,如中文和韩文。
550 \begin{lstlisting}[numbers=left]
551 \jfont\testJ={psft:Ryumin-Light:cid=Adobe-Japan1-6;jfm=jis}     % 日语
552 \jfont\testD={psft:Ryumin-Light:jfm=jis}                        % 默认值为Adobe-Japan1-6
553 \jfont\testC={psft:AdobeMingStd-Light:cid=Adobe-CNS1-5;jfm=jis} % 繁体中文
554 \jfont\testG={psft:SimSun:cid=Adobe-GB1-5;jfm=jis}              % 简体中文
555 \jfont\testK={psft:Batang:cid=Adobe-Korea1-2;jfm=jis}           % 韩文
556 \end{lstlisting}
557 注意上述代码使用了\texttt{jfm-jis.lua},这可以用于日文字体,也可以用于中文和韩文字体。
558
559 当下,\LuaTeX-ja只支持如上例中的4个值,改为其他值,例如:
560 \begin{lstlisting}
561 \jfont\test={psft:Ryumin-Light:cid=Adobe-Japan2;jfm=jis}
562 \end{lstlisting}
563 会发生下列错误:
564 \begin{lstlisting}[numbers=left]
565 ! Package luatexja Error: bad cid key `Adobe-Japan2'.
566
567 See the luatexja package documentation for explanation.
568 Type  H <return>  for immediate help.
569 <to be read again>
570                    \par
571 l.78
572
573 ? h
574 I couldn't find any non-embedded font information for the CID
575 `Adobe-Japan2'. For now, I'll use `Adobe-Japan1-6'.
576 Please contact the LuaTeX-ja project team.
577 ?
578 \end{lstlisting}
579
580 %\subsection{JFM文件结构}
581 %\subsection{数学字体族}
582 %\subsection{Callbacks}
583 %\part{实现细节}
584 %\section{Lua\TeX-ja与Lua\TeX相关阅读材料}
585 %\begin{itemize}
586 %\item Lua\TeX官方主页:\verb!http://www.luatex.org!
587 %\item Lua\TeX\ SVN:\verb!http://foundry.supelec.fr/gf/project/luatex/!
588 %\item Lua\TeX:\verb!http://ja.wikipedia.org/wiki/LuaTeX!
589 %\item Lua\TeX-ja官方主页:\verb!http://en.sourceforge.jp/projects/luatex-ja/!
590 %\item p\TeX官方主页:\verb!http://ascii.asciimw.jp/pb/ptex/!
591 %\item Publishing \TeX:\verb!http://ja.wikipedia.org/wiki/PTeX!
592 %\item Vertical typesetting in \TeX:\verb!http://tug.org//TUGboat/Articles/tb11-3/tb29hamano.pdf!
593 %\item up\TeX官方主页:\verb!http://homepage3.nifty.com/ttk/comp/tex/uptex.html!
594 %\item “LuaTeX で日本語”:\verb!http://oku.edu.mie-u.ac.jp/tex/mod/forum/discuss.php?d=627!
595 %\item luajalayout宏包:\verb!http://www-is.amp.i.kyoto-u.ac.jp/lab/kmaeda/lualatex/luajalayout/!
596 %\item luafontcomp宏包:\verb!http://www-is.amp.i.kyoto-u.ac.jp/lab/kmaeda/lualatex/luafontcomp/!
597 %\item 思わずLuaでLaTeXしてみた:\verb!http://zrbabbler.sp.land.to/lualatexlua.html!
598 %\item luaums.sty:\verb!http://oku.edu.mie-u.ac.jp/tex/mod/forum/discuss.php?d=378!
599 %\item koTeXは日本語LuaTeXへの先導役になるか?:\\\verb!http://oku.edu.mie-u.ac.jp/tex/mod/forum/discuss.php?d=485!
600 %\end{itemize}
601 \end{document}