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(chr(t.glyph) for t in page.text))Считывает данные из файла с именем filename и преобразует внутренние единицы TeX в единицы dpi на дюйм. dpi только задаёт единицы и не ограничивает разрешение. Используйте None для возвращения внутренних единиц TeX.
-
close(self)[source] -
Закрыть базовый файл, если он открыт.
-
-
class matplotlib.dviread.DviFont(scale, tfm, texname, vf)[source] -
Базы:
objectИнкапсуляция шрифта, на который может ссылаться файл DVI.
Этот класс хранит texname и размер шрифта, поддерживает сравнение и знает ширины глифов в тех же единицах, что и файл AFM. Также есть внутренние атрибуты (для использования в dviread.py), которые не используются для сравнения.
Размер в единицах Adobe points (преобразованных из TeX points).
Параметры: -
scale : float -
Множитель, на который шрифт масштабируется относительно своего естественного размера.
-
tfm : Tfm -
TeX метрики шрифта для этого шрифта
-
texname : bytes -
Имя шрифта, как используется внутри TeX и друзьями, в виде ASCII-байтовой строки. Обычно это сильно отличается от любых внешних имён шрифтов, и
dviread.PsfontsMapможет быть использован для поиска внешнего имени шрифта. -
vf : Vf -
Файл TeX "виртуального шрифта", или None, если этот шрифт не виртуальный.
Атрибуты: -
texname : bytes -
size : float -
Размер шрифта в единицах Adobe points, преобразованный из немного меньших единиц TeX points.
-
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[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] Документация kpathsea Библиотека, частью которой является kpsewhich. -
© 2012–2018 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/3.1.1/api/dviread.html