我正在尝试使用该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}{}
直接使用。