Comment tester une app de prise de notes LaTeX avec huit formules
Vous avez une page d’équations à mettre au propre ce soir, et l’application de prise de notes de votre téléphone dit prendre en charge LaTeX. Cette mention recouvre quatre mises en œuvre différentes, et l’écart entre elles apparaît dès la troisième formule.
x = \frac{-b \pm \sqrt{b^2-4ac}}{2a}
La barre se place entre les deux parties, pas à côté.Collez huit formules de test dans l’app et regardez ce qui en sort. Des fractions imbriquées, une somme avec ses bornes dessous et dessus, une pmatrix, des parenthèses extensibles, un bloc align, une définition par cas, une macro \def et une formule chimique \ce séparent une vraie app de notes LaTeX d’une app qui dessine quelques fractions en ligne. Du texte brut ou une image non modifiable, c’est un échec.
Collez ces huit formules et lisez ce qui en sort
Le test prend moins d’une minute et ne demande aucun compte. Copiez le bloc ci-dessous dans une nouvelle note de l’app que vous évaluez, une formule à la fois ou toutes d’un coup, et comparez le résultat avec la ligne qui suit chaque formule. Chacune est du LaTeX valide que KaTeX sait rendre : un échec vient donc de l’app, pas de la saisie.
AUTOTEST LATEX POUR UNE APP DE NOTES
Collez un bloc à la fois. Comparez avec la ligne CORRECT.
1. FRACTIONS IMBRIQUÉES
\frac{1}{1 + \frac{1}{1 + \frac{1}{x}}}
CORRECT : trois barres de fraction empilées, chaque barre intérieure plus
courte et composée plus petit que celle qui l’entoure.
2. OPÉRATEUR AVEC BORNES
\sum_{n=1}^{\infty} \frac{1}{n^2} = \frac{\pi^2}{6}
CORRECT : en mode hors texte, n=1 et l’infini se placent juste sous le sigma
et juste au-dessus, pas à sa droite, et le sigma est plus grand que le
texte qui l’entoure.
3. ENVIRONNEMENT MATRICE
\begin{pmatrix} a & b \\ c & d \end{pmatrix}^{-1} =
\frac{1}{ad - bc} \begin{pmatrix} d & -b \\ -c & a \end{pmatrix}
CORRECT : deux lignes, des parenthèses étirées sur toute la hauteur de
la matrice, et le -1 placé en haut à droite de la parenthèse fermante.
4. DÉLIMITEURS EXTENSIBLES
\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)
CORRECT : chaque parenthèse étirée à la hauteur de la somme qu’elle
contient, et les deux parenthèses d’une paire à la même hauteur.
5. ALIGNEMENT
\begin{align}
(a+b)^2 &= a^2 + 2ab + b^2 \\
(a-b)^2 &= a^2 - 2ab + b^2
\end{align}
CORRECT : un seul bloc de deux lignes dont les signes égal sont dans la
même colonne.
6. DÉFINITION PAR CAS
f(x) = \begin{cases}
x^2 & \text{si } x \ge 0 \\
-x^2 & \text{si } x < 0
\end{cases}
CORRECT : une seule accolade qui couvre les deux lignes, du texte en
romain droit dans les deux conditions, et les conditions dans leur
propre colonne.
7. DÉFINITION DE MACRO
\def\dd#1{\mathrm{d}#1}
\int_0^1 x^2 \dd{x} = \frac{1}{3}
CORRECT : la macro se développe, donc un d droit apparaît avant le x,
avec 0 et 1 sur le signe intégrale.
8. CHIMIE
\ce{H2SO4 + 2NaOH -> Na2SO4 + 2H2O}
CORRECT : chiffres en indice, symboles des éléments en romain plutôt
qu’en variables italiques, et une vraie flèche de réaction.
APRÈS LES HUIT
- Placez le curseur dans une formule rendue et sélectionnez un caractère.
Si c’est impossible, la formule est une image.
- Passez le système en mode sombre. Une formule qui reste noire a un fond
clair incrusté.
- Réglez la note sur sa plus grande taille de police. Une image devient
floue. Une formule composée reste nette. Télécharger le fichier texteLisez les échecs plutôt que les réussites. La formule 1 vous dit si l’app fait de la vraie composition ou une simple substitution de chaînes. Les formules 3 et 6 marquent l’endroit où s’arrête un moteur de rendu bâti sur une courte table de substitution. La formule 7 sépare un analyseur LaTeX d’un affichage qui ressemble à du LaTeX, car une app qui ignore \def affiche le texte tel quel ou renvoie une erreur d’analyse. La formule 8 demande mhchem, un paquet greffé sur la grammaire mathématique de base : une app peut donc réussir les sept premières et échouer à la dernière.
Quatre choses qu’une app peut entendre par « prise en charge de LaTeX »
Deux apps peuvent toutes deux écrire LaTeX sur leur page de fonctionnalités et se comporter de façon totalement différente. Chacune des quatre mises en œuvre ci-dessous échoue d’une manière visible de l’extérieur, sans lire le code source de qui que ce soit.
| Niveau | Fonctionnement | Comment le repérer | Où ça coince |
|---|---|---|---|
| Sous-ensemble en ligne | Une courte table de substitution gère les fractions, les exposants et les lettres grecques entre signes dollar | La formule 3 revient avec le mot pmatrix encore visible, ou sur une seule ligne continue | Dès la première matrice, la première intégrale ou la première définition par cas |
| Image rendue | Le LaTeX part vers un convertisseur et revient sous forme d’image bitmap ou de SVG placée dans la note | Impossible de placer le curseur dans la formule, et l’image devient floue avec une taille de police plus grande | Le mode sombre laisse des glyphes noirs sur une page sombre, et la moindre modification oblige à retaper la source |
| Moteur de navigateur | Une WebView cachée exécute KaTeX ou MathJax en JavaScript | La première formule d’une session apparaît un instant après le reste de la note | 50 à 150 Mo de RAM pour la WebView, et un temps de démarrage avant cette première formule |
| Moteur natif | Les règles de boîtes et de ressorts de TeX tournent dans le code même de l’app, sans navigateur | Les formules se dessinent quand la ligne arrive à l’écran et changent de couleur avec l’apparence du système | La question devient la couverture plutôt que la vitesse : faites quand même le test des huit formules |
Les chiffres de la troisième ligne viennent du README de SwaTex, qui décrit la configuration multiplateforme habituelle ainsi : une WebView cachée qui consomme 50 à 150 Mo de RAM, un temps de démarrage avant la première formule, aucune garantie hors ligne. C’est le prix à payer pour réutiliser une bibliothèque JavaScript que l’app n’a pas écrite. Le quatrième niveau coûte bien plus cher à construire et retire le navigateur de la page.
Ce que fait autrement un moteur de composition natif
Phrase rend les mathématiques avec SwaTex, un moteur de rendu mathématique compatible KaTeX écrit entièrement en Swift, sans JavaScript, sans WebView et sans DOM. Il est sous licence MIT, public sur github.com/PhraseHQ/SwaTex, et c’est un portage en Swift, repensé de fond en comble, de RaTeX, le moteur de rendu mathématique en Rust compatible KaTeX. SwaTex rend chaque formule des notes IA de Phrase. Son moteur de mise en page applique les règles de boîtes et de ressorts de TeX à partir des métriques des polices KaTeX fournies, et non des API de texte de la plateforme : le résultat correspond donc à KaTeX et à RaTeX glyphe pour glyphe.

La couverture est de 1 007 entrées sur les 1 008 du tableau officiel de prise en charge de KaTeX. Cet ensemble comprend les environnements pmatrix, align, cases et CD, ainsi que les délimiteurs extensibles, les accents et des macros comme \def, \newcommand et \expandafter. Pour la chimie, mhchem est pris en charge entièrement via \ce et \pu, grâce à un portage de machine à états vérifié identique octet pour octet à RaTeX sur un corpus de 253 cas. Les arbres de preuve utilisent prooftree, dans le style de bussproofs, pour les règles d’inférence et les calculs des séquents. Les formules 3, 5, 6, 7 et 8 ci-dessus se trouvent toutes dans cet ensemble.
Les mesures de vitesse ci-dessous ont été faites face au moteur de référence en Rust, sur des corpus identiques, sur la même machine, en prenant la médiane de 3 exécutions, avec les 2 541 formules de référence identiques au bit près entre les deux moteurs. Chaque chiffre se reproduit avec les commandes du fichier BENCHMARKS.md du dépôt.
| Charge de travail | RaTeX (Rust) | SwaTex |
|---|---|---|
| De l’analyse à la mise en page puis à la liste d’affichage | 41,4 µs/formule | 12,5 µs/formule (×3,3) |
| Lot de PNG, 100 formules à 40 px, échelle ×2 | Environ 200 µs/formule | 34 µs en effectif (en parallèle, ×5,9) |
| Formule répétée, trouvée dans le cache de l’éditeur | 41,4 µs | 105 ns (environ ×390) |
| Défilement dans l’éditeur | Pas de chiffre équivalent | 0 glyphe rastérisé (updateLayer) |
La parité est vérifiée, pas seulement affirmée. Le dépôt fournit scripts/diff_layout.py, qui compare la sortie de l’outil LayoutDump avec celle du binaire de mise en page de RaTeX sur le corpus de référence de plus de 1 000 formules, et la suite de tests porte en Swift les propres tests de RaTeX sur l’analyseur lexical, l’analyseur syntaxique, les environnements, mhchem et la mise en page. Dessiner une formule ne règle que la moitié du problème de l’éditeur. Le bloc a encore besoin d’une hauteur exacte et doit survivre à la réutilisation des vues : c’est le sujet de l’article sur comment un bloc de formule obtient sa hauteur et de celui sur l’art de garder le calcul à côté de l’explication.
Une fois la note créée, demandez à l’assistant d’en tirer une création. Avec Pro, Phrase transforme une note en présentations, pages, tableaux de bord, fiches de révision, quiz et cartes mentales, et une page de démonstrations détaillées est une source toute trouvée pour un quiz ou une série de fiches. Il en va de même pour les notes d’un cours rempli d’équations.
La seule entrée que SwaTex ne rend pas
L’entrée manquante est \includegraphics, la seule exception sur les 1 008, et KaTeX lui-même soumet cette commande à un réglage de confiance. La commande insère une image externe dans une formule : le projet d’origine la traite donc comme une question d’autorisation plutôt que de composition. Quatre commandes \html* rendent leur contenu et laissent tomber les attributs propres au DOM, puisqu’un moteur natif n’a pas de DOM que ces attributs pourraient décrire.
1 007 sur 1 008 entrées du tableau de prise en charge de KaTeX
- Rendu1 003
- Rendu sans les attributs propres au DOM (les quatre commandes \html*)4
- Non rendu : \includegraphics, que KaTeX soumet lui aussi à un réglage de confiance1
- Les versions minimales sont iOS 18, macOS 15, tvOS 18, watchOS 11 et visionOS 2, imposées par Synchronization.Mutex. Les apps qui visent des versions plus anciennes ne peuvent pas encore adopter SwaTex.
- Plateformes Apple natives uniquement. Il n’existe pas de surcouche React Native, Flutter ou Web.
- Quelques comportements s’écartent volontairement de RaTeX, chacun verrouillé par un test de non-régression. Un \verb non terminé et x\limits^2 provoquent une erreur d’analyse au lieu d’être acceptés sans rien dire.
- Les entrées très imbriquées sont protégées par un compteur de récursion et une marge de pile, qui produisent une erreur d’analyse et jamais de plantage. L’app hôte devrait tout de même limiter la longueur des entrées hostiles.
Cette page laisse deux sujets de côté. Les maths manuscrites posent un autre problème, car Phrase travaille à partir de contenus tapés, enregistrés et importés, pas d’encre. Les diagrammes et les blocs de code sont une question distincte des formules, et les deux articles techniques mentionnés plus haut expliquent comment ils cohabitent dans le même éditeur.
Gardez aussi deux faits bien séparés. SwaTex se compile pour macOS 15, alors que l’app Phrase pour Mac nécessite macOS 26 ou version ultérieure. Qu’un moteur se compile pour une plateforme ne dit rien des systèmes qu’une app prend en charge. Phrase fonctionne sur iPhone, iPad et Mac, avec une app Apple Watch pour enregistrer, et compose les formules avec SwaTex sur chacun.


Pour réviser une page chargée de formules, suivez comment une note devient une série de fiches avec des calculs que vous avez déjà rédigés en entier.
Questions sur LaTeX dans une app de notes
Peut-on faire des maths dans Notes d’Apple ? Faites le test dans l’app que vous avez déjà plutôt que de vous fier à une affirmation écrite il y a un an. Apple documente ce que fait Notes sur ses propres pages d’assistance, et la réponse évolue d’une version d’iOS à l’autre. Les formules 1 et 3 tranchent la question en une dizaine de secondes.
Peut-on écrire des équations LaTeX dans Notes d’Apple ? Taper du LaTeX et rendre du LaTeX sont deux questions distinctes. N’importe quelle app gardera les caractères \frac{a}{b} comme du texte. Ce qui compte, c’est qu’une barre horizontale apparaisse avec a au-dessus et b en dessous, et c’est ce que vérifie la formule 1.
Que doit gérer une application de prise de notes compatible LaTeX ? Prenez le tableau de prise en charge de KaTeX comme étalon commun, puisqu’il est public et compte 1 008 entrées. Une app qui couvre les environnements, les délimiteurs extensibles, les macros et mhchem travaille avec la même grammaire que les implémentations de référence. Une app qui couvre les fractions en ligne fait quelque chose de bien plus limité.
Une app de notes mathématiques a-t-elle besoin d’une connexion pour dessiner une formule ? Tout dépend du niveau. Un convertisseur qui renvoie une image a besoin de l’aller-retour, et un moteur en WebView impose un temps de démarrage avant la première formule. SwaTex analyse et met en page dans le code même de l’app, sans navigateur.
Sources et notes éditoriales
Sources vérifiées le 25 septembre 2026. Les étapes qui concernent des fonctions Apple suivent la documentation actuelle d’Apple, en lien ci-dessous. Les conditions changent à chaque version d’iOS.
- SwaTex : moteur de rendu mathématique compatible KaTeX, entièrement en Swift Couverture de 1 007 entrées KaTeX sur 1 008, l’exception \includegraphics, mhchem via \ce et \pu, le tableau des mesures et les versions minimales. Vérifié le 20 septembre 2026.
- KaTeX : fonctions prises en charge et tableau de prise en charge Le tableau de 1 008 entrées sur lequel se calcule la couverture, et le réglage de confiance pour \includegraphics.
- mhchem pour MathJax : la syntaxe \ce et \pu La syntaxe chimique utilisée dans la formule 8 de l’autotest.
Publié par Eversight, les créateurs de Phrase. Notre démarche éditoriale · Signaler une erreur
