有没有办法制作这种风格的单页目录
Introduction ..................................... 1
Next Point ....................................... 2
无需从 LaTex 文档生成它?我打印了一组用于编程课程的脚本,这些脚本不是用乳胶编写的,但我想有一个干净的目录和自定义的页面。
谢谢。
答案1
目录的行是使用 生成的\contentsline
。您也可以自己调用此宏来手动创建目录。一般语法是
\contentsline{<chapter/section/subsection/subsubsection>}{<title>}{<page>}
如果您希望这些条目被编号,则应\numberline{<section number>}
在第二个参数的开头插入。要使用chapter
级别标题,您需要使用支持它的文档类(如book
或report
)。
这是一个例子。我只对一半的部分进行了编号,以说明其工作原理以及结果是什么样子。
\documentclass{article}
\begin{document}
\section*{Table of contents}
\contentsline{section}{Introduction}{1}
\contentsline{subsection}{First subsection}{1}
\contentsline{subsection}{Second subsection}{3}
\contentsline{subsection}{Third subsection}{3}
\contentsline{section}{\numberline{2}First real section}{5}
\contentsline{subsection}{\numberline{2.1}First subsection}{5}
\contentsline{subsection}{\numberline{2.2}Second subsection}{6}
\contentsline{subsection}{\numberline{2.3}Third subsection}{8}
\end{document}
这是一个可以自动处理章节编号的版本。
\documentclass{article}
\newcommand*\tocsection[2]{%
\stepcounter{section}%
\contentsline{section}{\numberline{\thesection}#1}{#2}%
}
\newcommand*\tocsubsection[2]{%
\stepcounter{subsection}%
\contentsline{subsection}{\numberline{\thesubsection}#1}{#2}%
}
\begin{document}
\section*{Table of contents}
\tocsection{Introduction}{1}
\tocsubsection{First subsection}{1}
\tocsubsection{Second subsection}{3}
\tocsubsection{Third subsection}{3}
\tocsection{First real chapter}{5}
\tocsubsection{First subsection}{5}
\tocsubsection{Second subsection}{6}
\tocsubsection{Third subsection}{8}
\end{document}
在具有实际章节的文档类中,\tocchapter
可以采用相同的方式实现。
如果你需要自定义目录的外观,你可以使用titletoc
或者tocloft
。
例如,如果您不想以粗体显示并且希望它们带有(点),则可以将以下内容添加到序言中:
\usepackage{tocloft}
\renewcommand\cftsecfont{\normalfont}
\renewcommand\cftsecpagefont{\normalfont}
\renewcommand{\cftsecleader}{\cftdotfill{\cftdotsep}}
如果您仅使用部分级别标题,这将与您的问题中描述的外观相匹配。
备注:\contentsline
如果已加载(超链接的目标),则需要附加参数hyperref
。如果阅读本文的人想将上述内容合并到使用 的文档中hyperref
,则应{}
在 后添加附加参数{<page>}
。
答案2
如果您想像 LaTeX 一样手动制作目录,这个问题已经得到解答,但问题是 如何手动制作目录。
如果您只想要所发布的示例,则可以tocloft
像 Mico 所展示的那样使用,或者简单如下:
\documentclass{article}
\begin{document}
\section*{Table of Contents}
{\setlength\parindent{0pt}
Introduction \dotfill 1\par
Next Point \dotfill 2\par}
\end{document}
的虚线\dotfill
比普通 ToC 的虚线更密集,但您可以构建自己的虚线。下面的示例是一个带有更稀疏点的宏(奖励:一种“所见即所得”的奇怪语法)。
\documentclass{article}
\def\toc#1...#2 {\noindent#1\leaders\hbox to 1em{\hss.\hss}\hfill#2\par}
\begin{document}
\section*{Table of Contents}
\toc Introduction...1
\toc Next Point...22
\toc Last Point...312
\end{document}
当然,如果您更喜欢更正统的语法(例如),只需用或\toc{Introduction}{1}
定义宏即可。 \newcommand\toc[2]{...}
\def\toc#1#2{...}
答案3
你问,
有没有办法制作单页目录......而无需从 LaTex 文档生成它?
我假设您所说的“不从 LaTeX 文档生成”是指“不创建以指令为前缀的 LaTeX 文档”。由于您将查询发布到此站点,因此我还假设您实际上并不反对通过结构(即通过 LaTeX 文档)\tableofcontents
创建此目录。\documentclass ... \begin{document} ... \end{document}
如果这些假设是正确的,那么以下解决方案可能会引起您的兴趣。
\documentclass{article}
\usepackage{tocloft} %% used only for '\cftsubsecleader' macro
\begin{document}
\setlength\parindent{0pt}
\obeylines
\textbf{Table of Contents}
\smallskip
Introduction \cftsubsecleader 1
Next Point \cftsubsecleader 2
\end{document}