编辑

编辑

我的目标是实现一本书的这种布局(可能使用 fancyhdr,但我愿意接受一切):

在此处输入图片描述

当前布局以灰色表示。换句话说,我想要:

  • 将页码放在每页的页脚上(部分标题页除外)
  • 将当前部分的名称放在偶数(非特殊)页面上(格式如图所示:PART I: XXX)+ 在其下加一行
  • 将当前章节的名称放在奇数页(非特殊页)(格式如图:CHAPTER I: XXX)+ 在其下加一行

我所说的“特殊页”是部分标题的页面或每章的第一页。

  1. 怎么做?
  2. 从专业编辑的角度来看,我应该为偶数页的页眉选择什么样的对齐方式(部分标题在左/中/右?)以及奇数页的页眉选择什么样的对齐方式(章节标题在左/中/右?)(是否有一种更可取/更“自然”的对齐方式?)

以下是基本文档的示例:

\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}

答案1

您可以尝试

\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}

\fancyhead[RO]{\leftmark}您必须在和中编辑字体样式\fancyhead[LE]{Partie \thepart: \parttitle}。此外,您可能需要\thispagestyle{empty}在新章节和新部分之前使用白页。

%之前\usepackage[T1]{fontenc}曾提出过在线 latex 编译器的问题。另外

答案2

下面的操作将按照您的要求进行。我不确定这是否是您想要的,但您的里程可能会有所不同。

\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

部章

完整代码:

\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}

编辑

我不确定上述内容是否符合您的要求,因为我认为章节之间有空白页看起来很奇怪。您可能不同意,但如果不同意,您可以根据需要将其删除。

如果您不想在章节之间的页面上显示页眉,但想要页码,请添加

\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.}}

如果您不想要页码,请更改plainempty

顺便说一句,我个人认为这些标题太重,太分散注意力了。它们都用大写字母加下划线,并且居中。我建议采用更巧妙的方法,既能提供信息,又不会将视线从文本内容上移开。(删除规则或将标题移到一侧或另一侧,并去掉大写字母或……)

答案3

您可以修补\part问题\partmark而不是\markboth{}{},类似于\chapter问题\chaptermark。然后只需适当地定义这两个宏即可。

\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}

请注意,需要使用特殊技巧才能在标题中获得法式冒号。基本上,\partmark\chaptermark是用冒号的活动版本定义的。

因为我们在加载之后进行修补hyperref,所以我们需要修补\H@old@part而不是“\@part”。

不要忽视fancyhdr有关头部高度的警告;我将建议的设置添加到了选项中geometry

在此处输入图片描述

相关内容