콜론을 포함하고 바벨 프랑스어 옵션을 사용하여 bibitem 키로 하이퍼 참조를 작동시키는 방법은 무엇입니까?

콜론을 포함하고 바벨 프랑스어 옵션을 사용하여 bibitem 키로 하이퍼 참조를 작동시키는 방법은 무엇입니까?

에서 볼 수 있듯이이 스레드, \cite선택한 언어가 프랑스어이고 bibitem 키에 :바벨 프랑스어의 활성 문자인 가 포함되어 있으면 명령 버그가 발생합니다. 실제로 관련 하이퍼링크는 항상 참고문헌 항목에 대한 기준이 아닌 1페이지를 참조합니다.

분명히 이것은 버그이며 hyperref다음과 같은 여러 가지 방법으로 해결할 수 있습니다.

  • 각각을 \cite다음으로 묶습니다 \selectlanguage{english}...\selectlanguage{french}
  • 사용하여cite (cf이 답글)
  • 등.

사용하여cite 지금까지 가장 간단하고 우아한 해결 방법인 것 같습니다. 하지만 만약 내가할 수 없다이 패키지를 사용하면서도 여전히 우아한 솔루션을 원합니다. 그것이 무엇이라고 생각하시나요?

답변1

이것은 실제로 로 해결되어야 hyperref하지만 여기에 (콜론에 대해) 작동하는 것처럼 보이는 해킹이 있습니다. 그러나 가장 좋은 방법은 babel-french레이블에 콜론을 사용하지 않는 것입니다.

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}
\usepackage{etoolbox}
\usepackage{hyperref}

\makeatletter
% patch \hyper@link@ so \FDP@colonspace becomes innocuous
\patchcmd{\hyper@link@}{\begingroup}{\begingroup\def\FDP@colonspace{}}{}{}
\makeatother

\begin{document}

\cite{a:b}

\newpage

\begin{thebibliography}{1}

\bibitem{a:b} X

\end{thebibliography}

\end{document}

1페이지의 링크는 참고문헌 항목을 가리킵니다.

관련 정보