fancyhdr 패키지로 헤더를 정의하는 데 문제가 있습니다. 제가 원하는 내용은 다음과 같습니다. - 왼쪽 페이지 왼쪽: 부품번호.장번호. 챕터 이름 - 오른쪽 페이지 오른쪽 :partnumber.chapternumber.sectionnumber 섹션 이름
나는 챕터마크를 재정의하려고 시도했지만 성공하지 못했습니다. 여기 MWE가 있습니다.
\documentclass[twoside,12pt,openright,a4paper,usenames,dvipsnames]{book}
\usepackage[linktoc=all,hyperindex]{hyperref}
\usepackage{chngcntr}
\counterwithin{chapter}{part}
\usepackage{lipsum}
\usepackage{titlesec}
\usepackage[titles]{tocloft}
\renewcommand{\thechapter}{\arabic{chapter}}
\titleformat{name=\chapter}[display]
{\bfseries\LARGE}
{\filleft\MakeUppercase{\chaptertitlename} \Huge\thechapter}
{0ex}
{%\titlerule
\vspace{2ex}%
\filleft}
[\vspace{4ex}%
\titlerule]
\titleformat{name=\chapter,numberless}
{\bfseries\LARGE}
{}
{0ex}
{%\titlerule
\filleft\MakeUppercase}
[\vspace{4ex}%
\titlerule]
\titlespacing*{\chapter}{0pt}{-25pt}{40pt}
\titleformat{\part}[frame]
{\bfseries\Huge}
{\filright\large\enspace{\partname}\enspace}
{40pt}
{\Large\filcenter\MakeUppercase}
\titleclass{\part}{top}
\makeatletter
\renewcommand{\thechapter}{\@arabic\c@chapter}
\renewcommand{\p@chapter}{\thepart.}
\makeatother
\renewcommand{\chaptermark}[1]{%
\markboth{\thepart.\thechapter.\ #1}{}}
\renewcommand{\sectionmark}[1]{%
\markboth{\thechapter.\ #1}{}}
\usepackage{fancyhdr}
\fancypagestyle{bookstyle}{
\fancyhf{}
\fancyhead[LE]{\leftmark}
\fancyhead[RO]{\rightmark}
\fancyfoot[RO,LE]{\thepage}}
\fancypagestyle{plain}{
\renewcommand\headrulewidth{0pt}
\fancyhf{}
}
\begin{document}
\pagestyle{bookstyle}
\part{Part 1}
\chapter{Chap 1}
\label{chap:chapI1}
\section{Sec 1}
\lipsum[1-10]
\chapter{Chap 2}
\part{Part 2}
\chapter{Chap 1}
\chapter{Chap 2}
\end{document}
titlesec 패키지와 충돌이 있는 것 같은데 알 수 없습니다.
답변1
기본적으로 발행하는 것을 잊어 버렸습니다.\pagestyle{fancy}
.
그러나 패키지 순서도 잘못되었습니다. 다음은 수정된 버전입니다.
\documentclass[twoside,12pt,openright,a4paper]{book}
\usepackage{titlesec}
\usepackage[titles]{tocloft}
\usepackage{fancyhdr}
\usepackage{chngcntr}
\usepackage{lipsum}
\usepackage[linktoc=all,hyperindex]{hyperref}
\counterwithin*{chapter}{part}
\makeatletter
\renewcommand{\p@chapter}{\thepart.}
\makeatother
\titleformat{name=\chapter}[display]
{\bfseries\LARGE}
{\filleft\MakeUppercase{\chaptertitlename} \Huge\thechapter}
{0ex}
{%\titlerule
\vspace{2ex}%
\filleft}
[\vspace{4ex}%
\titlerule]
\titleformat{name=\chapter,numberless}
{\bfseries\LARGE}
{}
{0ex}
{%\titlerule
\filleft\MakeUppercase}
[\vspace{4ex}%
\titlerule]
\titlespacing*{\chapter}{0pt}{-25pt}{40pt}
\titleformat{\part}[frame]
{\bfseries\Huge}
{\filright\large\enspace{\partname}\enspace}
{40pt}
{\Large\filcenter\MakeUppercase}
\titleclass{\part}{top}
\pagestyle{fancy}
\renewcommand{\chaptermark}[1]{%
\markboth{\thepart.\thechapter.\ #1}{}}
\renewcommand{\sectionmark}[1]{%
\markright{\thepart.\thesection.\ #1}}
\fancypagestyle{bookstyle}{%
\fancyhf{}%
\fancyhead[LE]{\leftmark}%
\fancyhead[RO]{\rightmark}%
\fancyfoot[RO,LE]{\thepage}%
}
\fancypagestyle{plain}{%
\renewcommand\headrulewidth{0pt}
\fancyhf{}%
}
\setlength{\headheight}{14.5pt}
\pagestyle{bookstyle}
\begin{document}
\part{Part 1}
\chapter{Chap 1}
\label{chap:chapI1}
\section{Sec 1}
\lipsum[1-10]
\chapter{Chap 2}
\part{Part 2}
\chapter{Chap 1}
\chapter{Chap 2}
\end{document}