调整 eqnarray 环境的大小

调整 eqnarray 环境的大小

我正在使用 beamer 中的 eqnarray 环境编写数学模型,问题是我需要它更小,所以我尝试使用 \scalebox 或 resizebox 调整它的大小,但出现错误(虽然不熟悉它们)。有没有一种简单的方法来调整 eqnarray 环境的大小?(不想使用 \small、\tiny 来更改字体大小)。下面有一个小方程式,我想应用一些调整大小的操作。提前致谢。

\documentclass[hyperref={pdfpagelabels=false}]{beamer}
\usepackage{amssymb,amsmath}

\begin{document}
\begin{frame}{test}
\begin{eqnarray}    
&& \textbf{TP} ~~\text{Max} \sum_{i \in N\setminus\{4\}} J_{i} z_{i} 
\label{S1}\\
&& \text{st} \nonumber\\
&& \sum_{j \in N} xv_{ij} = z_{i}, ~~\forall i \in N \label{S2}
\end{frame}
\end{document}

答案1

使用mathtoolsnccmath您可以稍微减小方程的大小(不改变字体大小):

\documentclass[hyperref={pdfpagelabels=false}]{beamer}
\usepackage{mathtools, % instead amsmath, provide `\mathclap`
            nccmath,   % for smaller `sum` symbol
            amssymb}

\begin{document}
\begin{frame}{test}
    \begin{align}
& \textbf{TP} ~~\max \medop\sum_{\mathclap{i \in N\setminus\{4\}}} J_{i} z_{i}
\label{S1}\\
& \text{st } 
  \medop\sum_{j \in N} xv_{ij} = z_{i},\ \forall i \in N \label{S2}
    \end{align}
\end{frame}
\end{document}

注意:eqnarray 早已被弃用,并被数学环境取代amsmath

在此处输入图片描述

与您的 mwe 进行比较的结果:

在此处输入图片描述

答案2

请勿使用\resizebox或,scalebox除非您愿意让您的文档看起来像是勒索信。

为了节省一些(垂直)空间,不要将“这样”语句放在单独的行上,并将求和的极限放在求和符号的右侧,而不是它们的下方和上方;通过编写 来执行此操作\sum\nolimits。并且,请使用 LaTeX“运算符”,例如\max某些标准数学符号。

由于似乎没有理由执行垂直对齐,只需使用gather环境即可。最后一条评论:eqnarray环境已被严重弃用,应避免使用。如果您必须执行方程式之间的对齐,请使用环境align(由amsmath包提供)。

下面的截图提供了前后的比较;前两个方程生成了您的代码,后两个方程显示节省了三分之一以上的空间 —— 所有这些都无需借助基于\resizebox的技巧。

在此处输入图片描述

\documentclass{beamer}
\begin{document}
\begin{frame}{test}
\hrule
\begin{eqnarray}    
&& \textbf{TP} ~~\text{Max} \sum_{i \in N\setminus\{4\}} J_{i} z_{i} 
\label{S3}\\
&& \text{st} \nonumber\\
&& \sum_{j \in N} xv_{ij} = z_{i}, ~~\forall i \in N \label{S4}
\end{eqnarray}
\hrule
\begin{gather}    
\mathbf{TP}\quad \max \sum\nolimits_{i\in \mathbb{N}\setminus\{4\}} J_{i} z_{i} \label{S1}\\
\text{s.t. }
\sum\nolimits_{j \in N} xv_{ij} = z_{i}\quad \forall i\in \mathbb{N} \label{S2}
\end{gather}
\hrule
\end{frame}
\end{document}

相关内容