Beamer:使用覆盖突出显示对齐的数学

Beamer:使用覆盖突出显示对齐的数学

这个问题导致了一个新的方案的出现:
hf-tikz

最小工作示例:

\documentclass{beamer}
\usepackage{amsmath}
\begin{document}
 \begin{frame}
 \begin{align}
      a_i + b_j = 10 & \forall i\in I, j\in J \\
      c_j + d_j + a_i >= 30 & \forall i\in I, j\in J
 \end{align}
 \end{frame}
 \end{document}

假设我想突出a_i显示方程中的两个 ,然后突出显示整个第二个方程。我可以使用\alert<2>on each a_i,但这不适用于第二个方程,后面的部分&需要包含在单独的\alert<3>指令中。但是我需要同时突出显示多个方程,因此我更喜欢一种跨“组”工作的方法,即跨&

其次,如果可能的话,我更愿意使用警报,将方程式括在框中,就像使用一样\boxed,并在这些框上贴上标签,以便于描述。

如果需要的话,我需要查看哪些包?

编辑:除了 TikZ 之外还有其他东西吗(可能更简单)?我无法让它与过时的 TeXLive 2007 一起使用,也无法更新后者。

答案1

按照所示方法algorithm2e + beamer 包中使用覆盖规范进行背景着色,可以构建这个 MWE:

\documentclass{beamer}
\usepackage{amsmath,amssymb}
\usepackage{tikz}
\usetikzlibrary{fit,calc}

\newcommand{\tikzmark}[1]{%
  \tikz[overlay,remember picture,baseline] \node [anchor=base] (#1) {};}

\definecolor{mybrown}{RGB}{255,218,195}
\definecolor{myframe}{RGB}{197,122,195}

\usetheme{Copenhagen}

\begin{document}

\section{Mysection}
\subsection{A subsection}
\begin{frame}{The equations}
\begin{block}{}
 \begin{align}
      \tikzmark{a}a_i\tikzmark{b} + b_j = 10 & \forall i\in I, j\in J \\
      \tikzmark{e}c_j + d_j + \tikzmark{c}a_i\tikzmark{d} >= 30 & \forall i\in I, j\in J\tikzmark{f}
 \end{align}

\begin{tikzpicture}[remember picture,overlay]
\coordinate (aa) at ($(a)+(0,0.25)$);
\coordinate (bb) at ($(b)+(0,0)$);
\node<1>[draw=myframe,line width=1pt,fill=mybrown,opacity=0.4,rectangle,rounded corners,fit=(aa) (bb)] {};
\coordinate (cc) at ($(c)+(0,0.25)$);
\coordinate (dd) at ($(d)+(0,0)$);
\node<1>[draw=myframe,line width=1pt,fill=mybrown,opacity=0.4,rectangle,rounded corners,fit=(cc) (dd)] {};
\coordinate (ee) at ($(e)+(0,0.25)$);
\coordinate (ff) at ($(f)+(0,-0.25)$);
\node<2>[draw=myframe,line width=1pt,fill=mybrown,opacity=0.4,rectangle,rounded corners,fit=(ee) (ff)] {};
\end{tikzpicture}
\end{block}
\end{frame}

\end{document}

这样就可以获得这两个帧:

在此处输入图片描述

在此处输入图片描述

因此,您可以选择要突出显示的区域\tikzmark、整个方程或仅显示为的一部分"alert"

不含 TikZ 的解决方案

\documentclass{beamer}
\usepackage{amsmath,amssymb}
\usepackage{xparse}
\usepackage{xcolor}

% Code by Gonzalo Medina
% https://tex.stackexchange.com/questions/35319/a-boxed-alternative-with-minimal-spacing/35346#35346
\newbox\FBox
\NewDocumentCommand\Highlight{O{black}O{white}mO{0.5pt}O{0pt}O{0pt}}{%
    \setlength\fboxsep{#4}\sbox\FBox{\fcolorbox{#1}{#2}{#3\rule[-#5]{0pt}{#6}}}\usebox\FBox}

\usetheme{Copenhagen}

\begin{document}

\begin{frame}{The equations}
\only<1>{
\begin{align}
      &\Highlight[blue][blue!20]{$a_i$}[3pt] + b_j = 10  \qquad\forall i\in I, j\in J \\
      &c_j + d_j +\Highlight[blue][blue!20]{$a_i$}[3pt] >= 30  \qquad \forall i\in I, j\in J
\end{align}
}
\only<2>{
\begin{align}
      &a_i + b_j = 10  \qquad \forall i\in I, j\in J \\
      &\Highlight[orange][orange!20]{$c_j + d_j +a_i >= 30  \qquad\forall i\in I, j\in J$}[3pt]
\end{align}
}
\end{frame}


\end{document}

在此处输入图片描述

请注意,使用后一种方法时,不能在命令&内放置制表符(带有 )\Highlight

解决方案hf-tikz包裹

\documentclass{beamer}
\usepackage{lmodern,amsmath,amssymb}
\usepackage[beamer]{hf-tikz}

\usetheme{Copenhagen}

\begin{document}

\section{Mysection}
\subsection{A subsection}
\begin{frame}{The equations}
\begin{block}{}
 \begin{align}
   \tikzmarkin<1>{a}a_i\tikzmarkend{a} + b_j = 10 & \forall i\in I, j\in J \\
   \tikzmarkin<2>{c}c_j + d_j + \tikzmarkin<1>{b}a_i\tikzmarkend{b} >= 30 & \forall i\in I, j\in J\tikzmarkend{c}
 \end{align}
\end{block}
\end{frame}

\end{document}

请注意,它还避免了无 TikZ 解决方案中可见的所谓“跳跃效应”:

在此处输入图片描述

相关内容