\hyperlink 在图像周围添加了不必要的空间。如何消除它?

\hyperlink 在图像周围添加了不必要的空间。如何消除它?

使用 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}

在此处输入图片描述

相关内容