我该如何修复 fancyhdr 包的这种“花式”风格的不良行为?

我该如何修复 fancyhdr 包的这种“花式”风格的不良行为?

大家好。

我正在写一本书,我遇到了一个奇怪的问题想要fancyhdr 包的样式。我需要在偶数页上显示书的标题,在奇数页上显示章节的标题(包括标题上的一些图片)。这是我用来设置的代码想要风格:

\pagestyle{fancy}
\renewcommand{\chaptermark}[1]{\markboth{\it \myfont \chaptername\ \thechapter.\ \normalfont \myfont #1}{}}%
\fancyhf{}\fancyhead[LE]{\makebox[0pt][l]{\hspace{-25mm}\raisebox{-4mm}{\includegraphcs[scale=1,bb=0 0 1 1]{image}}}%
\large \myfont \thepage \hspace{0.5cm} \it  \normalsize \myfont Book title}%
\fancyhead[RO]{\myfont \leftmark \hskip2em \normalfont \large \myfont \thepage}%
\fancyhead[LO]{\makebox[0pt][l]{\hspace{-190mm}\raisebox{-4mm}{\includegraphics[scale=1,bb=0 0 1 1]{image}}}}
\renewcommand*\headrulewidth{0pt}
\renewcommand*\footrulewidth{0pt}

该标题必须从第 1 章开始显示(主要内容部分),但我需要我的标题前言部分。因此,我称我的标题在 \frontmatter 命令之后添加样式,然后我调用想要\mainmatter 命令后的样式。

\begin{document}
\frontmatter
\pagestyle{myheadings}
\thispagestyle{empty}
\tableofcontents
\cleardoublepage
\include{Introduction}
\mainmatter
\pagestyle{fancy}
\include{chapter1}
.
.
.
\end{document}

问题是,如果我不打电话给我的标题风格(或者我称之为清楚的风格),想要风格完美。但是当我调用我的标题风格,想要样式显示书名(偶数页)而不显示章节标题(奇数页)!

我该如何解决这个奇怪的行为?我的意思是,我该如何让想要即使我调用我的标题前台的风格?

感谢您的帮助。

编辑:这是一个可编译的代码。

\listfiles
\documentclass[reqno]{book}
\usepackage{makeidx}
\usepackage[spanish,es-nosectiondot]{babel}
\usepackage[utf8]{inputenc}
\usepackage{infwarerr}
\usepackage{color}
\usepackage{xcolor}
\usepackage{verbatim} %Para comentar bloques de texto
\usepackage[paperheight=254.81mm,paperwidth=184.81mm,text={130mm,186mm},centering]{geometry}
\usepackage{epsfig,graphicx,psfrag,float}
\usepackage[format=hang,labelsep=quad,textformat=period]{caption}%Configura el caption de las figuras
\usepackage{geometry}
\usepackage{ltxcmds}
\usepackage[all]{xy}
\usepackage{tocloft}% Este paquete modifica los parámetros de la Tabla de Contenidos (ToC)
\usepackage{fancyhdr}
\usepackage{titlesec}
\usepackage{sectsty}
\usepackage{enumerate}
\usepackage{hyperref}
\usepackage{lipsum}
\usepackage{tcolorbox}
\usepackage{lettrine}
\usepackage{caption}
\usepackage{pdfpages}
\definecolor{Gris}{RGB}{233,233,233}
\definecolor{myGris}{RGB}{101,98,99}
\makeindex

\pagestyle{fancy}
\renewcommand{\chaptermark}[1]{\markboth{\it \chaptername\ \thechapter.\ \normalfont #1}{}}%Redefine la manera en que se muestra el capítulo en el encabezado
\fancyhf{}
\fancyhead[LE]{\makebox[0pt][l]{%Encabezado páginas pares, a la izquierda
\hspace{-25mm}\raisebox{-4mm}{}%\includegraphics[scale=1,bb=0 0 1 1]{franja_encabezados_pares.png}}%
} \large \thepage \hspace{0.5cm} \it  \normalsize Title of the Book}
\fancyhead[RO]{\leftmark \hskip2em \normalfont \large \thepage}%Encabezado páginas impares, a la derecha
\fancyhead[LO]{\makebox[0pt][l]{
\hspace{-190mm}\raisebox{-4mm}{}%\includegraphics[scale=1,bb=0 0 1 1]{franja_encabezados_impares.png}}%
  }}
\renewcommand*\headrulewidth{0pt}
\renewcommand*\footrulewidth{0pt}

\begin{document}
\frontmatter
\pagestyle{myheadings}
\begin{center}
TITLE OF THE BOOK
\end{center}
\newpage
\begin{center}
Authors
\end{center}
\newpage
\tableofcontents
\cleardoublepage
\chapter{Introduction}\thispagestyle{empty}
\lipsum[1-10]
\mainmatter
\pagestyle{fancy}
\pagenumbering{arabic}%A partir de aqui se enumeran las paginas con numeros arabigos
\chapter{Chapter 1}
\lipsum[11-16]
\section{Section 1}
\lipsum[17-25]
\chapter{Chapter 2}
\lipsum[26-35]
\section{Section 2}
\lipsum[36-50]
\end{document}

答案1

就我个人而言,我不会混合myheadings使用fancyhdr。我会使用包的接口定义一种新样式。但是,它似乎工作正常。结果对我来说看起来很奇怪:章节名称等大写,书名斜体,页码大写。我想每个人都有自己的风格。

介绍部分应该没有编号,所以您需要在这里明确设置标记。

\documentclass[reqno]{book}
\usepackage{makeidx}
\usepackage[spanish,es-nosectiondot]{babel}
\usepackage[utf8]{inputenc}
\usepackage{xcolor}
\usepackage[paperheight=254.81mm,paperwidth=184.81mm,text={130mm,186mm},centering]{geometry}
\usepackage{fancyhdr}
\usepackage{lipsum}
\usepackage{hyperref}
\definecolor{Gris}{RGB}{233,233,233}
\definecolor{myGris}{RGB}{101,98,99}
\makeindex

% \pagestyle{fancy}
\renewcommand{\chaptermark}[1]{\markboth{\itshape \chaptername\ \thechapter.\ \normalfont #1}{}}
\fancyhf{}
\fancyhead[LE]{\large\thepage\hspace{0.5cm} \itshape\normalsize Title of the Book}
\fancyhead[RO]{\leftmark\hskip 2em \normalfont\large\thepage}
\renewcommand*\headrulewidth{0pt}
\renewcommand*\footrulewidth{0pt}

\begin{document}
\frontmatter
\pagestyle{myheadings}% not recommended, but seems to work OK
\begin{titlepage}
  \begin{center}
    TITLE OF THE BOOK
  \end{center}
\end{titlepage}
\begin{center}
  Authors
\end{center}
\tableofcontents
\chapter*{Introduction}\markboth{\itshape Introduction}{}\thispagestyle{empty}
\lipsum[1-10]
\mainmatter
\pagestyle{fancy}
\chapter{Chapter 1}
\lipsum[11-16]
\section{Section 1}
\lipsum[17-25]
\chapter{Chapter 2}
\lipsum[26-35]
\section{Section 2}
\lipsum[36-50]
\end{document}

您不需要所有这些\newpage以及\cleardoublepage设置页码等等。无论如何,您想要的是标准的东西,所以只需让 LaTeX 完成它的工作即可。

答案2

\fancyhead您可以根据需要随时在文档正文中重新发出命令。

例如,将此代码紧跟在后面\section{Section 1}

\fancyhead[LE]{\makebox[0pt][l]{
\hspace{-25mm}\raisebox{-4mm}{}
} \large \thepage \hspace{0.5cm}  \normalsize NOT THE TITLE}

您也可以留空\fancyhead。这也适用于自定义标题。

相关内容