OSDN Git Service

Changed the structure of 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 \usepackage[twoside,left=23mm,width=170mm,right=17mm,top=25mm,height=231mm,bottom=32mm]{geometry}
9 \usepackage{amsmath,amssymb,xcolor,pict2e,multienum,amsthm,float,makecell,multicol,showexpl}
10 \usepackage{hyperref}
11 \hypersetup{%
12         backref,
13         unicode,
14         bookmarksnumbered,
15         bookmarksopen,
16         colorlinks,
17         allbordercolors=1 1 1,
18         allcolors=blue,
19         pdfauthor={LuaTeX-ja团队},
20         pdftitle={LuaTeX-ja宏包}
21 }
22
23
24 \lstset{
25   basicstyle=\ttfamily\small, pos=o, breaklines=true,
26   numbers=none, rframe={}, basewidth=0.5em
27 }
28 \DeclareYokoKanjiEncoding{ZH}{}{}
29 \DeclareKanjiEncodingDefaults{}{}
30 \DeclareErrorKanjiFont{ZH}{song}{m}{n}{10}
31 \DeclareKanjiSubstitution{ZH}{song}{m}{n}
32 \newcommand\songdefault{song}
33 \newcommand\heidefault{hei}
34 \renewcommand\kanjiencodingdefault{ZH}
35 \renewcommand\kanjifamilydefault{\songdefault}
36 \renewcommand\kanjiseriesdefault{\mddefault}
37 \renewcommand\kanjishapedefault{\updefault}
38 \DeclareKanjiFamily{ZH}{song}{}
39 \DeclareFontShape{ZH}{song}{m}{n}{<->name:AdobeSongStd-Light:jfm=jis}{}
40 \DeclareFontShape{ZH}{song}{bx}{n}{<->ssub*hei/m/n}{}
41 \DeclareKanjiFamily{ZH}{hei}{}
42 \DeclareFontShape{ZH}{hei}{m}{n}{<->name:AdobeHeitiStd-Regular:jfm=jis}{}
43 \fontencoding{ZH}\selectfont
44 \DeclareTextFontCommand{\textsong}{\songfamily}
45 \DeclareTextFontCommand{\texthei}{\heifamily}
46 \DeclareOldFontCommand{\song}{\normalfont\songfamily}{}
47 \DeclareOldFontCommand{\hei}{\normalfont\heifamily}{}
48 \DeclareSymbolFont{songti}{ZH}{song}{m}{n}
49 \jfam\symsongti
50 \SetSymbolFont{songti}{bold}{ZH}{hei}{m}{n}
51 \DeclareSymbolFontAlphabet{\mathsong}{songti}
52 \DeclareMathAlphabet{\mathhei}{ZH}{hei}{m}{n}
53 \makeatletter
54 \DeclareRobustCommand\songfamily{\not@math@alphabet\songfamily\mathsong\kanjifamily\songdefault\selectfont}
55 \DeclareRobustCommand\heifamily{\not@math@alphabet\heifamily\mathhei\kanjifamily\heidefault\selectfont}
56 \DeclareRobustCommand\rmfamily{\not@math@alphabet\rmfamily\mathrm\romanfamily\rmdefault\kanjifamily\songdefault\selectfont}
57 \DeclareRobustCommand\sffamily{\not@math@alphabet\sffamily\mathsf\romanfamily\sfdefault\kanjifamily\heidefault\selectfont}
58 \makeatother
59 \def\postpartname{编}
60 \def\LuaTeX{Lua\TeX}
61 \def\pTeX{p\TeX}
62 \def\pLaTeX{p\LaTeX}
63 \def\upTeX{up\TeX}
64 \def\eTeX{$\varepsilon$-\TeX}
65 \def\epTeX{$\varepsilon$-p\TeX}
66 \title{\LuaTeX-ja宏包}
67 \author{\LuaTeX-ja项目团队}
68 \date{}
69 \begin{document}
70 \maketitle
71 \tableofcontents
72 \part{用户手册}
73 \section{引言}
74 \LuaTeX-ja宏包是应用于\LuaTeX引擎上的高质量日语文档排版宏包。
75 \subsection{开发背景}
76 一般情况下,\TeX下的日语文档输出,是ASCII \pTeX(\TeX的一个扩展)及其衍生软件来完成的。
77 \pTeX作为\TeX的一个扩展引擎,在生成高质量的日语文档时,规避了繁杂的宏编写。
78 但是在和同时期的引擎相比之下,\pTeX的处境未免有些尴尬:\pTeX已经远远落后于\eTeX和pdf\TeX,此外也没有跟上计算机上对日文处理的演进(比如,UTF-8编码,TrueType字体,OpenType字体)。
79
80 最近开发的\pTeX扩展,即\upTeX(Unicode下的\pTeX实现)和\epTeX(\pTeX和\eTeX的融合版本),虽然在部分情况上弥补了上述的差距,但是差距依然存在。
81
82 不过,\LuaTeX的出现改变了整个状况。用户可以通过使用Lua语言的“callback”来调整\LuaTeX的内部处理机制。所以,没有必要去通过修改引擎的源代码来支持日文排版,相反,我们需要做的仅仅是编写其当处理callback的Lua脚本。
83 \subsection{与\pTeX的差异所在}
84 \LuaTeX-ja宏包在设计上,受\pTeX影响很大。最初开发的主要议题是实现\pTeX的特性。
85 不过,{\bf\LuaTeX-ja不是简简单单的移植\pTeX,很多不自然的特征和现象都被移出了。}
86
87 下面列举出了一些和\pTeX的差异:
88 \begin{itemize}
89 \item 一个日文字体是由三部分构成的元组:实际的字体(如小塚明朝,IPA明朝),日文字体测度(\textbf{JFM})和变体字串。
90 \item \pTeX中,日文字符之后的断行并不允许(也不产生空格),其他在源码中的断行是可以随处允许的。不过,因为\LuaTeX的特殊关系,\LuaTeX-ja并没有这个功能。
91 \item 插在日文字符和其他字符言之间的胶/出格(我们将此称为\textbf{JAglue})是重现实现的。
92         \begin{itemize}
93         \item 在\LuaTeX中,内部的字符处理是“基于node的”(例如:\verb!of{}fice!不会避免合字),
94                 \textbf{JAglue}的插入处理,现在也是“基于node的”。
95         \item 此外,两个字符之间的node在断行时不起作用的(例如,\verb!\special!node),还有
96                 意大利体校正带来的出格在插入处理中也是被忽略的。
97         \item \textbf{警告:鉴于以上两点,在\pTeX中分割\textbf{JAglue}处理的多种方法不再生效。}
98                 明确地说,下列两种方法不再生效:
99                 \begin{verbatim}
100                   ちょ{}っと  ちょ\/っと
101                 \end{verbatim}
102                 如果想得到此种结果,请使用空盒子替代:
103                 \begin{verbatim}
104                   ちょ\hbox{}っと
105                 \end{verbatim}
106         \item 处理过程中,两个在“真实”字体上具区别的日文字体可以被识别出来。
107         \end{itemize}
108 \item 当下,\LuaTeX-ja并不支持直行排版。
109 \end{itemize}
110 \subsection{一些约定} 
111 在本文档中,有下面一些约定:
112 \begin{itemize}
113 \item 所有的日文字符为\textbf{JAchar},所有的其他字符为\textbf{ALchar}
114 \item primitive,该词在本文档中不仅表示\LuaTeX的基本控制命令,也包括\LuaTeX-ja的相关的基本控制命令
115 \item 所有的自然数从0开始
116 \item 本文档中文文档是根据日文文档翻译并添加部分材料组织而成的,所以在大部分篇幅上还是主要依赖于日文原文档
117 \end{itemize}
118 \subsection{关于本项目}
119 \paragraph{项目wiki} 本项目wiki正在不断编写中。
120 \begin{itemize}
121 \item \url{http://sourceforge.jp/projects/luatex-ja/wiki/FrontPage%28en%29}(英文)
122 \item \url{http://sourceforge.jp/projects/luatex-ja/wiki/FrontPage}(日文)
123 \item \url{http://sourceforge.jp/projects/luatex-ja/wiki/FrontPage%28zh%29}(中文)
124 \end{itemize}
125 \paragraph{开发者}
126 \begin{multienumerate}
127 \def\labelenumi{$\bullet$}
128 \mitemxxx{北川弘典}{前田一贵}{八登崇之}
129 \mitemxxx{黒木裕介}{阿部纪行}{山本宗宏}
130 \mitemxxx{本田知亮}{斋藤修三郎}{马起园}
131 \end{multienumerate}
132 \section{初次使用}
133 \subsection{安装}
134 在安装\LuaTeX-ja之前,请确认:
135 \begin{itemize}
136 \item \LuaTeX(版本号为大于0.65)和相关支持宏包。\\
137 如果用户使用的是\TeX Live2011以及最新版本的W32\TeX,都可以不考虑此项。
138 \item \LuaTeX-ja的源码:)
139 \item \underline{\texttt{xunicode}}宏包,当前版本必须为\textit{v0.981(2011/09/09)}。\\
140 如果你使用\underline{\texttt{fontspec}}宏包,\underline{\texttt{xunicode}}必须存在。但是请注意该包版本,其他版本可能不会正常工作。
141 \end{itemize}
142 安装方法如下:
143 \begin{enumerate}
144 \item 用下列诸多方法下载源码归档。当前,\LuaTeX-ja并无\textbf{稳定}版本。
145         \begin{itemize}
146         \item 从git中复制\\
147                 \verb!$ git clone git://git.sourceforge.jp/gitroot/luatex-ja/luatexja.git!
148         \item 下载\texttt{master}分支HEAD的\texttt{tar.gz}归档\\
149                 \url{http://git.sourceforge.jp/view?p=luatex-ja/luatexja.git;a=snapshot;h=HEAD;sf=tgz}
150         \item 现在\LuaTeX-ja已经包含于CTAN中(在\texttt{macros/luatex/generic/luatexja}文件夹)和W32\TeX中(\texttt{luatexja.tar.gz})。这些版本基于\texttt{master}版本。
151         \end{itemize}
152 \item 用户需要将获取的\LuaTeX-ja宏包的\verb!src/!放置到你所用的发行版中的\verb!TEXMFLOACL!树下\verb!tex/!文件夹(如果不存在,请建立)下即可,查询该环境变量需要使用:\\
153         \verb!$ kpeswhich -expand-var "$TEXMFLOCAL"!
154 \item 刷新数据库:\\
155         \verb!$ texhash!\\
156         \verb!$ mkluatexfontdb!
157 \end{enumerate}
158 \section{\LuaTeX-ja在plain \TeX格式下的使用}
159 对于日本用户,日文的排版可以直接使用:
160 \begin{verbatim}
161 \input luatexja.sty
162 \end{verbatim}
163
164 这一行会默认调用\verb!luatexja.sty!文件,该文件作用相当于\pTeX中的\verb!ptex.tex!。该文件中设定了两款非嵌入字体:Ryumin-Light(明朝体)和GothicBBB-Medium(哥特体)。
165 这些字体分别有三种大小:\verb!\tenmin!和\verb!\tengt!(10pt);\verb!\sevenmin!和\verb!\sevengt!(7pt);\verb!\fivemin!和\verb!\fivegt!(5pt)。
166
167 有几点请用户注意:
168 \begin{itemize}
169 \item 上述的两款字体需要你的pdf阅读器带有良好的非嵌入字体的支持,这里建议使用Adobe Reader,该阅读器使用了Kozuka Mincho字体。
170 \item 在定义字体的时候,可以使用“级”(Q)单位,$1 \mathrm{Q} = 0.25\mathrm{mm}$,在\LuaTeX-ja中可以使用\verb!\jQ!命令调用该长度单位
171 \item 一般情况下,相同大小日文字体比西文字体要大一下(中文字体也是如此),所以定义日文字体的时候需要一个缩放率:0.962216
172 \item 在\textbf{JAchar}和\textbf{ALchar}之间插入的胶大小为:$(0.25\times0.962216\times\mathrm{10pt})^{\mathrm{+1pt}}_{\mathrm{-1pt}} = 2.40554\mathrm{pt}^{\mathrm{+1pt}}_{\mathrm{-1pt}}$
173 \end{itemize}
174 \section{\LuaTeX-ja在\LaTeXe格式的使用}
175 \subsection{日文排版设置}
176 在\LaTeXe下使用\LuaTeX-ja比较便利:
177 \begin{verbatim}
178 \usepackage{luatexja}
179 \end{verbatim}
180
181 该宏包的作用相当于\pLaTeX中的\verb!plfonts.dtx!和\verb!pldefs.ltx!。
182 \begin{itemize}
183 \item 在该宏包中设定了\verb!JY3!编码,这个编码用来调用日文字体
184 \item 该宏包定义了两个字体族:\verb!mc!和\verb!gt!。\\
185 \begin{center}
186         \begin{tabular}{ccccc}
187         \hline
188         字体&字体族&\verb!\mdseries!&\verb!\bfseries!&缩放率\\
189         \hline
190         \textit{mincho}&\verb!mc!&Ryumin-Light&GothicBBB-Medium&0.962216\\
191         \textit{gothic}&\verb!gt!&GothicBBB-Medium&GothicBBB-Medium&0.962216\\
192         \hline
193         \end{tabular}
194 \end{center}
195 \item 在数学模式下,所有的字符使用\verb!mc!字体族来排印
196 \end{itemize}
197
198 上述使用的宏包,只满足了最小的日文环境设定需求,并为满足所有的日文排版需求。
199 \LuaTeX-ja宏包提供了两个文档类:\verb!jclasses!(\pLaTeX标准文档类)和\verb!jsclasses!(奥村晴彦)。用户可自行选择两种文档类。
200 \subsection{fontspec}
201 在\LuaTeX-ja中,和\texttt{fontspec}共存的一个包为\texttt{luatexja-fontspec}。
202 这个包自动加载\texttt{fontspec}和\texttt{luatexja}宏包。
203
204 在\texttt{luatexja-fontspec},定义了如下七条命令,这些命令和\texttt{fontspec}的相关命令对比如下:
205 \begin{center}
206         \begin{tabular}{ccccc}
207         \hline
208         日文字体&\verb+\jfontspec+&\verb+\setmainjfont+&\verb+\setsansjfont+&\verb+\newjfontfamily+\\
209         西文字体&\verb+\fontspec+&\verb+\setmainfont+&\verb+\setsansfont+&\verb+\newfontfamily+\\
210         \hline
211         日文字体&\verb+\newjfontface+&\verb+\defaultjfontfeatures+&\verb+\addjfontfeatures+&\\
212         西文字体&\verb+\newfontface+&\verb+\defaultfontfeatures+&\verb+\addfontfeatures+&\\
213         \hline
214         \end{tabular}
215 \end{center}
216 \section{\LuaTeX-ja参数设定}
217 \LuaTeX-ja包含大量的参数,以控制排版细节。
218 设定这些参数需要使用命令:\verb!\ltjsetparameter!和\verb!\ltjgetparameter!命令。
219 \subsection{JAchar范围的设定}
220 在设定\textbf{JAchar}之前,需要分配一个小于217的自然数。如:
221 \begin{verbatim}
222 \ltjdefcharrange{100}{"10000-"1FFFF,`漢}
223 \end{verbatim}
224
225 请注意这个设定是全局性的,不建议在文档正文中进行设定。
226
227 在范围设定好了之后,需要进行\verb!jacharrange!的设定:
228 \begin{verbatim}
229 \ltjsetparameter{jacharrange={-1, +2, +3, -4, -5, +6, +7, +8}}
230 \end{verbatim}
231
232 这里定义了8个范围,在每个范围之前使用“+”或“-”进行设定,其中如果为$-$,则代表该范围为\textbf{ALchar},如果为$+$,则该范围视作\textbf{JAchar}。
233
234 \LuaTeX-ja默认设定了8个范围,这些范围来源于下列数据:
235 \begin{itemize}
236 \item Unicode 6.0
237 \item Adobe-Japan1-6与Unicode之间的映射\verb!Adobe-Japan1-UCS2!
238 \item 八登崇之的up\TeX宏包:\verb!PXbase!
239 \end{itemize}
240
241 \begin{description}
242 \item[范围 $\mathbf{8^J}$] ISO 8859-1(Latin-1补充)的上半部和JIS X 0208(日文基本字符集)的重叠部分,包含下列字符:
243 \begin{multicols}{2}
244         \begin{itemize}
245         \def\ch#1#2{\item \char"#1\ (\texttt{U+00#1}, #2)}
246         \ch{A7}{Section Sign}
247         \ch{A8}{Diaeresis}
248         \ch{B0}{Degree sign}
249         \ch{B1}{Plus-minus sign}
250         \ch{B4}{Spacing acute}
251         \ch{B6}{Paragraph sign}
252         \ch{D7}{Multiplication sign}
253         \ch{F7}{Division Sign}
254         \end{itemize}
255 \end{multicols}
256
257 \item[范围 $\mathbf{1^A}$] 包含于Adobe-Japan1-6中的拉丁字符,此范围包含下列Unicode区域,但不包括上述提到过的范围8:
258 \begin{multicols}{2}
259         \begin{itemize}
260         \item \texttt{U+0080}--\texttt{U+00FF}: 拉丁字母补充-1
261         \item \texttt{U+0100}--\texttt{U+017F}: 拉丁字母扩充-A
262         \item \texttt{U+0180}--\texttt{U+024F}: 拉丁字母扩充-B
263         \item \texttt{U+0250}--\texttt{U+02AF}: 国际音标扩充
264         \item \texttt{U+02B0}--\texttt{U+02FF}: 进格修饰符元
265         \item \texttt{U+0300}--\texttt{U+036F}: 组合音标附加符号
266         \item \texttt{U+1E00}--\texttt{U+1EFF}: 拉丁字母扩充附加
267         \end{itemize}
268 \end{multicols}
269
270 \item[范围 $\mathbf{2^J}$] 希腊文和西里尔字母,使用JIS X 0208的大部分日文字体包含这些字符:
271 \begin{multicols}{2}
272         \begin{itemize}
273         \item \texttt{U+0370}--\texttt{U+03FF}: 希腊字母
274         \item \texttt{U+0400}--\texttt{U+04FF}: 西里尔字母 
275         \item \texttt{U+1F00}--\texttt{U+1FFF}: 希腊文扩充
276         \end{itemize}
277 \end{multicols}
278
279 \item[范围 $\mathbf{3^J}$] 标点以及杂项符号:
280 \begin{multicols}{2}
281         \begin{itemize}
282         \item \texttt{U+2000}--\texttt{U+206F}: 一般标点符号
283         \item \texttt{U+2070}--\texttt{U+209F}: 上标及下标
284         \item \texttt{U+20A0}--\texttt{U+20CF}: 货币符号
285         \item \texttt{U+20D0}--\texttt{U+20FF}: 符号用组合附加符号
286         \item \texttt{U+2100}--\texttt{U+214F}: 类字母符号
287         \item \texttt{U+2150}--\texttt{U+218F}: 数字形式
288         \item \texttt{U+2190}--\texttt{U+21FF}: 箭头符号
289         \item \texttt{U+2200}--\texttt{U+22FF}: 数学运算符号
290         \item \texttt{U+2300}--\texttt{U+23FF}: 杂项技术符号
291         \item \texttt{U+2400}--\texttt{U+243F}: 控制图像
292         \item \texttt{U+2500}--\texttt{U+257F}: 制表符
293         \item \texttt{U+2580}--\texttt{U+259F}: 区块元素
294         \item \texttt{U+25A0}--\texttt{U+25FF}: 几何形状
295         \item \texttt{U+2600}--\texttt{U+26FF}: 杂项符号
296         \item \texttt{U+2700}--\texttt{U+27BF}: 什锦符号
297         \item \texttt{U+2900}--\texttt{U+297F}: 补充性箭头-B
298         \item \texttt{U+2980}--\texttt{U+29FF}: 混合数学符号-B
299         \item \texttt{U+2B00}--\texttt{U+2BFF}: 杂项符号和箭头符号
300         \item \texttt{U+E000}--\texttt{U+F8FF}: 私用区域
301         \end{itemize}
302 \end{multicols}
303
304 \item[范围 $\mathbf{4^A}$] 通常情况下不包含于日文字体的部分。本范围包含有其他范围尚未涵盖部分。故,我们直接给出定义:
305 \begin{verbatim}
306 \ltjdefcharrange{4}{%
307    "500-"10FF, "1200-"1DFF, "2440-"245F, "27C0-"28FF, "2A00-"2AFF, 
308   "2C00-"2E7F, "4DC0-"4DFF, "A4D0-"A82F, "A840-"ABFF, "FB50-"FE0F, 
309   "FE20-"FE2F, "FE70-"FEFF, "FB00-"FB4F, "10000-"1FFFF} % non-Japanese
310 \end{verbatim}
311
312 \item[范围 $\mathbf{5^A}$] 代替以及补充私有使用区域。
313 \item[范围 $\mathbf{6^J}$] 日文字符。
314 \begin{multicols}{2}
315         \begin{itemize}
316         \item \texttt{U+2460}--\texttt{U+24FF}: 圈状字母数字
317         \item \texttt{U+2E80}--\texttt{U+2EFF}: CJK部首补充
318         \item \texttt{U+3000}--\texttt{U+303F}: CJK标点符号
319         \item \texttt{U+3040}--\texttt{U+309F}: 平假名
320         \item \texttt{U+30A0}--\texttt{U+30FF}: 片假名
321         \item \texttt{U+3190}--\texttt{U+319F}: 汉文标注号
322         \item \texttt{U+31F0}--\texttt{U+31FF}: 片假名音标补充
323         \item \texttt{U+3200}--\texttt{U+32FF}: 圈状CJK字母及月份
324         \item \texttt{U+3300}--\texttt{U+33FF}: CJK兼容
325         \item \texttt{U+3400}--\texttt{U+4DBF}: CJK统一表意文字扩充A            \item \texttt{U+4E00}--\texttt{U+9FFF}: CJK统一表意文字
326         \item \texttt{U+F900}--\texttt{U+FAFF}: CJK兼容表意文字
327         \item \texttt{U+FE10}--\texttt{U+FE1F}: 直行标点
328         \item \texttt{U+FE30}--\texttt{U+FE4F}: CJK兼容形式
329         \item \texttt{U+FE50}--\texttt{U+FE6F}: 小写变体
330         \item \texttt{U+20000}--\texttt{U+2FFFF}: (补充字符)
331         \end{itemize}
332 \end{multicols}
333
334 \item[范围 $\mathbf{7^J}$] 不包含于Adobe-Japan1-6的CJK字符。
335 \begin{multicols}{2}
336         \begin{itemize}
337         \item \texttt{U+1100}--\texttt{U+11FF}: 谚文字母
338         \item \texttt{U+2F00}--\texttt{U+2FDF}: 康熙部首
339         \item \texttt{U+2FF0}--\texttt{U+2FFF}: 汉字结构描述字符
340         \item \texttt{U+3100}--\texttt{U+312F}: 注音字母
341         \item \texttt{U+3130}--\texttt{U+318F}: 谚文兼容字母
342         \item \texttt{U+31A0}--\texttt{U+31BF}: 注音字母扩充
343         \item \texttt{U+31C0}--\texttt{U+31EF}: CJK笔划
344         \item \texttt{U+A000}--\texttt{U+A48F}: 彝文音节
345         \item \texttt{U+A490}--\texttt{U+A4CF}: 彝文字母
346         \item \texttt{U+A830}--\texttt{U+A83F}: 一般印度数字
347         \item \texttt{U+AC00}--\texttt{U+D7AF}: 谚文音节
348         \item \texttt{U+D7B0}--\texttt{U+D7FF}: 谚文字母扩充-B
349         \end{itemize}
350 \end{multicols}
351 \end{description}
352 \subsection{\textsf{kanjiskip}和\textsf{xkanjiskip}}
353 \textbf{JAglue}分为下列三类范畴:
354 \begin{itemize}
355 \item JFM设定的胶或出格值。如果在一个日文字符附近使用\verb!\inhibitglue!,则胶便不会插入。
356 \item 两个\textbf{JAchar}之间默认插入的胶(\textsf{kanjiskip})
357 \item \textbf{JAchar}和\textbf{ALchar}之间默认插入的胶(\textsf{xkanjiskip})
358 \end{itemize}
359
360 \textsf{kanjiskip}和\textsf{xkanjiskip}的设定如下所示:
361 \begin{verbatim}
362 \ltjsetparameter{kanjiskip={0pt plus 0.4pt minus 0.4pt},
363                  xkanjiskip={0.25\zw plus 1pt minus 1pt}}
364 \end{verbatim}
365
366 当JFM包含“\textsf{kanjiskip}理想宽度”和/或“\textsf{xkanjiskip}理想宽度”数据时,上述设定产生作用。如果想用JFM中的数据,请设定\textsf{kanjiskip}或\textsf{xkanjiskip}为\verb!\maxdimen!。
367 \subsection{\textsf{xkanjiskip}插入设定}
368 并不是在所有的\textbf{JAchar}和\textbf{ALchar}周围插入\textsf{xkanjiskip}都是合适的。
369 比如,在开标点之后插入\textsf{xkanjiskip}并不合适[如,比较“(あ”和“(\hskip\ltjgetparameter{xkanjiskip}あ”]。
370 \LuaTeX-ja可以通过设定\textbf{JAchar}的\textsf{jaxspmode}以及\textbf{ALchar}的\textsf{alxspmode}来控制\textsf{xkanjiskip}在字符前后的插入。
371
372 \begin{LTXexample}[pos=r]
373 \ltjsetparameter{jaxspmode={`あ,preonly}, alxspmode={`\!,postonly}}
374 pあq い!う
375 \end{LTXexample}
376
377 第二个参数\textsf{preonly}表示的含义为“允许在该字符前插入\textsf{xkanjiskip},但不允许在该字符之后插入”。
378 其他参数还有\textsf{postonly},\textsf{allow}和\textsf{inhibit}。[TODO]
379
380 用户如果想开启/关闭\textsf{kanjiskip}和\textsf{xkanjiskip}的插入,设定\textsf{autospacing}和\textsf{autoxspacing}参数为\textsf{true}/\textsf{false}即可。
381 \subsection{基线浮动}
382 为了确保日文字体和西文字体能够对其,有时需要浮动其中一者的基线。
383 在\pTeX中,此项设定由设定\verb!\yabaselineshift!为非零长度(西文字体基线应向下浮动)。
384 不过,如果文档的中主要语言不是日文,那么最好上浮日文字体的基线,西文字体不变。
385 如上所述,\LuaTeX-ja可以独立设定西文字体的基线(\textsf{yabaselineshift}参数)和日文字体的基线(\textsf{yjabaselineshift}参数)。
386
387 \begin{LTXexample}[pos=r]
388 \vrule width 150pt height 0.4pt depth 0pt\hskip-120pt
389 \ltjsetparameter{yjabaselineshift=0pt, yalbaselineshift=0pt}abcあいう
390 \ltjsetparameter{yjabaselineshift=5pt, yalbaselineshift=2pt}abcあいう
391 \end{LTXexample}
392
393 上述水平线为此行基线。
394
395 这里还有一个有趣的副作用:不同大小的字符可以通过适当调整这两个参数而在一行中垂直居中。下面是一个例子(注意,参数值并没有精心调整):
396
397 \begin{LTXexample}[pos=r]
398 xyz漢字
399 {\scriptsize
400   \ltjsetparameter{yjabaselineshift=-1pt,
401     yalbaselineshift=-1pt}
402   XYZひらがな
403 }abcかな
404 \end{LTXexample}
405 \subsection{裁剪框标记}
406 裁剪框标记是在一页的四角和水平/垂直中央放置的标记。在日文中,裁剪框被称为“トンボ”。
407 \pLaTeX和\LuaTeX-ja均在底层支持裁剪框标记。需要下列步骤来实现:
408 \begin{enumerate}
409 \item 首先,首先定义页面左上角将会出现的注记。这由向\verb!@bannertoken!分配一个token列完成。\\
410 例如,下列所示将会设定注记为“\textsf{filename (YYYY-MM-DD hh:mm)}”:
411
412 \begin{verbatim}
413 \makeatletter
414
415 \hour\time \divide\hour by 60 \@tempcnta\hour \multiply\@tempcnta 60\relax
416 \minute\time \advance\minute-\@tempcnta
417 \@bannertoken{%
418    \jobname\space(\number\year-\two@digits\month-\two@digits\day
419    \space\two@digits\hour:\two@digits\minute)}%
420 \end{verbatim}
421
422 \item {[TODO]}
423 \end{enumerate}
424 %\part{参考指南}
425 %\section{字体测度和日文字体}
426 %\subsection{\texttt{jfont}基本语句}
427 %\subsection{\texttt{psft}前缀}
428 %\subsection{JFM文件结构}
429 %\subsection{数学字体族}
430 %\subsection{Callbacks}
431 %\part{实现细节}
432 %\section{Lua\TeX-ja与Lua\TeX相关阅读材料}
433 %\begin{itemize}
434 %\item Lua\TeX官方主页:\verb!http://www.luatex.org!
435 %\item Lua\TeX\ SVN:\verb!http://foundry.supelec.fr/gf/project/luatex/!
436 %\item Lua\TeX:\verb!http://ja.wikipedia.org/wiki/LuaTeX!
437 %\item Lua\TeX-ja官方主页:\verb!http://en.sourceforge.jp/projects/luatex-ja/!
438 %\item p\TeX官方主页:\verb!http://ascii.asciimw.jp/pb/ptex/!
439 %\item Publishing \TeX:\verb!http://ja.wikipedia.org/wiki/PTeX!
440 %\item Vertical typesetting in \TeX:\verb!http://tug.org//TUGboat/Articles/tb11-3/tb29hamano.pdf!
441 %\item up\TeX官方主页:\verb!http://homepage3.nifty.com/ttk/comp/tex/uptex.html!
442 %\item “LuaTeX で日本語”:\verb!http://oku.edu.mie-u.ac.jp/tex/mod/forum/discuss.php?d=627!
443 %\item luajalayout宏包:\verb!http://www-is.amp.i.kyoto-u.ac.jp/lab/kmaeda/lualatex/luajalayout/!
444 %\item luafontcomp宏包:\verb!http://www-is.amp.i.kyoto-u.ac.jp/lab/kmaeda/lualatex/luafontcomp/!
445 %\item 思わずLuaでLaTeXしてみた:\verb!http://zrbabbler.sp.land.to/lualatexlua.html!
446 %\item luaums.sty:\verb!http://oku.edu.mie-u.ac.jp/tex/mod/forum/discuss.php?d=378!
447 %\item koTeXは日本語LuaTeXへの先導役になるか?:\\\verb!http://oku.edu.mie-u.ac.jp/tex/mod/forum/discuss.php?d=485!
448 %\end{itemize}
449 \end{document}