pLaTeX/upLaTeX用の和文文書クラスとして広く用いられているjsclassesクラス集ですが、最近(2017年2月)になって大きな機能拡張が行われました。従来あった「jsarticleクラス」と「jsbookクラス」に加えて、新たに**「jsreportクラス」**が利用できるようになりました。本記事では、この新しい「jsreportクラス」について解説します。
jsreportクラス、現る
従来のjsclassesには次の2つのクラスが含まれていました。
- jsarticleクラス: “article系”(章のないレポート用)
- jsbookクラス: “book系”(書籍用)
そして、“report系”(章のあるレポート用)のレイアウトを使いたい場合は、次のように「jsbookクラスにreport
オプションを付ける」ことが指示されていました1。
% reportオプションを付ける
\documentclass[report,a4paper,11pt]{jsbook}
これに対して、2017/02/13リリースの新しいjsclassesでは新たにreport系のクラスであるjsreportが提供されるようになりました。
- jsreportクラス: “report系”(章のあるレポート用)
\documentclass[a4paper,11pt]{jsreport}
この「jsreportクラス」は単に従来の「jsbook +report
」の名前を変えたものではなく、より「report系のクラスとして適切なレイアウト」になるように仕様修正がなされています。
※なお、従来の「jsbook+report
」については、従来の仕様のままで今後も用いることができます。
jsreportはabstractが違う
従来の「jsbookクラス+report
」と新設の「jsreportクラス」の違いは、abstract環境の意味とその挙動に関するものです。
文書を概要するabstract環境
一般のarticle系/report系のクラスにおいて、abstract環境は**「文書の概要を記述する」**ものであり、典型的には標題(\makatitle
)の直後に配置2されます。
% pLaTeX文書
\documentclass[a4paper]{jsarticle}
%...(略)...
\begin{document}
\maketitle % 標題
\begin{abstract}% "文章の"概要
近年,{\TeX}のアレ性への認識の共有が深まるにつれて,
{\TeX}の必要性を低減させるための技術(いわゆる「{\TeX}グッバイ」)
に対する需要が高まっている.
本研究では,Microsoft社の著名なワープロソフトである「Word」に
ついて,それを用いた「{\TeX}グッバイ」の可能性について考察する.
%...(略)...
\end{abstract}
%...(略)...
\end{document}
このような「文書概要」の形式は、書籍3では用いられないため、一般的なbook系の文書クラス(LaTeX標準のbookクラスなど)では、abstract環境は提供されないのが普通です。
章を概要するabstract環境
ところが、jsbookクラスでは特別に、abstract 環境を**「章の概要を記述する」**という別の目的をもつものとして提供しています。
% pLaTeX文書
\documentclass[a4paper]{jsbook}
%...(略)...
\begin{document}
%...(略)...
\chapter{{\TeX}言語に関する大事な注意}
%%%%↓"章の概要"を表すabstract環境
\begin{abstract}
{\TeX}言語危険、ダメゼッタイ。
大事なことなのでもう一度:{\TeX}言語危険、ダメゼッタイ!
\end{abstract}
{\TeX}言語は組版エンジン{\TeX}の動作を記述するための
プログラム言語である。
従って、{\TeX}言語を使うことで、{\TeX}の機能の全てを
直接扱うことが可能になる。
%...(略)...
\end{document}
jsreport、マジreport系
article系/report系のクラスとjsbookクラスではabstract環境の用途が異なることが解りました。それでは、jsclassesの新旧双方の「report系クラス」ではabstract環境はどちらの意味になるのでしょうか。答えは以下の通りです。
- jsbookクラス+
report
: abstract環境は「章の概要」用 - jsreportクラス: abstract環境は「文書の概要」用
「jsbookクラス+report
」は元がjsbookであることの影響のためか、abstract環境が「章の概要」用になっていました。しかし、report系である以上、本来は「文書の概要」用のabstract環境となるのが望ましいはずです。それが新しいjsreportクラスでは修正されている、というわけです。
まとめ
というわけで、jsclassesクラス集でreport系の文書を作る場合は、今後は(古い環境との互換が不要な限りは)新しい「jsreportクラス」を使いましょう!