正如标题所示,当章节以长文本开头,并且第一段(第 1.1 段)之前,fancyhdr 会将标题留空。我想设置 latex 在这些情况下显示章节标题。我该怎么办?我是 latex 的新用户,所以我现在的代码很乱,但我认为重要的部分是
%% Package Import
\newenvironment{abstract}{}{}
\usepackage{abstract}
% Typesetting
\usepackage{titlesec}
\usepackage{indentfirst}
\usepackage[a4paper,width=150mm,top=25mm,bottom=25mm,bindingoffset=6mm]{geometry}
\usepackage{tocbibind}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhead{}
\fancyhead[LE,RO]{\slshape \rightmark}
用于初始化文件,然后将其包含在 main.tex 文件中
\documentclass[a4paper,12pt,openright,twoside]{book}
\input{tex_parameters/init}
\leftmark
将章节标题放在每一页上,但\chaptername
不起作用,可能是因为我习惯\include{chapterXX}
在 main.tex 文件中导入它们
答案1
我希望我正确理解了您的问题。如果是这样,那么这里有一个可能的解决方案。在标题中,我检查是否\rightmark
为空。在这种情况下,我使用\leftmark
,这应该是章节标题。
\documentclass[a4paper,12pt,openright,twoside]{book}
\usepackage[a4paper,width=150mm,top=25mm,bottom=25mm,bindingoffset=6mm]{geometry}
\usepackage{lipsum}
\usepackage{ifthen}
\newcommand{\ifempty}[2]{% If #1 is empty, use #2 instead, otherwise use #1
\ifthenelse{\equal{#1}{}} {#2} {#1}%
}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhead{}
\fancyhead[LE,RO]{\slshape \ifempty {\rightmark} {\leftmark}}
\begin{document}
\chapter{Introduction}
\lipsum[1-12] % long text before first section
\section{First section}
\lipsum
\end{document}