# TeXML

TeXML [tɛχːml] est – en tant que procédé – une solution alternative à la technique XSL-FO, basée sur TeX.
TeXML a été mis au point en tant que projet OpenSource avec pour objectif de représenter automatiquement les données XML avec une mise en page de haut niveau sous forme PDF.
À l'aide d'une définition de structure supplémentaire, TeXML permet de surmonter les différences de syntaxe entre TeX et XML.
Sur le plan technique, les éléments de balisage TeX sont représentés en syntaxe XML.

## Développement

TeXML est un perfectionnement de la spécification élaborée à l'origine par IBM, qui fait la différence entre Structure et Transformation.
* Structure
** La définition XML de la structure TeXML est considérée comme définitive depuis 1999 (via TeXML.dtd).
** Elle constitue le maillon de balisage reliant TeX et XML.
* Transformation
** Les procédés de transformation fonctionnent de manière stable depuis la fin de l'année 2010, afin de rendre possible une utilisation productive de la technologie.
** La tentative d'une application Java effectuée à l'origine par IBM a été abandonnée et n'a pas été poursuivie.

## Application

TeXML est utilisé pour réaliser de la documentation technique à partir de données XML.
Après la transformation TeXML → TeX, toute la gamme de macros TeX définie via LaTeX est disponible.
À l'aide de macros TeX, il est possible pour la publication de données XML de définir n'importe quelle mise en page configurable.

## Particularités

* TeXML permet la publication automatique de données XML à l'aide d'un logiciel de mise en page conçu pour la mise en page manuelle.
* Contrairement à la publication utilisant la technique XSL-FO, la mise en page des données XML à publier peut être finement modulée avec des règles d'exception dans le code intermédiaire.
* Les règles d'exception peuvent être apprises par le procédé de publication, la mise en page est améliorée avec chaque cycle de génération.
* Les procédés de publication haute vitesse, particulièrement en cas de documents volumineux, peuvent multiplier la vitesse jusqu'à 100 fois par rapport aux procédés basés sur XSL-FO.

## Structure TeXML

La DTD de la structure TeXML se compose des éléments XML suivants :
* Élément racine : TeXML
* Commandes d'encodage : cmd
* Environnements d'encodage : env
* Groupes d'encodage : group
* Groupes d'encodage mathématiques : math et dmath
* Symboles de commande d'encodage : ctrl
* Symboles spéciaux d'encodage : spec
* Littéraux PDF : pdf

## Structure d'un document TeXML

Exemple d'un document XML qui a déjà été transformé en structure TeXML :

## Procédé TeXML

Le procédé TeXML transforme en TeX les données XML disponibles en format intermédiaire TeXML :

## Prise en charge des procédés

Les tâches de saisie (XML) et de publication (TeX) sont prises en charge par différents outils, par exemple :
* Au niveau de la saisie : éditeurs XML
    – Eclipse (logiciel), open source
    – autres éditeurs XML gratuits
* Au niveau de la publication : synchronisation entre le code et le PDF généré à l'aide de pdfSync :
    – PC Windows : éditeur MiKTeX
    – MAC OSX : éditeur TeXShop

## Littérature

* Frank Mittelbach The LaTeX Companion – Tools and techniques for computer typesetting
* Michel Goossens The XeTeX Companion – TeX meets OpenType and Unicode

## Liens Internet

* SGML/XML and (La)TeX – Esquisses de solutions pour la représentation de XML sous TeX
* TeXML : an XML syntax for TeX – Projet TeXML (Download)
* How to embed pdfsync into pdftex – Synchronisation entre code et PDF
* TeXML : Typesetting XML with TEX – Conception d'origine du projet TeXML
* TeXML : A three-part solution that provides a path from XML into the TeX formatting language – Brève présentation du projet de IBM Research (archive)