Encabezados y pies de página en LaTeX

En esta entrada mostraré cómo editar los encabezados y pies de página de nuestro documento de LaTeX. Antes una cosa importante, los comandos que aquí uso, funcionan bien con el formato {book}, pero pueden fallar cuando se usan otros formatos…

Los encabezados y pies de página, hay que editarlos para tres tipos de páginas:

  • Páginas inicial de un capítulo.
  • Páginas pares.
  • Páginas impares.
Para ello, se puede utilizar el paquete {fancyhdr} y el siguiente código:
documentclass[a4paper,openright,12pt]{book}
usepackage[spanish]{babel}
usepackage[utf8]{inputenc}
usepackage{fancyhdr}

% aqui definimos el encabezado de las paginas pares e impares.
lhead[x1]{x2}
chead[y1]{y2}
rhead[z1]{z2}
renewcommand{headrulewidth}{0.5pt}

% aqui definimos el pie de pagina de las paginas pares e impares.
lfoot[a1]{b2}
cfoot[c1]{d2}
rfoot[e1]{f2}
renewcommand{footrulewidth}{0.5pt}

% aqui definimos el encabezado y pie de pagina de la pagina inicial de un capitulo.
fancypagestyle{plain}{
fancyhead[L]{K1}
fancyhead[C]{K2}
fancyhead[R]{K3}
fancyfoot[L]{L1}
fancyfoot[C]{L2}
fancyfoot[R]{L3}
renewcommand{headrulewidth}{0.5pt}
renewcommand{footrulewidth}{0.5pt}
}

pagestyle{fancy}

Explico un poco qué significan estas líneas.

lhead[x1]{x2} define el texto a la izquierda (l = left, c = center, r = right) de los encabezados. Primero, entre corchetes, se pone el texto de las páginas pares. Y después, entre llaves, se indica el texto de las páginas pares.
renewcommand{headrulewidth}{0.5pt} define el grosor de la línea. Si no queremos línea, ponemos {0pt}.

fancyhead[L]{K1} define el texto de los encabezados de la primera página de un capítulo. Entre corchetes, se pone la posición que queremos editar (L = left), y entre llaves, el texto que queremos poner.


Ahora, ya podemos hacer un ejemplo bien bonito. Por ejemplo, queremos lo siguiente:

  • Página inicial de un capítulo. Número de página arriba a la derecha.
  • Encabezado de las páginas pares. Con línea, número de página a la izquierda y CAPÍTULO 1. TÍTULO DEL CAPÍTULO, a la derecha.
  • Encabezado de las páginas impares. Con línea, número de página a la derecha y 1.1 Título de la sección a la izquierda.
  • Pie de página de las páginas pares. Nombre del autor a la derecha.
  • Pie de página de las páginas impares. Fecha a la izquierda.
Para hacer esto, son útiles los siguientes comandos:
  • «markboth{}{}» indica el encabezado a la derecha y a la izquierda. Lo indicamos después de cada sección.
  • «rightmark» y «leftmark» seleccionan el encabezado a la derecha o a la izquierda, que había sido fijado con «markboth{}{}».
  • «thechapter» y «thesection» dan el número del capítulo y la sección correspondiente.
  • «today» genera la fecha actual.

A continuación el código de ejemplo. En este caso, al inicio de cada capítulo, utilizo «markboth» para definir el nombre del capítulo, que aparecerá en los encabezados. Y al inicio de cada sección, redefino los encabezados con «lhead», para editar el nombre de cada sección. 
documentclass[a4paper,openright,12pt]{book}
usepackage[spanish]{babel}
usepackage[utf8]{inputenc}
usepackage{fancyhdr}

% encabezados
lhead[thepage]{CAPÍTULO thechapter. rightmark}
chead[]{}
rhead[CAPÍTULO thechapter. leftmark]{thepage}
renewcommand{headrulewidth}{0.5pt}

% pie de pagina
lfoot[]{today}
cfoot[]{}
rfoot[Arenita Mejillas]{}
renewcommand{footrulewidth}{0pt}

% primera pagina de un capitulo
fancypagestyle{plain}{
fancyhead[L]{}
fancyhead[C]{}
fancyhead[R]{thepage}
fancyfoot[L]{}
fancyfoot[C]{}
fancyfoot[R]{}
renewcommand{headrulewidth}{0pt}
renewcommand{footrulewidth}{0pt}
}

pagestyle{fancy}

begin{document}

lhead[thepage]{CAPÍTULO thechapter. rightmark}
rhead[CAPÍTULO thechapter. leftmark]{thepage}

chapter{Introducción}label{cap.intro}
markboth{INTRODUCCIÓN}{INTRODUCCIÓN}

Bla bla bla…
section{Estado del Arte}

lhead[thepage]{thesection. Estado del Arte}

Bla bla bla…

section{Objetivos de la Tesis}
lhead[thepage]{thesection. Objetivos de la Tesis}
Bla bla bla…

chapter{Nudo}label{cap.nudo}
markboth{NUDO}{NUDO}

Bla bla bla…
section{Situación Mundial}
lhead[thepage]{thesection. Situación Mundial}

Bla bla bla…

end{document}


Hay veces que queremos que nuestro documento tenga varios formatos distintos de encabezados. Por ejemplo, un primer capítulo resumen sin ningún encabezado. Y el resto de capítulos con el nombre del capítulo y número de página. En este caso, bastaría con copiar dos veces las funciones aquí descritas. Estas aplican desde el capítulo donde están, hacia delante.
Las funciones aquí descritas funcionan desde donde están, hacia delante. Si quNo hay ningún problema. Lo único que tenemos que hacer es editarlos utiliza.

Por ejemplo, si quiero tener un primer capítulo

documentclass[a4paper,openright,12pt]{book}
usepackage[spanish]{babel}
usepackage[utf8]{inputenc}
usepackage{fancyhdr}

% editamos los encabezados del primer capítulo
lhead[]{}
chead[]{}
rhead[]{}
renewcommand{headrulewidth}{0pt}

lfoot[]{}
cfoot[]{}
rfoot[]{}
renewcommand{footrulewidth}{0pt}

fancypagestyle{plain}{
fancyhead[L]{}
fancyhead[C]{}
fancyhead[R]{}
fancyfoot[L]{}
fancyfoot[C]{}
fancyfoot[R]{}
renewcommand{headrulewidth}{0pt}
renewcommand{footrulewidth}{0pt}
}

pagestyle{fancy}

begin{document}

chapter*{Resumen}

Bla bla bla…

chapter{Introducción}label{cap.intro}
markboth{INTRODUCCIÓN}{INTRODUCCIÓN}

% editamos los encabezados para el resto de capítulos
lhead[thepage]{CAPÍTULO thechapter. rightmark}
chead[]{}
rhead[CAPÍTULO thechapter. leftmark]{thepage}
renewcommand{headrulewidth}{0.5pt}

lfoot[]{today}
cfoot[]{}
rfoot[Arenita Mejillas]{}
renewcommand{footrulewidth}{0.5pt}

fancypagestyle{plain}{
fancyhead[L]{thechapter. leftmark}
fancyhead[C]{}
fancyhead[R]{thepage}
fancyfoot[L]{}
fancyfoot[C]{}
fancyfoot[R]{}
renewcommand{headrulewidth}{0.5pt}
renewcommand{footrulewidth}{0.5pt}
}

Bla bla bla….

end{document} 


Un par de cosas más:

1) Si usas el paquete fancyhdr, es muy posible que te salga el siguiente error: «Package Fancyhdr Warning: headheight is too small (12.0pt)». Para solucionarlo, puedes añadir la siguiente instrucción antes de begin{document}:

setlength{headheight}{15pt}

2) Si quieres que en las páginas en blanco no haya ni encabezados ni pies de página, puedes usar el paquete «emptypage».

usepackage{emptypage}

Deja un comentario