Spec-Zone.ru › Matplotlib 2.2

dviread

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(unichr(t.glyph) for t in page.text))

Считывает данные из файла с именем filename и преобразует внутренние единицы TeX в единицы dpi на дюйм. dpi только устанавливает единицы и не ограничивает разрешение. Используйте None, чтобы вернуть внутренние единицы TeX.

close() [source]

Закрывает базовый файл, если он открыт.

class matplotlib.dviread.DviFont(scale, tfm, texname, vf) [source]

Базовые классы: object

Инкапсуляция шрифта, на который может ссылаться файл DVI.

Этот класс содержит texname и размер шрифта, поддерживает сравнение и знает ширины глифов в тех же единицах, что и файл AFM. Также есть внутренние атрибуты (для использования в dviread.py), которые не используются для сравнения.

Размер в пунктах Adobe (преобразованных из пунктов TeX).

Параметры:
scale : float

Множитель, на который шрифт масштабируется от своего естественного размера.

tfm : Tfm

Метрики шрифта TeX для этого шрифта

texname : bytes

Имя шрифта, используемое внутри TeX и его друзьями, как строка ASCII-байтов. Обычно это сильно отличается от любых внешних имён шрифтов, и dviread.PsfontsMap можно использовать для поиска внешнего имени шрифта.

vf : Vf

Файл шрифта TeX "виртуального шрифта" или None, если этот шрифт не виртуальный.

Атрибуты:
texname : bytes
size : float

Размер шрифта в пунктах Adobe, преобразованный из немного меньших пунктов TeX.

widths : list

Ширина глифов в единицах пространства глифов, обычно 1/1000 часть размера точки.

size
texname
widths
class matplotlib.dviread.Encoding(filename) [source]

Базовые классы: object

Парсит файл *.enc, на который ссылается файл стиля psfonts.map. Формат, который понимает этот класс, является очень ограниченным подмножеством PostScript.

Использование (подлежит изменению):

for name in Encoding(filename):
    whatever(name)
Параметры:
filename : string or bytestring
Атрибуты:
encoding : list

Список имён символов

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
Параметры:
filename : string or bytestring

Примечания

По историческим причинам, 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, возможно, избегают только "Base 14" шрифтов pdf. Но пользователь может настроить эти файлы по-другому.

class matplotlib.dviread.Tfm(filename) [source]

Базовые классы: object

Файл метрик шрифта TeX.

Эта реализация покрывает только самое необходимое для класса Dvi.

Параметры:
filename : string or bytestring
Атрибуты:
checksum : int

Используется для проверки против файла dvi.

design_size : int

Размер шрифта по умолчанию (неизвестные единицы)

width, height, depth : dict

Размеры каждого символа, необходимо масштабировать на множитель, указанный в файле 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
Параметры:
filename : string or bytestring

Примечания

Формат виртуального шрифта является производным от dvi: http://mirrors.ctan.org/info/knuth/virtual-fonts Этот класс повторно использует некоторые механизмы класса Dvi, но заменяет цикл _read и механизм диспетчеризации.

matplotlib.dviread.find_tex_file(filename, format=None) [source]

Поиск файла в дереве texmf.

Вызывает kpsewhich, который является интерфейсом к библиотеке kpathsea [1]. Большинство существующих дистрибутивов TeX на системах Unix-подобных используют kpathsea. Она также доступна в составе MikTeX, популярного дистрибутива для Windows.

Параметры:
filename : string or bytestring
format : string or bytestring

Используется в качестве значения опции --format для kpsewhich. Может быть, например, 'tfm' или 'vf', чтобы ограничить поиск этим типом файлов.

Ссылки

[1] (1, 2) Документация к Kpathsea Библиотека, частью которой является kpsewhich.
matplotlib.dviread.ord(x) [source]

© 2012–2018 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/2.2.3/api/dviread.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API