我正在检查解决方案这里
用于制作一个小分数。我得到了分数,但我注意到显示模式和内联模式下的垂直对齐存在变化:
\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}