![没有页码的目录或 TOC 行](https://linux22.com/image/234195/%E6%B2%A1%E6%9C%89%E9%A1%B5%E7%A0%81%E7%9A%84%E7%9B%AE%E5%BD%95%E6%88%96%20TOC%20%E8%A1%8C.png)
\section
是否可以创建带有s 和s的 TOC(目录)\subsection
,但不在右侧显示页码?我知道这违背了 TOC 的目的,但出于知识的考虑,我想知道 LaTeX 是否提供了这种灵活性。
答案1
LaTeX 非常灵活,特别是如果您能够读取源来重新定义宏。
您可以重新定义
\addcontentsline
:\renewcommand*{\addcontentsline}[3]{\addtocontents{#1}{\protect\contentsline{#2}{#3}{}}}
或者,您可以
\contentsline
像 Herbert 那样重新定义,或者这样:\renewcommand*{\contentsline}[3]{\csname l@#1\endcsname{#2}{}}
如果您希望删除特定级别(例如小节)的页码,请重新定义
\l@subsection{title}{page number}
。也许您想这样做,因为用于特定级别的虚线目录线如果没有页码就没有意义。您甚至可以将
\thepage
本地重新定义为空,并将其与一起放在一个组中\tableofcontents
。
注意:如果您使用该hyperref
包,则应该修改解决方案,因为该包对 TOC 宏进行了修改以实现超链接。
例如,第一个解决方案需要额外的参数作为超链接标签。如果您不希望该目录条目有超链接,则可以将第四个参数留空。
\renewcommand*{\addcontentsline}[4]{\addtocontents{#1}{\protect\contentsline{#2}{#3}{}{#4}}}
答案2
\documentclass{article}
\usepackage{hyperref}
\let\Contentsline\contentsline
\renewcommand\contentsline[3]{\Contentsline{#1}{#2}{}}
\begin{document}
\tableofcontents
\section{foo}
\section{bar}
\end{document}