Il logo di batmath
www.batmath.it

Simboli matematici e html

Il problema della scrittura dei simboli e formule matematiche in un sito web è ben lungi dall'essere risolto. Siamo tutti in attesa della implementazione di MathML nei browser, ma intanto dobbiamo arrangiarci.

Per la scrittura di formule matematiche complesse non credo esistano alternative alle immagini gif, create con Math Type o simili, anche se i problemi di allineamento sono tutt'altro che facili. Per l'inserimento invece dei simboli matematici comuni, l'avvento di Unicode avrebbe semplificato grandemente i problemi se tutti i browser supportassero pienamente questo nuovo standard. Purtroppo ciò non succede ancora (26 febbraio 2004) e occorre individuare strategie opportune.

La prima regola da seguire è: Non utilizzate il font Symbol. Il font Symbol è un font non-Unicode prodotto da Monotype Typography in una versione Windows TrueType (fornita con Windows XP e precedenti), in una versione Macintosh TrueType (fornita con le varie versioni di Mac OS), in varie versioni PostScript per Windows, Macintosh e Unix. MS Internet Explorer consente la specificazione di questo font in HTML. Con questa specificazione molti simboli matematici e lettere dell'alfabeto greco possono essere, a volte, visualizzati nei browser.

Il problema grosso è che questa tecnica funziona in un modo con certi browser e in modo completamente diverso con altri. Peggio ancora, lo stesso Internet Explorer produce risultati completamente diversi sui sistemi Macintosh e su quelli Windows. Inoltre il metodo è deprecato dalla Specificazione HTML 4.0 del W3C. La nostra esperienza è disastrosa sull'uso di questo font anche nei documenti Word.

Non è poi da sottovalutare il fatto che, dal punto di vista grafico, la resa con i caratteri Unicode è decisamente più soddisfacente che non con il font Symbol.

Recentemente siamo stati costretti a modificare il codice delle nostre pagine nelle oltre 5000 istanze in cui avevamo fatto uso del font Symbol (seppure utilizzando l'attributo "class" per soddisfare le esigenze di xhtml 1.1): l'uso di browser diversi da IE sta prendendo piede sempre di più e non potevamo tollerare che, per esempio, il simbolo dell'insieme vuoto potesse comparire in tre modi diversi:

La strategia che abbiamo adottato è di utilizzare direttamente i caratteri Unicode supportati da tutti i browser (in particolare da IE che, almeno tra i nostri lettori, è il più diffuso), e di utilizzare invece piccole immagini gif per i pochi restanti caratteri. Abbiamo deciso di etichettare queste gif con lo stesso nome del corrispondente carattere Unicode ancora non visualizzato da tutti i browser: nel momento in cui tutti supporteranno pienamente Unicode, una sostituzione con "Trova e Sostituisci" dovrebbe (!?) rendere semplice la modifica.

Nella tabella che segue riportiamo il simbolo matematico, l'Entità Unicode (cioè il nome che Unicode usa per identificarlo) e il codice numerico Unicode. L'entità Unicode può essere usata direttamente nel codice html ed è molto più facile da memorizzare che non il corrispondente riferimento numerico.

La tabella è largamente incompleta, in quanto comprende solo i simboli che abbiamo avuto necessità di usare nel nostro sito: provvederemo ad estenderla man mano che si presenterà la necessità. Le celle con sfondo azzurro e che iniziano con un asterisco contengono immagini gif che utilizziamo per i simboli che ancora non tutti i browser visualizzano: ci auguriamo che il loro numero vada progressivamente diminuendo.

Simbolo Entità Unicode Rif. Numerico Simbolo Entità Unicode Rif. Numerico Simbolo Entità Unicode Rif. Numerico
± ± ± × × × ÷ ÷ ÷
¬ ¬ ¬ … … * aleph ℵ ℵ
* simbolo di relazione ℜ ℜ * insieme delle parti ℘ ℘ ↔ ↔
← &#8592 ↑ ↑ → →
↓ ↓ * simbolo di a capo ↵ ↵ * se e solo se ⇔ ⇔
* doppia freccia sinistra ⇐ Ⅼ * doppia freccia su ⇑ ⇑ * implica ⇒ ⇒
* doppia freccia giù ⇓ ⇓ * per ogni ∀ ∀ * esiste ∃ ∃
* congruente ≅ ≅ * perpendicolare ⊥ ⊥ ∞ ∞
≤ ≤ ≥ ≥ * proporzionale ∝ ∝
≠ ≠ ≡ ≡ ≈ ≈
* insieme vuoto ∅ ∅ ∩ ∩ * unione ∪ ∪
* contiene ⊃ ⊃ * contiene ⊇ ⊇ * non è contenuto ⊄ ⊄
* contenuto ⊂ ⊂ * contenuto ⊆ ⊆ * appartiene ∈ ∈
* non appartiene ∉ ∉ * angolo ∠ ∇ √ √
* et ∧ ∧ * vel ∨ ∨ ∑ ∑
* mappa in   ↦ ∫ ∫ ∂ ∂
* nabla ∇ ∇ ∏ ∏      

Riportiamo anche l'elenco delle lettere dell'alfabeto greco. La loro memorizzazione è estremamente semplice: ciascuna lettera ha una Entità Unicode con il solito & seguito dal nome della lettera e dal punto e virgola; la distinzione tra maiuscole e minuscole si fa mettendo la prima lettera del nome in maiuscole o minuscole.

Simbolo Entità Unicode Rif. Numerico Simbolo Entità Unicode Rif. Numerico
Α Α Α α α α
Β Β Β β β β
Γ Γ Γ γ γ γ
Δ Δ Δ δ δ δ
Ε Ε Ε ε ε ε
Ζ Ζ Ζ ζ ζ ζ
Η Η Η η η η
Θ Θ Θ θ θ θ
Ι Ι Ι ι ι ι
Κ Κ Κ κ κ κ
Λ Λ Λ λ λ λ
Μ Μ Μ μ μ μ
Ν Ν Ν ν ν ν
Ξ Ξ Ξ ξ ξ ξ
Ο Ο Ο ο ο ο
Π Π Π π π π
Ρ Ρ Ρ ρ ρ ρ
Σ Σ Σ σ σ σ
Τ Τ Τ τ τ τ
Υ Υ Υ υ υ υ
Φ Φ Φ φ φ φ
Χ Χ Χ χ χ χ
Ψ Ψ Ψ ψ ψ ψ
Ω Ω Ω ω ω ω

Abbiamo tralasciato alcune ulteriori lettere dell'alfabeto greco, praticamente mai usate come simboli matematici. Segnaliamo anche che Konqueror sui sistemi Linux non visualizza correttamente tutti i simboli che abbiamo qui riportato.

pagina pubblicata il 26/02/2004 - ultimo aggiornamento il 26/02/2004