![如何使 section* 出现在标题中](https://linux22.com/image/400491/%E5%A6%82%E4%BD%95%E4%BD%BF%20section*%20%E5%87%BA%E7%8E%B0%E5%9C%A8%E6%A0%87%E9%A2%98%E4%B8%AD.png)
我正在使用文章类和使用该fancyhdr
包的自定义包。我使用以下内容定义标题:
\fancyhead[CO,CE]{}
\fancyhead[RO,RE]{\scshape\leftmark}
问题是我有多个部分和节*。在每个部分*页面上,标题显示前一节的名称,而不是节*的名称。
我不知道如何改变这一点,如能得到任何帮助我将非常感激。
答案1
这是我以前的回答中的一个方法这里:
\documentclass{article}
\usepackage{lipsum}
\usepackage{fancyhdr}
%\fancyhead[CO,CE]{}
\fancyhead[R]{\scshape\leftmark}
\let\oldsection\section
\makeatletter
\def\section{%
\@ifstar{\@Starred}{\@nonStarred}%
}
\def\@Starred{%
\@ifnextchar[%
{\GenericWarning{}{Warning: A starred section can not have parameters. I am going to ignore them!}\@StarredWith}%
{\@StarredWithout}%
}
\def\@StarredWith[#1]#2{%
\oldsection*{#2}%
\renewcommand\leftmark{#1}%
}
\def\@StarredWithout#1{
\oldsection*{#1}%
\renewcommand\leftmark{#1}
}
\def\@nonStarred{%
\@ifnextchar[%
{\@nonStarredWith}%
{\@nonStarredWithout}%
}
\def\@nonStarredWith[#1]#2{%
\oldsection[#1]{#2}%
\renewcommand\leftmark{#1}%
}
\def\@nonStarredWithout#1{%
\oldsection{#1}%
\renewcommand\leftmark{#1}%
}
\makeatother
\pagestyle{fancy}
\title{Test redefined sections}
\author{Kostis Leledakis}
\begin{document}
\maketitle
\tableofcontents
\clearpage
\section{A section}
\lipsum[1-8]
\section{Another section}
\lipsum[1-6]
\section*{A starred section}
\lipsum[1-8]
\section{Another numbered section}
\lipsum[1-6]
\section*{Another starred section}
\lipsum[1-8]
\section[Short title of section \thesection]{Another numbered section with short title}
\lipsum[1-6]
\section*[Short title of starred section]{Another starred section with short title}
\lipsum[1-8]
\end{document}