![隐藏章节编号,但保留编号](https://linux22.com/image/257690/%E9%9A%90%E8%97%8F%E7%AB%A0%E8%8A%82%E7%BC%96%E5%8F%B7%EF%BC%8C%E4%BD%86%E4%BF%9D%E7%95%99%E7%BC%96%E5%8F%B7.png)
如何隐藏节标题中的节号?我不能只使用\section*{xxxx}
,因为我希望子节正确编号。我还尝试过:
\section*{xxxx}
\stepcounter{xxxx}
隐藏章节编号并保留子章节编号。不幸的是,此解决方案还隐藏了目录中的章节,这是不可取的。
下一次尝试是:
\chapter{}
\section*{xxxx}
\addtocounter{section}{1}
但是,这会导致子节的编号不断继续,而不是在新的节上重新设置。那么我该怎么做才能让它正常运行,只是不显示节号?谢谢!
答案1
我认为最好的选择是重新定义\thesection
,这是通常印刷章节编号。
\renewcommand\thesection{}
如果您希望小节编号包含未打印的节编号,您还需要重新定义\thesubsection
,通常会调用\thesection
:
\makeatletter
\renewcommand\thesection{}
\renewcommand\thesubsection{\@arabic\c@section.\@arabic\c@subsection}
\makeatother
答案2
重新定义\thesection
是不够的。这样做效果会更好:章节标题将与左边距对齐,而不是缩进;在目录中,章节标题将与章节标题水平对齐。
\documentclass{book}
\renewcommand{\thesection}{}
\renewcommand{\thesubsection}{\arabic{section}.\arabic{subsection}}
\makeatletter
\def\@seccntformat#1{\csname #1ignore\expandafter\endcsname\csname the#1\endcsname\quad}
\let\sectionignore\@gobbletwo
\let\latex@numberline\numberline
\def\numberline#1{\if\relax#1\relax\else\latex@numberline{#1}\fi}
\makeatother
\begin{document}
\frontmatter
\tableofcontents
\mainmatter
\chapter{Title}
\section{Xyz}
\subsection{Here we are}
\end{document}
答案3
如果你使用 KOMA 脚本文档类(例如scrartcl
),那么正常情况下,只是不显示章节编号,请将其包含在序言中
\renewcommand*{\sectionformat}{}
这也适用于\chapterformat
(如果您使用scrbook
或scrreport
),\partformat
,一直到\subparagraphformat
。
尽管没有显示数字标签,计数器仍会计算部分,因此目录、PDF 书签和小节编号均正常运行(已测试hyperref
并bookmark
加载包)。
答案4
使用 KOMA,您可以nonumber=true
在您的部分中使用该选项。
您只需在选择时启用可选参数(KOMA)班级:
\documentclass[headings=optiontoheadandtoc]{scrbook}
然后您可以使用:
\section[nonumber=true]{Numberless section}
这将隐藏节标题和目录条目中的节号。小节编号等保持不变。
还有\addsec{Numberless section}
一些功能相同,但不那么通用。