Si bien normalmente no hay ningún problema con tener el signo de almohadilla # en un \href
enlace (consulteHipervínculo con # (signo numérico)), no funciona dentro de un frame
entorno en beamer
.
\documentclass{beamer}
\usepackage{hyperref}
\begin{document}
\begin{frame}
\href{http://de.wikipedia.org/wiki/Hybridorbital#Beispiele}{Wiki}
\end{frame}
\end{document}
Esto da como resultado el error! Illegal parameter number in definition of \iterate.
Sin embargo, elimine el frame
entorno y se compilará bien. Entonces mi pregunta es, ¿cómo puedo incluir un \href
enlace con el símbolo # en un frame
entorno en beamer
?
EDITAR: Un comentario sugiere agregar la opción [fragile]
al frame
entorno. Si bien esto soluciona el MWE anterior, no solucionará el hecho de que el MWE siguiente también falla debido al signo de almohadilla # en el \href
enlace:
\documentclass{beamer}
\usepackage{hyperref}
\begin{document}
\begin{frame}[fragile]
\only<1>{\href{http://de.wikipedia.org/wiki/Hybridorbital#Beispiele}}{Wiki}
\end{frame}
\end{document}
Esto da el error ! Illegal parameter number in definition of \beamer@doifinframe.
Sin embargo, elimine el signo de almohadilla # del enlace y se compila sin errores.
Respuesta1
beamer
escanea todo el frame
entorno antes de escribir algo, y esto genera problemas con el contenido textual, porque no se puede "ver" antes de que se esté escribiendo, o la tokenización ocurrirá demasiado pronto y no funcionará.
Básicamente, lo que sucede en su primer ejemplo es:
\def\iterate{Hybridorbital#Beispiele}
que arroja el error:
! Illegal parameter number in definition of \iterate.
<to be read again>
B
l.4 \def\iterate{Hybridorbital#B
El siguiente ejemplo muestra el mismo problema, excepto que el problema no ocurre mientras beamer
se escanea el archivo frame
, sino cuando toma el argumento de \only
. Como regla general, no utilice comandos textuales como argumento para otros comandos.
Para solucionar el problema, puede escapar del archivo #
. La documentación de \href
dice:
Entonces esto funciona (porque \#
no es el carácter "especial" #
):
\documentclass{beamer}
\usepackage{hyperref}
\begin{document}
\begin{frame}
\only<1>{\href{http://de.wikipedia.org/wiki/Hybridorbital\#Beispiele}{Wiki}}
\end{frame}
\end{document}