(注意: 特に構成を考えずに書いているので,文章が非常にだらついたり,情報が不十分なままになったりする可能性があります.また,筆者は LaTeX 等に関する技術的な話に明るくありません.)
背景
筆者は Windows 用 TeXworks (TeX Live 2024) を利用して,upLaTeX + dvipdfmx で文書を作成している.
あるとき mktexlsr したところ*1,upLaTeX が日本語文書の出力に失敗した.実験してみると,次のことがわかった:
- pLaTeX + dvipdfmx は問題なく動作する.
- 日本語を含まない(英文だけの)文書は upLaTeX + dvipdfmx でも出力できる.
- dvi ファイルまでは問題なく出力できており,pdf ファイルが出力できていない: 問題の直接の原因は dvipdfmx にあるらしい.
また,TeXworks には次のことを言われた:
mktexpk: could not locate a virtual/physical font for tfm "upgbm-h".
とか
mktexpk: could not locate a virtual/physical font for tfm "uprml-h".
とか*2.この問題を解決する.
解決
まず,dvipdfmx.cfg を探し出す.筆者の場合は
C:\texlive\2024\texmf-dist\dvipdfmx\dvipdfmx.cfg
にあった.この一番下の方に,
% the following file is generated by updmap(-sys) from the
% KanjiMap entries in the updmap.cfg file.
f kanjix.map
% minimal example for Chinese and Korean users
% improvements please to tex-live@tug.org
f ckx.map
と書かれている.この "f kanjix.map" の直後に,次の一行を追加する.
f uptex-haranoaji.map
これで問題は解決される(はずである).
補足
TeXworks に言われた言葉のうち "upgbm-h" とか "uprml-h" からわかるように,筆者はフォントの設定をデフォルトのまま TeXworks を使用している.そのとき使用しているフォントはコマンドプロンプトから
> kanji-config-updmap status
で調べられる [1] .筆者の場合は,次の結果が返ってきた:
CURRENT family for ja: haranoaji (variant: -04)
Standby family : bizud
Standby family : haranoaji
Standby family : ipa
Standby family : ipaex
Standby family : ms
Standby family : yu-win10
使用しているフォントは「原ノ味フォント」である.
ところで,kanjix.map の場所は,コマンドプロンプトに
> kpsewhich kanjix.map
と訊くと返ってくる.筆者の場合は
c:/texlive/texmf-local/fonts/map/dvipdfmx/updmap/kanjix.map
だった.この場所に kanjix.map を探しに行って中身を読んでみると,なんと "upgbm-h" も "uprml-h" 書かれていない.彼らはどこにいるのかというと,また別のファイル,例えば uptex-haranoaji.map の中にいる.このファイルは筆者の場合
c:/texlive/2024/texmf-dist/fonts/map/dvipdfmx/ptex-fontmaps/haranoaji/uptex-haranoaji.map
にあった.状況から察するに,このとき dvpidfmx は kanjix.map を見るばかりで,本当に必要な(例えば)uptex-haranoaji.map を発見できていなかったのだろう.実際,dvipdfmx.cfg にuptex-haranoaji.map を書き込んだ結果,問題は解決された.
余談
解決策は,[2, 3] に行き当たって思いついた.
この問題に際して,TeX Live を再インストールしたものの,それでも解決しなかった.TeX Live は数年前(2021?)から使っており,kanjix.map は texmf-local に存在しているので,そのときのものが残ったままだったのかもしれない.しかしながら,TeX Live 2024 自体は少し前から使っていたので,kanjix.map における件の欠落が今になって発火するのは不自然な気もする.mktexlsr が着火材になったのだろうか?
なお,mktexlsr は新しい sty ファイル
を texmf-local に配置したことから必要に駆られて実行したのだが,
が悪さをしたとも考えられる.
中では expl3 を扱っているのだが,それが原因なのだろうか?
この解決策は逆用できることがあるらしく, dvpidfmx.cfg に追加した
f uptex-haranoaji.map
をコメントアウトすると,(少し時間が経った後,または
を使用すると)問題が再発する.
参考文献
[1] https://ctan.math.washington.edu/tex-archive/fonts/ptex-fontmaps/kanji-config-updmap.pdf
[2] 名月記: texlive(w/ texshop)環境:dvipdfmxが通らなくなったときの対処
[3] dvipdfmxでpdfに変換できない - I am a wannabe.