このサイトは学部では早稲田で物理を, 修士では東大で数学を専攻し, 今も非アカデミックの立場で数学や物理と向き合っている一市民の奮闘の記録です. 運営者情報および運営理念についてはこちらをご覧ください.
中高の数学の復習から専門的な数学・物理までいろいろな情報を発信しています.
中高数学に関しては自然を再現しようや役に立つ中高数学 中高数学お散歩コース
大学数学に関しては現代数学観光ツアーなどの無料の通信講座があります.
その他にも無料の通信講座はこちらのページにまとまっています.
ご興味のある方はぜひお気軽にご登録ください!
問題の説明
まず問題が何かを説明すると, 次のような現象が起きていた.
- tex で複数部構成にした
\setcounter{chapter}{0}
で部ごとに章番号を振り直している- このとき目次のリンクで 2.5 章 (2 部の 5 章) をクリックすると 1.5 章 (1 部の 5 章) に飛ぶといった挙動になる
具体的には次のようなコマンドを使っていた.
\newcommand*\initChapCounter{\setcounter{chapter}{0} \renewcommand\theHchapter{back.\arabic{chapter}}}
メモによるとここを参考にしたようだ.
解決法
次のツイートで教えて頂いた.
\setcounter{chapter}{0}というのをやめて, プリアンプルに
\makeatletter
\@addtoreset{chapter}{part}
\makeatother
と書けばリンクも正しくなったはずです.— Hiromu USHIHARA (@H_USHIHARA) December 3, 2020
これをプリアンブルに設定した上で, 上で定義していた initChapCounter を削除したら各種リンクが正しく動くようになった.
以前もはまって今回また 2 週間くらいはまっていたので非常に助かった.
ありがたいことこの上ない.
これでコンテンツ制作・参照が本当にはかどる.
戒め
次のようなコメントを頂いた.
「LaTeXからみた章番号が一意でない」問題を解消するために、わざわざ \theHchapter(hyperrefからみた章番号)を設定しているはずなのに、その定義の中に部番号を*入れていない*のは何故だろう……??#TeX https://t.co/25JZ4Yn2CP— 某ZR(ざんねん??) (@zr_tex8r) December 6, 2020
ちなみに、
\@?addtoreset{part}{chapter}
を実行すると「そういう意図である」ことがLaTeXに伝わるので、その時点で \theHchapter の値も
\theHpart .\the\value{chapter}
のように部番号が入った形に更新される。#TeX— 某ZR(ざんねん??) (@zr_tex8r) December 6, 2020
指摘を頂いたのは次の箇所だろう.
\renewcommand\theHchapter{back.\arabic{chapter}}}
ここで (謎の back.
はさておき) \arabic{part}
のような記述が必要なのだとかそういう意味だろう. よく調べもしないでコピペするのは駄目という太古からの教えを守らないとこういう悲劇が起きる. 人, これを知的怠惰という. ここに戒めとして記録しておく.
もっというと, 「だろう」ではなくきちんと調べて検証するべきところだが, 再び知的怠惰さを発揮して調査をさぼる.
中高の数学の復習から専門的な数学・物理までいろいろな情報を発信しています.
中高数学に関しては自然を再現しようや役に立つ中高数学 中高数学お散歩コース
大学数学に関しては現代数学観光ツアーなどの無料の通信講座があります.
その他にも無料の通信講座はこちらのページにまとまっています.
ご興味のある方はぜひお気軽にご登録ください!
この記事へのコメントはありません。