Indice del libro

Un documento non è soltanto testo, immagini o tabelle. Un documento può contenere anche elaborati diagrammi (parleremo su questo nel prossimo capitolo) o espressioni matematiche: per quest'ultimo esiste Math.

Figura 55: Math in pieno lavoro. Il pannello a sinistra permette di inserire velocemente le istruzioni, le quali sono classificate da un menù, mentre il pannello inferiore è dove «si lavora» per costruire le formule. Le istruzioni sono anche disponibili con un clic destro sull'area di lavoro. Il risultato si può vedere in tempo reale nel documento.

Inserisci → Oggetto → Formula crea un oggetto Math in Writer, pronto ad accettare le nostre espressioni matematiche.

Math lavora in un modo diverso agli editori di equazioni di altri programmi: anche se ci sono menù a tendina e bottoni per scegliere quello che serve, Math è sostanzialmente un editore di testo semplice che traduce istruzioni in formule, come si vede nella Figura 55 di seguito.

Prima che il lettore si spaventi devo dire che costruire le equazioni in «modalità testo» (metodo che non sorprenderà a chi viene da LaTeX) è molto più semplice che con una metodologia basata soltanto nei menù, soprattutto nelle espressioni complesse dove ci sono tanti elementi «annidati» come la definizione per parti della funzione g che si vede nella figura.

Math è uno strumento adeguato per il suo lavoro, piuttosto filessibile e che permette di scrivere espressioni complesse con relativamente poco sforzo. Math però ha anche delle limitazioni importanti: non usa gli stili, la configurazione predefinita si applica soltanto a nuovi oggetti, non a quelli già inseriti, non funziona all'interno di quadri di testo in Draw… infine, diversi problemi.

Ma si può però lavorare (infatti, ho pubblicato un libro di fisica utilizzandolo senza maggiori problemi), perciò in questo capitolo vi farò vedere alcuni consigli per poter usarlo senza troppe sofferenze. Dobbiamo tener presente, però, che si deve sempre utilizzare lo strumento giusto per il lavoro e pertanto se dobbiamo scrivere una tesi di fisica o matematica LaTeX (sia utilizzando una opportuna estensione per Writer o creando con con questo sistema tutto il documento — soprattutto se viene utilizzato LyX) sarà la miglior opzione. Però al di là di questi casi «estremi» che io steso ho vissuto, il campo di situazioni in cui Math può risultare di utilità è veramente grande.

Concetti generali su Math

modifica
 
Figura 56: L'aiuto di Math

Nel menù Aiuto → Guida di LibreOffice (oppure, semplicemente F1), se si sceglie nel menù a tendina a sinistra «LibreOffice Math» e nella scheda Indice, sotto Termino cercato si scrive — senza virgolette— «Formula;tabelle di riferimento» (dopo del «;» non ci va spazio) si può trovare una lista delle istruzioni utilizzate da Math per costruire le equazioni. Consiglio di stabilire un «segnalibro» per quella pagina perché sarà di consultazione obbligata quando si inizia a lavorare con Math (Figura 56).

I file d'aiuto di LibO non vengono installati in modo predefinito, assicuratevi di scaricarli e installarli!

La gran maggioranza di queste istruzioni sono veramente semplici e non hanno bisogno di particolari chiarimenti, perciò in questo capitolo parlerò soltanto di quei concetti che risultano «complicati » per i nuovi utenti. Vedrà pertanto il lettore che in alcuni esempi a seguire ci saranno elementi non definiti nel testo, ma questo non necessariamente sarà per trascuratezza da parte mia: più che altro risulterà un invito a rivisitare la documentazione corrispondente.

Realizzando un clic destro nell'area di lavoro di Math l'utente troverà anche un menù contestuale che presenta, perfettamente organizzate, le principali funzioni di Math.

Testo semplice

modifica
 
Figura 57: Virgolete doppie e singole in Math

Ci sono delle combinazioni di caratteri e/o simboli che sono utilizzati da Math per scopi particolari che vedremo più in giù.

Per esempio, «sum» serve per inserire una sommatoria e «int» per un integrale. Il simbolo % è utilizzato per indicare altri simboli: %alfa in Math inserirà un α, mentre che %ialfa inserirà α (cioè, un alfa in corsivo). Ma, cosa succede se vogliamo inserire delle catene di testo oppure altri simboli?

La forma più semplice di inserire «testo puro» è utilizzare le virgolette doppie: "%" inserirà il simbolo % mentre "sum" inserirà i caratteri «sum» senza convertirli in una sommatoria.

Questo può anche essere utilizzato per far si che il testo inserito non venga considerato come «variabile» per così evitare che passi a corsivo.

E se vogliamo inserire le virgolette doppie? Potremmo, per esempio, avere bisogno d'inserire un angolo come 3º2'3"…

Oltre ad aggiungere un nuovo simbolo in Math (più in giù vedremo come si fa questo, che non è precisamente evidente) il modo più semplice e quello di racchiudere due virgolette singole con delle virgolette doppie, scrivendo

3"º"2"'"1"''"

come si vede nella Figura 57.

Pure le virgolette singole si vedono meglio se inserite come testo puro.

Operatori e relazioni

modifica

Se nell'editor di Math si scrive semplicemente un uguale senza niente prima o dopo, Math darà errore mostrando due punti interrogativi in rosso. Lo stesso succederà con qualsiasi altra relazione (<, <=, eccetera). Se si scrive sum per introdurre una sommatoria (o int per un integrale, o…), ma non scriviamo niente dopo comparirà anche questo punto interrogativo. Lo stesso se viene scritto a^ senza definire l'esponente.

Il motivo di tutto questo e che tanto le relazioni (=, +, –, <, eccetera) come gli operatori (sum, int, lim, eccetera) necessitano di argomenti: non ha senso scrivere un uguale senza niente che venga uguagliato, o una sommatoria senza il termine generale da sommare.

Ma ogni tanto risulta necessario scrivere un «+» per indicare la carica di uno ione, per esempio, in quel caso le virgolette doppie vengono in aiuto:

"Na"^"+"

ci darà Na+.

Le virgolette doppie possono anche essere utilizzate per racchiudere «il nulla»:

a = ""

ci darà a=

Alcuni operatori accettano «attributi». Per esempio, le istruzioni from e to si possono utilizzare per stabilire dei «limiti» come nel seguente esempio:

sum from{n=1} to infty a_n

È possibile definire degli «operatori temporanei» utilizzando le istruzioni oper e boper con un carattere qualsiasi. Per esempio:

oper P from {n=1} to infty Q_n

Gruppi e parentesi

modifica

A volte per scrivere espressioni del tipo   risulta necessario «raggruppare» termini perché

1 over a + b

ci darà  

Il modo da raggruppare termini in Math è utilizzare le parentesi graffe { }:   si scrive

1 over {a + b}

È importante che i gruppi siano «chiusi»: scrivendo soltanto una delle parentesi ci darà errore.

Inserendo una parentesi grafa da apertura Math inserirà automaticamente quella di chiusura, lasciando un paio di spazi in attesa di contenuto.

Lo stesso accade con le parentesi tondi, quadre e tutto il resto: devono trovarsi in coppie.

La miglior forma di costruire parentesi è utilizzare le istruzioni left e right, le quali ci permettono di avere parentesi scalabili. Qualche esempio:

( a over b )  
left ( a over b right )  

Le istruzioni lbrace e rbrace danno le parentesi graffe sinistra e destra, rispettivamente:

left lbrace a over b right rbrace  

E se vogliamo soltanto una parentesi? L'istruzione none viene in aiuto:

left ( a over b right none  

Non siamo limitati alle coppie tradizionali di parentesi:

left ) a over b right lline  

dove lline rappresenta la linea verticale.

Per il fisico quantistico che vive in noi c'è anche l'istruzione mline:

left langle x mline
%psi right rangle
 

dove langle e rangle rappresentano i parentesi angolari di sinistra e destra, rispettivamente.[1]

Grandezze, colori e interruzioni di linea

modifica

Grandezze

modifica

Possono essere controllate con l'istruzione size.

Esistono due metodi per utilizzare questa istruzione: dando il valore assoluto in punti oppure un fattore che modifichi la grandezza predefinita. Per esempio, se il font predefinito in Math e di 12 punti, le espressioni

size 18 {espressione}

size *1,5 {espressione}

daranno lo stesso risultato perché 18 è proprio 1,5 volte di più che 12.

È possibile cambiare il colore di una espressione Math, o di solo una parte della espressione, utilizzando l'istruzione color in questo modo:

color <il colore> {espressione}

La lista dei colori è ampia, però limitata. Il modo migliore per sceglierli è utilizzare il pannello con le istruzioni Math visto nella Figura 55 selezionando Attributi del menù.

Interruzioni

modifica

Nell'esempio della Figura 55 si vede un'istruzione chiamata newline. Quest'istruzione inserisce un interruzione linea permettendo di costruire espressioni «a più righe».

Si deve tenere presente che newline non può essere utilizzato all'interno di coppie di parentesi o altre cose che devano essere «chiuse» come le virgolette, i gruppi oppure le istruzioni appena viste size e color. Per costruire, per esempio, un'espressione con solo una parentesi d'apertura nella prima riga e solo uno di chiusura nella seconda, dobbiamo farla nel seguente modo:

left ( "prima riga" right none

newline

left none "seconda riga" right )

mentre se si utilizzano le istruzioni size e color queste dovranno essere ripetute in ogni riga.

Formati «strani»

modifica

Gli esponenti possono essere introdotti utilizzando le istruzioni mostrate nei seguenti esempi:

A_b  
A^b  
A lsub b  
A lsup b  
A csub b  
A csup b  

È possibile introdurre delle matrici in Math con l'istruzione matrix:

matrix{a # b ## c # d}

 

Come si può vedere nell'esempio, il cancelletto semplice separa colonne mentre che quello doppio separa righe.

Un'altra istruzione molto utile è stack, la quale funziona come una matrice colonna:

stack{a # b # c}

 

Per parlare di insiemi di numeri ci sono le istruzioni

setN setZ setQ setR setC  

L'opzione, all'interno di Math, che viene attivata con Formato → Modo testo permette di passare da questo:

 

utile per equazioni che si trovano in un paragrafo indipendente, a questo:   che si vede meglio in mezzo al testo.

Attributi vari

modifica

Un esempio vale di più che mille spiegazioni, perciò qui va il mio invito al lettore di tentare di capire cosa fanno le seguenti istruzioni: phantom, bold, italic, nitalic. Di seguito un caso «più difficile»:

vec a cdot vec b = a_x b_x + a_y b_y

newline

alignl phantom {vec a cdot vec b} = abs{vec a}abs{vec b}cos %alfa

 

 

Scegliere i font predefiniti degli oggetti Math

modifica

Il menù che si apre quando da un oggetto Math si seleziona Formato → Tipi di carattere risulta un tanto confuso: i menù a tendina disponibili per ogni tipologia di font (variabili, funzioni, numeri, testo…) offrono soltanto il font utilizzato in quel momento.

Per modificare quei font è necessario selezionare la categoria da modificare con il menù a tendina del bottone Cambia: soltanto così si presenterà un menù che permette di scegliere il font e i suoi attributi (grassetto, corsivo).

Dopo realizzate le modifiche non dobbiamo dimenticarci di premere il bottone Predefinito, altrimenti le modifiche si applicheranno soltanto a quell'oggetto Math.

Per il momento non c'è un modo diretto di modificare il font utilizzato per i simboli (caratteri greci, simboli matematici):

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

Il menù che si presenta con Formato → Dimensioni carattere risulta più semplice e non ha bisogno di spiegazioni.

Esiste una richiesta che chiede di aggiungere a Math la capacità di prendere la grandezza del font del paragrafo sul quale si trova l'oggetto:

Bug 32419 - When inserted on Writer, get "Base size" for formulas from underlining paragraph

Soltanto non dimenticatevi di premere il bottone Predefinito.

Come già indicato questa configurazione non modificherà oggetti inseriti prima, sarà necessario modificarli uno a la volta.

Gli oggetti Math non sono basati su stili e pertanto se si devono utilizzare diversi font in diversi documenti si dovrà modificare i valori predefiniti ogni volta che si passa da uno all'altro.

Definire nuovi simboli per Math

modifica

Il numero di «simboli speciali» predefiniti in Math non risulta particolarmente «grande», perciò potrebbe essere necessario il definire degli altri.

Si deve tenere presente che l'editore di Math supporta senza problemi unicode e perciò se un determinato simbolo è disponibile nel font utilizzato da Math per rappresentare il testo (e non dobbiamo introdurlo molto spesso) sarà sufficiente introdurlo prima in Writer, copiarlo e poi incollarlo nell'editore di Math.

Esiste una richiesta di aggiungere a Math l'opzione di inserire simboli:

Bug 32418 - Add an "insert symbol" to Math.

Se un simbolo determinato risulta molto necessario l'opzione di copiare e incollare non sarà più la più confortevole, e perciò risulterà conveniente definire un nuovo simbolo. Per questo dobbiamo, dall'interno di un oggetto Math, aprire Strumenti → Simboli e fare clic sul bottone Modifica per ottenere il dialogo rappresentato nella Figura 58.

Quello che ci interessa qui sono i menù a tendina che si trovano sotto i simboli:

  1. Dimentichiamoci per un attimo che questi menù a tendina sono menù a tendina, cancelliamo quello che c'è scritto in Simbolo e scriviamo il nome del nuovo simbolo (per esempio, MioSimbolo)
  2. Ricordiamoci ancora che questi menù a tendina sono menù a tendina per scegliere in Carattere un font che contenga il simbolo necessario, il Sottoinsieme di quel font dove si trova il simbolo e, certamente, prendiamo il simbolo della tabella sopra.
  3. Se necessario e il font lo permette, si sceglie lo Stile per il simbolo (standard, corsivo, grassetto, grassetto corsivo).
  4. Volendo, è possibile scegliere un altro Gruppo di simboli o addirittura definire uno nuovo.
  5. Clic in Aggiungi e poi in OK.

Tutto pronto. Adesso potremo utilizzare il nuovo simbolo in qualsiasi equazione scrivendo %MioSimbolo.

Spaziatura e allineamento di oggetti Math in Writer

modifica

Spaziatura

modifica
 
Figura 58: Modificare i simboli in Math

Con la configurazione predefinita, gli oggetti Math sono inseriti in Writer con grandi spazi prima e dopo. Per eliminare questi spazi per sempre (o almeno per nuovi oggetti) è necessario seguire due semplici passi:

  • Nell'editore di stili e formattazione dobbiamo andare agli Stili di cornice (terzo bottone da sinistra a destra). Lì si deve modificare lo stile «Formula» (clic destro → Cambia). Nella scheda Scorrimento, cambiare gli spazi a sinistra e a destra al valore zero. Finalmente, salvare il documento come il modello predefinito.
  • Aprire (o creare) un oggetto Math e dirigersi a Formato → Spaziatura. Nel menù Categoria scegliere Bordi e modificare i margini a zero. Finalmente, premere il bottone Predefinito.

Allineamento

modifica

Sotto Strumenti → Opzioni → LibreOffice Writer → Formattazione → Assistenza layout si ha l'opzione Allineamento linea di base Math che attiva l'allineamento verticale automatico degli oggetti Math d'accordo a una «linea di base».

Si deve tenere presente che questa opzione, attiva in modo predefinito in tutti i nuovi documenti, sarà disabilitata in documenti creati con la versione 3.x dove questa funzione non esisteva.

Spaziatura «interna»

modifica
 
Figura 59: Il comando «nospace» in azione

Math automaticamente include spazi tra elementi diversi di una equazione. Anche se questo risulta corretto quasi sempre, quando vengono inseriti elementi consecutivi con diversi «attributi» (corsivo l'uno e grassetto l'altro, per esempio) lo spazio aggiuntivo che compare potrebbe produrre un effetto indesiderato.

Questo problema si risolve (in parte) con l'istruzione nospace come si può vedere nella schermata della Figura 59.

Edizione «quasi grafica»

modifica

Un piccolo segreto di Math per chiudere questo capitolo: se stando all'interno dell'editor facciamo clic su un elemento dell'equazione «grafica» (quella che si costruisce automaticamente mentre viene scritto il codice) il cursore andrà direttamente alla posizione del codice che rappresenta l'elemento scelto, il quale verrà «marcato» con un sottile rettangolo di linea tratteggiata.

Questo risulta veramente utile nel modificare espressioni complicate perché ci permette di localizzare immediatamente la parte del codice necessaria. L'effetto risulta visibile nella Figura 59.

  1. Per una lista dei codici per i caratteri greci, dall'interno di un oggetto Math Strumenti → Simboli.