Cabeçalhos


Já escrevi alguns posts sobre o package fancyhdr, para trabalhar os cabeçalhos e rodapés, mas nunca referi uma opção que ele faculta e que pode ser bastante útil.
A questão é: como alterar os cabeçalhos e rodapés numa página específica?

Quando queremos retirar completamente o cabeçalho e o rodapé numa página usamos:

\thispagestyle{plain}

o que o fancyhdr permite é definir um estilo que usamos depois com o \thispagestyle.

Então imaginemos que todas as páginas vão ter no cabeçalho: o título à esquerda e o autor à direita e no rodapé: a página à direita, definimos no preâmbulo todas essas instruções:

\usepackage{fancyhdr}
\fancyhead{}
\fancyfoot{}
\lhead{\thetitle}
\rhead{\theauthor}
\rfoot{\thepage}

depois não se esqueçam de pedir o uso desta formatação com o comando

\pagestyle{fancy}

Mas digamos que na última página queremos trocar a posição do autor e do título mas manter a posição do número de página. Então definimos um novo estilo assim:

\fancypagestyle{título do estilo}{intruções do estilo}

Exemplo:

\fancypagestyle{ultima}{
\fancyhead{}
\fancyfoot{}
\lhead{\theauthor}
\rhead{\thetitle}
\rfoot{\thepage}
}

Na página que queremos que tenha um estilo diferente, acrescentamos

\thispagestyle{ultima}

claro que nos editores de \LaTeX não aparecem páginas mas basta fazer a correspondência entre o texto no editor e o texto nas páginas do documento gerado para saber que página é. No caso do exemplo era a última.

Esta dúvida foi-me colocada pelo Nálison Martins.

Grande parte das coisas que surgem nos cabeçalhos e rodapés são textos que nós queremos automáticos, como seja a página, o título do texto ou o título do capítulo/secção/subsecção…

Informações como a data e o autor normalmente são fixas ao longo do texto e por isso basta colocá-los no local que queremos fazendo uso do fancyhdr.

Outras informações como o número de página ou o número de capítulo também são relativamente simples de colocar:

O número de página coloca-se recorrendo ao comando \thepage. Por exemplo, se quisermos que no cabeçalho ao lado direito apareça o número de página escrevemos:

\rhead{\thepage}

Se for o número do capítulo, usamos também o \the, mas desta vez será \thechapter.

\rhead{Capítulo \thechapter}

Claro que não usamos só o número com pena de se confundir com o número de página.

As coisas ficam um pouco menos intuitivas quando queremos introduzir o nome do capítulo ou da secção e ainda mais se entrarmos nas subsecções.

Sem nos darmos por isso, o \LaTeX altera uns comandos que se chamam \leftmark e \rightmark que são o nome do capítulo e o nome da secção respectivamente. Seguindo o mesmo exemplo, se quisermos o nome do capítulo na parte direira no cabeçalho, colocamos

\rhead{\leftmark}

O nome da secção

\rhead{\rightmark}

No entanto, a formatação destes comandos está pré-definida para maiúsculas e escreve para além do nome também o número, por exemplo: CAPÍTULO 1. NOME DO CAPÍTULO

Se quisermos uma configuração mais personalizada então o melhor mesmo é por mãos à obra.

Em primeiro lugar definimos o comando que vai armazenar o nome do Capítulo

\newcommand\nomecapitulo{}

E de seguida procedemos ao armazenamento:

\renewcommand\chaptermark[1]{\renewcommand\nomecapitulo{#1}}

Basta depois escrever o comando \nomecapitulo no local onde queremos o nome do capítulo. Como no exemplo:

\rhead{\nomecapitulo}

Podem ainda proceder a alterações na formatação da letra usada adicionando as opções à parte que tem #1. Se quiserem o nome do capítulo em itálico, escrevem:

\renewcommand\chaptermark[1]{\renewcommand\nomecapitulo{\it #1}}

Se o desejado fosse o nome da secção então estas duas linhas ficariam:

\newcommand\nomeseccao{}
\renewcommand\sectionmark[1]{\renewcommand\nomeseccao{#1}}

Outra coisa que por vezes se usa é colocar o número de páginas acompanhado do número total de páginas, assim: página 1 de 100, por exemplo.

Para colocarmos tal informação temos acrescentar o package lastpage:

\usepackage{lastpage}

Passamos a ter a possibilidade de recorrer ao comando:

\pageref{LastPage}

NOTA: Notem na letra maiúscula L e P em LastPage!!

Colocamos então onde queremos a informação

Página \thepage de \pageref{LastPage}

É muito simples!

Para ver informação sobre cabeçalhos e rodapés ver 1 e 2.

Este post é uma continuação deste.

Há uma outra forma de usar o fancyhdr para construir cabeçalhos e rodapés.

Para começar, a adicionar ao que já foi dito no post anterior sobre a mesma matéria, mais um pouco de inglês 🙂 : em inglês odd é ímpar e even é par.

O que se faz, é escolher o sítio onde vai ficar a informação usando apenas os dois comandos já mencionados:

\fancyhead

\fancyfoot

que desta feita vão funcionar acompanhados pelas referências ao local.

Os locais são identificados com letras maiúsculas e são os mesmos que antes: L para esquerda, C para centro e R para direita, que podem ser combinados com o E de even e o O de odd. Estes locais são declarados entre [] logo a seguir ao comando \fancyhead ou \fancyfoot.

Exemplo:

Para introduzir informação no cabeçalho à esquerda, colocamos:

\fancyhead[L]{O que queremos no cabeçalho}

Depois podemos combinar estas letras com o E de página par e O de página ímpar.

Exemplo

Se desejarmos que o número de página apareça à direita do rodapé nas páginas ímpares e à esquerda do rodapé nas páginas pares escrevemos:

\fancyfoot[OR,EL]{\thepage}

NOTA: Se for necessário apagar toda a informação antes de começar a definir tudo, deve-se colocar o comando: \fancyhf{}

Podem encontrar aqui a documentação relativa ao package fancyhdr.

No próximo post vou referir-me a comandos úteis para usar nos cabeçalhos e rodapés.

O package fancyhdr é de extrema utilidade quando queremos personalizar o cabeçalho e rodapé de um texto.

Toda a informação é inserida no preâmbulo do documento e, claro está, começamos por carregar o package:

\usepackage{fancyhdr}

Depois, temos que dizer que queremos que o estilo da página siga a fórmula dada pelo fancyhdr. Escrevemos então que:

\pagestyle{fancy}

A partir de agora temos que ter em mente duas coisas

  1. que os cabeçalhos e os rodapés estão divididos em 3 partes, esquerda, centro e direita;
  2. que os cabeçalhos podem ser diferentes dependendo da paridade da página (se é par ou ímpar).
Outra coisa que ajuda sempre é saber que em inglês left é esquerda, center é centro e right é direita, para além de que header é cabeçalho e footer é rodapé.

Vamos então definir o que fica em cada parte. Neste exemplo estou a considerar um documento com um só lado, ou seja, é tudo igual independentemente da página ser par ou ímpar. Escrevo então:

\lhead{O que quero no cabeçalho parte esquerda}
\chead{O que quero no cabeçalho parte central}
\rhead{O que quero no cabeçalho parte direita}
\lfoot{O que quero no rodapé parte esquerda}
\cfoot{O que quero no rodapé parte central}
\rfoot{O que quero no rodapé parte direita}

Se não quiser nada em alguma das partes, deixo o conteúdo vazio, por exemplo, se quiser que não apareça nada na parte esquerda do rodapé, escrevo:

\lfoot{}

Ou então…

Para ter a certeza que todas as parte que quero vazias, aparecem efectivamente vazias sem ter que as definir, escrevo o seguinte:

\fancyhead{}
\fancyfoot{}

Estes dois comandos preenchem todas as partes que não definimos com o que quer que esteja entre as chavetas.

Exemplo:

\fancyhead{Viva}
\fancyfoot{}
\chead{Mais}
\lfoot{Muito}
\rfoot{Mais}

O cabeçalho definido no exemplo teria à esquerda e à direita a palavra Viva (definida no \fancyhead) e ao centro a palavra Mais; o cabeçalho teria à esquerda a palavra Muito, ao centro fica vazio (devido ao \fancyfoot estar vazio) e à direita a palavra Mais.

Para trabalhar com cabeçalhos pares e ímpares, usamos exactamente os mesmos comandos só que ao introduzir a parte par usamos [] e para a parte ímpar usamos {}.

Exemplo:

Para definir a parte esquerda de um rodapé que em página par é Viva e em página ímpar é Mais, escrevo:

\lfoot[Viva]{Mais}

To be continued… 🙂 (Heroes a mais!)