
Mi objetivo es realizar este diseño para un libro (posiblemente usando fancyhdr, pero estoy abierto a todo):
donde el diseño actual se representa en gris. En otras palabras, quiero:
- poner la numeración de páginas en el pie de página de cada página (excepto las páginas de título parcial)
- para poner el nombre de la parte actual en páginas pares (no especiales) (con el formato que se muestra en la imagen: PARTE I: XXX) + una línea debajo
- para poner el nombre del capítulo actual en páginas impares (no especiales) (con el formato que se muestra en la imagen: CAPÍTULO I: XXX) + una línea debajo
Lo que llamo "páginas especiales" son las páginas del título de la parte o la primera página de cada capítulo.
- ¿Como hacer eso?
- Desde el punto de vista de un editor profesional, ¿qué alineaciones debo elegir para el encabezado en las páginas pares (título de la parte a la izquierda/centro/derecha?) y para el encabezado en las páginas impares (título del capítulo a la izquierda/centro/derecha?) (¿Existe una alineación preferida/más "natural"?)
A continuación se muestra un ejemplo de un documento básico:
\documentclass[11pt,a4paper]{book}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\usepackage{hyperref}
\usepackage[top=1in, bottom=1in, left=1in, right=1in]{geometry}
\usepackage{fancyhdr}
\usepackage{lipsum}
%Note: this is a very preliminary attempt...,
%Fancier solutions are welcome
%The page numbering does not work correctly
\pagestyle{fancy}
\fancyhf{}
\renewcommand{\headrulewidth}{1pt}
\renewcommand{\footrulewidth}{0pt}
\fancyhead[LE]{\thepart} %How do I get the part name in capital letters
\fancyhead[RO]{\thechapter} %How do I get the chapter name in capital letters
\begin{document}
\mainmatter
\part{Premiere partie}
\chapter{Premier chapitre}
\lipsum
\lipsum
\lipsum
\lipsum
\chapter{Second chapitre}
\lipsum
\lipsum
\lipsum
\lipsum
\part{Deuxieme partie}
\chapter{Troisieme chapitre}
\lipsum
\lipsum
\lipsum
\lipsum
\chapter{Quatrieme chapitre}
\lipsum
\lipsum
\lipsum
\lipsum
\end{document}
Respuesta1
Puedes probar con
\documentclass[11pt,a4paper]{book}
\usepackage[utf8]{inputenc}
%\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\usepackage{hyperref}
\usepackage[head=15pt, top=1in, bottom=1in, left=1in, right=1in]{geometry}
\usepackage{lipsum}
\newcommand*\parttitle{}
\let\origpart\part
\renewcommand*{\part}[2][]{%
\ifx\\#1\\% optional argument not present?
\origpart{#2}%
\renewcommand*\parttitle{#2}%
\else
\origpart[#1]{#2}%
\renewcommand*\parttitle{#1}%
\fi
}
\usepackage{fancyhdr}\pagestyle{fancy}
\fancyhead{}
\fancyhead[RO]{\leftmark}
\fancyhead[LE]{Partie \thepart: \parttitle}
\fancyfoot{}
\fancyfoot[C]{\thepage}
\begin{document}
\part{Premiere partie}
\chapter{Premier chapitre}
\lipsum
\lipsum
\lipsum
\lipsum
\chapter{Second chapitre}
\lipsum
\lipsum
\lipsum
\lipsum
\part{Deuxieme partie}
\chapter{Troisieme chapitre}
\lipsum
\lipsum
\lipsum
\lipsum
\chapter{Quatrieme chapitre}
\lipsum
\lipsum
\lipsum
\lipsum
\end{document}
Debes editar el estilo de fuente en \fancyhead[RO]{\leftmark}
y \fancyhead[LE]{Partie \thepart: \parttitle}
. Además, es posible que necesite trabajos \thispagestyle{empty}
para páginas blancas antes de un nuevo capítulo y una nueva parte.
He mencionado %
antes \usepackage[T1]{fontenc}
los debidos problemas con el compilador de látex en línea. También
Respuesta2
Lo siguiente hará lo que usted dice que quiere. No estoy seguro de que sea lo que desea, pero su kilometraje puede variar.
\pagestyle{fancy}
\fancyhf{}
\fancyhf[coh]{\rightmark}
\fancyhf[ceh]{\leftmark}
\fancyhf[cf]{\thepage}
\renewcommand\chaptermark[1]{\markright{\MakeUppercase{\chaptername{} \thechapter: #1}}}
\makeatletter
\def\@part[#1]#2{%
\ifnum \c@secnumdepth >-2\relax
\refstepcounter{part}%
\addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
\else
\addcontentsline{toc}{part}{#1}%
\fi
\markboth{\MakeUppercase{\partname{} \thepart: #1}}{}%
{\centering
\interlinepenalty \@M
\normalfont
\ifnum \c@secnumdepth >-2\relax
\huge\bfseries \partname\nobreakspace\thepart
\par
\vskip 20\p@
\fi
\Huge \bfseries #2\par}%
\@endpart}
\makeatother
Código completo:
\documentclass[11pt,a4paper,french]{book}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage[top=1in, bottom=1in, left=1in, right=1in]{geometry}
\usepackage{fancyhdr}
\usepackage{lipsum}
\pagestyle{fancy}
\fancyhf{}
\fancyhf[coh]{\rightmark}
\fancyhf[ceh]{\leftmark}
\fancyhf[cf]{\thepage}
\renewcommand\chaptermark[1]{\markright{\MakeUppercase{\chaptername{} \thechapter: #1}}}
\makeatletter
\def\@part[#1]#2{%
\ifnum \c@secnumdepth >-2\relax
\refstepcounter{part}%
\addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
\else
\addcontentsline{toc}{part}{#1}%
\fi
\markboth{\MakeUppercase{\partname{} \thepart: #1}}{}%
{\centering
\interlinepenalty \@M
\normalfont
\ifnum \c@secnumdepth >-2\relax
\huge\bfseries \partname\nobreakspace\thepart
\par
\vskip 20\p@
\fi
\Huge \bfseries #2\par}%
\@endpart}
\makeatother
\begin{document}
\mainmatter
\part{Premiere partie}
\chapter{Premier chapitre}
\lipsum
\lipsum
\lipsum
\lipsum
\end{document}
EDITAR
La razón por la que no estoy seguro de que lo anterior sea lo que quieres es porque creo que parece peculiar cuando hay una página vacía entre capítulos. Puedes no estar de acuerdo pero, si no, puedes eliminarlos si lo deseas.
Si no desea encabezados en las páginas entre capítulos, pero sí desea un número de página, agregue
\usepackage{etoolbox,nextpage}
\patchcmd{\chapter}{\cleardoublepage}{\cleartooddpage[\thispagestyle{plain}]}{\typeout{Chapters successfully patched for no headers on pages between chapters.}}{\typeout{Could not patch chapters to eliminate headers on pages between chapters.}}
Si tampoco desea un número de página, cámbielo plain
a empty
.
Mi opinión personal, por cierto, es que estos encabezados son demasiado pesados y distraen. Están subrayados, en todas las mayúsculas y en el centro. Recomendaría un enfoque más sutil que proporcione información sin desviar la atención del contenido del texto. (Elimine la regla o mueva el encabezado hacia un lado o hacia el otro y elimine las mayúsculas o...)
Respuesta3
Puede parchear \part
para emitir \partmark
en lugar de \markboth{}{}
, de manera similar a cómo \chapter
emite \chaptermark
. Entonces sólo es cuestión de definir adecuadamente esas dos macros.
\documentclass[11pt,a4paper]{book}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\usepackage[top=1in, bottom=1in, left=1in, right=1in, headheight=13.6pt]{geometry}
\usepackage{fancyhdr}
\usepackage{etoolbox}
\usepackage{hyperref}
\usepackage{lipsum}
%Note: this is a very preliminary attempt...,
%Fancier solutions are welcome
%The page numbering does not work correctly
\pagestyle{fancy}
\fancyhf{}
\renewcommand{\headrulewidth}{1pt}
\renewcommand{\footrulewidth}{0pt}
\fancyhead[LE]{\leftmark}
\fancyhead[RO]{\rightmark}
\begingroup\lccode`~=`:
\lowercase{\endgroup
\newcommand{\partmark}[1]{%
\markboth{\MakeUppercase{\partname\space\thepart~ #1}}{}%
}
\renewcommand{\chaptermark}[1]{%
\markright{\MakeUppercase{\chaptername\space\thechapter~ #1}}%
}
}% end of \lowercase
\makeatletter
\patchcmd{\H@old@part}% would be \@part without hyperref
{\markboth{}{}}
{\partmark{#1}}
{}{}
\makeatother
\begin{document}
\mainmatter
\part{Premiere partie}
\chapter{Premier chapitre}
\lipsum
\lipsum
\lipsum
\lipsum
\chapter{Second chapitre}
\lipsum
\lipsum
\lipsum
\lipsum
\part{Deuxieme partie}
\chapter{Troisieme chapitre}
\lipsum
\lipsum
\lipsum
\lipsum
\chapter{Quatrieme chapitre}
\lipsum
\lipsum
\lipsum
\lipsum
\end{document}
Tenga en cuenta que se necesita un truco peculiar para que los dos puntos franceses aparezcan en los encabezados. Básicamente, \partmark
y \chaptermark
se definen con una versión activa de los dos puntos.
Dado que realizamos el parche después de cargarlo hyperref
, necesitamos parchear \H@old@part
en lugar de `\@part.
No descuides la advertencia sobre fancyhdr
la altura de la cabeza; Agregué la configuración sugerida a las opciones de geometry
.