Les schémas de structure (voir section 1) sont utilisés par l'éditeur pour proposer à l'utilisateur les éléments qu'il peut créer à chaque instant. C'est également d'après ces schémas que l'éditeur peut engendrer les constituants de chaque nouvel élément. Ainsi, si on sélectionne une Section, l'éditeur propose de créer une nouvelle Section avant la Section courante ou après celle-ci, et une fois ce choix fait, il engendre le contenu minimum d'une Section, à savoir un Titre_section et une Suite_paragraphes (voir le schéma de structure de la 2).
Comme pour le texte, les opérations qui agissent sur la structure logique d'un document s'appuient sur la sélection : il faut d'abord sélectionner la partie du document que l'on veut modifier, avant d'appliquer une commande à cette partie.
La sélection ne s'applique pas seulement aux chaînes de caractères, comme on l'a vu dans la section 3.2 ; elle s'applique aussi aux éléments de la structure logique des documents, avec des commandes analogues.
Il y a plusieurs moyens de sélectionner un élément logique et tous peuvent être employés indifféremment :
Le choix des des touches qui commandent ces déplacements structuraux peut être modifié lors du paramétrage du clavier (voir section 23.4).
Ces différents modes de sélection peuvent être combinés : on peut par exemple sélectionner d'abord un élément avec la souris, puis passer à l'élément voisin avec le menu « Sélection » et enfin utiliser la touche Esc pour passer à un élément englobant.
Quel que soit le mode de sélection choisi, et même lorsqu'on sélectionne simplement du texte, le type de l'élément sélectionné est affiché en bas de la fenêtre, dans la zone des messages. Cette zone affiche également le type des éléments qui englobent la sélection courante, sur plusieurs niveaux.
Lorsqu'un élément (ou même un simple caractère) est sélectionné, on peut étendre la sélection en cliquant avec le bouton du milieu de la souris sur un autre élément. Cela sélectionne une suite d'éléments de même niveau dans la structure logique, les éléments extrêmes de cette suite contenant l'élément initialement sélectionné et l'élément sur lequel se trouve le curseur souris au moment du clic.
Comme pour la sélection de texte, on peut étendre la sélection en maintenant le bouton du milieu enfoncé, tout en déplaçant la souris.
Lorsque plusieurs éléments de la structure logique sont sélectionnés, la zone « Sélection » affiche les types de ces éléments, puis les types des éléments englobants.
La commande de recherche présentée section 3.8 permet de rechercher non seulement en fonction du texte, mais également en fonction de la structure logique du document. D'autres commandes sont également disponibles pour différents types de recherches (les commandes de recherche sur les références, renvois et liens hypertextes sont présentées dans les sections 5.4 et 5.5).
L'entrée « Texte et structure » du sous menu « Rechercher » du menu « Édition »(voir section 3.8) affiche un formulaire qui peut être utilisé pour rechercher un élément logique d'un type donné. Lorsque la zone « Texte à chercher » de ce formulaire est vide, on peut sélectionner un type d'élément dans la liste « Type à chercher ». On peut aussi saisir directement le nom de ce type dans la zone placée sous la liste. Lorsqu'on clique sur le bouton « Confirmer » du formulaire, l'éditeur cherche alors le prochain élément du type demandé et il le sélectionne. Comme pour la recherche de texte, la recherche a lieu dans la partie du document indiquée dans le menu « Où rechercher » du formulaire (voir section 3.8).
Lorsque le document utilise plusieurs schémas de structure, on peut choisir parmi ces schémas ceux dont les types d'éléments apparaissent dans la liste « Type à chercher ». Il suffit pour cela de cliquer sur les boutons carrés de la liste « Natures » : seuls les types définis dans les schémas choisis apparaîtront dans la liste « Type à chercher ». La liste « Attributs à chercher » est mise à jour en même temps (voir section 6.4).
On peut rechercher une chaîne de caractères ou une expression régulière qui figure dans un élément d'un type donné en remplissant les deux zones « Texte à chercher » et « Type à chercher ». On peut également combiner cette recherche avec celle d'un attribut (voir section 6.4).
On peut aussi demander le remplacement des chaînes trouvées dans un contexte donné, en utilisant la zone « Texte de remplacement » et les options de « Remplacement », de la même façon qu'en 3.8.
Les éléments de la structure logique qui n'ont pas de contenu apparaissent sous la forme d'un rectangle tramé, comme ci-dessous (il s'agit d'un élément Paragraphe vide).
Ces éléments sont dans un état provisoire : l'utilisateur doit soit les supprimer soit leur donner un contenu. Une commande permet de rechercher ces éléments vides, pour être sûr de les traiter tous.
Pour lancer cette commande, il faut sélectionner l'entrée « Éléments vides » du sous-menu « Recherche » du menu « Édition » (dans la barre de menu, en haut de la fenêtre), ce qui affiche un formulaire présentant le même sous-menu « Où rechercher » que la commande de recherche de texte (voir section 3.8). Après avoir sélectionné la zone de recherche, chaque fois qu'on active le bouton « Confirmer » de ce formulaire, l'élément vide suivant est recherché et sélectionné, jusqu'à ce que tous les éléments vides de la zone de recherche aient été trouvés. Le message « Pas trouvé » s'affiche alors en bas du formulaire.
Le menu « Pages » contient une entrée « Aller à la page » qui permet de se déplacer jusqu'à une page donnée. Lorsque cette entrée du menu est sélectionnée, un petit formulaire apparaît pour la saisie du numéro de la page cherchée. Une fois ce numéro entré, il faut activer le bouton « Confirmer » du formulaire pour que la page voulue apparaisse dans la fenêtre.
On peut ajouter des éléments dans la structure logique soit en créant de nouveaux éléments, soit en collant des éléments copiés ou coupés ailleurs (voir section 4.5).
Pour créer de nouveaux éléments dans la structure logique, il faut utiliser le menu « Insérer ». La touche Return peut aussi être utilisée dans certaines conditions. Dans les deux cas, il faut d'abord sélectionner un élément logique au voisinage duquel on veut créer le nouvel élément.
Le menu « Insérer » peut être appelé soit par le menu « Édition » de la barre de menu, soit par le bouton droit de la souris, lorsque celle-ci est sur un document Thot.
Ce menu est construit en fonction de la sélection courante et du schéma de structure du document. Il est donc variable. Il affiche tous les types d'éléments qui peuvent être créés avant ou après la sélection courante. En choisissant une entrée de ce menu, on choisit l'élément à créer et sa position structurale.
L'élément est alors créé avec tous ses composants obligatoires (ceux qui ne sont pas précédés d'un point d'interrogation dans le schéma de structure, voir 2), tels qu'ils sont décrits dans le schéma de structure. Ces composants sont évidemment vides et apparaissent sous la forme d'un rectangle tramé.
Le schéma de structure peut offrir des choix pour le contenu de certains éléments. Dans ce cas, un ou plusieurs autres menus sont présentés, dans lesquels l'utilisateur doit indiquer ses choix. À titre d'exemple, on peut essayer de créer un nouveau paragraphe après ce paragraphe ; il faut d'abord sélectionner le paragraphe (par exemple en cliquant avec le bouton gauche de la souris sur l'espace du retrait de la première ligne), puis on doit faire les choix suivants dans les menus qui s'enchaînent : Paragr, Paragraphe, Simple_paragraphe, Texte.
Lorsqu'on a sélectionné un élément vide (comme celui de la section 4.2.3) ou un élément qui ne contient pas tous les composants prévus par le schéma de structure, la première entrée du menu « Insérer » est « A l'intérieur ». Cette entrée permet alors de créer les éléments manquants à l'intérieur de l'élément sélectionné. Cette entrée est également proposée lorsqu'on a sélectionné une référence (voir section 5.3).
La touche Return offre une façon plus rapide, mais moins souple, de créer un nouvel élément après celui qui est sélectionné. Elle crée, si le schéma de structure l'autorise, c'est-à-dire si l'élément ascendant a une structure de type Liste (par exemple une suite de sections, de paragraphes, d'items de liste), un nouvel élément du même type que l'élément sélectionné, après celui-ci. Lorsque la sélection est au milieu d'un paragraphe, elle permet de couper ce paragraphe en deux.
À titre d'exemple, on peut sélectionner ce paragraphe (par exemple en cliquant avec le bouton gauche de la souris sur l'espace du retrait de la première ligne) et appuyer sur la touche Return : un nouveau paragraphe est créé. On peut aussi essayer de créer une section de la même façon.
Lorsqu'un nouvel élément est créé, il est vide et apparaît sous la forme d'un rectangle tramé. Si cet élément doit contenir du texte, on peut simplement le sélectionner (s'il ne l'a pas été par la commande de création) puis frapper le texte au clavier. Si ce n'est pas déjà fait, l'éditeur complète la structure logique du document pour qu'un élément terminal de type texte soit créé dans la descendance de l'élément sélectionné et il entre les caractères frappés au clavier dans cet élément.
Si on crée une Section après ce paragraphe, l'éditeur engendre dans la nouvelle section deux éléments : un titre contenant un élément de texte et un élément Paragr vide (le premier paragraphe de cette nouvelle section). L'élément Paragr est transformé en un Simple_paragraphe contenant un élément de texte, dès qu'on le sélectionne et qu'on frappe du texte ; la zone « Sélection » en haut de l'écran rend compte de cette transformation de la structure logique.
La suppression d'éléments de la structure logique s'effectue par les mêmes commandes que la suppression de chaînes de caractères (voir 3.6).
Lorsqu'un ou plusieurs éléments sont sélectionnés, on peut les détruire soit avec la touche Delete, soit avec la combinaison de touches Control D. On peut aussi utiliser le menu « Édition » et choisir l'entrée « Détruire ». Dans tous ces cas, les éléments supprimés sont perdus définitivement (attention, dans cette version de Thot, il n'y a pas de commande « Undo »). Pour pouvoir réutiliser les éléments détruits, il faut utiliser la commande « Couper » (voir section 4.5).
Avant de détruire un élément, il peut être utile de vérifier si cet élément est référencé (voir section 5.4) ou inclus (voir section 4.6) par d'autres éléments.
Les commandes « Couper », « Copier » et « Coller » présentées dans la section 3.7 pour la manipulation du texte agissent de façon analogue sur les éléments de structure.
Si on veut supprimer les éléments sélectionnés pour les réinsérer ailleurs, il faut utiliser la commande « Couper » du menu « Édition » ou la combinaison de touches Control W. Les éléments sélectionnés sont alors retirés du document et conservés dans le presse-papiers de Thot ; l'ancien contenu de ce presse-papiers est perdu.
Pour insérer le contenu du presse-papiers de Thot dans un document, il faut sélectionner l'élément devant lequel on veut insérer ce contenu puis appeler la commande « Coller » du menu « Édition » (ou utiliser la combinaison de touches Control Y au clavier). Si le presse-papiers contient des éléments de structure, et non pas une simple chaîne de caractères, un menu semblable à celui proposé par la commande « Insérer » (voir 4.3.1) s'affiche. Ce menu permet d'indiquer à quelle position dans la structure logique et avec quel type on veut coller le contenu du presse-papiers Thot. Il faut noter que la commande « Coller » peut échouer, dans le cas où le choix fait dans ce menu et le contenu du presse-papiers sont incompatibles. Dans ce cas, le message « L'élément Nom_Type ne peut être collé ici » est affiché dans la fenêtre principale de l'éditeur.
On peut copier dans le presse-papiers de Thot les éléments de structure sélectionnés, à l'aide de la commande « Copier » du menu « Édition » ou en utilisant la combinaison de touches Control C au clavier. Ces éléments peuvent ensuite être collés à un autre endroit du document ou dans un autre document.
Lorsque des éléments de structure sont sélectionnés, la commande « Copier dans X » du menu « Édition » copie dans le presse-papiers X le texte contenu par ces éléments. Ce texte est éventuellement tronqué si sa longueur dépasse la capacité du buffer du presse-papiers X (cette capacité est dépendante de la machine). Ce texte peut ensuite être collé dans une fenêtre X, comme indiqué section 3.7.
La commande « Coller » insère une copie morte. Dans certains cas, on peut souhaiter que la copie soit vivante, c'est-à-dire qu'elle soit mise à jour automatiquement chaque fois que l'élément qu'elle copie est modifié. Cela se fait par la commande « Inclure » du menu « Édition ». Cette commande n'utilise pas de presse-papiers et il est donc inutile de copier préalablement ; elle établit en fait un lien entre l'élément à copier et l'endroit où on veut le copier (voir l'article [QV92]).
La commande « Inclure » présente le même menu que la commande « Insérer » ou « Coller », c'est-à-dire la liste des éléments qui peuvent être créés avant ou après la partie sélectionnée. Une fois qu'on a choisi dans ce menu le type et la position de la copie, il faut désigner l'élément à copier, en le cliquant avec le bouton gauche de la souris. On peut cliquer dans n'importe quelle fenêtre d'un document, pourvu qu'on clique un élément du type choisi. On peut se déplacer dans le document à l'aide des bandes de défilement pour faire apparaître l'élément choisi avant de le cliquer.
Une fois l'élément désigné, la copie apparaît à l'endroit choisi et en couleur, pour indiquer qu'il s'agit en fait d'un lien (cette couleur peut être choisie par l'utilisateur, voir section 23.1.3 ; mais l'impression se fait toujours en noir). Une copie vivante ne peut pas être modifiée directement et il n'est pas possible de sélectionner à l'intérieur [1]. Les modifications doivent être effectuées sur l'élément original et elles sont répercutées automatiquement sur la copie.
On peut accéder très simplement à l'original depuis la copie, en double-cliquant la copie avec le bouton de gauche de la souris.
Si on ne peut pas modifier directement le contenu d'une copie vivante, on peut modifier l'élément copie lui-même : on peut changer sa présentation (voir section 8.3), on peut le détruire, le copier et le coller, etc.
Il est parfois nécessaire de diviser une partie d'un document en deux : une section qui devient trop longue, par exemple, est ainsi éclatée en deux sections. Cela se fait à l'aide de la commande « Diviser » du sous menu « Transformer » du menu « Édition ».
Cette commande ne peut être activée que lorsque la sélection se trouve à l'intérieur d'un élément qui, d'après le schéma de structure, peut être répété (la section dans l'exemple précédent). Dans ce cas, le menu indique explicitement, après le mot « Diviser », le type de l'élément qui sera coupé en deux. Si aucun des éléments qui englobent la sélection courante ne peut être répété, la commande « Diviser » est invalidée dans le menu « Édition ».
Lorsqu'elle est valide, la commande « Diviser » crée un élément du type indiqué, après l'élément de ce type qui englobe la sélection courante. Tous les éléments à partir du premier sélectionné et jusqu'à la fin de l'élément à diviser sont retirés de cet élément et mis dans le nouvel élément créé. L'élément qui a été divisé est éventuellement complété, ainsi que le nouvel élément créé, de façon qu'ils aient chacun un contenu conforme au minimum spécifié dans le schéma de structure.
À titre d'exemple, lorsqu'on sélectionne ce paragraphe, le menu « Édition » contient une entrée « Diviser Section ». Si on déclenche cette commande, une nouvelle section est créée après la section 4.7. Cette nouvelle section comporte un titre vide et ce paragraphe ainsi que le suivant. La section 4.7. ne contient plus ces deux paragraphes.
Comme toutes les commandes de Thot, la commande « Diviser » est générique et peut donc être appliquée à d'autres éléments que des sections.
La commande « Changer en » du sous menu « Transformer » du menu « Édition » permet de changer le type de l'élément sélectionné. Lorsque la commande « Changer en » est appelée, un menu propose les types d'éléments dans lesquels la sélection peut être transformée.
La commande « Autres » du sous menu « Transformer » du menu « Édition » permet d'appliquer des transformation prédéfinies à la sélection. Ces transformations sont déclarées dans les fichiers ayant l'extension .trans des répertoires schémas de Thot. La syntaxe utilisée pour l'expression des transformation est décrite dans le fichier README.trans.