我使用的是 TeX Live 2014 和lualatex
。使用字体 Antykwa Torunska ( anttor
) 进行数学运算时,\hbar
显示不正确。默认的 LaTeX 设置在所有比例下都无法获得良好的效果:
\documentclass{scrartcl}
\usepackage[math]{anttor}
\usepackage[no-math]{fontspec}
\defaultfontfeatures{Ligatures=TeX}
\setmainfont{Antykwa Torunska}
\usepackage{polyglossia}
\setdefaultlanguage{german}
\usepackage{amsmath}
\begin{document}
$h \hbar \frac{1}{\hbar}$
\end{document}
使用该amssymb
包,可以获得一个有效的\hbar
符号,尽管(当然)字体不正确:
\documentclass{scrartcl}
\usepackage[math]{anttor}
\usepackage[no-math]{fontspec}
\defaultfontfeatures{Ligatures=TeX}
\setmainfont{Antykwa Torunska}
\usepackage{polyglossia}
\setdefaultlanguage{german}
\usepackage{amsmath}
\usepackage{amssymb}
\begin{document}
$h \hbar \frac{1}{\hbar}$
\end{document}
Antykwa Torunska 确实包含专用\hbar
字形(文档中显示了它),但不容易访问。t2a-anttr
并且wncy-anttr
似乎包含它,但我无法从那里获取数学字体。当字体提供数学符号,但没有(简单?)LaTeX 界面来访问它们时,如何使用数学符号\hbar
?
编辑:更改并添加minimal
了scrartcl
TeX 分布信息。
答案1
这显然是 LuaTeX 的一个错误。
如果按照你的设置,我
\sbox0{$\mkern9mu$}\showthe\wd0
\scriptspace=0pt
\sbox0{$_{\mkern9mu}$}\showthe\wd0
我得到第一个宽度为 5.4749pt,第二个宽度为 5.9749pt。
newtxmath
如果我使用或fourier
数学字体,情况也类似,或者即使不字体包(包括fontspec
)被加载时,LuaLaTeX 的行为应该类似于pdflatex
。
相反,如果我对 XeLaTeX 执行相同操作,第一个宽度为 5.4749pt,第二个宽度为 3.99998pt,这解释了使用 XeLaTeX 获得的正确输出。如果我省略\scriptspace=0pt
,第二个宽度为 4.49998pt。
这意味着两件事:
- LuaTeX 没有正确设置
mu
下标的单位 - LuaTeX 忽略了该设置
\scriptspace
。
\scriptspace
LuaTeX 手册中有一些关于何时\Umathspaceafterscript
描述的描述,因此第 2 点的状态尚不清楚(但在我看来,它仍然是一个错误)。
顺便说一句,中也有一个错误fontspec
,因为\hbar
它被视为文本符号,但事实并非如此。
您在 T2A 编码版本的字体表中看到的 hbar 实际上是塞尔维亚西里尔字符(在塞尔维亚语的拉丁音译中,它对应于 ć)。
您可以\hbar
使用以下 kludge 来访问它:
\documentclass{scrartcl}
\usepackage{amsmath}
\usepackage[T2A]{fontenc}
\usepackage[math]{anttor}
\usepackage[no-math]{fontspec}
\defaultfontfeatures{Ligatures=TeX}
\setmainfont{Antykwa Torunska}
\usepackage{polyglossia}
\setdefaultlanguage{german}
\AtBeginDocument{%
\let\hbar\relax
\DeclareRobustCommand{\hbar}{\text{\normalfont\fontencoding{T2A}\fontfamily{antt}\itshape\symbol{163}}}%
}
\begin{document}
$h \hbar \frac{1}{\hbar}$
\end{document}
有关该问题的新闻
在一个LuaTeX 邮件列表中的消息LuaTeX 团队成员 Luigi Scarso 指出,mu
单位问题已经修复,因此应该会在下一个版本的 TeX Live(2015)中得到解决。