单页目录

单页目录

有没有办法制作这种风格的单页目录

Introduction ..................................... 1
Next Point ....................................... 2

无需从 LaTex 文档生成它?我打印了一组用于编程课程的脚本,这些脚本不是用乳胶编写的,但我想有一个干净的目录和自定义的页面。

谢谢。

答案1

目录的行是使用 生成的\contentsline。您也可以自己调用此宏来手动创建目录。一般语法是

\contentsline{<chapter/section/subsection/subsubsection>}{<title>}{<page>}

如果您希望这些条目被编号,则应\numberline{<section number>}在第二个参数的开头插入。要使用chapter级别标题,您需要使用支持它的文档类(如bookreport)。

这是一个例子。我只对一半的部分进行了编号,以说明其工作原理以及结果是什么样子。

\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}

相关内容