TeX・LaTeXについての覚え書き

TeXやLaTeXについての覚え書きをまとめてみました。


用紙のサイズを自動設定したい

出来上がりの用紙サイズ(例えばPDF出力する場合)を自動で設定するには、プリアンブルで以下のように設定します。

\AtBeginDvi{\special{papersize=\the\paperwidth,\the\paperheight}}

なお、 奥村先生のpLaTeX2e新ドキュメントクラスではpapersizeが実装されていますので、クラスファイルのオプションで指定して下さい。

\documentclass[a5paper,papersize]{jsarticle}
%% 以下省略

特定の条件で用紙のサイズがおかしくなる

奥村先生のpLaTeX2e新ドキュメントクラスで10pt以外のオプションを指定しgraphicx.styを使用すると用紙のサイズが狂うようです。 回避するためにはnosetpagesizeオプションを指定します。
最新版では修正されているようです。

\usepackage[dvipdfmx,nosetpagesize]{graphicx}%% 常用するデバイスと共に指定

目次や本文で章(chapter)節(section)の表題や番号を表示したり非表示したりするには

目次で章節の表題を表示・非表示するにはtocdepthカウンタ値を設定します。 例えば、プリアンブルで以下のように設定します。

\setcounter{tocdepth}{1}%% 目次では\section の表題まで出す

本文で章節番号を表示・非表示するにはsecnumdepthカウンタ値を設定します。

\setcounter{secnumdepth}{3}%% 本文では\subsubsection まで章節番号を出す

具体的なカウンタ値は以下のとおりです。

カウンタ値備考
\part-1
\chapter0(js)articleクラスには無い
\section1
\subsection2
\subsubsection3
\paragraph4
\subparagraph5

版面のパラメータにはどのようなものがありますか?

LaTeX2eでは版面を構成する様々なパラメータがあります。 このパラメータの値を調整すれば、お望みのレイアウトを得ることが出来ます。 ただし、版面のパラメータは他のパラメータと密接に関係していますので、その相互関係を考慮に入れる必要があります。

横組みのレイアウトパラメータ
\paperwidth
用紙の横幅を示します。
\paperheight
用紙の高さ(縦幅)を示します。
DVI 原点
用紙の左角から、1インチ・1インチの点です。\topmargin・\oddsidemargin・\evensidemargin などのパラメータはDVI原点を基準にしています。
\topmargin (1)
DVI 原点からの上端の余白です。 \topmargin を-1inにすると事実上の用紙上端余白はゼロとなります。
\headheight (2)
ヘッダーの高さです。
\fullwidth
図にはありませんが奥村先生のpLaTeX2e新ドキュメントクラスで実装されたヘッダーの横幅を規定したパラメータです。
\headsep (3)
ヘッダー下端と本文領域との空きです。
\oddsidemargin・\evensidemargin (4)
DVI 原点からの左端の余白です。奇数・偶数ページのデザインが同じ場合(oneside)には \oddsidemargin が余白ですが、奇数・偶数ページのデザインが違う場合(twoside)には \oddsidemargin は奇数ページ、\evensidemargin は偶数ページの余白になります。 なお \oddsidemargin・\evensidemargin を-1inにすると事実上の用紙左端余白がゼロとなります。
\textwidth (5)
横組みの場合、本文領域の横幅です。
\textheight (6)
横組みの場合、本文領域の高さ(縦幅)です。
\marginparwidth (7)
横組みの場合、傍注領域の横幅です。
\marginparsep (8)
本文領域と傍注領域との空きです。
\footskip (9)
本文領域下端とフッター下端までの空きです。なおLaTeX2eではLaTeX 2.09にあった\footheight は廃止されました。
\linewidth (10)
横組の場合、本文領域(カラム)の横幅です。一段組(onecolumn)では \textwidth と同じですが、二段組(twocolumn)では\textwidth から\columnsep を引き2で割った値となります。
\columnsep (11)
横組みの場合、二段組(twocolumn)で左右カラム間の空きです。
\columnseprule (12)
横組みの場合、二段組(twocolumn)で左右カラム間に引かれる罫線の太さです。 デフォルトでは0ptとなっていますので表示されません。

縦組の場合には、(1)(2)(3)(4)は共通ですが、それ以外の幾つかのパラメータで向きが変わってきます。

縦組みのレイアウトパラメータ
\textwidth (5)
縦組みの場合、本文領域の高さ(縦幅)です。
\textheight (6)
縦組みの場合、本文領域の横幅です。
\marginparwidth (7)
縦組みの場合、傍注領域の高さ(縦幅)です。
\marginparsep (8)
本文領域と傍注領域との空きです。
\footskip (9)
本文領域下端とフッター下端までの空きです。 傍注領域を確保した場合には\marginparwidth と\marginparsep も考慮に入れる必要があります。
\linewidth (10)
縦組の場合、本文領域(カラム)の高さ(縦幅)です。 一段組(onecolumn)では\textwidth と同じですが、二段組(twocolumn)では\textwidthから\columnsepを引き2で割った値となります。
\coloumnsep (11)
縦組みの場合、二段組(twocolumn)で上下カラム間の空きです。
\columnseprule (12)
縦組みの場合、二段組(twocolumn)で上下カラム間に引かれる罫線の太さです。 デフォルトでは0ptとなっていますので表示されません。

版面設定の具体例はどのようにすればよいですか

以下に雛形(その1)を示します。

\documentclass[a4paper,dvipdfmx]{jsarticle}%% 常用するデバイスはオプションで指定する
\setlength{\topmargin}{-1truein}%% \topmarignを-1インチにする
\addtolength{\topmargin}{15truemm}%% 上余白15mmとする
\setlength{\headheight}{0pt}%% ヘッダーは使わないので 0pt
\setlength\headsep{0pt}%% 同上
\setlength{\textheight}{\paperheight}%% テキストの高さを紙の高さにしておいて
\addtolength{\textheight}{-30truemm}%% 30mmひいて下余白15mm とする

\setlength{\oddsidemargin}{-1truein}%% \oddsidemargnを-1インチにする
\addtolength{\oddsidemargin}{10truemm}% 左余白10mmとする
\setlength{\textwidth}{\paperwidth}%% テキストの幅を紙の幅にしておいて
\addtolength{\textwidth}{-20truemm}%% 20mmひいて右余白10mm とする
\setlength{\evensidemargin}{\oddsidemargin}%% \evensidemargnも\oddsidemarginと同じ
\pagestyle{empty}%% ページ番号は表示しない

雛形(その2)を示します。

\documentclass[a4paper,twoside,dvipdfmx]{jsarticle}%% 常用するデバイスはオプションで指定する
\setlength{\topmargin}{-1truein}%% \topmarignを-1インチにする
\addtolength{\topmargin}{.15\paperheight}%% 上余白は紙の高さ15パーセントとする
\setlength{\headheight}{10truemm}%% ヘッダーの高さは10mmt
\setlength\headsep{5truemm}%% ヘッダーと本文の空きは5mm
\addtolength{\topmargin}{-15truemm}%% \topmarginからヘッダー等の高さを引くので
% ヘッダーは(見かけ上)上余白の中に
\setlength{\textheight}{.75\paperheight}%% テキストの高さは紙の高さ75パーセントとするので
% 下余白は紙の高さ10パーセント(15+75+10=100)となる
%%% 奇数ページ
\setlength{\oddsidemargin}{-1truein}%% \oddsidemargnを-1インチにする
\addtolength{\oddsidemargin}{.12\paperwidth}% 左余白は紙の幅12パーセントとする
%%% 偶数ページ
\setlength{\evensidemargin}{-1truein}%% \oddsidemargnを-1インチにする
\addtolength{\evensidemargin}{.08\paperwidth}% 左余白は紙の幅8パーセントとする

\setlength{\textwidth}{.8\paperwidth}%% テキストの幅を紙の幅80パーセントにする
\setlength{\fullwidth}{\textwidth}%% ヘッダーの幅をテキストの幅と同じにする(jsclassesのみ)
\pagestyle{headings}%% ページ番号は下線付きヘッダーに表示

文書の記述はどのようにすれば良いか

以下に雛形を示します。

% pLaTeX
\documentclass[b5paper,papersize,dvipdfmx]{jsbook}%% 常用するデバイスはオプションで指定する
%\documentclass[a4paper,dvipdfmx]{jreport}
%\documentclass[b5paper,papersize,dvipdfmx]{jsarticle}
\usepackage{makeidx}%% 索引用スタイルファイル
\makeindex%% 索引を作る宣言

\title{}%% 文書の表題
%\date{}%% 日付(コメントすると今日の日付)
\author{}%% 著者
\begin{document}
\frontmatter%% [js]bookクラスのみ、[j]report、[js]articleクラスには無い

\maketitle%% 表題の表示

\tableofcontents%% 目次
%\listoffigures%% 図目次
%\listoftables%% 表目次

\mainmatter%% [js]bookクラスのみ、[j]report、[js]articleクラスには無い

%\part{}%% 部(任意)
\chapter{}%% 章 ([js]article クラスには無い)
\section{}%% 節

索引\index{さくいん@索引}%% @の前に「読み」@の後に「漢字」を入れる
ホゲホゲ\index{ほげほげ}%%「漢字」不要なら読みのみ
hogehoge\index{hogehoge}%% 英数字も同様

\subsection{}%% 小節
\subsubsection{}%% 小々節
\paragraph{}%% 段落
\subparagraph{}%% 小段落

\bibliographystyle{jplain}%% 文献用スタイルの選択
\bibliography{foo,bar}%% 文献データベースファイルの選択

%\backmatter%% [js]bookクラスのみ、[j]report、[js]articleクラスには無い

\printindex%% 索引の出力
\end{document}

部分的に文書の余白を調整するには

部分的に文書の余白を調整するにはindentパッケージを用いindentation環境を使います。

\usepackage{indent}

プリアンブルで上記のように指定し本文中で以下のようにします。 左右の余白量は長さを指定します。

\begin{indentatation}{左余白量}{右余白量}
余白を付けたい文章
\end{indentatation}

部分的に文書の行間を調整するには

文書全体で行間を指定するにはプリアンブルで\baselinestretchを再定義します。

\renewcommand{\baselinestretch}{.9}%% 通常の文書は1に相当する

部分的に文書の行間を指定するにはsetspaceパッケージを用いspacing環境を使います。

\usepackage{setspace}

プリアンブルで上記のように指定し本文中で以下のようにします。

\begin{spacing}{.9}%% 通常の文書は1に相当する
行間を変えたい文章
\end{spacing}

標準では無い文字を使うには、どうすれば良いか

齋藤さんのOTFパッケージを使用すれば様々な文字を出力できます。 プリアンブルで以下のように指定します。

\usepackage{otf}%% オプションも取れるが、ここでは省略

丸数字

本文中で\ajMaru{引数}とします。 引数は0から100まです。

JIS第1水準・第2水準以外の文字

本文中で\CID{引数}とします。 引数はCID 10進数コードです。
または\UTF{引数}とします。 引数は16進数ユニコードです。
異体字ではありませんが、表示されていた文字が最終的に出力した際に使用されているフォントによって文字が変わってしまうことがあります。 この場合にも明示的に指定することで有効です。

丸数字の\ajMaru{1}や\ajMaru{69}に\ajMaru{100}などが使えます。

草\UTF{5f45} 剛 \qquad 内田 百\UTF{9592}

画面上では禰% PDF に出すと ネ爾 になってしまう
と出ていても変わってしまうので、
\CID{7769}% 示爾
とすると期待した文字が得られます。

以下に出力例を示します。

otf.styによる出力例

文字の合成

ほとんどOTFパッケージで出力出来るのですが、文字が見つからない場合に文字を部品として合成し出力することもあります。

\usepackage{graphicx}%% 常用するデバイスは\documentclassのオプションで指定

%% 文字パーツを変形させて左右に合成するコマンド(制御綴)
\newcommand{\LRkanji}[3][4]{% オプションは 3 4 5 のみ有効、デフォルトは 4
  \ifnum #1<4% 4未満(3以下)なら
    \scalebox{0.3}[1]{#2}\scalebox{0.7}[1]{#3}%
  \else%
  \ifnum #1=4% 4に等しいなら
    \scalebox{0.4}[1]{#2}\scalebox{0.6}[1]{#3}%
  \else%
  \ifnum #1>4% 4を超える(5以上)なら
    \scalebox{0.5}[1]{#2}\scalebox{0.5}[1]{#3}%
  \fi\fi\fi}

%% 文字パーツを変形させて上下に合成するコマンド(制御綴)
\newcommand{\UBkanji}[2]{\raisebox{.47zh}[0pt]{\scalebox{1}[.49]{#1}}%
  \hspace{-1zw}\scalebox{1}[.49]{#2}}

プリアンブルで上記のように定義して本文中で以下のようにします。

「示」と「爾」を合成(4対6の比率)して\LRkanji{示}{爾}とする。

韓国の囲碁棋士、李世\UBkanji{石}{乙}九段

以下に出力例を示します。

文字合成の出力例

文字に色を付けるには

colorパッケージを用いれば色付きの文字が使えます。 (参考:>LaTeXグラフィックスコンパニオン:2000年、アスキー発行) プリアンブルで以下のように指定します。

\usepackage{color}%% 常用するデバイスは\documentclassのオプションで指定

本文中で\color[オプション]{引数}とすれば、それ以降の文字に色が付きます。 範囲を限局するために{}で囲むか、\textcolor[オプション]{引数}{文字列}を用います。 文字列を囲んで背景に色を付けるには\colorbox[オプション]{引数}{文字列}とします。

オプションは以下のとおりで、それぞれ引数が異なります。

オプション書式例備考
\color{引数}引数は「色の名前」
cmyk\color[cmyk]{引数,引数,引数,引数}引数は4個で、それぞれ0~1の数値
rgb\color[rgb]{引数,引数,引数}引数は3個で、それぞれ0~1の数値
gray\color[gray]{引数}引数は0~1の数値:数値が大きくなると薄くなる
named\color[named]{引数}引数は「色の名前」

オプションを指定しない場合には、black、white、red、green、blue、cyan、magenta、yellowの8色が用意されています。

namedオプションでは、以下の68色が用意されています。色と名前の一覧をPDFファイルにしました。

GreenYellow Yellow Goldenrod Dandelion
Apricot Peach Melon YellowOrange
Orange BurntOrange Bittersweet RedOrange
Mahogany Maroon BrickRed Red
OrangeRed RubineRed WildStrawberry Salmon
CarnationPink Magenta VioletRed Rhodamine
Mulberry RedViolet Fuchsia Lavender
Plum Violet RoyalPurple BlueViolet
Thistle Orchid DarkOrchid Purple
Periwinkle CadetBlue CornflowerBlue MidnightBlue
NavyBlue RoyalBlue Blue Cerulean
Cyan ProcessBlue SkyBlue Turquoise
TealBlue Aquamarine BlueGreen Emerald
JungleGreen SeaGreen Green ForestGreen
PineGreen LimeGreen YellowGreen SpringGreen
OliveGreen RawSienna Sepia Brown
Tan Gray Black White

以下にLaTeXソースと出力例を示します。

ある夏の日、
{% ここから
\color[named]{Red}
真っ赤な猫が歩いている。
\colorbox[named]{Blue}{\textcolor{white}{青い犬}}が近寄ってきたので、
真っ赤な猫は\textcolor[named]{Cyan}{真っ青になって}逃げた。
}% ここまで

\textcolor[named]{Red}{真っ赤な猫}は、\textcolor[gray]{0.8}{屋根}まで
駆け上がったけれど、{\color{blue}青い犬}は\textcolor[rgb]{0,0.7,0.2}{何処か}
に行ってしまった。

color.styの出力例

TypeWriter体のフォントを変更するには

通常はpxfontsパッケージを利用していますがTypeWriter体で数字の0の字形が逆スラッシュの入ったものになって都合が悪いのでフォントをcmttに変えます。プリアンブルで以下のように指定します。

\usepackage{pxfonts}
\renewcommand{\ttdefault}{cmtt}%% TypeWriter体のフォントをcmttに変更

図と表を並べて、それぞれに適切な\captionを使うには

\@captype を操作すれば、figure環境内で図の\captionを、table環境内で表の\captionを使うことが出来ます。プリアンブルで以下のように指定します。

\makeatletter%% プリアンブルで定義する場合は必須
\newcommand{\figcaption}[1]{\def\@captype{figure}\caption{#1}}
\newcommand{\tblcaption}[1]{\def\@captype{table}\caption{#1}}
\makeatother%% プリアンブルで定義する場合は必須

本文中で以下のように使います。

\begin{table}
  % 実際の表は省略
    \figcaption{table環境内で図のキャプション}
\end{table}

なお\figcaption・\tblcaptionはtable環境・figure環境など浮動体(フロート)の外でも使用できますから場所を固定したい図表の\captionに応用できます。

表組み(tabular環境)に色付けするには

colortblパッケージを用いれば表組み(tabular環境)に色付けすることが出来ます。 (参考:LaTeXグラフィックスコンパニオン:2000年、アスキー発行) プリアンブルで以下のように指定します。

\usepackage{colortbl}%% 常用するデバイスは\documentclassのオプションで指定

tabular環境の要素で\columncolor[オプション]{引数}を指定すれば列に色を付けることが出来ます。
LaTeXソースと出力例を示します。

\begin{tabular}{l>{\columncolor[gray]{0.75}}ll}%% 2列目を薄いgrayに
吾輩は猫である & 猫 & 夏目漱石 \\
山月記 & 虎 & 中島 敦 \\
羅生門 & 鬼 & 芥川 龍之介\\
\end{tabular}

また、\multicolumnの応用で特定のセルだけや、\rowcolor[オプション]{引数}で特定の行に色を付けることも出来ます。
LaTeXソースと出力例を示します。

\begin{tabular}{ll}
吾輩は猫である &\multicolumn{1}{>{\columncolor[named]{Cyan}}l}{夏目漱石}  \\%% このカラムのみCyanに
坊っちゃん & \\
\rowcolor[named]{Yellow}山月記 & 中島 敦 \\%% この行はYellowに
羅生門 & 芥川 龍之介\\<
\end{tabular}

tabular環境のセルを縦に結合するには

表組み(tabular環境)でセル(カラム)を横に結合するには\multicolumn{結合するセルの数}{書式}{中身}で出来ますが、縦方向に結合するにはmultrowパッケージを使用します。 プリアンブルで以下のように指定するだけです。

\usepackage{multirow}%

具体的にはtabular環境で\multirow{結合するセルの数}*{中身}とします。この場合罫線はそのまま残りますので\cline{引数}で適宜調整が必要です。 また\multicolumnと組み合わせることでセルの書式(属性)も指定できます。\multicolumn{結合するセルの数}{書式}{\multirow{結合するセルの数}*{中身}}のように中に入れます。

tabular環境のTips

tabularx環境でカラム属性の定義をするには

tabularx環境でX(可変長セル)以外に定義してあると便利なカラム属性は以下のように指定します。 (参考:LaTeXコンパニオン:1998年、アスキー発行、pp133--134)

\newcolumntype{R}{>{\raggedleft\arraybackslash}X}%% 可変長セルの右詰め
\newcolumntype{C}{>{\centering\arraybackslash}X}%% 可変長セルの中央揃え

番号付き箇条書き(enumerate環境)のカスタマイズ

番号付き箇条書き(enumerate環境)は、4段階まで入れ子に出来ます。 それぞれの番号はenumi、enumii、enumiii、enumivカウンタが用いられ\theenum?(番号)と\labelenum?(番号の体裁)が定義されておりpLaTeX2e新ドキュメントクラスのデフォルトは以下のとおりです。

第1階層\theenumi\arabic{enumi}\labelenumi\theenumi.
第2階層\theenumii\alph{enumii}\labelenumii\inhibitglue(\theenumii)\inhibitglue
第3階層\theenumiii\roman{enumiii}\labelenumiii\theenumiii.
第4階層\theenumiv\Alph{enumiv}\labelenumiv\theenumiv.

これらを再定義して変更することで体裁を変えられます。 番号付き箇条書き(第1階層)をOTFパッケージの丸数字にするには以下のようにします。

\renewcommand{\theenumi}{\ajLabel\ajMaru{enumi}}
\renewcommand{\labelenumi}{\theenumi}

enumerate環境の参照で親番号を表示させないようにするには

enumerate環境の第2階層以下で\labelを付け\refで参照すると親階層の番号も表示されます。 これを表示させないようにするには\p@enumii等を再定義します。

\makeatletter%% プリアンブルで再定義する際は必須

\renewcommand{\p@enumii}{\empty}%%  第2階層
\renewcommand{\p@enumiii}{\empty}%% 第3階層
\renewcommand{\p@enumiv}{\empty}%%  第4階層

\makeatother%% プリアンブルで再定義する際は必須

enumerate環境の行間を狭くするには

プリアンブル等で以下のように再定義します。 なおpLaTeX2e新ドキュメントクラスでは既に行間は狭く設定されているので不要です。

\makeatletter%% プリアンブルで再定義する際は必須

\renewenvironment{enumerate}%% enumerate 環境を再定義
  {\ifnum \@enumdepth >\thr@@\@toodeep\else% 
   \advance\@enumdepth\@ne
   \edef\@enumctr{enum\romannumeral\the\@enumdepth}%
   \list{\csname label\@enumctr\endcsname}{%
      \iftdir
         \ifnum \@listdepth=\@ne \topsep.5\normalbaselineskip
           \else\topsep\z@\fi
         % 元々ここにあった定義を...
         \labelwidth1zw \labelsep.3zw
         \ifnum \@enumdepth=\@ne \leftmargin1zw\relax
           \else\leftmargin\leftskip\fi
         \advance\leftmargin 1zw
      \fi
         \parskip\z@ \itemsep\z@ \parsep\z@% こちらに移動
         \usecounter{\@enumctr}%
         \def\makelabel##1{\hss\llap{##1}}}%
   \fi}{\endlist}

\makeatother%% プリアンブルで再定義する際は必須

箇条書き(itemize環境)のカスタマイズ

箇条書き(itemize環境)は、4段階まで入れ子に出来ます。 カウンタはありませんが記号が、それぞれ\labelitem?で定義されておりpLaTeX2e新ドキュメントクラスのデフォルトは以下のとおりです。

第1階層\labelitemi\textbullet
第2階層\labelitemii\normalfont\bfseries \textendash
第3階層\labelitemiii\textasteriskcentered
第4階層\labelitemiv\textperiodcentered

これらを再定義して変更することで体裁を変えられます。 たとえば箇条書きの第1階層を□にするには以下のようにします。

\renewcommand{\labelitemi}{}

itemize環境の行間を狭くするには

プリアンブル等で以下のように再定義します。 なおpLaTeX2e新ドキュメントクラスでは既に行間は狭く設定されているので不要です。

\makeatletter%% プリアンブルで再定義する際は必須

\renewenvironment{itemize}%% itemize 環境を再定義
{\ifnum \@itemdepth >\thr@@\@toodeep\else 
   \advance\@itemdepth\@ne
   \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
   \expandafter
   \list{\csname \@itemitem\endcsname}{%
      \iftdir
         \ifnum \@listdepth=\@ne \topsep.5\normalbaselineskip
           \else\topsep\z@\fi
         % 元々ここにあった定義を...
         \labelwidth1zw \labelsep.3zw
         \ifnum \@itemdepth =\@ne \leftmargin1zw\relax
           \else\leftmargin\leftskip\fi
         \advance\leftmargin 1zw
      \fi
         \parskip\z@ \itemsep\z@ \parsep\z@% こちらに移動
         \def\makelabel##1{\hss\llap{##1}}}%
   \fi}{\endlist}

\makeatother%% プリアンブルで再定義する際は必須

表題付き箇条書き(description環境)の行間を狭くするには

プリアンブル等で以下のように再定義します。 なおpLaTeX2e新ドキュメントクラスでは既に行間は狭く設定されているので不要です。

\makeatletter%% プリアンブルで再定義する際は必須

\renewenvironment{description}%% description 環境を再定義
  {\list{}{\labelwidth\z@ \itemindent-\leftmargin
   \iftdir
     \leftmargin\leftskip \advance\leftmargin3\Cwd
     \rightmargin\rightskip
     \labelsep=1zw% 元々ここにあった定義を...
   \fi
     \itemsep\z@% こちらに移動
     \listparindent\z@ \topskip\z@ \parskip\z@ \partopsep\z@% こちらに移動
           \let\makelabel\descriptionlabel}}{\endlist}

\makeatother%% プリアンブルで再定義する際は必須

楕円などをスムーズに描画するには

ascmac.sty\keytop等がガタガタになるのをスムーズに描画するにはpict2eパッケージを併用します。プリアンブルで以下のように指定します。

\usepackage{pict2e}%% 常用するデバイスは\documentclassのオプションで指定

罫線と囲みについてのTips

章(chapter)の体裁を変更するには

プリアンブル等で\@makechapterhead\@makeschapterheadを以下のように再定義します。

\makeatletter%% プリアンブルで再定義する際は必須

\def\@makechapterhead#1{\hbox{}%
  \vskip2\Cvs
  {\parindent\z@
   \raggedright% 左揃え(オリジナルの定義)
%  \centering% 中央揃え
%  \raggedleft% 右揃え
   \normalfont\huge\sffamily\gtfamily%% フォントを変更する
   \leavevmode
   \ifnum \c@secnumdepth >\m@ne
     \setlength\@tempdima{\linewidth}%
    \if@mainmatter% ← report クラスの場合この行不要
     \setbox\z@\hbox{\@chapapp\thechapter\@chappos\hskip1zw}%
     \addtolength\@tempdima{-\wd\z@}%
     \unhbox\z@\nobreak
    \fi% ← report クラスの場合この行不要
     \vtop{\hsize\@tempdima#1}%
   \else
     #1\relax
   \fi}\nobreak\vskip3\Cvs}
%
\def\@makeschapterhead#1{\hbox{}%
  \vskip2\Cvs
  {\parindent\z@
   \raggedright% 左揃え(オリジナルの定義)
%  \centering% 中央揃え
%  \raggedleft% 右揃え
   \normalfont\huge\sffamily\gtfamily%% フォントを変更する
   \leavevmode
   \setlength\@tempdima{\linewidth}%
   \vtop{\hsize\@tempdima#1}}\vskip3\Cvs}

\makeatother%% プリアンブルで再定義する際は必須

節(section)の体裁を変更するには

プリアンブル等で以下のように再定義します。 パラメータの意味はコメントを参考にして下さい。

\makeatletter%% プリアンブルで再定義する際は必須

\renewcommand{\section}{\@startsection{section}% #1 見出し
   {1}% #2 見出しのレベル
   {\z@}% #3 横組みの場合、見出し左の空き(インデント量)
   {1.5\Cvs \@plus.5\Cvs \@minus.2\Cvs}% #4 見出し上の空き
   {.5\Cvs \@plus.3\Cvs}% #5 見出し下の空き (負の値なら見出し後の空き) 
   {\normalfont\Large\sffamily\gtfamily}}% フォントを変更する: #6 見出しの属性
%  {\centering\normalfont\Large\bfseries}}% 中央揃え
%  {\raggedleft\normalfont\Large\bfseries}}% 右揃え

\makeatother%% プリアンブルで再定義する際は必須

小節(subsection)以下でも同様で、プリアンブル等で以下のように再定義します。

\makeatletter%% プリアンブルで再定義する際は必須

\renewcommand{\subsection}{\@startsection{subsection}{2}{\z@}%
   {1.5\Cvs \@plus.5\Cvs \@minus.2\Cvs}%
   {.5\Cvs \@plus.3\Cvs}%
   {\normalfont\large\sffamily\gtfamily}}%% フォントを変更する

\makeatother%% プリアンブルで再定義する際は必須

最終更新日: 2021年2月25日