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
出力
はぁい
さいごに
真剣佑になりたい.


