\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
其将以上标形式调整大小。