
Meu objetivo é realizar esse layout para um livro (possivelmente usando o fancyhdr, mas estou aberto a tudo):
onde o layout atual é representado em cinza. Em outras palavras, eu quero:
- colocar a numeração das páginas no rodapé de cada página (exceto páginas de título de parte)
- colocar o nome da parte atual em páginas pares (não especiais) (com o formato mostrado na imagem: PARTE I: XXX) + uma linha abaixo dela
- colocar o nome do capítulo atual em páginas ímpares (não especiais) (com o formato mostrado na imagem: CAPÍTULO I: XXX) + uma linha abaixo dele
O que chamo de “páginas especiais” são as páginas do título da parte ou a primeira página de cada capítulo.
- Como fazer isso?
- Do ponto de vista de um editor profissional, quais alinhamentos devo escolher para o cabeçalho nas páginas pares (título da parte à esquerda/centro/direita?) e para o cabeçalho nas páginas ímpares (título do capítulo à esquerda/centro/direita?) (existe um alinhamento preferido/mais "natural"?)
Aqui está um exemplo de 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}
Responder1
Você pode tentar com
\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}
Você deve editar o estilo da fonte em \fancyhead[RO]{\leftmark}
e \fancyhead[LE]{Partie \thepart: \parttitle}
. Além disso, talvez você precise trabalhar com \thispagestyle{empty}
páginas em branco antes do novo capítulo e da nova parte.
Coloquei %
antes dos \usepackage[T1]{fontenc}
devidos problemas com o compilador de látex online. Também
Responder2
O seguinte fará o que você diz que deseja. Não tenho certeza se é isso que você deseja, mas sua milhagem pode 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
A razão pela qual não tenho certeza se o que foi dito acima é o que você deseja é porque acho que parece peculiar quando há uma página em branco entre os capítulos. Você pode discordar, mas, caso contrário, poderá eliminá-los, se desejar.
Se você não quiser cabeçalhos nas páginas entre os capítulos, mas quiser um número de página, adicione
\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.}}
Se você também não quiser um número de página, mude plain
para empty
.
A propósito, minha opinião pessoal é que esses cabeçalhos são muito pesados e distraem. Estão sublinhados, em todas as letras maiúsculas e no centro. Eu recomendaria uma abordagem mais sutil, que fornecesse informações sem desviar o olhar do conteúdo do texto. (Abandone a regra ou mova o cabeçalho para um lado ou outro e livre-se da capitalização ou....)
Responder3
Você pode corrigir \part
o problema \partmark
em vez de \markboth{}{}
, da mesma forma que \chapter
os problemas \chaptermark
. Depois é só definir adequadamente essas duas 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}
Observe que é necessário um truque peculiar para colocar os dois pontos franceses nos cabeçalhos. Basicamente, \partmark
e \chaptermark
são definidos com uma versão ativa dos dois pontos.
Como fazemos o patch após o carregamento hyperref
, precisamos corrigir \H@old@part
em vez de `\@part.
Não negligencie o aviso fancyhdr
sobre a altura da cabeça; Adicionei a configuração sugerida às opções de geometry
.