使用 pdflatex 以下内容
\documentclass{beamer}
\usepackage{hyperref}
\usepackage{tikz}
\begin{document}
\begin{frame}
\begin{figure}
\hyperlink{bar}{
\begin{tikzpicture}
\filldraw (0,0) -- (0,1) -- (1,1) -- (1,0) -- cycle;
\end{tikzpicture}
}
\hyperlink{bar}{
\begin{tikzpicture}
\filldraw (0,0) -- (0,1) -- (1,1) -- (1,0) -- cycle;
\end{tikzpicture}
}\\
\begin{tikzpicture}
\filldraw (0,0) -- (0,1) -- (1,1) -- (1,0) -- cycle;
\end{tikzpicture}
\begin{tikzpicture}
\filldraw (0,0) -- (0,1) -- (1,1) -- (1,0) -- cycle;
\end{tikzpicture}
\end{figure}
\end{frame}
\end{document}
产生一张幻灯片,其中超链接tikzpicture
环境(上行)之间的间距大于非超链接tikzpicture
环境(下行)之间的间距。使用例如时也可以看到相同的效果\includegraphics
。有没有办法消除这种间距?
答案1
环境tikzpicture
基本上就像一个字母/字符框,因此在%
a 之后没有\end{tikzpicture}
会导致空格,并且\hyperlink{bar}{
换行符会增加虚假空格。
如果任何这些间距应该被“消除”,则必须将其放置%
在\hyperlink{bar}{
链接之后和\end{tikzpicture}
非链接环境之后,以及说\offinterlineskip
- 这四个图像是连续的。
了解两种方法之间的区别。
\documentclass{beamer}
\usepackage{hyperref}
\usepackage{tikz}
\begin{document}
\begin{frame}
\begin{figure}
\hyperlink{bar}{%
\begin{tikzpicture}
\filldraw[blue] (0,0) -- (0,1) -- (1,1) -- (1,0) -- cycle;
\end{tikzpicture}%
}
\hyperlink{bar}{%
\begin{tikzpicture}
\filldraw[red] (0,0) -- (0,1) -- (1,1) -- (1,0) -- cycle;
\end{tikzpicture}%
}
\begin{tikzpicture}
\filldraw[yellow] (0,0) -- (0,1) -- (1,1) -- (1,0) -- cycle;
\end{tikzpicture}
\begin{tikzpicture}
\filldraw[green] (0,0) -- (0,1) -- (1,1) -- (1,0) -- cycle;
\end{tikzpicture}%
\end{figure}
\begin{figure}
\hyperlink{bar}{%
\begin{tikzpicture}
\filldraw[blue] (0,0) -- (0,1) -- (1,1) -- (1,0) -- cycle;
\end{tikzpicture}%
}%
\hyperlink{bar}{%
\begin{tikzpicture}
\filldraw[red] (0,0) -- (0,1) -- (1,1) -- (1,0) -- cycle;
\end{tikzpicture}%
}%
\offinterlineskip% Only within groups!!!
\begin{tikzpicture}
\filldraw[yellow] (0,0) -- (0,1) -- (1,1) -- (1,0) -- cycle;
\end{tikzpicture}%
\begin{tikzpicture}
\filldraw[green] (0,0) -- (0,1) -- (1,1) -- (1,0) -- cycle;
\end{tikzpicture}%
\end{figure}
\end{frame}
\end{document}