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

Skip to content

Improve output of dvi debug parsing. #29828

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Mar 30, 2025
Merged

Conversation

anntzer
Copy link
Contributor

@anntzer anntzer commented Mar 29, 2025

Again, mostly maintenance work in preparation for #29807.

To test, run e.g.

from pylab import *
set_loglevel("debug")
figtext(.5, .5, r"gff\textwon$\frac12$", usetex=True)
show()

Grab the path of the dvi file that appears last in the log, then run

python -mmatplotlib.dviread /path/to/dvi

Prior to this patch, the output was

=== new page === (w: 1668654, h: 553676, d: 225994)
font: 'cmss10'	scale: 0.625
x	y	glyph	chr	w	(glyphs)
983040	1441792	103	g	327681
1310721	1441792	11	.	382295
font: 'tcss1000'	scale: 0.625
x	y	glyph	chr	w	(glyphs)
1693016	1441792	142	.	618800
font: 'cmr7'	scale: 0.4375
x	y	glyph	chr	w	(glyphs)
2390459	1183756	49	1	261235
2390459	1667786	50	2	261235
x	y	h	w		(boxes)
2390459	1291058	26213	261235

With this patch, the output is

=== NEW PAGE === (w: 1668654, h: 553676, d: 225994)
--- GLYPHS ---
font: cmss10 (scale: 0.625) at /usr/local/texlive/2025/texmf-dist/fonts/type1/public/amsfonts/cm/cmss10.pfb
          x           y       glyph         chr           w
     983040     1441792         103           g      327681
    1310721     1441792          11           ff      382295
font: tcss1000 (scale: 0.625) at /usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfss1000.pfb
          x           y       glyph         chr           w
    1693016     1441792         142           ₩      618800
font: cmr7 (scale: 0.4375) at /usr/local/texlive/2025/texmf-dist/fonts/type1/public/amsfonts/cm/cmr7.pfb
          x           y       glyph         chr           w
    2390459     1183756          49           1      261235
    2390459     1667786          50           2      261235
--- BOXES ---
          x           y           h           w
    2390459     1291058       26213      261235

Most importantly, glyphs are now resolved to their unicode representation (essentially by resolving the glyph name, similarly to the process described in Text.glyph_name_or_index), whereas many complex glyphs were just output as "." before. Furthermore, full font paths are printed, and the output is slightly better aligned.

These improvements will be more significant with the future support for {xe,lua}tex, which can load a much wider variety of glyphs.

PR summary

PR checklist

To test, run e.g.
```python
from pylab import *
set_loglevel("debug")
figtext(.5, .5, r"gff\textwon$\frac12$", usetex=True)
show()
```
Grab the path of the dvi file that appears last in the log, then run
```bash
python -mmatplotlib.dviread /path/to/dvi
```

Prior to this patch, the output was
```
=== new page === (w: 1668654, h: 553676, d: 225994)
font: 'cmss10'	scale: 0.625
x	y	glyph	chr	w	(glyphs)
983040	1441792	103	g	327681
1310721	1441792	11	.	382295
font: 'tcss1000'	scale: 0.625
x	y	glyph	chr	w	(glyphs)
1693016	1441792	142	.	618800
font: 'cmr7'	scale: 0.4375
x	y	glyph	chr	w	(glyphs)
2390459	1183756	49	1	261235
2390459	1667786	50	2	261235
x	y	h	w		(boxes)
2390459	1291058	26213	261235
```

With this patch, the output is
```
=== NEW PAGE === (w: 1668654, h: 553676, d: 225994)
--- GLYPHS ---
font: cmss10 (scale: 0.625) at /usr/local/texlive/2025/texmf-dist/fonts/type1/public/amsfonts/cm/cmss10.pfb
          x           y       glyph         chr           w
     983040     1441792         103           g      327681
    1310721     1441792          11           ff      382295
font: tcss1000 (scale: 0.625) at /usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfss1000.pfb
          x           y       glyph         chr           w
    1693016     1441792         142           ₩      618800
font: cmr7 (scale: 0.4375) at /usr/local/texlive/2025/texmf-dist/fonts/type1/public/amsfonts/cm/cmr7.pfb
          x           y       glyph         chr           w
    2390459     1183756          49           1      261235
    2390459     1667786          50           2      261235
--- BOXES ---
          x           y           h           w
    2390459     1291058       26213      261235
```

Most importantly, glyphs are now resolved to their unicode
representation (essentially by resolving the glyph name, similarly to
the process described in Text.glyph_name_or_index), whereas many complex
glyphs were just output as "." before.  Furthermore, full font paths are
printed, and the output is slightly better aligned.

These improvements will be more significant with the future support for
{xe,lua}tex, which can load a much wider variety of glyphs.
@jklymak jklymak merged commit dc05767 into matplotlib:main Mar 30, 2025
44 checks passed
@anntzer anntzer deleted the dvitype branch March 30, 2025 15:17
@QuLogic QuLogic added this to the v3.11.0 milestone Mar 31, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants