是否可以使用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}