我需要将目录条目排版为右侧参差不齐(而不是两端对齐):
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 ,因为它仅对第一行起作用:\pretocmd
etoolbox
hspace
\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}