septembre
2009
Bonjour !
La perspective des rapports de stage aidant, j’ai repris le développement de mon éditeur LaTeX, abandonné à son triste sort depuis une bonne année.
Il a fallu se résoudre à tout reprendre à zéro en raison des nombreux problèmes de conception de la première mouture. Quelques jours et beaucoup de patience plus tard, (presque) toute la partie graphique est opérationnelle. Au menu :
- Contenu et disposition des menus et des barres d’outils personnalisables, parce que tout le monde n’a pas les mêmes attentes et n’utilise pas les mêmes extensions (donc pas les mêmes raccourcis, et ainsi de suite).
- Base de commandes et d’environnements LaTeX extensible. La possibilité de créer des groupes facilite grandement l’intégration par lots des commandes dans les menus et barres d’outils.
- Traduction de l’application en plusieurs langues. Le principe repose aussi sur un fichier. Il faudrait voir ce que vaut le binding OCaml de gettext, mais je n’ai pas encore essayé.
- Tables de symboles, pour les symboles mathématiques. La création de près de 300 fichiers PNG de qualité convenable a été très laborieuse.
- Gestion des greffons. Depuis peu, Dynlink fonctionne en code natif, et c’est une très bonne chose. Par contre la manipulation d’une table de fonctions nécessite un peu de magie noire (Obj.magic).
- Une bonne partie de la documentation pour utilisateurs avancés est rédigée. C’est un peu idiot, mais la documentation de base et la présentation du logiciel ne sont pas même commencées.
Le bilan de la réécriture est plutôt positif : en l’état actuel, le logiciel est passé de 5000 à 3000 lignes (valeurs approximatives) et le temps de chargement est toujours inférieur à 0.5 s sur une machine de puissance moyenne. Le format XML a été définitivement abandonné (pour cause de verbosité excessive… et puis aussi un peu de « délit de sale gueule ») au profit d’une syntaxe dérivée des S-expressions (avec un peu d’inspiration camélienne). Jusqu’à présent, le parsing des fichiers à l’aide de flots semble plus léger et facile à maintenir que les parseurs précédemment obtenus avec le couple lex/yacc.
OCamlTeX 0.6 – Le logiciel est distribué sous les termes de la licence GNU General Public Licence v3
Pour autant, le projet est toujours au stade de version alpha, et ne changera pas de statut avant quelques mois. Il manque en effet la partie la plus importante (et pas forcément la plus triviale), sans laquelle l’application ne sert à rien : lire/écrire des fichiers, charger des projets LaTeX à partir du document maître, etc.
Lien : Page du logiciel sur SourceForge.net
À bientôt,
Cacophrène
Salut !
Oui c’est le même projet. J’ai dans l’idée de migrer le projet hors de SourceForge mais je dois dire que, pour le moment, c’est pas encore ça (tentative avortée). Ce qui est sur OCaml Forge n’est même pas la dernière version de la première mouture… Ceci dit ce sommeil va bientôt prendre fin.
Cool
Il s’agit du même projet que sur OCaml Forge ?
https://forge.ocamlcore.org/projects/ocamltex2/