[successivo] [precedente] [inizio] [fine] [indice generale] [violazione GPL] [translators] [docinfo] [indice analitico] [volume] [parte]


Capitolo 227.   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 227.1.

Tabella 227.1. Insieme di caratteri normale del linguaggio PostScript.

rotazione

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 potrà 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

/carattere findfont dimensione scalefont setfont

si userà piuttosto la forma seguente:

/carattere find-latin-font dimensione scalefont setfont

227.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 227.13 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 227.2. Carattere da stampa AvantGarde.

rotazione

Tabella 227.3. Carattere da stampa Bookman.

rotazione

Tabella 227.4. Carattere da stampa Courier.

rotazione

Tabella 227.5. Carattere da stampa Helvetica.

rotazione

Tabella 227.6. Carattere da stampa NewCenturySchlbk.

rotazione

Tabella 227.7. Carattere da stampa Palatino.

rotazione

Tabella 227.8. Carattere da stampa Times.

rotazione

Tabella 227.9. Carattere da stampa Utopia.

rotazione

Tabella 227.10. Carattere da stampa ZapfChancery.

rotazione

Tabella 227.11. Carattere da stampa ZapfDingbats (solo con l'insieme di caratteri normale).

rotazione

Tabella 227.12. Carattere da stampa Symbol (solo con l'insieme di caratteri normale).

rotazione

Tabella 227.13. 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).

227.2   Distorsione e spostamento dei caratteri da stampa

Fino a questo punto è stato visto come selezionare un carattere da stampa con l'istruzione

/carattere findfont dimensione scalefont setfont

oppure con quella seguente, nel caso sia disponibile la funzione relativa:

/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 227.1.

/Helvetica findfont [30 0 0 12 0 0] makefont setfont
/Helvetica findfont [12 0 0 30 0 0] makefont setfont

Figura 227.1. Distorsione orizzontale e verticale del carattere da stampa.

distorsione orizzontale e verticale

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 farà sì che la riga scritta sia inclinata verso l'alto (ovvero di 10 gradi in senso antiorario), mentre un angolo di -10 gradi genererà una riga inclinata verso il basso. La figura 227.2 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 227.2. Distorsione dell'inclinazione orizzontale.

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 227.3 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 227.3. Distorsione dell'inclinazione verticale.

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 227.4 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 227.4. Scrittura normale e scrittura da destra a sinistra.

andamento opposto

Così come si può invertire l'andamento del testo in orizzontale, si può invertire in modo verticale, ottenendo una sorta di riflessione. La figure 227.5 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 227.5. Scrittura ruotata sull'asse orizzontale.

riflessione

227.3   Riferimenti

Appunti di informatica libera 2003.01.01 --- Copyright © 2000-2003 Daniele Giacomini -- daniele @ swlibero.org

Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome postscript_caratteri_da_stampa.html

[successivo] [precedente] [inizio] [fine] [indice generale] [violazione GPL] [translators] [docinfo] [indice analitico]