FiraCode: perché OpenType risulta utile anche per i programmatori

Fino a poco tempo fa credevo che i font non proporzionali non avevano bisogno di caratteristiche OpenType avanzate, ma il seguente progetto mi ha fato ripensare:

FiraCode | Monospaced font with programming ligatures 

Ma prima di vedere questo font, un po’ di contesto.

I programmatori usano tante combinazioni di caratteri semplici per marcare la sintassi dei linguaggi di programmazione che utilizzano. Cose del tipo

==>  
:= 
!=

eccetera sono frequenti… ma generalmente si vedono veramente male. Difficilmente unicode aggiungerà queste combinazioni come simboli proprio, ma la gente del progetto FiraCode ha creato una soluzione veramente ingegnosa: usare legature tipografiche e alternative contestuali in un font non proporzionale per migliorare così queste combinazioni di caratteri, e veramente ci sono riusciti!

Questo font funziona perfettamente con diversi editori di testo quali Kate e shell testuali in sistemi Linux quale Konsole. (come vedete, sono utente KDE). Nella pagina del progetto si trova una lista di compatibilità.

FiraCode è basata su Fira Mono e s’inspira in Hasklig (che a sua volta estende Source Code Pro… la belleza del software libero in azione!).

Annunci

LyX: prima riga di un paragrafo in maiuscoletto

Un’alternativa a utilizzare capolettere è iniziare un paragrafo con la prima riga tutta in maiuscoletto:

L’unico modo di avere questo in forma (semi) automatica che ho trovato è con il pacchetto magaz.

Questo pacchetto è un tanto «capriccioso» perché non solo non può essere utilizzato contemporaneamente con il pacchetto lettrine, non accetta neanche equazioni o formattazioni particolari. Però nella sua forma più semplice è veramente facile da utilizzare.

Nel preambolo LaTeX di un documento LyX si scrive

\usepackage{magaz}

e poi nel paragrafo che si vuole modificare si aprono due «scatolette TeX», una all’inizio del paragrafo con l’istruzione

\FirstLine{

e l’altra più avanti (non necessariamente alla fine del paragrafo, soltanto deve prendersi sufficiente testo per coprire la prima riga) con un

}

per chiudere tutto.

È importante notare che l’istruzione FirstLine deve trovarsi per forza all’inizio del paragrafo altrimenti ci darà errore.

È possibile fare si che il formato della prima riga sia diverso, modificando per esempio il font, ma siccome la breve documentazione del pacchetto risulta piuttosto chiara mi fermerò qui.

LyX: Cos’è e come si utilizza la microtipografia

Oggi parleremo di una questione puramente estetica. L’argomento è trovare il modo di far si che il testo creato in LyX, sia con LaTeX o con XeTeX, risulti «più bello».

Questo non ha un’utilità in se e infatti la maggior parte dei lettori non noteranno la differenza… il che vuol dire che saremo riusciti!

Cosa significa «microtipografía» e a cosa serve

Nell’introduzione del manuale del pacchetto microtype troviamo questa ispirata definizione (la traduzione a continuazione)

Micro-typography is the art of enhancing the appearance and readability of a document while exhibiting a minimum degree of visual obtrusion. It is concerned with what happens between or at the margins of characters, words or lines. Whereas the macro-typographical aspects of a document (i.e., its layout) are clearly visible even to the untrained eye, micro-typographical refinements should ideally not even be recognisable. That is, you may think that a document looks beautiful, but you might not be able to tell exactly why: good micro-typographic practice tries to reduce all potential irritations that might disturb a reader.

Microtipografia è l’arte di migliorare l’apparenza e la leggibilità di un testo perturbando il meno possibile la sua presentazione. È relazionato con cosa succede tra o ai bordi dei caratteri, parole o linee. Mentre che gli aspetti macrotipografici di un documento (il suo disegno) sono chiaramente visibili anche all’occhio non preparato, i miglioramenti microtipografici idealmente non dovrebbero essere riconoscibili. Cioè, lei dovrebbe pensare che un documento si vede bello, ma non dovrebbe essere capace di dire esattamente il perché: le buone pratiche microtipografiche tentano di ridurre tutte le potenziali irritazioni che potrebbero molestare il lettore.

Perfetto, l’idea è quella di modificare sottilmente il testo per far si che «si veda meglio», ma che chi lo veda non sia capace, in un primo analisi, di dire cosa è stata modificata. Ma, questo come si fa?

Bene, la prima cosa da dire risulta piuttosto forte: è incredibilmente semplice ingannare il nostro cervello. Consideriamo la seguente immagine, pressa dalla wikipedia:

Gli esagoni verdi formano una griglia completamente storta, vero? Falso: prendete un righello e lo vedrette. I piccoli punti confondono il nostro cervello il quale interpreta il patrone in forma sbagliata.

Ed è proprio questo tipo di «illusioni ottiche» quello che si presenta in un testo giustificato:

microtype-sin1

Guardate con attenzione il margine destro, non sembra «ondulato»? Proprio dove si trovano punti, virgole e trattini il testo sembra rientrare, vero? Falso ancora: il righello non mente!

Quello che succede qui è che i punti, virgole e trattini presentano «meno peso» che i caratteri precedenti e pertanto il nostro cervello interpreta l’immagine come se ci fossero «buchi» li. Guardiamo adesso questo testo:

microtype-con1

Adesso il margine destro sembra più «retto», vero? Ancora falso! Vediamo un dettaglio della seconda immagine

protrusion

Come può comprovarsi le virgole e i trattini (succede anche con i punti) «attraversano» il margine destro leggermente. In questa situazione i bordi delle linee sembrano più «pieni» e il nostro cervello interpreta il margine destro come più diritto, anche se non lo è. Il cambio è veramente minimo, ma migliora di tanto la presentazione.

Questa tecnica di microtipografia viene chiamata «protrusione». Non è l’unica, ma certamente è quella meno invasiva.

Un’altra tecnica è quella di deformare i caratteri per far si che occupino più o meno spazio orizzontale e così evitare che lo spazio tra parole sia diverso nelle diverse linee di testo. Si può modificare anche la distanza tra caratteri… infine, che le tecniche sono diverse.

Come si applica questa «microtipografia»

Caro lettore, non pensare nemmeno di tentare di avere qualcosa di simile in programmi di videoscrittura tradizionali come Writer o Word: semplicemente non è possibile. Mi dicono che Scribus permette di lavorare limitatamente con queste tecniche, ma non ho mai utilizzato questo programma e pertanto non posso commentare.

L’unica possibilità nel mondo F(L)OSS è LaTeX (e XeTeX, e LuaTeX…) con il pacchetto microtype, a cui documentazione si installa, in Linux, in

/usr/share/texmf/doc/latex/microtype/microtype.pdf

Il manuale occupa più di 240 pagine, ma non doviamo preoccuparci: in un uso normale le opzioni predefinite sono semplicemente perfette.

Per abilitare questo in LyX, in versioni fino alla 2.2.x, in Documento → Impostazioni → Preambolo LaTeX doviamo scrivere:

\usepackage{microtype}

A partire della versione 2.3 risulta sufficiente selezionare la corrispondente casella nel menu di configurazione dei font.

Tutto pronto, non c’è altro da fare. Questo funziona sia con LaTeX normale, con XeTeX o LuaTeX, anche se in questi due ultimi con alcune limitazioni: per esempio, al momento di scrivere questo articolo XeTeX offre soltanto supporto per protrusione.


Per approfondire

http://hstuart.dk/2007/11/27/microtypography/

https://en.wikipedia.org/wiki/Microtypography

Latin Modern: portando i font originali di Knuth all’era unicode

Donal Knuth non è soltanto un matematico, non è soltanto un programmatore, non è soltanto il creatore di TeX: lui anche ha sviluppato dei font. Nel volume  E di Computers & Typesetting descrive  i font «Computer Modern» che da quel momento sono stati e continuano ad essere i font predefiniti in buona parte dei documentclass LaTeX.

Il problema con Computer Modern è lo steso problema che si ha con tutti i font creati per (La)TeX in metafont: diventa una storia utilizzarli in qualsiasi lingua diversa dell’inglese.

La gente del gruppo GUST (gli trovammo al parlare dei font TeX Gyre) si ha dato dunque al lavoro di tradurre questi font in una «superfamiglia» in formato OpenType, offrendo supporto per più lingue senza perdere una delle caratteristiche più interessanti dei font originali: le diverse «dimensioni ottiche».

The Latin Modern (LM) Family of Fonts

NOTA: Gli utenti Linux con TeXLive installato sicuramente avranno questi font nei loro sistemi.

Trovate più informazione sulle «dimensioni ottiche» nel mio articolo sui concetti tipografici.

Il testo superiore (in grigio) fu creato in 10 pt e aumentato del 400% mentre che quello sotto fu creato in 5tp e aumentato del 800%

NOTA: L’unico modo di utilizzare queste dimensione ottiche e con XeTeX o LuaTeX (qualcuno ha detto qualcosa su LyX?…), non possono usarsi in Writer.

Oltre alle legature tipografiche normali e i numerali «stile antico», i font Latin Modern non offrono tantissime caratteristiche OpenType avanzate. Infatti, i veri maiuscoletti si trovano come un font indipendente ed è pertanto necessario definire una nuova famiglia di font per utilizzarle.

Oltre ai font mostrati nella schermata si ha Latin Modern Mono Light (una versione più leggera), Latin Modern Mono Light Condensed (una versione più stretta), Latin Modern Mono Prop (una versione con larghezza proporzionale del font monoespaciaz… 😯 ), Latin Modern Mono Prop Light ( 😯 😯 ), Latin Modern Mono Slanted (una versione inclinata, che non è lo stesso che il corsivo), Latin Modern Roman Demi (una versione seminegrassetto), Latin Modern Roman Dunhill (una versione per titoli grandi), Latin Modern Roman Slanted (una alternativa al corsivo), Latin Modern Roman Unslanted (una versione «raddrizzata» del corsivo… 😯 😯 😯 ), Latin Modern Sans Demi Cond (una versione semigrassetto e più stretta della Sans) e Latin Modern Sans Quotation (una versione più «larga», per testi piccoli).

Per ultimo si ha anche un font chiamato Latin Modern Math da essere utilizzato in XeTeX insieme al pacchetto unicode-math per scrivere le nostre formule.

Se si confronta la b di f(b) con la b del limite della integrale si vede che le diverse «dimensioni ottiche» si usano automaticamente.

In sintesi, una imponente famiglia di font.

Conoscere le caratteristiche OpenType di un font

In questo blog ci sono diversi articoli presentando font liberi e parlando delle loro caratteristiche OpenType. La domanda sorge spontanea: come si fa a capire quali caratteristiche OpenType si trovano in un font qualsiasi?

Oggi presenterò un modo valido e semplice per gli utenti Linux: il terminale virtuale.

Tutto si può fare con l’istruzione «otfinfo» che viene nel pacchetto «lcdf typetools» (nel mio sistema viene con texlive-lcdftypetools). L’uso risulta molto semplice:

otfinfo <opzione> /path/per/il/font

L’opzione -s ci darà le lingue supportate per il font mentre che -f ci darà quali opzioni sono disponibili.

Bisogna ricordare che se nel «path» del font si trova uno spazio bisogna aggiungere una barra prima.

Per esempio, per conoscere cosa offre il font Sukhumala Regular.otf istallato nella cartella ~/.fonts/s/ semplicemente si scrive nel terminale virtuale

otfinfo -f ~/.fonts/s/Sukhumala\ Regular.otf

che ci darà

afrc Alternative Fractions
c2pc Petite Capitals From Capitals
c2sc Small Capitals From Capitals
case Case-Sensitive Forms
clig Contextual Ligatures
dlig Discretionary Ligatures
dnom Denominators
fina Terminal Forms
frac Fractions
hlig Historical Ligatures
kern Kerning
liga Standard Ligatures
nalt Alternate Annotation Forms
numr Numerators
onum Oldstyle Figures
ordn Ordinals
ornm Ornaments
pcap Petite Capitals
salt Stylistic Alternates
sinf Scientific Inferiors
smcp Small Capitals
subs Subscript
sups Superscript

cioè, tutte le opzioni disponibili.

Per conoscere tutto ciò che ci offre il programma otfinfo è sufficiente scrivere

otfinfo -h

Con la lista pronta soltanto rimane prendere LibO Writer 5.3+ per provare come si vede, oppure utilizzare il servizio offerto da Pablo Impallari

«Trascinando» il file del font lì avremmo la possibilità di provare come si vede con le diverse opzioni OpenType.

Il codice di questo servizio può essere scaricato da GitHub per utilizzarlo localmente.

Il font Eau de Garamond

Abbinare tipografie in modo armonioso è un arte difficile. Alcuni sviluppatori ci offrono delle «famiglie» di font, come Libertinus, Source pro, eccetera. Ma quale font «sans» si abbina con un «garamond»? Dalla gente che produce Cormorant arriva una proposta interessante:

Eau de Garamond

Questo font è uno sviluppo originale di Christian Thalmann che prende i concetti di Claude Garamond e li «distilla» per creare un font senza grazie veramente unico:

Cosi si vede insieme a EBGaramond e Cormorant Garamond

Il progetto si trova ancore nelle prime tappe di sviluppo e pertanto non ha un «release ufficiale», ma si può scaricare dal repositorio (il bottone Clone or download) e così ottenere l’ultima versione di sviluppo.

Più sul supporto OpenType in LibreOffice 5.3+

Un paio di messi fa ho commentato che LibO 5.3ci ha regalato il supporto OpenType completo. Questo certamente vuol dire che la prossima edizione di certo libro (quando arrivi) verrà con il capitolo sulla tipografia completamente riscritto… E beh, mentre aspettiamo ho pensato che sarebbe una buona idea scrivere un articolo più dettagliato sull’argomento.

Per utilizzare le specialità OpenType in LibO 5.3+ si deve aggiungere una «etichetta» al nome del font. Per esempio, per attivare simultaneamente i set stilistici 1 e 11 in Vollkorn, quando viene selezionato il font per il testo doviamo scrivere

Vollkorn:ss01&ss11

I due punti iniziano la «sezione delle etichette» nel nome del font e il segno & separa le etichette utilizzate.

Però c’è di più. Si può anche disabilitare qualche opzione del font. Per esempio, il font Sukhumala ha delle strane legature contestuali che sostituiscono aa con ā, ii con ī e uu con ū. Per disabilitare le legature contestuali in Sukhumala è sufficiente chiamare l’etichetta corrispondente a quella caratteristica, «clig», con un meno davanti:

Sukhumala:-clig

Tutto lì. Certamente non è un sistema user friendly, specialmente considerando che la casella per il nome del font può risultare un tanto piccolo per presentare il nome completo del font con tutte le etichette… ma funziona! E questo è molto meglio di quello che (non) c’era prima: un passo alla volta, che così si arriva!

Come sempre, per una lista delle etichette OpenType disponibili la pagina di Dario Taraborelli risulta un magnifico punto di riferimento.

Solo una cosa da considerare: non tutti i font presentano queste specialità! Dunque, se dopo aver aggiunto un’etichetta niente è cambiato molto probabilmente il problema sia del font e non di LibO 😉

Cormorant: una «garamond per i titoli»

Oggi vi porto una famiglia di font con licenza libera (SIL) ispirata nei classici disegni di Claude Garamond, la quale è stata pensata specialmente per essere utilizzata in testo di grandi dimensioni (titoli, eccetera):

Cormorant, di Christian Thalmann.

Il font presenta un elevato contrasto e numerosi dettagli fini. Si presenta inoltre in più varianti:

Cormorant-2

Ognuna di queste versioni si presenta in diversi «pesi», dal leggero al grassetto, normali e in corsivo.

Il font offre vero maiuscoletto, sia come caratteristica OpenType che in un font indipendente. Ci offre anche legature tipografiche, set stilistici, varianti… la lista è importante!

È possibile scaricare questo font dalla pagina GitHub del progetto, ma risulta importante notare che il file Cormorant_Install_vX.Y.zip offre soltanto le versioni ttf dei font: per ottenere gli otf è necessario scaricare il file che dice «source code», il quale viene con i ttf, otf, woff e codice sorgente.

Dato che è un font peri  titoli bisogna abbinarlo a un altro font per il testo, per esempio EB Garamond oppure Flanker Griffo.

I font DejaVu

La

famiglia di font DejaVu

è un discendente diretto di Bitstream Vera… e indiretto anche, che con il tempo ha incorporato altri progetti basati su Vera.

L’obiettivo principale del progetto è coprire il meglio possibile il mappa Unicode. Offre sei varianti

DejaVu Serif

DejaVu-1

DejaVu Serif Condensed (una versione più «stretta» della precedente)

DejaVu Sans

DejaVu-2

DejaVu Sans Condensed (una versione più «stretta» della precedente)

DejaVu Sans Light (una versione con linee più «magre» della precedente)

DejaVu Sans Mono

DejaVu-3

A partire della versione 2.36 questa famiglia di font include un contributo del gruppo GUST (utenti LaTeX di Polonia): il font matematico DejaVu Math TeX Gyre.  Questo font include la tabella OpenType Math e perciò può essere utilizzata con unicode-math per scrivere formule in XeTeX/LuaTeX.

DejaVuMath

Aldilà di alcune legature tipografiche basiche, questi font non offrono caratteristiche OpenType avanzate. In future versioni si avrà numerali di stile antico e vero maiuscoletto, ma non è detto quando.

Anche se non offre tante funzioni avanzate (al meno per il momento), la sua ampia copertura delle tabelle unicode, il suo disegno «generoso» (il corpo ampio rispetto delle linee ascendenti o discendenti) che la tornano leggibile in qualsiasi situazione e il fatto di essere una «famiglia» che offre un aspetto coerente in tutte le sue varianti li dona un grande interesse ai font DejaVu. Per tenerla presente nei nostri progetti.

L’ultima versione del font può essere scaricata dalla pagina GitHub del progetto.

I font TeXGyre

Il progetto TeX Gyre , sviluppato dal gruppo GUST (il gruppo utenti TeX di Polonia) offre una serie di font basati nei font PostScrip distribuite tempo (ma tanto) fa con Ghostscript 4.00. I font sono

Adventor, un font «sans»

Bonum, con grazie (serif)

Chorus, decorativa, offre soltanto «peso» (normale)

Cursor, un font di larghezza fissa

Heros, un altro font «sans». Offre anche una versione «condensata» (Heros CN) più stretta

Pagella, con grazie, offre anche un font matematico per utilizzare in XeTeX/LuaTeX con unicode-math

Schola, con grazie

Termes, con grazie, offre anche un font matematico per utilizzare in XeTeX/LuaTeX con unicode-math

Risulta anche possibile scaricare la collezione completa, anche se per gli utenti Linux è molto più semplice utilizzare i repositori che sicuramente si trovano lì… infatti, sicuramente sono già installati nel sistema!

In confronto con i font originali (e con altre varianti come i font URW), TeX Gyre offre una mappa di caratteri più ricca e i due font matematici già menzionati, oltre di essere disponibili in formato OpenType.

texgyre

Di seguito un esempio un po’ particolare del uso di Pagella Math nelle formule:

texgyrepagellamath