将等号与溢流文本对齐

将等号与溢流文本对齐

\overset{def}{=}我正在对齐环境中输入使用该环境的逻辑定义amsmath

但是,新符号的垂直对齐是基于等号的,而不是整个符号。换句话说,def对齐时不考虑该单词,这产生了一个我不喜欢的结果。

我怎样才能正确地垂直对齐标志?

MWE(标志周围的间距不是问题):

\documentclass{article}
\usepackage{amsmath}

\begin{document}
The definition of the satisfaction relation $M,s,g \models \phi$, which specifies that formula $\phi$ is true under valuation $g$ in state $s$ of model $M$, is given below.
\begin{align*}
M,s,g &\models x &\overset{def}{=} \qquad &s = g(x)\\
M,s,g &\models n &\overset{def}{=} \qquad &V(n) = {s}\\
M,s,g &\models p &\overset{def}{=} \qquad &s \ \epsilon \ V(p)\\
\end{align*}

\end{document} 

说明图片:

在此处输入图片描述

等号按照红线垂直对齐。但是,新的等号 ( \overset{def}{=}) 的中心位于绿线。新符号应向下移动,直到绿线与红线重叠(无论如何大致如此)。然后垂直对齐将是正确的。

答案1

我建议您将 def/等号放在其自己的一列中:

示例输出

\documentclass{article}
\usepackage{amsmath}

\newcommand{\defeq}{\overset{\mathrm{def}}{=}}

\begin{document}
The definition of the satisfaction relation \( M,s,g \models \phi \), which specifies that formula \( \phi \) is true under valuation \( g \) in state \( s \) of model \( M \), is given below.
\begin{align*}
M,s,g &\models x &\defeq&&s &= g(x)\\
M,s,g &\models n &\defeq&&s&= V(n)\\
M,s,g &\models p &\defeq&&s &\in V(p)\\
\end{align*}

\end{document} 

进行了其他更改

  • 定义了一个以罗马字体\defeq排版该部分的命令。def
  • 添加了右侧列的对齐方式=,第 2 行已交换s=V(n)为对称
  • \(...\)用来代替$...$

如果您确实希望符号垂直居中,则有一个标准 TeX 命令\vcenter,它会根据公式的轴(大致为 中心的高度x)将材料居中。 的参数\vcenter是垂直模式下的材料,因此您需要将内容装箱。 这个简单版本是:

垂直居中示例

\documentclass{article}
\usepackage{amsmath}

\newcommand{\defeq}{\vcenter{\hbox{\( \overset{\mathrm{def}}{=} \)}}}

\begin{document}

The definition of the satisfaction relation \( M,s,g \models \phi \), which specifies that formula \( \phi \) is true under valuation \( g \) in state \( s \) of model \( M \), is given below.
\begin{align*}
M,s,g &\models x &\defeq&&s &= g(x)\\
M,s,g &\models n &\defeq&&s&= V(n)\\
M,s,g &\models p &\defeq&&s &\in V(p)\\
\end{align*}

\end{document}

\scriptscriptstyle如果愿意的话,您可以在前面添加@daleif 较小版本的字体\mathrm

该命令的一个更复杂的版本如下如何捕捉当前的数学风格?

\usepackage{amsmath}
\usepackage{mathstyle}

\makeatletter
\newcommand{\defeq}{\vcenter{\hbox{\( \m@th\currentmathstyle
  \overset{\mathrm{def}}{=} \)}}}
\makeatother

其将以上标形式调整大小。

相关内容