에서 볼 수 있듯이이 스레드, \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페이지의 링크는 참고문헌 항목을 가리킵니다.