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的内部单位。
-
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的别名
-
property
-
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.map
,pdftex.map
或dvipdfm.map
. 文件psfonts.map
被使用 dvips ,pdftex.map
通过 pdfTeX 和dvipdfm.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)[源代码]¶ -
虚拟字体( * .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 是其中的一部分。