投影机中块环境中的超链接位置不正确

投影机中块环境中的超链接位置不正确

我使用一个模板来beamer重新定义块环境,以制作真实的阴影、轮廓和自定义弯曲角。它的外观非常漂亮,但不幸的是,它会产生副作用,即块环境中的超链接位置不正确。如果可能的话,我想保留模板的原样并更正链接位置。

链接的位置太高,这似乎是由这里引入的垂直偏移引起的,它只影响文本而不影响链接:

\pgfputat{\pgfpoint{0pt}{-3ex}}{\pgftext[left,base]{\copy\bmb@bodybox}}

平均能量损失

\documentclass{beamer}
\usepackage[backref=true, backend=biber]{biblatex}
\bibliography{biblatex-examples}
\usepackage{tikz}
\setbeamertemplate{blocks}[rounded]

\makeatletter
\newbox\bmb@headbox
\newbox\bmb@bodybox

\renewcommand\beamerboxesrounded[2][]{%
  \setkeys{beamerboxes}{upper=block title,lower=block body,width=\textwidth}%
  \setbox\bmb@headbox=\hbox{%
    \begin{minipage}[b]{\bmb@width}%
      #2%
    \end{minipage}}%
  \setbox\bmb@bodybox=\hbox\bgroup\begin{minipage}[b]{\bmb@width}%
}

\def\endbeamerboxesrounded{%
  \end{minipage}\egroup%
  \begin{tikzpicture}
    \pgfputat{\pgfpoint{0pt}{0pt}}{\pgftext[left,base]{\copy\bmb@headbox}}
    \pgfputat{\pgfpoint{0pt}{-3ex}}{\pgftext[left,base]{\copy\bmb@bodybox}}
  \end{tikzpicture}
}
\makeatother

\begin{document}
\begin{frame}
\begin{block}{This is the block title}
This is where the citation occurs \cite{kastenholz}
\end{block}
\end{frame}
\end{document}

答案1

在文本全部排版后使用这种低级文本定位将破坏超链接,因为\bmb@bodybox它们已经被处理过了。如果你显示该框,你会发现链接为

\pdfstartlink(*+*)x* attr{/Border[1 1 1]/H/N/C[.5 .5 .5]} action goto name{cite.0@kastenholz}

(使用 pdfTeX)。如果你读过pdfTeX 手册,你会发现这些是绝对定位的。因此,移动此材料的唯一方法是在将其排版到 之前进行移动\bmb@bodybox。这实际上是一个单独的问题,因为我们需要知道想要什么效果。

相关内容