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.
-
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.Encoding(filename)[source] -
Базы:
object[Устарело] Парсить файл *.enc, на который ссылается файл psfonts.map.
Формат, который понимает этот класс, — это очень ограниченный подмножество PostScript.
Использование (может измениться):
for name in Encoding(filename): whatever(name)Параметры: - filenamestr или объект пути
Примечания
Устарело начиная с версии 3.3.
Атрибуты: - encodingсписок
-
Список имён символов
-
encoding
- класс
matplotlib.dviread.PsFont(texname, psname, effects, encoding, filename) -
Базы:
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, возможно, избегают только «Базовых 14» шрифтов pdf. Но пользователь может настроить эти файлы по-разному.Примеры
>>> 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
- класс
matplotlib.dviread.Tfm(filename)[source] -
Базы:
objectФайл метрик шрифта TeX.
Эта реализация охватывает только минимум, необходимый классу Dvi.
Параметры: - filenameстрока или объект пути
Атрибуты: - checksumцелое число
-
Используется для проверки против файла dvi.
- design_sizeцелое число
-
Размер шрифта по умолчанию (единицы неизвестны)
- width, height, depthсловарь
-
Размеры каждого символа, должны быть масштабированы с помощью коэффициента, указанного в файле dvi. Это словари, потому что индексация может не начинаться с 0.
-
checksum
-
depth
-
design_size
-
height
-
width
- класс
matplotlib.dviread.Vf(filename)[source] -
Базы:
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=None)[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.4.3/api/dviread.html