비머 프레임 환경의 \href 링크에 있는 파운드 기호 #

비머 프레임 환경의 \href 링크에 있는 파운드 기호 #

일반적으로 링크에 파운드 기호 #을 사용하는 데에는 문제가 없습니다 \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에 # 기호가 있는 링크를 어떻게 포함할 수 있느냐는 것입니다 .framebeamer


[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}

관련 정보