Comment empêcher une ligature ?#
C’est un point fort de TeX : certains couples de lettres sont automatiquement
remplacés par un glyphe unique, pour des raisons esthétiques, comme on le fait
en imprimerie au plomb. Par exemple quand un f
et un i
se suivent, le haut
du f
aurait normalement tendance à mordre sur le point du i
, ce qui ne
serait pas très beau. TeX les remplace donc par un nouveau glyphe plus
joli. Cette fusion de glyphes est une
ligature :
Sans ligature |
Avec ligature |
---|---|
Le même mécanisme est mis en jeu pour obtenir les caractères espagnols ¡ et ¿,
que l’on saisit !`
et ?`
.
Dans les polices cyrilliques utilisées avec l’encodage OT2, le couple de lettres sh
produira le glyphe ш.
1. Empêcher ponctuellement une ligature#
Pour empêcher une ligature, il suffit de séparer les lettres dans le code LaTeX
avec quelque chose qui ne produira rien dans le fichier de sortie.
Par exemple : \/
, {}
, \mbox{}
, \null
. Les codages de fontes T1 et OT1 fournissent
aussi la commande \textcompwordmark
, qui a le même but.
\documentclass[french]{article}
\usepackage[T1]{fontenc} % Encodage T1 (adapté au français)
\usepackage{lmodern} % Caractères plus lisibles
\usepackage{babel} % Réglages linguistiques (avec french)
\pagestyle{empty} % N'affiche pas de numéro de page
\begin{document}
\Large
Comment effacer efficacement les fleurs ?
Mais, oui, comment ef\/facer ef{}ficacement les f\mbox{}leurs ?
\end{document}
2. Empêcher systématiquement une ligature#
L’extension fontspec permet d’utiliser des fonctionnalités avancées des polices de caractères, dont le paramétrage des ligatures.
L’exemple ci-dessous montre la différence de résultat.
\documentclass{article}
\usepackage{fontspec}
\usepackage[french]{babel}
\pagestyle{empty}
\defaultfontfeatures{
Ligatures={
NoCommon,
NoRequired,
NoContextual,
NoHistoric,
NoDiscretionary
}
}
\setmainfont[
BoldFont=lmroman10-bold.otf,
ItalicFont=lmroman10-italic.otf,
BoldItalicFont=lmroman10-bolditalic.otf,
SlantedFont=lmromanslant10-regular.otf,
BoldSlantedFont=lmromanslant10-bold.otf,
SmallCapsFont=lmromancaps10-regular.otf
]{lmroman10-regular.otf}
\begin{document}
\Large Comment effacer efficacement les fleurs ?
\end{document}
%!TEX engine=lualatex
\documentclass{article}
\usepackage{fontspec}
\usepackage[french]{babel}
\pagestyle{empty}
\setmainfont[
BoldFont=lmroman10-bold.otf,
ItalicFont=lmroman10-italic.otf,
BoldItalicFont=lmroman10-bolditalic.otf,
SlantedFont=lmromanslant10-regular.otf,
BoldSlantedFont=lmromanslant10-bold.otf,
SmallCapsFont=lmromancaps10-regular.otf
]{lmroman10-regular.otf}
\begin{document}
\Large Comment effacer efficacement les fleurs ?
\end{document}
%!TEX engine=lualatex
\documentclass{article}
\usepackage{lmodern}
\usepackage[french]{babel}
\pagestyle{empty}
\begin{document}
\Large Comment effacer efficacement les fleurs ?
\end{document}
Sources
Livre LaTeX : Apprentissage, guide et référence, de Bernard Desgraupes.
LaTeX pour les linguistes, Thomas Pellard.
Removing ligatures when using fontspec, sur Tex Stack Exchange.
When should I not use a ligature in English typesetting? sur English Stack Exchange.