人の金で焼肉食べたい

気づいたら東大卒業してました.

卒論中間報告用の表紙をつくるLaTeXマクロを書いてみた

maketitleの再定義

実際にやったことはmaketitleを再定義しただけです.
奥村先生によるjsarticle.clsでは,maketitleはこんな感じで定義されています.

jsarticle.clsにおけるmaketitleの定義

\if@titlepage
  \newcommand{\maketitle}{%
    \begin{titlepage}%
      \let\footnotesize\small
      \let\footnoterule\relax
      \let\footnote\thanks
      \null\vfil
      \if@slide
        {\footnotesize \@date}%
        \begin{center}
          \mbox{} \\[1zw]
          \large
          {\maybeblue\hrule height0pt depth2pt\relax}\par
          \smallskip
          \@title
          \smallskip
          {\maybeblue\hrule height0pt depth2pt\relax}\par
          \vfill
          {\small \@author}%
        \end{center}
      \else
      \vskip 60\p@
      \begin{center}%
        {\LARGE \@title \par}%
        \vskip 3em%
        {\large
          \lineskip .75em
          \begin{tabular}[t]{c}%
            \@author
          \end{tabular}\par}%
        \vskip 1.5em
        {\large \@date \par}%
      \end{center}%
      \fi
      \par
      \@thanks\vfil\null
    \end{titlepage}%
    \setcounter{footnote}{0}%
    \global\let\thanks\relax
    \global\let\maketitle\relax
    \global\let\@thanks\@empty
    \global\let\@author\@empty
    \global\let\@date\@empty
    \global\let\@title\@empty
    \global\let\title\relax
    \global\let\author\relax
    \global\let\date\relax
    \global\let\and\relax
  }%
\else
  \newcommand{\maketitle}{\par
    \begingroup
      \renewcommand\thefootnote{\@fnsymbol\c@footnote}%
      \def\@makefnmark{\rlap{\@textsuperscript{\normalfont\@thefnmark}}}%
      \long\def\@makefntext##1{\advance\leftskip 3zw
        \parindent 1zw\noindent
        \llap{\@textsuperscript{\normalfont\@thefnmark}\hskip0.3zw}##1}%
      \if@twocolumn
        \ifnum \col@number=\@ne
          \@maketitle
        \else
          \twocolumn[\@maketitle]%
        \fi
      \else
        \newpage
        \global\@topnum\z@  % Prevents figures from going at top of page.
        \@maketitle
      \fi
      \plainifnotempty
      \@thanks
    \endgroup
    \setcounter{footnote}{0}%
    \global\let\thanks\relax
    \global\let\maketitle\relax
    \global\let\@thanks\@empty
    \global\let\@author\@empty
    \global\let\@date\@empty
    \global\let\@title\@empty
    \global\let\title\relax
    \global\let\author\relax
    \global\let\date\relax
    \global\let\and\relax
  }
  \def\@maketitle{%
    \newpage\null
    \vskip 2em
    \begin{center}%
      \let\footnote\thanks
      {\LARGE \@title \par}%
      \vskip 1.5em
      {\large
        \lineskip .5em
        \begin{tabular}[t]{c}%
          \@author
        \end{tabular}\par}%
      \vskip 1em
      {\large \@date}%
    \end{center}%
    \par\vskip 1.5em
    \ifvoid\@abstractbox\else\centerline{\box\@abstractbox}\vskip1.5em\fi
  }
\fi

くそ長いけど,要するに,\@title, \@author, \@dateとかをいろいろなコマンドを使っていいかんじに配置すればよいって感じでしょうか(適当)

で,実際にやってみました.

reportmacro.sty

\makeatletter
\def\thickhrulefill{\leavevmode \leaders \hrule height 1pt\hfill \kern \z@}

\def\papername#1{\def\@papername{#1}}
\def\professori#1{\def\@professori{#1}}
\def\professorii#1{\def\@professorii{#1}}
\def\professoriii#1{\def\@professoriii{#1}}


\def\classificationi#1{\def\@classificationi{#1}}
\def\classificationii#1{\def\@classificationii{#1}}
\def\classificationiii#1{\def\@classificationiii{#1}}
\def\department#1{\def\@department{#1}}
\def\studentid#1{\def\@studentid{#1}}


\renewcommand{\maketitle}{
    \thispagestyle{empty}
    \vspace*{6\baselineskip}
    \hrule height 2pt \par
    \vskip 0.5mm
    \hrule height 1pt \par
    \vskip 6mm
    \begin{center}
        \fontsize{50pt}{0pt}\selectfont \strut \@papername \par
    \end{center}
    \vskip 2mm
    \hrule height 1pt \par
    \vskip 0.5mm
    \hrule height 2pt \par

    \par
    \vskip 1cm
    \begin{center}
        \Huge \strut \@title \par
    \end{center}
    % \vskip 1cm
    \vspace*{8\baselineskip}
    \begin{center}
        \huge \@date \hskip .5zw 提出 \par \vskip 2mm
        \begin{tabular}{lll}
            \huge 指導教員 & \huge \@professori & \huge \@classificationi \\
            \if\@classificationii\empty
            \else
            \huge & \huge \@professorii & \huge \@classificationii \\
            \fi
            \if\@classificationiii\empty
            \else
            \huge & \huge \@professoriii & \huge \@classificationiii \\
            \fi
        \end{tabular}
        \par \vskip 2mm
        % \huge \strut 指導教員 \@professor 教授 \par \vskip 2mm
        \huge \@department \par \vskip 2mm
        \huge \@studentid \@author \par
    \end{center}
    \vfil
    \null
    \newpage
}

\makeatother

使用例

使用例はこちら.

\papername{卒業論文中間報告} % たいとる
\title{そつろんたいとる}  % 小タイトル??
\date{\today} % 日付(提出日)
\professori{professor name} % 指導教員の名前
\classificationi{教授} % 指導教員の職階(ここでは教授)
\professorii{associate professor name} % 2人目もかけるよ
\classificationii{准教授} % 2人目の指導教員の職階
\professoriii{} % 3人目とかいなければ空欄にしておけば出力しません
\classificationiii{} % 3人目とかいなければ空欄にしておけば出力しません
\department{チルノのパーフェクトさんすう学科} % 学科名とか
\studentid{00-xxxxxx} % 学生証番号
\author{おなまえ} % おなまえ

このページを参考にしたよ.

http://www.biwako.shiga-u.ac.jp/sensei/kumazawa/tex/titlepage.html

いろいろできそうなので,もっといい感じにできそうだったら教えてくれるとさいわいです.