편집하다

편집하다

내 목표는 책에 대한 이 레이아웃을 구현하는 것입니다(아마도 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}또한

답변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.}}

페이지 번호도 원하지 않으면 plain으로 변경하세요 empty.

그런데 내 개인적인 견해로는 이러한 헤더가 너무 무겁고 산만하다는 것입니다. 모두 대문자와 뱅 센터에 밑줄이 그어져 있습니다. 나는 텍스트의 내용에서 눈을 떼지 않으면서 정보를 제공하는 보다 미묘한 접근 방식을 권장합니다. (규칙을 삭제하거나 헤더를 한쪽 또는 다른 쪽으로 이동하고 대문자를 제거하거나....)

답변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}

헤더에 프랑스어 콜론을 삽입하려면 특별한 트릭이 필요합니다. 기본적으로 \partmarkand는 \chaptermark콜론의 활성 버전으로 정의됩니다.

를 로딩한 후에 패치를 하기 때문에 `\@part.dll 대신 hyperref패치를 해야 합니다 .\H@old@part

fancyhdr머리 높이에 대한 경고를 무시하지 마십시오 . 에 대한 옵션에 제안된 설정을 추가했습니다 geometry.

여기에 이미지 설명을 입력하세요

관련 정보