如何统一改变大型运营商的规模?

如何统一改变大型运营商的规模?

我认为,大型运营商有点大,尤其是线下。那么有没有什么办法可以统一除垢呢?MWE 如下:

\documentclass{article}
\usepackage{amsmath}

\begin{document}

\[\sum_i x_i+y_i.\]

\end{document}

一种可能的方法是改变大符号使用的字体大小,但我不知道细节。

答案1

您可以在以下位置找到该列表amsmath.sty

\ifx\@tempa\@tempc
  \global\let\coprod@\coprod
  \gdef\coprod{\DOTSB\coprod@\slimits@}
  \global\let\bigvee@\bigvee
  \gdef\bigvee{\DOTSB\bigvee@\slimits@}
  \global\let\bigwedge@\bigwedge
  \gdef\bigwedge{\DOTSB\bigwedge@\slimits@}
  \global\let\biguplus@\biguplus
  \gdef\biguplus{\DOTSB\biguplus@\slimits@}
  \global\let\bigcap@\bigcap
  \gdef\bigcap{\DOTSB\bigcap@\slimits@}
  \global\let\bigcup@\bigcup
  \gdef\bigcup{\DOTSB\bigcup@\slimits@}
  \global\let\prod@\prod
  \gdef\prod{\DOTSB\prod@\slimits@}
  \global\let\sum@\sum
  \gdef\sum{\DOTSB\sum@\slimits@}
  \global\let\bigotimes@\bigotimes
  \gdef\bigotimes{\DOTSB\bigotimes@\slimits@}
  \global\let\bigoplus@\bigoplus
  \gdef\bigoplus{\DOTSB\bigoplus@\slimits@}
  \global\let\bigodot@\bigodot
  \gdef\bigodot{\DOTSB\bigodot@\slimits@}
  \global\let\bigsqcup@\bigsqcup
  \gdef\bigsqcup{\DOTSB\bigsqcup@\slimits@}
\fi

您可以使用它来实现您的愿望(而我不会)。

\documentclass{article}
\usepackage{amsmath}
\usepackage{graphicx}

\makeatletter
\gdef\coprod{\DOTSB\reduce@op\coprod@\slimits@}
\gdef\bigvee{\DOTSB\reduce@op\bigvee@\slimits@}
\gdef\bigwedge{\DOTSB\reduce@op\bigwedge@\slimits@}
\gdef\biguplus{\DOTSB\reduce@op\biguplus@\slimits@}
\gdef\bigcap{\DOTSB\reduce@op\bigcap@\slimits@}
\gdef\bigcup{\DOTSB\reduce@op\bigcup@\slimits@}
\gdef\prod{\DOTSB\reduce@op\prod@\slimits@}
\gdef\sum{\DOTSB\reduce@op\sum@\slimits@}
\gdef\bigotimes{\DOTSB\reduce@op\bigotimes@\slimits@}
\gdef\bigoplus{\DOTSB\reduce@op\bigoplus@\slimits@}
\gdef\bigodot{\DOTSB\reduce@op\bigodot@\slimits@}
\gdef\bigsqcup{\DOTSB\reduce@op\bigsqcup@\slimits@}

\def\reduce@op#1{\mathop{\mathpalette\reduce@@op{#1}}}
\def\reduce@@op#1#2{%
  \ifx#1\displaystyle
    \vcenter{\hbox{\scalebox{0.8}{$\m@th#1#2$}}}%
  \else
    #2%
  \fi
}

\makeatother

\begin{document}

$\sum\bigcup\bigvee$

\[
\csname sum@\endcsname_{k=1}^n % for comparison
\sum_{k=1}^n \bigcup \bigvee
\]

\end{document}

在此处输入图片描述

答案2

如果您只需要一个新的显示版本,那么您可以将缩放版本定义\sum为新运算符:

\DeclareMathOperator*{\ssum}{\scalebox{1.1}{$\sum$}}

在此处输入图片描述

如果您想要更改文档中的所有大型操作符,而又不想手动编辑每个出现的操作符,那么可以使用包\scaleobj中的命令scalerel

\let\oldsum\sum
\let\sum\relax
\DeclareMathOperator*{\sum}{\scaleobj{.8}{\oldsum}}

然后,所有\sums 都将缩放到其标准高度的 80%,无论是显示的还是内联的:

在此处输入图片描述

完整代码如下:

\documentclass{article}
\usepackage{amsmath,scalerel}

\let\oldsum\sum
\let\sum\relax
\DeclareMathOperator*{\sum}{\scaleobj{.8}{\oldsum}}

\begin{document}

\begin{tabular}{ll}
$\displaystyle{\oldsum_i x_i+y_i\text{ vs. }\sum_i x_i+y_i}$ & \texttt{displaystyle}\\[3ex]
$\oldsum_i x_i+y_i\text{ vs. }\sum_i x_i+y_i$ & \texttt{textstyle}\\
$\scriptstyle \oldsum_i x_i+y_i\text{ vs. }\sum_i x_i+y_i$ & \texttt{scriptstyle}\\
$\scriptscriptstyle \oldsum_i x_i+y_i\text{ vs. }\sum_i x_i+y_i$ & \texttt{scriptscriptstyle}
\end{tabular}

\end{document}

相关内容