使用 \small 调整数学显示的大小会影响前一段的基线拉伸

使用 \small 调整数学显示的大小会影响前一段的基线拉伸

这个问题与这个

我有这个代码:

\documentclass[11pt]{article}
\pagestyle{empty}

\usepackage{blindtext}

\renewcommand{\baselinestretch}{1.1}
\usepackage{amsmath}

\makeatletter
\def\newmaketag{%
  \def\maketag@@@##1{\hbox{\m@th\normalfont\normalsize##1}}%
  }
\makeatother

\begin{document}
\flushbottom
\section{Section}

\blindtext
{\small%
\newmaketag\begin{equation}
\frac{2 x_{1} + 2 x_{2} + 2 x_{3} + 2 x_{4} + 2 x_{5} + 2 x_{6} + 2 x_{7} + 2 x_{8} + 2 x_{9} + 2 x_{10} + 2 x_{11} + 2 x_{12} + 2 x_{13} }{z}
\end{equation}}\relax

\end{document}

正如您在屏幕截图中看到的:

在此处输入图片描述

等式上方段落最后一行的基线拉伸是错误的。我该如何修复?

笔记。拜托,拜托,真的拜托!不要浪费你的时间(和我的)告诉我我不应该使用\small调整方程大小(或建议我使用其他调整方程大小的技术)。我确实有自己的理由这样做(在某些情况下)。

答案1

原因应该很清楚:当开始显示数学公式时,TeX 会排版到目前为止的段落,而这发生在声明\small已经执行时,因此基线跳过是与 相关的\small。由于您想要的只是排版公式尺寸\small,放在盒子里。

这是我的建议(我用\footnotesize它来放大效果):

\documentclass[11pt]{article}
\usepackage{amsmath}

\usepackage{lipsum}

\makeatletter
\def\newmaketag{%
  \def\maketag@@@##1{\hbox{\m@th\normalfont\normalsize##1}}%
  }
\makeatother

\begin{document}

\section{Section}

\lipsum*[1]
{\footnotesize\newmaketag
\begin{equation}
  \frac{2 x_{1} + 2 x_{2} + 2 x_{3} + 2 x_{4} + 2 x_{5}
        + 2 x_{6} + 2 x_{7} + 2 x_{8} + 2 x_{9} + 2 x_{10}
        + 2 x_{11} + 2 x_{12} + 2 x_{13} }
       {z}
\end{equation}}
\lipsum*[1]
\begin{equation}
\mbox{\footnotesize$\displaystyle
  \frac{2 x_{1} + 2 x_{2} + 2 x_{3} + 2 x_{4} + 2 x_{5}
        + 2 x_{6} + 2 x_{7} + 2 x_{8} + 2 x_{9} + 2 x_{10}
        + 2 x_{11} + 2 x_{12} + 2 x_{13} }
       {z}
$}
\end{equation}

\end{document}

在此处输入图片描述

如果您喜欢冒险,可以使用对齐显示器进行以下操作:

\documentclass[11pt]{article}
\usepackage{amsmath}

\usepackage{lipsum}

\makeatletter
\newenvironment{smalleralign}[1][\small]
 {\par\nopagebreak\leavevmode\vspace*{-\baselineskip}%
  \skip0=\abovedisplayskip
  #1%
  \def\maketag@@@##1{\hbox{\m@th\normalfont\normalsize##1}}%
  \abovedisplayskip=\skip0
  \align}
 {\endalign\ignorespacesafterend}
\makeatother

\begin{document}

\section{Section}

\lipsum*[1]
\begin{smalleralign}[\footnotesize]
  a+b+c&=aaaaaaa+bbbbbbbbb+ccccccccc+ddddddddd \\
  a+b+c&=aaaaaaa+bbbbbbbbb+ccccccccc+ddddddddd \\
  a+b+c&=aaaaaaa+bbbbbbbbb+ccccccccc+ddddddddd \\
  a+b+c&=aaaaaaa+bbbbbbbbb+ccccccccc+ddddddddd
\end{smalleralign}
\lipsum*[1]

\end{document}

图片

答案2

我想扩展一下 Zarko 已删除的答案:您有一个解决方案,nccmath它不仅包含一个\mfrac命令,还包含一大堆类似的命令和环境(\mbinom、、、、以及更多全局命令和环境,\mint和)。\medint\medopmmatrix\medmatmedsize

另一个解决方案,对于本公式来说更具体,是\splitfrac来自mathtools,与fleqn环境相结合,nccmath再次来自,使得一组方程式左对齐。

演示:

\documentclass[11pt]{article}
\pagestyle{empty}

\usepackage{blindtext}

\renewcommand{\baselinestretch}{1.1}
\usepackage{amsmath}

\makeatletter
\def\newmaketag{%
  \def\maketag@@@##1{\hbox{\m@th\normalfont\normalsize##1}}%
  }
\makeatother

\begin{document}
\flushbottom
\section{Section}

\blindtext
{\small%
\newmaketag\begin{equation}
\frac{2 x_{1} + 2 x_{2} + 2 x_{3} + 2 x_{4} + 2 x_{5} + 2 x_{6} + 2 x_{7} + 2 x_{8} + 2 x_{9} + 2 x_{10} + 2 x_{11} + 2 x_{12} + 2 x_{13} }{z}
\end{equation}}\relax

\end{document}

在此处输入图片描述

相关内容