dviread
matplotlib.dviread
Модуль для чтения файлов dvi, созданных TeX. Несколько ограничений делают его не (в настоящее время) полезным как универсальный препроцессор 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.Box(x, y, height, width) -
Базовое класс:
tupleСоздает новый экземпляр Box(x, y, высота, ширина)
-
height -
Псевдоним для поля номер 2
-
width -
Псевдоним для поля номер 3
-
x -
Псевдоним для поля номер 0
-
y -
Псевдоним для поля номер 1
-
-
class matplotlib.dviread.DviFont(scale, tfm, texname, vf) -
Базовые классы:
objectИнкапсуляция шрифта, на который может ссылаться файл DVI.
Этот класс содержит имя шрифта TeX и размер, поддерживает сравнение и знает ширины глифов в тех же единицах, что и файл AFM. Также есть внутренние атрибуты (для использования dviread.py), которые не используются для сравнения.
Размер указан в пунктах Adobe (преобразованных из пунктов TeX).
Параметры: scale : float
Коэффициент масштабирования шрифта от его естественного размера.
tfm : Tfm
Метрика шрифта TeX для этого шрифта
texname : байты
Имя шрифта, используемое внутри TeX и подобными программами, как строка ASCII-байтов. Обычно это сильно отличается от любых внешних имен шрифтов, и
dviread.PsfontsMapможет использоваться для поиска внешнего имени шрифта.vf : Vf
Файл TeX «виртуального шрифта», или None, если этот шрифт не виртуальный.
Атрибуты
texname (байты) size (float) Размер шрифта в пунктах Adobe, преобразованных из немного меньших пунктов TeX. widths (список) Ширины глифов в единицах пространства глифов, обычно 1/1000-е части размера пункта. -
size
-
texname
-
widths
-
-
class matplotlib.dviread.Encoding(filename) -
Базовые классы:
objectРазбирает файл *.enc, на который ссылается файл стиля psfonts.map. Формат, который понимает этот класс, представляет собой очень ограниченный подмножество PostScript.
Использование (подлежит изменению):
for name in Encoding(filename): whatever(name)Параметры: filename : строка или строка байтов Атрибуты
encoding (список) Список имен символов -
encoding
-
-
class matplotlib.dviread.Page(text, boxes, height, width, descent) -
Базовые классы:
tupleСоздает новый экземпляр Page(текст, блоки, высота, ширина, спуск)
-
boxes -
Псевдоним для поля номер 1
-
descent -
Псевдоним для поля номер 4
-
height -
Псевдоним для поля номер 2
-
text -
Псевдоним для поля номер 0
-
width -
Псевдоним для поля номер 3
-
-
matplotlib.dviread.PsFont -
Псевдоним для
Font
-
class matplotlib.dviread.PsfontsMap(filename) -
Базовые классы:
objectФайл в формате psfonts.map, сопоставляющий шрифты TeX со шрифтами PS.
Использование:
>>> 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Параметры: filename : строка или строка байтов Примечания
По историческим причинам TeX знает многие шрифты Type-1 по другим именам, чем внешний мир. (В частности, имена должны подходить под восемь символов.) Кроме того, собственные шрифты TeX — это не шрифты Type-1, а Metafont, который нетривиально преобразовать в PostScript, кроме как в виде растрового изображения. Хотя существуют высококачественные преобразования в формат Type-1, которые поставляются с современными дистрибутивами TeX, нам нужно знать, какие шрифты Type-1 являются аналогами каких собственных шрифтов. По этим причинам требуется сопоставление от внутренних имён шрифтов к файлам шрифтов.
Дерево texmf обычно включает файлы сопоставления, например,
psfonts.map,pdftex.map, илиdvipdfm.map. Файлpsfonts.mapиспользуется dvips,pdftex.map— pdfTeX, иdvipdfm.map— dvipdfm.psfonts.mapможет избежать внедрения 35 шрифтов PostScript (т.е., не иметь имени файла для них, как в примере Times-Bold выше), в то время как файлы, связанные с pdf, возможно, избегают только шрифтов pdf «Base 14». Но пользователь может настроить эти файлы по-другому.
-
class matplotlib.dviread.Text(x, y, font, glyph, width) -
Базовые классы:
tupleСоздает новый экземпляр Text(x, y, шрифт, глиф, ширина)
-
font -
Псевдоним для поля номер 2
-
glyph -
Псевдоним для поля номер 3
-
width -
Псевдоним для поля номер 4
-
x -
Псевдоним для поля номер 0
-
y -
Псевдоним для поля номер 1
-
-
class matplotlib.dviread.Tfm(filename) -
Базовые классы:
objectФайл метрики шрифта TeX.
Эта реализация охватывает только самое необходимое, нужное классу Dvi.
Параметры: filename : строка или строка байтов Атрибуты
checksum (целое число) Используется для проверки с файлом dvi. design_size (целое число) Размер дизайна шрифта (неизвестные единицы) width, height, depth (словарь) Размеры каждого символа, которые необходимо масштабировать на коэффициент, указанный в файле dvi. Это словари, потому что индексация может не начинаться с 0. -
checksum
-
depth
-
design_size
-
height
-
width
-
-
class matplotlib.dviread.Vf(filename) -
Базовые классы:
matplotlib.dviread.DviВиртуальный шрифт (*.vf-файл), содержащий подпрограммы для файлов dvi.
Использование:
vf = Vf(filename) glyph = vf[code] glyph.text, glyph.boxes, glyph.width
Параметры: filename : строка или строка байтов Примечания
Формат виртуального шрифта является производным от dvi: http://mirrors.ctan.org/info/knuth/virtual-fonts Этот класс использует некоторую часть механизма класса
Dvi, но заменяет цикл_readи механизм обработки.
-
matplotlib.dviread.find_tex_file(filename, format=None) -
Найти файл в дереве texmf.
Вызывает kpsewhich, который является интерфейсом к библиотеке kpathsea [R22]. Большинство существующих дистрибутивов TeX на системах Unix-подобного типа используют kpathsea. Он также доступен в составе MikTeX, популярного дистрибутива для Windows.
Параметры: filename : строка или байтовая строка
format : строка или байтовая строка
Используется как значение параметра
--formatдля kpsewhich. Может быть, например, ‘tfm’ или ‘vf’ для ограничения поиска на этом типе файлов.Ссылки
[R22] (1, 2) Документация Kpathsea Библиотека, частью которой является kpsewhich.
-
matplotlib.dviread.ord(x)
-
class matplotlib.dviread.Dvi(filename, dpi) -
Базы:
objectЧтец для файла dvi («независимый от устройства»), созданного TeX. Текущая реализация может только перебирать страницы в порядке следования и даже не пытается проверить постскрипт.
Этот класс может использоваться как менеджер контекста для закрытия базового файла при выходе. Страницы можно читать с помощью итерации. Вот излишне упрощённый способ извлечения текста без попытки определения пробелов:
>>> with matplotlib.dviread.Dvi('input.dvi', 72) as dvi: >>> for page in dvi: >>> print ''.join(unichr(t.glyph) for t in page.text)Прочитать данные из файла с именем filename и преобразовать внутренние единицы TeX в единицы dpi на дюйм. dpi только задаёт единицы и не ограничивает разрешение. Используйте None, чтобы вернуть внутренние единицы TeX.
-
close() -
Закрыть базовый файл, если он открыт.
-
dispatch = functools.partial(<function _dispatch>, [<function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char_immediate>, <function Dvi._set_char>, <function Dvi._set_char>, <function Dvi._set_char>, <function Dvi._set_char>, <function Dvi._set_rule>, <function Dvi._put_char>, <function Dvi._put_char>, <function Dvi._put_char>, <function Dvi._put_char>, <function Dvi._put_rule>, <function Dvi._nop>, <function Dvi._bop>, <function Dvi._eop>, <function Dvi._push>, <function Dvi._pop>, <function Dvi._right>, <function Dvi._right>, <function Dvi._right>, <function Dvi._right>, <function Dvi._right_w>, <function Dvi._right_w>, <function Dvi._right_w>, <function Dvi._right_w>, <function Dvi._right_w>, <function Dvi._right_x>, <function Dvi._right_x>, <function Dvi._right_x>, <function Dvi._right_x>, <function Dvi._right_x>, <function Dvi._down>, <function Dvi._down>, <function Dvi._down>, <function Dvi._down>, <function Dvi._down_y>, <function Dvi._down_y>, <function Dvi._down_y>, <function Dvi._down_y>, <function Dvi._down_y>, <function Dvi._down_z>, <function Dvi._down_z>, <function Dvi._down_z>, <function Dvi._down_z>, <function Dvi._down_z>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num_immediate>, <function Dvi._fnt_num>, <function Dvi._fnt_num>, <function Dvi._fnt_num>, <function Dvi._fnt_num>, <function Dvi._xxx>, <function Dvi._xxx>, <function Dvi._xxx>, <function Dvi._xxx>, <function Dvi._fnt_def>, <function Dvi._fnt_def>, <function Dvi._fnt_def>, <function Dvi._fnt_def>, <function Dvi._pre>, <function Dvi._post>, <function Dvi._post_post>, <function Dvi._malformed>, <function Dvi._malformed>, <function Dvi._malformed>, <function Dvi._malformed>, <function Dvi._malformed>, <function Dvi._malformed>])
-
© 2012–2017 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
http://matplotlib.org/2.1.0/api/dviread.html