分数的垂直对齐内联和显示模式(基线?)

分数的垂直对齐内联和显示模式(基线?)

我正在检查解决方案这里

用于制作一个小分数。我得到了分数,但我注意到显示模式和内联模式下的垂直对齐存在变化:

在此处输入图片描述

\documentclass[12pt]{memoir}

\usepackage{amsmath}
 \usepackage{graphicx}
\usepackage{stackengine}

\newcommand{\smath}[1]{\text{\scalebox{0.95}{$#1$}}}

\newcommand{\myfrac}[3][0pt]{\belowbaseline[-.65\baselineskip]{\smath{\genfrac{}{}{}{3}{\raisebox{#1}{$#2$}}{\raisebox{-#1}{$#3$}}}}}


\begin{document}
$\tanh\Bigl(\myfrac{\alpha}{2}\Bigr)$ 

\begin{align}
    \tanh\Bigl(\myfrac{\alpha}{2}\Bigr)
\end{align}

\end{document}

如您在显示模式下所见,分数略微上移。这不会发生在equation环境中也不会发生\[ \]。我做错了什么?

答案1

问题在于 的定义\myfrac使用了\baselineskip,而 的值在环境中被重置amsmath。解决方案是什么?\normalbaselineskip在 的定义中使用\myfrac

事实上,出于这个原因,包中长堆栈的默认baselineskipstackengine\normalbaselineskip

\documentclass[12pt]{memoir}

\usepackage{amsmath}
 \usepackage{graphicx}
\usepackage{stackengine}

\newcommand{\smath}[1]{\text{\scalebox{0.95}{$#1$}}}

\newcommand{\myfrac}[3][0pt]{\belowbaseline[-.65\baselineskip]{\smath{\genfrac{}{}{}{3}{\raisebox{#1}{$#2$}}{\raisebox{-#1}{$#3$}}}}}
\begin{document}
OK with non-amsmath
\[
    \tanh\Bigl(\myfrac{\alpha}{2}\Bigr)---\the\baselineskip
\]
In vertical alignment error with amsmath
\begin{align}
    \tanh\Bigl(\myfrac{\alpha}{2}\Bigr)---\the\baselineskip
\end{align}
Why? amsmath redefines \textbackslash baselineskip.\\
Solution? Use \textbackslash normalbaselineskip
\renewcommand{\myfrac}[3][0pt]{\belowbaseline[-.65\normalbaselineskip]{\smath{\genfrac{}{}{}{3}{\raisebox{#1}{$#2$}}{\raisebox{-#1}{$#3$}}}}}%
\begin{align}
    \tanh\Bigl(\myfrac{\alpha}{2}\Bigr)---\the\normalbaselineskip
\end{align}
\end{document}

在此处输入图片描述

答案2

虽然\scalebox{0.95}{...}这不是什么大问题\scalebox{0.5}{...}。缩放图像时,只有一个点不会移动,即\scalebox左基线。

接下来,我将基线移动到中心,缩放它,然后再次将基线移回。

\documentclass[12pt]{memoir}

\usepackage{amsmath}
 \usepackage{graphicx}
%\usepackage{stackengine}

\fboxsep=0pt

\newcommand{\smath}[1]{\raisebox{\dimexpr 0.5\ht\strutbox-0.5\dp\strutbox}%
  {\scalebox{0.5}{\raisebox{\dimexpr 0.5\dp\strutbox-0.5\ht\strutbox}{$#1$}}}}

\newcommand{\myfrac}[3][0pt]{\smath{\tfrac{#2}{#3}}}

\begin{document}
$\tanh\Bigl(\myfrac{\alpha}{2}\Bigr) {\displaystyle \tanh\Bigl(\myfrac{\alpha}{2}\Bigr)}$

\begin{align}
    \tanh\Bigl(\myfrac{\alpha}{2}\Bigr)
\end{align}

\end{document}

相关内容