OSDN Git Service

行末文字の位置調整も追加.
[luatex-ja/luatexja.git] / test / test17-priority.tex
1 %#!lualatex
2
3 \documentclass{ltjsarticle}
4 \usepackage{luatexja-fontspec,luacode,xcolor}
5 \RequireLuaTeXjaSubmodule{adjust}
6
7 \def\sq{%
8   \hbox to 1\zw{\hss\fboxsep=-.5\fboxrule\fbox{%
9    \hskip\dimexpr-.5\zw-.2pt\vrule width.4pt height.08\zw depth.12\zw%
10   \hskip\dimexpr.5\zw-.2pt\relax}\hss}}
11 \def\sb{\hbox to 1\zw{\hss\fboxsep=-.5\fboxrule\fbox{%
12   ■\hskip\dimexpr-.5\zw-.2pt\vrule width.4pt height.08\zw depth.12\zw%
13   \hskip\dimexpr.5\zw-.2pt\relax}\hss}}
14 \newbox\gridbox
15 \setbox\gridbox=\hbox to 20\zw{\sq\sq\sq\sq\sb\sq\sq\sq\sq\sb\sq\sq\sq\sq\sb\sq\sq\sq\sq\sb}
16 \def\outbox#1{%
17   \leavevmode\hbox to 2em{\tt #1\hss}\vrule
18   \textcolor{cyan!50!white}{\copy\gridbox}\hskip-20\zw\copy0\vrule\par
19 }
20
21 \def\DisableCB{\directlua{luatexbase.remove_from_callback('post_linebreak_filter', 'Adjust width')}}
22 \def\EnableCB{\directlua{luatexbase.add_to_callback('post_linebreak_filter', luatexja.adjust.adjust_width, 'Adjust width', 100)}}
23
24 \long\def\testbox#1{%
25   \EnableCB\setbox0=\vbox{\hsize=20\zw\parfillskip0pt#1}\outbox{ON}\par
26   \DisableCB\setbox0=\vbox{\hsize=20\zw\parfillskip0pt#1}\outbox{OFF}\par
27 }
28
29 \parindent0pt
30 \begin{document}
31 \jfontspec[JFM=hang]{ipam.ttf}
32
33 \ltjsetparameter{kanjiskip=.0\zw plus .4pt minus .4pt}
34 {\tt kanjiskip: \ltjgetparameter{kanjiskip}
35
36 \ltjsetparameter{xkanjiskip=.25\zw plus .25\zw minus .125\zw}
37 xkanjiskip: \ltjgetparameter{xkanjiskip}}
38
39 このテストでは,行末の句読点・中点類の位置調整を有効にした
40 \texttt{jfm-hang.lua}を用いている.
41 \begin{itemize}
42 \item 句読点は,調整量に合わせて,ぶら下げ,二分取り,全角取りの3種類から選択される.
43 \item 中点類は,行末に四分空きを追加することのみ対応.
44 詰める際の「直前の四分空きも取る」は未実装,
45 \item 行末文字の位置調整は,glueによる調整の負担量が少なくなるように行われる.
46 なお,この位置調整で調整の方向が変わることはない.
47
48 例えば,「三分伸ばす」調整が必要な,句点で終わる行があった場合,句点を全
49       角取りにするとglueの負担合計は「六分詰める」となり,調整量の絶対値
50       は減るが,方向が「伸ばす」から「詰める」こととなる.よってこのよう
51       な場合,句点は二分取りのままである.
52 \end{itemize}
53
54 \testbox{%
55 ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
56 %あいうえおかきくけこさしすせそたちつてと
57 }
58
59 \testbox{%
60 あいうえおかきくけこ「「さしすせそたちつて
61 }
62
63 \testbox{%
64 あいうえおかきA M M Dこさ\texttt{DO i=1,10}『
65 }
66
67 \testbox{%
68 「\texttt{\textbackslash expandafter}ユーザの集い」が開催された
69 }
70
71 \testbox{%
72 あいうえおきくけこ「」さ123456そたちつて
73 }
74
75 \def\pTeX{p\kern-.2em\TeX}
76 \testbox{%
77 日本で\pTeX,p\LaTeX がよく使われている。
78 }
79
80 中点類の空き詰めは括弧類より優先
81
82 \testbox{%
83 あいうえおかきくけ・こさしすせそたち「「あ
84 }
85
86 句読点類・中点類の後ろ空き
87
88 \testbox{%
89 日本では\pTeX,p\LaTeX が使われている。
90 }
91 \testbox{%
92 あいうえおかきくけこさしすせそたちつて.
93 }
94 \testbox{%
95 あいうえおかきくけこさしすせそたちつ\vrule width .5\zw て.
96 }
97 \testbox{%
98 あいうえおかきくけこさしすせそたちつ\vrule width 1\zw て.
99 }
100 \testbox{%
101 あいうえおかきくけこさしすせそたちつて・
102 }
103
104 \newpage
105
106 \end{document}