X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=test%2Ftest04-jfm.tex;h=6f76998d97ab3a27e5f79dbaf9decf130dbd2de8;hb=26649839d59f6fb2d9517806a2850200a16895bc;hp=feabe8d43c3f7b6680b1d15b6bc215706298a473;hpb=a0fd185190cb293c9800298a5039ffc909127eaa;p=luatex-ja%2Fluatexja.git diff --git a/test/test04-jfm.tex b/test/test04-jfm.tex index feabe8d..6f76998 100644 --- a/test/test04-jfm.tex +++ b/test/test04-jfm.tex @@ -1,18 +1,20 @@ -%#!luatex +%#!luatex test04-jfm.tex \input luatexja-core.sty - -\def\head#1{\medskip\noindent{\bf\tengt ■ #1}\par} +\def\head#1{\medskip\penalty-100\noindent{\bf\tengt ■ #1}\par\penalty10000 } \jfont\rml={psft:Ryumin-Light:jfm=ujis} at 10pt -\rml あ\inhibitglue\char"201Cあ←Ryumin-Light +\rml あ\inhibitglue\char"201Cあ・い\inhibitglue ()あ←Ryumin-Light \jfont\rml={file:ipam.ttf:jfm=ujis} at 10pt -\rml あ\inhibitglue\char"201Cあ←ipam +\rml あ\inhibitglue\char"201Cあ・い←IPA\hbox{}明朝 (ipam) \jfont\rml={file:KozMinPr6N-Regular.otf:jfm=ujis} at 10pt -\rml あ\inhibitglue\char"201Cあ←KozMinPr6N-Regular +\rml あ\inhibitglue\char"201Cあ・い←KozMinPr6N-Regular + +\jfont\rml={file:ipamp.ttf:jfm=ujis} at 10pt +\rml あ\inhibitglue\char"201Cあ・い←IPA P\hbox{}明朝 (ipamp) {\scrollmode -\gjfont\rml={psft:GothicBBB-Medium:jfm=bad} at 10pt % must be error +\globaljfont\rml={psft:GothicBBB-Medium:jfm=bad} at 10pt % must be error } \rml あ123 % \rml は未定義となる {\tt\meaning\rml} @@ -25,64 +27,368 @@ \head{文字範囲の代入/取得テスト} -\ltjdefcharrange{2}{`あ,"E0-"FF} -「\char"F4」は2番の文字範囲なので,和文扱いのはず +\ltjdefcharrange{9}{`あ,"E0-"FF} +「\char"F4」は9番の文字範囲なので,和文扱いのはず -{iso8859-1 和文扱い:\ltjsetparameter{jcharrange={1}}% -\ltjgetparameter{jcharrange}{1}% +{iso8859-1 和文扱い:\ltjsetparameter{jacharrange={1,8}}% +\ltjgetparameter{jacharrange}{1}% § ¶ ° £ ¥ \char"F4} -{iso8859-1 欧文扱い:\ltjsetparameter{jcharrange={-1}}% -\ltjgetparameter{jcharrange}{1}% +{iso8859-1 欧文扱い:\ltjsetparameter{jacharrange={-1,-8}}% +\ltjgetparameter{jacharrange}{1}% +§ ¶ ° £ ¥ \char"F4} + +{標準:% +\ltjgetparameter{jacharrange}{1}% § ¶ ° £ ¥ \char"F4} \head{文字範囲の状況取得} -\ltjgetparameter{jcharrange}{0} -\ltjgetparameter{jcharrange}{1} -\ltjgetparameter{jcharrange}{2} +\ltjgetparameter{jacharrange}{0} +\ltjgetparameter{jacharrange}{1} +\ltjgetparameter{jacharrange}{2} \head{文字コード→文字範囲} -\ltjgetparameter{chartorange}{`い} % must be 217 -\ltjgetparameter{chartorange}{`§} % must be 1 -\ltjgetparameter{chartorange}{"F7} % must be 2 +\ltjgetparameter{chartorange}{`A} % must be -1 +\ltjgetparameter{chartorange}{`い} % must be 6 +\ltjgetparameter{chartorange}{`§} % must be 8 +\ltjgetparameter{chartorange}{"F7} % must be 9 \ltjgetparameter{chartorange}{-1} % must be error " +\ltjgetparameter{chartorange}{"CFFFF} % must be 217" \medskip -\ltjsetparameter{jcharrange={-217}} -ほとんど欧文扱い.2番は別(「あ」) -\ltjsetparameter{jcharrange={218}} -和文扱いにもどる +\ltjsetparameter{jacharrange={-217}} +あ\char"CFFFFあ +\ltjgetparameter{jacharrange}{\ltjgetparameter{chartorange}{"CFFFF}}←CFFFF欧文扱い +\ltjsetparameter{jacharrange={218}} +あ\char"CFFFFあ +\ltjgetparameter{jacharrange}{\ltjgetparameter{chartorange}{"CFFFF}}←CFFFF和文扱い -\vfill\eject -\jfont\rmlh={psft:Ryumin-Light:jfm=hang} at 10pt -\head{‘lineend’検証} +\head{Ticket \#25121} +\setbox0=\hbox{\ltjsetparameter{kanjiskip=-5pt} +あいうえお\hbox{\ltjsetparameter{kanjiskip=12pt}かきくけこ}さしすせそ\par a}\copy0 + + +{\ltjsetparameter{kanjiskip=3pt} +あいうえお{\ltjsetparameter{kanjiskip=-5pt}% this setting is ignored +かきくけこ}さしすせそ\par} + +{\ltjsetparameter{kanjiskip=3pt} +あいうえおさしすせそ}\par + +\vfill\eject\tracingonline=0 +\noindent{\bf\gt 以下はJFMグルー挿入検証} +\jfont\rmlh={psft:Ryumin-Light:jfm=test} at 10pt \jfont\sixgt={psft:GothicBBB-Medium:jfm=ujis} at 6pt \font\sixtt=cmtt10 at 6pt - +{\let\\=\relax +\directlua{function print_fn(...) + print(...) + tex.print('\\par ', ...) +end}} +\unless\ifdefined\ltjgetwd \let\ltjgetwd\wd\fi \def\dumplist#1{\par\noindent\leavevmode +{\dimen0=\ltjgetwd#1}% \hbox to 0.2\hsize{\copy#1\hss}% \vbox{\hsize=0.6\hsize\sixtt\baselineskip=7.2pt\sixgt\let\\=\relax -\directlua{ltj.ext_show_node_list(tex.getbox(#1).head, '\\par', tex.print)}\hrule}} +\directlua{print('======') + luatexja.ext_show_node_list(tex.getbox(#1).head, '', print_fn) + print('======')}\hrule}% +} + +%\tracingonline=1\tracingoutput=1\showboxdepth=3\showboxbreadth=100 + +\head{JA--JA (penなし)} + +\setbox0=\hbox{\rmlh あア}\dumplist0 + +\setbox0=\hbox{\rmlh あイ}\dumplist0 + +\setbox0=\hbox{\rmlh あウ}\dumplist0 + +\setbox0=\hbox{\rmlh いア}\dumplist0 + +\setbox0=\hbox{\rmlh いイ}\dumplist0 + +\setbox0=\hbox{\rmlh いウ}\dumplist0 + +\head{JA--EN (penなし)} + +\setbox0=\hbox{\rmlh あa}\dumplist0 + +\setbox0=\hbox{\rmlh いa}\dumplist0 + +\setbox0=\hbox{\rmlh うa}\dumplist0 + +\setbox0=\hbox{\rmlh えa}\dumplist0 + +\setbox0=\hbox{\rmlh おa}\dumplist0 + +\head{EN--JA (penなし)} + +\setbox0=\hbox{\rmlh aあ}\dumplist0 + +\setbox0=\hbox{\rmlh aい}\dumplist0 + +\setbox0=\hbox{\rmlh aう}\dumplist0 + +\head{JA--明kern (penなし)} + +\setbox0=\hbox{\rmlh あ\kern3pt}\dumplist0 + +\setbox0=\hbox{\rmlh い\kern3pt}\dumplist0 + +\setbox0=\hbox{\rmlh う\kern3pt}\dumplist0 + +\head{明kern--JA (penなし)} + +\setbox0=\hbox{\rmlh \kern3ptあ}\dumplist0 + +\setbox0=\hbox{\rmlh \kern3ptい}\dumplist0 + +\setbox0=\hbox{\rmlh \kern3ptう}\dumplist0 + +\head{JA--hbox (penなし)} + +\setbox0=\hbox{\rmlh あ\hbox{}}\dumplist0 + +\setbox0=\hbox{\rmlh い\hbox{}}\dumplist0 + +\setbox0=\hbox{\rmlh う\hbox{}}\dumplist0 + +\setbox0=\hbox{\rmlh え\hbox{}}\dumplist0 + +\setbox0=\hbox{\rmlh あ\hbox{ア}}\dumplist0 + +\setbox0=\hbox{\rmlh あ\hbox{a}}\dumplist0 + +\setbox0=\hbox{\rmlh い\hbox{a}}\dumplist0 + +\head{hbox--JA (penなし)} + +\setbox0=\hbox{\rmlh \hbox{}あ}\dumplist0 + +\setbox0=\hbox{\rmlh \hbox{}い}\dumplist0 + +\setbox0=\hbox{\rmlh \hbox{}う}\dumplist0 + +{\vfill\eject% + +\ltjsetparameter{prebreakpenalty={`(,123}} +\ltjsetparameter{postbreakpenalty={`あ,123}} +\ltjsetparameter{prebreakpenalty={`い,571}, postbreakpenalty={`い,123}} +\ltjsetparameter{postbreakpenalty={`う,123}} +\ltjsetparameter{postbreakpenalty={`え,123}} +\ltjsetparameter{postbreakpenalty={`お,123}} +\ltjsetparameter{postbreakpenalty={`a,321}} +\head{JA--JA (penあり)} + +\setbox0=\hbox{\rmlh あア}\dumplist0 + +\setbox0=\hbox{\rmlh あイ}\dumplist0 + +\setbox0=\hbox{\rmlh あウ}\dumplist0 + +\setbox0=\hbox{\rmlh いア}\dumplist0 + +\setbox0=\hbox{\rmlh いイ}\dumplist0 + +\setbox0=\hbox{\rmlh いウ}\dumplist0 + +\head{JA--EN (penあり)} + +\setbox0=\hbox{\rmlh あa}\dumplist0 + +\setbox0=\hbox{\rmlh いa}\dumplist0 + +\setbox0=\hbox{\rmlh うa}\dumplist0 + +\setbox0=\hbox{\rmlh えa}\dumplist0 + +\setbox0=\hbox{\rmlh おa}\dumplist0 + +\head{EN--JA (penあり)} + +\setbox0=\hbox{\rmlh aあ}\dumplist0 + +\setbox0=\hbox{\rmlh aい}\dumplist0 + +\setbox0=\hbox{\rmlh aう}\dumplist0 + +\head{JA--hbox (penあり)} + +\setbox0=\hbox{\rmlh あ\hbox{}}\dumplist0 + +\setbox0=\hbox{\rmlh い\hbox{}}\dumplist0 + +\setbox0=\hbox{\rmlh う\hbox{}}\dumplist0 + +\setbox0=\hbox{\rmlh え\hbox{}}\dumplist0 + +\setbox0=\hbox{\rmlh あ\hbox{ア}}\dumplist0 + +\setbox0=\hbox{\rmlh あ\hbox{a}}\dumplist0 -\setbox0=\hbox{\rmlh あえあいえ} +\setbox0=\hbox{\rmlh い\hbox{a}}\dumplist0 + +\setbox0=\hbox{\rmlh \hbox{(}い\hbox{)}}\dumplist0 + +\head{hbox--JA (penあり)} + +\setbox0=\hbox{\rmlh \hbox{}あ}\dumplist0 + +\setbox0=\hbox{\rmlh \hbox{}い}\dumplist0 + +\setbox0=\hbox{\rmlh \hbox{}う}\dumplist0 + +\head{italic correction} + +\setbox0=\hbox{\it f\/(\/あ}\dumplist0 + +} + +\vfill\eject +\noindent{\gt\bf [x]kanjiskipの挿入} + +\head{kanjiskip from JFM, autospacing (JA--JA)} +\setbox0=\hbox{\rmlh ああ}\dumplist0 + +{\ltjsetparameter{kanjiskip=\maxdimen} +\setbox0=\hbox{\rmlh ああ}\dumplist0 +\jfont\rmlk={psft:Ryumin-Light:jfm=test} at 12pt +\setbox0=\hbox{\rmlk は\rmlh あ}\dumplist0} + +\def\naspc{\ltjsetparameter{autospacing=false}\relax} +\def\naxspc{\ltjsetparameter{autoxspacing=false}\relax} +\setbox0=\hbox{\rmlh あ\naspc ああ}\dumplist0 + +\head{kanjiskip from JFM/autoxspacing (JA--EN)} +\setbox0=\hbox{\rmlh まx}\dumplist0 + +\setbox0=\hbox{\rmlh ま\naxspc x}\dumplist0 + +\setbox0=\hbox{\naxspc\rmlh まx}\dumplist0 + +{\ltjsetparameter{xkanjiskip=\maxdimen}\setbox0=\hbox{\rmlh まx}\dumplist0} + +{\ltjsetparameter{jaxspmode={`ま,preonly}} +\setbox0=\hbox{\rmlh まx}\dumplist0} +{\ltjsetparameter{alxspmode={`x,postonly}} +\setbox0=\hbox{\rmlh まx}\dumplist0} + +\head{xkanjiskip from JFM/autoxspacing (EN--JA)} +\setbox0=\hbox{\rmlh xま}\dumplist0 + +\setbox0=\hbox{\rmlh x\naxspc ま}\dumplist0 + +\setbox0=\hbox{\naxspc\rmlh xま}\dumplist0 + +{\ltjsetparameter{xkanjiskip=\maxdimen}\setbox0=\hbox{\rmlh xま}\dumplist0} + +{\ltjsetparameter{jaxspmode={`ま,postonly}} +\setbox0=\hbox{\rmlh xま}\dumplist0} +{\ltjsetparameter{alxspmode={`x,inhibit}} +\setbox0=\hbox{\rmlh xまおx}\dumplist0} + +\head{more than one penalty} + +\setbox0=\hbox{\rmlh お\penalty1701\penalty1701\penalty1701い} +\dumplist0 +\setbox0=\hbox{\rmlh お\penalty1701\penalty1701\penalty1701お} +\dumplist0 +\setbox0=\hbox{\rmlh あ\penalty1701\penalty1701\penalty1701い} +\dumplist0 +\setbox0=\hbox{\rmlh あ\penalty1701\penalty1701\penalty1701お} \dumplist0 -\medskip -\ltjsetparameter{postbreakpenalty={`あ,100}} -\ltjsetparameter{postbreakpenalty={`い,100}} -\ltjsetparameter{postbreakpenalty={`う,100}} -\ltjsetparameter{postbreakpenalty={`え,100}} -\setbox0=\hbox{\rmlh あえあいえ} +\head{その他: italic correction and accents} + +\setbox0=\hbox{\tenrm あ\/j} +\dumplist0 +\setbox0=\hbox{\tenrm )\/j} +\dumplist0 +\setbox0=\hbox{\tenrm\rmlh れ\v{A})} \dumplist0 -\head{italic correction} +\head{その他: box boundary} + +\setbox0=\hbox{\rmlh かあか} +\dumplist0 +\setbox0=\hbox{a\setbox3=\hbox{\rmlh かあか}\unhbox3a} +\dumplist0 +\setbox0=\hbox{a\setbox3=\hbox{\rmlh か}\box3a} +\dumplist0 +\setbox0=\hbox{\rmlh き\hbox{か}き\hbox{き}き} +\dumplist0 + +{\ltjsetparameter{postbreakpenalty={`あ,1000},prebreakpenalty={`あ,1000}} +\setbox0=\hbox{あ\hbox{(}あ\setbox3=\hbox{(}\unhbox3あ} +\dumplist0} + +\vfill\eject +\head{その他: paragraph, hbox and math boundary} + +\setbox1=\vbox{\parindent19.2pt \rmlh\hsize=100pt\parfillskip=30pt +かエ\par\global\setbox0=\lastbox} +\dumplist0 + +\setbox1=\vbox{\noindent\rmlh\hsize=100pt\parfillskip=30pt +かエ\par\global\setbox0=\lastbox} +\dumplist0 + +\setbox0=\hbox{\rmlh かエ} +\dumplist0 + +\setbox0=\hbox{\rmlh あ$a$さ$a$か} +\dumplist0 + +\head{その他: unhbox の連続} +\message{HOGE} +\setbox0=\hbox{\tenmin\setbox1=\hbox{)}\setbox2=\hbox{a}\unhbox1\unhbox2} +\dumplist0 + +\setbox3=\hbox{\tenmin\setbox1=\hbox{)}\setbox2=\hbox{a}\unhbox1\unhbox2} +\setbox0=\hbox{\unhbox3} +\dumplist0 + +\setbox0=\hbox{\tenmin\setbox1=\hbox{()}\setbox2=\hbox{「」}% + \unhcopy1\unhbox1\unhbox2} +\dumplist0 + +\setbox0=\hbox{\tenmin\setbox1=\hbox{}あ\unhbox1い} +\dumplist0 + +\setbox0=\hbox{\tenmin\setbox1=\hbox{\tate }あ\unhbox1い} +\dumplist0 + +\head{その他: 「前由来」「後由来」JFM由来グルー} +\setbox0=\hbox{\tenmin あ\fivemin (} +\dumplist0 + +\setbox0=\hbox{\fivemin あ\tenmin (} +\dumplist0 + +\setbox0=\hbox{\fivemin .\tenmin ・} +\dumplist0 + +\setbox0=\hbox{\tenmin .\fivemin ・} +\dumplist0 + +\head{その他: JFM and kerning} +\jfont\kmd=KozMinPr6N-Regular.otf:jfm=test;script=latn;+kern;+liga +\jfont\kmn=KozMinPr6N-Regular.otf:jfm=test;-kern + +\setbox0=\hbox{\kmd タノタイクノ} +\dumplist0 + +\setbox0=\hbox{\kmn タノタイクノ} +\dumplist0 -\setbox0=\hbox{x{\rmlh お\/}({\rmlh お\/}あ} +\setbox0=\hbox{\kmd タ\/ノ} \dumplist0 -\setbox0=\hbox{x{\it f\/}({\it g\/}あ} +\setbox0=\hbox{\kmd 」カ゚.} \dumplist0 \end