在投影仪中固定方程式某一部分在不同的幻灯片中的位置

在投影仪中固定方程式某一部分在不同的幻灯片中的位置

我正在使用该类beamer进行演示和amsmathoptidef。我在一帧的不同幻灯片中有两个优化。我想修复这两个幻灯片中单词“最小化”和“受制于”的位置,并仅更改“最小化”下方和“最小化”之后的内容(目标函数)的位置。我该怎么做?

\documentclass{beamer}

\usepackage{amsmath}
\usepackage{optidef}

\begin{document}

\begin{frame}
\frametitle{An example}
\only<1>{\begin{mini*}
      {x \in V}{\langle c,x\rangle}{}{}
      \addConstraint{x \in }{\mathcal{K} \cap \mathcal{L}}
     \end{mini*}}
     \only<2>{
     \begin{mini*}
      {X \in \mathcal{S}^N}{\langle C,X\rangle}{}{}
      \addConstraint{X \in }{\mathcal{K} \cap \mathcal{L}}
     \end{mini*}
     }
\end{frame}

\end{document} 

答案1

我不太了解这个optidef包及其对齐机制,所以我想出了一个直接但可能也有点 hack 且可能不是最好的解决方案。代码不太易读,因此使用数组重新创建所有内容可能是一个更好的主意,如这个答案

无论如何,要确保垂直对齐相同,您可以使用\struts。要确保水平对齐相同,您需要为两个输出设置相同的宽度。这并不容易,因为命令的语法,但可以使用\phantomand \mathrlap(由mathtools包提供)来实现。

更具体地说,我创建一个与两个环境中最长的线\mathrlap{\langle c,x\rangle}{\phantom{X \in \mathcal{K} \cap \mathcal{L}}}一样宽的框并将其放置在里面。这样,第一个环境与第二个环境一样宽,并且水平对齐是固定的。X \in \mathcal{K} \cap \mathcal{L}\langle c,x\rangle

\documentclass{beamer}
\usepackage{optidef}

\begin{document}

\begin{frame}
\frametitle{An example}
\only<1>{
    \begin{mini*}
        {\strut x \in V}{\strut\mathrlap{\langle c,x\rangle}{\phantom{X \in \mathcal{K} \cap \mathcal{L}}}}{}{}
        \addConstraint{\strut x \in {}}{\mathcal{K} \cap \mathcal{L}}
    \end{mini*}
}
\only<2>{
    \begin{mini*}
        {\strut X \in \mathcal{S}^N}{\strut\langle C,X\rangle}{}{}
        \addConstraint{\strut X \in {}}{\mathcal{K} \cap \mathcal{L}}
    \end{mini*}
}
\end{frame}

\end{document} 

在此处输入图片描述


一个类似的想法可能更容易阅读,那就是使用\mathmbox具有一定合理宽度的 es:

\documentclass{beamer}
\usepackage{optidef}

\begin{document}

\begin{frame}
\frametitle{An example}
\only<1>{
    \begin{mini*}
        {\strut x \in V}{\strut\mathmakebox[5em][l]{\langle c,x\rangle}}{}{}
        \addConstraint{\strut x \in {}}{\mathcal{K} \cap \mathcal{L}}
    \end{mini*}
}
\only<2>{
    \begin{mini*}
        {\strut X \in \mathcal{S}^N}{\strut\mathmakebox[5em][l]{\langle C,X\rangle}}{}{}
        \addConstraint{\strut X \in {}}{\mathcal{K} \cap \mathcal{L}}
    \end{mini*}
}
\end{frame}

\end{document} 

相关内容