## 4 Aller plus loin: outils d'édition Lorsque vous aurez TEXworks bien en main, vous sentirez le besoin d'avoir des outils pour être plus efficace. Beaucoup d'outils existent dans TEXworks. Nous les passons maintenant en revue. ### 4.1 Créer un document à partir d'un modèle Les documents que nous créons ont le plus souvent les mêmes instructions dans le préambule, on charge les mêmes modules, on définit les mêmes caractéristiques de page, on définit aussi des en-tête et pied de page personnalisés,... On peut utiliser les modèles prédéfinis ou créer ses propres modèles contenant tous ces pré-requis. Utilisez Fichier / Nouveau à partir d'un modèle... ou `[Ctrl+Maj+N]` (Mac OS X `[Cmd+Shift+N]`). Une boîte de dialogue s'ouvre pour permettre la sélection du modèle. Après sélection et `OK` un document est créé et on peut commencer à travailler. Si on désire créer un modèle plus personnalisé, il suffit de créer ce document avec tout ce que l'on désire toujours y trouver (et en marquant éventuellement des emplacements à compléter) et de l'enregistrer comme fichier `.tex` dans le répertoire ressources de TEXworks `<home>\TeXworks\templates` ou un sous-répertoire éventuel de celui-ci. ### 4.2 Créer un projet sur plusieurs fichiers sources Lorsque la source d'un document devient longue, il est parfois difficile de se déplacer dans celle-ci. On a alors avantage à scinder le fichier source en plusieurs fichiers plus petits: un fichier sera le document principal, central, qui contiendra le préambule, l'environnement `document`, ainsi que des appels aux «sous-documents»13. Mais il y aura un problème si, étant dans un sous-document, on lance la composition/compilation; comme il n'y a pas de préambule ni d'environnement `document` on a immédiatement un arrêt sur erreur. Pour signaler à TEXworks qu'il doit compiler le document principal on ajoute au début du fichier sous-document l'instruction: `% !TeX root = chemin/au/fichier_principal.tex` par exemple: `% !TeX root = manuel.tex` Si le fichier principal est dans le même dossier, son nom suffit, comme dans l'exemple ci-dessus. Remarquer aussi l'utilisation des barres obliques «`/`» et non des contre-obliques «`\`» utilisées par Windows pour séparer les niveaux de dossiers. De plus, avec MikTeX, l'appel au sous-document, `\input{nom.tex}`, doit inclure l'extension `.tex` pour que SynTeX fonctionne convenablement. ### 4.3 Vérification d'orthographe On peut demander de faire une vérification orthographique automatique durant la frappe par Édition / Vérification orthographique / <choix-de-langue>: par exemple fr-FR pour le français. Lors de la frappe, s'il y a une erreur, le mot est souligné par un liséré rouge. Un clic-droit sur le mot ouvre un menu contextuel dans lequel il y a des propositions de mots de remplacement. Cliquer sur le mot désiré pour effectuer le remplacement. Avant d'utiliser la vérification orthographique, il faut installer des dictionnaires dans le bon dossier de TEXworks; `<home>\TeXworks\dictionaries`. On peut utiliser les dictionnaires disponibles pour OpenOffice et d'autres logiciels libres 14; si par exemple vous avez Thunderbird avec correction orthographique, vous pouvez copier les fichiers `.aff` et `.dic`. Il est possible de demander à TEXworks d'utiliser par défaut un dictionnaire par Édition / Préférences…/ Éditeur option Langue de vérification orthographique:. ### 4.4 Rechercher et remplacer Autres outils classiques: la recherche et le remplacement de texte. TEXworks dispose évidemment de ces possibilités avec quelques possibilités supplémentaires. #### 4.4.1 Les actions classiques Les options du menu Recherche: “Rechercher…”, “Chercher encore”, “Remplacer…” et Remplacer encore (`[Ctrl+F`], `[Ctrl+G]`, `[Ctrl+R]` et `[Ctrl+Maj+R]` respectivement, Mac OS X `[Cmd+F]`, `[Cmd+G]`, `[Cmd+R]` and `[Cmd+Shift+R]`) sont des actions classiques; la première et la troisième provoque l'ouverture d'une boîte de dialogue: On y trouve les options habituelles: Chercher vers le haut, Recherche en boucle – dans tout le document ou Remplacer dans la sélection. Sont aussi classiques les options Sensible à la casse et Mots entiers. Par défaut la recherche se fait vers le bas, la fin du texte. L'option Remplacer dans tous les fichiers ouverts est une extension fréquente, mais pas aussi répandue que les autres; cela permet de faire, par exemple, des remplacements dans tous les fichiers d'un projet – faites attention que ceci est très puissant. La dernière option, Expression régulière, est expliquée ci-après. Dans le menu Recherche il y a d'autres options intéressantes: Copier vers Rechercher, on peut sélectionner un texte et l'envoyer dans la zone de saisie Rechercher: de la boîte de dialogue Rechercher ou Remplacer; vous devez encore ouvrir Rechercher ou Remplacer séparément; Copier vers Remplacer, on peut faire de même avec un texte de remplacement vers la zone Par: de la boîte de dialogue Remplacer; Trouver la sélection, ici il n'est même plus nécessaire d'envoyer la sélection vers la zone Rechercher: puis d'ouvrir la boîte de dialogue par `[Ctrl+F]`, il suffit de lancer la commande (`[Ctrl+H]` et TEXworks cherche l'occurrence suivante de la sélection; on peut répéter l'action par `[Ctrl+G]`; Montrer la sélection, si on a sélectionné un texte et qu'on s'est déplacé dans le document par la glissière latérale, entrer `[Ctrl+=]` nous ramène immédiatement au texte sélectionné, pratique aussi si on ne fait pas passer les lignes à la ligne. #### 4.4.2 Les expressions régulières Les expressions régulières forment un outil très performant, mais qu'il convient de bien comprendre. Il faudrait un manuel uniquement pour cet apprentissage, mais nous allons donner quelques idées d'utilisation. Voir aussi les expressions disponibles dans la section 6.2. Supposons que nous ayons le texte suivant:
    Voici du texte pour tester les expressions régulières
    dans du texte accentué.
    Voici du texte pour tester les expressions régulières dans
    du texte accentué.
    Voici du texte pour tester les expressions régulières. Voici
    du texte pour tester les expressions régulières.
    texte          texte
    tél.: 010-99-99-99
    tél.: 00.32.10.99.99.99
    tél.: 00/32-10/99.99.99
Nous désirons d'une part 1) séparer les différents paragraphes par une ligne vide après «accentué» (paragraphe dans LATEX) mais pas pour les trois numéros de téléphone, nous voulons aussi 2) remplacer les deux tabulations qui séparent les deux mots «texte» du quatrième paragraphe chacun par trois espaces et, enfin, 3) uniformiser les numéros de téléphones en remplaçant les «`-./`» par des espaces. Dans la boîte de dialogue nous devons cocher l'option Expression régulière. Pour 1) dans la boîte de dialogue Remplacer (`[Ctrl+R]`) pour Rechercher: on mettra `>\n<` 15 et dans Par: `>\n\n<`. `>\n<` est le code pour le passage à la ligne. On prendra soin d'avoir sélectionné les quatre premiers paragraphes et le début du cinquième (premier numéro de téléphone) et de cocher la case Remplacer dans la sélection; si on ne l'a pas fait, sélectionner les lignes de téléphone et faire l'opération inverse `>\n\n<` et `>\n<`. Pour 2) on utilisera `>\t<` et «`>___<`. `>\t<` est le code représentant une tabulation. Pour 3) ce sera `>-|\.|/<` et `>_<`. Ici `|` sépare les diverses possibilités; pour le point nous avons utilisé `>\.<` car le point seul représente n'importe quel caractère et nous aurions donc remplacer tous les caractères par un espace!! nous utilisons donc un code pour avoir le point. Si on a des chaînes d'un même caractère mais de longueurs différentes (exemple 2, 3, 4, 5 caractères) et qu'on veut tout ramener à une chaîne plus courte (exemple 2), on peut demander de remplacer la chaîne `>e{3,5}<` par `>ee<`. Si on veut insérer devant une série de paragraphes séparés ou non par une ligne vide une même chaîne par exemple `\noindent_` ou `\item_`, on peut remplacer `>\n\n<` ou `>\n<` par `>\n\n\\noindent_<` ou `>\n\\noindent_<`. Attention, on a doublé le `\` devant `noindent`! Si cela avait un sens, nous pourrions remplacer toutes les lettres comprises entre «a» et «m» par «$» en utilisant `>[a-m]<` et `>$<`. ### 4.5 Autres outils d'édition et de recherche d'erreur #### 4.5.1 Outils standard Il est toujours possible d'annuler une action non-désirée par Édition / Annuler ou `[Ctrl+Z]` (Mac OS X `[Cmd+Z]`); on peut ainsi annuler à reculons! L'opération inverse, annuler l'annulation ou refaire, s'obtient par Édition / Répéter/refaire ou `[Ctrl+Maj+Z]` (Mac OS X `[Cmd+Opt+Z]`.) TEXworks dispose des outils classiques d'édition comme le presse papier; on peut donc sélectionner, couper/copier puis coller une partie de texte. On peut sélectionner à la souris en «glissant» sur le texte à sélectionner, et on peut aussi «double cliquer» pour sélectionner un mot. Au clavier il suffit de se déplacer en maintenant la touche `[Maj]` enfoncée; on utilisera les touches de direction seules avec `[Maj]` ; mais on peut aussi se déplacer et sélectionner par mot en se déplaçant à gauche ou à droite en maintenant `[Ctrl+Maj]` enfoncés(`[Cmd+Shift]` sous Mac OS X). Les raccourcis clavier du presse papier sont les raccourcis que l'on trouve dans tous les logiciels: `[Ctrl-X]` pour couper, `[Ctrl+C]` pour copier et `[Ctrl+V]` pour coller (`[Cmd+X]`, `[Cmd+C]` and `[Cmd+V]`, respectivement, Mac OS X.) On peut facilement changer la casse d'une sélection – tout mettre en capitales ou tout en minuscules – par Édition / Changer la casse / puis suivant le cas TOUT EN CAPITALES ou tout en minuscules. Il est aussi pratique de voir les numéros de lignes, car tous les messages d'erreurs font référence à ces numéros; vous pouvez basculer `on/off` l'affichage des lignes, sur la gauche du panneau de saisie, par Format / Numéros de ligne. #### 4.5.2 Commenter Quand on met au point un texte pour (LA)TEX il est souvent intéressant d'empêcher la compilation d'une partie du texte pour arriver à localiser les erreurs; on progresse ainsi morceau de texte par morceau de texte qui fonctionne jusqu'à rencontrer un fragment qui cause une erreur. Pour cela on commentera la source. Nous avons vu que le signe `%` indique le début d'un commentaire. Pour commenter une grande partie de texte, il suffit de la sélectionner puis de demander le marquage en tant que commentaire Format / Commenter ou `[Ctrl+(]` (Mac OS X: `Cmd+Shift+]`.) Pour supprimer la mise en commentaire: Format / Dé-commenter ou `[Ctrl+)]` (Mac OS X: `Cmd+Shift+[`) 16. #### 4.5.3 Équilibrer les délimiteurs Une erreur fréquente est d'oublier un symbole fermant: parenthèse, accolade, crochet,... TEXworks propose un outil pour mettre en évidence les paires de symboles: lorsqu'on passe sur un de ces symboles son complémentaire est brièvement mis en sur-brillance orange. On peut également, quand on est à l'intérieur d'un bloc ainsi délimité demander de le sélectionner par Édition / Sélection d'un bloc entre délimiteurs ou son raccourci `[Ctrl+B]` (Mac OS X: `[Cmd+B]`. On voit ainsi directement l'ampleur du bloc. #### 4.5.4 Guillemets intelligents Une autre erreur similaire, mais ici sémantique et n'ayant aucune influence sur la composition, est rencontrée dans l'utilisation des guillemets lorsqu'on désire mettre un texte en évidence. En français il y a des guillemets ‘simples' et des guillemets «doubles». On utilise également les guillemets “anglais” pour un texte entre guillemets dans un texte déjà entre guillemets. Les guillemets simples et doubles anglais sont obtenus par ``` et `´`; ce ne sont pas les guillemets utilisés en programmation et trouvés sur la clavier `"` et `'`. Mais utilisant le système des guillemets intelligents de TEXworks, on peut utiliser ces derniers pour produire automatiquement les guillemets simple/double ouvrants et fermants. Dans un document `.tex`, sélectionnez un des systèmes de guillemets intelligents: Format / Guillemets intelligents / Ligatures TeX|Commandes TeX|Caractères Unicode – par défaut, il n'y a que les systèmes pour les guillemets à l'anglaise, mais on peut définir c'est propres quillemets. Ensuite dans votre texte, lorsque vous voulez commencer un texte mis en évidence, disons des guillemets doubles, entrez `"` puis le texte et pour terminer de nouveau `"`; TEXworks va automatiquement insérer les guillemets ouvrants ```` et ensuite les guillemets fermants corrects `''`. Les trois options donnent le même résultat dans le document .pdf. Enfin, il est possible de définir ses propres systèmes de guillemets dans le fichier de définitions (`smart-quotes-modes.txt` dans le dossier `configuration` du dossier ressources. Par exemple, pour les guillemets français de babel, ajoutez le code suivant:
    #[French quotes]
    [Guillemets français]
    '   `     '
    "   \og{}    \fg{}
### 4.6 La complétion automatique Un autre outil dont on ne peut rapidement plus se passer est la complétion automatique. En effet, quand on utilise (LA)TEX, on doit continuellement entrer des codes pour, par exemple, créer des environnements; de plus dans ce cas il ne faut pas oublier de les fermer. La complétion automatique permet de taper une suite de caractères, on pourrait dire un mot clé, puis en tapant `[Tab]` on crée automatiquement le code de la commande ou de l'environnement (LA)TEX. Par exemple, pour obtenir «LATEX», il faut entrer `\LaTeX`. Ce n'est pas difficile, mais l'introduction du “`\`” 17 puis du mot “`LaTeX`” avec l'alternance de majuscules et de minuscules peut devenir fastidieux à la longue. Par la complétion automatique il suffit d'entrer `latex` puis taper `[TaB]` pour obtenir `\LaTeX`. Il faut juste veiller à ne pas avoir une lettre accolée devant ou derrière `latex`. Autres exemples, `bmin` produit:
    \begin{minipage}{}
    •
    \end{minipage}
le curseur de saisie se trouve dans la paire d'accolades vide où il faut entrer la dimension de la minipage, et `xve` donne `\varepsilon` soit ε en mode mathématiques. Voir la section 6.3 pour une liste des mots clé d'auto-complétion. Remarquons le «•» dans l'environnement minipage. C'est une marque que l'on peut atteindre par `[Ctrl+Tab]` (`[Option+Tab]` sur le Mac), en répétant on avance dans la structure créée et par `[Ctrl+Maj+Tab]` (`[Option+Shift+Tab]`) on recule. Il est à remarquer que si on donne un mot clé partiel et que l'on appuie successivement sur `[Tab]`, on peut avoir d'autres complétions, généralement associées. Par exemple, `bali` (le `b` indique un début d'environnement `\begin{}`) crée l'environnement `align` après un `[Tab]`, `align*` ensuite, puis successivement `alignat`, `alignat*`, `aligned`, `alignedat`, `alignedat` avec option; ces derniers environnements ont leur propre code qui commence par `bali` (`balis baliat baliats balied baliedat` et enfin `baliedato`.) Enfin, si vous désirer créer vos propres raccourcis, vous pouvez toujours ajouter un fichier `.txt` dans le sous-répertoire `completion` du répertoire `TeXworks` créé à la première utilisation (voir la section 2 sur l'installation.) Les entrées dans ce fichier seront de la forme:
    bfigo:=\begin{figure}[#INS#]#RET##RET#\end{figure}•
    \bibliography{#INS#}•
Dans le premier cas, pour l'environnement `figure` avec option, `bfigo` est le mot clé, puis vient l'affectation `:=` et la définition: écrire `\begin{figure}[] \end{figure}` avec un passage à la ligne après le `begin` (`#RET#`), laisser une ligne vide (deuxième `#RET#`) et mettre le curseur d'insertion entre les crochets (`#INS#`); «•» est la marque de déplacement. Dans le deuxième cas il n'y aura que `\bibliography{}` lui-même et le curseur entre les accolades. Le mot clé est l'instruction elle-même. Il est évidemment possible d'utiliser le «•»! Il faut veiller à créer des fichiers `.txt` encodés en utf-8; on peut pour cela utiliser le programme TEXworks lui-même.