Questo è il comando pkfix-helper che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre molteplici workstation online gratuite come Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS
PROGRAMMA:
NOME
pkfix-helper - preelabora i documenti PostScript prodotti da dvips prima di passarli a pkfix
SINOSSI
pkfix-helper [--Aiuto] [--verboso] [--vigore=Nome=tipo di carattere] [--ps=nomefile.ps]
[--tex=nomefile.tex] [--cache=Nome del file] [--includere=tipo di carattere] [--escludere=regexp]
[--mantenere=tipo di carattere] [--silenzioso] [--no-ripetizioni] [--spp=numero] [ingresso.ps [uscita.ps]]
DESCRIZIONE
Motivazione
Documenti PostScript creati con vecchie versioni di dvip quasi invariabilmente utilizzare
font bitmap (PostScript Type 3) Il problema con i caratteri bitmap è che mirano
una risoluzione specifica del dispositivo; apparirà un file PostScript prodotto utilizzando caratteri 300 DPI
granuloso su una stampante a 600 DPI. Persino peggio, contro tutti i i caratteri bitmap appaiono granulosi quando vengono ingranditi
sullo schermo. La soluzione è utilizzare i caratteri vettoriali (PostScript Type 1), che sono risolutivi
indipendenti e appaiono nitidi a qualsiasi dimensione o scala.
Anche se non è più difficile da configurare dvip per usare i caratteri vettoriali, non è sempre
possibile ripetere dvip su un vecchio .dvi file. Il .dvi l'origine del file e del documento potrebbe avere
stato perso; oppure, il sorgente potrebbe non essere più compilato perché i pacchetti da cui dipende potrebbero non essere più compilati
essere più disponibile.
di Heiko Oberdiek pkfix lo script sostituisce i caratteri bitmap in dvip-prodotto file PostScript
con i caratteri vettoriali corrispondenti. Funziona analizzando i commenti PostScript con
quale dvip circonda le definizioni dei caratteri bitmap. Ad esempio, una definizione di carattere
iniziando con il commento "%DVIPSBitmapFont: Fi cmss10 11 28" e terminando con una corrispondenza
%EndDVIPSBitmapFont è noto per definire il carattere "Fi" come "cmss10" (Computer Modern Sans Serif
con una dimensione del disegno di 10 punti) ridimensionato a 11 punti. Solo i 28 caratteri effettivamente utilizzati
dal documento sono definiti. pkfix quindi sostituisce la definizione del carattere con una che
definisce "Fi" usando lo stesso set di caratteri ma preso dal cmss10.pfb carattere vettoriale
file.
Purtroppo, pkfix funziona solo con le versioni di dvip più recente della v5.58 (ca. 1996).
Naturalmente, più vecchio è un documento PostScript, meno è probabile che le sue fonti esistano ancora e
può ancora essere ricompilato. Versioni precedenti di dvip mancano %DVIPSBitmapFont commenti e
vari altri commenti PostScript sui quali pkfix fa affidamento. Senza commenti PostScript a
guidalo, pkfix non è in grado di determinare quali caratteri vettoriali corrispondono a quali bitmap
caratteri.
Panoramica
Il pkfix helper script è un preprocessore per pkfix che tenta di determinare il
associazione tra ogni nome di carattere del documento (ad es. "Fi") in un file PostScript e il
carattere originale (es. "cmss10") e dimensione dei caratteri (es. 11 punti). Quindi fabbrica il
Commenti PostScript che pkfix si aspetta di vedere in modo che pkfix può fare il suo lavoro.
pkfix helper funziona confrontando ogni font del documento con ogni .tfm file di font lo sa
circa (assumendo che ciascuno di questi caratteri abbia un corrispondente .pfb versione vettoriale) e selezionando
il miglior abbinamento .tfm file per ogni tipo di carattere del documento. pkfix helper ha accesso solo al
larghezze di caratteri e solo a quei caratteri effettivamente utilizzati nel documento. Anche,
il programma riconosce solo una serie limitata dei più popolari .tfm file e ridimensionamento
fattori. Di conseguenza, il confronto è imperfetto e pkfix helper può attribuire an
carattere errato per un dato nome. Font che comprendono solo uno o due caratteri effettivamente utilizzati
in un documento sono particolarmente problematici per pkfix helper perché molti tipi di carattere possono essere
partite quasi sufficienti per ingannare il problema.
pkfix helper è progettato in modo che un utente possa guidare manualmente il processo di selezione dei caratteri
designare i caratteri corrispondenti. Con un minimo di diligenza e pazienza un utente può correggere
eventuali caratteri non corrispondenti e aiuta il programma a fornire un input corretto a pkfix.
VERSIONI
pkfix helper accetta sulla riga di comando il nome del file di un documento PostScript da elaborare
(con l'impostazione predefinita il dispositivo di input standard) e il nome del file di un modificato
Documento PostScript da creare (l'impostazione predefinita è il dispositivo di output standard). Il
il programma accetta anche le seguenti opzioni della riga di comando:
Frequentemente Usato Opzioni
-h, --Aiuto
Visualizza le informazioni sull'utilizzo ed esci. Il --verboso e --silenzioso le opzioni possono essere utilizzate per
aumentare e diminuire la quantità di informazioni presentate.
-v, --verboso
Aumentare la quantità di informazioni sullo stato che pkfix helper viene visualizzato durante l'esecuzione.
Ulteriori istanze di --verboso sulla riga di comando aumentare ulteriormente il programma
verbosità. Per impostazione predefinita, vengono visualizzate solo le operazioni principali. Una sola --verboso
visualizza inoltre informazioni sui confronti dei singoli caratteri. Un secondo
--verboso visualizza inoltre i dettagli su alcuni elementi interni del programma
operazioni.
-f Nome=tipo di carattere, --vigore=Nome=tipo di carattere
forza pkfix helper per associare un carattere specifico a un determinato nome di carattere che appare il
documento. Nome è un due caratteri dvip nome del carattere come "Fa". tipo di carattere è un font
specifiche come "cmmi8" o "cmsy10 @ 1.1X". Un asterisco usato nel nome del
carattere di base (ad esempio, "cmti*") proverà automaticamente tutte le dimensioni dei caratteri di prova integrali da 5
a 17 punti ("cmti5", "cmti6", ..., "cmti17"). Un asterisco usato come valore di scala
(ad esempio, "cmsy10 @ *") verrà sostituito dal valore di scala che fornisce la migliore corrispondenza con
le metriche del carattere originale. Il --vigore l'opzione può essere specificata ripetutamente sul
riga di comando.
-p nomefile.ps, --ps=nomefile.ps
Crea un file PostScript chiamato nomefile.ps quello mostra il dvip nome e un carattere
campione di ogni carattere utilizzato dal documento di input.
-t nomefile.tex, --tex=nomefile.tex
Crea un file Plain TeX chiamato nomefile.tex quello mostra il dvip nome e un carattere
campione di ogni font che pkfix helper utilizzato nel documento di output.
raramente Usato Opzioni
-C Nome del file, --cache=Nome del file
Velocizza l'elaborazione dei file TFM memorizzando nella cache le metriche dei caratteri nel file Nome del file. su alcuni
sistemi ci vuole molto tempo per leggere un file TFM, spawn tftop per convertirlo in PL
formato ed estrarre dai dati PL le metriche per ogni carattere. La prima volta
--cache è specificato, pkfix helper procede normalmente quindi scrive tutto l'estratto
metriche dei caratteri per Nome del file. Nelle corse successive in cui --cache=Nome del file is
specificato, pkfix helper legge le metriche precedentemente estratte da Nome del file, andando
tramite la tftop-processo basato solo per file TFM che non erano in precedenza
incontrato.
-q, --silenzioso
istruire pkfix helper non produrre alcun output durante la sua esecuzione tranne che per un errore fatale
messaggi.
-1, --no-ripetizioni
Prevenire pkfix helper dall'associare lo stesso tipo di carattere con più di uno dvip fonte
nome.
-i tipo di carattere, --includere=tipo di carattere
Aggiungi tipo di carattere all'elenco delle specifiche dei caratteri rispetto al quale pkfix helper a confronto
ogni carattere del documento. (In contrasto, --vigore designa una specifica del carattere da usare
solo per un specifico font del documento.) --includere l'opzione può essere specificata ripetutamente
sulla riga di comando.
-x regexp, --escludere=regexp
Rimuovi tutte le specifiche dei caratteri corrispondenti all'espressione regolare regexp da pkfix helper's
elenco dei caratteri conosciuti. Il --escludere l'opzione può essere specificata ripetutamente sul comando
linea.
-k tipo di carattere, --mantenere=tipo di carattere
Non sostituire un carattere vettoriale con un carattere bitmap tipo di carattere ("Fa", "Fb", ecc.). Questo
è utile quando si convertono documenti che utilizzano caratteri bitmap oscuri per i quali non esistono
non è un vettore equivalente. Ad esempio, in passato era piuttosto comune includere
grafica come loghi universitari o aziendali in un documento convertendo il
immagine bitmap in un carattere a carattere singolo e utilizzando quel carattere in LaTeX. --mantenere
impedisce la sostituzione di tali caratteri. Il --mantenere l'opzione può essere specificata
ripetutamente sulla riga di comando.
-a, --qualsiasi scala
Consenti l'uso di qualsiasi valore per ridimensionare un carattere quando ""*"" è specificato come scala
fattore. Normalmente, pkfix helper considera solo multipli interi di 0.1 che sono
maggiore o uguale a 1.0 (cioè, nome del carattere@1X, "@1.1X", "@1.2X", "@1.3X", ecc.).
-s, --spp
Specificare il numero di campioni di font per pagina da stampare sui file indicati utilizzando il
--ps e --tex opzioni. Il valore predefinito, 25, dovrebbe funzionare bene nella maggior parte dei casi
circostanze.
DIAGNOSTICA
"Miglior abbinamento per Nome is piuttosto povero"
Il miglior carattere pkfix helper trovato per dvip nome del carattere Nome ha un valore di mancata corrispondenza maggiore
maggiore o uguale a 1.0. (Il valore di mancata corrispondenza è la somma dei quadrati della differenza
tra le larghezze dei caratteri di un carattere del documento e un potenziale carattere sostitutivo.)
Usa il --vigore opzione per designare un carattere sostitutivo alternativo o un importo di ridimensionamento.
ESEMPI
Ai fini dei seguenti esempi, supponiamo che vecchiofile.ps è il nome di a
File PostScript prodotto da una vecchia versione di dvip e utilizzando almeno un bitmap
font. Vale sempre la pena verificarlo pkfix non è possibile convertire il file da solo:
$ pkfix vecchio file.ps nuovo file.ps
PKFIX 1.3, 2005/02/25 - Copyright (c) 2001, 2005 di Heiko Oberdiek.
==> nessun carattere convertito
(in alternativa pkfix può emettere un messaggio di errore come "!!! Error: Parse error (@start
parametri)!".) Solo quando pkfix non è possibile sostituire i caratteri bitmap con caratteri vettoriali è pkfix-
aiutante necessario. Nella sua forma più semplice, pkfix helper prende il nome di un file di input
(vecchiofile.ps in questo esempio) e il nome di un file di output (pkfix-vecchiofile.ps), che
hanno gli stessi contenuti del file di input ma servono come input adatto per pkfix:
$ pkfix-helper vecchiofile.ps pkfix-vecchiofile.ps
Lettura oldfile.ps ... fatto.
Numero di caratteri di tipo 3 riscontrati: 10
I caratteri bitmap sono composti a 600 DPI.
Trovare le larghezze dei caratteri... fatto.
Lettura dei file TFM... completata (103 TFM in 193 variazioni di scala).
Caratteri corrispondenti:
Elaborazione Fi ... completata (cmr10 @ 1X, mancata corrispondenza=0.11683).
Elaborazione Fa ... eseguita (cmti10 @ 1X, mancata corrispondenza=0.08892).
Elaborazione Fb ... completata (cmr8 @ 1X, mancata corrispondenza=0.07133).
Elaborazione Ff ... eseguita (cmbx12 @ 1.2X, mancata corrispondenza=0.02948).
Elaborazione Fh ... completata (cmtt10 @ 1X, mancata corrispondenza=0.06895).
Elaborazione Fd ... completata (cmmi10 @ 1X, mancata corrispondenza=0.03966).
Elaborazione Fj ... completata (cmbx12 @ 1X, mancata corrispondenza=0.03972).
Elaborazione Fe ... eseguita (cmbx10 @ 1X, mancata corrispondenza = 0.00762).
Elaborazione Fg ... eseguita (cmsy10 @ 1X, mancata corrispondenza=0.00875).
Elaborazione Fc ... completata (cmr6 @ 1X, mancata corrispondenza=0.00284).
$ pkfix pkfix-vecchiofile.ps nuovofile.ps
PKFIX 1.3, 2005/02/25 - Copyright (c) 2001, 2005 di Heiko Oberdiek.
*** Conversione dei caratteri: `cmti10' -> `CMTI10'.
*** Conversione dei caratteri: `cmr8' -> `CMR8'.
*** Conversione dei caratteri: `cmr6' -> `CMR6'.
*** Conversione dei caratteri: `cmmi10' -> `CMMI10'.
*** Conversione dei caratteri: `cmbx10' -> `CMBX10'.
*** Conversione dei caratteri: `cmbx12' -> `CMBX12'.
*** Conversione dei caratteri: `cmsy10' -> `CMSY10'.
*** Conversione dei caratteri: `cmtt10' -> `CMTT10'.
*** Conversione dei caratteri: `cmr10' -> `CMR10'.
*** Conversione dei caratteri: `cmbx12' -> `CMBX12'.
*** Unione dei caratteri "CMBX12" (2).
==> 10 caratteri convertiti.
==> 1 carattere unito.
Sebbene il pkfix helper cerca di automatizzare il più possibile il processo di rilevamento dei caratteri,
alcuni caratteri saranno invariabilmente identificati in modo errato. Il programma emette un avviso
messaggio se è conosce una corrispondenza è negativa ma non necessariamente la mancanza di un messaggio di avviso
indica quello pkfix helper fatto un buon lavoro. Si raccomanda quindi vivamente che il
l'utente produce fogli di caratteri "prima" e "dopo":
$ pkfix-helper -q vecchiofile.ps pkfix-vecchiofile.ps
--ps=vecchi caratteri.ps --tex=nuovi caratteri.tex
$tex nuovifont.tex
Questo è TeX, versione 3.14159 (Web2C 7.4.5)
(./newfonts.tex [1] )
Output scritto su newfonts.dvi (1 pagina, 1292 byte).
Trascrizione scritta su newfonts.log.
$ dvips nuovifont.dvi -o nuovifont.ps
Questo è dvips(k) 5.92b Copyright 2002 Radical Eye Software (www.radicaleye.com)
' Output 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]
Dopo aver eseguito i comandi precedenti, oldfonts.ps mostra campioni dei caratteri in vecchiofile.ps
e nuovifont.ps mostra esempi dei caratteri sostitutivi che pkfix helper usato per produrre
pkfix-vecchiofile.ps. Stampa oldfonts.ps e nuovifont.ps e confrontali attentamente per
caratteri e dimensioni errati.
Supponiamo che la scelta di "cmbx12 @ 1.2X" per il carattere "Ff" sia sbagliata; dì i personaggi
sembrare più alto in oldfonts.ps Che in nuovifont.ps. Qui è dove la fase di prova ed errore
inizia. Ipotizziamo che "cmb12" sia una corrispondenza migliore di "cmbx12" ma non lo sappiamo
quanto ridimensionare il carattere. Fortunatamente, pkfix helper consente di usare "*" come scala
fattore per dire al programma di rilevare automaticamente un fattore di scala ottimale, anche se
farlo significa scegliere una dimensione del carattere non standard:
$ pkfix-helper oldfile.ps pkfix-oldfile.ps --force="Ff=cmb12 @ *"
Lettura oldfile.ps ... fatto.
Numero di caratteri di tipo 3 riscontrati: 10
I caratteri bitmap sono composti a 600 DPI.
Trovare le larghezze dei caratteri... fatto.
Lettura dei file TFM... non riuscita.
pkfix-helper: impossibile elaborare il file TFM specificato dall'utente "cmb12"
Oops, sembra che non abbiamo un cmb12.tfm file sul nostro sistema. Proviamo a scalare
cmb10.tfm anziché:
$ pkfix-helper oldfile.ps pkfix-oldfile.ps --force="Ff=cmb10 @ *"
Lettura oldfile.ps ... fatto.
Numero di caratteri di tipo 3 riscontrati: 10
I caratteri bitmap sono composti a 600 DPI.
Trovare le larghezze dei caratteri... fatto.
Lettura dei file TFM... completata (103 TFM in 193 variazioni di scala).
Caratteri corrispondenti:
Elaborazione Fi ... completata (cmr10 @ 1X, mancata corrispondenza=0.11683).
Elaborazione Fa ... eseguita (cmti10 @ 1X, mancata corrispondenza=0.08892).
Elaborazione Fb ... completata (cmr8 @ 1X, mancata corrispondenza=0.07133).
Elaborazione Ff ... eseguita (cmb10 @ 1.5X, mancata corrispondenza=0.00035).
Elaborazione Fh ... completata (cmtt10 @ 1X, mancata corrispondenza=0.06895).
Elaborazione Fd ... completata (cmmi10 @ 1X, mancata corrispondenza=0.03966).
Elaborazione Fj ... completata (cmbx12 @ 1X, mancata corrispondenza=0.03972).
Elaborazione Fe ... eseguita (cmbx10 @ 1X, mancata corrispondenza = 0.00762).
Elaborazione Fg ... eseguita (cmsy10 @ 1X, mancata corrispondenza=0.00875).
Elaborazione Fc ... completata (cmr6 @ 1X, mancata corrispondenza=0.00284).
Il match è decisamente migliorato, anche se 15 pt. è certamente una dimensione strana per un font.
Poi di nuovo, molti documenti do utilizzare dimensioni non standard, quindi questo potrebbe essere corretto. Il
il modo migliore per verificare è ancora una volta produrre, stampare e confrontare un paio di campioni di font e
iterare finché tutti i caratteri non sembrano corretti. Usa un'istanza di --vigore per ogni carattere
vuoi alterare.
AMBIENTE
pkfix helper rispetta le seguenti variabili di ambiente:
GS Il nome dell'interprete Ghostscript (predefinito: gs)
TFTOPL Il nome di un'utilità per la conversione .tfm i file .pl file (predefinito: tftop)
Usa pkfix-helper online usando i servizi onworks.net