matplotlib.dviread#

Ein Modul zum Lesen von dvi-Dateien, die von TeX ausgegeben werden. Mehrere Einschränkungen machen dies (derzeit) nicht als Allzweck-DVI-Präprozessor nützlich, aber es wird derzeit vom PDF-Backend zur Verarbeitung von Usetex-Text verwendet.

Schnittstelle:

with Dvi(filename, 72) as dvi:
    # iterate over pages:
    for page in dvi:
        w, h, d = page.width, page.height, page.descent
        for x, y, font, glyph, width in page.text:
            fontname = font.texname
            pointsize = font.size
            ...
        for x, y, height, width in page.boxes:
            ...
Klasse matplotlib.dviread. Dvi ( Dateiname , dpi ) [Quelle] #

Basen:object

Ein Reader für eine dvi-Datei ("geräteunabhängig"), wie sie von TeX produziert wird.

Die aktuelle Implementierung kann Seiten nur der Reihe nach durchlaufen und versucht nicht einmal, die Postambel zu verifizieren.

Diese Klasse kann als Kontextmanager verwendet werden, um die zugrunde liegende Datei beim Beenden zu schließen. Seiten können per Iteration gelesen werden. Hier ist eine allzu einfache Möglichkeit, Text zu extrahieren, ohne zu versuchen, Leerzeichen zu erkennen:

>>> with matplotlib.dviread.Dvi('input.dvi', 72) as dvi:
...     for page in dvi:
...         print(''.join(chr(t.glyph) for t in page.text))

Lesen Sie die Daten aus der Datei mit dem Namen Dateiname und konvertieren Sie die internen Einheiten von TeX in Einheiten von dpi pro Zoll. dpi legt nur die Einheiten fest und begrenzt nicht die Auflösung. Verwenden Sie None, um die internen Einheiten von TeX zurückzugeben.

Grundlinie der Eigenschaft [Quelle] #
schließen ( ) [Quelle] #

Schließen Sie die zugrunde liegende Datei, falls sie geöffnet ist.

Klasse matplotlib.dviread. DviFont ( scale , tfm , texname , vf ) [Quelle] #

Basen:object

Kapselung einer Schriftart, auf die eine DVI-Datei verweisen kann.

Diese Klasse enthält den Texnamen und die Größe einer Schriftart, unterstützt Vergleiche und kennt die Breiten von Glyphen in denselben Einheiten wie die AFM-Datei. Es gibt auch interne Attribute (zur Verwendung durch dviread.py), die nicht zum Vergleich verwendet werden.

Die Größe ist in Adobe-Punkten angegeben (umgerechnet aus TeX-Punkten).

Parameter :
Skalenschwimmer _

Faktor, um den die Schrift von ihrer natürlichen Größe skaliert wird.

tfm tfm

TeX-Font-Metriken für diese Schriftart

Textname Bytes

Name der Schriftart, wie er intern von TeX und Co. verwendet wird, als ASCII-Bytestring. Dies unterscheidet sich normalerweise stark von externen Schriftartnamen; PsfontsMapkann verwendet werden, um den externen Namen der Schriftart zu finden.

vf vf

Eine TeX-Datei mit "virtuellen Schriftarten" oder None, wenn diese Schriftart nicht virtuell ist.

Attribute :
Textname Bytes
Größe Schwimmer

Größe der Schrift in Adobe-Punkten, umgerechnet aus den etwas kleineren TeX-Punkten.

Breitenliste _

Breiten von Glyphen in Glyphenraumeinheiten, normalerweise 1/1000 der Punktgröße.

Größe #
Textname #
Breiten #
Klasse matplotlib.dviread. PsFont ( Textname , PS- Name , Effekte , Kodierung , Dateiname ) [Quelle] #

Basen:tuple

Erstellen Sie eine neue Instanz von PsFont (Textname, PS-Name, Effekte, Kodierung, Dateiname)

Effekte #

Alias ​​für Feldnummer 2

Kodierung #

Alias ​​für Feldnummer 3

Dateiname #

Alias ​​für Feldnummer 4

PS-Name #

Alias ​​für Feldnummer 1

Textname #

Alias ​​für Feldnummer 0

Klasse matplotlib.dviread. PsfontsMap ( Dateiname ) [Quelle] #

Basen:object

Eine Datei im Format psfonts.map, die TeX-Schriftarten PS-Schriftarten zuordnet.

Parameter :
filename str oder pfadartig

Anmerkungen

Aus historischen Gründen kennt TeX viele Type-1-Fonts unter anderen Namen als die Außenwelt. (Zum einen müssen die Namen in acht Zeichen passen.) Außerdem sind die nativen Fonts von TeX nicht Type-1, sondern Metafont, das nicht trivial in PostScript konvertiert werden kann, außer als Bitmap. Obwohl hochwertige Konvertierungen in das Type-1-Format existieren und mit modernen TeX-Distributionen ausgeliefert werden, müssen wir wissen, welche Type-1-Schriftarten die Gegenstücke zu welchen nativen Schriftarten sind. Aus diesen Gründen ist eine Zuordnung von internen Schriftartnamen zu Schriftartdateinamen erforderlich.

Ein texmf-Baum enthält typischerweise Mapping-Dateien, die zB psfonts.map, pdftex.map, oder genannt werden dvipdfm.map. Die Datei psfonts.mapwird von dvips , pdftex.mapvon pdfTeX und dvipdfm.map von dvipdfm verwendet . psfonts.mapvermeiden möglicherweise das Einbetten der 35 PostScript-Schriftarten (dh haben keinen Dateinamen für sie, wie im Times-Bold-Beispiel oben), während die pdf-bezogenen Dateien möglicherweise nur die „Base 14“-PDF-Schriftarten vermeiden. Aber der Benutzer hat diese Dateien möglicherweise anders konfiguriert.

Beispiele

>>> map = PsfontsMap(find_tex_file('pdftex.map'))
>>> entry = map[b'ptmbo8r']
>>> entry.texname
b'ptmbo8r'
>>> entry.psname
b'Times-Bold'
>>> entry.encoding
'/usr/local/texlive/2008/texmf-dist/fonts/enc/dvips/base/8r.enc'
>>> entry.effects
{'slant': 0.16700000000000001}
>>> entry.filename
Klasse matplotlib.dviread. Tfm ( Dateiname ) [Quelle] #

Basen:object

Eine TeX Font Metric-Datei.

Diese Implementierung deckt nur das absolute Minimum ab, das von der Dvi-Klasse benötigt wird.

Parameter :
filename str oder pfadartig
Attribute :
Prüfsumme int

Wird zur Überprüfung der DVI-Datei verwendet.

design_size int

Designgröße der Schrift (unbekannte Einheiten)

Breite, Höhe, Tiefe dict

Die Abmessungen jedes Zeichens müssen mit dem in der DVI-Datei angegebenen Faktor skaliert werden. Dies sind Diktate, da die Indizierung möglicherweise nicht bei 0 beginnt.

Prüfsumme #
Tiefe #
design_size #
Höhe #
Breite #
Klasse matplotlib.dviread. Vf ( Dateiname ) [Quelle] #

Basen:Dvi

Eine virtuelle Schriftart (*.vf-Datei), die Subroutinen für DVI-Dateien enthält.

Parameter :
filename str oder pfadartig

Anmerkungen

The virtual font format is a derivative of dvi: http://mirrors.ctan.org/info/knuth/virtual-fonts This class reuses some of the machinery of Dvi but replaces the _read loop and dispatch mechanism.

Examples

vf = Vf(filename)
glyph = vf[code]
glyph.text, glyph.boxes, glyph.width

Read the data from the file named filename and convert TeX's internal units to units of dpi per inch. dpi only sets the units and does not limit the resolution. Use None to return TeX's internal units.

matplotlib.dviread.find_tex_file(filename, format=<deprecated parameter>)[source]#

Find a file in the texmf tree using kpathsea.

Die kpathsea-Bibliothek, die von den meisten bestehenden TeX-Distributionen sowohl auf Unix-ähnlichen Systemen als auch auf Windows (MikTeX) bereitgestellt wird, wird über einen langlebigen luatex-Prozess aufgerufen, wenn luatex installiert ist, oder ansonsten über kpsewhich.

Parameter :
filename str oder pfadartig
formatiere str oder bytes

Wird als Wert der --formatOption für kpsewhich verwendet . Könnte zB 'tfm' oder 'vf' sein, um die Suche auf diesen Dateityp zu beschränken. Veraltet.

Erhöhungen :
FileNotFoundError

Wenn die Datei nicht gefunden wird.