matplotlib.dviread#

Un module pour lire les fichiers dvi produits par TeX. Plusieurs limitations font qu'il n'est pas (actuellement) utile en tant que préprocesseur dvi à usage général, mais il est actuellement utilisé par le backend pdf pour le traitement du texte usetex.

Interface:

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:
            ...
classe matplotlib.dviread. Dvi ( nom de fichier , dpi ) [source] #

Socles :object

Un lecteur pour un fichier dvi ("device-independent"), tel que produit par TeX.

L'implémentation actuelle ne peut parcourir les pages que dans l'ordre et n'essaie même pas de vérifier le postambule.

Cette classe peut être utilisée comme gestionnaire de contexte pour fermer le fichier sous-jacent à la sortie. Les pages peuvent être lues par itération. Voici un moyen trop simple d'extraire du texte sans essayer de détecter les espaces :

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

Lisez les données du fichier nommé filename et convertissez les unités internes de TeX en unités de dpi par pouce. dpi définit uniquement les unités et ne limite pas la résolution. Utilisez None pour renvoyer les unités internes de TeX.

ligne de base de la propriété [source] #
fermer ( ) [source] #

Fermez le fichier sous-jacent s'il est ouvert.

classe matplotlib.dviread. DviFont ( scale , tfm , texname , vf ) [source] #

Socles :object

Encapsulation d'une police à laquelle un fichier DVI peut faire référence.

Cette classe contient le nom et la taille d'une police, prend en charge la comparaison et connaît les largeurs des glyphes dans les mêmes unités que le fichier AFM. Il existe également des attributs internes (à utiliser par dviread.py) qui ne sont pas utilisés pour la comparaison.

La taille est en points Adobe (convertis à partir de points TeX).

Paramètres :
flotteur d'échelle

Facteur par lequel la police est mise à l'échelle par rapport à sa taille naturelle.

tfm Tfm

Métriques de police TeX pour cette police

texname octets

Nom de la police tel qu'utilisé en interne par TeX et ses amis, sous forme de chaîne d'octets ASCII. Ceci est généralement très différent des noms de polices externes ; PsfontsMappeut être utilisé pour trouver le nom externe de la police.

vf Vf

Un fichier "police virtuelle" TeX, ou None si cette police n'est pas virtuelle.

Attributs :
texname octets
flotteur de taille

Taille de la police en points Adobe, convertie à partir des points TeX légèrement plus petits.

liste des largeurs

Largeurs des glyphes en unités d'espace de glyphe, généralement 1/1000e de la taille en points.

taille #
nomtexte #
largeurs #
classe matplotlib.dviread. PsFont ( texname , psname , effects , encoding , filename ) [source] #

Socles :tuple

Créer une nouvelle instance de PsFont(texname, psname, effects, encoding, filename)

effets #

Alias ​​pour le champ numéro 2

encodage #

Alias ​​pour le champ numéro 3

nom de fichier #

Alias ​​pour le champ numéro 4

psname #

Alias ​​pour le champ numéro 1

nomtexte #

Alias ​​pour le champ numéro 0

classe matplotlib.dviread. PsfontsMap ( nom de fichier ) [source] #

Socles :object

Un fichier au format psfonts.map, mappant les polices TeX aux polices PS.

Paramètres :
nom de fichier str ou semblable à un chemin

Remarques

Pour des raisons historiques, TeX connaît de nombreuses polices Type-1 sous des noms différents de ceux du monde extérieur. (D'une part, les noms doivent contenir huit caractères.) De plus, les polices natives de TeX ne sont pas Type-1 mais Metafont, ce qui n'est pas trivial à convertir en PostScript, sauf en tant que bitmap. Bien que des conversions de haute qualité au format Type-1 existent et soient fournies avec les distributions TeX modernes, nous devons savoir quelles polices Type-1 sont les homologues de quelles polices natives. Pour ces raisons, un mappage est nécessaire entre les noms de polices internes et les noms de fichiers de polices.

Une arborescence texmf comprend généralement des fichiers de mappage appelés par exemple psfonts.map, pdftex.mapou dvipdfm.map. Le fichier psfonts.mapest utilisé par dvips , pdftex.mappar pdfTeX et dvipdfm.map par dvipdfm . psfonts.mappeut éviter d'intégrer les 35 polices PostScript (c'est-à-dire, ne pas avoir de nom de fichier pour elles, comme dans l'exemple Times-Bold ci-dessus), tandis que les fichiers liés au pdf n'évitent peut-être que les polices pdf "Base 14". Mais l'utilisateur peut avoir configuré ces fichiers différemment.

Exemples

>>> 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
classe matplotlib.dviread. Tfm ( nom de fichier ) [source] #

Socles :object

Un fichier TeX Font Metric.

Cette implémentation ne couvre que le strict minimum requis par la classe Dvi.

Paramètres :
nom de fichier str ou semblable à un chemin
Attributs :
somme de contrôle entier

Utilisé pour vérifier par rapport au fichier dvi.

design_size entier

Taille de conception de la police (unités inconnues)

largeur, hauteur, profondeur

Les dimensions de chaque caractère doivent être mises à l'échelle par le facteur spécifié dans le fichier dvi. Ce sont des dicts car l'indexation ne peut pas commencer à partir de 0.

somme de contrôle #
profondeur #
design_size #
hauteur #
largeur #
classe matplotlib.dviread. Vf ( nom de fichier ) [source] #

Socles :Dvi

Une police virtuelle (fichier *.vf) contenant des sous-routines pour les fichiers dvi.

Paramètres :
nom de fichier str ou semblable à un chemin

Remarques

Le format de police virtuelle est un dérivé de dvi : http://mirrors.ctan.org/info/knuth/virtual-fonts Cette classe réutilise une partie de la machinerie de Dvi mais remplace le _readmécanisme de boucle et de répartition.

Exemples

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

Lisez les données du fichier nommé filename et convertissez les unités internes de TeX en unités de dpi par pouce. dpi définit uniquement les unités et ne limite pas la résolution. Utilisez None pour renvoyer les unités internes de TeX.

matplotlib.dviread. find_tex_file ( nom de fichier , format=< paramètre obsolète> ) [source] #

Trouvez un fichier dans l'arborescence texmf en utilisant kpathsea .

La bibliothèque kpathsea, fournie par la plupart des distributions TeX existantes, à la fois sur les systèmes de type Unix et sur Windows (MikTeX), est invoquée via un processus luatex de longue durée si luatex est installé, ou via kpsewhich sinon.

Paramètres :
nom de fichier str ou semblable à un chemin
format chaîne ou octets

Utilisé comme valeur de l' --formatoption de kpsewhich . Peut être par exemple 'tfm' ou 'vf' pour limiter la recherche à ce type de fichiers. Obsolète.

Augmente :
FileNotFoundError

Si le fichier n'est pas trouvé.