{"word_count": 758, "character_count": 5822}
Dans un précédent billet d’introduction, nous avons vu comment présenter des exemples linguistiques numérotés et glosés avec LaTeX. Ce billet va présenter quelques solutions pour traiter les gloses de manière systématique et efficace.Intérêt de systématiser les gloses grammaticalesMon collègue Guillaume Jacques rédige actuellement une grammaire de référence du japhug avec LaTeX, et je l’ai encouragé à prendre le temps de réfléchir à une manière de systématiser le traitement de ses exemples glosés. En effet, la systématisation (semi-)automatique par la programmation constitue tout l’intérêt de LaTeX, et taper ses gloses en code dur comme sur une machine à écrire va à l’encontre même du principe de LaTeX. Cela serait en particulier une très mauvaise idée dans le cas d’un livre de plusieurs centaines de pages et d’exemples comme une grammaire.Il est conventionnel de présenter les marqueurs grammaticaux dans les gloses par des abréviations en petites capitales. La solution simple et évidente consiste donc dans les exemples à mettre chaque glose grammatical à l’intérieur d’une commande \textsc{ }.\begin{exe}\ex\gll Ceci est un exemple. \\this \textsc{cop.pres.3sg} \textsc{art.def.m.sg} example \\\glt `This is an example.'\end{exe}Mais cette méthode simpliste pose plusieurs problèmes: il est très facile de se tromper dans les gloses, en faisant des fautes de frappe par exemple il est impossible de créer facilement et automatiquement une liste classée par ordre alphabétique des abréviations grammaticales (qui devrait se mettre à jour continuellement, sinon il est facile d’oublier d’y inclure une abréviation ou d’y laisser une abréviation non-utilisée) changer une glose pour une autre, comme corriger «passé» en «perfectif» nécessite de faire un chercher/remplacer long et fastidieuxCréer des commandes de glosesLa solution au premier problème consiste à créer pour chaque glose une commande qui imprime l’abréviation voulue en petites capitales et d’utiliser ces commandes dans les exemples. Comme l’abréviation est imprimée automatiquement, il ne peut pas y avoir d’erreur, et une faute de frappe dans une commande provoque l’arrêt de la compilation et il est facile de corriger aussitôt l’erreur.Le second problème peut se résoudre grâce aux extensions LaTeX pour créer des glossaires et index. Il suffit de rajouter dans la définition de chaque commande d’abréviation une commande passant l’abréviation au moteur de glossaire.C’est précisément la solution implémentée par l’extension leipzig. Cette extension propose une série de commandes prédéfinies prennant en charge les abréviations standard des Leipzig glossing rules du type \Acc pour «ACC: accusatif». La liste des abrévaitions est réalisée en interne grâce à l’extension glossaries et nécessite plusieurs compilations et le recours au programme makeglossaries.L’extension glossaries est à mon avis aujourd’hui supplantée par l’extension acro, qui est complet et d’une bonne souplesse d’utilisation, et qui a l’avantage de ne pas nécessiter le recours à une outil externe ni des compilations à répétition (2 seulement pour imprimer la liste). Parmi les fonctions utiles, on peut noter les suivantes: des commandes permettent de choisir d’imprimer le terme non-abrégé ou l’abréviation dans le texte il est possible d’imprimer la forme non-abrégée uniquement si c’est la première fois qu’elle apparait le style des abréviations et de la liste des abréviations sont complètement réglablesVoici un exemple complet ci-dessous. Par défaut, la liste s’imprime sous forme de liste de type enumerate. Je choisis ici le format tabular à la place.\documentclass[11pt]{article}\usepackage{gb4e,cgloss}\noautomath\renewcommand{\eachwordone}{\itshape}\usepackage{acro}\acsetup{short-format = {\scshape},extra-style = paren, list-style = tabular}\DeclareAcronym{cop}{short=cop,long=copula}\DeclareAcronym{pres}{short=pres,long=present}\DeclareAcronym{3}{short=3,long=third person}\DeclareAcronym{sg}{short=sg,long=singular}\DeclareAcronym{art}{short=art,long=article}\DeclareAcronym{def}{short=def,long=definite}\DeclareAcronym{m}{short=m,long=masculine}\usepackage{polyglossia}\setmainfont[Mapping=tex-text, Ligatures=Common]{Brill}\begin{document}The French \ac{cop}:\begin{exe}\ex\gll Ceci est un exemple. \\this \acs{cop}.\acs{pres}.\acs{3}\acs{sg} \acs{art}.\acs{def}.\acs{m}.\acs{sg} example \\\glt `This is an example.'\end{exe}\Acl{cop}\printacronyms[name=Grammatical abbreviations]\end{document}Rien n’empêche bien sûr de reprendre l’idée de leipzig et de définir des commandes du type \Acc:\newcommand{\Cop}{\acs{cop}}Si l’on change l’étiquette d’une glose, il suffit de changer la définition de la commande d’abréviation pour que toutes les gloses du document changent, y compris la liste.Aller plus loinOn peut imaginer plusieurs manières d’aller plus loin dans l’automatisation. Pour les utilisateurs de Toolbox on peut imaginer de rajouter une ligne de glose supplémentaire où les abréviations grammaticales sont les commandes définies dans LaTeX. Pour les textes déjà glosés, un script avec quelques expressions régulières permet de mettre chaque abréviation à l’intérieur d’une commande \acs{ }.On peut aussi envisager des commandes dont le nom serait la forme du morphème glosé, comme \un pour l’article français dans l’exemple ci-dessus. Et il suffit de rajouter un numéro ou un autre identifiant dans le cas d’homonymes ou de commandes déjà définies par ailleurs. C’est la solution que j’avais adoptée pour rédiger ma thèse, car j’avais prévu la possibilité que je change les étiquettes de certains marqueurs grammaticaux en cours de rédaction au fil de l’évolution de mon analyse.Je ne désespère pas un prochain jour d’écrire une extension LaTeX pour la linguistique qui prendrait en charge les idées développées dans ce carnet.[cite]