我想创建一个 newcounter ( lectcount
),它将位于文章类中“section”的上一级,并在标题中使用其名称(我正在使用fancyhdr
)。我不知道如何设置 section 上方的层次结构级别,也不知道如何引用其名称以便将其写入页面标题中。
我得出了以下代码。\lecture
定义的结尾应该捕获讲座的名称参数,但不起作用。如能得到任何帮助,我将不胜感激。
\newcounter{lectcount}
\newcommand{\lecture}[1]{\refstepcounter{lectcount}%
\noindent\textbf{\LARGE Lecture \thelectcount: #1}\par\bigskip%
\let\lectname\#1}
\fancyhead[L]{Lecture \thelectcount: \lectname}
\begin{document}
\lecture{My First Lecture}
...
\end{document}
答案1
最简单的方法是使用报告或者书类和他们的\chapter
命令。
然而,文章类提供\part
,您可以在上面使用\section
。
\documentclass[a4paper]{article}
\usepackage{fancyhdr}
\pagestyle{fancy}
\def\lecturemark{}
\fancyhf{}
\fancyhead[L]{\lecturemark}
\fancyfoot[C]{\thepage}
\newcommand{\lecture}[1]{\part{#1}\def\lecturemark{\partname\ \thepart: #1}}
\renewcommand{\partname}{Lecture}
% Let's customize \part
\usepackage{etoolbox}% for \patchcmd
\renewcommand{\thepart}{\arabic{part}}
\makeatletter
\patchcmd{\@part}{\par\nobreak}{: }{}{}
\patchcmd{\@part}{\huge}{\Large}{}{}
\makeatother
\usepackage{lipsum}
\begin{document}
\lecture{How to write lectures}
\section{First step: how to copy}
\lipsum
\end{document}
如果要对讲座标题的外观进行更广泛的改变,请在文档中复制的定义\@part
并article.cls
直接进行修改。