
Хотя обычно нет никаких проблем с использованием знака решетки # в \href
ссылке (см.Гиперссылка со знаком # (цифра)), он не работает в frame
среде beamer
.
\documentclass{beamer}
\usepackage{hyperref}
\begin{document}
\begin{frame}
\href{http://de.wikipedia.org/wiki/Hybridorbital#Beispiele}{Wiki}
\end{frame}
\end{document}
Это приводит к ошибке! Illegal parameter number in definition of \iterate.
Удалите frame
окружение, и оно прекрасно скомпилируется. Поэтому мой вопрос: как мне включить \href
ссылку с символом # в frame
окружение в beamer
?
EDIT: В комментарии предлагается добавить опцию [fragile]
в frame
среду. Хотя это решает проблему MWE выше, это не исправит тот факт, что MWE ниже также падает из-за знака решетки # в ссылке \href
:
\documentclass{beamer}
\usepackage{hyperref}
\begin{document}
\begin{frame}[fragile]
\only<1>{\href{http://de.wikipedia.org/wiki/Hybridorbital#Beispiele}}{Wiki}
\end{frame}
\end{document}
Это приводит к ошибке. ! Illegal parameter number in definition of \beamer@doifinframe.
Уберите знак решетки # из ссылки, и она скомпилируется без ошибок.
решение1
beamer
сканирует всю frame
среду перед тем, как что-либо набрать, и это приводит к проблемам с дословным содержанием, поскольку его невозможно «увидеть» до того, как он будет набран, или токенизация произойдет слишком рано и не сработает.
По сути, в вашем первом примере происходит следующее:
\def\iterate{Hybridorbital#Beispiele}
что выдает ошибку:
! Illegal parameter number in definition of \iterate.
<to be read again>
B
l.4 \def\iterate{Hybridorbital#B
Следующий пример демонстрирует ту же проблему, за исключением того, что проблема возникает не при beamer
сканировании frame
, а при захвате аргумента \only
. Как правило, не следует использовать дословные команды в качестве аргумента для других команд.
Чтобы обойти эту проблему, вы можете экранировать #
. В документации \href
говорится:
Итак, это работает (потому что \#
это не «специальный» символ #
):
\documentclass{beamer}
\usepackage{hyperref}
\begin{document}
\begin{frame}
\only<1>{\href{http://de.wikipedia.org/wiki/Hybridorbital\#Beispiele}{Wiki}}
\end{frame}
\end{document}