Spec-Zone.ru › Matplotlib 1.5

dviread

matplotlib.dviread

Экспериментальный модуль для чтения файлов dvi, выведенных TeX. Несколько ограничений делают его не (в настоящее время) полезным в качестве универсального препроцессора dvi, но в настоящее время он используется ядром pdf для обработки текста usetex.

Интерфейс:

dvi = Dvi(filename, 72)
# iterate over pages (but only one page is supported for now):
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)

Базы: object

Файл dvi («устройство-независимый»), как созданный TeX. Текущая реализация читает только первую страницу и даже не пытается проверить постскрипт.

Инициализировать объект. Это принимает имя файла в качестве входных данных и открывает файл; фактическое чтение файла происходит при итерации по страницам файла.

close()

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

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

Базы: object

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

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

texname

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

size

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

widths

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

size
texname
widths
class matplotlib.dviread.Encoding(filename)

Базы: object

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

Использование (предполагается изменение):

for name in Encoding(filename):
    whatever(name)
encoding
class matplotlib.dviread.PsfontsMap(filename)

Базы: object

Файл с форматом psfonts.map, сопоставляющий шрифты TeX со шрифтами PS. Использование:

>>> map = PsfontsMap(find_tex_file('pdftex.map'))
>>> entry = map['ptmbo8r']
>>> entry.texname
'ptmbo8r'
>>> entry.psname
'Times-Bold'
>>> entry.encoding
'/usr/local/texlive/2008/texmf-dist/fonts/enc/dvips/base/8r.enc'
>>> entry.effects
{'slant': 0.16700000000000001}
>>> entry.filename

По историческим причинам 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)

Базы: object

Файл метрик шрифта TeX. Эта реализация охватывает только самое необходимое для класса Dvi.

checksum

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

design_size

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

width

Ширина каждого символа, должна быть масштабирована на коэффициент, указанный в файле dvi. Это словарь, потому что индексация может не начинаться с 0.

height

Высота каждого символа.

depth

Глубина каждого символа.

checksum
depth
design_size
height
width
class matplotlib.dviread.Vf(filename)

Базы: matplotlib.dviread.Dvi

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

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

vf = Vf(filename)
glyph = vf[code]
glyph.text, glyph.boxes, glyph.width
matplotlib.dviread.find_tex_file(filename, format=None)

Вызов kpsewhich для поиска файла в дереве texmf. Если формат не равен None, он используется в качестве значения для --format опции.

По-видимому, большинство существующих дистрибутивов TeX на системах Unix-подобных используют kpathsea. Я слыхал, что MikTeX (популярный дистрибутив на Windows) не использует kpathsea, так что что делать? (TODO)

См. также

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

© 2012–2016 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
http://matplotlib.org/1.5.3/api/dviread.html

Spec-Zone.ru

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