titlesec/titletocパッケージで「章番号のみ」を取り出したい

Re: titlesec/titletocパッケージで「章番号のみ」を取り出したい

- Yuishin の投稿
返信数: 0
いや、そもそも私が取ろうとしていた方針が少しまずかったようです。
ltjsbookのバージョンに依存する可能性がある箇所をrenewcommandをするよりも、
そこに頼らずに自分で実装したものを適用させるのが適切でした。

実を言うと、\numberline{...} によって番号部分のみが取り出されることが重要です。
目次のカスタマイズにおいて、番号部分のみを強調するデザインを意図していたためです。
貼り付けられたpartの部分\addcontentslineには \numberline{...} が含まれていないため、
こればかりは(どちらのバージョンであったとしても)カスタマイズしなければなりません。

もとの\tableofcontentsで参照される\l@chapterは、
*.tocにおいて「\numberline{第1章}」の形で書かれていることを前提としており、
このうち「1」のみを強調することはできません。
だから、titletocパッケージの \titlecontents{chapter}... でのカスタマイズを考えました。
titlesecパッケージのマニュアルには \thecontentslabel コマンドを活用するサンプルコードが掲載されています。
これは *.toc にある \numberline{...}を取り出す仕組みになっています(手動で*.tocをいじって確認しました)。
このコマンド名のせいで、てっきり本当に番号が取り出されているのかと勘違いしますが、番号を取り出しているわけではありません。

ltjsbookの仕様では「1」のみを\addnumberline で追加することを避けています。
ltjsbookでは\appendix によって「第1章」から「付録A」の形式に変わります。
一方、「第XX章」と「付録XX」はどちらもtocではchapterの扱いであり、
見分けがつかないことから、\addnumberline に「第1章」と全体を取り込んだのでしょう。

細部までカスタマイズするとなった時点で、
内部の機能に依存しない書きかたをするのが正解であり、
\prechapternameと\postchapternameを空にして、
改めて自分で所望のレイアウトに適用させるのが正解だと思いました。

失礼しました。