jlreq

これは何?

日本語組版処理の要件の実装を試みるLuaTeX-ja / pLaTeX / upLaTeX用のクラスファイルと,それに必要なJFMの組み合わせです.

提供されるもの

クラスファイルjlreq.clsと,横書きLuaTeX-ja用のJFMであるjfm-jlreq.luaが用意されています.また,縦書きのJFMやpLaTeX / upLaTeX 用のJFMを生成するいくつかのスクリプトがあります.

インストール

makeで必要なJFMを生成してください.その後,

と配置します.make installとすると,$TEXMF=$TEXMFHOMEとしてこのコピーを行います.

使い方

通常通り

\documentclass{jlreq}

とします.これで横書きのarticle相当の文書クラスとなります.エンジンは自動判定されますが,指定する場合はクラスオプションにplatex/uplatex/lualatexのいずれかを渡してください.縦書きにするにはtateオプションを渡します.また,reportやbook相当の文書クラスとするには,それぞれreportbookオプションを渡します.たとえば,縦書きの本を作成するには

\documentclass[tate,book]{jlreq}

とします.

その他,oneside / twoside / onecolumn / twocolumn / titlepage / notitlepage / draft / final / openright / openany / leqno / fleqnというよくあるオプションを受け付けます.

標準的な文書クラスと同じように中身を書くことができますが,次のような命令が追加 / 拡張されています.

\jlreqsetup

設定用命令です.プリアンブルでしか使えません.文書に対する設定は,クラスオプションとして行うか\jlreqsetupを通じて行うかします.どちらで設定するかは設定項目によります.

\section

\section*[running head]{見出し文字列}[副題]というように,通常の書式に加えて副題を受け付けられるように拡張されています.その他,\part(articleのみ),\chapter(book/reportのみ),\subsection\subsubsectionも副題を受け付けます.

abstract環境

プリアンブルにもかけるようになっています.プリアンブルに書かれた場合は,\maketitleとともに出力されます.二段組の場合は,段組にならず概要を出力することができます.

\sidenote

この命令は傍注の幅が正の時にのみ定義されます.デフォルトの基本版面ではこの幅は0に設定されています.従って\sidenoteは定義されません.後の基本版面の設定を参考にしてください.

\sidenoteは傍注(縦組みの場合は脚注)を出力します.内部では\marginparを使っています.デフォルトでは\footnoteと同様の書式となりますが,\jlreqsetupsidenote_type=symbolが指定されている場合,その書式は\sidenote{該当項目}{注}となります.たとえば

刊行できる\sidenote{原稿}{印刷などの方法により……}を入手する仕事である.

とします.後の説明も参照してください.

\endnote

後注を指定します.\footnoteと同様の書式です.デフォルトでは,注自身の出力は見出し直前に行われます.この動作は\jlreqsetupendnote_positionを渡すことで制御できます.詳しくは後の注関係の説明をご覧ください.また\theendnotesを実行するとその場に出力をします.

\warichu

割注を出力します.行分割位置などは自動で計算されます.(複数回のコンパイルが必要.)\warichu*ではこれらの位置を手動で指定できます.書式は

\warichu*{(一行目前) & (一行目後)\\ (二行目前) & (二行目後)...}

です.&が省略されている場合は自動で調整されます.

\tatechuyoko

縦中横を出力します.\tatechuyoko{<文字列>}とします.縦書きでない場所で使うとエラーになります.

\jafontsize

和文フォントサイズを指定する\fontsizeです.クラスオプションでjafontscale=0.9とされている場合,\fontsize{9pt}{15pt}とすると和文フォントのサイズは8.1ptとなりますが,\jafontsize{9pt}{15pt}とすると9ptとなります.(欧文フォントサイズは10ptとなる.)なお,第二引数は\fontsizeの第二引数と全く同じです.

\ 

全角空白(U+3000)一文字からなるマクロです.和文間隔を挿入します.LuaLaTeXでは のみでも和文間隔を入力できます.

その他

各種設計

設計はクラスオプションまたは\jlreqsetupによりkeyval形式で行います.以下では次の用法を使います.

基本版面

クラスオプションです.

組み方

クラスオプションです.

注関係

\jlreqsetupで指定します.

キャプション

図表のキャプションを\jlreqsetupで変更できます.

引用

quote / quotation / verse環境の挙動を\jlreqsetupで指定できます.

箇条書き

\jlreqsetupで指定します.

定理環境

\jlreqsetupで指定します.

見出し

見出しの設定は,\Declare***Headingという命令で行います(***には見出しの種類に応じた文字列が入る).書式はすべて

\Declare***Heading{<命令名>}{<レベル>}{<設定>}

となっています.また,\New***Heading\Renew***Heading\Provide***Headingも同時に用意されます.それぞれ\newcommand\renewcommand\providecommandに対応した動きをします.

扉見出し

\DeclareTobiraHeadingで作成します.通常のクラスファイルにおける\section等と同じ書式の命令ができます.設定は以下の通り.

別行見出し

\DeclareBlockHeadingで作成します.\<命令名>*[running head]{見出し文字列}[副題]という書式の命令を作成します.設定は以下の通り.

書式関連

インデント関連

その他

行取り

行取りの指定は以下のいずれかの方法で行うことができます.

連続して掲げる見出しの行取り

\SetBlockHeadingSpacesにより,見出しが連続して掲げられたときの行取りを設定することができます.\SetBlockHeadingSpaces

\SetBlockHeadingSpaces{
  {_part{lines=3,before_lines=1},_section{lines=2},_subsection{lines=2}}
  [lines=5]{_section,23pt,_subsection,16pt}
}

のように使います.

なお,見出しが連続しているかは単純に別行見出しの命令が並んで書かれているかのみで判断します.従ってそれらの命令間に出力には関係しないような命令が挟まっていたとしても,見出しが連続して掲げられているとは判断されません.ただし,見出し命令の間に空白または\labelのみが挟まれている場合は,見出しが連続していると判断されます.

同行見出し

\DeclareRuninHeadingで作成します.通常の文書クラスにおける\sectionと同様の,\<命令名>*[running head]{見出し文字列}という書式の命令が作成されます.設定は以下の通り.

窓見出し

\DeclareCutinHeadingで作成します.\<命令名>{見出し文字列}という書式の命令を作成します.設定は以下の通り.

\ModifyHeading

既に(上のどれかを使い)定義された見出し命令の設定を変更します.たとえば

\ModifyHeading{section}{lines=10}

とすると,\sectionのフォントなどの設定はそのままに,行取りのみが10行に変更されます.見出しの種類を変更することはできません.

\SaveHeading

見出し命令の定義を待避します.

\SaveHeading{section}{\restoresection} % \sectionの中身を\restoresectionに待避.
\RenewBlockHeading{section}{1}{font=……} % \sectionを新しく定義する.
……
\restoresection % \sectionの中身を元に戻す.

のように使います.

ページスタイル

\DeclarePageStyle{<ページスタイル名>}{<設定>}

によりページスタイルを定義することができます.<設定>はkeyval形式です.定義したページスタイルは\pagestyleで適用できます.設定は以下の通り.

\NewPageStyle\RenewPageStyle\ProvidePageStyleもあります.\ModifyPageStyleにより既存のページスタイルを改変することが可能です.

その他

ライセンス

このパッケージは二条項BSDライセンスの元で配布されています.詳しくはLICENSEをご覧ください.

履歴


Noriyuki Abe
https://github.com/abenori/jlreq