“+”和“ - ”在tikz中的多个数学字体中未对齐

“+”和“ - ”在tikz中的多个数学字体中未对齐
\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

这是因为 Ticenter默认情况下,Z 用作放置节点时的锚点。在left或 的情况下right,它会水平调整,但不垂直调整。

在 中newtxmath,减号本质上是在一个盒子里,底部有空间,但没有顶部。

newtxmath 中加号和减号周围的框

对于 TeX 来说,一切都只是一个盒子。也许是受到后期维特根斯坦的影响,它不知道也不关心盒子里有什么。页面布局的问题只是组装盒子的问题。

在计算机或拉丁现代中,包含减号的框是对称的,即减号上方和下方的空间量相同。

拉丁现代加号和减号周围的框

这意味着center 发生将可见的减号与加号的水平线对齐。但这只是巧合,没有理由期待这种行为普遍存在。

如果你想在基线上对齐事物(tikzpicture环境之外的默认设置),你只需要告诉 TiZ 这样做。

使用 newtxmath 对齐加法和减法

\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}

基本上,字体的设计是为了使字符相对于基线正确定位。例如,当你将一个$+-$放入 TiZ 节点,您为这些字符设置了基线,因此减号和加号最终也会以它们的组合中心位于网格线上。这是因为加号是对称的 - 不是可见的字形,而是框中的字形。

恰好对齐

但是当你把它们放在不同的节点中时,每个节点都会有自己的基线。由于加号框在水平线的上方和下方具有相同的空间,因此它恰好位于网格线上。由于减号框的下方空间大于上方空间,因此减号框会浮动在网格线上。

相关内容