luatexja-fontspecとLetterSpace

luatexja-fontspecとLetterSpace

- Yuishin の投稿
返信数: 3
OS: Windows 10 Professional (x64)
ディストリビューション: TeX Live 2020

fontspecのFeatureであるLetterSpaceをluatexja-fontspecでも同様に用いて
字間を調整できないか試みたのですが、うまくいきません。
うまい方法はないでしょうか。

%% コードここから

\documentclass[a4j]{ltjsarticle}

\usepackage[no-math]{luatexja-fontspec}


\begin{document}

\parindent=0pt


{\fontspec{Times New Roman}\addfontfeature{LetterSpace=0.0}

ABCDEFG HIJKLMN\\

\jfontspec{msmincho.ttc}[FontIndex=0]\addjfontfeature{LetterSpace=0.0}

あいうえおかきくけこ}


{\fontspec{Times New Roman}\addfontfeature{LetterSpace=10.0}

ABCDEFG HIJKLMN\\

\jfontspec{msmincho.ttc}[FontIndex=0]\addjfontfeature{LetterSpace=10.0}

あいうえおかきくけこ}


\end{document}

%% コードここまで

Yuishin への返信

Re: luatexja-fontspecとLetterSpace

- Yuishin の投稿
質問に補足です。
LuaTeX-jaにおいては、漢字の間隔について
\ltjsetparameter{kanjiskip=...}
による補正が可能なことは知っています。
そのため、目的の達成方法そのものは知っています。

現時点でのluatexja-fontspecはfontspecの
LetterSpaceにあたる機能が実装されていないのでしょうか。

Yuishin への返信

Re: luatexja-fontspecとLetterSpace

- 北川 弘典 の投稿
現状では「fontspec の LetterSpace にあたる機能」,同じことですが luaotfload における
\font\testOA=lmroman10-regular:letterspace=0.01
といった letterspace 指定は,LuaTeX-ja 管轄の和文フォントでは使えません.
内部処理は
1. luaotfload による各種 OpenType 機能の適用
2. LuaTeX-ja による [x]kanjiskip や各種グルーの挿入
3. letterspace による字間調整
という順番で行われていますが,
2. で処理された和文文字に対しては 3. の処理が結果的に適用されないことになるためです.

最初から 2., 3. の順序が逆になることが望ましいですが,3. の処理は字間調整の指定がされない限り入らないのが悩みどころです.
luatexja-fontspec 読み込み後に 2., 3. の順序を手動で入れ替えることは不可能ではないですが…….
北川 弘典 への返信

Re: luatexja-fontspecとLetterSpace

- Yuishin の投稿
なるほど、処理の順番の関係ですか。
バグの可能性があるのではないかと思って質問したのですが、
これはバグとも言えませんね。
fontspecのマニュアルと行き来しながらluatexjaのマニュアルを読んでいて、
数十分ほどあれこれ悩んでいました。
私と同様の発想をする人が他にもいると思います。
これを仕様と言い切ってマニュアルに掲載してしまうのはいかがでしょうか。