titletoc:章节标题右侧不齐

titletoc:章节标题右侧不齐

我需要将目录条目排版为右侧参差不齐(而不是两端对齐):

1.2.2  Short title  . . . . . 42
1.2.3  Long section title
       can be wrapped . . . . 44
1.2.4  Another short title  . 45

我已经问过类似问题并得到了很好的答案。还有另一个类似的问题关于memoir包裹。

但是,这次我必须使用该titletoc包(与标准book类一起),并且当前的答案似乎与它不兼容。

作为一个简单的例子,下面是如何排版章节标题的定义:

\contentsmargin{7mm}
\titlecontents{section}
              [15mm]
              {}
              {\contentslabel{9mm}}
              {\hspace*{-9mm}}
              {\titlerule*[1pc]{.}\contentspage}

我怎样才能调整定义,使章节标题正确排列(但除此之外,排版就像我现在所拥有的一样)?


编辑:完整 MWE:

\documentclass[oneside,12pt,a4paper]{book}
\usepackage{titletoc}

\newcommand{\foo}{Loremipsum dolorsitamet, consectetueradipiscingelit. Utpuruselit, vestibulumut, placeratac, adipiscingvitae, felis. Curabiturdictum gravidamauris. Namarculibero, nonummyeget, consectetuerid, vulputatea, magna. Donecvehicula augueeuneque.}

\contentsmargin{7mm}

\titlecontents{chapter}
              [6mm]
              {\addvspace{4mm}\bfseries}
              {\contentslabel{6mm}}
              {\hspace*{-6mm}}
              {\titlerule[0pt]\contentspage}
              [\addvspace{2mm}]

\titlecontents{section}
              [15mm]
              {}
              {\contentslabel{9mm}}
              {\hspace*{-9mm}}
              {\titlerule*[1pc]{.}\contentspage}

\titlecontents{subsection}
              [27mm]
              {}
              {\contentslabel{12mm}}
              {\hspace*{-12mm}}
              {\titlerule*[1pc]{.}\contentspage}

\begin{document}
\tableofcontents
\chapter{\foo}
\section{\foo}
\subsection{\foo}
\end{document}

下面是我期望的输出类型的粗略近似值(右边不规则,没有连字符):

在此处输入图片描述

这是通过 实现的tocstyle,正如这个答案。但是,它与不兼容titletoc,我需要使用它titletoc来控制布局的其他方面(边距、间距、字体、颜色等)。

答案1

也许这就是你想要的东西?

\documentclass[oneside,12pt,a4paper]{book}
\usepackage{titletoc}

\newcommand{\foo}{Lorem ipsum dolor sitamet, consectetuer adipiscingelit. Utpuruselit, vestibulum ut, placeratac, adipiscing vitae, felis. Curabitur dictum gravidam auris. Nam arculibero, nonummyeget, consectetuerid, vulputatea, magna. Donec vehicula augueeuneque.}

\contentsmargin[2cm]{1em}

\titlecontents{chapter}
              [6mm]
              {\addvspace{4mm}\bfseries}
              {\contentslabel{6mm}}
              {\hspace*{-6mm}}
              {\titlerule[0pt]\contentspage}%
              [\medskip]

\titlecontents{section}
              [15mm]
              {}
              {\contentslabel{9mm}}
              {\hspace*{-9mm}}
              {\titlerule*[1pc]{.}\contentspage}[\medskip]

\titlecontents{subsection}
              [27mm]
              {}
              {\contentslabel{12mm}}
              {\hspace*{-12mm}}
              {\titlerule*[1pc]{.}\contentspage}

\begin{document}

\tableofcontents

\chapter{\foo}
\section{\foo}
\subsection{\foo}

\end{document} 

在此处输入图片描述

有一个拉格德右目录,\raggedright不幸的是,该指令将标签放在左边距中,因此无法使用它。解决方案是使用包中的命令locally抑制连字符。我还从无数章节、部分、小节的格式中删除了 negatice ,因为它仅对第一行起作用:\pretocmdetoolboxhspace

\documentclass[oneside,12pt,a4paper]{book}
\usepackage{titletoc}
\usepackage{etoolbox}
\pretocmd {\tableofcontents}{\hyphenpenalty=10000}{}{}

\usepackage[showframe, nomarginpar]{geometry}

\newcommand{\foo}{Lorem ipsum dolor sitamet, consectetuer adipiscingelit. Ut puruselit, vestibulum ut, placeratac, adipiscing vitae, felis. Curabitur dictum gravidam auris. Nam arculibero, nonummyeget, consectetuer id, vulputatea, magna. Donec vehicula augueeu neque.}


\contentsmargin[2cm]{7mm}
\titlecontents{chapter}
              [6mm]
              {\addvspace{4mm}\bfseries}
              {\contentslabel{6mm}}
              {}%\hspace*{-6mm}
              {\titlerule[0pt]\contentspage}
              [\addvspace{2mm}]

\titlecontents{section}
              [15mm]
              {}
              {\contentslabel{9mm}}
              {}%\hspace*{-9mm}
              { \titlerule*[1pc]{.}\contentspage}

\titlecontents{subsection}
              [27mm]
              {}
              {\contentslabel{12mm}\raggedright}
              {}%\hspace*{-12mm}
              {\titlerule*[1pc]{.}\contentspage}

\begin{document}
{
\tableofcontents
}
\chapter{\foo}
\foo
\section{\foo{}}
\subsection{\foo}
\chapter*{\foo}
\addcontentsline{toc}{chapter}{\foo}

\end{document} 

在此处输入图片描述

相关内容