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 ("device-independent"), создаваемого 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.
Этот класс содержит texname и размер шрифта, поддерживает сравнение и знает ширины глифов в тех же единицах, что и файл 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 «Базовая 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.
- Параметры
-
- filenameстрока или объект пути
- Атрибуты
-
- checksumцелое число
-
Используется для проверки с файлом dvi.
- design_sizeцелое число
-
Размер шрифта по умолчанию (единицы неизвестны)
- width, height, depthсловарь
-
Размеры каждого символа, должны быть масштабированы с коэффициентом, указанным в файле dvi. Это словари, так как индексация может не начинаться с 0.
- checksum
- depth
- design_size
- height
- width
- classmatplotlib.dviread.Vf(filename)[source]
-
Bases:
matplotlib.dviread.DviВиртуальный шрифт (*.vf), содержащий подпрограммы для файлов dvi.
- Параметры
-
- filenameстрока или объект пути
Примечания
Формат виртуального шрифта — это производная от 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.
Вызывает kpsewhich, который является интерфейсом к библиотеке kpathsea [1]. Большинство существующих дистрибутивов TeX на системах Unix используют kpathsea. Она также доступна как часть MikTeX, популярного дистрибутива для Windows.
Если файл не найден, возвращается пустая строка.
- Параметры
-
- filenameстрока или объект пути
- formatстрока или байты
-
Используется в качестве значения опции
--formatдля kpsewhich. Может быть, например, 'tfm' или 'vf', чтобы ограничить поиск файлами этого типа. Устарело.
Ссылки
- 1
-
Документация Kpathsea. Библиотека, частью которой является kpsewhich.
© 2012–2021 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/3.5.1/api/dviread.html