一些字形对在字形之间插入字距后看起来更加美观。例如,如果使用不包含 (–,Y) 对的字距信息的字体排版单词 Calabi–Yau,则短划线末尾和字母 Y 的字干之间的间距太大。比较Calabi--Yau
有和没有字距的结果:
\documentclass{article}
\begin{document}
Calabi--Yau
Calabi--\kern-.15em Yau
\end{document}
有没有办法自动插入这样的字距,最好是在序言中插入一些代码,而文档中不需要额外的标记?
答案1
这可能会破坏各种各样的事情……
…例如\kern--.15em
和\csname --Y\endcsname
。
代码
\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}