使用 titletoc 自定义目录中的页码

使用 titletoc 自定义目录中的页码

我正在使用titletoc它来自定义目录。目前有三件事我无法解决(我猜是因为页码是在固定宽度的框中排版的):

  1. 沒有titlerule填满至頁數。
  2. 如果页码太大,则会超出右边距。
  3. 如果标题太长,就会影响页码。

以下是一个例子: 在此处输入图片描述

我已经修复了第一个问题

\makeatletter
\renewcommand{\@pnumwidth}{0pt{}}
\makeatother

但新的问题出现了

在此处输入图片描述

完整 MWE:

\documentclass{book}

\usepackage[showframe]{geometry}
\usepackage{titletoc}
\makeatletter
\renewcommand{\@pnumwidth}{0pt{}}
\makeatother
\titlecontents{chapter}
    [1cm]
    {\vspace{1cm}\filright}
    {\large\sffamily\bfseries\contentslabel[\thecontentslabel.]{1cm}}
    {\hspace{-1cm}}
    {\titlerule*[3pt]{.}\sffamily\bfseries\large\contentspage}

\begin{document}

    \tableofcontents

    \chapter{one}

    Sample text

    \cleardoublepage

    \addtocounter{page}{1000}

    \chapter{two}

    \chapter{a long long long long long long long long long long long long long  title}

\end{document}

答案1

这是我用 的工具得到的最好的结果titletoc。它解决了第 2 点和第 3 点。

\documentclass{book}

\usepackage[showframe]{geometry}
\usepackage{titletoc}
\contentsmargin{1cm}
\titlecontents{chapter}
    [0.6cm]
    {\vspace{1cm}\filright\large\sffamily\bfseries}
    {\contentslabel[\thecontentslabel.]{1.3em}}
    {\hspace{-1cm}}
    {{\mdseries\hspace{0.4em}\titlerule*[6pt]{.}}\contentspage}

\begin{document}

    \tableofcontents

    \chapter{one}

    Sample text

    \cleardoublepage

    \addtocounter{page}{1000}

    \chapter{two}

    \chapter{a long long long long long long long long long long long long long long title}

\end{document}

在此处输入图片描述

相关内容