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.
Этот класс содержит имя и размер шрифта TeX, поддерживает сравнение и знает ширины глифов в тех же единицах, что и файл AFM. Также есть внутренние атрибуты (для использования dviread.py), которые не используются для сравнения.
Размер указан в пунктах Adobe (преобразован из пунктов TeX).
Параметры: -
scalefloat -
Коэффициент масштабирования шрифта от его естественного размера.
-
tfmTfm -
Метрики шрифта TeX для этого шрифта
-
texnamebytes -
Имя шрифта, используемое в TeX и подобных программах, в виде ASCII-строки байтов. Это обычно сильно отличается от любых внешних имён шрифтов, и
dviread.PsfontsMapможно использовать для поиска внешнего имени шрифта. -
vfVf -
Файл шрифта TeX «виртуальный» или None, если этот шрифт не виртуальный.
Атрибуты: -
texnamebytes -
sizefloat -
Размер шрифта в пунктах Adobe, преобразованный из немного меньших пунктов TeX.
-
widthslist -
Ширина глифов в единицах пространства глифов, обычно 1/1000-е пункта.
-
size
-
texname
-
widths
-
-
class matplotlib.dviread.Encoding(filename)[source] -
Базовые классы:
objectПарсит файл *.enc, на который ссылается файл psfonts.map. Формат, который понимает этот класс, является очень ограниченным подмножеством PostScript.
Использование (подлежит изменению):
for name in Encoding(filename): whatever(name)Параметры: -
filenamestr or path-like
Атрибуты: -
encodinglist -
Список имён символов
-
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Параметры: -
filenamestr or path-like
Примечания
По историческим причинам 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.Tfm(filename)[source] -
Базовые классы:
objectФайл метрик шрифта TeX.
Эта реализация охватывает только самое необходимое, необходимое классу Dvi.
Параметры: -
filenamestr or path-like
Атрибуты: -
checksumint -
Используется для проверки против файла dvi.
-
design_sizeint -
Размер шрифта по умолчанию (неизвестные единицы)
-
width, height, depthdict -
Размеры каждого символа, необходимо масштабировать с помощью коэффициента, указанного в файле 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
Параметры: -
filenamestr or path-like
Примечания
Формат виртуального шрифта является производным от dvi: http://mirrors.ctan.org/info/knuth/virtual-fonts Этот класс повторно использует некоторые механизмы
Dvi, но заменяет цикл_readи механизм диспетчеризации.Считывает данные из файла с именем filename и преобразует внутренние единицы TeX в единицы dpi на дюйм. dpi только устанавливает единицы и не ограничивает разрешение. Используйте None, чтобы вернуть внутренние единицы TeX.
-
-
matplotlib.dviread.find_tex_file(filename, format=None)[source] -
Поиск файла в дереве texmf.
Вызывает kpsewhich, который является интерфейсом к библиотеке kpathsea [1]. Большинство существующих дистрибутивов TeX на системах Unix-подобных используют kpathsea. Она также доступна в составе MikTeX, популярного дистрибутива для Windows.
Если файл не найден, возвращается пустая строка.
Параметры: -
filenamestr or path-like -
formatstr or bytes -
Используется в качестве значения опции
--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.2.2/api/dviread.html