Este é o comando pkfix-helper que pode ser executado no provedor de hospedagem gratuita OnWorks usando uma de nossas várias estações de trabalho online gratuitas, como Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS
PROGRAMA:
NOME
pkfix-helper - pré-processa documentos PostScript produzidos por dvips antes de passá-los para pkfix
SINOPSE
ajudante pkfix [--Socorro] [--verbose] [--força=nome=especificação de fonte] [--ps=nomedoarquivo.ps]
[--tex=nome do arquivo.tex] [--cache=nome do arquivo] [--incluir=especificação de fonte] [--excluir=regexp]
[--guarda=especificação de fonte] [--quieto] [- sem repetições] [--spp=número] [entrada.ps [saída.ps]]
DESCRIÇÃO
Motivação
Documentos PostScript criados com versões antigas de dvips quase invariavelmente utiliza
fontes de bitmap (PostScript Tipo 3). O problema com as fontes de bitmap é que elas têm como alvo
uma resolução de dispositivo específica; um arquivo PostScript produzido usando fontes de 300 DPI parecerá
granulado em uma impressora de 600 DPI. Pior ainda, todos os fontes de bitmap parecem granuladas quando ampliadas
na tela. A solução é usar fontes vetoriais (PostScript Tipo 1), que são de resolução
independentes e parecem nítidas em qualquer tamanho ou escala.
Embora não seja mais difícil de configurar dvips usar fontes vetoriais, nem sempre é
possível reexecutar dvips em um velho .dvi Arquivo. o .dvi arquivo e fonte do documento podem ter
foi perdido; ou, a fonte pode não ser mais compilada porque os pacotes dos quais ela depende podem não
mais estar disponível.
Heiko Oberdiek's pkfix script substitui fontes de bitmap em dvips- arquivos PostScript produzidos
com as fontes vetoriais correspondentes. Ele funciona analisando os comentários PostScript com
qual dvips envolve as definições de fonte de bitmap. Por exemplo, uma definição de fonte
começando com o comentário "% DVIPSBitmapFont: Fi cmss10 11 28" e terminando com uma correspondência
% EndDVIPSBitmapFontéconhecido por definir a fonte "Fi" como "cmss10" (Computer Modern Sans Serif
em um tamanho de design de 10 pontos) dimensionado para 11 pontos. Apenas os 28 caracteres realmente usados
pelo documento são definidos. pkfix em seguida, substitui a definição da fonte por uma que
define "Fi" usando o mesmo conjunto de caracteres, mas retirado do cmss10.pfb fonte de vetor
arquivo.
Infelizmente, pkfix funciona apenas com versões de dvips mais recente do que v5.58 (cerca de 1996).
Naturalmente, quanto mais antigo um documento PostScript, menos provável que suas fontes ainda existam e
ainda pode ser recompilado. Versões mais antigas de dvips falta% DVIPSBitmapFont comentários e
vários outros comentários PostScript nos quais pkfix depende. Sem comentários PostScript para
guie-o, pkfix é incapaz de determinar quais fontes vetoriais correspondem a quais bitmap
fontes.
Visão geral
A ajudante pkfix script é um pré-processador para pkfix que tenta determinar o
associação entre cada nome de fonte de documento (por exemplo, "Fi") em um arquivo PostScript e o
fonte original (por exemplo, "cmss10") e tamanho das fontes (por exemplo, 11 pontos). Em seguida, fabrica o
PostScript comenta que pkfix espera ver para que pkfix pode fazer seu trabalho.
ajudante pkfix funciona comparando cada fonte de documento com cada .tfm arquivo de fonte que ele conhece
sobre (assumindo que cada uma dessas fontes tem um correspondente .pfb versão vetorial) e selecionando
a melhor combinação .tfm arquivo para cada fonte de documento. ajudante pkfix tem acesso apenas ao
larguras de caracteres e apenas para aqueles caracteres realmente usados no documento. Também,
o programa reconhece apenas um conjunto limitado dos mais populares .tfm arquivos e dimensionamento
fatores. Consequentemente, a comparação é imperfeita e ajudante pkfix pode atribuir um
fonte incorreta para um determinado nome. Fontes contendo apenas um ou dois caracteres realmente usados
em um documento são particularmente problemáticos para ajudante pkfix porque muitas fontes podem ser
correspondências quase suficientes para enganar o problema.
ajudante pkfix é projetado para que um usuário possa guiar o processo de seleção de fonte manualmente
designando fontes correspondentes. Com um mínimo de diligência e paciência, um usuário pode corrigir
quaisquer fontes incompatíveis e ajudar o programa a fornecer uma entrada adequada para pkfix.
OPÇÕES
ajudante pkfix aceita na linha de comando o nome do arquivo de um documento PostScript para processar
(com o padrão sendo o dispositivo de entrada padrão) e o nome do arquivo de um
Documento PostScript a ser criado (com o padrão sendo o dispositivo de saída padrão). o
programa também aceita as seguintes opções de linha de comando:
Perguntas Usados Opções
-h, --Socorro
Exibir informações de uso e sair. o --verbose e --quieto opções podem ser usadas para
aumentar e diminuir a quantidade de informações apresentadas.
-v, --verbose
Aumentar a quantidade de informações de status que ajudante pkfix é exibido enquanto é executado.
Instâncias adicionais de --verbose na linha de comando aumentar ainda mais o programa
verbosidade. Por padrão, apenas as operações principais são exibidas. Um único --verbose
além disso, exibe informações sobre comparações de fontes individuais. Um segundo
--verbose além disso, exibe detalhes sobre algumas das funções internas do programa
operações.
-f nome=especificação de fonte, --força=nome=especificação de fonte
força ajudante pkfix para associar uma fonte específica a um determinado nome de fonte aparecendo no
documento. nome é um de dois caracteres dvips nome da fonte, como "Fa". especificação de fonte é uma fonte
especificação como "cmmi8" ou "cmsy10 @ 1.1X". Um asterisco usado no nome do
a fonte base (por exemplo, "cmti *") tentará automaticamente todos os tamanhos de fonte de teste integral a partir de 5
a 17 pontos ("cmti5", "cmti6", ..., "cmti17"). Um asterisco usado como um valor de escala
(por exemplo, "cmsy10 @ *") será substituído pelo valor da escala que dá a melhor correspondência para
as métricas da fonte original. o --força opção pode ser especificada repetidamente no
linha de comando.
-p nomedoarquivo.ps, --ps=nomedoarquivo.ps
Crie um arquivo PostScript chamado nomedoarquivo.ps que mostra o dvips nome e uma fonte
amostra de cada fonte usada pelo documento de entrada.
-t nome do arquivo.tex, --tex=nome do arquivo.tex
Crie um arquivo Plain TeX chamado nome do arquivo.tex que mostra o dvips nome e uma fonte
amostra de cada fonte que ajudante pkfix usado no documento de saída.
Com pouca frequência Usados Opções
-C nome do arquivo, --cache=nome do arquivo
Acelere o processamento do arquivo TFM, armazenando em cache as métricas de caractere no arquivo nome do arquivo. Em alguns
sistemas leva muito tempo para ler um arquivo TFM, spawn tftpl para convertê-lo para PL
formatar e extrair dos dados PL as métricas para cada caractere. A primeira vez
--cache é especificado, ajudante pkfix procede normalmente e grava todos os dados extraídos
métricas de caráter para nome do arquivo. Em execuções subsequentes em que --cache=nome do arquivo is
Especificadas, ajudante pkfix lê as métricas extraídas anteriormente de nome do arquivo, indo
através de tftpl-baseado processo apenas para arquivos TFM que não eram anteriormente
encontrados.
-q, --quieto
Instruir ajudante pkfix para não produzir nenhuma saída durante sua execução, exceto para um erro fatal
mensagens.
-1, - sem repetições
prevenir ajudante pkfix de associar o mesmo especificação de fonte com mais de um dvips fonte
nome.
-i especificação de fonte, --incluir=especificação de fonte
Adicionar especificação de fonte à lista de especificações de fontes contra as quais ajudante pkfix compara
cada fonte do documento. (Em contraste, --força designa uma especificação de fonte a ser usada
apenas por um específico fonte do documento.) --incluir opção pode ser especificada repetidamente
na linha de comando.
-x regexp, --excluir=regexp
Remova todas as especificações de fonte correspondentes à expressão regular regexp da ajudante pkfix's
lista de fontes conhecidas. o --excluir opção pode ser especificada repetidamente no comando
linha.
-k especificação de fonte, --guarda=especificação de fonte
Não substitua uma fonte de vetor por uma fonte de bitmap especificação de fonte ("Fa", "Fb", etc.). Esse
é útil ao converter documentos que usam fontes de bitmap obscuras para as quais há
não é um vetor equivalente. Por exemplo, era comum no passado incluir
gráficos, como logotipos universitários ou corporativos em um documento, convertendo o
imagem bitmap em uma fonte de caractere único e usando essa fonte em LaTeX. --guarda
impede que tais fontes sejam substituídas. o --guarda opção pode ser especificada
repetidamente na linha de comando.
-a, - em qualquer escala
Permitir que qualquer valor seja usado para dimensionar uma fonte quando "" * "" for especificado como a escala
fator. Normalmente, ajudante pkfix considera apenas múltiplos inteiros de 0.1 que são
maior ou igual a 1.0 (ou seja, nome da fonte@ 1X, "@ 1.1X", "@ 1.2X", "@ 1.3X", etc.).
-s, --spp
Especifique o número de amostras de fontes por página para imprimir nos arquivos indicados usando o
--ps e --tex opções. O valor padrão, 25, deve funcionar bem na maioria
circunstâncias.
DIAGNÓSTICO
"Melhor correspondência para nome is em vez pobre"
A melhor fonte ajudante pkfix encontrado por dvips nome da fonte nome tem um valor de incompatibilidade maior
maior ou igual a 1.0. (O valor de incompatibilidade é a soma dos quadrados da diferença
entre as larguras dos caracteres de uma fonte de documento e uma possível fonte de substituição.)
Use o --força opção para designar uma fonte de substituição alternativa ou valor de escala.
EXEMPLOS
Para o propósito dos exemplos a seguir, suponha que arquivo antigo.ps é o nome de um
Arquivo PostScript produzido por uma versão antiga do dvips e utilizando pelo menos um bitmap
Fonte. Sempre vale a pena verificar se pkfix não pode converter o arquivo sozinho:
$ pkfix arquivo antigo.ps novo arquivo.ps
PKFIX 1.3, 2005/02/25 - Copyright (c) 2001, 2005 por Heiko Oberdiek.
==> nenhuma fonte convertida
(Alternativamente pkfix pode emitir uma mensagem de erro como "!!! Erro: Erro de análise (@start
parâmetros)! ".) Somente quando pkfix não pode substituir fontes de bitmap por fontes vetoriais é pkfix-
ajudante precisava. Em sua forma mais simples, ajudante pkfix leva o nome de um arquivo de entrada
(arquivo antigo.ps neste exemplo) e o nome de um arquivo de saída (pkfix-oldfile.ps), que irá
têm o mesmo conteúdo do arquivo de entrada, mas servem como entrada adequada para pkfix:
$ pkfix-helper arquivo antigo.ps pkfix-oldfile.ps
Lendo oldfile.ps ... pronto.
Número de fontes Tipo 3 encontradas: 10
As fontes de bitmap são compostas em 600 DPI.
Localizando larguras de caracteres ... pronto.
Lendo arquivos TFM ... pronto (103 TFMs em 193 variações de escala).
Fontes correspondentes:
Processando Fi ... concluído (cmr10 @ 1X, incompatibilidade = 0.11683).
Processando Fa ... concluído (cmti10 @ 1X, incompatibilidade = 0.08892).
Processando Fb ... concluído (cmr8 @ 1X, incompatibilidade = 0.07133).
Processando Ff ... concluído (cmbx12 @ 1.2X, incompatibilidade = 0.02948).
Processando Fh ... concluído (cmtt10 @ 1X, incompatibilidade = 0.06895).
Processando Fd ... concluído (cmmi10 @ 1X, incompatibilidade = 0.03966).
Processando Fj ... concluído (cmbx12 @ 1X, incompatibilidade = 0.03972).
Processando Fe ... concluído (cmbx10 @ 1X, incompatibilidade = 0.00762).
Processando Fg ... concluído (cmsy10 @ 1X, incompatibilidade = 0.00875).
Processamento Fc ... concluído (cmr6 @ 1X, incompatibilidade = 0.00284).
$ pkfix pkfix-oldfile.ps novo arquivo.ps
PKFIX 1.3, 2005/02/25 - Copyright (c) 2001, 2005 por Heiko Oberdiek.
*** Conversão de fonte: `cmti10 '->` CMTI10'.
*** Conversão de fonte: `cmr8 '->` CMR8'.
*** Conversão de fonte: `cmr6 '->` CMR6'.
*** Conversão de fonte: `cmmi10 '->` CMMI10'.
*** Conversão de fonte: `cmbx10 '->` CMBX10'.
*** Conversão de fonte: `cmbx12 '->` CMBX12'.
*** Conversão de fonte: `cmsy10 '->` CMSY10'.
*** Conversão de fonte: `cmtt10 '->` CMTT10'.
*** Conversão de fonte: `cmr10 '->` CMR10'.
*** Conversão de fonte: `cmbx12 '->` CMBX12'.
*** Mesclando a fonte `CMBX12 '(2).
==> 10 fontes convertidas.
==> 1 fonte mesclada.
Apesar ajudante pkfix tenta automatizar o máximo possível o processo de detecção de fontes,
algumas fontes serão invariavelmente identificadas incorretamente. O programa exibe um aviso
mensagem se isso sabe uma correspondência é ruim, mas a falta de uma mensagem de aviso não necessariamente
indique aquilo ajudante pkfix fez um bom trabalho. Portanto, é altamente recomendável que o
o usuário produz folhas de fontes "antes" e "depois":
$ pkfix-helper -q arquivo antigo.ps pkfix-arquivo antigo.ps
--ps = oldfonts.ps --tex = newfonts.tex
$tex newfonts.tex
Este é o TeX, versão 3.14159 (Web2C 7.4.5)
(./newfonts.tex [1])
Saída escrita em newfonts.dvi (1 página, 1292 bytes).
Transcrição escrita em newfonts.log.
$ dvips novas fontes.dvi -o novas fontes.ps
Este é o dvips (k) 5.92b Copyright 2002 Radical Eye Software (www.radicaleye.com)
'Saída TeX 2006.06.11: 1636' -> newfonts.ps
<texc.pro><8r.enc><texps.pro>. <cmr6.pfb><cmsy10.pfb><cmbx10.pfb><cmbx12.pfb>
<cmmi10.pfb><cmtt10.pfb><cmr8.pfb><cmti10.pfb><cmr10.pfb>[1]
Depois de executar os comandos anteriores, fontes antigas.ps mostra amostras das fontes em arquivo antigo.ps
e newfonts.ps mostra amostras das fontes de substituição que ajudante pkfix usado para produzir
pkfix-oldfile.ps. Imprimir fontes antigas.ps e newfonts.ps e compare-os cuidadosamente para
fontes e tamanhos incorretos.
Suponha que a escolha de "cmbx12 @ 1.2X" para a fonte "Ff" pareça errada; dizem os personagens
parece mais alto em fontes antigas.ps Do que em newfonts.ps. Este é o estágio de tentativa e erro
começa. Vamos supor que "cmb12" é uma combinação melhor do que "cmbx12", mas não sabemos
quanto dimensionar a fonte. Felizmente, ajudante pkfix permite que "*" seja usado como escala
fator para dizer ao programa para detectar automaticamente um fator de escala ideal, mesmo se
fazer isso significa escolher um tamanho de fonte não padrão:
$ pkfix-helper oldfile.ps pkfix-oldfile.ps --force = "Ff = cmb12 @ *"
Lendo oldfile.ps ... pronto.
Número de fontes Tipo 3 encontradas: 10
As fontes de bitmap são compostas em 600 DPI.
Localizando larguras de caracteres ... pronto.
Lendo arquivos TFM ... falhou.
pkfix-helper: Não é possível processar o arquivo TFM especificado pelo usuário "cmb12"
Ops, parece que não temos um cmb12.tfm arquivo em nosso sistema. Vamos tentar aumentar
cmb10.tfm em vez de:
$ pkfix-helper oldfile.ps pkfix-oldfile.ps --force = "Ff = cmb10 @ *"
Lendo oldfile.ps ... pronto.
Número de fontes Tipo 3 encontradas: 10
As fontes de bitmap são compostas em 600 DPI.
Localizando larguras de caracteres ... pronto.
Lendo arquivos TFM ... pronto (103 TFMs em 193 variações de escala).
Fontes correspondentes:
Processando Fi ... concluído (cmr10 @ 1X, incompatibilidade = 0.11683).
Processando Fa ... concluído (cmti10 @ 1X, incompatibilidade = 0.08892).
Processando Fb ... concluído (cmr8 @ 1X, incompatibilidade = 0.07133).
Processamento Ff ... concluído (cmb10 @ 1.5X, incompatibilidade = 0.00035).
Processando Fh ... concluído (cmtt10 @ 1X, incompatibilidade = 0.06895).
Processando Fd ... concluído (cmmi10 @ 1X, incompatibilidade = 0.03966).
Processando Fj ... concluído (cmbx12 @ 1X, incompatibilidade = 0.03972).
Processando Fe ... concluído (cmbx10 @ 1X, incompatibilidade = 0.00762).
Processando Fg ... concluído (cmsy10 @ 1X, incompatibilidade = 0.00875).
Processamento Fc ... concluído (cmr6 @ 1X, incompatibilidade = 0.00284).
A correspondência definitivamente melhorou, embora 15 pontos. certamente é um tamanho estranho para uma fonte.
Então, novamente, muitos documentos do use tamanhos fora do padrão, então isso pode de fato estar correto. o
a melhor maneira de verificar é mais uma vez produzir, imprimir e comparar um par de amostras de fontes e
itere até que todas as fontes pareçam corretas. Use uma instância de --força para cada fonte
você deseja alterar.
MEIO AMBIENTE
ajudante pkfix honra as seguintes variáveis de ambiente:
GS O nome do intérprete Ghostscript (padrão: gs)
TFTOPL O nome de um utilitário para conversão .tfm arquivos para .pl arquivos (padrão: tftpl)
Use pkfix-helper online usando serviços onworks.net