我正在使用titletoc
它来自定义目录。目前有三件事我无法解决(我猜是因为页码是在固定宽度的框中排版的):
- 沒有
titlerule
填满至頁數。 - 如果页码太大,则会超出右边距。
- 如果标题太长,就会影响页码。
我已经修复了第一个问题
\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}