概要
概要
対象は次のようなものです.
内容は次のようなものです.
目次
psfonts.map
cidfmap
TeX に関連する ports として直接導入したのは以下の二つです.
texlive-20210325-texmf.tar.xz が巨大なファイルなので,download に数時間を要しました. (この時間は通信環境によりますが.) make する際にはこの点にも注意が必要です.
6 年 (数え方によっては 7 年) ぶりの変更になります. 少しづつ試用を始めているので,迷ったことなどを速報的に書いていこうと思います. 今のところ,再設定が必要なのはフォントに関することだけです.
今回の TeX Live の更新において,dvips と dvipdfmx の日本語フォント埋込の default が IPAex フォントから原ノ味フォントに変更されました. その一方で,xdvi と ghostscript は default では旧来どおり IPA フォントを使う設定になっています.
実際に dvips で dvi から PostScript に変換してみると,フォントの部分が次のように変わっています.
- %%DocumentFonts: Ryumin-Light-H CMR10 CMSY10 CMTT10 CMMI10 + %%DocumentFonts: HaranoAjiMincho-Regular-2004-H CMR10 CMSY10 CMTT10
このファイルを gv で表示すると,日本語の部分が文字化けします. これは,ghostscript の側が原ノ味フォントに対応するように設定されていないからです.
この問題に対処する前に,どちらのフォントを使うのかを決断しなければなりません.[1][2][3]
[1] 1 台の PC の中で二つのフォントを併用するという選択はしない方が良いでしょう. 各々の環境を別の PC で保持した方が無難だと思います.
[2] 求める文書ファイルが PostScript なのか PDF なのかでも結論は変わりそうです.
[3] 長い目でみたら,原ノ味フォントに乗り換えるのが楽だと思います. なのでこれは,当面どうするかの決断です.
dvips が出力する PostScript の日本語フォントは,/usr/local/share/texmf-dist/fonts/map/dvips/updmap/psfonts.map により次のように設定されています.
% ptex-haranoaji-04.map gbm HaranoAjiGothic-Medium-2004-H gbmv HaranoAjiGothic-Medium-2004-V rml HaranoAjiMincho-Regular-2004-H rmlv HaranoAjiMincho-Regular-2004-V
~/texmf/fonts/map/dvips/updmap/ に以下の内容で psfonts.map という名のファイルを作ることで,上記のものよりも優先して設定されます.[1]
rml Ryumin-Light-H rmlv Ryumin-Light-V gbm GothicBBB-Medium-H gbmv GothicBBB-Medium-V
[1] TeX Live 2015 の /usr/local/share/texmf-dist/fonts/map/dvips/updmap/psfonts.map もこのようになっています.
/usr/local/share/ghostscript/9.52/Resource/Init/cidfmap に以下の内容を書き加えます.
/HaranoAjiMincho-Regular-2004 /Ryumin-Light ; /HaranoAjiGothic-Medium-2004 /GothicBBB-Medium ;
必要な物はすべて texlive-full に入っているので,新たに何かを download する必要はありません.
次のようにすれば,ghostscript が原ノ味フォントに対応するようになります.[1]
# cd /usr/local/share/ghostscript/9.52/Resource
# cp -pR Font Font.orig ← 必須ではありませんが,元に戻せるように保存しておきます.[2]
# cd /usr/local/share/texmf-dist/scripts/cjk-gs-integrate
# cjk-gs-integrate --link-texmf --force
cjk-gs-integrate: reading font database ...
cjk-gs-integrate: checking for files ...
cjk-gs-integrate: searching for Ghostscript resource
cjk-gs-integrate: output is going to /usr/local/share/ghostscript/9.52/Resource
cjk-gs-integrate: generating links and snippets for CID fonts ...
cjk-gs-integrate: generating links, snippets and cidfmap.local for non-CID fonts ...
cjk-gs-integrate: adding cidfmap.local to cidfmap file ...
cjk-gs-integrate: generating snippets and cidfmap.aliases for font aliases ...
cjk-gs-integrate: adding cidfmap.aliases to cidfmap file ...
cjk-gs-integrate: running mktexlsr ...
mktexlsr: Updating /usr/local/share/texmf-config/ls-R...
mktexlsr: Updating /usr/local/share/texmf-dist/ls-R...
mktexlsr: Updating /usr/local/share/texmf-local/ls-R...
mktexlsr: Updating /usr/local/share/texmf-var/ls-R...
mktexlsr: Done.
cjk-gs-integrate: finished
また,/usr/local/share/ghostscript/9.52/Resource/Init/cidfmap を次のように変更します. (IPA font の読み込みを止めます.)
--- cidfmap.orig 2022-03-08 17:48:12.574447000 +0900 +++ cidfmap 2022-03-08 17:50:28.928388000 +0900 @@ -37,8 +37,8 @@ % /ShinGo-Bold /HeiseiKakuGo-W5 ; % /Ryumin-Medium << /FileType /TrueType /Path (H:/AuxFiles/Fonts/BATANG.TTC) /SubfontID 3 /CSI [(Japan1) 2] >> ; % /Ryumin-Medium << /FileType /TrueType /Path (windir) getenv not {(c:/windows)}if (/Fonts/BATANG.TTC)concatstrings /SubfontID 3 /CSI [(Japan1) 2] >> ; -/Ryumin-Light << /FileType /TrueType /Path (std.ja_JP/Ryumin-Light) /SubfontID 0 /CSI [(Japan1) 6] >> ; -/GothicBBB-Medium << /FileType /TrueType /Path (std.ja_JP/GothicBBB-Medium) /SubfontID 0 /CSI [(Japan1) 6] >> ; +%/Ryumin-Light << /FileType /TrueType /Path (std.ja_JP/Ryumin-Light) /SubfontID 0 /CSI [(Japan1) 6] >> ; +%/GothicBBB-Medium << /FileType /TrueType /Path (std.ja_JP/GothicBBB-Medium) /SubfontID 0 /CSI [(Japan1) 6] >> ; /Ryumin-Medium /Ryumin-Light ; /Ryumin-Regular /Ryumin-Light ;
これは,この変更を施した後は IPAex もそれ以外の TrueType フォントも読み込めなくなるためです. (当然,cidfmap.aliases は消した状態で試しました.) gv で表示しようとすると,文字化けでなくフォントの読み込み (と思われる) 段階でエラーが出ます.
Error /typecheck in /findfont ...
既存の Ryumin-Light-H, /GothicBBB-Medium などと書かれた PostScript も原ノ味フォントで表示するために,/usr/local/share/ghostscript/9.52/Resource/Init/cidfmap.aliases を次のように変更します. (太さはお好みで設定して下さい.)
--- cidfmap.aliases.orig 2022-03-08 17:39:56.157786000 +0900 +++ cidfmap.aliases 2022-03-08 17:47:33.726592000 +0900 @@ -27,7 +27,8 @@ /MidashiGoPro-MB31 /HaranoAjiGothic-Bold ; /MidashiMin-MA31 /HaranoAjiMincho-SemiBold ; /MidashiMinPro-MA31 /HaranoAjiMincho-SemiBold ; -/Ryumin-Light /HaranoAjiMincho-Light ; +/Ryumin-Light /HaranoAjiMincho-Regular ; ← 既に設定されていますが,太さを変えました. +/GothicBBB-Medium /HaranoAjiGothic-Regular ; ← これを追加します. /RyuminPro-Light /HaranoAjiMincho-Light ; /HeiseiMin-W3 /Ryumin-Light ; /HeiseiKakuGo-W5 /GothicBBB-Medium ;
[1] 2022.3.8 時点で,ports の ghostscript が version 9.55 になっています.
2022.5.9 時点で,ports の ghostscript が version 9.56.1 になっています.
これらの version になっても上記の操作は必要です.
directory 名を適宜読み替えて対処してください.
[2] ports/packages の機能を使って ghostscript を消して入れ直せば元に戻せます. ただし,pkg-plist にないファイルは消してくれませんし,空になっていない directory は消してくれません. そこは手作業で対処しなければなりません.
私の使い方が間違っているのかもしれませんが,うまく行きませんでした.
# kanji-config-updmap-sys --ja status
CURRENT family for ja: noEmbed (variant: <empty>)
Standby family : haranoaji ← 優先順位から,これが選ばれる
Standby family : ipa
Standby family : ipaex
次のようにすれば,見掛け上は IPAex フォントになります. 実行するのは最後まで読んでからにして下さい.
# kanji-config-updmap-sys --ja ipaex (中略) Files generated: /usr/local/share/texmf-var/fonts/map/dvips/updmap: 15782 2022-02-22 13:22:12 builtin35.map 21255 2022-02-22 13:22:12 download35.map 21255 2022-02-22 13:22:12 psfonts_pk.map 21255 2022-02-22 13:22:12 psfonts_t1.map 21250 2022-02-22 13:22:12 ps2pk.map 14 2022-02-22 13:22:12 psfonts.map -> psfonts_t1.map /usr/local/share/texmf-var/fonts/map/pdftex/updmap: 21257 2022-02-22 13:22:12 pdftex_dl14.map 19592 2022-02-22 13:22:12 pdftex_ndl14.map 15 2022-02-22 13:22:12 pdftex.map -> pdftex_dl14.map /usr/local/share/texmf-var/fonts/map/dvipdfmx/updmap: 305 2022-02-22 13:22:12 kanjix.map
ただし,更新される psfonts.map (実体は psfonts_t1.map) には rml 等はありません. (dvips の実行中に「rml がないよ!」と言われてしまいます.) それ以外にも texmf-dist にあるオリジナルのものに比べて「いろいろ足りない」ものになってしまいます.[1][2]
さらに困ったことに
# kanji-config-updmap-sys --ja nofont
などとしても元の状態には戻せません.[3] すなわち,psfonts.map が不完全なままです. この場合,
/usr/local/share/texmf-var/fonts/map/dvips/updmap/* dvipdfmx/updmap/* pdftex/updmap/* /usr/local/share/texmf-var/web2c/updmap.log /usr/local/share/texmf-config/web2c/updmap.cfg
を消して
# cd /usr/local/share/texmf-var # mktexlsr . # cd /usr/local/share/texmf-config # mktexlsr .
とすれば元の状態に戻せます.
[1] psfonts.map として texmf-dist にあるオリジナルのものに対して 2.1 節に述べた部分だけが変更されたものを生成して欲しいです.
[2] dvips にとっては残念な結果ですが,pdftex や dvipdfmx にとっては必要な操作なのかもしれません.
[3] マニュアルの読み込みが足らないだけで kanji-config-updmap-sys を使って元に戻す方法はあるのかもしれません.
xdvi (print/tex-xdvik) 22.87_4 は,default では IPA フォントで表示します.
フォントを規定しているのは /usr/local/share/texmf-dist/fonts/map/xdvi/xdvi-ptex.map のこの部分です.
% IPA font (http://ossipedia.ipa.go.jp/ipafont/) rml JIS-H ipam.ttf rmlv JIS-V ipam.ttf gbm JIS-H ipag.ttf gbmv JIS-V ipag.ttf
~/texmf/fonts/map/xdvi/xdvi-ptex.map にて以下のように指定すれば原ノ味フォントになります.
gbm JIS-H HaranoAjiGothic-Medium.otf gbmv JIS-V HaranoAjiGothic-Medium.otf rml JIS-H HaranoAjiMincho-Regular.otf rmlv JIS-V HaranoAjiMincho-Regular.otf
参考までに,これらのフォントの実体は以下のところにあります.
/usr/local/share/texmf-dist/fonts/opentype/public/haranoaji/ /usr/local/share/texmf-dist/fonts/opentype/public/haranoaji-extra/
(2022.6.3) 2022.3.18 から xdvi が 22.87.06 になり,日本語の表示ができなくなってしまいました.
/usr/local/share/texmf-dist/fonts/map/xdvi/ 自体がなくなりました.
手作業で xdvi/xdvi-ptex.map を復活させても改善されません.
pkg-descr や pkg info tex-xdvik には以下のようにあります.
This package includes pTeX support. A fontmap file for xdvi is installed as TEXMFDIST/fonts/map/xdvi/xdvi-ptex.map.
これが install もされないし,効かなくなっているのです. (この部分は FreeBSD 独自の patch に依るものです.) 22.87.06 になって設定法が変わったのかのかもしれません. 進展があればここに追記します.
なお,現在の ports tree に xdvi 22.87_4 用の print/tex-xdvik を持ってくれば make install することができ,以前の状態に戻せます.
(2022.6.22) 上記の変更に伴い japanese/ja-tex-xdvik が新設されておりました. version は 22.87 です. こちらを使えば問題ありません. 既存の print/tex-xdvik とは conflict するので,そちらは消しておく必要があります.
ただし,このやり方だと pkg check に引っ掛かります.
# pkg check -d 以下,関連部分を抜粋 texlive-full has a missing dependency: tex-xdvik ← これはその通りです. >>> Missing package dependencies were detected. >>> Found 1 issue(s) in the package database. Installed packages to be REMOVED: bison: 3.8.2,1 ← これは本来,問題ありません. New packages to be INSTALLED: tex-xdvik: 22.87.06 Installed packages to be DOWNGRADED: libarchive: 3.6.1,1 -q> 3.6.0,1 ← これは本来,問題ありません.
副作用だと思いますが,正しく install されている ports のいくつかが,「消せ」とか「古いものに置き換えろ」と言われます. これは check の機能が正しく動作していないだけで,動作に影響はありません.
なぜか,これらを ports でなく packages を用いて導入した場合には,pkg check に引っ掛かりません.
dvipdfm は,default では原ノ味フォントを使うように設定されています. (どこでどう設定しているのかとか,変更することができるのか等は,そのうち調べます.)
% dvipdfm a.dvi a.dvi -> a.pdf [1] 36484 bytes written
生成された a.pdf のフォントとして何が使われているのかは,次のようにして確認ます. (pdffonts は graphics/xpdf の一部です.)
% pdffonts a.pdf
name type encoding emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
PCSOKM+HaranoAjiMincho-Regular-Identity-H CID Type 0C Identity-H yes yes no 4 0
JVEGFQ+CMR10 Type 1C Builtin yes yes yes 6 0