--- myst: html_meta: keywords: fontes, placement, correction, point, macron, trait, caron, chevron, cédille, accent" --- # Comment ajuster la position d'une diacritique sur une lettre donnée  ? Il arrive parfois qu'une diacritique soit mal positionnée. Si la [sélection d'un autre moteur de rendu](/3_composition/texte/symboles/polices/moteurs_rendu) ne suffit pas à résoudre ce problème, il est possible d'ajuster la position manuellement. Nous prendrons l'exemple des caractères `η̣` et `ḍ` dans la fonte Libertinus Serif. ## Avec des commandes de bas niveau (e-)TeX ``` \documentclass{article} \usepackage{fontspec} \setmainfont{Libertinus Serif} \pagestyle{empty} \begin{document} \Huge η̣ ḍ \newcommand*{\doteta}{η\llap{ \symbol{"0323}\kern0.1\fontcharwd\font`η}} \newcommand*{\dotd}{d\llap{ \symbol{"0323}}} \Huge \doteta{} \dotd \end{document} ``` Dans les deux cas, nous créons une commande qui affiche le caractère de base (`η` ou `d`) , puis y superpose (avec `\llap`) une espace avec laquelle a été combiné le caractère unicode U+0323 « point en-dessous en combinaison » (*combining dot below*). Dans le cas du `η̣`, il faut en outre déplacer légèrement l'espace pointée vers la gauche grâce à la commande `\kern` : plus précisément, on la déplace d'un dixième de la largeur du caractère `η` dans la fonte courante. Notez que l'argument de `\kern` doit être modifié selon la police utilisé. Dans le cas du `η̣`, nous avons créé un nom de commande ad hoc car il n'existe pas en Unicode de caractère simple qui y corresponde : cette forme est nécessairement composée de l'addition de `η` (U+03B7) et du caractère U+0323. En revanche, le caractère simple `ḍ` existe (U+1E0D), ce qui permet de l'utiliser directement dans le document [en en faisant un caractère actif](/2_programmation/macros/definir_un_caracteres_comme_une_macro) (dont le *catcode* est 13, comme `~`) que l'on associe à notre commande. :::{note} représenter une espace pointée (par exemple pour indiquer une lettre illisible dans un manuscrit), vous pouvez vous inspirer de la commande suivante, qui définit l'espace comme un espace (ou « boîte ») vide de longueur fixe. Ainsi, la longueur de cette espace ne variera pas d'une ligne à l'autre en fonction de l'espacement entre les mots. ```{noedit} \newcommand*{\dotspace}{\hbox to 0.4em{}\llap{ \symbol{"0323}\kern-0.04em}} ``` ::: ## Avec l'extension stackengine > est une extension dédiée à la superposition de caractères. Il fournit la commande `\stackinset` qui prend les arguments suivants : - Alignement horizontal du symbole superposé par rapport au symbole de base ; - Correction horizontale (longueur positive or negative) - Alignement vertical ; - Symbole superposé ; - Symbole de base. ``` \documentclass{article} \usepackage{fontspec} \setmainfont{Libertinus Serif} \usepackage{stackengine} \pagestyle{empty} \begin{document} \Huge η̣ ḍ \newcommand*{\doteta}{\stackinset{c}{0.15\fontcharwd\font`η}{b}{}{ \symbol{"0323}}{η}} \newcommand*{\dotd}{\stackinset{c}{0.2\fontcharwd\font`d}{b}{-0.32\fontcharht\font`d}{ \symbol{0323}}{d}} \Huge \doteta{} \dotd \end{document} ``` :::{sources} - [Small p with dot below](https://tex.stackexchange.com/questions/551268/small-p-with-dot-below) - [Adjust diacritic position in emph mode](https://tex.stackexchange.com/questions/437006/adjust-diacritic-position-in-emph-mode) :::