W 小型大写字母 + 点字距调整

W 小型大写字母 + 点字距调整

如何更改特定小型大写字母的字距,特别wv与点和逗号的组合?

使用 XeTeX,我找到了如何转换大写和小写字母的方法,但对于小写 unicode 数字却无能为力,至少对于Fanwood TextJunicode或 来说是这样EB Garamond

\documentclass{article}
\usepackage{fontspec}
\setmainfont{Junicode}
\XeTeXinterchartokenstate=1
\newXeTeXintercharclass\fooV
\newXeTeXintercharclass\foov
\newXeTeXintercharclass\fooDot
\XeTeXcharclass "56=\fooV % Capital V
\XeTeXcharclass "76=\foov % Lowercase V
\XeTeXcharclass "F776=\foov % Small Cap v in Junicode
\XeTeXcharclass "2C=\fooDot % Comma
\XeTeXcharclass "2E=\fooDot % Dot
\XeTeXinterchartoks\fooV\fooDot{\kern-.12em}
\XeTeXinterchartoks\foov\fooDot{\kern-.06em}

\begin{document}
    EV,
    ev,
    \textsc{ev},
\end{document}

在此处输入图片描述

答案1

您需要在切换字体的命令范围内包含逗号。字体之间的字距调整没有任何意义,就 TeX 而言,小型大写字母本质上是一种不同的字体。(不过,我不太清楚这对较新的引擎来说如何。)

调整字距

\documentclass{article}
\usepackage{fontspec}
\setmainfont{Junicode}
\XeTeXinterchartokenstate=1
\newXeTeXintercharclass\fooV
\newXeTeXintercharclass\foov
\newXeTeXintercharclass\fooDot
\XeTeXcharclass "56=\fooV % Capital V
\XeTeXcharclass "76=\foov % Lowercase V
\XeTeXcharclass "F776=\foov % Small Cap v in Junicode
\XeTeXcharclass "2C=\fooDot % Comma
\XeTeXcharclass "2E=\fooDot % Dot
\XeTeXinterchartoks\fooV\fooDot{\kern-.12em}
\XeTeXinterchartoks\foov\fooDot{\kern-.06em}

\begin{document}
  EV,
  ev,
  \textsc{ev},
  \textsc{ev,}
\end{document}

相关内容