KTUGFaq

KTUG FAQ

로그인:
비밀번호:
가입
Today is a good day to bribe a high ranking public official.
FrontPage › PageStyle

LaTeX에서는 \pagestyle\thispagestyle 명령을 제공한다.

목차

1 기본값
2 PageStyle 선택 명령
3 headings와 myheadings
3.1 headings에서의 running heading
3.2 myheadings에서 running heading의 설정
3.3 장절 명령과 PageStyle
4 사용자 PageStyle
4.1 FancyHdr 패키지를 이용하는 방법
4.2 pagestyle을 새롭게 정의하는 방법
5 Memoir의 PageStyle
6 FAQ
6.1 빈 페이지에 헤더가 출력이 안 되게 하려면
6.2 페이지 번호를 다시 시작하려면

1 기본값

LaTeX 표준클래스(article,report,book...)에서 제공하는 PageStyle의 기본값은 다음 네 가지이다.
PageStyle 형식
plain 페이지 하단에 페이지 숫자만 붙는다.
empty 아무것도 붙이지 않는다.
headings running heading을 붙인다. running heading의 내용은 문서스타일에 따라 달라진다.
myheadings 페이지 heading에 무엇이 올지를 \markboth 명령이나 \markright 명령으로 지정할 수 있다.

2 PageStyle 선택 명령

  1. \pagestyle{PageStyle} : PageStyle을 선택한다. 이후의 모든 페이지는 이 스타일을 따른다.
  2. \thispagestyle{PageStyle} : 현재 페이지의 스타일을 지정한다.
    <!> \maketitle 명령은 표지가 포함된 페이지의 스타일을 plain으로 스스로 지정한다. 그러므로 표지가 포함된 페이지의 PageStyle을 바꾸고 싶다면, \maketitle\thispagestyle{empty}와 같이 하여야 한다.
  3. \pagenumbering{NumberingStyle} : NumberingStyle은 다음 가운데 하나이다.
    1. arabic : 1, 2, 3, 4, ...
    2. roman : i, ii, iii, iv, ...
    3. Roman : I, II, III, IV, ...
    4. alph : a, b, c, d, ...
    5. Alph : A, B, C, D, ...
  4. <!> 만약 쪽의 번호 스타일(NumberingStyle)을 바꾸는 것이 아니고 쪽 번호 자체를 바꾸는 것이면 번호바꾸기를 참조.

3 headings와 myheadings

3.1 headings에서의 running heading

다음은 book.cls에서 \pagestyle{headings}에 관한 것을 정의한 것이다.
\if@twoside
  \def\ps@headings{%
      \let\@oddfoot\@empty\let\@evenfoot\@empty
      \def\@evenhead{\thepage\hfil\slshape\leftmark}%
      \def\@oddhead{{\slshape\rightmark}\hfil\thepage}%
      \let\@mkboth\markboth
    \def\chaptermark##1{%
      \markboth {\MakeUppercase{%
        \ifnum \c@secnumdepth >\m@ne
          \if@mainmatter
            \@chapapp\ \thechapter. \ %
          \fi
        \fi
        ##1}}{}}%
    \def\sectionmark##1{%
      \markright {\MakeUppercase{%
        \ifnum \c@secnumdepth >\z@
          \thesection. \ %
        \fi
        ##1}} }}
\else
  \def\ps@headings{%
    \let\@oddfoot\@empty
    \def\@oddhead{{\slshape\rightmark}\hfil\thepage}%
    \let\@mkboth\markboth
    \def\chaptermark##1{%
      \markright {\MakeUppercase{%
        \ifnum \c@secnumdepth >\m@ne
          \if@mainmatter
            \@chapapp\ \thechapter. \ %
          \fi
        \fi
        ##1}} }}
\fi

Q2: (From KTUGOperate:16489) 이제 LaTeX을 시작한 초자입니다. 아래 그림과 같이 머리글에 chapter 이름이나 section 이름이 자동으로 들어가게 되는데요. 정의된 페이지 크기를 넘게 되는 경우, 머리글을 제가 바로 editing 하는 방법은 어떤 것이 있는지요? 아직 초자라 기본적인 질문인 것 같기도 합니다. 그럼 부탁드립니다. http://www.ktug.or.kr/jsboard/data/operate/files/20051220154540/%C1%FA%B9%AE.JPG

A: 짝수 쪽번호가 왼쪽 머리에 나온 것으로 보아 클래스 옵션이 twoside로 설정된 것 같습니다. 이 때는 book 클래스, amsbook 클래스 등 명령어 \chapter를 쓸 수 있는 많은 클래스에서는 짝수 쪽에서는 chapter 이름, 홀수 쪽에서는 section 이름이 자동으로 나오게 되어 있고, chapter 이름이나 section 이름이 길어서 그림과 같은 경우가 생기면
\chapter[짧은 제목]{긴 제목}
\section[짧은 제목]{긴 제목}
로 넣으면 됩니다. 만약 이것이 듣지 않으면 \markboth{left head}{right head}를 쓰십시요.

3.2 myheadings에서 running heading의 설정

\markboth\markright 명령을 써서 running heading을 사용자가 설정할 수 있다.
\markboth{left head}{right head}

\markboth\markright 명령이 참조하는 짝수쪽 head는 한 페이지 분량의 마지막 \markboth에 의하여 지정된 것이 사용된다. 반면 홀수쪽 head는 이전 페이지에 설정된 것을 이용하거나, 그 페이지의 맨처음 지시된 \markboth 또는 \markright에 의하여 설정된다.

장절명령 (\chapter, \section)에 따라 heading을 바꾸어야 한다면 다음 소절을 참고하여 \chaptermark, \sectionmark를 재정의한다.

3.3 장절 명령과 PageStyle

어떤 경우든 \rightmark\leftmark를 직접 정의하지 않는 것이 좋다. 이 두 가지를 지정하고 바꾸는 명령으로 \markboth\markright 명령이 주어져 있다. 그리고, \sectionmark 명령과 \chaptermark 명령은 \section이나 \chapter가 호출될 때마다 거기에 맞게 \markboth 명령을 불러준다.
\renewcommand\chaptermark[1]{\markboth{#1}{}}
\renewcommand\sectionmark[1]{\markright{\thesection~#1}}

4 사용자 PageStyle

4.1 FancyHdr 패키지를 이용하는 방법

사용자 페이지 스타일을 지정하려면 fancyhdr 패키지를 쓰는 것이 가장 쉬운 방법이다. fancyhdr 패키지에 대해서는 FancyHdr문서LayOut을 참고하라.

4.2 pagestyle을 새롭게 정의하는 방법

직접 페이지 스타일을 지정하려면 페이지 스타일의 명칭을 정하고, 거기에 해당하는 ps@xxx 명령을 정의(재정의)한다. 다음 보기는 새로운 페이지 스타일의 명칭을 myownpagestyle라고 하고, 각 페이지의 상단에 PAGE~\thepage가 나타나도록 한 것이다.
\makeatletter
\newcommand\ps@myownpagestyle{%
    \renewcommand\@oddfoot{}%
    \renewcommand\@evenfoot{}%
    \renewcommand\@evenhead{\textsc{Page}~\thepage}%
    \renewcommand\@oddhead{\hfil\textsc{Page}~\thepage}%
    }
\makeatother

  • \ps@페이지스타일명칭 형태의 명령을 정의(newcommand)한다.
  • \@oddfoot, \@evenfoot, \@evenhead, \@oddhead를 각각 재정의(renewcommand)한다.

위의 내용을 Preamble에 넣고, 이후에 \pagestyle{myownpagestyle}과 같은 방식으로 사용한다.

5 Memoir의 PageStyle

MemoirClass는 독자적인 pagestyle 명령을 가지고 있다. 따라서 MemoirClass에서 FancyHdr를 쓰지 않는 것이 좋다. 상세한 사용법은 Memoir Manual 3부 11장을 참고.

\makepagestyle
\aliaspagestyle
\copypagestyle
위의 세 명령은 새로운 페이지 스타일을 만드는 것이다.
\makeevenhead
\makeevenfoot
\makeoddhead
\makeoddfoot
위의 네 명령은 이름 그대로이다. 이밖에 다음과 같은 디자인을 위한 매크로들이 제공된다.
\makerunningwidth
\makeheadrule
\makefootrule
\footruleheight, \footruleskip
\makeheadposition
\makepsmarks

위와 같은 페이지스타일 디자인을 위한 사용자 설정 가능 매크로 이외에 기정의 페이지 스타일이 제공된다. empty, plain, headings, myheadings는 LaTeX 기본 스타일과 비슷하고, ruled, Ruled, companion, book, chapter, cleared, part, title, titlingpage 라는 추가 페이지 스타일이 있다. (한글 문서와는 미묘하게 어긋나는 것도 있음에 주의.)

한편, Memoir는 새로운 chapter가 시작되기 전 페이지에 백면이 만들어지도록 설정되어 있는 등, book이나 report의 성가신 pagestyle 불일치 문제를 대부분 해결해두고 있다.

6 FAQ

6.1 빈 페이지에 헤더가 출력이 안 되게 하려면

book 클래스를 사용하는 경우에 각 장(chapter)가 항상 홀수 쪽에서 시작되면서 바로 전 짝수 쪽에 빈 페이지가 생기는 경우가 있다.[1]

----
  • [1] Memoir 클래스를 쓰면 이런 문제가 발생하지 않는다.

부득이 book을 써야 하고 이 때 이 빈 페이지에 쪽번호 등이 출력되지 않게 하려면
\documetnclass{book}
.
.
.

\newcommand{\cedp}{%
\newpage{\pagestyle{empty}\cleardoublepage}
}

\begin{document}
\include{chapter1}
\cedp
\include{chapter2}
\cedp
\include{chapter3}
\cedp
\pintindex

\end{document}

6.2 페이지 번호를 다시 시작하려면


Q : (From KTUGOperate:16484)겉표지, 속표지, 목차, 내용 등을 한 문서로 작성할 때

겉표지는 쪽번호 안 나오도록 하고,
속표지부터 i로 시작하여 본 내용 전까지 순서를 매긴 후
본 내용에서 다시 숫자 1로 시작하는 쪽번호를 매기고 싶습니다.


A :

겉표지에 해당하는 곳에 \thispagestyle{empty}
속표지가 시작하는 곳에 \thispagestyle{plain} \pagenumbering{roman} \setcounter{page}{1}
본 내용이 시작하는 곳에 \thispagestyle{plain} \setcounter{page}{1}








^
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2011-03-18 15:21:42
Processing time 0.0828 sec