2018年10月26日

前付内での図表の採番の話.jbookでは次のようになる.

\documentclass{jbook}
\begin{document}
\tableofcontents
\frontmatter
% \chapterは目次には追加される,採番はされない.chapterカウンタも増えない.
\chapter{pre1}
\begin{table}
\caption{Table in Pre1}% 表1
\end{table}
\chapter{pre2}
\section{sec:pre}% \sectionは採番される. 0.1と出る.
\begin{table}
\caption{Table in Pre2}% 表2
\end{table}
\end{document}

jbookでは次のように実現している.

  • フラグ\if@mainmatterにより\chapterの挙動を変更.カウンタは増やさず,目次には追加する.ラベルは出力しない.

  • \thetable\ifnum\c@chapter>\z@\thechapter.\fi\@arabic\c@tableと定義されている.

jlreqではどうしよう.\if@mainmatterによる分岐を使わずにLaTeXな方法で解決したい.節番号を出さなくするLaTeX / jlreq的な方法は次がある.

  • \chapter*と星付きにする.カウンタの増加は止まり,目次にも出力されなくなる.
  • secnumdepthカウンタを小さくする.カウンタの増加は止まるが,目次には出力される.ただし,\section等も同じ扱いになる.
  • \ModifyHeading{chapter}{label_format={}}とする.カウンタは増加し,目次には出力される.

secnumdepthカウンタを小さくすると目的通りになるが,他の見出しも同じ扱いになるのはよくない.secnumdepthはそのままにして\chapter自身のレベルを変更すれば期待通りになるが,実際には大見出しを出力する命令である\chapterのレベルが低く(高く?)なるのはおかしいだろう.

手としてあり得るのは次の二つ.

  • \Declare***Headingを拡張し,「カウンタを増加させない」という設定を追加する.
  • chapterの増加に伴いtableカウンタがリセットされるのをいったん解除する.

一つ目の方法は,なんだこの設定感が強すぎるのが難点.「ラベルのない見出しを出力する命令」だと思えばありだろうか…….

\sectionはどうするのかという話もある.jbookでは,0.<節番号>という形で\sectionのラベルが出力されるようである.これは

  • \thesection\thechapter.\arabic{section}と定義されている.
  • chapterカウンタは増加しないので,常に0のまま.
というように実装されている.この出力が妥当なのかは知らないが,同じようにしようとするとカウンタを増加しないようにするのがやはり必要に…….

0 件のコメント:

コメントを投稿

コメントの追加にはサードパーティーCookieの許可が必要です