Come mettere alla prova un’app di appunti LaTeX con otto formule
Stasera devi ricopiare una pagina di equazioni, e l’app per appunti sul telefono dice di supportare LaTeX. Quella frase copre quattro implementazioni diverse, e la differenza tra l’una e l’altra si vede alla terza formula.
x = \frac{-b \pm \sqrt{b^2-4ac}}{2a}
La linea di frazione sta tra le due parti, non accanto.Incolla otto formule di prova nell’app e guarda cosa ne esce. Frazioni annidate, una sommatoria con gli estremi sopra e sotto, una pmatrix, parentesi estensibili, un blocco align, un cases, una macro \def e una stringa chimica \ce distinguono una vera app di appunti con LaTeX da una che disegna qualche frazione in linea. Testo piatto o un’immagine non modificabile valgono una bocciatura.
Incolla queste otto formule e guarda cosa ne esce
Il controllo richiede meno di un minuto e nessun account. Copia il blocco qui sotto in una nuova nota nell’app che stai valutando, un frammento alla volta o tutti insieme, e confronta il risultato con la riga che segue ogni frammento. Ogni frammento è LaTeX valido che KaTeX visualizza correttamente, quindi se qualcosa non va la colpa è dell’app, non dell’input.
TEST LATEX PER UN’APP DI APPUNTI
Incolla un blocco alla volta. Confronta con la riga CORRETTO.
1. FRAZIONI ANNIDATE
\frac{1}{1 + \frac{1}{1 + \frac{1}{x}}}
CORRETTO: tre linee di frazione sovrapposte, ognuna interna più corta e
in corpo più piccolo della linea che la contiene.
2. OPERATORE CON ESTREMI
\sum_{n=1}^{\infty} \frac{1}{n^2} = \frac{\pi^2}{6}
CORRETTO: in modalità display n=1 e l’infinito stanno esattamente sotto e
sopra la sigma, non alla sua destra, e la sigma è più alta del testo
intorno.
3. AMBIENTE MATRICE
\begin{pmatrix} a & b \\ c & d \end{pmatrix}^{-1} =
\frac{1}{ad - bc} \begin{pmatrix} d & -b \\ -c & a \end{pmatrix}
CORRETTO: due righe, parentesi tonde alte quanto tutta la matrice e il
-1 in alto a destra della parentesi di chiusura.
4. DELIMITATORI ESTENSIBILI
\left( \sum_{i=1}^{n} a_i b_i \right)^2 \le
\left( \sum_{i=1}^{n} a_i^2 \right) \left( \sum_{i=1}^{n} b_i^2 \right)
CORRETTO: ogni parentesi alta quanto la sommatoria che contiene, ed
entrambe le parentesi di una coppia disegnate alla stessa altezza.
5. ALLINEAMENTO
\begin{align}
(a+b)^2 &= a^2 + 2ab + b^2 \\
(a-b)^2 &= a^2 - 2ab + b^2
\end{align}
CORRETTO: un unico blocco di due righe con i segni di uguale nella
stessa colonna.
6. DEFINIZIONE PER CASI
f(x) = \begin{cases}
x^2 & \text{se } x \ge 0 \\
-x^2 & \text{se } x < 0
\end{cases}
CORRETTO: un’unica graffa che abbraccia le due righe, testo in tondo
nelle due condizioni e le condizioni in una colonna a sé.
7. DEFINIZIONE DI MACRO
\def\dd#1{\mathrm{d}#1}
\int_0^1 x^2 \dd{x} = \frac{1}{3}
CORRETTO: la macro si espande, quindi compare una d in tondo prima della
x, con 0 e 1 sul segno di integrale.
8. CHIMICA
\ce{H2SO4 + 2NaOH -> Na2SO4 + 2H2O}
CORRETTO: pedici numerici, simboli degli elementi in tondo invece che in
corsivo come variabili, e una freccia di reazione completa.
DOPO LE OTTO
- Metti il cursore dentro una formula visualizzata e seleziona un
carattere. Se non ci riesci, la formula è un’immagine.
- Passa il sistema alla modalità scura. Una formula che resta nera ha
uno sfondo chiaro incorporato.
- Imposta la nota sulla dimensione del testo più grande. Un’immagine si
sgrana. Una formula composta resta nitida. Scarica il file di testoGuarda cosa non funziona, più di cosa funziona. Il frammento 1 ti dice se l’app compone davvero o si limita a sostituire stringhe. I frammenti 3 e 6 sono il punto in cui si ferma un renderer basato su una breve tabella di sostituzioni. Il frammento 7 segna il confine tra un parser LaTeX e una visualizzazione che assomiglia a LaTeX, perché un’app che ignora \def stampa il testo letterale o dà un errore di parsing. Il frammento 8 richiede mhchem, un pacchetto che si appoggia sulla grammatica matematica di base, quindi un’app può superare i primi sette e fallire comunque l’ultimo.
Quattro cose che un’app può intendere per supporto LaTeX
Due app possono scrivere entrambe LaTeX nella pagina delle funzioni e comportarsi in modo del tutto diverso. Ognuna delle quattro implementazioni qui sotto fallisce in un modo che si vede dall’esterno, senza leggere il codice sorgente di nessuno.
| Livello | Come funziona | Come riconoscerlo | Dove fa male |
|---|---|---|---|
| Sottoinsieme in linea | Una breve tabella di sostituzioni copre frazioni, apici e lettere greche tra segni del dollaro | Il frammento 3 torna con la parola pmatrix ancora visibile, o come un’unica riga continua | La prima matrice, il primo integrale o la prima definizione per casi che scrivi |
| Immagine generata | Il LaTeX va a un convertitore e torna come bitmap o SVG inserito nella nota | Non riesci a mettere il cursore dentro la formula, e l’immagine si sgrana con un testo più grande | La modalità scura lascia glifi neri su una pagina scura, e per modificare devi riscrivere il sorgente |
| Motore nel browser | Una WebView nascosta esegue KaTeX o MathJax in JavaScript | La prima formula di una sessione compare un attimo dopo il resto della nota | Da 50 a 150 MB di RAM per la WebView, e un ritardo all’avvio prima della prima formula |
| Motore nativo | Le regole box-and-glue di TeX girano nel codice dell’app, senza browser di mezzo | Le formule si disegnano mentre la riga entra nello schermo e cambiano colore con l’aspetto del sistema | La questione aperta diventa la copertura, non la velocità: fai comunque il test degli otto frammenti |
I dati della terza riga vengono dal README di SwaTex, che descrive la soluzione multipiattaforma più comune come una WebView nascosta che consuma da 50 a 150 MB di RAM, con un ritardo all’avvio prima della prima formula e nessuna garanzia di funzionamento offline. È il prezzo del riuso di una libreria JavaScript che l’app non ha scritto. Il quarto livello costa molto di più da costruire e toglie il browser dalla pagina.
Cosa fa di diverso un motore di composizione nativo
Phrase visualizza la matematica con SwaTex, un motore di rendering matematico compatibile con KaTeX scritto interamente in Swift, senza JavaScript, senza WebView e senza DOM. È distribuito con licenza MIT, è pubblico su github.com/PhraseHQ/SwaTex ed è un port in Swift, riscritto da zero, di RaTeX, il renderer matematico in Rust compatibile con KaTeX. SwaTex visualizza ogni formula nelle note IA di Phrase. Il suo motore di impaginazione applica le regole box-and-glue di TeX a partire dalle metriche dei font KaTeX incluse, non dalle API di testo della piattaforma, quindi il risultato corrisponde a KaTeX e RaTeX glifo per glifo.

La copertura è di 1007 voci su 1008 nella tabella di supporto ufficiale di KaTeX. Questo insieme comprende gli ambienti pmatrix, align, cases e CD, oltre a delimitatori estensibili, accenti e macro come \def, \newcommand e \expandafter. Per la chimica c’è il supporto completo di mhchem tramite \ce e \pu, grazie a un port della macchina a stati verificato identico byte per byte a RaTeX su un corpus di 253 casi. Gli alberi di dimostrazione usano prooftree in stile bussproofs per regole di inferenza e calcoli dei sequenti. I frammenti 3, 5, 6, 7 e 8 qui sopra rientrano tutti in questo insieme.
I numeri sulla velocità qui sotto sono stati misurati rispetto al motore di riferimento in Rust sugli stessi corpus, sulla stessa macchina, con la mediana di 3 esecuzioni, e tutte le 2.541 formule di riferimento risultano identiche bit per bit tra i due motori. Ogni numero si può riprodurre con i comandi del file BENCHMARKS.md del repository.
| Carico di lavoro | RaTeX (Rust) | SwaTex |
|---|---|---|
| Dal parsing all’impaginazione alla lista di visualizzazione | 41,4 µs/formula | 12,5 µs/formula (3,3×) |
| PNG in blocco, 100 formule a 40 px, 2× | ~200 µs/formula | 34 µs effettivi (in parallelo, 5,9×) |
| Formula ripetuta, dalla cache dell’editor | 41,4 µs | 105 ns (~390×) |
| Scorrimento nell’editor | Nessun dato equivalente | 0 rasterizzazioni di glifi (updateLayer) |
La parità viene controllata, non solo dichiarata. Il repository include scripts/diff_layout.py, che confronta lo strumento LayoutDump con il binario di impaginazione di RaTeX su un corpus di riferimento di oltre 1000 formule, e la suite di test porta in Swift i test di lexer, parser, ambienti, mhchem e impaginazione di RaTeX. Disegnare una formula è metà del problema dell’editor. Il blocco deve anche avere un’altezza precisa e sopravvivere al riuso delle viste, ed è il tema degli articoli su come un blocco di formula calcola la propria altezza e su come tenere il calcolo accanto alla spiegazione.
Quando la nota esiste, chiedi all’assistente di ricavarne una creazione. Con Pro, Phrase trasforma una nota in presentazioni, pagine, dashboard, flashcard, quiz e mappe mentali, e una pagina di derivazioni svolte è una fonte naturale per un quiz o un mazzo di flashcard. Lo stesso vale per gli appunti di una lezione piena di equazioni.
L’unica voce che SwaTex non visualizza
La voce mancante è \includegraphics, l’unica eccezione su 1008, e KaTeX stesso lo abilita solo con l’opzione trust. Il comando inserisce un’immagine esterna in una formula, quindi il progetto originale lo tratta come una questione di permessi, non di composizione. Quattro comandi \html* visualizzano il loro contenuto e scartano gli attributi che esistono solo nel DOM, perché un renderer nativo non ha un DOM che quegli attributi possano descrivere.
1007 voci su 1008 nella tabella di supporto di KaTeX
- Visualizzate1003
- Visualizzate senza gli attributi che esistono solo nel DOM (i quattro comandi \html*)4
- Non visualizzata: \includegraphics, che anche KaTeX abilita solo con l’opzione trust1
- Il minimo di sistema è iOS 18, macOS 15, tvOS 18, watchOS 11 e visionOS 2, fissato da Synchronization.Mutex. Le app che supportano versioni precedenti non possono ancora adottare SwaTex.
- Solo piattaforme Apple native. Non ci sono wrapper per React Native, Flutter o il Web.
- Alcuni comportamenti differiscono da RaTeX di proposito, ognuno fissato da un test di regressione. Un \verb non chiuso e x\limits^2 sono errori di parsing invece di essere accettati in silenzio.
- L’input annidato in profondità è protetto da un contatore di ricorsione e da un margine sullo stack, che producono un errore di parsing e mai un crash. L’app che ospita il motore dovrebbe comunque limitare la lunghezza di un input ostile.
Questa pagina lascia fuori due cose. La matematica scritta a mano è un altro problema, perché Phrase lavora con materiale scritto, registrato e importato, non con l’inchiostro digitale. Diagrammi e blocchi di codice sono una questione separata dalle formule, e i due approfondimenti tecnici citati sopra descrivono come convivono nello stesso editor.
Tieni distinte anche altre due cose. SwaTex si compila per macOS 15, mentre l’app Phrase per Mac richiede macOS 26 o versioni successive. Un motore che si compila per una piattaforma non dice nulla su quali sistemi supporta un’app. Phrase funziona su iPhone, iPad e Mac, con un’app per registrare da Apple Watch, e su ciascuno visualizza le formule con SwaTex.


Per studiare una pagina piena di formule, segui come una nota diventa un mazzo di flashcard con una serie di derivazioni che hai già scritto per intero.
Domande sul LaTeX in un’app di appunti
Si possono scrivere formule matematiche nell’app Note di Apple? Fai il test nell’app che hai già, invece di fidarti di un’affermazione scritta un anno fa. Apple documenta cosa fa Note nelle sue pagine di supporto, e la risposta cambia da una versione di iOS all’altra. I frammenti 1 e 3 chiudono la questione in una decina di secondi.
Posso scrivere equazioni in LaTeX nell’app Note? Scrivere LaTeX e visualizzare LaTeX sono due domande diverse. Qualsiasi app conserva i caratteri \frac{a}{b} come testo. Quello che conta è se compare una linea orizzontale con a sopra e b sotto, ed è quello che controlla il frammento 1.
Cosa dovrebbe gestire un’app per appunti con supporto LaTeX? Usa la tabella di supporto di KaTeX come metro comune, visto che è pubblica e ha 1008 voci. Un’app che copre ambienti, delimitatori estensibili, macro e mhchem lavora con la stessa grammatica delle implementazioni di riferimento. Un’app che copre le frazioni in linea fa qualcosa di molto più limitato.
Un’app di appunti per la matematica ha bisogno della connessione per disegnare una formula? Dipende dal livello. Un convertitore che restituisce un’immagine ha bisogno di un viaggio di andata e ritorno, e un motore in WebView ha un costo di avvio prima della prima formula. SwaTex fa parsing e impaginazione nel codice dell’app, senza browser di mezzo.
Fonti e note redazionali
Fonti verificate in data 25 settembre 2026. I passaggi sulle funzioni Apple seguono la documentazione attuale di Apple, citata qui sotto. Le condizioni cambiano a ogni versione di iOS.
- SwaTex: motore di rendering matematico compatibile con KaTeX, in puro Swift Copertura di 1007 voci KaTeX su 1008, l’eccezione di \includegraphics, mhchem tramite \ce e \pu, la tabella dei benchmark e i requisiti minimi di sistema. Verificato il 20 settembre 2026 (pagina in inglese).
- KaTeX: funzioni supportate e tabella di supporto La tabella di 1008 voci su cui si calcola la copertura, e l’opzione trust richiesta da \includegraphics (pagina in inglese).
- mhchem per MathJax: la sintassi \ce e \pu La sintassi chimica usata nel frammento 8 del test (pagina in inglese).
Pubblicata da Eversight, i creatori di Phrase. Il nostro metodo editoriale · Segnala una correzione
