Note : Ce projet a été réalisé dans le cadre d'un cours sur les méthodes agiles, avec un temps limité et un sujet volontairement trop ambitieux pour mettre en pratique la gestion de projet et l'adaptation face aux contraintes.
SmolTex est un éditeur LaTeX simplifié écrit en Java. Il permet de saisir des expressions mathématiques en syntaxe LaTeX et de les visualiser en temps réel sous forme de rendu SVG.
L'objectif est de proposer une alternative légère pour le rendu d'équations mathématiques, sans dépendre d'une installation LaTeX complète.
- Éditeur graphique avec zone de saisie LaTeX et prévisualisation SVG
- Parseur de syntaxe LaTeX supportant :
- Fractions (
\frac{}{}) - Racines carrées (
\sqrt{}) - Exposants et indices (
^,_) - Opérations bornées (sommes, intégrales, produits)
- Symboles mathématiques courants
- Fractions (
- Export SVG des équations rendues
- Support de polices mathématiques (STIX, Computer Modern)
src/
├── Main.java # Point d'entrée de l'application
├── Editeur/
│ └── Editeur.java # Interface graphique Swing avec JSVGCanvas (Batik)
├── Parseur/
│ ├── Parseur.java # Analyse syntaxique du LaTeX → arbre d'équations
│ └── Arbre*.java # Structures d'arbres (unaire, binaire, ternaire)
├── Equation/
│ ├── Equation.java # Interface commune pour les éléments mathématiques
│ ├── Fraction.java # Rendu des fractions
│ ├── Sqrt.java # Rendu des racines
│ ├── BoundedOperation.java # Sommes, intégrales, produits
│ └── ... # Autres éléments (exposants, indices, texte, etc.)
├── SVG/
│ ├── SVG.java # Génération du document SVG
│ └── SVGElements/ # Éléments SVG (paths, lignes, texte)
├── Font/
│ └── Fonts.java # Gestion des polices mathématiques
└── ressources/
└── fonts/ # Fichiers de polices et métadonnées
- Saisie: L'utilisateur écrit du LaTeX dans l'éditeur
- Parsing: Le
Parseurtransforme le texte en arbre d'Equation - Rendu: Chaque nœud de l'arbre génère son fragment
SVG - Affichage; Le SVG est affiché via Apache Batik (
JSVGCanvas)
Ce projet utilise Gradle pour la gestion des tâches de compilation et des tests.
./gradlew build./gradlew run# Tous les tests
./gradlew runAllTests
# Tests individuels
./gradlew runTestNolan
./gradlew runTestMazen
./gradlew runTestVictor- Java 11+
- Apache Batik – Rendu SVG dans Swing
- Gradle – Build system
Projet principalement réalisé par @arkanyota et moi-même. Elena et Maryam ont travaillé sur la partie graphique, Victor et Luis sur la partie Scrum.