Estensioni per Writer (e Draw): TexMaths

Oggi vi presento una estensione che permette di inserire espressioni matematiche preparate con LaTeX in LibreOffice Writer e Draw (per qualche motivo non funziona con Apache OpenOffice), TexMaths:

TexMaths nella pagina delle estensioni di LibreOffice

La pagina del progetto

Questa estensione aggiunge una nuova barra degli strumenti

texmat-1

con quattro bottoni. Il primo serve pera inserire una equazione «normale» mentre che il secondo ci presenta una equazione numerata. Entrambi i bottoni aprono lo stesso editore

texmat-2

il quale ci permette di inserire del codice LaTeX prima di premere il bottone corrispondente per creare la espressione.

Il principale vantaggio di TexMaths è che permette di modificare velocemente una espressione già inserita semplicemente selezionandola e premendo il primo bottone della barra degli strumenti.

Il terzo bottone ci offre le opzioni di configurazione

texmat-3

La prima scheda può essere lasciata così, che sono le direzioni degli eseguibili LaTeX e del programma per creare l’immagine SVG con la espressione. Nella seconda scheda possiamo definire le opzioni della numerazione delle equazioni, se vogliamo anteporre una parola al numero, eccetera.

I «livelli» stabiliscono il modo in cui si presenta la numerazione, se correlativa in tutto il documento oppure con lo schema <numerazione del livello>.<numero della equazione> con quest’ultimo reinizializzando ogni volta che <numerazione del livello> cambia.

L’ultima scheda permette di assegnare tasti di scelta rapida alla estensione per semplificare il lavoro.

Con differenza, TexMaths è la miglior opzione per avere espressioni matematiche di qualità in un documento Writer. O in uno Draw, che anche lì funziona.

Come si vede nella seconda schermata, risulta possibile modificare il preambolo LaTeX utilizzato per il sistema, e perciò in principio possiamo fare tutte le sciocchezze che ci vengano in mente per ottenere la formattazione desiderata 😉

La estensione non è ancora tradotta all’italiano (volontari?) ma risulta molto semplice da utilizzare anche se in inglese.

LyX: Cambiare lo stile di pagina del ambiente «Parte»

In un articolo precedente aviamo visto come si creano e applicano stili di pagina in LaTeX per riuscire così a cambiare il contenuto della riga d’intestazione o del piè di pagina d’una parte del documento. Oggi affronteremo un problema simile ma di soluzione più complessa: cambiare lo stile di pagina associato all’ambiente Parte.

L’ambiente Parte, utilizzato per aggruppare capitoli nelle documentclass per libri, ha associato uno stile di pagina particolare il quale potrebbe mostrare, a dipendenza della classe di documento scelta un piè di pagina con il numero di pagina. Come si fa a eliminare questo numero?

Sfortunatamente quello visto nell’altro articolo non funziona qui. Il problema è che l’ambiente Parte sta anche associato con delle interruzioni di pagina, perciò qualsiasi istruzione del tipo \thispagestyle inserita prima o dopo dell’ambiente sarà applicata alla pagina precedente o posteriore e non a quella che c’interessa. Non si può neanche utilizzare l’istruzione \thispagestyle dentro dell’ambiente Parte perché quest’istruzione non può essere annidata. Dunque? Si dovrà ridefinire l’ambiente Parte.

Ho trovato il seguente codice in questo argomento del forum LaTeX Community e in sostanza quello che fa è cambiare la definizione dell’ambiente \part (Parte) assegnandole lo stile di pagina chiamato empty che non ha ne riga d’intestazione ne piè di pagina.

La complessità del codice viene da tentare di «coprirsi» per qualsiasi eventualità, tenendo conto che il documento può essere a singola o doppia faccia, in una o più colonne: per quello ci sono così tanti comandi «if».

Per utilizzarlo in LyX come al solito apriamo Documento → Impostazioni → Preambolo LaTeX per scrivere:

% per lasciare le pagine di \part senza piè o intestazione di pagina

\makeatletter
\renewcommand\part{%
  \if@openright
    \cleardoublepage
  \else
    \clearpage
  \fi
  \thispagestyle{empty}%
  \if@twocolumn
    \onecolumn
    \@tempswatrue
  \else
    \@tempswafalse
  \fi
  \null\vfil
  \secdef\@part\@spart}
\makeatother

Fatto! E sì, LaTeX può essere strano…

Writer: un esempio estremo dell’uso delle variabili

Considerando che la traduzione del mio libro su Writer avanza a fatica, parlerò oggi di come approfittare una caratteristica avanzata per risolvere un problema molto particolare.

Qualche tempo fa, un utente di ask.libreoffice chiese per un problema molto particolare: lui voleva avere un controllo assoluto del contenuto del piede pagina del suo documento, al punto di riuscir a decidere pagina per pagina il suo contenuto ma senza dover creare una montagna di stile di pagina.

La mia risposta, accettata dall’utente, è stata l’utilizzo delle variabili.

Le variabili possono crearsi dal menù Inserisce → Comando di campo → Altri campi.

variabili

Con Imposta variabile possiamo creare qualsiasi tipo de variabile per immagazzinare qualsiasi testo o numero. Con Mostra variabile è possibile scegliere tra le variabili create e inserire un «riferimento» che ripeterà il valore impostato nella creazione. Per esempio possiamo creare la variabile al inizio del documento e poi fare riferimento al suo contenuto in qualsiasi parte, per esempio nel piè di pagina.

Il punto importante, quello che fa che le variabili siano così potenti e flessibili, è che noi adesso possiamo andare a un altro posto del documento, tornare su Imposta variabile ma invece di crearne una nuova scegliere quella vecchia della lista Seleziona per poi modificare il suo valore e introdurla in quel nuovo punto del documento.

Dal primo inserimento fino al secondo, il piè di pagina farà vedere il primo valore mentre che dal secondo inserimento si aggiornerà. Questo, sommato al fato che noi possiamo nascondere la definizione della variabile (mettendo lo spunto su Invisibile) ci permette di fare dei piccoli miracoli nei nostri documenti con un minimo di sforzo.

Dal vincolo che si trova nel secondo paragrafo di questo articolo è possibile scaricare un file di esempio.

Charis SIL: un font che accetta qualsiasi sfida

Oggi presento un altro font SIL, con grazie, specialmente sviluppato per funzionare correttamente in qualsiasi supporto, presentandosi altamente leggibile e gradevole tanto in schermi a bassa risoluzione come in mezzi stampati d’alta qualità:

Charis SIL

Offrendo le stesse caratteristiche OpenType/Graphite di Gentium, Charis SIL ha il vantaggio di presentare le versioni grassetto e grassetto corsivo.

IMPORTANTE: Le ultime versioni di questo font (dal 5 in poi) no funzionano correttamente in Apache OpenOffice, solo in LibreOffice si ha accesso alle caratteristiche tipografiche avanzate.

Charis

Come si può vedere nella schermata, anche qui si tiene una versione «normale» e un’altra «compatta» (con minore distanza tra le linee).

NOTA: Questo interlineato è importante soltanto in Writer. LaTeX ha un modo tutto suo di definire l’interlineato (del quale parleremo in un futuro articolo su LyX)

E anche qui, come con Gentium, si ha pure una versione WOFF per utilizzare nel web.

La documentazione che accompagna questo font indica i nomi delle «etichette», tanto OpenType come Graphite necessarie per attivare le caratteristiche speciali.

Math: trucco per sostituire OpenSymbol con un altro font matematico

Bisogna ammetterlo: il font OpenSymbol utilizzato dal editore di formule matematiche Math per i simboli (caratteri greci, operatori, eccetera) è un po’ brutto. Onorando la promessa fata in un articolo anteriore troverete qui un trucco sporco, ma piuttosto semplice, per sostituire questo font con un altro.

In Strumenti → Opzioni → LibreOffice → Tipi di caratteri si deve attivare l’opzione Applica tabella di sostituzione. Adesso è possibile definire una sostituzione tale e come quella che si vede nella seguente schermata (pacchetto italiano installato!)

GreekCharSubstitution

Qui ho utilizzato Libertinus Math, possiamo però utilizzare qualsiasi altro font matematico.

Speriamo che in un futuro ci sia una forma più «elegante» di fare questa sostituzione:

Bug 101174 Enable means to change Formula Editor default font from OpenSymbol via Expert Configuration

Per il momento ne abbiamo soltanto questo 😉

NOTA IMPORTANTE: i simboli utilizzati in modo predefinito da Writer per gli elenchi puntati provengono anche del font OpenSymbol, perciò fatte attenzione… 😉

LyX: Creare (e utilizzare) stili di pagina

Proviamo a immaginare un documento con righe d’intestazione e piè di pagina elaborati e con la seguente struttura

  1. Indice con pagine numerate con numeri romani
  2. Un «capitolo» non numerato che contenga un’introduzione all’opera
  3. Prima parte
  4. Primo capitolo numerato

In questo sito ci sono già degli articoli parlando del modo in cui si può numerare le pagine dell’indice con numeri romani e dei passi necessari per lavorare sulla configurazione della riga d’intestazione e piè di pagina. Consiglio vivamente di leggere questi due articoli prima di continuare!

Per ottenere gli ambienti Parte e Capitolo è necessario utilizzare una documentclass per libri. Un capito non numerato si crea selezionando l’ambiente Capitolo* (con l’asterisco), perciò fino a qui tutto sembra semplice…

Il problema con tutto questo, perché un problema ci dev’essere altrimenti non ci sarebbe un articolo, ha diverse parti. Per cominciare l’introduzione creata con il capitolo non numerato non risulta inclusa nell’indice e per continuare l’informazione disponibile per la riga d’intestazione o piè di pagina dell’introduzione farà vedere «Indice generale» invece d’«Introduzione». Questo secondo problema è d’aspettarsi considerato il primo: la riga d’intestazione non sarà aggiornata perché essendo il capitolo «non numerato» (e perciò non presso in considerazione per l’indice) in realtà non ci sarà nuova informazione disponibile.

Per risolvere tutto questo sarà necessario creare uno stile di pagina con l’informazione che ci serva e dirle manualmente a LaTeX che deve aggiungere una nuova voce nell’indice. Tutto questo dev’essere fatto con codice LaTeX puro e duro. Peccato…

Creando e usando stili di pagina… e correggendo l’indice

Dando per sicuro che il lettore si ricorda di come lavorare con le righe d’intestazione e piè di pagina dirò semplicemente d’andare a Documento → Impostazione → Preambolo LaTeX e scrivere quello che segue

% lo stile di pagina normale, con la sua riga d'intestazione
\pagestyle{fancy}
\fancypagestyle{normal}{%
    \fancyhead{} % pulisce la riga d'intestazione
    \fancyhead[RO,LE]{\thepage}
    \fancyhead[LO]{\nouppercase{\leftmark}}
    \fancyhead[RE]{\nouppercase{Nuestro gran libro}}
    \fancyfoot{}
}

% lo stile di pagina speciale 
\fancypagestyle{speciale}{%
\fancyhead{} % pulisce la riga d'intestazione
    \fancyhead[RO,LE]{\thepage}
    \fancyhead[LO]{\nouppercase{Introduzione}}
    \fancyhead[RE]{\nouppercase{Il nostro gran libro}}
    \fancyfoot{}
}

Questo ridefinisce lo stile di pagina del corpo del testo e crea uno nuovo chiamato «speciale» che sarà quello utilizzato nel capitolo non numerato, dandogli a entrambi gli stili l’informazione necessaria.

Adesso, proprio nel punto in cui vogliamo l’indice di contenuti si inserisce una «scatoletta TeX»

LyX-TeX

e al suo interno

\frontmatter 
\setcounter{page}{1}
\pagestyle{normal}

Con questo diciamo a LaTeX che quello che viene a continuazione è lo spazio dedicato all’indice. Sotto della scatoletta TeX Inserisci → Elenco/Indice → Indice generale e a continuazione una seconda scatoletta TeX con

\mainmatter 
\setcounter{page}{1}

ambientiQuest’ultimo codice indica che a questo punto inizia l’argomento principale del libro.

A questo punto s’inserisce l’ambiente «capitolo non numerato» (mostrato nell’immagine a sinistra), scrivendo il titolo che ci serva, per esempio «Introduzione». Ricordatevi d’utilizzare lo stesso titolo definito per lo stile di pagina «speciale»! 🙂

Immediatamente sotto questo titolo si deve inserire una nuova scatoletta TeX con il seguente contenuto

\pagestyle{speciale}
\addcontentsline{toc}{chapter}{Introduzione}

La prima riga assegna lo stile di pagina «speciale» a quello che segue mentre che la seconda aggiunge una linea nell’indice dei contenuti puntando a quella pagina, assegnando un livelo (chapter) e il contenuto scelto (Introduzione, anche qui risulta importante il ricordarsi di mantenere la coerenza…)

Finita la stesura dell’introduzione è il momento d’andare avanti con il libro. Dopo applicare (se ci serve) l’ambiente «Parte» e a continuazione l’ambiente «Capitolo» (Senza l’asterisco!) s’inserisce un’altra scatoletta TeX con il seguente codice

\pagestyle{normal}

così tutto torna «alla normalità».

Per il resto del documento si procede normalmente senza altre scatolette TeX… al meno per questi problemi 😉

Vincoli

Creare e utilizzare stili di pagina in LaTeX

http://tex.stackexchange.com/questions/37574/different-headers-for-different-chapters

Aggiungere all’indice un capitolo non numerato:

http://wiki.lyx.org/FAQ/TOC#addcontentsline

LibO 5.2: Math e i caratteri greci

Da quando Math è Math (o al meno da quando OpenOffice.org utilizza il font OpenSymbol, che è già tanto tempo) ha un problema. Beh, in realtà di più, ma uno in particolare: i caratteri greci.

La antica legge mai scritta per le formule matematiche è che i caratteri greci in minuscole devono mostrarsi in corsivo mentre che quelli in maiuscolo devono essere «normali». E certo, Math non ha mai rispettato questa legge: per anni presentava tutti i caratteri greci in corsivo, senza possibilità di convertirli in «normali». Questo venne «risolto» (che è un modo da dire) a un certo punto (che non ricordo quale) quando OpenOffice Math introdusse la differenza tra «%CarattereGreco» e «iCarattereGreco», differenza ereditata da LibreOffice Math. Per esempio, «%beta» ci da β mentre che «ibeta» risulta in β, «GAMMA» scrive Γ mentre che «iGAMMA» risulta in Γ.

GreekCharOriginal

Il comportamento predefinito dei caratteri greci in Math. Si, lo so, mi manca installare il pacchetto in italiano…

Questo cambio certamente introdusse pure dei problemi di compatibilità con i vecchi documenti, i quali si vedono adesso in modo diverso, ma comunque sbagliato.

A non temere, LibO Math 5.2 finalmente offre una soluzione! Vediamo come implementarla.

Strumenti → Opzioni → LibreOffice → Avanzate → Apri la configurazione avanzata. Lì si cerca la variabile numerica GreekCharStyle e si fa doppio clic per modificare il suo valore

GreekCharStyle

Modificando il valore di GreekCharStyle

Come vediamo, il valore predefinito è zero e con quello si ha il comportamento «tradizionale», cioè, %Carattere da normale e %iCarattere da corsivo. Questa variabile accetta pure i valori 1 e 2 ed è proprio quest’ultimo quello che ci interessa: modificandolo come mostrato nella schermata posiamo dimenticarci finalmente delle versioni con la «i» dei caratteri greci, che con i nomi tradizionali si tiene il comportamento giusto.

GreekCharCorrecto

Il comportamento dei caratteri greci in Math con GreekCharStyle = 2

Come si vede adesso tutto è più «logico». Tranne per il «kerning», s’intende, ma quello è un altro problema.

NOTA: questa variabile esiste da molto tempo, però è anche da molto tempo che non funzionava. La novità in 5.2 è che finalmente fa quello che deve.

Molto probabilmente quest’opzione verrà attivata in modo predefinito in future versioni di LibO. Più informazione:

Bug 52225 Greek symbols default to non-italic, need additional control of the GreekCharStyle property

Il lettore attento sicuramente avrà notato che i caratteri greci che compaiono nell’ultima schermata sono diversi di quelli nella prima. Ha cambiato LibO 5.2 il font OpenSymbol per un altro migliore? Certamente no, ma noi possiamo «sostituirlo» in modo semplice per un altro…

Ma quello lo vedremo in un prossimo articolo.

Gentium: un font dello spirito internazionale

Questa serie d’articoli sui font con licenza libera non poteva andare avanti senza parlare dei prodotti di SIL International, i creatori della licenza OFL, sicuramente la più utilizzata per creare font liberi.

E per iniziare a parlare dei font SIL che meglio che

Gentium

un completissimo font con supporto per quasi tutte le lingue che usano l’alfabeto latino, cirillico e greco.

Prima d’andare avanti, è importante notare che questo font viene in più versioni:

Gentium Plus: la più completa dal punto di vista dei caratteri coperti e caratteristiche «intelligenti» (legature, caratteri alternativi, vero maiuscoletto, eccetera). Per «contra» non ha la versione in grassetto (offre soltanto le versioni normale e corsiva) e ha un interlineato predefinito piuttosto «generoso».

NOTA: Questo interlineato è importante soltanto in Writer. LaTeX ha un modo tutto suo di definire l’interlineato (del quale parleremo in un futuro articolo su LyX)

Gentium Plus Compact: uguale a quella precedente, però con un interlineato predefinito più discretto

Gentium Basic: una versione antica di questo font, con meno caratteristiche OpenType/Graphite, meno caratteri coperti, però con grassetto e grassetto corsivo

Gentium Plus Web: i font in formato woff per utilizzare nel web

Gentium

Tutte le caratteristiche avanzate di Gentium Plus sono disponibili sia in formato OpenType che Graphite, perciò si può utilizzare tutto il potenziale di questi font non solo in XeTeX ma anche in Writer.

Alcune cose mancano, però: non ha varianti dei numerali, veri apici o pedici o vere frazioni.

IMPORTANTE: Writer ha la brutta abitudine di simulare senza preavviso gli stili di font mancanti. Questo significa che se viene utilizzato Gentium Plus e si sceglie grassetto o, peggio ancora, grassetto corsivo Writer ci darà una versione distorta del font per tentare si simulare queste forme e che, a dire il vero, si vede piuttosto male. Se vogliamo utilizzare Gentium e risulta necessario il grassetto per alcuni frammenti si dovrà utilizzare uno stile con Gentium Basic lì.

IMPORTANTE 2: Le ultime versioni di questo font (dal 5 in poi) no funzionano correttamente in Apache OpenOffice, solo in LibreOffice si ha accesso alle caratteristiche tipografiche avanzate.

La documentazione che accompagna questo font indica i nomi delle «etichette», tanto OpenType come Graphite necessarie per attivare le caratteristiche speciali