[successivo]
[precedente]
[inizio]
[fine]
[indice generale]
[indice ridotto]
[translators]
[docinfo]
[indice analitico]
[volume]
[parte]
Capitolo 312. PostScript: caratteri da stampa
Il linguaggio PostScript, nelle sue prime versioni, prevede che il file contenente le istruzioni sia di tipo ASCII, dove è ammissibile usare gli 8 bit per esteso. Tuttavia, l'insieme di caratteri a disposizione non è il solito ISO 8859-1, ma qualcosa di diverso che può essere visto nella tabella 312.1.
Tabella 312.1. Insieme di caratteri normale del linguaggio PostScript.
|
Per fare riferimento a un simbolo in forma numerica, basta indicare il numero ottale corrispondente, di tre cifre, preceduto dalla barra obliqua inversa. Per facilitare la lettura, la tabella mostra questo modo di fare riferimento ai caratteri, all'inizio e alla fine di ogni riga.
Per poter usare la codifica corrispondente allo standard ISO 8859-1, è necessario dare delle istruzioni particolari. Volendo sbirciare nel codice PostScript generato da vari sistemi di composizione, si può osservare che ognuno utilizza un proprio modo, più o meno sofisticato. Probabilmente, la tecnica più semplice è quella che si può leggere nei sorgenti di Ghostscript, dove vengono dichiarate due funzioni apposite nel modo seguente:
/font-to-iso-latin-1
{
dup length dict begin {1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding ISOLatin1Encoding def currentdict end
dup /FontName get 80 string cvs (-ISOLatin1) concatstrings cvn
exch definefont
} def
/find-latin-font
{
findfont font-to-iso-latin-1
} def
|
|
In questo modo, quando si va a dichiarare l'uso di un certo tipo di carattere da stampa, invece dell'istruzione seguente, si usa piuttosto quella successiva:
/carattere findfont dimensione scalefont setfont
|
Forma modificata per la selezione della codifica ISO 8859-1:
/carattere find-latin-font dimensione scalefont setfont
|
312.1
Aspetto dei caratteri da stampa comuni
Il linguaggio PostScript mette a disposizione pochi tipi di carattere da stampa; tuttavia, è disponibile l'interprete Ghostscript, su moltissime piattaforme, che mette a disposizione un numero discreto di questi tipi. La tabella 312.14 elenca brevemente i nomi di questi tipi di carattere, mentre in altre tabelle successive viene mostrato l'aspetto di alcuni di questi, ordinando i simboli secondo l'insieme ISO 8859-1.
Tabella 312.3. Carattere da stampa AvantGarde.
|
Tabella 312.4. Carattere da stampa Bookman.
|
Tabella 312.5. Carattere da stampa Courier.
|
Tabella 312.6. Carattere da stampa Helvetica.
|
Tabella 312.7. Carattere da stampa NewCenturySchlbk.
|
Tabella 312.8. Carattere da stampa Palatino.
|
Tabella 312.9. Carattere da stampa Times.
|
Tabella 312.10. Carattere da stampa Utopia.
|
Tabella 312.11. Carattere da stampa ZapfChancery.
|
Tabella 312.12. Carattere da stampa ZapfDingbats (solo con l'insieme di caratteri normale).
|
Tabella 312.13. Carattere da stampa Symbol (solo con l'insieme di caratteri normale).
|
Tabella 312.14. Nomi dei tipi di carattere da stampa che solitamente sono disponibili con Ghostscript.
Nome | Descrizione |
AvantGarde-Book | AvantGarde normale. |
AvantGarde-BookOblique | AvantGarde inclinato. |
AvantGarde-Demi | AvantGarde neretto. |
AvantGarde-DemiOblique | AvantGarde neretto obliquo. |
Bookman-Demi | Bookman neretto. |
Bookman-DemiItalic | Bookman neretto corsivo. |
Bookman-Light | Bookman normale. |
Bookman-LightItalic | Bookman corsivo. |
Courier | Courier normale. |
Courier-Bold | Courier neretto. |
Courier-BoldOblique | Courier neretto inclinato. |
Courier-Oblique | Courier inclinato. |
Helvetica | Helvetica normale. |
Helvetica-Bold | Helvetica neretto. |
Helvetica-BoldOblique | Helvetica neretto inclinato. |
Helvetica-Narrow | Helvetica stretto. |
Helvetica-Narrow-Bold | Helvetica stretto neretto. |
Helvetica-Narrow-BoldOblique | Helvetica stretto neretto inclinato. |
Helvetica-Narrow-Oblique | Helvetica stretto inclinato. |
Helvetica-Oblique | Helvetica inclinato. |
NewCenturySchlbk-BoldItalic | NewCenturySchlbk neretto corsivo. |
NewCenturySchlbk-Bold | NewCenturySchlbk neretto. |
NewCenturySchlbk-Italic | NewCenturySchlbk corsivo. |
NewCenturySchlbk-Roman | NewCenturySchlbk normale. |
Palatino-Bold | Palatino neretto. |
Palatino-BoldItalic | Palatino neretto corsivo. |
Palatino-Italic | Palatino corsivo. |
Palatino-Roman | Palatino normale. |
Times-Bold | Times neretto. |
Times-BoldItalic | Times neretto inclinato. |
Times-Italic | Times corsivo. |
Times-Roman | Times normale. |
ZapfChancery-MediumItalic | ZapfChancery-MediumItalic medio corsivo. |
ZapfDingbats | ZapfDingbats (solo con l'insieme di caratteri normale). |
Symbol | Symbol (solo con l'insieme di caratteri normale). |
|
312.2
Distorsione e spostamento dei caratteri da stampa
Fino a questo punto è stato visto come selezionare un carattere da stampa con l'istruzione seguente o con quella successiva, nel caso sia disponibile la funzione relativa:
/carattere findfont dimensione scalefont setfont
|
/carattere find-latin-font dimensione scalefont setfont
|
In alternativa, è possibile sostituire l'indicazione della dimensione con qualcosa di più articolato, secondo uno dei due schemi seguenti:
/carattere findfont [dim_x rot_x rot_y dim_y sp_x sp_y] makefont setfont
|
/carattere find-latin-font [dim_x rot_x rot_y dim_y sp_x sp_y] makefont setfont
|
Tra parentesi quadre appaiono una serie di valori, che se non utilizzati vanno lasciati azzerati. Per comprenderne il significato, conviene partire dalla situazione normale. Supponendo di volere dichiarare un carattere da stampa di tipo Helvetica, normale, di 12 punti, si può usare la definizione solita:
/Helvetica findfont 12 scalefont setfont
|
|
Oppure, in modo più complesso, quella seguente:
/Helvetica findfont [12 0 0 12 0 0] makefont setfont
|
|
In pratica, dim_x e dim_y servono per definire la dimensione orizzontale e verticale del carattere. In condizioni normali, la dimensione è la stessa; diversamente, con una dimensione orizzontale più grande di quella verticale si ottiene un carattere più largo, mentre con una dimensione verticale maggiore di quella orizzontale, si ottiene un carattere alto (o sottile). Si osservi l'esempio seguente, di un carattere Helvetica allargato e successivamente alzato. Il risultato, in rapporto, si può vedere nella figura 312.19.
/Helvetica findfont [30 0 0 12 0 0] makefont setfont
|
|
/Helvetica findfont [12 0 0 30 0 0] makefont setfont
|
|
Figura 312.19. Distorsione orizzontale e verticale del carattere da stampa.
|
I valori corrispondenti a rot_x e rot_y permettono di inclinare l'asse X o l'asse Y del testo. In pratica, modificando rot_x si cambia l'andamento orizzontale del testo secondo l'angolo indicato. Per esempio un angolo di 10 gradi fa sì che la riga scritta sia inclinata verso l'alto (ovvero di 10 gradi in senso antiorario), mentre un angolo di -10 gradi genera una riga inclinata verso il basso. La figura 312.22 mostra il risultato che si può ottenere con le due distorsioni seguenti:
/Helvetica findfont [12 10 0 12 0 0] makefont setfont
|
|
/Helvetica findfont [12 -10 0 12 0 0] makefont setfont
|
|
Figura 312.22. Distorsione dell'inclinazione orizzontale.
|
Intervenendo invece nel valore rot_y, si cambia l'inclinazione del carattere, senza cambiare l'andamento della riga. In pratica, valori positivi dell'angolazione generano un'inclinazione in avanti, simile a un corsivo, mentre valori negativi generano un'inclinazione all'indietro. La figura 312.25 mostra il risultato che si può ottenere con le due distorsioni seguenti:
/Helvetica findfont [12 0 10 12 0 0] makefont setfont
|
|
/Helvetica findfont [12 0 -10 12 0 0] makefont setfont
|
|
Figura 312.25. Distorsione dell'inclinazione verticale.
|
I valori corrispondenti a sp_x e sp_y rappresentano uno spostamento orizzontale e verticale, in punti, senza applicare delle distorsioni vere e proprie.
L'andamento del testo, che normalmente si svolge da sinistra a destra, può essere invertito, assegnando un valore negativo per il primo valore, ovvero per dim_x. La figura 312.27 mostra la comparazione tra un testo scritto in modo normale e un altro che invece si sviluppa verso sinistra, con un comando simile a quello seguente:
/Helvetica findfont [-12 0 0 12 0 0] makefont setfont
|
|
Figura 312.27. Scrittura normale e scrittura da destra a sinistra.
|
Così come si può invertire l'andamento del testo in orizzontale, si può invertire in modo verticale, ottenendo una sorta di riflessione. La figure 312.29 mette a confronto un testo scritto in modo normale e un altro modificato con l'istruzione seguente:
/Helvetica findfont [12 0 0 -12 0 0] makefont setfont
|
|
Figura 312.29. Scrittura ruotata sull'asse orizzontale.
|
312.3
Riferimenti
Appunti di informatica libera 2006.07.01 --- Copyright © 2000-2006 Daniele Giacomini -- <daniele (ad) swlibero·org>
Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome postscript_caratteri_da_stampa.htm
[successivo]
[precedente]
[inizio]
[fine]
[indice generale]
[indice ridotto]
[translators]
[docinfo]
[indice analitico]