“eV”(电子伏特)单位及其变体(“MeV”、“GeV”、“TeV”等)在核物理学和粒子物理学中被广泛使用。默认情况下,Computer Modern 和其他常见的 TeX 字体不包含预定义的字距来将“e”和“V”拉近,大概是因为这种组合从未出现在“正常”书面语言中。
虽然所需的字距量是字体特定的,当然也可以定义\eV
宏等以在特定字体中使用,但许多物理学家并不这样做,因此最终导致他们的文档中的单位相当丑陋。甚至包也siunitx
没有用负字距定义其“eV”单位(因为字体特定性)。
为了使问题不那么明显,但不能完美地解决所有字体的问题,我想知道是否可以在 LaTeX 样式/类/序言中定义默认的 eV-negative-kern,以便在标准模板中编写的文档将“自动”获得比默认 eV kern 更好的效果,而无需用户修改字体指标?也许在 LuaTeX 中?
答案1
这在文本模式下有效
\XeTeXinterchartokenstate=1
\newXeTeXintercharclass \eclass
\newXeTeXintercharclass \Vclass
\XeTeXcharclass `\e \eclass
\XeTeXcharclass `\V \Vclass
\XeTeXinterchartoks \eclass \Vclass = {\kern-.15em}
这是siunitx
\eV
单位
\DeclareSIUnit\electronvolt{e\kern-.15em V}
MWE(使用 XeLaTeX 编译)
\documentclass{article}
\usepackage{fontspec}
\XeTeXinterchartokenstate=1
\newXeTeXintercharclass \eclass
\newXeTeXintercharclass \Vclass
\XeTeXcharclass `\e \eclass
\XeTeXcharclass `\V \Vclass
\XeTeXinterchartoks \eclass \Vclass = {\kern-.15em}
\usepackage{siunitx}
\DeclareSIUnit\electronvolt{e\kern-.15em V}
\begin{document}
eV
\SI{1}{\eV}
\end{document}
输出