投影仪框架内表格中的 \href 中带有 & 的 URI

投影仪框架内表格中的 \href 中带有 & 的 URI

当我想在框架中的表格内排版 URI 时,出现了奇怪的效果。

例子:

\documentclass[10pt]{beamer}
\usepackage{hyperref}
\begin{document}

\begin{frame}
\href{http://www.mysite.de/xxx}{page 1} --
\href{http://www.mysite.de/xxx&}{page 1}
\end{frame}

\begin{frame}
\begin{tabular}{l}
\href{http://www.mysite.de/xxx}{url without \&} %ok
\end{tabular}
\end{frame}

%Error
\begin{frame}%[fragile]
\begin{tabular}{l}
\href{http://www.mysite.de/xxx&}{url with \&}   %! Argument of \href@split has an extra }.
\end{tabular}
\end{frame}

 \end{document}

当我翻译文档时,出现错误

! Argument of \href@split has an extra }.
<inserted text> 
                \par 
l.21     \end{frame}

\href在框架内我没有遇到任何问题(参见第一个框架),在表格内也没有遇到任何问题(参见第二个框架),但如果包含并且它是表格的一部分,\href我就会遇到问题。\href&

如果框架获得一个标志,则示例工作正常fragile。我理解,fragile如果我使用逐字文本,为什么我需要该标志,但如果有表格和href内容的组合,为什么需要脆弱标志?

在这种情况下有没有办法避免脆弱标志?

答案1

解决方案是通过将关闭到括号中来“隐藏”环境&中:tabular\href

\documentclass[10pt]{beamer}
\begin{document}

\begin{frame}
\href{http://www.mysite.de/xxx}{page 1} --
\href{http://www.mysite.de/xxx&}{page 1}
\end{frame}

\begin{frame}
\begin{tabular}{l}
\href{http://www.mysite.de/xxx}{url without \&}
\end{tabular}
\end{frame}

%Error
\begin{frame}%[fragile]
\begin{tabular}{l}
{\href{http://www.mysite.de/xxx&}{url with \&}}
\end{tabular}
\end{frame}

\end{document}

注意:默认beamer加载hyperref,不需要自己加载。

相关内容