我试图从底部开始突出显示线性程序的方程式,并向突出显示添加约束。这是我的 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.
第二次运行产生所需的输出: