2018年5月15日

titletoc

目次の見た目を変更するパッケージ.titlesecパッケージのお友達.お友達なので説明書はtitlesecのに一緒に入っています.

使い方

\usepackage{titletoc}
とします.こんな感じ.
\documentclass{jlreq}
\usepackage{titletoc}
\titlecontents{section}[1zw]{}{■\thecontentslabel}{}{……\hfill\contentspage}
\begin{document}
\tableofcontents
\section{はじめに}
\end{document}

ちなみに和文なクラスファイルを使っていると,titletocを読み込んだだけで目次がおかしくなっちゃうみたいなので,必要な目次は全部以下のようなコマンドで再定義した方がよさそうです.

\titlecontents

目次の見た目の変更は上記の\titlecontentsで行います.\titlecontentsの書式は,

\titlecontents{<見出しコマンド名>}% figureとかも大丈夫
    [<左空き>]% 必須!
    {<頭で実行されるコマンド>}
    {<番号付き見出しに対するラベルの書式>}
    {<番号無し見出しに対するラベルの書式>}
    {<目次の後に続く書式>}
    [<最後に実行されるコマンド>]% オプション
です.左空きは[]で囲まれていますが,必須項目です.たとえば上の例では
\titlecontents{section}% \sectionの目次を変える
    [1zw]% 左側には一文字分の空き
    {}% 先頭では特に何も実行しない
    {■\thecontentslabel}% ■の後に番号を入れる,というラベルをつける
    {}% 番号無しラベルには何も入れない
    {……\hfill\thecontentspage}% 三点リーダーを二つ出力した後,右にページ番号を出力する.
としています.

ラベルやページ数を出すには,上の例にあるように\thecontentslabel\thecontentspageを使います.ラベルに関しては,\contentslabelというもう少し拡張されたものもあります.使い方は\contentslabel[<フォーマット>]{<長さ>}.長さ<長さ>の中にラベルを表示します.全体は左に<長さ>分だけずれます.<フォーマット>が与えられると,それに応じて表示します.例えば\contenslabel[(\thecontentslabel)]{2zw}とするとラベルが括弧でくくられます.\hspace{-<長さ>}\makebox[<長さ>][l]{<フォーマット>}とほぼ等価かと思う.

articleクラスの\subsectionで出てくるような,見出し文字列の後に……と続く目次をのためには,titlesecパッケージ内でも出てきた\titlerule*がよいでしょう.

\documentclass{jlreq}
\usepackage{titletoc}
\titlecontents{section}[1zw]{}{\thecontentslabel}{}
    {\titlerule*{・}\makebox[2zw][r]{\thecontentspage}}% ・を並べた後,全角二文字の幅内にページ数を表示
\begin{document}
\tableofcontents
\section{はじめに}
\end{document}

字上げ

目次の左端の位置の調整は,\contentsmarginでできます.これはプリアンブルなどで使うことができます.書式は

\contentsmargin[<補正長さ>]{<長さ>}
で,目次の右の余白を<長さ>に設定します.各項目が二行以上になった場合,最後の行を除きさらに<補正長さ>の長さが入ります.以下は\contentsmargin[5zw]{3zw}の例です.

プリアンブルなどでと書きましたが,\titlecontents<頭で実行されるコマンド>に入れることもできます.この場合,対応する目次項目のみがその影響を受けます.

0 件のコメント:

コメントを投稿

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