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

domenica 10 gennaio 2010

Font embedded con latex

Se lavorate nel settore della ricerca, può esservi capitato, a volte, di avere la necessità di sottomettere un lavoro ad una conferenza che richiede l'utilizzo del sito IEEE PDF eXpress, per verificare se il vostro pdf rispetta le specifiche di compatibilità del sito IEEE Xplore PDF, nel quale avviene la pubblicazione online dei lavori.
Se vi è capitato, quasi sicuramente vi siete imbattuti in un errore di questo tipo:

Errors were found on pages 1-14. Font Helvetica, Times-Italic, Times-Roman, Times-Bold, Times-BoldItalic, Helvetica-Oblique, Courier is not embedded (1659x on pages 1-14).

Tale errore indica che i font che il vostro pdf richiede non sono inglobati nel pdf stesso. Questo comporta che, se un utente scarica il vostro articolo dal sito IEEE Xplore PDF e non ha installati sulla propria macchina i font che il pdf richiede, non sarà in grado di leggerlo correttamente. Proprio per questo la verifica dei font embedded è una delle prime effettuate dal tool automatico di verifica presente in IEEE PDF eXpress.

Esiste un comando che vi permette di verificare se il vostro pdf presenta dei font embedded o no e quali sono quelli non inclusi:
$ pdffonts mypdf.pdf

L'output è qualcosa del genere:
name                                 type              emb sub uni object ID
------------------------------------ ----------------- --- --- --- ---------
[none]                               Type 3            yes no  no      11  0
Helvetica                            Type 1            no  no  no       8  0
Times-Italic                         Type 1            no  no  no      14  0
Times-Roman                          Type 1            no  no  no       9  0
Times-Bold                           Type 1            no  no  no      13  0
[none]                               Type 3            yes no  yes     26  0
[none]                               Type 3            yes no  yes     35  0
Times-BoldItalic                     Type 1            no  no  no      33  0
Helvetica-Oblique                    Type 1            no  no  no      44  0
[none]                               Type 3            yes no  no      43  0
Courier                              Type 1            no  no  no      51  0
[none]                               Type 3            yes no  yes     62  0
[none]                               Type 3            yes no  no      73  0
[none]                               Type 3            yes no  no     109  0
[none]                               Type 3            yes no  no      93  0
[none]                               Type 3            yes no  no      90  0
[none]                               Type 3            yes no  no      88  0
[none]                               Type 3            yes no  no     154  0
[none]                               Type 3            yes no  no     152  0
[none]                               Type 3            yes no  no     150  0
[none]                               Type 3            yes no  yes    148  0

Tutti i no nella 3° colonna sotto emb sono i responsabili dell'errore che ci infastidisce.

Bando alle ciance come è possibile inserire i font all'interno del pdf in modo che questo errore scompaia? Niente di più semplice. Basta utilizzare il comando updmap per configurare pdflatex e tutti gli altri tool latex in modo da inserire i font all'interno dei file di output generati. In particolare basterà lanciare la seguente serie di comandi:

$ updmap --setoption pdftexDownloadBase14 true
$ updmap --setoption dvipsPreferOutline true
$ updmap --setoption dvipsDownloadBase35 true
$ updmap --setoption dvipdfmDownloadBase14 true

Compilando il vostro sorgente latex e rilanciando il comando

$ pdffonts mypdf.pdf
adesso otterremo un output come il seguente output:

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

Come vedete i font vengono adesso riconosciuti e abbiamo tutta una serie di yes nella terza colonna sotto emb. Noterete che è presente un solo no in corrispondenza del font Helvetica. Nel mio caso tale font è utilizzato solo all'interno delle immagini inserite nell'articolo. Per fare in modo che le immagini eps o pdf prodotte da tool come gnuplot o inkscape (sono i tool che utilizzo io) presentino anch'esse i font embedded sarà necessario qualche accorgimento che sarà oggetto di un prossimo post.


PS: una procedura più semplice:

$ pdftops mypdf.pdf
$ mv mypdf.ps mypdf_ok.ps
$ ps2pdf -dEmbedAllFonts=true -dPDFSETTINGS=/prepress mypdf_ok.ps

venerdì 8 gennaio 2010

Visualizzare immagini in sequenza con Sabayon

Con le versioni precedenti di Sabayon Linux tra i pacchetti di base installati c'era anche un piccolo programmino per visualizzare in sequenza le immagini contenute in una directory. Con la versione 5.1 forse si sono dimenticati di inserirlo e adesso le immagini vengono aperte automaticamente con GIMP, il che è una seccatura dato che GIMP ci sta una vita ad caricare e soprattutto non permette una visualizzazione in sequenza.

Non ricordavo il nome del programma e sono andato un po' in giro. Ho trovato che per Gnome esiste Eye of Gnome (in Gentoo e Sabayon è media-gfx/eog). Per KDE 4 invece il programma che cercavo è Gwenview (kde-base/gwenview). Se si cerca qualcosa di più sofisticato ci si può orientare per GQview (media-gfx/gqview) che funziona sia per Gnome che per KDE.

Io ho installato Gwenview che era quello presente di default nelle vecchie versioni di Sabayon con KDE e ho notato con piacere che permette anche una semplice anteprima di eventuali filmati presenti tra le immagini.

giovedì 7 gennaio 2010

Cineforum "Misteri d'Italia": Lucky Luciano

L'associazione Energia Messinese continua nel suo impegno civile sul territorio con gli appuntamenti del cineforum "Misteri d'Italia". L'obbiettivo del ciclo di proiezioni è quello di spingere i cittadini della nostra città a informarsi su alcuni degli aspetti poco chiari della storia italiana: delitti che non hanno mai visto la luce della verità, personaggi poco noti ai più ma con ruoli decisivi in momenti storici delicati, episodi coperti da una coltre di nebbia che non lascia intravedere il loro reale significato. Reputiamo che sia dovere di ogni cittadino, per quanto possibile, cercare tutte le informazioni necessarie a formarsi una opinione chiara e precisa su ciò che riguarda la vita pubblica del nostro paese. Insieme alla Rete, il cinema d'autore può essere utile allo scopo. Oltre a essere un piacevole modo di passare le serate.

Mercoledì 13 Gennaio verrà proiettato il film "Lucky Luciano" di Francesco Rosi e con Gian Maria Volontè. Senza entrare troppo nel dettaglio, per non togliere il piacere di vedere il film, basti ricordare che il Time Magazine ha inserito Luciano tra i 20 uomini più influenti del XX secolo. Luciano, inoltre, è una figura importantissima per la storia del nostro paese: si pensa che egli venne rimandato dal governo degli Stati Uniti in Sicilia per coordinare le operazioni della Mafia in vista dello sbarco degli alleati nella nostra isola nel 1945.

Ricordo che la proiezione avverrà presso il salone della Chiesa di Porto Salvo di fronte all'ingresso laterale della Fiera alle 21.30 circa. Qui trovate una mappa che ne indica la posizione corretta. L'ingresso è assolutamente gratuito.

martedì 5 gennaio 2010

Il Partito Unico dell'Amore

Poco prima di Natale, esattamente il 24 Dicembre 2009, il mitico Massimo D'Alema ha rilasciato una intervista al quotidiano L'Unità. L'articolo è questo. Tra le altre cose il leader maximo ha posto la seguente domanda: "Quali sarebbero, in tutti questi anni, gli accordi sottobanco che avremmo fatto con Berlusconi? Sarei curioso di sentire l’elenco". Ciò in risposta alle continue accuse di inciucismo che gli venivano rivolte da un paio di giorni dopo la sue meravigliosa esternazione: "Certi inciuci farebbero bene al paese". Qui il corrispondente articolo di Repubblica.

Naturalmente Marco Travaglio non poteva che cogliere l'occasione per fornire un elenco dettagliato al nostro smemorato. Per questo gli ultimi due Passaparola sono stati dedicati interamente ad un escursus storico sulle leggi "ad personas", "ad aziendam" ed infine "ad personam" che sinistra e destra (ovvero il Partito Unico dell'Amore) si sono allegramente regalate negli ultimi 15 anni di storia repubblicana.

Ecco i due Passaparola in questione:





Se non vi fidate di Marco Travaglio (leggittimo dopotutto) abbiamo una vera e propria confessione che ci giunge direttamente dalla aule parlamentari (spezzone del film "Viva Zapatero!" di Sabina Guzzanti):



Ora queste cose dovrebbe conoscerle anche un bambino ma purtroppo sappiamo che il nostro paese dimentica sempre tutto e non è abituato a leggere e informarsi quindi sempre meglio non lasciarsi sfuggire l'occasione di ripeterle. Non posso inoltre che approvare con grande entusiasmo la provocazione di Piero Ricca che suggerisce qui un bel No D'Alema Day.

lunedì 4 gennaio 2010

Hollywood ending di Woody Allen

Val Waxman è un regista di Hollywood la cui vita è in totale sfacelo. Sua moglie Ellie lo ha lasciato per i suoi problemi di ipocondria e ora sta con Hal, un produttore ricco, bello e di successo. Il figlio, musicista ribelle e anticonformista, non gli parla da anni: troppe differenze nelle loro espressioni artistiche e nel modo di affrontare la vita. La sua attuale fidanzata è un'attrice incapace, priva di talento e di cervello, con la quale vive solo per colmare il vuoto lasciato dalla moglie e per avere qualcuno che possa prendersi cura delle sue paure e nevrosi. Il lavoro va ancora peggio: è ridotto a girare spot pubblicitari in Canada in mezzo alle renne. Un giorno la ex moglie convince il suo attuale compagno ad affidare a Val un nuovo film su New York. Ma Val non si smentisce e nella paranoia di fallire viene colpito da cecità psicosomatica scatenando una serie di gag esilaranti sul set del nuovo film.

Hollywood ending è geniale perché affronta contemporaneamente due tematiche care al regista: la nevrosi e l'insicurezza dilagante nella società moderna e la crisi artistica di Hollywood. Val è il prototipo dell'uomo moderno: insicuro, ipocondriaco, schiavo di medicinali e psicofarmaci, insoddisfatto, incapace di mantenere il rapporto con la moglie che ama ancora e alla quale non perdona di averlo abbandonato. Ma Allen mette sullo schermo anche l'eterna doppia personalità del cinema hollywoodiano diviso tra la necessità di successo commerciale e la voglia di lasciare spazio ad un cinema d'autore che non sbanchi il box office ma abbia comunque qualcosa di interessante da dire.

Si potrebbe pensare che Hollywood ending sia il film più autobiografico di Woody Allen e non si andrebbe lontani dalla verità. Soprattutto è un arma di vendetta verso l'establishment hollywoodiano che Allen ha sempre snobbato e che non lo ha mai ricambiato con quell'amore che invece il regista riceve in Europa e nel resto del mondo.

Non uno dei migliori film di Allen ma comunque da vedere.

domenica 3 gennaio 2010

In 1/2 h su Craxi

Ho appena finito di vedere la puntata di oggi di "In 1/2 h". Lucia Annunziata intervistava la figlia di Bettino Craxi, Stefania. Sono stati inoltre proposti alcuni contributi inediti. In particolare alcune interviste a Bettino durante il periodo della latitanza/esilio (dipende dalle opinioni, come tutto in Italia e questo è proprio uno dei pensieri che vorrei esprimere).

Per prima cosa mi ha colpito proprio il contenuto di alcune delle dichiarazioni di Craxi. Soprattutto quelle riguardanti i suoi ex compagni di partito e il loro atteggiamento di fronte alla "persecuzione" giudiziaria di Bettino. Sono stati definiti tra le altre cose traditori, venduti, becchini. Ora l'unico pensiero che mi viene in mente è: ma a me che me ne frega? Cioè è assolutamente normale, in un paese come l'Italia, che quando inizia la tempesta i marinai cominciano ad abbandonare la nave lasciando solo il capitano. E magari lo rinnegano. Cercano di giustificare se stessi condannando gli altri. Collaborano per cercare vantaggi. C'è qualcosa di cui meravigliarsi? Ma soprattutto: ok gli amici di Craxi lo hanno abbandonato, e allora? Cosa c'entra con il merito della questione? Lui è innocente perchè sono stati gli altri che lo hanno tradito? Direi che è un po' troppo facile mettere così le cose. In merito a questo c'è un interessante articolo di Travaglio: http://www.voglioscendere.ilcannocchiale.it/2009/12/31/i_ragazzi_dello_zoo_di_bettino.html su Voglio scendere.

Altra cosa che mi ha colpito è stato il continuo pronunciare la parola "partito". E come ci si nascondesse un po' dietro questa parola. "Se sono stati fatti degli sbagli sono stati fatti per il partito", "Sicuramente tutti hanno fatto quello che pensavano giusto per il partito". Sappiamo bene che non si fanno sbagli di quel tipo per il bene del paese o di un qualunque partito, ma solo per il bene delle proprie tasche.

Infine altra considerazione, quella che accennavo inizialmente. La figlia di Craxi dichiara che la storia si ripete e che ciò che è stato fatto a suo padre viene adesso fatto a Silvio Berlusconi. Solo che c'è una differenza: gli italiani non erano con Craxi ma sono con Berlusconi. Sorge spontanea la domanda: perchè è così? La risposta più facile che mi viene in mente è che Berlusconi ha un potere mediatico che Craxi non aveva e ha avvelenato le menti degli italiani e plasmato i loro cervelli con un unico obbiettivo: quello di renderli ignoranti. E soprattutto quello di renderli simili a lui. E come potrebbero gli esseri inferiori non adorare il loro dio che li ha creati?

Ma la considerazione finale è un'altra. Dall'ignoranza deriva l'incapacità di farsi un'opinione. Gli italiani non prendono posizione con il cervello ma con il cuore. Ragionano a simpatie ed antipatie. Non sono interessati ai fatti, alla Verità. Sono spinti da amore e odio anche quando devono prendere una posizione su qualcosa che non conoscono. Craxi è fuggito ad Hammamet? E' un esule politico perchè i giudici politicizzati lo hanno perseguitato. Qualcuno della mia generazione conosce veramente i fatti? No assolutamente. I fatti non li conoscono neanche quelli che in quegli anni c'erano e hanno visto tutto. Non li conoscono o li hanno dimenticati. E non hanno alcuna intenzione di informarsi per conoscerli. Non c'è niente da conoscere, sono i giudici che sono politicizzati. Ma io dico, ci sono delle sentenze? Ci saranno anche i fatti su cui tali sentenze si basano, ci saranno le prove, le testimonianze. Leggiamo le sentenze, guardiamo ai fatti, facciamoci un'opinione e poi parliamo di Craxi, Berlusconi e di chi volete voi. Ma non parliamo sulla base di simpatie e antipatie, sulla base del nulla. Parliamo sui fatti. Ma gli italiani sono troppo pigri per informarsi attivamente e qui la colpa è sempre della televisione berlusconiana.

Proposito per il nuovo anno: non parlare mai di ciò di cui non si conoscono i dettagli. Cercare sempre di conoscere i fatti prima di formarsi un'opinione. Sentire entrambe le campane e poi forgiarsi la propria. Lasciare le simpatie e antipatie agli ignoranti.