lua(la)texjaで細いフォントを使おう

newjfontfamilyでの設定について

lualatexjaだと色々なフォント、ウェイト、フェイスが使えて楽しいです。そこでプレゼン的な意味での表現力強化の一環として、ずっと前に購入していたAXIS Condensedフォントという細長フォントも取り込んで見たのだけど、字は細くても字間が空いて他のフォントとまったく同じ間隔で配置されてしまいます。

LetterWidthを設定しても、kainjiskipを設定しても効いているようには見えない。いや、改行を入れるとkanjiskipが効くみたいだけど、それでは行内でフォントを切り替えることができないじゃないか。

ググって、以下のページが非常に参考になりそうだということがわかりました。

なるほどデフォールトでは日本語フォントのメトリックスは個々のフォントに依存していないのか。 JFT=prop とすることで、ちゃんとフォントファイル中の情報が使われるようになると。。。で、丸写し:

\newopentypefeature{PKana}{On}{pkna}
\newjfontfamily\AXISCondensedJp[
JFM=prop,PKana=On,
BoldFont={AxisCondStd-Bold},
BoldItalicFont={AxisCondStd-Bold},
BoldSlantedFont={AxisCondStd-Bold},
AutoFakeSlant=0.2,
BoldItalicFeatures={FakeSlant=0.2},
BoldSlantedFeatures={FakeSlant=0.2}]
{AxisCondStd-Light}

これで解決したのだと思ったのだけど、実際に使ってみると全く変化なし。JFM指定がまったく効いてないことがわかりました。バージョンアップで何か変更があったんだろう。

で、色々調べたり、実験したりして出た結論:

\newjfontfamily\AXISCondensedJp[
YokoFeatures={JFM=prop,PKana=On},
BoldFont={AxisCondStd-Bold},
BoldItalicFont={AxisCondStd-Bold},
BoldSlantedFont={AxisCondStd-Bold},
AutoFakeSlant=0.2,
BoldItalicFeatures={FakeSlant=0.2},
BoldSlantedFeatures={FakeSlant=0.2}]
{AxisCondStd-Light}

うーん、確かにluatex-jaのマニュアルにはYokoFeaturesって出てきたけど、ここにたどり着くまで二日掛かりました。

ともあれ、これでフォントには不自由しないプレゼンができます。

箇条書きの2行めがCondenseフォント、赤文字がみかちゃん

ちなみにこの設定で20ページ程度のbeamerプレゼンpdfを作るとluatexのプロセスは最大で1.9GBくらいになります。ふーむ、やはり主記憶は8GBではなく16GB用意した方がよさそうだなあ。

Show your support

Clapping shows how much you appreciated Shuji Narazaki’s story.