
Para explicar mi problema déjame comenzar con mi MWE:
\documentclass[a4paper,10pt]{book}
\usepackage{lipsum}
\usepackage[utf8]{inputenc}
\usepackage{fancyhdr}
\usepackage{extramarks}
\makeatletter
\renewcommand\chapter{\@startsection%
{chapter}{0}{0mm}%
{2.5\baselineskip}{1.5\baselineskip}%
{\centering\normalfont\large\scshape
}%
}
\makeatother
\newcommand{\mychap}[1]{
\chapter*{#1}
\markboth{#1}{#1}}
\renewcommand{\sectionmark}{}
\renewcommand{\chaptermark}{\markboth{\thechapter}}
\pagestyle{fancy}
\fancyhf{}
\fancyhead{}
\fancyhead[LE]{{\thepage}}
\fancyhead[RE]{ {\itshape \nouppercase \firstleftmark}}%higher level \scshape \MakeUppercase
\fancyhead[LO]{ {\itshape \nouppercase \lastrightmark}}
\fancyhead[RO]{ {\thepage}} %odd page
\begin{document}
\mychap{one}
\lipsum
\mychap{two}
aaa
\mychap{five halves}
\mychap{three}
\lipsum
\mychap{fourth}
\lipsum[5]
\mychap{five}
d
\end{document}
Darse cuenta de:
- Quiero tratar los capítulos como secciones (sin saltos de página, título simple)
- En el encabezado quiero el nombre del capítulo.
Pude obtener estas características
PERO
me gustaria conseguir tambien
- En la cabecera delextrañopaginas quiero elúltimocapítulo que aparece en la página (esto parece funcionar usando
\lastrightmark
) - En la cabecera delinclusopáginas que no quieroprimerocapítulo que comienza en la página pero, elactualcapítulo, es decir, el capítulo que estoy leyendo mientras paso la página.
en mi ejemplo
- En la página 2 me gustaría tener "uno" ya que el capítulo dos comienza después del salto de página entre la página 1 y la página 2;
- En la página 4 me gustaría tener "cuatro", ya que el capítulo cinco comienza después del salto de página entre la página 3 y la página 4.
¿Cómo puedo conseguir esto?
Respuesta1
Puede lograr estos encabezados configurándolos \extramarks
y usándolos de la siguiente manera:
\newcommand{\mychap}[1]{%
\chapter*{#1}%
\markboth{#1}{#1}%
\extramarks{#1}{#1}}
\fancyhead[RE]{\textit{\MakeLowercase{\firstxmark}}}
\fancyhead[LO]{\textit{\MakeLowercase{\lastxmark}}}
Entonces, en un documento como su muestra, obtiene one' in the heading page 2 and
cuatro `en el encabezado de la página 4, como lo solicitó.
\documentclass[a4paper,10pt]{book}
\usepackage{lipsum}
\usepackage[utf8]{inputenc}
\usepackage{fancyhdr}
\usepackage{extramarks}
\makeatletter
\renewcommand\chapter{\@startsection%
{chapter}{0}{0mm}%
{2.5\baselineskip}{1.5\baselineskip}%
{\centering\normalfont\large\scshape
}%
}
\makeatother
\newcommand{\mychap}[1]{%
\chapter*{#1}%
\markboth{#1}{#1}%
\extramarks{#1}{#1}}
\pagestyle{fancy}
\fancyhf{}
\fancyhead{}
\fancyhead[LE]{\thepage}
\fancyhead[RE]{\textit{\MakeLowercase{\firstxmark}}}
\fancyhead[LO]{\textit{\MakeLowercase{\lastxmark}}}
\fancyhead[RO]{\thepage}
\begin{document}
\mychap{One}
\lipsum
\mychap{Two}
Two words.
\mychap{Two and a half}
\mychap{Three}
\lipsum
\mychap{Four}
\lipsum[5]
\mychap{Five}
A sentence of five words.
\end{document}
Tenga en cuenta que ambos\markboth
y \extramarks
son necesarios para obtener los valores correctos (que pueden depender del "error" en extramarks
). También suelo \MakeLowercase
forzar el texto del encabezado a la forma deseada, ya que ahora ya no usamos las marcas estándar.