Les documents sont des arbres

TeXmacs représente tous les textes sous forme d'arbres (pour un texte figé, l'arbre correspondant est appelé arbre d'édition). Les noeuds internes de l'arbre sont étiquetés par des opérateurs de type tree_label (voir Basic/Data/tree.gen.h). Les étiquettes des feuilles de l'arbre sont des chaînes de caractères, soit invisibles (telles les mesures ou les définitions de macros), soit visible (le texte lui-même). Les arbres TeXmacs peuvent être décrits à l'aide de notations diverses. Par exemple, l'arbre :

représente la formule :

x + y +

1
2
+ sqrt ( y + z )

et peut aussi être décrit de la façon suivante :

(concat

"x+y"

(frac "1" "2")

"+"

(sqrt "y+z"))

en notation Scheme.

La signification du texte et la façon dont il est typographié dépendent essentiellement de son environnement. L'environnement consiste en une table d'informations qui fait correspondre les variables d'environnement à leurs valeurs dans l'arbre. La langue, la police et la couleur actives sont des exemples de variables d'environnement système ; de nouvelles variables peuvent être définies par l'utilisateur. Par exemple, l'expression Scheme suivante :

(concat

"Some "

(with "color" "blue" "blue")

" text.")

représente le fragment de document :

Some blue text

La primitive TeXmacs with signale un changement local de variable d'environnement.

Dans la suite, nous décrirons plus en détail les opérateurs standards TeXmacs et les variables d'environnement. Il faut noter que le format de données TeXmacs est sujet à changement. Nous décrivons ces changements dans la dernière section. En général, l'utilisateur ne prend pas conscience de ces changements, car ils sont effectués par des programmes de conversion qui mettent automatiquement à jour les opérateurs. Néanmoins, ils ont parfois de l'importance pour les développeurs, bien que la plupart de ces changements concernent l'ajout de nouvelles primitives.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".