マクロツイーター

はてダから移行した記事の表示が崩れてますが、そのうちに直せればいいのに(えっ)

BXjscls の新しいやつ(v1.5a)

…がリリースされた。

なお、その一つ前の 1.5 版については、是非とも無かったことにしておこう。(えっ)

重要かもしれないお知らせ

bxjsreport の仕様がチョット変わる

jsclasses バンドルの文書クラスにおいて、従来「report クラス」に対応するものは「report オプションを付けた jsbook クラス」であったが、2017/02/24 の改訂で、新たに「jsreport クラス」が新設された。詳しくは以下の記事を参照されたい。

従来の「jsbook + report」は一部 book 系の仕様が残存しているのに対し、新しい jsreport クラスはより report 系クラスとして自然な仕様に改められている。従って、bxjsreport についても、将来的には jsreport クラスを継承することとする。具体的には次の通り。

  • 将来リリースされる 1.6 版より、bxjsreport クラスのレイアウトの継承の元を「jsbook + report」から jsreport クラスに変更する
layout オプション

以前(1.3 版)の jsbook のレイアウト変更の場合と同様に、bxjsreport クラスについて移行措置として layout オプションで新旧両方のレイアウトを選択できるようにした。

  • layout=v1: 「jsbook クラス + report」のレイアウトを継承する。現状ではこちらが既定値。現状のレイアウトを将来にわたって保持したい場合はこちらを指定ほしい。
  • layout=v2: 「jsreport クラス」のレイアウトを継承する。1.6 版以降はこちらが既定値になる予定。

※bxjsreport以外のクラスはこれとは無関係である。

実際に何が違うのか

両者の相違点は以下の通りである。これらの点においては、従来の「layout=v1」(jsbook + report 相当)は bxjsbook と同じ、新しい「layout=v2」(jsreport 相当)は bxjsarticle と同じ挙動になっている。

  1. abstract 環境の用途が異なる。詳細は先述の記事を参照。
    • layout=v1: 「章の概要」を表す。
    • layout=v2: 「文書の概要」を表す。
  2. 両面印刷用出力(twoside オプション)の際に、titlepage 環境開始時の改ページの挙動が異なる。*1
    • layout=v1: 奇数ページまで進む(右起こし)。
    • layout=v2: 単に改ページを行う。

従って、これらの機能を用いていない文書に関しては、今回のレイアウト変更についての対処は不要である。

なお、従来 bxjsreport で abstract 環境(章概要)を用いている場合は、代わりに後述の chapterabstract 環境を使うことで、layout=v2(1.6 版以降の既定)でも同じ出力を得ることができる。

chapterabstract 環境

jsbook クラスの「章の概要を記述する」abstract 環境と同じ機能を、bxjsreport/bxjsbook では新たに「chapterabstract 環境」として提供するようになった。従って、従来の bxjsreport で「章の概要」用の abstract 環境を利用していた場合でも、それを chapterabstract 環境に置き換えれば、layout=v2 のレイアウトにも対応可能となる。

% pLaTeX文書
\documentclass[platex,dvipdfmx,ja=standard,
  % v1.6以降は"layout=v2"が既定に変わる
  layout=v2,a4paper]{bxjsreport}
%...(略)...
\begin{document}
%...(略)...
\chapter{{\TeX}言語に関する大事な注意}

%%%%↓"章の概要"を表すchapterabstract環境
\begin{chapterabstract}
{\TeX}言語危険、ダメゼッタイ。
大事なことなのでもう一度:{\TeX}言語危険、ダメゼッタイ!
\end{chapterabstract}

{\TeX}言語は組版エンジン{\TeX}の動作を記述するための
プログラム言語である。
従って、{\TeX}言語を使うことで、{\TeX}の機能の全てを
直接扱うことが可能になる。
%...(略)...
\end{document}

なお、bxjsarticle と bxjsslide については、そもそも章(\chapter)が存在しないため、chapterabstract 環境は提供されない。abstract と chapterabstract の対応状況をまとめると以下のようになる。

クラス\環境abstractchapterabstract
bxjsarticle クラス文書の概要(無し)
bxjsslide クラス文書の概要(無し)
bxjsreport クラス文書の概要章の概要
bxjsbook クラス章の概要章の概要

その他諸々

  • pTeX-ng エンジンのサポートを始めた。platex-ng で文書をコンパイルする場合、エンジンオプションに platex-ng を指定する。
  • 「hyperref の文書情報の文字コード対策」(参照)について、「hyperref-enc=false」オプションでこの機能を無効化できる。
  • \setpagelayout 命令で(geometry のパラメタを用いて)ページレイアウトを設定した後に行われる「行長を全角幅の整数倍に丸める」について、「whole-zw-lines=false」オプションでこの機能を無効化できる。
  • jsclasses の 2017/03/05 版と同期した。openleft オプションが利用できる。

*1:なお、jsbook の仕様上の制限のため、report 指定時には常に oneside が仮定される(twoside を指定しても無視される)。このため、jsclasses においてはこの差異は存在しないことになる。