Ticket #38664

読み込むフォント数の抑制

Open Date: 2018-10-09 06:08 Last Update: 2019-01-07 17:57

Reporter:
Owner:
(None)
Status:
Closed
Component:
(None)
MileStone:
(None)
Priority:
5 - Medium
Severity:
5 - Medium
Resolution:
None
File:
None

Details

TeXConf 2018 の発表資料を作成しているときに,以下の理由で和文フォントがたくさん読み込まれることに気づきました:

  1. luatexja-fontspec 利用時に,OpenType 機能があるかどうか(?)調べるためにフォントを一回読み込む
  2. 数式中に $あ$ のように和文文字を直接記述する機能をサポートするためにシンボルフォントを定義しているが,そのために scriptstyle, scriptscriptstyle 用のフォントが自動的に読み込まれる
  3. 横組しか使わない文書であっても,縦組時のベースライン補正のために縦組用和文フォントが読み込まれる

読み込まれるフォントファイルが増えるわけではありませんが,サイズ違い and/or JFM 違いなので内部的には違うフォントとなり,それによって(とくに Lua 側の)メモリ消費量が多くなります.

1., 2. については現状で以下のような回避策があります:

  • 1. についてはフォント設定を \usepackage[nfssonly]{luatexja-preset} で行う(luatexja-fontspec は読み込まれない)と回避できます.
  • 2. については開発版で \usepackage[disablejfam]{luatexja} とすれば数式中に和文文字を直接記述する機能をカットすることができて回避できます.

しかし,3. については,フォント読み込み自体は \tate 等にフックを仕掛ければできますが,縦組時のベースライン補正量の設定タイミング(\selectfont やサイズ変更時を想定?)を考えると悩みものです.なにか良い方法はないでしょうか?

Ticket History (3/7 Histories)

2018-10-09 06:09 Updated by: h7k
  • New Ticket "読み込むフォント数の抑制" created
2018-12-10 20:30 Updated by: h7k
Comment

横組しか使わない文書であっても,縦組時のベースライン補正のために縦組用和文フォントが読み込まれる

kitagawa_save_jfont ブランチで実験中です.

横組,\dtou,\utod のときに \selectfont を実行しても縦組用フォントそのものではなく,それの使用する JFM とフォントサイズのペアを \ltj@@tfontjfm/JT3/mc/m/n/10 のような名称の命令に格納しておくことにしたので,そのデータを用いて縦組時のベースライン補正量が計算できるようにしています.難点は日本語対応パッチがさらに複雑になってわかりにくいことでしょうか…….

2018-12-16 15:44 Updated by: h7k
Comment

kitagawa_test ブランチにうつしました.以下のようにしています:

  • 「フォント自体は読み込んでいないが,使用する JFM(とフォントサイズ)は把握した状態」(以下,JFM 把握状態)を -2 以下のフォント番号で表すことに. もちろん,TeX/luaotfload 側で「負のフォント番号」を定義するのではなく,LuaTeX-ja 側の「フォント番号↔(JFM, サイズ)」の対応表にエントリが追加されるだけ.
  • \selectfont は,周囲が縦組の場合には現在の横組用和文フォントを JFM 把握状態,そうでない場合は現在の縦組用フォントを JFM 把握状態にする.
  • \tate, \yoko など組方向変更命令には,「変更後の組方向の和文フォントが JFM 把握状態の場合は,もう一回 \selectfont(の一部)を実行して実際にフォントを定義された状態にする」フックを加える.
  • \DeclareFixedFont で定義された制御綴は,組方向に関わらず実際に現在の横組用/縦組用和文フォントを変更する

3, 4 つめの項目により,

\DeclareFixedFont\HOGE{JT3}{...}{...}{...}{...}
あいうえお\HOGE かきく
\hbox{\tate あいう % ここの時点で縦組用和文フォントは \HOGE のまま
}
というコードが「意図通りに」動くことになります.

年内には #38664 と合わせて新バージョンを出したいところです.

2018-12-16 15:45 Updated by: h7k
Comment

おっと,#38664 じゃなくて #38743 でした.#38787 については pLaTeX 側と動きを揃えたい…….

2019-01-05 16:09 Updated by: h7k
Comment

年内には #38664 と合わせて新バージョンを出したいところです.

仕事関係をやっていたら,こっちをすっかり忘れていました……もうちょっとかかるかも.

2019-01-07 17:57 Updated by: h7k
Comment

LuaTeX-ja 20190107.0 を出したので,ひとまず完了とします.

2019-01-07 17:57 Updated by: h7k
  • Status Update from Open to Closed

Attachment File List

No attachments

Edit

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » Login