\documentclass{article}
\usepackage{newtxmath}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw[help lines] (-1,-1) grid (2,2);
\draw (0,0) node[left] {$+$};
\draw (0,0) node[right] {$-+$};
\draw (0,1) node[left] {$\times$};
\draw (0,1) node[right] {$\div$};
\end{tikzpicture}
\end{document}
我已经测试过了newtxmath
newpxmath
fontsetup(NewCM)
Libertinus Math
Cambria Math
TeX Gyre Termes/Pagella/Schola Math
STIX Two Math
XITS Math
Latin Modern Math + Unicode Math
它们都产生了这样的结果:
只有当我根本不使用数学字体包时才会+
对齐-
。
另外,如果我在之前/之后添加一些内容$-$
,它会对齐吗?
答案1
这是因为 Ti钾center
默认情况下,Z 用作放置节点时的锚点。在left
或 的情况下right
,它会水平调整,但不垂直调整。
在 中newtxmath
,减号本质上是在一个盒子里,底部有空间,但没有顶部。
对于 TeX 来说,一切都只是一个盒子。也许是受到后期维特根斯坦的影响,它不知道也不关心盒子里有什么。页面布局的问题只是组装盒子的问题。
在计算机或拉丁现代中,包含减号的框是对称的,即减号上方和下方的空间量相同。
这意味着center
发生将可见的减号与加号的水平线对齐。但这只是巧合,没有理由期待这种行为普遍存在。
如果你想在基线上对齐事物(tikzpicture
环境之外的默认设置),你只需要告诉 Ti钾Z 这样做。
\documentclass{article}
\usepackage{newtxmath}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[every node/.style={inner sep=0pt,draw,ultra thin}]
\draw[help lines] (-1,-1) grid (2,2);
\draw (0,0) node (plus)[left] {$+$};
\draw (plus.base east) node[anchor=base west] {$-$};
\draw (0,1) node[left] {$\times$};
\draw (0,1) node[right] {$\div$};
\end{tikzpicture}
\end{document}
基本上,字体的设计是为了使字符相对于基线正确定位。例如,当你将一个$+-$
放入 Ti钾Z 节点,您为这些字符设置了基线,因此减号和加号最终也会以它们的组合中心位于网格线上。这是因为加号是对称的 - 不是可见的字形,而是框中的字形。
但是当你把它们放在不同的节点中时,每个节点都会有自己的基线。由于加号框在水平线的上方和下方具有相同的空间,因此它恰好位于网格线上。由于减号框的下方空间大于上方空间,因此减号框会浮动在网格线上。