`dvips` で `mktexpk` を無効にするにはどうすればいいですか?

`dvips` で `mktexpk` を無効にするにはどうすればいいですか?

このことを考慮ex-14-5.mf

mode:=ljfour; % 600dpi for dvips (you must run "gftopk")
mode_setup;

beginchar("e",10pt#,7.5pt#,2.5pt#);
pickup pencircle scaled (.4pt+blacker);
draw fullcircle scaled .2w shifted (w/2,(h+d)/2-d);
draw fullcircle scaled .6w shifted (w/2,(h+d)/2-d);
draw fullcircle scaled w shifted (w/2,(h+d)/2-d);
endchar;

end

metafont ( mf) を実行します。すべて正常です:

$ mf ex-14-5
This is METAFONT, Version 2.7182818 (TeX Live 2017) (preloaded base=mf)
(ex-14-5.mf [101] )
Font metrics written on ex-14-5.tfm.
Output written on ex-14-5.600gf (1 character, 696 bytes).
Transcript written on ex-14-5.log.

このファイルを実行しますtex。すべて正常です:

\font\x=ex-14-5 \x e \bye
$ tex ex-14-5
This is TeX, Version 3.14159265
(ex-14-5.tex [1] )
Output written on ex-14-5.dvi (1 page, 260 bytes).
Transcript written on ex-14-5.log.

実行時に、ファイルを自動的にdvips -M0 ex-14-5作成しようとしますpk:

This is dvips(k) 5.998 Copyright 2018 Radical Eye Software (www.radicaleye.com)
' TeX output 2019.03.14:1625' -> ex-14-5.ps

kpathsea: Running mktexpk --mfmode ljfour --bdpi 600 --mag 1+0/600 --dpi 600 ex-14-5
<various errors follow>

pkを呼び出す前にファイルを手動で生成するとdvips ex-14-5、すべて正常になります。

$ rm *pk
$ gftopk ex-14-5.600gf
$ dvips ex-14-5
This is dvips(k) 5.998 Copyright 2018 Radical Eye Software (www.radicaleye.com)
' TeX output 2019.03.14:1625' -> ex-14-5.ps
<./ex-14-5.600pk></usr/share/texlive/texmf-dist/dvips/base/tex.pro>
</usr/share/texlive/texmf-dist/dvips/base/texps.pro>. 
</usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb>[1] 

コマンドラインオプションを使用する以外に、追加を-M0試みましたが、役に立ちませんでした。M0.dvipsrc

dvipsファイルを自動的に生成しないようにするにはどうすればいいですかpk?

答え1

フォントを経由する場合./

\font\x=./myfont

then はmktexpk呼び出されません。

この機能を使用すると、mktexpk選択的に禁止することができます。このオプションは、すべてのフォントに対して-M禁止されるため、この場合は使用できません。mktexpk

魔法は で起こりますkpathsea_find_glyph。これは tex-glyph.c の関連コードです。

    /* If not an alias, try creating it on the fly with mktexpk,
       unless FONTNAME is absolute or explicitly relative.  */
    if (!ret && !kpathsea_absolute_p (kpse, fontname, true)) {

したがって、kpathsea_absolute_pファイル名が明示的に相対的な場合は true を返します。

相対パスを使用すると、出力はdvips次のように要求どおりになります。

$ dvips -q ex-14-5
dvips: Font ./ex-14-5 not found; using cmr10
dvips: Design size mismatch in font ex-14-5
dvips: Checksum mismatch in font ex-14-5

関連情報