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 (преобразованных из пунктов 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(**kwargs)[source] -
Базовое класс:
object[Устаревшее] Разбор файла *.enc, на который ссылается файл в стиле psfonts.map.
Формат, который понимает этот класс, представляет собой очень ограниченный подмножество PostScript.
Использование (предполагается изменение):
for name in Encoding(filename): whatever(name)Параметры: -
filenamestr or path-like
Примечания
Устарело начиная с версии 3.3.
Атрибуты: -
encodinglist -
Список имён символов
-
encoding
-
-
class 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
-
-
class matplotlib.dviread.PsfontsMap(filename)[source] -
Базовое класс:
objectФайл в формате psfonts.map, сопоставляющий шрифты TeX со шрифтами PS.
Параметры: -
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». Но пользователь может настроить эти файлы по-разному.Примеры
>>> 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 -
-
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] -
Bases:
matplotlib.dviread.DviВиртуальный шрифт (*.vf-файл), содержащий подпрограммы для файлов dvi.
Параметры: -
filenamestr or path-like
Примечания
Формат виртуального шрифта является производным от 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.
Если файл не найден, возвращается пустая строка.
Параметры: -
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.3.3/api/dviread.html