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.Dvi(filename, dpi)[source] -
Базовые классы:
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()[source] -
Закрывает базовый файл, если он открыт.
-
-
class matplotlib.dviread.DviFont(scale, tfm, texname, vf)[source] -
Базовые классы:
objectИнкапсуляция шрифта, на который может ссылаться файл DVI.
Этот класс содержит texname и размер шрифта, поддерживает сравнение и знает ширины глифов в тех же единицах, что и файл AFM. Также есть внутренние атрибуты (для использования в dviread.py), которые не используются для сравнения.
Размер в пунктах Adobe (преобразованных из пунктов TeX).
Параметры: -
scale : float -
Множитель, на который шрифт масштабируется от своего естественного размера.
-
tfm : Tfm -
Метрики шрифта TeX для этого шрифта
-
texname : bytes -
Имя шрифта, используемое внутри TeX и его друзьями, как строка ASCII-байтов. Обычно это сильно отличается от любых внешних имён шрифтов, и
dviread.PsfontsMapможно использовать для поиска внешнего имени шрифта. -
vf : Vf -
Файл шрифта TeX "виртуального шрифта" или None, если этот шрифт не виртуальный.
Атрибуты: -
texname : bytes -
size : float -
Размер шрифта в пунктах Adobe, преобразованный из немного меньших пунктов TeX.
-
widths : list -
Ширина глифов в единицах пространства глифов, обычно 1/1000 часть размера точки.
-
size
-
texname
-
widths
-
-
class matplotlib.dviread.Encoding(filename)[source] -
Базовые классы:
objectПарсит файл *.enc, на который ссылается файл стиля psfonts.map. Формат, который понимает этот класс, является очень ограниченным подмножеством PostScript.
Использование (подлежит изменению):
for name in Encoding(filename): whatever(name)Параметры: -
filename : string or bytestring
Атрибуты: -
encoding : list -
Список имён символов
-
encoding
-
-
matplotlib.dviread.PsFont -
псевдоним
matplotlib.dviread.Font
-
class matplotlib.dviread.PsfontsMap(filename)[source] -
Базовые классы:
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 : string or bytestring
Примечания
По историческим причинам, 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, возможно, избегают только "Base 14" шрифтов pdf. Но пользователь может настроить эти файлы по-другому. -
-
class matplotlib.dviread.Tfm(filename)[source] -
Базовые классы:
objectФайл метрик шрифта TeX.
Эта реализация покрывает только самое необходимое для класса Dvi.
Параметры: -
filename : string or bytestring
Атрибуты: -
checksum : int -
Используется для проверки против файла dvi.
-
design_size : int -
Размер шрифта по умолчанию (неизвестные единицы)
-
width, height, depth : dict -
Размеры каждого символа, необходимо масштабировать на множитель, указанный в файле dvi. Это словари, потому что индексация может не начинаться с 0.
-
checksum
-
depth
-
design_size
-
height
-
width
-
-
class matplotlib.dviread.Vf(filename)[source] -
Базовые классы:
matplotlib.dviread.DviВиртуальный шрифт (*.vf-файл) содержащий подпрограммы для файлов dvi.
Использование:
vf = Vf(filename) glyph = vf[code] glyph.text, glyph.boxes, glyph.width
Параметры: -
filename : string or bytestring
Примечания
Формат виртуального шрифта является производным от dvi: http://mirrors.ctan.org/info/knuth/virtual-fonts Этот класс повторно использует некоторые механизмы класса
Dvi, но заменяет цикл_readи механизм диспетчеризации. -
-
matplotlib.dviread.find_tex_file(filename, format=None)[source] -
Поиск файла в дереве texmf.
Вызывает kpsewhich, который является интерфейсом к библиотеке kpathsea [1]. Большинство существующих дистрибутивов TeX на системах Unix-подобных используют kpathsea. Она также доступна в составе MikTeX, популярного дистрибутива для Windows.
Параметры: -
filename : string or bytestring -
format : string or bytestring -
Используется в качестве значения опции
--formatдля kpsewhich. Может быть, например, 'tfm' или 'vf', чтобы ограничить поиск этим типом файлов.
Ссылки
[1] (1, 2) Документация к Kpathsea Библиотека, частью которой является kpsewhich. -
-
matplotlib.dviread.ord(x)[source]
© 2012–2018 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/2.2.3/api/dviread.html