matplotlib.dviread

一种用于读取由TEX输出的DVI文件的模块。有几个限制使它不能(目前)用作通用的DVI预处理器,但它目前被PDF后端用于处理USETEX文本。

接口:

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:
            ...
class matplotlib.dviread.Dvi(filename, dpi)[源代码]

基类:object

由Tex生成的dvi(“独立于设备”)文件的一种读卡器。当前的实现只能按顺序遍历页面,甚至不尝试验证Postamble。

这个类可以用作上下文管理器,在退出时关闭基础文件。可以通过迭代读取页面。以下是一种非常简单的提取文本而不尝试检测空白的方法:

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

从名为的文件中读取数据 文件名 并将tex的内部单位转换为 dpi 每英寸。 dpi 只设置单位,不限制分辨率。使用“无”返回Tex的内部单位。

close()[源代码]

如果基础文件已打开,请将其关闭。

class matplotlib.dviread.DviFont(scale, tfm, texname, vf)[源代码]

基类:object

DVI文件可以引用的字体的封装。

此类保存字体的texname和大小,支持比较,并知道与AFM文件相同单位的字形宽度。还有内部属性(供dviread.py使用),它们是 not 用于比较。

大小以Adobe点为单位(从Tex点转换)。

参数:
scale浮动

字体按其自然大小缩放的系数。

tfmTFM

此字体的tex字体度量

texname字节

tex和friends内部使用的字体名称,作为ascii字节串。这通常与任何外部字体名称都非常不同,并且 dviread.PsfontsMap 可用于查找字体的外部名称。

vf变频调速

tex“虚拟字体”文件,如果该字体不是虚拟字体,则为无。

属性:
texname字节
size浮动

Adobe点中字体的大小,从稍小的tex点转换而来。

widths列表

以glyph空间单位表示的glyph宽度,通常为点大小的1/1000。

size
texname
widths
class matplotlib.dviread.Encoding(filename)[源代码]

基类:object

[Deprecated] 解析一 * .enc文件引用自psfonts.map文件样式文件。

这个类所理解的格式是PostScript的一个非常有限的子集。

用法(可更改)::

for name in Encoding(filename):
    whatever(name)
参数:
filenamestr或path-like

笔记

3.3 版后已移除.

属性:
encoding列表

字符名列表

encoding
class matplotlib.dviread.PsFont(texname, psname, effects, encoding, filename)

基类:tuple

创建PsFont的新实例(texname、psname、effects、encoding、filename)

property effects

字段编号2的别名

property encoding

字段编号3的别名

property filename

字段编号4的别名

property psname

字段编号1的别名

property texname

字段编号0的别名

class matplotlib.dviread.PsfontsMap(filename)[源代码]

基类:object

一个ps fonts.map格式的文件,将tex字体映射到ps字体。

参数:
filenamestr或path-like

笔记

出于历史原因,Tex知道许多类型1字体的名称与外界不同。(一方面,名称必须适合八个字符。)另外,Tex的原生字体不是Type-1,而是MetaFont,这对于转换为PostScript(位图除外)是很重要的。虽然存在高质量的1型格式转换,并随现代Tex发行版一起提供,但我们需要知道哪种1型字体是哪种本机字体的对应字体。由于这些原因,需要从内部字体名到字体文件名的映射。

texmf树通常包括名为 psfonts.mappdftex.mapdvipdfm.map . 文件 psfonts.map 被使用 dvipspdftex.map 通过 pdfTeXdvipdfm.map 通过 dvipdfm . psfonts.map 可能会避免嵌入35种PostScript字体(即没有文件名,如上面的Times Bold示例),而与PDF相关的文件可能只避免使用“Base 14”PDF字体。但是用户可能配置了不同的文件。

实例

>>> 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
class matplotlib.dviread.Tfm(filename)[源代码]

基类:object

Tex字体度量文件。

此实现仅涵盖DVI类所需的最低限度。

参数:
filenamestr或path-like
属性:
checksum利息

用于根据DVI文件进行验证。

design_size利息

字体的设计大小(未知单位)

宽度、高度、深度双关语

每个字符的尺寸,需要按dvi文件中指定的系数进行缩放。这些是dict,因为索引不能从0开始。

checksum
depth
design_size
height
width
class matplotlib.dviread.Vf(filename)[源代码]

基类:matplotlib.dviread.Dvi

虚拟字体( * .vf文件)包含dvi文件的子例程。

参数:
filenamestr或path-like

笔记

虚拟字体格式是dvi的派生:http://mirrors.ctan.org/info/knuth/virtual-fonts这个类重用了 Dvi but replaces the `_ 读循环和调度机制。

实例

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

从名为的文件中读取数据 文件名 并将tex的内部单位转换为 dpi 每英寸。 dpi 只设置单位,不限制分辨率。使用“无”返回Tex的内部单位。

matplotlib.dviread.find_tex_file(filename, format=None)[源代码]

在texmf树中查找文件。

电话 kpsewhich 它是KPAThsea库的接口 [1]. 在类Unix系统上,大多数现有的tex发行版都使用kpathsea。它也可以作为miktex的一部分提供,miktex是Windows上流行的发行版。

如果找不到该文件,则返回一个空字符串 .

参数:
filenamestr或path-like
formatSTR或字节

用作 --format 选择权 kpsewhich . 可以是“tfm”或“vf”,以将搜索限制为该类型的文件。

工具书类

[1]Kpathsea documentation 那个类库 kpsewhich 是其中的一部分。