我正在使用 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
使用mathtools
,nccmath
您可以稍微减小方程的大小(不改变字体大小):
\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}