MAS

MAS

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:

  1. Quero tratar os capítulos como seções (sem quebra de página, título simples)
  2. No cabeçalho quero o nome do capítulo

Consegui obter esses recursos

MAS

Eu gostaria de receber também

  1. No cabeçalho dochancepáginas que eu querodurarcapítulo aparecendo na página (isso parece funcionar usando \lastrightmark)
  2. 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

  1. 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;
  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 \extramarkse 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 andquatro no cabeçalho da página 4, conforme solicitado.

Página 1

Página 2

Página 3

Página 4

\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 \extramarkssão necessários para obter os valores corretos (que podem depender de "bug" em extramarks). Também usei \MakeLowercasepara forçar o texto do título para a forma desejada, pois agora não estamos mais usando as marcas padrão.

informação relacionada