matplotlib.dviread#

Um módulo para leitura de arquivos dvi produzidos pelo TeX. Várias limitações tornam isso (atualmente) não útil como um pré-processador dvi de uso geral, mas é usado atualmente pelo backend pdf para processar texto usetex.

Interface:

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:
            ...
classe matplotlib.dviread. Dvi ( nome do arquivo , dpi ) [fonte] #

Bases:object

Um leitor para um arquivo dvi ("independente do dispositivo"), produzido pela TeX.

A implementação atual só pode iterar pelas páginas em ordem e nem mesmo tenta verificar o postâmbulo.

Essa classe pode ser usada como um gerenciador de contexto para fechar o arquivo subjacente na saída. As páginas podem ser lidas por meio de iteração. Aqui está uma maneira excessivamente simples de extrair texto sem tentar detectar espaços em branco:

>>> with matplotlib.dviread.Dvi('input.dvi', 72) as dvi:
...     for page in dvi:
...         print(''.join(chr(t.glyph) for t in page.text))

Leia os dados do arquivo chamado filename e converta as unidades internas do TeX em unidades de dpi por polegada. dpi apenas define as unidades e não limita a resolução. Use None para retornar as unidades internas do TeX.

linha de base da propriedade [fonte] #
fechar ( ) [fonte] #

Feche o arquivo subjacente se estiver aberto.

classe matplotlib.dviread. DviFont ( scale , tfm , texname , vf ) [fonte] #

Bases:object

Encapsulamento de uma fonte à qual um arquivo DVI pode se referir.

Essa classe contém o texname e o tamanho de uma fonte, oferece suporte à comparação e conhece as larguras dos glifos nas mesmas unidades do arquivo AFM. Existem também atributos internos (para uso por dviread.py) que não são usados ​​para comparação.

O tamanho está em pontos Adobe (convertidos de pontos TeX).

Parâmetros :
flutuador de escala

Fator pelo qual a fonte é dimensionada a partir de seu tamanho natural.

tfm tfm

Métricas de fonte TeX para esta fonte

bytes de nome tex

Nome da fonte usada internamente pelo TeX e amigos, como um bytestring ASCII. Isso geralmente é muito diferente de qualquer nome de fonte externa; PsfontsMappode ser usado para encontrar o nome externo da fonte.

vf vf

Um arquivo TeX de "fonte virtual" ou None se essa fonte não for virtual.

Atributos :
bytes de nome tex
tamanho flutuante

Tamanho da fonte em pontos Adobe, convertido a partir dos pontos TeX ligeiramente menores.

lista de larguras

Larguras de glifos em unidades de espaço de glifo, geralmente 1/1000 do tamanho do ponto.

tamanho #
texname #
larguras #
classe matplotlib.dviread. PsFont ( texname , psname , efeitos , codificação , filename ) [fonte] #

Bases:tuple

Crie uma nova instância de PsFont (texname, psname, efeitos, codificação, nome do arquivo)

efeitos #

Alias ​​para o campo número 2

codificação #

Alias ​​para o campo número 3

nome do arquivo #

Alias ​​para o campo número 4

psname #

Alias ​​para o campo número 1

texname #

Alias ​​para o campo número 0

classe matplotlib.dviread. PsfontsMap ( nome do arquivo ) [fonte] #

Bases:object

Um arquivo formatado psfonts.map, mapeando fontes TeX para fontes PS.

Parâmetros :
filename str ou path-like

Notas

Por razões históricas, o TeX conhece muitas fontes Type-1 com nomes diferentes do mundo exterior. (Por um lado, os nomes precisam caber em oito caracteres.) Além disso, as fontes nativas do TeX não são Type-1, mas Metafont, que não é trivial de converter para PostScript, exceto como um bitmap. Embora existam conversões de alta qualidade para o formato Type-1 e sejam fornecidas com distribuições TeX modernas, precisamos saber quais fontes Type-1 são equivalentes a quais fontes nativas. Por esses motivos, é necessário um mapeamento de nomes de fontes internas para nomes de arquivos de fontes.

Uma árvore texmf normalmente inclui arquivos de mapeamento chamados, por exemplo psfonts.map, pdftex.map, ou dvipdfm.map. O arquivo psfonts.mapé usado por dvips , pdftex.mappor pdfTeX e dvipdfm.map por dvipdfm . psfonts.mappode evitar incorporar as 35 fontes PostScript (ou seja, não ter nenhum nome de arquivo para elas, como no exemplo Times-Bold acima), enquanto os arquivos relacionados a pdf talvez apenas evitem as fontes pdf "Base 14". Mas o usuário pode ter configurado esses arquivos de forma diferente.

Exemplos

>>> 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
classe matplotlib.dviread. Tfm ( nome do arquivo ) [fonte] #

Bases:object

Um arquivo TeX Font Metric.

Essa implementação cobre apenas o mínimo necessário para a classe Dvi.

Parâmetros :
filename str ou path-like
Atributos :
checksum int

Usado para verificar o arquivo dvi.

design_size int

Tamanho do design da fonte (unidades desconhecidas)

largura, altura, profundidade dict

As dimensões de cada caractere precisam ser dimensionadas pelo fator especificado no arquivo dvi. Estes são dicts porque a indexação pode não começar de 0.

soma de verificação #
profundidade #
design_size #
altura #
largura #
classe matplotlib.dviread. Vf ( nome do arquivo ) [fonte] #

Bases:Dvi

Uma fonte virtual (arquivo *.vf) contendo sub-rotinas para arquivos dvi.

Parâmetros :
filename str ou path-like

Notas

O formato de fonte virtual é um derivado de dvi: http://mirrors.ctan.org/info/knuth/virtual-fonts Esta classe reutiliza algumas das máquinas de, Dvi mas substitui o _readmecanismo de loop e dispatch.

Exemplos

vf = Vf(filename)
glyph = vf[code]
glyph.text, glyph.boxes, glyph.width

Leia os dados do arquivo chamado filename e converta as unidades internas do TeX em unidades de dpi por polegada. dpi apenas define as unidades e não limita a resolução. Use None para retornar as unidades internas do TeX.

matplotlib.dviread. find_tex_file ( filename , format=< parâmetro obsoleto> ) [source] #

Encontre um arquivo na árvore texmf usando kpathsea .

A biblioteca kpathsea, fornecida pela maioria das distribuições existentes do TeX, tanto em sistemas semelhantes ao Unix quanto no Windows (MikTeX), é chamada por meio de um processo luatex de longa duração se o luatex estiver instalado ou via kpse, caso contrário.

Parâmetros :
filename str ou path-like
formato str ou bytes

Usado como o valor da --formatopção para kpsewhich . Pode ser, por exemplo, 'tfm' ou 'vf' para limitar a pesquisa a esse tipo de arquivo. Descontinuada.

Aumentos :
FileNotFoundError

Se o arquivo não for encontrado.