豊原備忘録

意味わからん学生が書き物します

sectionで章を実装する

TeXの章はちょっとダサい

jsreportなどでchapterを使うと,ページの上に「第〇章」と表示され,その下にデカデカと章題が続く.これでは無駄に余白がある.たいていレポートなどでは章番号の横に章題が表示されることが多いので,それを実現したい.

死ぬほどうざい
方法

renewcommandでchapterやsection名を変更する方法がこちらに載っている.
qiita.com
この再定義を利用する.そのコマンドを以下に示す.

\makeatletter %sectionをchapterぽくする
\renewcommand{\presectionname}{}
\renewcommand{\postsectionname}{}%はコメントだが,ないとsection*{}でバグる
\renewcommand{\section}{ %
  \clearpage
  \@startsection{section}{1}{\z@}%
  {\Cvs \@plus.5\Cdp \@minus.2\Cdp}% 見出し前に付けられる空白量
  {.5\Cvs \@plus.3\Cdp}%
  {\normalfont\LARGE\headfont\raggedright}}%

(学校の講義資料から引っ張り出したのはナイショ)

やってみた
\documentclass[lualatex,js=standard,hiresbb,openany]{bxjsarticle}
\usepackage{luatexja}
\usepackage{geometry}

\makeatletter %sectionをchapterぽくする
\renewcommand{\presectionname}{}
\renewcommand{\postsectionname}{}%はコメントだが,ないとsection*{}でバグる
\renewcommand{\section}{ %
  \clearpage
  \@startsection{section}{1}{\z@}%
  {\Cvs \@plus.5\Cdp \@minus.2\Cdp}% 見出し前に付けられる空白量
  {.5\Cvs \@plus.3\Cdp}%
  {\normalfont\LARGE\headfont\raggedright}}%

\begin{document}

\section{aaa}
foo

\end{document}
コンパイル結果

やったぜ

筆者はLuaLaTeXエンジンとbxjsclassを使っているがほかのエンジンでもクラスでも問題はない.

追記

章番号のフォント違うことに気づいた.がそこは調べてどうにかしてほしい
\clearpageが新たに章を追加したときに強制改ページをする部品だ.必要じゃなければコメントアウトをするといい