
Para explicar meu problema, deixe-me começar com meu 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}
Notar que:
- Quero tratar os capítulos como seções (sem quebra de página, título simples)
- No cabeçalho quero o nome do capítulo
Consegui obter esses recursos
MAS
Eu gostaria de receber também
- No cabeçalho dochancepáginas que eu querodurarcapítulo aparecendo na página (isso parece funcionar usando
\lastrightmark
) - No cabeçalho doatépáginas que eu não queroprimeirocapítulo começando na página, mas, oatualcapítulo, ou seja, o capítulo que estou lendo enquanto viro a página.
No meu exemplo
- Na página 2 eu gostaria de ter "um", já que o capítulo dois começa após a quebra de página entre a página 1 e a página 2;
- Na página 4 eu gostaria de ter "quatro", já que o capítulo cinco começa após a quebra de página entre a página 3 e a página 4.
Como posso conseguir isso?
Responder1
Você pode obter esses cabeçalhos definindo \extramarks
e usando-os da seguinte maneira:
\newcommand{\mychap}[1]{%
\chapter*{#1}%
\markboth{#1}{#1}%
\extramarks{#1}{#1}}
\fancyhead[RE]{\textit{\MakeLowercase{\firstxmark}}}
\fancyhead[LO]{\textit{\MakeLowercase{\lastxmark}}}
Portanto, em um documento como o seu exemplo, você obtém one' in the heading page 2 and
quatro no cabeçalho da página 4, conforme solicitado.
\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}
Observe que ambos\markboth
e \extramarks
são necessários para obter os valores corretos (que podem depender de "bug" em extramarks
). Também usei \MakeLowercase
para forçar o texto do título para a forma desejada, pois agora não estamos mais usando as marcas padrão.