フォントのマップファイルが存在しない時の dvipdfmx の挙動

フォントのマップファイルが存在しない時の dvipdfmx の挙動

- aminophen の投稿
返信数: 3
Windows の W32TeX と Mac の MacTeX-2014 で TeX2img を使っていて気がついたことがあります。
フォントを指定する map ファイルの指定法として、updmap を使う方法のほかに

dvipdfmx -f hoge.map "%~n1"

のように dvipdfmx の -f オプションで指定する方法と、

\AtBeginDvi{\special{pdf:mapfile hoge.map}}

のようにプリアンブルに指定する方法があると思います。
updmap はその系統で処理するすべてのソースファイルに対して影響するため、個別のソースファイルを
特定のフォントでタイプセットしたい場合には後の2つのうちいずれかを用いることになります。

この -f オプション法と special 法の両方において、仮に実在しないフォントマップを指定すると、
dvipdfmx は諦めて既に読み込みに成功した他のフォントマップを用いて処理すると理解しております。

ただし、もし W32TeX の dvipdfmx に verbose オプションすなわち -v あるいは -vv が与えてあると、
dvipdfmx は実在するはずのないフォントマップに固執してフリーズします。

例えば、TeX Live 2014 にも W32TeX にも msmin.map という map ファイルが存在しません。それにも
かかわらず誤って special 法で msmin.map をプリアンブルに加えたとします(このようなことは誤入力
でしばしば起こり得ると思われます)。

% test.tex
\documentclass[fleqn]{jsarticle}
\usepackage{amsmath,amssymb}
\pagestyle{empty}
\AtBeginDvi{\special{pdf:mapfile msmin.map}}
\begin{document}
あいうえお
\end{document}

このソースを W32TeX の platex と dvipdfmx でタイプセットすると、-v オプションや -vv オプションを
加えた場合だけ dvipdfmx がフリーズしました。-f オプション法でも同じ結果です。
同じ作業を MacTeX-2014 で行った場合はそのような現象は発生しません。

どこに違いがあるのでしょうか?

Windows は W32TeX 最新アップデート済み + gs9.10
Mac は MacTeX-2014 最新アップデート済み + gs9.10

です。どなたか分かる方がいらっしゃいましたら、お知らせください。
aminophen への返信

Re: フォントのマップファイルが存在しない時の dvipdfmx の挙動

- Akira Kakuto の投稿
調べて見て,わかれば訂正したいと思います。
Akira Kakuto への返信

Re: フォントのマップファイルが存在しない時の dvipdfmx の挙動

- Akira Kakuto の投稿
わかりましたので,これから訂正します。
これは新しいソースを使用しているばあい,
プラットフォームによらずにクラッシュします。
Akira Kakuto への返信

Re: フォントのマップファイルが存在しない時の dvipdfmx の挙動

- aminophen の投稿
ありがとうございます。
確かに MacTeX-2014 でターミナルから実行したときは同様にクラッシュしました。
先ほどは Mac 版を TeX2img 経由でのみテストしたので、気づきませんでした。

>阿部さん

現状の dvipdfmx を用いた場合、TeX2img では デフォルトで -vv オプションが入って
いるため dvipdfmx がフリーズします。この場合、TeX2img の出力ウィンドウには何も
表示されず、数秒待ってから「画像生成に失敗しました」のエラーを返して終了します。

コマンドライン実行の場合はリアルタイムにログが表示されて

<FONTMAP:/Users/.../Library/texlive/2014/texmf-var/fonts/map/pdftex/updmap/pdftex.map>
<FONTMAP:/Users/.../Library/texlive/2014/texmf-var/fonts/map/dvipdfmx/updmap/kanjix.map>
<FONTMAP:/usr/local/texlive/2014/texmf-dist/fonts/map/dvipdfmx/ckx.map>
/var/.../temp1801.dvi -> temp1801.pdf
DVI Comment:  TeX output 2014.11.05:1733
<AGL:texglyphlist.txt><AGL:pdfglyphlist.txt><AGL:glyphlist.txt>[1
<FONTMAP:

と出た後に dvipdfmx がクラッシュしています。TeX2img のログ読み取り機構の詳細は
わからないのですが、dvipdfmx がクラッシュした場合でもその時点でのログを TeX2img に
リアルタイム表示することはできないでしょうか?

追記:上のログは Mac 版 TeX2img から取ってきたものです。
Windows 版でもコマンドライン実行では同等のログが表示されています。