maketitleって何ィ
latexにおいて,titleを出力するコマンドのことです.\title{}
や\author{}
などを使用して,属性を指定できます.
例えば,
\documentclass{article}
% タイトル、著者、日付を設定
\title{俺のちょうすげー論文}
\author{新田真剣佑}
\date{\today}
\begin{document}
% タイトルを出力
\maketitle
\end{document}
maketitleの出力フォーマットを変えたい
maketitleはどこで定義されている?
\makeltitle
で出力される内容は,クラスファイルの中で定義されています.クラスファイルってのは,
\documentclass{[ここで指定するやつ]}
です.ただ今回は,クラスファイルはそのままで,スタイルファイルを変更して\maketitle
をカスタマイズします.スタイルファイルは拡張子.sty
で\usepackeage{}
を使って読み込みます.
スタイルファイル内での再定義
コマンドの再定義には\renewcommand{[再定義するコマンド]}{[変更後の内容]}
を使います.\maketitle
を再定義したいので,
\renewcommand{\maketitle}{
[出力内容]
}
みたいにすればよいです.
属性の表示
デフォルトで定義されている場合
デフォルトで定義されている属性(\title{}
とか\author{}
)を\renewcommand
内で呼び出すには,\@[属性名]
を用います.ただし,Latexの識別子には,アットマーク@を使用できないため,\makeatletter
と\makeatother
で囲む必要があります.
例
\makeatletter
\renewcommand{\maketitle}{
\begin{center}
{\huge\bfseries\@title}
\vspace{1cm}
{\Large\@author}
\vspace{0.5cm}
{\@date}
\vspace{1cm}
\hrule
\end{center}
}
\makeatother
出力
こんな感じ
新しく属性を作成する場合
\newcommand
を使って以下のように定義します.
\makeatletter
\newcommand{\[作成する属性名]}{\gdef\@[作成する属性名]}
\[作成する属性名]{[デフォルト値]}
\makeatother
その上で,上記のように呼び出してください.
例
\makeatletter
\newcommand{\hobby}{\gdef\@hobby}
\hobby{}
\makeatother
\makeatletter
\renewcommand{\maketitle}{
\begin{center}
{\huge\bfseries\@title} \\ % タイトルを大きく、太字にする
\vspace{1cm}
{\Large\@author} \\ % 著者を少し大きくする
\vspace{0.5cm}
{\@date} \\ % 日付をそのまま表示
{趣味:\@hobby}
\vspace{1cm}
\hrule % タイトルの下に横線を引く
\end{center}
}
\makeatother
出力
はぁい
さいごに
真剣佑になりたい.