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:
...
- 类 matplotlib.dviread。dvi (文件名, dpi ) [来源] #
基地:
object
由 TeX 生成的 dvi(“设备无关”)文件的阅读器。
当前的实现只能按顺序遍历页面,甚至不尝试验证后同步码。
此类可用作上下文管理器,以在退出时关闭基础文件。页面可以通过迭代读取。这是一种在不尝试检测空格的情况下提取文本的过于简单的方法:
>>> with matplotlib.dviread.Dvi('input.dvi', 72) as dvi: ... for page in dvi: ... print(''.join(chr(t.glyph) for t in page.text))
从名为filename的文件中读取数据并将 TeX 的内部单位转换为每英寸 dpi的单位。dpi只设置单位,不限制分辨率。使用 None 返回 TeX 的内部单位。
- 类 matplotlib.dviread。DviFont ( scale , tfm , texname , vf ) [source] #
基地:
object
DVI 文件可以引用的字体的封装。
此类保存字体的 texname 和大小,支持比较,并以与 AFM 文件相同的单位知道字形的宽度。还有一些不用于比较的内部属性(供 dviread.py 使用)。
大小以 Adobe 点为单位(从 TeX 点转换而来)。
- 参数:
- 刻度浮动
字体从其自然大小缩放的因子。
- 调频调频
此字体的 TeX 字体规格
- texname字节
TeX 和朋友内部使用的字体名称,作为 ASCII 字节串。这通常与任何外部字体名称非常不同;
PsfontsMap
可用于查找字体的外部名称。- VF _
一个 TeX“虚拟字体”文件,如果这个字体不是虚拟的,则为 None。
- 属性:
- texname字节
- 大小浮动
Adobe 点的字体大小,从稍小的 TeX 点转换而来。
- 宽度列表
字形空间单位中的字形宽度,通常为磅值的 1/1000。
- 尺寸#
- texname #
- 宽度#
- 类 matplotlib.dviread。PsFont ( texname , psname , effects , encoding , filename ) [source] #
基地:
tuple
创建 PsFont 的新实例(texname, psname, effects, encoding, filename)
- 效果#
字段编号 2 的别名
- 编码#
字段编号 3 的别名
- 文件名#
字段编号 4 的别名
- ps名称#
字段编号 1 的别名
- texname #
字段编号 0 的别名
- 类 matplotlib.dviread。PsfontsMap (文件名) [来源] #
基地:
object
一个 psfonts.map 格式化文件,将 TeX 字体映射到 PS 字体。
- 参数:
- 文件名str 或类似路径
笔记
由于历史原因,TeX 知道许多 Type-1 字体的名称与外界不同。(一方面,名称必须适合 8 个字符。)此外,TeX 的原生字体不是 Type-1 而是 Metafont,除了作为位图外,它很难转换为 PostScript。虽然存在到 Type-1 格式的高质量转换并随现代 TeX 发行版一起提供,但我们需要知道哪些 Type-1 字体是哪些本机字体的对应物。由于这些原因,需要从内部字体名称到字体文件名称的映射。
texmf 树通常包括称为例如
psfonts.map
、、pdftex.map
或的映射文件dvipdfm.map
。该文件psfonts.map
由dvips、 pdfTeX和dvipdfmpdftex.map
使用 。可能会避免嵌入 35 种 PostScript 字体(即没有文件名,如上面的 Times-Bold 示例),而与 pdf 相关的文件可能只避免使用“Base 14”pdf 字体。但是用户可能对这些文件进行了不同的配置。dvipdfm.map
psfonts.map
例子
>>> 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
- 类 matplotlib.dviread。Tfm (文件名) [来源] #
基地:
object
一个 TeX 字体度量文件。
此实现仅涵盖 Dvi 类所需的最低限度。
- 参数:
- 文件名str 或类似路径
- 属性:
- 校验和整数
用于验证 dvi 文件。
- 设计尺寸int
字体的设计大小(未知单位)
- 宽度,高度,深度字典
每个字符的尺寸,需要按 dvi 文件中指定的因子进行缩放。这些是字典,因为索引可能不是从 0 开始的。
- 校验和#
- 深度#
- 设计尺寸#
- 高度#
- 宽度#
- 类 matplotlib.dviread。Vf (文件名) [来源] #
基地:
Dvi
包含 dvi 文件子例程的虚拟字体(*.vf 文件)。
- 参数:
- 文件名str 或类似路径
笔记
虚拟字体格式是 dvi 的派生:http: //mirrors.ctan.org/info/knuth/virtual-fonts 这个类重用了一些机制,
Dvi
但替换了_read
循环和调度机制。例子
vf = Vf(filename) glyph = vf[code] glyph.text, glyph.boxes, glyph.width
从名为filename的文件中读取数据并将 TeX 的内部单位转换为每英寸 dpi的单位。dpi只设置单位,不限制分辨率。使用 None 返回 TeX 的内部单位。
- matplotlib.dviread。find_tex_file ( filename , format=<deprecated parameter> ) [source] #
使用kpathsea在 texmf 树中查找文件。
kpathsea 库由大多数现有的 TeX 发行版提供,无论是在类 Unix 系统还是在 Windows (MikTeX) 上,如果安装了 luatex,则通过长期存在的 luatex 进程调用,否则通过 kpsewhich 调用。
- 参数:
- 文件名str 或类似路径
- 格式化str 或字节
用作kpsewhich
--format
的选项值。可以是例如 'tfm' 或 'vf' 以将搜索限制为该类型的文件。已弃用。
- 提高:
- FileNotFoundError
如果找不到文件。