Macros:

        Les macros permettent d'enregistrer les tapes de certaines
        constructions, et d'ensuite les rpter, comme les procdures ou les
        subroutines de certains langages de programmation.
        Pour dfinir une macro, l'utilisateur construit un ou plusieurs objets
        (les objets finaux)  partir de certains objets dj construits
        (les objets initiaux) et apprend ensuite  la macro ce qu'elle doit
        faire. Par exemple, on peut dfinir une macro qui construit le cercle
        circonscrit  un triangle: les objets initiaux sont dans ce cas les
        sommets du triangle, et l'objet final est le cercle circonscrit.
        On peut galement dfinir des macros dans des fichiers de constructions
        (programmes, ou constructions descriptives): pour plus de dtails,
        voir la rubrique spcifique.

Dfinition des macros:

        Pour dfinir des macros, on utilise l'outil de dfinition de macros.
        L'icne de cet outil prsente trois aspects diffrents suivant la phase
        dans laquelle on se trouve. Le premier tat correspond  la phase de
        choix des objets initiaux: on slectionne les objets initiaux les uns
        aprs les autres avec la souris. Quand on a termin, on clique sur
        l'icne de l'outil, qui change alors d'aspect. Seuls les objets qu'on
        peut construire  partir des objets initiaux slectionns restent
        visbles sur la figure. On slectionne alors ceux qu'on veut, les uns
        aprs les autres (si on n'en slectionne pas, tous les objets visibles
        sur l'cran seront considrs comme objets finaux). Les objets finaux
        prendront lors de l'excution de la macro le style et la couleur par
        dfaut; tous les autres objets apparatront avec le mme style que lors
        de la dfinition de la macro,  l'exception des objets noirs qui
        prendront la couleur par dfaut. En particulier, les objets cachs
        seront cachs lors de l'excution de la macro. Une option
        supplmentaire permet de cacher automatiquement tous les objets qui ne
        sont pas des objets finaux, mme s'ils sont visibles lors de l'
        enregistrement de la macro.

        Si la macro est utilise en mode descriptif, on peut seulement assigner
        des noms aux objets finaux. Il faut toujours, dans ce cas, dfinir au
        moins un objet final.

        Aprs avoir dfini les objets initiaux et les objets finaux, un autre
        clic sur l'outil macros permet de dfinir la macro: il suffit d'entrer
        son nom, un commentaire si on le souhaite; on peut aussi diter le texte
        qui apparaitra dans la ligne d'tat lors du choix des objets initiaux.
        On peut aussi choisir de cacher les constructions intermdiaires pour
        ne laisser apparatre que les objets finaux lors de l'excution de la 
        macro.

        On peut enfin demander  l'utilisateur de fournir une valeur soit
        pour un cercle de rayon fixe, soit pour un angle de mesure fixe lors de
        l'excution de la macro. Il suffit pour cela d'entrer le nom du cercle
        ou de l'angle dans la dernire ligne de la bote de dialogue. Une bote
        de dialogue s'ouvrira alors  l'excution de la macro o l'utilisateur
        pourra entrer n'importe quelle expression arithmtique pour ce
        paramtre.


Enregistrement et chargement d'une macro:

        Les macros peuvent tre charges et enregistres en mme temps que
        la figure ou sparment. Le format de fichier utilis pour l'
        enregistrement des macros est identique au format utilis pour l'
        enregistrement des figures, mais ces fichiers ne doivent contenir que
        des macros et pas de figures.
        Si l'option "Inclure toutes les macros" est choisie, toutes les macros
        seront enregistres en mme temps que la figure. Quand de tels fichiers
        sont ouverts, le programme demande  l'utilisateur s'il doit craser les
        macros dj existantes qui porteraient le mme nom.

        Pour l'exportation sous forme de page HTML, il est ncessaire d'inclure
        les macros dans la figure.


Excution d'une macro:

        Il y a un outil appropri  cet effet. La macro est choisie dans la
        liste des macros disponibles. Si la touche Maj est maintenue enfonce,
        la dernire macro utilise est automatiquement slectionne. Le
        programme demande alors  l'utilisateur de slectionner les objets
        initiaux et affiche le rsultat de l'excution de la macro.

        On peut aussi dmarrer une macro avec le bouton droit de la souris: il
        suffit de cliquer sur un emplacement vide; la liste des macros
        disponibles s'affiche, et il suffit de choisir celle qu'on veut dans
        le menu.

        Si la ligne d'tat affiche "la barre d'espace choisit ...",
        on peut choisir l'objet propos comme objet initial simplement en
        appuyant sur la barre d'espace; cela est particulirement utile si on
        applique plusieurs fois la macro avec de mmes objets initiaux.

        Si la macro a besoin d'une valeur pour un cercle ou un angle fixe,
        une bote de dialogue s'ouvre pour la demander. On peut y entrer
        n'importe quelle expression arithmtique.

Types d'objets utilisables comme objets initiaux:

        Le plus simple est d'utiliser des points comme objets initiaux.
        Mais il est galement possible d'utiliser d'autres types d'objets.

        Les droites, les demi-droites, les segments possdent des objets
        secondaires qui leur sont associs (les points qui ont servi  les 
        dfinir, ou le centre pour un cercle). Cela peut simplifier
        l'utilisation de la macro. Mais il faut bien faire attention  ce que
        les objets initiaux auxquels on applique la macro vrifient les mmes
        proprits que les objets qui ont servi  la dfinir: par exemple, deux
        cercles qui taient concentriques lors de la dfinition de la macro
        doivent l'tre aussi lorsqu'on l'excute. De mme, si deux segments AB
        et BC taient des objets initiaux de la macro lors de sa dfinition, on
        ne peut l'appliquer qu' des segments EF et FG qui ont une extrmit
        commune.

        Il y a deux types de droites et de demi-droites: celles qui sont
        dfinies par deux points, et celles qui ne sont dfinies que par un seul
        (les parallles, par exemple). Dans la macro, les droites, les demi-
        droites et les segments ne sont pas affects de points particuliers
        si ces points n'ont pas t slectionns comme objets initiaux de la
        macro, ou s'ils n'ont qu'un seul point de dfinition. L'utilisateur peut
        alors choisir n'importe quelle droite comme objet initial. Si l'un des
        deux points servant  dfinir l'objet est utilis, il faudra lors de l'
        excution de la macro choisir un objet du mme type.


Utilisation d'expressions dans les macros:

        Si on utilise des expressions dans les macros, les objets initiaux,
        qui peuvent tre utiliss dans l'expression, seront correctement
        remplacs. Il vaut pourtant mieux viter d'avoir recours  ce genre de
        construction, qui risque de poser des problmes.

