ご覧の通りこのスレッド、\cite
選択された言語がフランス語で、bibitem キーに (:
Babel フランス語でアクティブな文字)が含まれている場合、コマンドはバグになります。実際、関係するハイパーリンクは、参考文献項目へのアンカーではなく、常にページ 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 ページ目のリンクは参考文献項目を指します。