当我想在框架中的表格内排版 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
,不需要自己加载。