逐步将方程式添加到投影仪高亮显示(hf-tikz)

逐步将方程式添加到投影仪高亮显示(hf-tikz)

我试图从底部开始突出显示线性程序的方程式,并向突出显示添加约束。这是我的 MWE:

\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{array}{r@{}r@{}r@{}l}
    \text{Max} \quad z=x_1 &{} + 12x_2 \\[\jot]
    \text{s.t.}\qquad 3x_1  &{} + \phantom{12}x_2 &{} &{} \leq 5 \\
    x_1 &         &{}  &{} \leq 16 \\
    \tikzmarkin<2->{a}
                    15x_1 &{} + \phantom{12}x_2 &           &{} = 14 \\ \tikzmarkend<2->{a} 
                    \tikzmarkin<1>{a}x_1 &{} &{}   &{} \geq 0 \\
                    &{} x_2 & &{} \geq 0\tikzmarkend{a}\\ 
  \end{array}
\]
\end{block}
\end{frame}

\end{document}

我的幻灯片中出现了奇怪的2->表达式,而且我的高亮框没有完全覆盖公式(在第二张幻灯片中)。我是不是漏掉了什么?提前感谢您的帮助。

注意:ht-tikz 始终需要两次编译。手册上说:始终需要两次编译运行:第一次计算标记(也称为分隔符)的位置,第二次放置框。因此,如果您在第一次运行中遇到错误,请不要惊慌!再次运行...

答案1

\tikzmarkin接收覆盖规范(不是\tikzmarkend);对于另一个问题,您可以使用\phantom;由于两个帧的结束标记相同,因此您只能使用它一次:

\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{array}{r@{}r@{}r@{}l}
  \text{Max} \quad z=x_1 &{} + 12x_2 \\[\jot]
  \text{s.t.}\qquad 3x_1  &{} + \phantom{12}x_2 &{} &{} \leq 5 \\
  x_1 & & &{} \leq 16 \\
  \tikzmarkin<2->{a}15x_1 & {} + \phantom{12}x_2 & & {} = 14 \\ 
  \tikzmarkin<1>{a}x_1 & & & {} \geq 0 \\
  &{} x_2 & &{} \geq 0\phantom{5}\tikzmarkend{a}\\ 
\end{array}
\]
\end{block}
\end{frame}

\end{document}

由于某种原因,上述代码的第一次运行会产生错误

! Package tikz Error: Cannot parse this coordinate.

第二次运行产生所需的输出:

在此处输入图片描述

相关内容