Spec-Zone.ru › Matplotlib 3.2

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.

Этот класс содержит имя и размер шрифта TeX, поддерживает сравнение и знает ширины глифов в тех же единицах, что и файл 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(filename) [source]

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

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

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

for name in Encoding(filename):
    whatever(name)
Параметры:
filenamestr or path-like
Атрибуты:
encodinglist

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

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
Параметры:
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». Но пользователь может настроить эти файлы по-другому.

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]

Базовые классы: matplotlib.dviread.Dvi

Виртуальный шрифт (*.vf-файл) содержащий подпрограммы для файлов dvi.

Использование:

vf = Vf(filename)
glyph = vf[code]
glyph.text, glyph.boxes, glyph.width
Параметры:
filenamestr or path-like

Примечания

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

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

END_OF_DOCUMENT_MARKER
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.2.2/api/dviread.html

Spec-Zone.ru

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