lunedì 11 gennaio 2010

Font embedded in immagini eps

Nel post di ieri mi sono occupato di descrivere come inserire i font embedded all'interno di un file pdf prodotto tramite latex. Se però nel file sono presenti delle immagini prodotte con inkscape o gnuplot che presentano del testo probabilmente il comando
$ pdffonts mypdf.pdf
vi risponderà con qualcosa del genere:
name                                 type              emb sub uni object ID
------------------------------------ ----------------- --- --- --- ---------
XUWBUR+NimbusRomNo9L-ReguItal        Type 1C           yes yes no      16  0
YXMBPZ+NimbusRomNo9L-Medi            Type 1C           yes yes no      14  0
XGMSCW+CMSY10                        Type 1C           yes yes no      12  0
LSNASR+NimbusRomNo9L-Regu            Type 1C           yes yes no      10  0
PKDQII+NimbusSanL-Regu               Type 1C           yes yes no       8  0
CVCBUP+CMMI12                        Type 1C           yes yes no      28  0
GQHPRH+CMMI8                         Type 1C           yes yes no      37  0
RHZTYV+NimbusRomNo9L-MediItal        Type 1C           yes yes no      35  0
URIFNC+NimbusSanL-ReguItal           Type 1C           yes yes no      46  0
EKJBZX+CMMI10                        Type 1C           yes yes no      44  0
KNVWMN+NimbusMonL-Regu               Type 1C           yes yes no      53  0
WNGVSG+CMR12                         Type 1C           yes yes no      60  0
OZBJDZ+CMMI6                         Type 1C           yes yes no      72  0
SYGRQK+CMSY8                         Type 1C           yes yes yes     78  0
YICAIF+CMR8                          Type 1C           yes yes no      76  0
VMCEHD+CMEX10                        Type 1C           yes yes yes     74  0
OTJKZH+CMR7                          Type 1C           yes yes no      96  0
YGZXPE+CMSY7                         Type 1C           yes yes no      94  0
QSBHWY+CMR10                         Type 1C           yes yes no      92  0
EHWOBO+CMMI7                         Type 1C           yes yes no      90  0
Helvetica                            Type 1            no  no  no     103  0
dove il font Helvetica viene indicato come non embedded. Questo creerà dei problemi se cerchiamo di sottomettere il pdf al controllo automatico effettuato dal sito IEEE PDF eXpress.
Vediamo una procedura abbastanza veloce che ci permette di fare in modo che all'interno delle nostre immagini eps vengano inseriti i font embedded.

Consideriamo una immagine eps qualsiasi: myimage.eps. Per prima cosa è necessario convertirla in formato pdf in modo che vengano inseriti i font:
$ ps2pdf14 -dPDFSETTINGS=/prepress myimage.eps myimage_with_font.pdf

Possiamo verificare che i font sono stati inseriti sempre con il comando visto nel post di ieri:
$ pdffonts myimage_with_font.pdf

Il risultato sarà:
name                                 type              emb sub uni object ID
------------------------------------ ----------------- --- --- --- ---------
BNMWKJ+Helvetica                     Type 1C           yes yes no       8  0

Ora il font Helvetica è embedded. Se vogliamo compilare il nostro articolo con pdflatex abbiamo finito. Basterà includere nel documento le immagini così convertite in pdf e il documento sarà perfetto. Se invece vogliamo compilare il nostro documento con latex (e non con pdflatex) quello che si deve fare è riconvertire il file in eps:
$ pdftops -eps myimage_with_font.pdf myimage_with_font.eps
e poi eliminare il contorno bianco che inevitabilmente si sarà formato intorno all'immagine:
$ ps2eps myimage_with_font.eps
Questo comando creerà un'immagine myimage_with_font.eps.eps. Rinominiamola come preferiamo, includiamo l'immagine nel nostro documento e poi ricompiliamo il nostro articolo in latex.
Adesso tutti i font saranno embedded:
name                                 type              emb sub uni object ID                                                                                                      
------------------------------------ ----------------- --- --- --- ---------                                                                                                      
XUWBUR+NimbusRomNo9L-ReguItal        Type 1C           yes yes no      16  0                                                                                                      
YXMBPZ+NimbusRomNo9L-Medi            Type 1C           yes yes no      14  0                                                                                                      
XGMSCW+CMSY10                        Type 1C           yes yes no      12  0                                                                                                      
LSNASR+NimbusRomNo9L-Regu            Type 1C           yes yes no      10  0                                                                                                      
PKDQII+NimbusSanL-Regu               Type 1C           yes yes no       8  0                                                                                                      
CVCBUP+CMMI12                        Type 1C           yes yes no      28  0
GQHPRH+CMMI8                         Type 1C           yes yes no      37  0
RHZTYV+NimbusRomNo9L-MediItal        Type 1C           yes yes no      35  0
URIFNC+NimbusSanL-ReguItal           Type 1C           yes yes no      46  0
EKJBZX+CMMI10                        Type 1C           yes yes no      44  0
KNVWMN+NimbusMonL-Regu               Type 1C           yes yes no      53  0
WNGVSG+CMR12                         Type 1C           yes yes no      60  0
OZBJDZ+CMMI6                         Type 1C           yes yes no      72  0
SYGRQK+CMSY8                         Type 1C           yes yes yes     78  0
YICAIF+CMR8                          Type 1C           yes yes no      76  0
VMCEHD+CMEX10                        Type 1C           yes yes yes     74  0
OTJKZH+CMR7                          Type 1C           yes yes no      96  0
YGZXPE+CMSY7                         Type 1C           yes yes no      94  0
QSBHWY+CMR10                         Type 1C           yes yes no      92  0
EHWOBO+CMMI7                         Type 1C           yes yes no      90  0
BNMWKJ+Helvetica                     Type 1C           yes yes no     104  0
AIKPBX+Helvetica                     Type 1C           yes yes no     107  0