Skip to content

musafin/SmolTex

Repository files navigation

SmolTex

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.

Présentation

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.

Fonctionnalités

  • É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
  • Export SVG des équations rendues
  • Support de polices mathématiques (STIX, Computer Modern)

Architecture

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

Pipeline de rendu

  1. Saisie: L'utilisateur écrit du LaTeX dans l'éditeur
  2. Parsing: Le Parseur transforme le texte en arbre d'Equation
  3. Rendu: Chaque nœud de l'arbre génère son fragment SVG
  4. Affichage; Le SVG est affiché via Apache Batik (JSVGCanvas)

Compilation et exécution

Ce projet utilise Gradle pour la gestion des tâches de compilation et des tests.

Compiler le projet

./gradlew build

Exécuter l'application

./gradlew run

Exécuter les tests

# Tous les tests
./gradlew runAllTests

# Tests individuels
./gradlew runTestNolan
./gradlew runTestMazen
./gradlew runTestVictor

Dépendances

  • Java 11+
  • Apache Batik – Rendu SVG dans Swing
  • Gradle – Build system

Auteurs

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.

About

A micro LaTex Editor/Compiler Built in Java. This was a class projets, that aimed to evaluate our abilites to work using scrum methods

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors