不显示数学运算而对齐?

不显示数学运算而对齐?

是否可以使用align不带显示数学的环境?例如,我希望\sum看起来像是内联的。给出的解决方案这里不起作用,因为求和符号仍然以大显示样式书写。alignat环境也会产生此行为。

答案1

您可以使用以统一方式定义大运算符的事实amsmath;例如\sum重新定义\sum@为由合适的宏包围使用。

\documentclass{article}
\usepackage{amsmath}
\usepackage{xparse}

\ExplSyntaxOn
\NewDocumentCommand{\makesmaller}{m}
 {
  \goblin_makesmaller:n { #1 }
 }

\cs_new_protected:Npn \goblin_makesmaller:n #1
 {
  \clist_map_inline:nn { #1 } { \goblin_makesmaller_sym:n { ##1 } }
 }

\cs_new_protected:Npn \goblin_makesmaller_sym:n #1
 {
  \cs_gset_eq:cc { #1@saved@ } { #1@ }
  \cs_set_protected:cpn { #1@ }
   {
    \mathop
     {
      \mathchoice { \textstyle \use:c { #1@saved@ } }
                  { \use:c { #1@saved@ } }
                  { \use:c { #1@saved@ } }
                  { \use:c { #1@saved@ } }
     }
   }
 }
\ExplSyntaxOff

\makesmaller{sum,bigoplus,bigcup}

\begin{document}

Here's an inline formula $\sum_{k=1}^n k^2=\frac{1}{6}n(n+1)(2n+1)$
and the same displayed, with some nonsense
\[
\bigoplus_{i\in I}\bigcup_{j=0}^{\infty}\sum_{k=1}^n k^2=\frac{1}{6}n(n+1)(2n+1)
\]

\end{document}

的参数\makesmaller是您想要被视为的运算符列表\sum

当您改变主意时(希望很快);-),只需删除对的呼叫\makesmaller

在此处输入图片描述

答案2

作为一种解决方法,您可以在环境\textstyle内部使用aligned

\documentclass{standalone}
\usepackage{amsmath}
\begin{document}
text
$\begin{aligned}\textstyle
\sum_{i=1}^\infty&=1\\ \textstyle
\sum_{i=1}^\infty&=1
\end{aligned}$
more text
\end{document}

但最好找到更好的解决方案。这更像是一种黑客攻击。

在此处输入图片描述

答案3

你可以定义一个\tsum命令,就像存在一个\frac命令一样。也可以\msum基于包定义一个命令(中等大小的和)nccmath

另一个解决方案是使用tabstackengine包及其\alignCenterstack命令。以下是所有这些可能性的演示,具有不同的垂直对齐方式:

\documentclass{article}
\usepackage{amsmath}
\usepackage{nccmath}
\newcommand\tsum{\textstyle\sum\nolimits}
\newcommand\msum{\medop\sum}

\usepackage{tabstackengine} 

\begin{document}

\noindent Text
$\begin{aligned}[t]
 \tsum_{i = 1}^{n}x_{i}&=z\\
u+v&=w
\end{aligned}$
 \enspace more text \enspace $ \sum_{i = 1}^{n}x_{i} $
\enspace more text\enspace
$\begin{aligned}[b]
 \msum_{i = 1}^{n}x_{i}&=z\\
u+v&=w
\end{aligned}$
\enspace  more text\enspace
$\begin{aligned}
 \sum_{i = 1}^{n}x_{i}&=z\\
u+v&=w
\end{aligned}$
\enspace more text. 

Some other text\enspace\stackMath\setstackgap{L}{3.5ex}$ \left[\alignCenterstack{
\sum_{i = 1}^{n}x_{i}&=z\\
\sum_{i = 1}^{n}u_{i} &=w }\right. $
\enspace  more text. 

\end{document} 

在此处输入图片描述

相关内容