gpt4 book ai didi

latex ,目录中没有节号,但在实际节标题中可见

转载 作者:行者123 更新时间:2023-12-04 08:16:29 36 4
gpt4 key购买 nike

我正在写一个文档,不想让小节编号显示在目录中(我希望小节标题在目录中可见),但是我希望小节编号显示在实际的文件标题中。

这就是我要的

Table of Contents
1. Chapter One
1.1 Section One
SubSection One

Chapter 1
Chapter One
Some chapter text

1.1 Section One
Some text

1.1.1 Subsection One
Some text

我尝试使用\setcounter {secnumdepth} {1},但这甚至从节标题中删除了数字,所以我拥有的是,
Table of Contents
1. Chapter One
1.1 Section One
SubSection One

Chapter 1
Chapter One
Some chapter text

1.1 Section One
Some text

Subsection One
Some text

是否可以在文档标题中而不是在TOC条目中获得节号?

最佳答案

在一个 latex 示例中(使用“article”类),我在.toc文件中得到了它:

\contentsline {section}{\numberline {1}test section without number}{1}{section.1}

这里的重要部分是 \numberline宏。重新定义为空的东西
\def\numberline#1{}

将删除目录中的所有编号,而不是其他位置。
如果在.toc中得到类似 \tocsubsection的信息(请参阅其他答案),则可能可以执行以下操作:
\let\oldtocsubsection=\tocsubsection
\def\tocsubsection#1#2#3{\oldtocsubsection{#1}{}{#3}}

但是,这将删除目录中的所有数字。如果要控制编号消失的级别, \contentsline宏会根据上下文扩展到不同的宏,例如 \l@section。这些宏依次使用通用的 \@dottedtocline宏。这是您需要修改的代码,其中我们将有条件地重新定义 \numberline

为了控制停止显示数字的深度,让我们定义一个新的计数器:
\newcounter{sectocnonumdepth}
\setcounter{sectocnonumdepth}{2}

然后,条件重新定义将在下面一行(从代码中提取出来,以提高可读性)。
 \ifnum #1>\c@sectocnonumdepth \def\numberline##1{}\fi%

我只是从 \@dottedtocline源文件中复制粘贴了 latex.ltx的定义,并在其中添加了检查。这是整个示例的代码:
\newcounter{sectocnonumdepth}
\setcounter{sectocnonumdepth}{2}


\makeatletter
\def\@dottedtocline#1#2#3#4#5{%
\ifnum #1>\c@tocdepth \else
\vskip \z@ \@plus.2\p@
{\ifnum #1>\c@sectocnonumdepth \def\numberline##1{}\fi%
\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip
\parindent #2\relax\@afterindenttrue
\interlinepenalty\@M
\leavevmode
\@tempdima #3\relax
\advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip
{#4}\nobreak
\leaders\hbox{$\m@th
\mkern \@dotsep mu\hbox{.}\mkern \@dotsep
mu$}\hfill
\nobreak
\hb@xt@\@pnumwidth{\hfil\normalfont \normalcolor #5}%
\par}%
\fi}
\makeatother

最后说明:由于没有数字可显示,因此这将使节和小节的标题从同一水平位置开始。如果您想要更多填充,您可以例如将 \quad添加到 \numberline的新定义中,或者甚至使用原始定义而仅删除 #1:
\def\numberline##1{\hb@xt@\@tempdima{\hfil}}

关于 latex ,目录中没有节号,但在实际节标题中可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3978725/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com