是否可以创建基于新命令外观的目录,如下所示:
\mycomm{Circles and squares} %title of 1st chapter
\mycomm{Triangles and rectangles} %title of 2nd chapter
每个章节都有一个标题和某种样式(由 mycomm 应用)。我可以使用这种样式的外观来创建目录吗?我可以对目录应用一些全新的样式吗?我认为目录是一组段落(每个条目都是一个段落 = 章节名称 + 填充内容 + 页码)。可能吗?
以下是一份最基本的文档:
\documentclass{book}
\newcommand{\mycomm}[1]
{
\newpage
\vspace{55 mm}
\textbf{\huge{#1}}
\vspace{35 mm}
}
\begin{document}
\mycomm{Circles and squares} %title of 1st chapter
bla bla
\mycomm{Triangles and rectangles} %title of 2nd chapter
bla bla
\end{document}
\mycomm
要创建基于此样式的目录,需要添加什么?如何控制目录的外观?我希望设置新命令“\mycommtwo”并使用它来设置目录中的每个条目的样式,有时我希望使用不同的命令,例如:
\newcommand{\mycommtwo}[1]
{
\textbf{\huge{#1}}
}
\newcommand{\mycommtwotwo}[1]
{
\textbf{\large{#1}}
}
我还希望控制目录元素名称和页码之间的填充符以及它们之间的空格。我知道如何在 InDesign 中做到这一点,但我希望切换到 LaTeX 只是为了好玩
答案1
\@makechapterhead
我认为对您来说,重新定义(以及他的朋友,如果需要的话)是最合适的\@makeschapterhead
。您实际上所做的是从头开始编写分段命令,而您不需要在您描述的情况下这样做。这些宏的默认值可以在您正在使用的类的源代码中找到,而这些源代码又可以在您的机器上(或 CTAN 上)找到。以此作为重新定义的基础,即
\makeatletter
\renewcommand{\@makechapterhead}[1]{...}
\makeatother
然后,您就不必担心章节标题无法进入目录。您的帖子的评论正确地指出,您可以使用宏\addtocontents
和来操作目录\addcontentsline
。但这正是\chapter
分别\@chapter
执行的操作。
tocloft
可以使用 canonic 包或轻松设置目录样式titletoc
。对于带点的引线,您需要类似以下内容:
\usepackage{titletoc}
\titlecontents{chapter}[0pt]{\addvspace{1pc}}%
{\bfseries\thecontentslabel\hspace{.5em}\large}{}%
{\titlerule*[.5pc]{.}\contentspage}