使用“fancyhdr”包时遇到问题

使用“fancyhdr”包时遇到问题

我正在尝试使用该fancyhdr包,按照标题,在每个页面的右上角和左上角插入标题。

问题是我的标题太长,一行无法容纳,所以想以某种方式缩短它们。

举个例子,我写了以下部分:

\section{Lezione 1: Introduzione al corso e agli Algoritmi}
\newpage
\subsection{Cosa analizzeremo nel corso}:

我得到的结果如下:

在此处输入图片描述

这是我目前所写的内容:

\documentclass[12pt,a4paper]{article}

\usepackage[english,italian]{babel}
\usepackage[utf8]{inputenc}
\usepackage{hyperref} 

\usepackage{fancyhdr} %header e footer

%header/footer setup
\fancyhf{}
\fancyhead[R]{\small\scshape\nouppercase{\leftmark}}
\fancyhead[L]{\small\scshape\nouppercase{\rightmark}}
%\fancyhead[L,R]{\small\thepage}
\lhead{\nouppercase{\rightmark}}
\rhead{\nouppercase{\leftmark}}
\cfoot{\thepage}
%\lfoot{\authorName}

\pagestyle{fancy}

\begin{document}

% Da qui comincia la numerazione normale
\pagenumbering{roman}
\setcounter{page}{1}

\newpage
\tableofcontents
\newpage

%\frenchspacing

% Da qui comincia la numerazione normale
\pagenumbering{arabic}
\setcounter{page}{1}

\cfoot{\thepage~di~\pageref{TotPages}}

\include{lezione1} 

\end{document}

有什么方法可以做同样的事情,但只写“Lezione 1”而不是“Lezione 1:Introduzione al corso e agli Algoritmi”?

解释:我希望该部分(以某种方式)采用较长的名称,但只fancyhdr说“Lezione 1”,以便我得到如下结果。

Table of content

在此处输入图片描述

fancyhdr

在此处输入图片描述

答案1

您当然不想要目录的标题。

\documentclass[a4paper]{article}
\usepackage{fancyhdr}
\usepackage{titlesec}
\usepackage{lipsum} % for mock text

\fancypagestyle{normal}{%
  \renewcommand{\headrulewidth}{0.4pt}%
  \fancyhf{}%
  \fancyhead[L]{\nouppercase{\rightmark}}%
  \fancyhead[R]{\nouppercase{\leftmark}}%
  \fancyfoot[C]{\thepage}%
}
\fancypagestyle{contents}{%
  \renewcommand{\headrulewidth}{0pt}%
  \fancyhf{}%
  \fancyfoot[C]{\thepage}%
}

\renewcommand{\subsectionmark}[1]{\markright{\thesubsection. #1}}
% numbered sections
\titleformat{\section}
 {\Large\bfseries}
 {}
 {0pt}
 {Lezione \thesection: }
% unnumbered sections
\titleformat{name=\section,numberless}
 {\Large\bfseries}
 {}
 {0pt}
 {}

\newcommand{\lezione}[1]{%
  \section{#1}%
  \markboth{Lezione \thesection}{}%
  \thispagestyle{plain}%
}

\begin{document}

\pagestyle{contents}
\tableofcontents

\clearpage
\pagestyle{normal}

\lezione{Introduzione al corso e agli algoritmi}

\lipsum

\subsection{Cosa analizzeremo nel corso}

\lipsum

\end{document}

重复“1 Lezione 1”似乎很冗余。

在此处输入图片描述

在此处输入图片描述

答案2

您可以更新\sectionmark原本会自动设置的,以包含与 ToC 相关的条目。下面是一个article突出显示差异的简单示例:

在此处输入图片描述

\documentclass{article}

\usepackage{fancyhdr}

\pagestyle{fancy}

\begin{document}

\tableofcontents

\section[ToC entry]{Title entry}
\sectionmark{Header entry}% Calls \markboth{<stuff>}{}

\end{document}

如果不想包含部门单位编号(\thesection在上面的例子中,位于 之前Header entry)甚至不想更改格式,请\markboth{HeaDeR eNTRy}{}直接使用。

相关内容