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:
...
- класс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.
- свойствоbaseline[source]
- close()[source]
-
Закрывает базовый файл, если он открыт.
- классmatplotlib.dviread.DviFont(scale, tfm, texname, vf)[source]
-
Базовый класс:
objectИнкапсуляция шрифта, на который может ссылаться файл DVI.
Этот класс содержит имя и размер шрифта tex, поддерживает сравнение и знает ширину глифов в тех же единицах, что и файл AFM. Также есть внутренние атрибуты (для использования модулем dviread.py), которые не используются для сравнения.
Размер указан в пунктах Adobe (преобразованных из пунктов TeX).
- Параметры:
-
- scalefloat
-
Коэффициент масштабирования шрифта относительно его естественного размера.
- tfmTfm
-
Метрики шрифта TeX для этого шрифта.
- texnamebytes
-
Имя шрифта, используемое внутри TeX и аналогичными программами, в виде ASCII-байтовой строки. Обычно оно сильно отличается от внешних имён шрифтов;
PsfontsMapможет использоваться для поиска внешнего имени шрифта. - vfVf
-
Файл шрифта TeX "виртуальный шрифт" или None, если этот шрифт не виртуальный.
- Атрибуты:
-
- texnamebytes
- sizefloat
-
Размер шрифта в пунктах Adobe, преобразованный из немного меньших пунктов TeX.
- widthslist
-
Ширина глифов в единицах пространства глифов, как правило, 1/1000 от размера точки.
- size
- texname
- widths
- классmatplotlib.dviread.PsFont(texname, psname, effects, encoding, filename)[source]
-
Базовый класс:
tupleСоздает новый экземпляр PsFont(texname, psname, effects, encoding, filename)
- effects
-
Псевдоним для поля номер 2
- encoding
-
Псевдоним для поля номер 3
- filename
-
Псевдоним для поля номер 4
- psname
-
Псевдоним для поля номер 1
- texname
-
Псевдоним для поля номер 0
- классmatplotlib.dviread.PsfontsMap(filename)[source]
-
Базовый класс:
objectФайл формата psfonts.map, сопоставляющий шрифты TeX с шрифтами PS.
- Параметры:
-
- filenamestr или путь
Примечания
По историческим причинам 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». Но пользователь может настроить эти файлы по-другому.Примеры
>>> 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
- classmatplotlib.dviread.Tfm(filename)[source]
-
Bases:
objectФайл метрик шрифта TeX.
Эта реализация охватывает только минимум, необходимый для класса Dvi.
- Параметры:
-
- filenamestr или путь
- Атрибуты:
-
- checksumint
-
Используется для проверки против файла dvi.
- design_sizeint
-
Размер шрифта по умолчанию (неизвестные единицы)
- width, height, depthdict
-
Размеры каждого символа, необходимо масштабировать с коэффициентом, указанным в файле dvi. Это словари, так как индексация может не начинаться с 0.
- checksum
- depth
- design_size
- height
- width
- classmatplotlib.dviread.Vf(filename)[source]
-
Bases:
DviВиртуальный шрифт (*.vf), содержащий подпрограммы для файлов dvi.
- Параметры:
-
- filenamestr или путь
Примечания
Формат виртуального шрифта является производным от 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]
-
Поиск файла в дереве texmf с помощью kpathsea.
Библиотека kpathsea, предоставляемая большинством существующих дистрибутивов TeX, как на Unix-подобных системах, так и на Windows (MikTeX), вызывается через долгоживущий процесс luatex, если luatex установлен, или через kpsewhich в противном случае.
- Параметры:
-
- filenamestr или путь
- formatstr или bytes
-
Используется в качестве значения опции
--formatдля kpsewhich. Может быть, например, 'tfm' или 'vf' для ограничения поиска файлами этого типа. Устарело.
- Исключения:
-
- FileNotFoundError
-
Если файл не найден.
© 2012–2023 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/3.6.0/api/dviread.html