我有一个带有大型矩阵的投影仪框架。我想向其中添加一些注释,为此我使用了 tikz 叠加层。但是,矩阵(实际上我认为它是 resizebox)的宽度会随着帧的改变而改变,这是非常不理想的。这是一个最小工作示例:
\documentclass{beamer}
\usepackage{tikz}
\begin{document}
\newcommand{\tikzmark}[1]{\tikz[overlay,remember picture] \node(#1) {};}
\frame
{
\resizebox{\textwidth}{!}
{
$\left(\begin{array}{rrrrrrrrrrrrrrrrrrrrrrrrrr}a & b & c & d & e & f & g & h & i & j & k & l & m & n & o & p & q & r & s & t & u & v & w & x & y & z\\ a & \tikzmark{b}b & c & d & e & f & g & h & i & j & k & l & m & n & o & p & q & r & s & t & u & v & w & x & y & z\end{array}\right)$
\only<1>
{
\begin{tikzpicture}[overlay,remember picture,-latex]
\draw[->] (b.east) -- +(1,-0.5) node[below] (btext) {This is b};
\end{tikzpicture}
}
}
\only<2>
{
\begin{tikzpicture}[overlay,remember picture,-latex]
\node[at=(btext)] {More text};
\end{tikzpicture}
}
}
\end{document}
(不想要的)效果如下:
我使用覆盖是因为我不想让矩阵的宽度在幻灯片之间变化。我知道我的第二个文本在调整大小框之外 - 我希望它与正常文本大小覆盖,即,这样它就不会受到调整大小框的影响。
我该怎么做才能使幻灯片之间的矩阵宽度保持不变?
答案1
您有很多虚假空格。当我将它们全部删除后,它就可以正常工作了。
\documentclass{beamer}
\usepackage{tikz}
\begin{document}
\newcommand{\tikzmark}[1]{\tikz[overlay,remember picture] \node(#1) {};}
\frame
{%
\resizebox{\textwidth}{!}
{%
$\left(\begin{array}{rrrrrrrrrrrrrrrrrrrrrrrrrr}a & b & c & d & e & f & g & h & i & j & k & l & m & n & o & p & q & r & s & t & u & v & w & x & y & z\\ a & \tikzmark{b}b & c & d & e & f & g & h & i & j & k & l & m & n & o & p & q & r & s & t & u & v & w & x & y & z\end{array}\right)$%
\only<1>
{%
\begin{tikzpicture}[overlay,remember picture,-latex]
\draw[->] (b.east) -- +(1,-0.5) node[below] (btext) {This is b};
\end{tikzpicture}%
}%
}%
\only<2>
{%
\begin{tikzpicture}[overlay,remember picture,-latex]
\node[at=(btext)] {More text};
\end{tikzpicture}%
}%
}
\end{document}