我正在尝试使用 beamer 的 only<1>、only<2> 等功能来处理帧。但是,当将其添加到程序中时,它无法编译。我将不胜感激任何帮助。
另外,标题“预测结果”和“实际结果”怎么能居中而不是左对齐呢?
哪里有投影仪颜色选项列表(而不是代码中的蓝色)?
我怎样才能制作一个箭头指向单元格?
接下来是:在 beamer 中制作一个方框形式的表格,其中突出显示 2 个单元格
\documentclass[professionalfont, fleqn]{beamer}
\usepackage{tikz}
\usetikzlibrary{arrows,shapes,positioning,fit,shapes.misc}
\begin{document}
\begin{frame}[fragile]
\centering
\begin{tikzpicture}[
box/.style = {draw,rectangle,minimum size=1.0cm,text width=1cm,align=center}
]
\matrix (conmat) [row sep=0cm,column sep=0cm] {
\node (tpos) [box,label=left:\( \mathbf{p'} \),label=above:\( \mathbf{p} \),] {};
& \node (fneg) [box,label=above:\textbf{n},] {$\checkmark$}; \\
\node (fpos) [box,label=left:\( \mathbf{n'} \),] {$\checkmark$};
& \node (tneg) [box] {$\checkmark$}; \\
};
\node [left=.05cm of conmat,text width=1.5cm,align=center] {\textbf{actual \\ value}};
\node [above=.05cm of conmat] {\textbf{prediction outcome}};
\end{tikzpicture}
\end{frame}
\end{document}
我尝试将其仅放在开始{tikzpicture}和结束{tikzpicture}周围。
答案1
(我回答这\only
部分是因为我认为这是主要问题。)
从表面上看似乎并非如此,但这与您的原始问题有着相同的潜在问题:在 tikzpicture 中使用矩阵时,不能过早看到 & 符号。按照\begin{frame} ... \end{frame}
原始问题的构造,整个框架会在处理之前被读入,这意味着 & 符号读取得太早了。该fragile
选项是针对此问题的一种解决方法。但是,该fragile
选项仅适用于\begin{frame} ... \end{frame}
构造。当您将 tikzpicture 括在里面时,\only
整个图片会在处理之前再次被读入(因为它是命令的参数\only
),因此 & 符号读取得太早了。有解决这个问题的方法,例如\onslide<1>
在 tikzpicture 之前使用,但这些方法可能无法与更复杂的叠加规范很好地交互。
还有一种替代方法可以解决这个 & 符号问题,这就是我在这种情况下推荐的方法。那就是在路径构造ampersand replacement
的参数中使用键matrix
。最常见的用法是:\matrix[..., ampersand replacement=\&,...] { ... \& ... \\ };
但可以使用任何命令。此命令用于替换矩阵构造中的 & 符号。因此:
\documentclass[professionalfont, fleqn]{beamer}
%\url{http://tex.stackexchange.com/q/64774/86}
\usepackage{tikz}
\usetikzlibrary{arrows,shapes,positioning,fit,shapes.misc}
\begin{document}
\begin{frame}
\centering
\only<1>{%
\begin{tikzpicture}[
box/.style = {draw,rectangle,minimum size=1.0cm,text
width=1cm,align=center}
]
\matrix (conmat) [row sep=0cm,column sep=0cm,ampersand
replacement=\&] {
\node (tpos) [box,label=left:\( \mathbf{p'} \),label=above:\(
\mathbf{p} \),] {};
\& \node (fneg) [box,label=above:\textbf{n},] {$\checkmark$}; \\
\node (fpos) [box,label=left:\( \mathbf{n'} \),] {$\checkmark$};
\& \node (tneg) [box] {$\checkmark$}; \\
};
\node [left=.05cm of conmat,text width=1.5cm,align=center]
{\textbf{actual \\ value}};
\node [above=.05cm of conmat] {\textbf{prediction outcome}};
\end{tikzpicture}%
}
\pause
Second frame
\end{frame}
\end{document}
我认为,这对您来说将是最强大的解决方案。