OSDN Git Service

Fixed the declaration of JY3/gt/bx/n of tc11-slide.*.
[luatex-ja/luatexja.git] / doc / tc11-slide.tex
1 %#! lualatex -shell-escape tc11-slide.tex
2 \documentclass[notheorems,12pt,hyperref={unicode=true}]{beamer}
3 \usepackage{luatexja,luatexja-otf,luatexja-fontspec,showexpl,lltjlisting}
4 \usepackage{mathtools,graphicx,pict2e}
5 \usepackage{amsmath,bm,mflogo,booktabs}
6 \usepackage[all]{xy}
7
8 \SelectTips{cm}{}
9
10 %%% theme
11 \useinnertheme{rectangles}
12 \useoutertheme{split}
13 \usecolortheme{rose}
14 \usecolortheme{dolphin}
15 \setbeamertemplate{navigation symbols}{}
16 \setbeamertemplate{headline}{}
17
18 \makeatletter
19 \definecolor{purple}{rgb}{0.60, 0.0, 1.0}
20 \definecolor{green}{rgb}{0.0, 0.60, 0.0}
21 \definecolor{lblue}{rgb}{0.30, 0.0, 1.00}
22 \definecolor{gray}{rgb}{0.60, 0.60, 0.60}
23 \definecolor{linenavy}{rgb}{0.0 ,0.0 ,0.50}
24 \definecolor{linesky}{rgb} {0.50,0.75,1.00}
25 \newdimen\lineheight \lineheight=6pt
26 \def\lines#1{%
27   \noindent\null\hskip-30pt\setbox0=\hbox{%
28   {\color{linenavy}\vrule height \lineheight width #1\lineheight}%
29   \kern 0.2\lineheight{\color{linenavy!80!linesky}\vrule height\lineheight width 0.6\lineheight}%
30   \kern 0.2\lineheight{\color{linenavy!60!linesky}\vrule height\lineheight width 0.52\lineheight}%
31   \kern 0.2\lineheight{\color{linenavy!40!linesky}\vrule height\lineheight width 0.44\lineheight}%
32   \kern 0.2\lineheight{\color{linenavy!20!linesky}\vrule height\lineheight width 0.36\lineheight}%
33   \kern 0.2\lineheight}\copy0\nobreak
34   \@tempdima=\textwidth\advance\@tempdima64pt\advance\@tempdima-\wd0
35   \hbox to 0pt{\color{linesky}\vrule height \lineheight width \@tempdima \hss}\par
36 }
37 \setbeamertemplate{frametitle}{
38   \noindent\insertframetitle\par\vskip-8pt\lines{12}\vskip-16pt
39 }
40 \setbeamertemplate{footline}{
41   \leavevmode%
42   \hbox{\begin{beamercolorbox}[wd=.5\paperwidth,ht=2.5ex,dp=1.125ex,
43 leftskip=.3cm,rightskip=.3cm]{author in head/foot}%
44     \usebeamerfont{author in head/foot}\ \hfill \insertshortauthor
45   \end{beamercolorbox}%
46   \begin{beamercolorbox}[wd=.5\paperwidth,ht=2.5ex,dp=1.125ex,
47 leftskip=.3cm,rightskip=.3cm plus1fil]{title in head/foot}%
48     \usebeamerfont{title in head/foot}\insertshorttitle
49   \end{beamercolorbox}}%
50   \vskip0pt%
51 }
52 \expandafter\let\csname beamer@@tmpop@title page@default\endcsname=\relax
53 \defbeamertemplate*{title page}{default}[1][]
54 {
55   \vbox{}
56   \vfill
57   \begin{centering}
58     \begin{beamercolorbox}[sep=8pt,center,#1]{title}
59       \usebeamerfont{title}\inserttitle
60     \end{beamercolorbox}
61   \end{centering}
62
63 \lines{29.5}\vskip8pt
64   \begin{centering}
65     \begin{beamercolorbox}[sep=8pt,center,#1]{author}
66       \usebeamerfont{author}\insertauthor
67     \end{beamercolorbox}
68     \begin{beamercolorbox}[sep=8pt,center,#1]{date}
69       \usebeamerfont{date}\insertdate
70     \end{beamercolorbox}
71   \end{centering}
72   \vskip-8pt\vfill
73 }
74
75 \AtBeginSection[]{
76   \begin{frame}
77     \frametitle{Outline}
78     \tableofcontents[currentsection,hideothersubsections]
79   \end{frame}
80 }
81
82 \setbeamercolor{structure}{fg=linenavy}
83 \setbeamercolor{author in head/foot}{fg=white,bg=linenavy}
84 \setbeamercolor{title in head/foot}{fg=black,bg=linesky}
85 \setbeamercolor{block title}{bg=linenavy!50!linesky,fg=white}
86 \setbeamercolor{block body}{fg=black,bg=linesky!20!white}
87 \setbeamertemplate{section in toc}{■\null\inserttocsection\par\smallskip}
88 \setbeamerfont{section in toc}{size=\normalsize}
89 \setbeamerfont{title}{size=\Large, series=\bfseries}
90 \setbeamerfont{frametitle}{size=\Large, series=\bfseries, shape=\upshape}
91
92 \def\mcdefault{gt}
93 \DeclareFontShape{JY3}{gt}{bx}{n}{ <-> s*[0.924872] psft:GothicBBB-Medium,Bold:jfm=ujis}{}
94 \DeclareFontShape{JY3}{gt}{m}{n}{ <-> s*[0.924872] psft:GothicBBB-Medium:jfm=ujis}{}
95 \DeclareFontShape{JY3}{mc}{m}{n}{ <-> s*[0.924872] psft:Ryumin-Light:jfm=ujis}{}
96 \def\notice#1{{\color{blue!50!black}#1}}
97 \def\alert#1{{\color{red}\bfseries#1}}
98 \def\pTeX{p\TeX}
99 \parindent=0pt
100 \catcode`\|=13\def|{\char92 }
101 \def\{{{\ttfamily\char`\{}}
102 \def\}{{\ttfamily\char`\}}}
103 \ltjsetparameter{alxspmode={`\\,allow}}
104 \lstset{numbers=left, basicstyle=\ttfamily}
105 \makeatother
106
107 \title{Lua\TeX-jaの開発}
108 \author[北川 弘典]{北川 弘典\\\footnotesize(Lua\TeX-jaプロジェクトチーム)}
109 \date{2011年10月22日}
110
111 \begin{document}
112
113 \begin{frame}
114   \titlepage
115 \end{frame}
116
117 \section{導入}
118
119
120 \subsection{背景}
121 \begin{frame}
122   \frametitle{Lua\TeX-ja}
123   {\large\[
124     \xymatrix{
125       \text{\TeX}\ar[r]\ar[d]&\text{$\varepsilon$-\TeX}\ar[d]\ar[r]
126       &\text{pdf\TeX}\ar[r]&\text{Lua\TeX}\ar@{-->}[d]\\
127       \text{p\TeX}\ar[r]&\text{$\varepsilon$-p\TeX}
128       \ar@{-->}[rr]&&\text{\alert{Lua\TeX-ja}}
129     }
130   \]}%
131   \begin{center}
132     \bfseries\Large 
133     Lua\TeX-jaは,Lua\TeX 上で日本語組版を実現させるマクロパッケージである.
134   \end{center}
135 \end{frame}
136
137 \begin{frame}[fragile]
138   \frametitle{Lua\TeX}
139   {\large\begin{align*}
140     \text{Lua\TeX}&\simeq \text{pdf\TeX}+ \text{Lua}+\text{\MP}\\
141     &\qquad+\text{Omega}+\text{OpenType}+ \cdots
142   \end{align*}}
143   \textbf{主な特徴:}
144   \begin{itemize}
145     \item pdfへの直接出力(pdf\TeX の後継)
146     \item Unicodeへの対応{\small (SIP内の文字も余裕)}
147     \item TrueType/OpenTypeフォントの直接利用
148     \item Luaスクリプトで\TeX 内部処理のカスタマイズが可能\\
149       \quad →もはやエンジンレベルで拡張する必要はない
150   \end{itemize}
151
152   \footnotesize 詳しくは,昨年度の八登さんの講演を参照.
153 \end{frame}
154
155 \subsection{開発方針}
156 \begin{frame}
157   \frametitle{開発方針1}
158   \begin{flushleft}
159    \alert{\bfseries\large 
160     p\TeX のプリミティブに対応する機能から実装.}%
161   \end{flushleft}\vskip-\medskipamount
162   \begin{itemize}
163   \item 以前から存在した,Lua\TeX で日本語組版を行う実験:
164   \begin{itemize}
165     \item \texttt{luaums.sty}(北川)\\\quad
166       {\small 適当にでっち上げた最低限の実装.}
167     \item \texttt{luajalayout}パッケージ(作者:前田一貴)\\\quad
168       {\small フォント合成・fontspecパッケージを用いた実装.}
169   \end{itemize}
170   は「\LaTeX ベース」で,組版の調整機能が不足していた.\medskip
171   \item 最低でもp\TeX と同等の組版の自由度を確保する.
172   \end{itemize}
173 \end{frame}
174
175 \begin{frame}
176   \frametitle{開発方針2}
177   \begin{flushleft}
178     \alert{\bfseries\large 
179     p\TeX と100\%の互換性は目指さない.}%
180   \end{flushleft}\vskip-\medskipamount
181   \begin{itemize}
182     \item p\TeX の不都合・不可解な点があれば,積極的に改める.
183     \item p\TeX と全く同じ文法・動作の実装は事実上不可能.
184   \end{itemize}\medskip
185   \begin{flushleft}
186     \alert{\bfseries\large 
187     最終的に,(空白挿入等の)仕様を文書化する.}
188   \end{flushleft}\vskip-\medskipamount
189   とは言いながら,ドキュメントはまだまだ未完成.
190 \end{frame}
191
192 \subsection{使い方: plain \TeX}
193 \begin{frame}
194   \frametitle{\only<1>{plain p\TeX 用ソース}\only<2>{``plain Lua\TeX-ja''用ソース}}
195 \begin{flushleft}\ttfamily
196 \only<2>{\alert{|input luatexja.sty} \notice{\% \normalfont Lua\TeX-ja本体}}\ \\
197 |hsize=20\alert{\only<2>{|zw}}\only<1>{zw}\\
198 \only<1>{|font|bigmc=jis at 14.4pt}
199 \alert{\only<2>{|jfont|bigmc=psft:Ryumin-Light:jfm=ujis at14.4pt}}\\
200 \notice{\ \ \% 和文フォント定義}\\
201 こんにちは,|TeX の世界へ!\\
202 \{|bigmc 大きい文字だよ.\}\\
203 |end
204 \end{flushleft}
205 \uncover<2>{
206 \begin{itemize}
207 \item {\tt luatexja.sty}を読み込む{\footnotesize(これがないと話が始まらない)}
208 \item {\tt zw}, {\tt zh}は{\tt |zw}, {\tt |zh}に.
209 \item 和文フォント定義は{\tt |jfont}のみ可.書式も変化.
210 \end{itemize}}
211 \end{frame}
212
213
214 \subsection{使い方: \LaTeX}
215 \begin{frame}
216   \frametitle{\only<1>{p\LaTeX}\only<2>{``Lua\LaTeX-ja''}用ソース}
217 \begin{flushleft}\ttfamily
218 |documentclass[a4paper,10pt]\{\only<1>{jsarticle}\alert{\only<2>{ltjsarticle}}\}\\
219 |usepackage\{lmodern\}|begin\{document\}\\
220 「これはまったく意味がない日本語の文だ.」\\
221 (あいう)\{|large|gtfamily(abcゴシック)\}\\
222 \ \\
223 何かalphabet(欧文文字)も打ってみるか.\\
224 \only<1>{\notice{\%}}\only<2>{\$|zeta(2) |simeq}\\
225 \only<2>{\ \ |directlua\{tex.print(math.pi\char`\^2/6)\}\$.}\only<1>{\notice{\%}}\\
226 |end\{document\}
227 \end{flushleft}
228 \uncover<2>{
229 \begin{itemize}
230 \item クラスを\alert{Lua\TeX-ja 同梱のもの}に変える.
231 \item 欧文用クラスに対しても,{\ttfamily|usepackage\{luatexja\}}で\\
232 最低限の設定がされる.
233 \end{itemize}
234 }
235 \end{frame}
236
237 \begin{frame}
238   \frametitle{組版結果}
239 \begin{center}
240 \fboxsep=1\zw
241 \fbox{\large\parbox{20\zw}{\parindent=1\zw%
242 \fontfamily{mc}\fontfamily{rm}\selectfont
243 \baselineskip=1.6em
244 「これはまったく意味がない日本語の文だ.」
245 (あいう){\Large\gtfamily(abcゴシック)}
246
247 何かalphabet(欧文文字)も打ってみるか.
248 $\zeta(2) \simeq
249   \directlua{tex.print(math.pi^2/6)}$.
250 }}
251 \end{center}
252 \end{frame}
253
254
255
256 \section{現在の状況}
257
258 \begin{frame}
259   \frametitle{実装の模式図}
260   \begin{center}\unitlength=10mm
261   \begin{picture}(9.2,6.5)
262     \linethickness{1pt}
263     % primitive:
264     \only<1>{%
265     \color{lblue!20!white}
266     \put(0,0){\vrule width 9.2\unitlength height 3.2\unitlength depth 0pt}
267     \put(7.2,3.2){\vrule width 2\unitlength height 3.3\unitlength depth 0pt}
268     \color{lblue}
269     \put(0,0){\line(1,0){9.2}}
270     \put(0,0){\line(0,1){3.2}}
271     \put(9.2,0){\line(0,1){6.5}}
272     \put(0,3.2){\line(1,0){7.2}}
273     \put(7.2,3.2){\line(0,1){3.3}}
274     \put(7.2,6.5){\line(1,0){2}}
275     \color{lblue!50!black}
276     \put(4.6,1.6){\makebox(0,0)[c]{「エンジン拡張」}}
277     }%
278     % primitive (detailed)
279     \only<2>{%
280     %% typesetting
281     \color{linenavy!20!white}
282     \put(0,0){\vrule width 9.2\unitlength height \unitlength depth 0pt}
283     \color{linenavy}
284     \put(0,0){\line(1,0){9.2}}
285     \put(0,0){\line(0,1){1}}
286     \put(0,1){\line(1,0){9.2}}
287     \put(9.2,0){\line(0,1){1}}
288     \color{linenavy!50!black}
289     \put(4.6,0.5){\makebox(0,0)[c]{実際の組版処理用Luaコード}}
290     \color{blue!20!white}
291     \put(0,1.1){\vrule width 9.2\unitlength height \unitlength depth 0pt}
292     \color{blue}
293     \put(0,1.1){\line(1,0){9.2}}
294     \put(0,1.1){\line(0,1){1}}
295     \put(0,2.1){\line(1,0){9.2}}
296     \put(9.2,1.1){\line(0,1){1}}
297     \color{blue!50!black}
298     \put(4.6,1.6){\makebox(0,0)[c]{パラメタ設定用Luaコード}}
299     \color{lblue!20!white}
300     \put(0,2.2){\vrule width 9.2\unitlength height \unitlength depth 0pt}
301     \put(7.2,3.2){\vrule width 2\unitlength height 3.3\unitlength depth 0pt}
302     \color{lblue}
303     \put(0,2.2){\line(1,0){9.2}}
304     \put(0,2.2){\line(0,1){1}}
305     \put(9.2,2.2){\line(0,1){4.3}}
306     \put(0,3.2){\line(1,0){7.2}}
307     \put(7.2,3.2){\line(0,1){3.3}}
308     \put(7.2,6.5){\line(1,0){2}}
309     \color{lblue!50!black}
310     \put(4.6,2.7){\makebox(0,0)[c]{\TeX インターフェース}}
311     }%
312     % plain
313     \color{green!20!white}
314     \put(0,3.3){\vrule width 2\unitlength height 3.2\unitlength depth 0pt}
315     \color{green}
316     \put(0,3.3){\line(1,0){2}}
317     \put(0,3.3){\line(0,1){3.2}}
318     \put(2,3.3){\line(0,1){3.2}}
319     \put(0,6.5){\line(1,0){2}}
320     \color{green!50!black}
321     \put(1,4.9){\makebox(0,0)[c]{\parbox[c]{7\zw}{\centering plain \TeX\\対応}}}
322     % LaTeX kernel
323     \color{purple!20!white}
324     \put(2.1,3.3){\vrule width 5\unitlength height \unitlength depth 0pt}
325     \color{purple}
326     \put(2.1,3.3){\line(1,0){5}}
327     \put(2.1,3.3){\line(0,1){1}}
328     \put(7.1,3.3){\line(0,1){1}}
329     \put(2.1,4.3){\line(1,0){5}}
330     \color{purple!50!black}
331     \put(4.6,3.8){\makebox(0,0)[c]{\LaTeX 対応}}
332     % class file
333     \color{gray!20!white}
334     \put(2.1,4.4){\vrule width 5\unitlength height \unitlength depth 0pt}
335     \color{gray}
336     \put(2.1,4.4){\line(1,0){5}}
337     \put(2.1,4.4){\line(0,1){1}}
338     \put(7.1,4.4){\line(0,1){1}}
339     \put(2.1,5.4){\line(1,0){5}}
340     \color{gray!50!black}
341     \put(4.6,4.9){\makebox(0,0)[c]{日本語用クラスファイル}}
342     % patches for packages
343     \color{red!20!white}
344     \put(2.1,5.5){\vrule width 5\unitlength height \unitlength depth 0pt}
345     \color{red}
346     \put(2.1,5.5){\line(1,0){5}}
347     \put(2.1,5.5){\line(0,1){1}}
348     \put(7.1,5.5){\line(0,1){1}}
349     \put(2.1,6.5){\line(1,0){5}}
350     \color{red!50!black}
351     \put(4.6,6.0){\makebox(0,0)[c]{各種パッケージへの対応}}
352   \end{picture}
353   \end{center}
354 \end{frame}
355
356 \subsection{「エンジン拡張」部分・plain \TeX 対応}
357 \begin{frame}
358   \frametitle{「エンジン拡張」部分・plain \TeX 対応}
359   \begin{flushleft}
360     \large\bfseries
361     \color{linenavy!50!black}概ね実装完了,テスト段階.
362   \end{flushleft}\vskip-\medskipamount
363   \begin{itemize}
364     \item 和文フォントの(欧文フォントとの)独立管理
365     \item 和文文字間・和欧文間の空白挿入
366     \item 禁則処理用のペナルティ挿入
367     \item 欧文・和文のベースライン上下移動
368     \item 和文文字直後の改行での空白挿入抑制\alert{(限定的)}
369     \item \alert{縦書き関連はまだ}.また,\alert{速度が非常に遅い}.
370   \end{itemize}
371   しかし,細かい仕様変更はまだ行う可能性はある.
372 \end{frame}
373
374 \subsection{\LaTeX 対応}
375 \begin{frame}
376   \frametitle{\LaTeX 対応}
377   \begin{flushleft}
378     \large\bfseries
379     \color{purple!50!black}(横組みに関する)大半のp\LaTeXe 拡張を実装.
380   \end{flushleft}\vskip-\medskipamount
381   \begin{itemize}
382     \item 和文フォントの管理(\texttt{plfonts.dtx}相当)
383     \item \LaTeX カーネルへのパッチ(\texttt{plcore.dtx}相当)\\
384     但し,次の変更はomitしている:
385     \begin{itemize}
386       \item ボトムフロートの出力順序
387       \item 脚注マクロ
388     \end{itemize}
389     \item 日本語用クラスファイルを試験的に作成.\\
390     {\small(しかし,最終的にどうなるかは未決定)}
391     \begin{itemize}
392      \def\ {\setbox0=\hbox{M}\hskip\wd0}
393       \item \alert{\texttt{ltjclasses\ }}: \texttt{jclasses\ }%
394             \hskip\ltjgetparameter{xkanjiskip}のLua\TeX-ja対応版
395       \item \alert{\texttt{ltjsclasses}}: \texttt{jsclasses}のLua\TeX-ja対応版
396     \end{itemize}
397   \end{itemize}
398 \end{frame}
399
400
401 \subsection{fontspec等への対応}
402
403 \begin{frame}[fragile]
404   \frametitle{fontspec等への対応}
405 \noindent\textbf{fontspec対応}
406 \begin{itemize}
407 \item \verb+luatexja-fontspec+パッケージを使用する.
408 \item 和文フォント用命令は\verb+\setmainjfont+, \verb+\setsansjfont+のように「j」がつく.
409 \end{itemize}
410
411 \noindent\textbf{OTFパッケージの機能}
412 \begin{itemize}
413 \item \verb+luatexja-otf+パッケージを使用する.
414 \item 例:「\verb+\CID{8705}と高+」→\quad\CID{8705}と高
415 \item \verb+\CID+, \verb+\UTF+と,\texttt{ajmacros.sty}の一部機能が実装.
416 \end{itemize}
417
418 \end{frame}
419
420 \section{p\TeX との主要な変更点}
421
422 \subsection{命令名称・書式}
423 \def\.#1{{\rm\fontshape{it}\selectfont$\langle$#1$\rangle$}}
424 \begin{frame}
425 \frametitle{命令名称の変更}
426 {\large 殆どの組版パラメタは\texttt{|ltjsetparameter}にkey-valueリストを渡すことで設定.}
427
428 \medskip
429 \begin{tabular}{cll}
430 \toprule
431 \multicolumn{2}{l}{\bf 和欧文間空白}\\
432 \hskip1\zw代入&\tt
433 |ltjsetparameter\{xkanjiskip=\.{length}\}\\
434 \hskip1\zw取得&\tt
435 |ltjgetparameter\{xkanjiskip\}\sf\ (as string)\\\midrule
436 \multicolumn{2}{l}{\bf 禁則用ペナルティ\hss}\\
437 \hskip1\zw代入&\tt
438 |ltjsetparameter\{\\
439 &\tt\hskip2emprebreakpenalty=\{\.{chr\_code},\.{penalty}\}\}\\
440 \hskip1\zw取得&\tt
441 |ltjgetparameter\\
442 &\tt\hskip2em\{prebreakpenalty\}\{\.{chr\_code}\}\sf\ (as string)\\
443 \bottomrule
444 \end{tabular}
445
446 \end{frame}
447
448 \begin{frame}[fragile]
449 \frametitle{和文フォントの指定方法}
450
451 \begin{flushleft}
452 \tt\Large |jfont|piyo=\textcolor{green}{psft:FutoMinA101-Bold}\\
453 \hskip5em:\textcolor{blue}{jfm=ujis};...\ \textcolor{red}{at 15pt}
454 \end{flushleft}
455
456 和文フォントは,次の3要素の組である:
457 \begin{description}[metric]\def\makelabel#1{\hbox to \labelwidth{\bf#1}}
458 \item[\textcolor{green}{字形}]
459   OpenType/TrueTypeフォントも可.\\
460   prefix \texttt{psft:}で非埋込フォントを指定可能.
461 \item[\textcolor{blue}{metric}] p\TeX のJFMに相当するが,若干設定項目が増加.\\
462 上の例では\texttt{jfm-\textcolor{blue}{ujis}.lua}が使われる.
463 \item[\textcolor{red}{サイズ}]\ 
464 \end{description}
465 \medskip
466 \noindent →\hfill
467 \jfont\piyo=psft:FutoMinA101-Bold:jfm=ujis at 15pt
468 \piyo 明朝の太文字(非埋込)だよ!
469 \hfill\null
470 \end{frame}
471
472 \subsection{空白挿入処理}
473
474 \newdimen\bx\bx=3.2pt
475 \newdimen\by
476 \makeatletter
477 \def\fw#1#2#3#4#5{\fboxsep0pt\vtop{\centering\by=#3\bx\hsize=\by
478   \leavevmode\fcolorbox{#4}{#4!25!white}{%
479   \hbox to\by{\fontsize{\by}{\by}\selectfont\color{black}%
480   \inhibitglue#1\inhibitglue}}\par\vskip5pt#2\par#5}\ignorespaces}
481 \def\hw#1#2#3#4#5{\fboxsep0pt\vtop{\centering\by=#3\bx\hsize=0.5\by
482   \leavevmode\fcolorbox{#4}{#4!25!white}{%
483   \hbox to0.5\by{\fontsize{\by}{\by}\selectfont\color{black}%
484   \inhibitglue#1\inhibitglue}}\par\vskip5pt#2\par#5}\ignorespaces}
485 \def\spc#1#2{\fboxsep0pt\vtop{\centering\by=#1\bx\hsize=0.5\by
486   \leavevmode\color{#2}\vrule width 0.5\by height 2pt depth 2pt}\ignorespaces}
487 \def\bar{\vrule width 0.4pt height 5pt depth 5pt}
488
489 \begin{frame}
490 \frametitle{空白挿入の単位:\only<1>{p\TeX}\only<2>{\alert{Lua\TeX-ja}}の場合}
491
492 \textbf{入力例:\quad}{\large\tt
493 \textcolor{green}{$\underbracket{\mathstrut\hbox{)\{\}(}}_{\scriptstyle 1}$}%
494 \textcolor{blue}{$\underbracket{\mathstrut\hbox{)|typeout\{\}(}}_{\scriptstyle 2}$}%
495 \textcolor{red}{$\underbracket{\mathstrut\hbox{)\{|gt (}}_{\scriptstyle 3}$}\}}
496
497 \begin{center}
498 \vskip-\bigskipamount
499 \leavevmode\bx=3.6pt
500 \only<1>{%
501 \hw{\fontfamily{mc}\selectfont )}{jis}{10}{green}{\ }
502 \spc{10}{green}\bar
503 \spc{10}{green}
504 \hw{\fontfamily{mc}\selectfont (}{jis}{10}{green}{}
505 \hw{\fontfamily{mc}\selectfont )}{jis}{10}{blue}{}
506 \spc{10}{blue}
507 \hw{\hss\setbox0=\hbox{\rotatebox{270}{\small whatsit}}\raise.5\dp0\copy0\hss}{}{10}{blue}{}
508 \spc{10}{blue}
509 \hw{\fontfamily{mc}\selectfont (}{jis}{10}{blue}{}
510 \hw{\fontfamily{mc}\selectfont )}{jis}{10}{red}{}
511 \spc{10}{red}\bar
512 \spc{10}{red}
513 \hw{(}{jisg}{10}{red}{}
514 }%
515 \only<2>{%
516 \hw{\fontfamily{mc}\selectfont )}{ujis}{10}{green}{R}
517 \spc{10}{green}
518 \hw{\fontfamily{mc}\selectfont (}{ujis}{10}{green}{R}
519 \hw{\fontfamily{mc}\selectfont )}{ujis}{10}{blue}{R}
520 \hw{\hss\setbox0=\hbox{\rotatebox{270}{\small whatsit}}\raise.5\dp0\copy0\hss}{}{10}{blue}{}
521 \spc{10}{blue}
522 \hw{\fontfamily{mc}\selectfont (}{ujis}{10}{blue}{R}
523 \hw{\fontfamily{mc}\selectfont )}{ujis}{10}{red}{R}
524 \spc{10}{red}
525 \hw{(}{ujis}{10}{red}{G}
526 }
527 \end{center}
528
529 \vskip-\medskipamount
530 \vbox to 5\baselineskip{%
531 \only<1>{
532 \alert{入力ソース中で連続していなければ,空白挿入処理は分断.}\\
533 元来の\TeX でも,{\tt of\{\}fice}では合字は抑制される.
534 }%
535 \only<2>{
536 \begin{enumerate}
537 \item \alert{水平リスト内に寄与しないものは無視}\\
538  Lua\TeX でも,{\tt of\{\}fice}では合字は抑制されない
539 \item 行分割に影響しないものも無視
540 \item 例え\textcolor{green}{字形}が異なっても,
541 \textcolor{blue}{metric}と\textcolor{red}{サイズ}が同じならば,
542 空白挿入処理では同じフォントとして扱われる\\
543 (違うフォントとして扱うことも設定により可能)
544 \end{enumerate}
545 }}
546 \end{frame}
547
548 \begin{frame}
549 \frametitle{異フォントの文字:p\TeX の場合}
550
551 \pTeX では,異なるフォントの文字間には,\\
552 両者のJFM由来の空白が(両方別々に)入る:
553
554 \medskip
555
556 \leavevmode
557 \vtop{\parindent=0pt\hsize=40pt\ \par\vskip5pt JFM\par size}
558 \fw{\fontfamily{mc}\selectfont あ}{jis}{10}{green}{10}
559 \hw{\fontfamily{mc}\selectfont 〗}{\textcolor{green}{jis}}{10}{green}{10}
560 \spc{10}{green}\bar\spc{10}{blue}
561 \hw{〖}{\textcolor{blue}{jisg}}{10}{blue}{10}
562 \fw{い}{jisg}{10}{blue}{10}
563 \hw{】}{jisg}{10}{blue}{\textcolor{blue}{10}}
564 \spc{10}{blue}\bar\spc{14.4}{red}
565 \hw{【}{jisg}{14.4}{red}{\textcolor{red}{14.4}}
566 \fw{う}{jisg}{14.4}{red}{14.4}
567
568 \begin{itemize}
569 \item \leavevmode
570 \smash{\spc{10}{green}\bar\spc{10}{blue}\hskip7.04pt}%
571 :$\textcolor{green}{5\,\text{pt\footnotesize (左側由来)}}
572 +\textcolor{blue}{5\,\text{pt\footnotesize (右側由来)}}=10\,\text{pt}$
573 \item \leavevmode
574 \smash{\spc{10}{blue}\bar\spc{14.4}{red}}%
575 :$\textcolor{blue}{5\,\text{pt\footnotesize (左側由来)}}
576 +\textcolor{red}{7.2\,\text{pt\footnotesize (右側由来)}}=12.2\,\text{pt}$
577 \end{itemize}
578 \end{frame}
579 \begin{frame}
580 \frametitle{異フォントの文字:\alert{Lua\TeX-ja} の場合}
581
582 Lua\TeX-jaにおいて,異なるフォントの文字間には,\\
583 両者のmetric由来の空白の\alert{平均}値が入る{\small(設定で変更可)\inhibitglue\hbox{}}:
584
585 \medskip
586
587
588 \leavevmode
589 \vtop{\parindent=0pt\hsize=40pt\ \par\vskip5pt metric\par size}
590 \fw{\fontfamily{mc}\selectfont あ}{min}{10}{green}{10}
591 \hw{\fontfamily{mc}\selectfont〗}{\textcolor{green}{min}}{10}{green}{10}
592 \spc{10}{green!50!blue}
593 \hw{〖}{\textcolor{blue}{ujis}}{10}{blue}{10}
594 \fw{い}{ujis}{10}{blue}{10}
595 \hw{】}{ujis}{10}{blue}{\textcolor{blue}{10}}
596 \spc{12.2}{purple}
597 \hw{【}{ujis}{14.4}{red}{\textcolor{red}{14.4}}
598 \fw{う}{ujis}{14.4}{red}{14.4}
599
600 \begin{itemize}
601 \item \leavevmode
602 \smash{\spc{10}{blue!50!green}\hskip3.52pt}%
603 :$(\textcolor{green}{5\,\text{pt\footnotesize (左側由来)}}
604 +\textcolor{blue}{5\,\text{pt\footnotesize (右側由来)}})/2=5\,\text{pt}$
605 \item \leavevmode
606 \smash{\spc{12.2}{purple}}%
607 :$(\textcolor{blue}{5\,\text{pt\footnotesize (左側由来)}}
608 +\textcolor{red}{7.2\,\text{pt\footnotesize (右側由来)}})/2=6.1\,\text{pt}$
609 \end{itemize}
610 \end{frame}
611
612 \subsection{和文文字直後の改行}
613 \begin{frame}[fragile]
614 \frametitle{和文文字直後の改行}
615 {\bf\large Lua\TeX の仕様により,限定的な実装}
616
617 \medskip
618 改行による空白が抑制されるかは,\\
619 \alert{その行を入力から読み込む前}の内部状態で決まる.
620
621 \bigskip
622 \textbf{入力例}:\hskip2\zw\unitlength=1\zw
623 {\color{green}\begin{picture}(0,0)\thicklines\put(0,0.38){\vector(0,-1){1.1}}\end{picture}%
624 「ひらがな他を欧文扱いにする」}
625 \fbox{\vbox{\tt
626 {\color{green}|ltjsetparameter\{jacharrange=\{-6\}\}}xあ\\
627 y
628 }}
629
630 →出力は「xy」となる(\alert{行末空白は入らない}).
631
632 ∵1行目を入力から読み込む時点で,「あ」は和文文字扱い.
633 \end{frame}
634 \section*{まとめ}
635 \begin{frame}
636 \frametitle{まとめ}
637 \large Lua\TeX-ja は,
638 \begin{itemize}
639 \item 日本語組版をLua\TeX 上で行うパッケージ.
640 \item p\TeX をかなり意識しているが,\\ 100\% 互換とはならない.
641 \item \LaTeX, fontspec用コードが試験的に整備され,ある程度は使える.
642 しかし,バグが埋まっている可能性ありなので,使用には注意.
643 \end{itemize}
644 \end{frame}
645
646
647 \AtBeginSection[]{}
648 \section{プロジェクトについて}
649 \begin{frame}
650 \frametitle{Lua\TeX-ja プロジェクトについて}
651 \begin{itemize}
652 \item \textbf{公式ページ}\\
653 {\tt http://sourceforge.jp/projects/\alert{luatex-ja}/\\\hfill wiki/FrontPage}
654 \item まだ安定版のリリースはない.\\スナップショットがダウンロード可能.
655 \item \textbf{開発メンバー}
656 \begin{itemize}
657 \item 北川 弘典
658 \item 前田 一貴
659 \item 八登 崇之
660 \item 黒木 裕介
661 \item 阿部 紀行
662 \item 本田 知亮
663 \item 山本 宗宏
664 \end{itemize}
665 \end{itemize}
666 \end{frame}
667 \end{document}