이 페이지에서는 페이지 위아래에 나오는 머리글(header)과 바닥글(footer), 그리고 쪽 번호를 붙이는 방법을 정리합니다. 먼저 LaTeX 에 기본으로 준비된 네 가지 페이지 스타일(empty, plain, headings, myheadings)을 확인하고, 이어서 세밀하게 만들 수 있는 표준 패키지 fancyhdr 를 살펴봅니다. 마지막으로 쪽 번호 형식과 카운터 초기화를 담당하는 \pagenumbering 을 다룹니다.
내장 페이지 스타일
머리글과 바닥글의 기본 모양은 페이지 스타일 로 결정됩니다. 프리앰블에 \pagestyle{...} 를 쓰면 그 시점 이후 모든 페이지에 적용되는 선언이 됩니다. 특정 페이지 한 장만 다른 스타일로 하고 싶다면 본문에서 \thispagestyle{...} 를 씁니다. 표준으로는 다음 네 가지가 준비되어 있습니다.
| 스타일 | 내용 |
|---|---|
empty | 머리글과 바닥글 모두 비어 있음. 쪽 번호도 없음 |
plain | 머리글은 비어 있고, 바닥글 중앙에 쪽 번호만. article / report 의 기본값 |
headings | 바닥글은 비어 있음. 머리글에 절/장 제목과 쪽 번호(주두). book 의 기본값 |
myheadings | headings 와 같은 배치지만, 주두 내용을 \markboth / \markright 로 직접 지정 |
기본 스타일은 클래스에 따라 다릅니다. article 과 report 는 plain(아래 중앙에 쪽 번호), book 은 headings(주두 있음)입니다. 기억할 예외로, \maketitle, \part, \chapter 가 놓인 페이지에는 자동으로 \thispagestyle{plain} 이 적용됩니다. 그래서 \pagestyle{empty} 로 해도 장 시작 페이지에는 아래 중앙에 쪽 번호가 나옵니다. 그것도 없애려면 \chapter 바로 뒤에 \thispagestyle{empty} 를 씁니다.
headings 의 주두 내용도 클래스가 결정합니다. book / report(양면)에서는 왼쪽 페이지에 장 제목, 오른쪽 페이지에 절 제목이 들어갑니다. article(단면)에서는 각 페이지에 절 제목과 쪽 번호가 들어갑니다. myheadings 를 선택하면 이 문자열을 \markboth{왼쪽 페이지용}{오른쪽 페이지용}(양면용)이나 \markright{오른쪽 페이지용} 으로 직접 줄 수 있습니다.
이러한 내장 스타일은 간편하지만 “왼쪽에 문서명, 오른쪽에 쪽 번호” 같은 자유로운 레이아웃은 만들 수 없습니다. 그럴 때 쓰는 것이 다음의 fancyhdr 입니다.
fancyhdr 패키지
fancyhdr 는 머리글과 바닥글을 자유롭게 구성하기 위한 표준 패키지입니다(Piet van Oostrum 작성). 패키지를 불러오고 \pagestyle{fancy} 를 선언하면 머리글과 바닥글 각각에 왼쪽(L)·가운데(C)·오른쪽(R) 세 곳, 총 여섯 슬롯 을 사용할 수 있습니다.
사용의 정석은 먼저 \fancyhf{} 로 여섯 슬롯을 모두 지운 뒤 필요한 곳만 설정하는 것입니다. 머리글은 \fancyhead[L]{...} / [C] / [R], 바닥글은 \fancyfoot[L]{...} / [C] / [R] 로 지정합니다. 처음에 비워 두지 않으면 클래스에서 온 기본 주두가 남을 수 있습니다.
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{} % 6 つのスロットを全消去
\fancyhead[L]{文書のタイトル} % ヘッダー左
\fancyhead[R]{\thepage} % ヘッダー右にページ番号
\fancyfoot[C]{\today} % フッター中央に日付양면(twoside) 문서에서는 펼침면의 체재를 맞추기 위해 위치에 짝수 페이지(E)·홀수 페이지(O) 를 조합합니다. [LE,RO] 는 “짝수 페이지에서는 왼쪽, 홀수 페이지에서는 오른쪽”이라는 뜻으로, 바깥쪽(소구 쪽)에 쪽 번호를 놓는 정석 지정입니다. E/O 를 붙이지 않은 [L] 등은 양면에서도 양쪽 페이지에 같은 것을 둡니다.
머리글과 본문 사이, 바닥글과 본문 사이에 그어지는 선의 두께는 \headrulewidth 와 \footrulewidth 로 정해집니다. 기본값은 머리글 선이 0.4pt, 바닥글 선이 0pt(선 없음) 입니다. \renewcommand 로 두께를 바꿀 수 있고, 0pt 로 하면 선을 없앨 수 있습니다.
\renewcommand{\headrulewidth}{0.4pt} % ヘッダー罫線(既定)
\renewcommand{\footrulewidth}{0pt} % フッター罫線を消す(既定)주두에 장·절 제목 넣기(\leftmark / \rightmark)
주두에 “현재 장·절 제목”을 흘려 넣고 싶을 때는 \leftmark 와 \rightmark 를 씁니다. book / report 클래스에서는 \leftmark 가 현재 장(chapter) 제목, \rightmark 가 현재 절(section) 제목 을 보관합니다. 이들은 장·절 명령이 처리될 때마다 자동으로 갱신되므로, 각 페이지에 “지금 읽는 장·절”을 표시할 수 있습니다.
주의할 점은 표준 클래스에서는 이 내용이 모두 대문자로 변환된다 는 것입니다. 원래 대소문자를 그대로 내고 싶다면 fancyhdr 가 제공하는 \nouppercase 로 감쌉니다. 다만 \nouppercase 는 내부의 대문자화를 모두 취소하므로, 예를 들어 주두의 로마 숫자 등에 영향을 줄 수 있습니다.
% 左に章名(大文字化を解除)、右にページ番号
\fancyhead[L]{\nouppercase{\leftmark}}
\fancyhead[R]{\thepage}“headheight is too small” 경고
fancyhdr 를 쓰면 Package fancyhdr Warning: \headheight is too small 경고가 나올 수 있습니다. 이는 머리글을 담는 상자의 높이 \headheight 가 설정한 내용(선이나 여러 줄 주두 등)에 비해 부족하다는 뜻입니다. 머리글이 본문에 너무 가까워지거나 파고드는 원인이 됩니다.
고치는 방법은 두 가지이며 어느 쪽이든 괜찮습니다. \setlength{\headheight}{...} 로 직접 넓히거나, geometry 패키지의 headheight= 옵션으로 지정합니다. 후자는 판면 전체 계산과 맞춰 주므로, geometry 를 함께 쓰고 있다면 geometry 쪽에서 지정하는 것이 안전합니다.
% どちらか一方でよい
\setlength{\headheight}{15pt} % 直接広げる
% または geometry 側で
\usepackage[headheight=15pt]{geometry}쪽 번호 형식(\pagenumbering)
쪽 번호의 형식 은 \pagenumbering{...} 로 전환합니다. 인수로 받을 수 있는 주요 형식은 다음과 같습니다. 기본값은 아라비아 숫자(arabic)이며 1부터 시작합니다.
| 인수 | 출력 |
|---|---|
arabic | 아라비아 숫자: 1, 2, 3 …(기본) |
roman | 소문자 로마 숫자: i, ii, iii … |
Roman | 대문자 로마 숫자: I, II, III … |
alph | 소문자 영문자: a, b, c …(26쪽까지) |
Alph | 대문자 영문자: A, B, C …(26쪽까지) |
중요한 점은 \pagenumbering 이 서식을 바꾸는 동시에 페이지 카운터를 1로 초기화한다 는 것입니다. 책에서는 이 성질을 이용해 앞부분을 소문자 로마 숫자 i부터 시작하고, 본문 첫머리에서 \pagenumbering{arabic} 으로 바꾸어 1부터 다시 세는 방식이 정석입니다. 현재 쪽 번호 자체는 \thepage 로 꺼낼 수 있고, 번호를 임의 값으로 하고 싶다면 \setcounter{page}{...} 로 카운터를 직접 설정합니다.
\frontmatter % book クラスなら前付け(これも roman に切替)
\pagenumbering{roman} % i, ii, iii … (カウンタも 1 に戻る)
% 目次・序文など
\mainmatter % 本文
\pagenumbering{arabic} % 1, 2, 3 … (再び 1 から)실제 지정 예
양면 문서에서 “바깥쪽에 쪽 번호, 안쪽에 장·절명, 머리글에 가는 선”이라는 흔한 체재를 fancyhdr 로 구성하는 예입니다. \headheight 경고를 피하기 위해 머리글 높이도 조금 넓혔습니다.
\documentclass[twoside]{book}
\usepackage[headheight=15pt]{geometry}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{} % まず全消去
\fancyhead[LE,RO]{\thepage} % 外側にページ番号
\fancyhead[RE]{\nouppercase{\leftmark}} % 偶数ページ右=章名
\fancyhead[LO]{\nouppercase{\rightmark}} % 奇数ページ左=節名
\renewcommand{\headrulewidth}{0.4pt} % ヘッダー罫線
\renewcommand{\footrulewidth}{0pt} % フッター罫線なし
\begin{document}
\chapter{はじめに}
\section{背景}
本文がここに入ります。柱に章・節名とページ番号が出ます。
\end{document}이 예에서는 장이 시작되는 페이지(\chapter 가 있는 페이지)가 앞서 말한 대로 자동으로 plain 이 되므로, 그 페이지에만 주두가 나오지 않고 아래 중앙에 쪽 번호가 나옵니다. 이것도 fancy 체재에 맞추고 싶다면 fancyhdr 의 \fancypagestyle{plain}{...} 으로 plain 스타일 자체를 다시 정의합니다.