TeX - LaTeX Asked by Igor Liferenko on February 10, 2021
Consider this 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
Run metafont on it. All is good:
$ 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.
Now run tex
on this file. All is good:
fontx=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.
When running dvips -M0 ex-14-5
it tries to create the pk
file automatically:
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>
If I generate the pk
file manually before calling dvips ex-14-5
, all is OK:
$ 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]
Except using -M0
command line option, I tried adding M0
to .dvipsrc
– it does not help.
How to tell dvips
not to attempt to generate pk
file automatically?
If you use font via ./
, like
fontx=./myfont
then mktexpk
is not called.
This feature allows to inhibit mktexpk
selectively. -M
option is unusable in this case, because it inhibits mktexpk
for ALL fonts.
The magic happens in kpathsea_find_glyph
. This is the relevant code from 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)) {
So, kpathsea_absolute_p
returns true when filename is explicitly relative.
Using the relative path the output from dvips
is now as required:
$ 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
Answered by Igor Liferenko on February 10, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP