Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 149992b

Browse files
committed
Parse {lua,xe}tex-generated dvi in dviread.
1 parent 99a521b commit 149992b

File tree

11 files changed

+287
-214
lines changed

11 files changed

+287
-214
lines changed

lib/matplotlib/backends/backend_pdf.py

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -940,18 +940,12 @@ def dviFontName(self, dvifont):
940940

941941
tex_font_map = dviread.PsfontsMap(dviread.find_tex_file('pdftex.map'))
942942
psfont = tex_font_map[dvifont.texname]
943-
if psfont.filename is None:
944-
raise ValueError(
945-
"No usable font file found for {} (TeX: {}); "
946-
"the font may lack a Type-1 version"
947-
.format(psfont.psname, dvifont.texname))
948-
949943
pdfname = next(self._internal_font_seq)
950944
_log.debug('Assigning font %s = %s (dvi)', pdfname, dvifont.texname)
951945
self._dviFontInfo[dvifont.texname] = types.SimpleNamespace(
952946
dvifont=dvifont,
953947
pdfname=pdfname,
954-
fontfile=psfont.filename,
948+
fontfile=str(dvifont.path), # raises ValueError if psfont.filename is None.
955949
basefont=psfont.psname,
956950
encodingfile=psfont.encoding,
957951
effects=psfont.effects)
@@ -996,11 +990,11 @@ def _embedTeXFont(self, fontinfo):
996990

997991
# Widths
998992
widthsObject = self.reserveObject('font widths')
999-
tfm = fontinfo.dvifont._tfm
993+
font_metrics = fontinfo.dvifont._metrics
1000994
# convert from TeX's 12.20 representation to 1/1000 text space units.
1001-
widths = [(1000 * metrics.tex_width) >> 20
1002-
if (metrics := tfm.get_metrics(char)) else 0
1003-
for char in range(max(tfm._glyph_metrics, default=-1) + 1)]
995+
widths = [(1000 * glyph_metrics.tex_width) >> 20
996+
if (glyph_metrics := font_metrics.get_metrics(char)) else 0
997+
for char in range(max(font_metrics._glyph_metrics, default=-1) + 1)]
1004998
self.writeObject(widthsObject, widths)
1005999

10061000
# Font dictionary

0 commit comments

Comments
 (0)