texjporg / tex-jp-build

Minimum source repository to build Japanese TeX processing tools
23 stars 6 forks source link

[dvips] OFMのFONTDIR RTをpTeXの縦組みと解釈させる? #135

Closed t-tk closed 2 years ago

t-tk commented 2 years ago

japanese-otf 関連の話題 otf-cjXX-X.ofm は何のため? に関連し dvips のパッチを書いてみました。 [dvips] pTeXの和文用TFM(JFM)をOFMに優先させる? #134 の別解案です。 参考: https://github.com/texjporg/japanese-otf-mirror/issues/15#issuecomment-527073176

このパッチでやろうとした仕様に関してはここのIssueで議論し、そもそもpTeX & ofm の縦組みはどうするのがいいんだろう、みたいな話は継続性も考え↓で議論したいと思います。 otf-cjXX-X.ofm は何のため?

t-tk commented 2 years ago

このパッチは現状こうなっています。

  1. ofmを読み込む際 !noptex かつ fontlevel==1 かつ ec>= 0x2E00 の場合、ofm をpTeXの和文用であるとみなす。
  2. 1に加えさらに FONTDIRが RT のとき、ofmをpTeXの和文用の縦組み用であるとみなす。FONTDIR が RT 以外の場合(default)は横組み用とみなす。

たった6行ほどの簡単なパッチですが、japanese-otf & (\CID{} or hiraprop) & 縦組み & dvips の組み合わせで文字の向きが縦組みにならない問題が解決に向かうはずです。(ただし japanese-otf の \CID{} 用,hiraprop用のofmに FONTDIR RT の設定追加が必要。)

今回の新しい挙動が不都合であり避けたいような場合には、

  1. FONTDIR RT の設定をしない
  2. ec>= 0x2E00 を使わない
  3. fontlevel==0 で使う
  4. noptex の設定をする

のいずれかで回避できます。 今 TeX Live にある ofm を Master/texmf-dist/fonts/ofm や Master/texmf-dist/fonts/ovp をいろいろ探してみたのですが 「FONTDIR RT を設定している」のは皆無、「ec>=0x2E00 を使っている」のはjapanese-otfだけ、という現状のようです。 万一 1, 2, 3 が重なっても 4 のコマンドラインオプションで回避できます。 ec>=0x2E00 を使っていて和文用と判定されたとしても横組み用(FONTDIR TL(ラテン文字など)またはTR(アラビア文字など))である限り従来通りの動作をするはずです。

副作用が無いことをもう少しチェックして問題なさそうなら TeX Live 2022 に押し込んでしようかと考えています。 code freezeまで間がないので。

t-tk commented 2 years ago

dvips で OFM の FONTDIR RT をJFMのid==9 と解釈するパッチ https://github.com/texjporg/tex-jp-build/commit/d3f4db01509173f2fafaf6a4f6cddd11aa23f0ce と otf-ciXX-X.ofm に FONTDIR RT を加えるパッチ https://github.com/texjporg/japanese-otf-mirror/commit/a66f53c4405114dbe0b4aac6e9e91a5652edcf99 の組み合わせで予定通り上手く動くことを確認しました。 副作用も見つかっていないし、無いはずなので、dvipsのパッチはこのまま進めます。

t-tk commented 2 years ago

TeX Live svn にコミットしました。r62223 ここは閉じます。