我想将上标和下标始终放在符号上方或下方,例如\sum
、\bigcup
等\inf
,即使在内联模式下也是如此,但我不想\limits
每次都添加。我尝试了 书中所有数学的\everymath{\displaystyle}
强制\displaystyle
,但这会使符号太宽,这是不想要的。是否有任何选项可以使符号看起来就像以前一样\limits
?我正在使用amsmath
。
谢谢您的回答。
答案1
如果你加载,amsmath
只需两个定义就可以获得你想要的行为:
\documentclass{article}
\usepackage{amsmath}
\makeatletter
\renewcommand{\slimits@}{\limits}
\renewcommand{\nmlimits@}{\limits}
\makeatother
\begin{document}
\(
\sum_{i=0}^{3} \int_{-5}^{5} \lim_{n\to\infty} \prod_{j=0}^{n} \max_{j}\log_{2} x_{j}
\)
\[
\sum_{i=0}^{3} \int_{-5}^{5} \lim_{n\to\infty} \prod_{j=0}^{n} \max_{j}\log_{2} x_{j}
\]
\end{document}
但是,你不应该这么做。在线上使用时,有充分的理由将限制放在大型运营商一边。下面显示了一个示例。
\documentclass{article}
\usepackage{amsmath}
\usepackage{lipsum}
\makeatletter
\renewcommand{\slimits@}{\limits}
\renewcommand{\nmlimits@}{\limits}
\makeatother
\begin{document}
\lipsum[2]
Let's see what happens when the above symbols are set with limits
above and below in a paragraph and how ugly white stripes will
$\sum_{k=1}^{n}k^2$ spoil your document so that
reading will be hindered. Don't do it in your documents.
\lipsum[3]
\end{document}
限制的操作符越多,文档就会越差。
答案2
这应该可以工作,放在序言中:
\let\NOLIMITS\nolimits
\let\nolimits\limits
\let\displaylimits\limits
\usepackage{amsmath}
这完全禁止限制到右边,现在唯一可以施加限制的方法是使用\NOLIMITS
。必须在加载之前使用调整amsmath
,并且必须加载,amsmath
因为amsmath
重新定义所有运算符宏,这样,将使用调整的限制宏。完整的 MWE:
\documentclass{article}
\let\NOLIMITS\nolimits
\let\nolimits\limits
\let\displaylimits\limits
\usepackage{amsmath}
\begin{document}
\def\xtest{
\sum_{i=0}^{3} \int_{-5}^{5} \lim_{n\to\infty} \prod_{j=0}^{n} \operatorname{log}_2 x_j
}
\( \xtest \)
\[ \xtest \]
\end{document}
但是,请记住:
在行中使用时,将限制设置在大运算符一侧有很好的印刷原因。– egreg
答案3
一个 hack 方法是这么写:
\let\originalsum=\sum
\def\sum{\originalsum\limits}
当然,您必须对要“自动化”限制的每个符号执行此操作。如果您想快速完成此操作,可以一次完成:
\usepackage{etoolbox}
\newcommand\ImposeLimitsOnOperator[1]{%
\expandafter\let\csname original#1\expandafter\endcsname\csname #1\endcsname%
\expandafter\edef\csname #1\endcsname{\csname original#1\endcsname\limits}%
}
\newcommand\WithLimits{\forcsvlist{\ImposeLimitsOnOperator}}
\WithLimits{sum,bigcup,inf}
正如我所说,这是一种黑客行为。应该有更好的方法来做到这一点(尽管正如 egreg 所说,你可能不应该这样做:)