立て続けに質問して恐縮です.
現在 jsbook や bxjsbook を使って参考文献と索引を含む文章を書いているのですが,つい最近奇妙なことに気づきました.目次や PDF のしおりから索引のページへジャンプしようとすると,索引ではなく参考文献にジャンプしてしまいます.以前はこのようなこと無かったと思います.どの時点でどのパッケージに不具合が入り込んだのかわからずに困っています.以下再現ソースと生成した PDF を添付します.怪しいのは hyperref でしょうか?
uplatex, upmendex, dvipdfmx を使ってコンパイルしています.
% ----------
\RequirePackage{plautopatch}
\documentclass[uplatex,dvipdfmx,ja=standard,b5paper,11pt,openany]{bxjsbook}
%\documentclass[uplatex,dvipdfmx,b5paper,11pt,openany]{jsbook}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{makeidx}
\usepackage[dvipdfmx, colorlinks=true, bookmarks=true, bookmarksnumbered=true,%
bookmarkstype=toc, filecolor=blue, urlcolor=blue, linkcolor=blue,%
linktocpage=true, citecolor=red, menucolor=black,%
pdfnewwindow=true, breaklinks=false]{hyperref}
%\usepackage{pxjahyper}
\title{本の題名}
\author{著者名}
\date{\today}
\makeindex
\begin{document}
\maketitle
\tableofcontents
\chapter{序論}
\section{各種変数,定数の定義}
本書では以下の規則に従って変数名\index{へんすうめい@変数名}や定数名\index{ていすうめい@定数名}を使用する.なお,この規則はガイドライン\cite{foo:Guideline of naming convention}に従ったものである.
\begin{thebibliography}{99}
\bibitem{foo:Guideline of naming convention} Bar, F.\ (2024). \emph{Naming Convention of Variables and Constants}. South Pacific Publishing, Nouméa
\end{thebibliography}
\clearpage
\printindex
\end{document}
% ----------
以下では、場当たり的に、\printindexの直前に \phantomsection を入れました。
本件の場合にかぎり、なぜこれでうまくいくかは、目次のためのtocファイルと別に吐き出されている、PDF栞のためのoutファイルを眺めていただくことになります。
\RequirePackage{plautopatch}
\documentclass[uplatex,dvipdfmx,ja=standard,b5paper,11pt,openany]{bxjsbook}
%\documentclass[uplatex,dvipdfmx,b5paper,11pt,openany]{jsbook}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{makeidx}
\usepackage[dvipdfmx, colorlinks=true, bookmarks=true,
bookmarksnumbered=true,%
bookmarkstype=toc, filecolor=blue, urlcolor=blue, linkcolor=blue,%
linktocpage=true, citecolor=red, menucolor=black,%
pdfnewwindow=true, breaklinks=false]{hyperref}
\usepackage{pxjahyper}
\title{本の題名}
\author{著者名}
\date{\today}
\makeindex
\begin{document}
\frontmatter
\maketitle
\tableofcontents
\mainmatter
\chapter{序論}
\section{各種変数,定数の定義}
本書では以下の規則に従って変数名\index{へんすうめい@変数名}や定数名\index{ていすうめい@定数名}を使用する.なお,この規則はガイドライン\cite{foo:Guideline
of naming convention}に従ったものである.
\backmatter
\begin{thebibliography}{99}
%%\chapter*{参考文献} => \BOOKMARK [0][-]{chapter*.2}{\376\377\123\302\200\003\145\207\163\056}{}% 3
\bibitem{foo:Guideline of naming convention} Bar, F.\ (2024). \emph{Naming
Convention of Variables and Constants}. South Pacific Publishing, Nouméa
\end{thebibliography}
\clearpage\phantomsection%%<= [ad-hoc]
\printindex
%%\chapter*{索引}
%% \phantomsection を入れない => \BOOKMARK [0][-]{chapter*.2}{\376\377\175\042\137\025}{}% 4 ←参考文献のIDと衝突する
%% \phantomsection を入れる => \BOOKMARK [0][-]{section*.3}{\376\377\175\042\137\025}{}% 4
\end{document}
%% ☡
%% そもそも、jclassesやjsclassesは、hyperrefに対応していないクラスファイルです。
%% ここで、「hyperrefに対応していない」とは、hyperrefを組み込んでhyperrefを前提として実装されていないということです。
%% したがって、jclassesやjsclassesを使ってhyperrefしたい場合、期待するoutファイルを吐くように、各種見出しならびに、それらの目次まわりを部分的に書き換えたりする必要があると思います。
本件の場合にかぎり、なぜこれでうまくいくかは、目次のためのtocファイルと別に吐き出されている、PDF栞のためのoutファイルを眺めていただくことになります。
\RequirePackage{plautopatch}
\documentclass[uplatex,dvipdfmx,ja=standard,b5paper,11pt,openany]{bxjsbook}
%\documentclass[uplatex,dvipdfmx,b5paper,11pt,openany]{jsbook}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{makeidx}
\usepackage[dvipdfmx, colorlinks=true, bookmarks=true,
bookmarksnumbered=true,%
bookmarkstype=toc, filecolor=blue, urlcolor=blue, linkcolor=blue,%
linktocpage=true, citecolor=red, menucolor=black,%
pdfnewwindow=true, breaklinks=false]{hyperref}
\usepackage{pxjahyper}
\title{本の題名}
\author{著者名}
\date{\today}
\makeindex
\begin{document}
\frontmatter
\maketitle
\tableofcontents
\mainmatter
\chapter{序論}
\section{各種変数,定数の定義}
本書では以下の規則に従って変数名\index{へんすうめい@変数名}や定数名\index{ていすうめい@定数名}を使用する.なお,この規則はガイドライン\cite{foo:Guideline
of naming convention}に従ったものである.
\backmatter
\begin{thebibliography}{99}
%%\chapter*{参考文献} => \BOOKMARK [0][-]{chapter*.2}{\376\377\123\302\200\003\145\207\163\056}{}% 3
\bibitem{foo:Guideline of naming convention} Bar, F.\ (2024). \emph{Naming
Convention of Variables and Constants}. South Pacific Publishing, Nouméa
\end{thebibliography}
\clearpage\phantomsection%%<= [ad-hoc]
\printindex
%%\chapter*{索引}
%% \phantomsection を入れない => \BOOKMARK [0][-]{chapter*.2}{\376\377\175\042\137\025}{}% 4 ←参考文献のIDと衝突する
%% \phantomsection を入れる => \BOOKMARK [0][-]{section*.3}{\376\377\175\042\137\025}{}% 4
\end{document}
%% ☡
%% そもそも、jclassesやjsclassesは、hyperrefに対応していないクラスファイルです。
%% ここで、「hyperrefに対応していない」とは、hyperrefを組み込んでhyperrefを前提として実装されていないということです。
%% したがって、jclassesやjsclassesを使ってhyperrefしたい場合、期待するoutファイルを吐くように、各種見出しならびに、それらの目次まわりを部分的に書き換えたりする必要があると思います。