LoginSignup
26
17

More than 3 years have passed since last update.

LaTeXでヘッダとフッタを見出しページでも統一したい

Last updated at Posted at 2019-07-31

この記事では,LaTeXのドキュメントクラス(jsreportなど)において全ページ(chapterが始まる見出しページ等を含む)のヘッダやフッタを統一する方法を示します.

LaTeXでファイルを生成する際,ヘッダやフッタを挿入したい場合があります(実際にはいったんdviファイルが作られ,そこからpdfなどのファイルに変換されますが,仕組みのお話はここではしません).文書クラス(jsreportbookなど)にはそれぞれ,デフォルトのヘッダやフッタがあります.それぞれの文書クラスで定義されたデフォルトの物を使いたくないことがあるかもしれません.

LaTeXでのヘッダやフッタの編集方法

ヘッダを編集するにはページスタイルを変更することで可能です.プリアンブルで\pagestyle{plain}のように指定します.主に次のものがあります.

  • plain
  • empty
  • headings
  • myheadings
  • fancy (利用するにはfancyhdrパッケージを読み込む必要があります)

例えばfancyの場合,次のようにプリアンブルに置くことでページスタイルを決めます.詳しくは Page layout in LaTeX [1] を参照してください.

\documentclass[a4paper]{jsreport}
\usepackage{fancyhdr}
\pagestyle{fancy}
    \lhead{ヘッダ左} %ヘッダ左
    \chead{ヘッダ中央} %ヘッダ中央
    \rhead{ヘッダ右} %ヘッダ右.コンパイルした日付を表示
    \lfoot{フッタ左} %フッタ左
    \cfoot{\thepage} %フッタ中央.ページ番号を表示
    \rfoot{フッタ右} %フッタ右
% \renewcommand{\headrulewidth}{} %ヘッダの罫線
% \renewcommand{\footrulewidth}{} %フッタの罫線
\begin{document}
.
.
\end{document}

このようにしてページスタイルを決めて,ヘッダやフッタを編集します.上記の設定の場合は,以下の画像のようになります.
Screen Shot 2020-06-20 at 20.16.14.png

LaTeXやupLaTeXでの見出しページ

\chapter\sectionといったコマンドは見出しと呼ばれます.

デフォルトでは次のようになっています[2]:

\chapter
\renewcommand{\chapter}{%
    \if@openleft\cleardoublepage\else
    \if@openright\cleardoublepage\else\clearpage\fi\fi
    \plainifnotempty %元: \thispagestyle{plain}
    \global\@topnum\z@
    \if@english \@afterindentfalse \else \@afterindenttrue \fi
    \secdef
    {\@omit@numberfalse\@chapter}%
    {\@omit@numbertrue\@schapter}}

\pagestyleemptyに指定されていない場合は,そのページのページスタイルがplainになります.章扉のページはページ番号がヘッダ右側に記載され,プリアンブルでヘッダやフッタを編集しても効果がありません.なお,jsreportjsbookなどの\chapterが利用可能な文書クラスでは,章扉のページは右側のページに配置されます.

\chapterを“再再定義”してしまえ

\chapterのすぐうしろに\thispagestyle{}を用いることも可能です.ただし,この記事では別の方法を示します.

ヘッダやフッタの様式をすべてのページで統一したいけれど,これができない原因は,前章で示した\chapterの定義にあります.LaTeXには,定義されたコマンドを再定義し,再定義されたコマンドを使うことができます.プリアンブルで,次のように再定義しておきます.\plainifnotemptyがある行を消すだけです.以下の内容を,プリアンブルに記述します.なお,LaTeXに対する理解が不十分な場合は,\defを用いないようにしましょう.「LaTeXが壊れた!」事態になりかねません.

\chapter
\makeatletter
\renewcommand{\chapter}{%
    \if@openleft\cleardoublepage\else
    \if@openright\cleardoublepage\else\clearpage\fi\fi
    %\plainifnotempty %元: \thispagestyle{plain}
    \global\@topnum\z@
    \if@english \@afterindentfalse \else \@afterindenttrue \fi
    \secdef
    {\@omit@numberfalse\@chapter}%
    {\@omit@numbertrue\@schapter}}
\makeatother

このように再定義することでプリアンブルで定めたヘッダやフッタがそれぞれの章扉ページに記述されます.

Screen Shot 2020-06-20 at 20.32.49.png

Reference

[1] Piet van Oostrum, Page layout in LATEX
[2] 奥村晴彦, pLATEX2ε 新ドキュメントクラス

補足
  • これらのマニュアルは,コマンドプロンプトやターミナルでそれぞれ次のように入力すると,マニュアルが開きます:
$ texdoc fancyhdr
$ texdoc jsclasses
  • ここで紹介した方法を実際に用いる場合は自己の責任のもとで行うよう,お願します.
26
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
26
17