[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico] [home] [volume] [parte]


Capitolo 435.   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 435.1.

Tabella 435.1. Insieme di caratteri normale del linguaggio PostScript.

insieme normale

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

435.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 435.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 435.3. Carattere da stampa AvantGarde.

AvantGarde

Tabella 435.4. Carattere da stampa Bookman.

Bookman

Tabella 435.5. Carattere da stampa Courier.

Courier

Tabella 435.6. Carattere da stampa Helvetica.

Helvetica

Tabella 435.7. Carattere da stampa NewCenturySchlbk.

NewCenturySchlbk

Tabella 435.8. Carattere da stampa Palatino.

Palatino

Tabella 435.9. Carattere da stampa Times.

Times

Tabella 435.10. Carattere da stampa Utopia.

Utopia

Tabella 435.11. Carattere da stampa ZapfChancery.

ZapfChancery

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

ZapfDingbats

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

Symbol

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

435.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 435.19.

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

Figura 435.19. 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 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 435.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 435.22. 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 435.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 435.25. 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 435.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 435.27. 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 435.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 435.29. Scrittura ruotata sull'asse orizzontale.

riflessione

435.3   Riferimenti


Appunti di informatica libera 2008 --- Copyright © 2000-2008 Daniele Giacomini -- <appunti2 (ad) gmail·com>


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] [indice analitico] [home]

Valid ISO-HTML!

CSS validator!

Gjlg Metamotore e Web Directory