
Я не могу использовать \uncover
внутри текста узел TikZ. Вот что я хотел бы сделать:
\documentclass{beamer}
\usepackage{tikz}
\begin{document}
\begin{frame}
\begin{tikzpicture}[node distance=2cm]
\node[align=center] (a) {test 1 \\ \uncover<2>{test 12345}};
\node[align=center,right of=a] (b) {test 2};
\path[->] (a) edge (b);
\end{tikzpicture}
\end{frame}
\end{document}
Это дает: "! Ошибка пакета tikz: отказ от этого пути. Вы забыли точку с запятой?"
Использование \onslide
дает тот же результат. Использование \only
работает, но поскольку моя вторая строка длиннее, узел увеличивается, а все остальное смещается.
Мне было бы любопытно понять, почему \only
работает одно, но не работает \uncover
другое \onslide
, но в основном я хотел бы узнать, есть ли простой способ (например, более простой, чем иметь minipage
текст внутри узла) предотвратить изменение размера узла.
решение1
Вам понадобится еще один комплект брекетов:
\documentclass{beamer}
\usepackage{tikz}
\begin{document}
\begin{frame}
\begin{tikzpicture}[node distance=2cm]
\node[align=center] (a) {test 1 \\ {\uncover<2>{test 12345}}}; %wrapped \uncover into {}
\node[align=center,right of=a] (b) {test 2};
\path[->] (a) edge (b);
\end{tikzpicture}
\end{frame}
\end{document}
решение2
\documentclass{beamer}
\usepackage{tikz}
\begin{document}
\begin{frame}
\begin{tikzpicture}[node distance=2cm]
\onslide<1>{%
\node[align=center] (a) {test 1 \\ \phantom{test 12345}};}
\onslide<2->{%
\node[align=center] (a) {test 1 \\ test 12345};}
\node[align=center,right of=a] (b) {test 2};
\path[->] (a) edge (b);
\end{tikzpicture}
\end{frame}
\end{document}