fancyhdr - 如何禁用自动章节编号并仍在标题中显示章节名称

fancyhdr - 如何禁用自动章节编号并仍在标题中显示章节名称
\documentclass[fleqn,12pt,a4paper]{article}
%\RequirePackage{Kaumudi_Package}
\usepackage{fancyhdr}
\pagestyle{fancy}
\begin{document}
\section{section-1} 
\newpage
\section{section-2}
\end{document}

在上面的 MWE 中,部分名称放在页面标题中,这很好。但是它还会在每个部分前面放置一个数字。我想禁用部分前面的数字。我设法做到了这一点,\section*{}但这也会将其从标题中移除。我如何才能禁用部分前面的数字并在标题中显示部分的名称

答案1

您需要重新定义\sectionmark(有关详细信息,请参阅包文档);例如,您可以使用以下内容:

\documentclass[fleqn,12pt,a4paper]{article}
\usepackage{fancyhdr}

\pagestyle{fancy}
\fancyhead[R]{\leftmark}
\renewcommand\sectionmark[1]{\markboth{\MakeUppercase{#1}}{}}

\begin{document}
\section{section-1}
\newpage
\section{section-2}
\end{document}

处理上述示例代码后,你会收到警告

Package Fancyhdr Warning: \headheight is too small (12.0pt): 
 Make it at least 14.49998pt.
 We now make it that large for the rest of the document.
 This may cause the page layout to be inconsistent, however.

这表明定义的标题太大;然后你可以在前言中添加类似

 \renewcommand\headheight{14.5pt}

要删除文档正文的章节编号,您可以使用包\titleformat中的以下代码titlesec

\documentclass[fleqn,12pt,a4paper]{article}
\usepackage{titlesec}
\usepackage{fancyhdr}

\titleformat{\section}
  {\normalfont\Large\bfseries}{}{0em}{}

\pagestyle{fancy}
\fancyhead[R]{\leftmark}
\renewcommand\sectionmark[1]{\markboth{\MakeUppercase{#1}}{}}
\renewcommand\headheight{14.5pt}

\begin{document}
\section{section-1}
\newpage
\section{section-2}
\end{document}

需要注意的是,上述代码仅抑制了实际标题中的章节编号,但编号仍会出现在目录中以及下级章节单元中;如果必须从目录中以及下级章节单元中删除章节编号,则需要在序言中添加以下几行:

\renewcommand\thesection{}
\renewcommand\thesubsection{\arabic{subsection}}

答案2

我建议切换到更新、更强大的类,如 scrartcl,它已经有合适的命令:

\documentclass[fleqn,12pt,a4paper]{scrartcl} 
\usepackage{fancyhdr} 
\pagestyle{fancy} 
\begin{document} 
\addsec{section-1}  
\newpage 
\addsec{section-2} 
\end{document}

相关内容