14

Some pairs of glyphs look more visually appealing when a kern is inserted between the glyphs. For instance, if the word Calabi–Yau is typeset with a font that does not include kerning information for the pair (–,Y), the space between the end of the en-dash and the stem of the letter Y is too large. Compare the results of Calabi--Yau without or with a kern:

Calabi–Yau with differenti kernings

\documentclass{article}
\begin{document}
Calabi--Yau
Calabi--\kern-.15em Yau
\end{document}

Is there a way to automatically insert such a kern, preferably by inserting some code in the preamble, and no extra markup in the document?

1
  • microtype has a similar option but I'm even scared to open the manual considering my font related skills..
    – percusse
    Dec 21, 2012 at 2:47

1 Answer 1

12

That probably will break all sort of things …

… for example \kern--.15em and \csname --Y\endcsname.

Related: Easily assign undefined ligatures with pdfLaTeX?

Code

\documentclass{article}
\usepackage[english]{babel}
\makeatletter
    \languageshorthands{english}
    \initiate@active@char{-}
    \defineshorthand{--}{%
        \char`-\char`-%
        \@ifnextchar Y{\ifmmode\else\kern-.15em\fi}{}%
    }
\newcommand*{\activateendashYligature}{\bbl@activate{-}}
\newcommand*{\deactivateendashYligature}{\bbl@deactivate{-}}
\makeatother
\activateendashYligature
\begin{document}
Calabi--Yau (\verb|Calabi--Yau|) \par
Calabi--\kern-.15emYau (\verb|Calabi--\kern-.15emYau|) \par
Calabi--{}Yau (\verb|Calabi--{}Yau|)\par
Calabi-Test (\verb|Calabi-Test|)

$ --Y = -{}-Y $ (\verb|$ --Y = -{}-Y $|) \par
--Y $\to$ \deactivateendashYligature --Y \par% turning it off
$ --Y = -{}-Y $ (\verb|$ --Y = -{}-Y $|)\par
\end{document}

Output

enter image description here

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .