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