目次に謝辞を追加すると参考文献の表示が崩れる現象について

目次に謝辞を追加すると参考文献の表示が崩れる現象について

- Y O の投稿
返信数: 2

お世話になります。

論文に同梱されているクラスファイルを用いてビルドしたところ、目次における参考文献の項目が「chapter参考文献4」という表示となり、想定する「参考文献   4」と異なる結果となりました。以下の画像は、その現象が再現できる最小限のコードによる目次ページです。

なお、私の環境はWindows PCにてTeX Live 2023を使用しており、以下のコマンドでビルドしています。
latexmk -pdfdvi .\main.tex
目次のページで、「謝辞」以降に「参考文献」があるべきですが、「chapter参考文献」と表示されており、想定と異なる様。
一方、Overleaf上でTeX Liveの各バージョン(2017~2024)を試したところ、TeX Live 2017~2021では正常な表示(「参考文献   4」)が得られるのに対し、TeX Live 2022以降では、Windows PCでのビルド時と同様の異常表示が確認されました。

以下に、正常な結果が得られた場合の目次の画像を示します。
先の例では「chapter参考文献4」と表示されたが、「参考文献  4」と正しく表示された様子

さらに、クラスファイル内の謝辞(acknowledgment)の定義を調査した結果、元々の定義は下記のようになっていました。

\def\acknowledgment{\par
\newpage
\thispagestyle{plain}
\addtocontents{toc}{\protect\contentsline{chapter}%
{\hbox to\@tempdima {\hfil }謝辞}{\thepage}}%
{{\large \bf 謝辞} \ignorespaces}\newline\indent}

これを、以下のように変更すると新しいTeX Live環境でも正常な結果が得られることに偶然気付きました。

\def\acknowledgment{\par
\newpage
\thispagestyle{plain}
\addtocontents{toc}{\protect\contentsline{chapter}%
{\hbox to\@tempdima {\hfil }謝辞}{\thepage}{}}%
{{\large \bf 謝辞} \ignorespaces}\newline\indent}

第4引数として空を与える点に着目すると、\contentslineは通常3つの引数を取るものと認識しているため、なぜこの変更で正常表示が得られるのかが分かりません。またTeX Live 2021から2022へのバージョンアップに伴い、今回の現象に関連する何らかの仕様変更があったと思われますが、マクロ作成については殆ど経験がなく、原因の特定ができず困惑しております。

以上の現象の原因および、上記の変更がどのように正常な結果に寄与したのかについて、ご教示いただけますと幸いです。

よろしくお願いいたします。

Y O への返信

Re: 目次に謝辞を追加すると参考文献の表示が崩れる現象について

- はやて (h20y6m) の投稿
> \contentslineは通常3つの引数を取るものと認識している

\contentsline の引数は今は4つです。昔は3つでしたが、LaTeX2e 2021/11/15 から仕様が変わりました。
(相互参照系の内部命令はhyperrefに合わせるような形で拡張されているものがあります)

(ちなみに \addcontentsline は LaTeX2e 2020/10/01 から \contentsline に空の第4引数を追加するようになっているので \addcontentsline を使っていれば……)
はやて (h20y6m) への返信

Re: 目次に謝辞を追加すると参考文献の表示が崩れる現象について

- Y O の投稿

ご返信ありがとうございます。

ご指摘いただいた内容をもとに調査したところ、確かに\contentsline の仕様が変更されていることを確認しました(参考:https://github.com/latex3/latex2e/issues/633)。この仕様変更がTeX Live2022以降に適用されたため、今回の問題が発生しているのだと理解いたしました。

改めまして、ありがとうございました。