diff options
Diffstat (limited to 'Master/texmf-dist/doc/latex/bxjscls')
-rw-r--r-- | Master/texmf-dist/doc/latex/bxjscls/LICENSE | 44 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/bxjscls/README | 81 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/bxjscls/README-ja.md | 124 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/bxjscls/README.md | 95 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/bxjscls/bxjsclasses.pdf | bin | 193480 -> 0 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.pdf | bin | 0 -> 714908 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.tex | 872 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/bxjscls/bxjscls.pdf | bin | 0 -> 891277 bytes |
8 files changed, 1116 insertions, 100 deletions
diff --git a/Master/texmf-dist/doc/latex/bxjscls/LICENSE b/Master/texmf-dist/doc/latex/bxjscls/LICENSE index 9f4021fc174..6fae9a04933 100644 --- a/Master/texmf-dist/doc/latex/bxjscls/LICENSE +++ b/Master/texmf-dist/doc/latex/bxjscls/LICENSE @@ -1,24 +1,30 @@ -$BK\%=%U%H%&%'%"$O(B MIT $B%i%$%;%s%9$N2<$GG[I[$5$l$^$9!#Cx:n8"$O:n<T$G$k!V(BZR$B!W$K(B -$BB0$7$^$9!#$^$?K\%=%U%H%&%'%"$OL5J]>Z$G$9!#(B +本ソフトウェアは修正BSDライセンス(The BSD 2-Clause License)の下で +配布されます。 +著作権は作者である「八登 崇之(別名 ZR)」に属します。 +また本ソフトウェアは無保証です。 -The MIT License +The BSD 2-Clause License -Copyright (c) 2010 ZR +Copyright (c) 2015 Takayuki YATO (aka. "ZR") +All rights reserved. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. +1. Redistributions of source code must retain the above copyright notice, +this list of conditions and the following disclaimer. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/Master/texmf-dist/doc/latex/bxjscls/README b/Master/texmf-dist/doc/latex/bxjscls/README deleted file mode 100644 index cbeaf5f90e8..00000000000 --- a/Master/texmf-dist/doc/latex/bxjscls/README +++ /dev/null @@ -1,81 +0,0 @@ -================================================== -== BXjscls バンドル v0.3a <2012/05/01> == -== by「ZR」(八登 崇之/Takayuki YATO)== -== <zrbabbler@yahoo.co.jp> == -================================================== -(This file is encoded in UTF-8,) - -■ 対応環境 - - ・UTF-8 直接入力が可能な日本語対応 LaTeX2e であれば、その日本語処理 - 機構と連携するコードを用意することでこのバンドルに含まれる文書クラス - を使用できる。現状では、このバンドルの作者により、次の環境に対する - 連携コードが用意されている。 - - XeLaTeX 0.997 版以降 + zxjatype 0.3 版以降 - (連携機構は zxjatype 自身に含まれるので、単に zxjatype の読込を - 行えば連携される) - - pLaTeX (ptexenc 版) または upLaTeX - (本バンドルに含まれる bxjsptex モジュールを利用する。方法は、 - 文書クラスのオプションに platex または uplatex を指定する。) - -■ 本ソフトウェアの作者のサイト - - En toi Pythmeni tes TeXnopoleos 〜電脳世界の奥底にて〜 - http://zrbabbler.sp.land.to/ - -■ インストール - - 本バンドルは DocStrip 形式ファイル bxjsclasses.dtx の形で提供されて - いて、ファイル抽出を行うことで文書クラスファイル等を得ることができる。 - ただし、ユーザの便宜のため、予め抽出したファイルと組版した説明文書を - バンドルに同梱したので、実際にはファイル抽出処理は不要である。 - - TDS 1.1 に従ったシステムでは、各ファイルを次の場所に移動する。 - ・*.cls, *.def → $TEXMF/tex/latex/bxjscls/ - - W32TeX を C:\usr\local にインストールした場合の例。 - ・*.cls, *.def - → C:\usr\local\share\texmf-local\tex\latex\bxjscls - - ・(参考)ファイル抽出の方法 - - 以下のコマンドを実行すると - bxjsarticle.cls, bxjsreport.cls, bxjsptex.def - の各ファイルが抽出される: - platex -kanji=utf8 bxjsclasses.dtx - または - xelatex bxjsclasses.dtx - - 以下のコマンドを実行すると解説文書 bxjsclasses.dvi が得られる。 - platex bxjsclasses.dtx (2 回実行) - ※ 現状では、解説文書は jsarticle クラスで作成しているので組版には - pLaTeX が必要である。 - --------------------------------------- - - まだ解説が書けておりません…。基本的な機能の説明については以下の Web - ページで行っていますのでそちらを参照してください。 - - BXjscls パッケージ - http://zrbabbler.sp.land.to/bxjscls.html - - 連携モジュールの仕様については解説文書 bxjsclasses.pdf の付録 A に - 述べられている。 - ----------------------------------------- - -■ 更新履歴 - -Version 0.3a <2012/05/01> - - 一部の用紙サイズオプション(b4paper 等)で、縦と横の長さを逆に - 指定していたのを修正した。 - -Version 0.3 <2010/08/15> - - (u)pLaTeX 用連携モジュールを追加。 - - jbase クラスオプションを追加。 - - base, jbase, mag を calc パッケージの数式で記述できるようにした。 - -Version 0.2 <2009/08/15> - - 最初の公開版。 - -W# EOF diff --git a/Master/texmf-dist/doc/latex/bxjscls/README-ja.md b/Master/texmf-dist/doc/latex/bxjscls/README-ja.md new file mode 100644 index 00000000000..5f38198fbf2 --- /dev/null +++ b/Master/texmf-dist/doc/latex/bxjscls/README-ja.md @@ -0,0 +1,124 @@ +BXjscls パッケージバンドル +========================== + +LaTeX: 全エンジン対応日本語文書クラス集 + +奥村晴彦氏作製の [pLaTeX2e 新ドキュメントクラス] の和文文書クラス集を +拡張したもの。元のクラスは (u)pLaTeX 専用であるが、こちらは pdfLaTeX / +XeLaTeX / LuaLaTeX の上でも日本語処理パッケージと連携して使用すること +ができる。 + +[pLaTeX2e 新ドキュメントクラス]: +(http://oku.edu.mie-u.ac.jp/~okumura/jsclasses/) + +### 前提環境 + + * TeX エンジン: pdfTeX / XeTeX / LuaTeX / pTeX / upTeX + - e-TeX 拡張は必須でない + - XeTeX は 0.997 版以降が必要 + * フォーマット: LaTeX + * DVI ウェア: 不問 + * 必須パッケージ: + - keyval + - calc + - geometry + * standard 和文ドライバで連携するパッケージ: + - (pdf)LaTeX の場合: + CJK / bxcjkjatype(v0.2c以降) + - XeLaTeX の場合: + xeCJK(v3.0以降) / zxjatype(v0.6以降) + - LuaLaTeX の場合: + LuaTeX-ja + * その他、場合により必須となるパッケージ: + - type1cm : `magstyle` が `real`/`xreal` である場合 + - pxchfon(v0.5以降): pLaTeX で `jafont` を指定した場合 + - zxjafont(v0.2a以降): XeLaTeX で `jafont` を指定した場合 + * エンジンが (u)pTeX 以外で、かつ和文ドライバが standard 以外の場合、 + そのエンジンに対応する日本語処理パッケージが必要となる。 + +### 構成物 + + * `bxjscls-manual.pdf`: ユーザ向け説明書 + * `bxjscls-manual.tex`: 上項のソースファイル + * `bxjscls.dtx`: DocStrip ソースファイル + * `bxjscls.ins`: DocStrip インストーラファイル + * `bxjscls.pdf`: DocStrip 文書(ソースコード説明書) + +※アーカイブ中に DocStrip からの生成ファイル(`*.cls`/`*.def`、一覧は +次節に後掲)が含まれる場合もある。 + +### インストール + +本パッケージバンドルは DocStrip 形式ファイルの形で提供されている。 + +アーカイブに文書クラスファイル(`*.cls`/`*.def`)が含まれていない場合 +は、以下のコマンドを実行して生成する。 + + luatex bxjscls.ins + +このコマンドにより次のファイル群が生成される。 + + * `bxjsarticle.cls`: BXJS版 article クラスファイル + * `bxjsbook.cls`: BXJS版 book クラスファイル + * `bxjsreport.cls`: BXJS版 report クラスファイル + * `bxjsslide.cls`: BXJS版 slide クラスファイル + * `bxjsja-minimal.def`: minimal 和文ドライバファイル + * `bxjsja-standard.def`: standard 和文ドライバファイル + +その後、各ファイルを次の場所に移動する。 +(TDS 1.1 に従ったシステムの場合。) + + - `*.cls`/`*.def` → $TEXMF/tex/latex/bxjscls/ + - `*.dtx`/`*.ins` → $TEXMF/source/latex/bxjscls/ + - `*.pdf`/`*.tex` → $TEXMF/doc/latex/bxjscls/ + +その後、(必要に応じて)`mktexlsr` を実行する。 + +#### (参考)説明書文書のコンパイル + +アーカイブに含まれる説明書の PDF 文書は以下のコマンドによって生成 +されたものである。 + + * `bxjscls-manual.pdf` ← `lualatex bxjscls-manual.tex` + * `bxjscls.pdf` ← `lualatex bxjscls.dtx` + +### 使用方法 + +ユーザ向け説明書 `bxjscls-manual.pdf` を参照されたい。 + +### ライセンス + +修正BSDライセンス(The BSD 2-Clause License)の下で配布される。 + +更新履歴 +-------- + + * Version 1.0 [2015/08/05] + - bxjsreport と bxjsslide クラスを提供する。 + - `jafont` オプションを追加。 + - `nopapersize` オプションを追加。 + - hyperref 対策を追加。 + - microtype 対策を追加。 + - `\ifdraft` の定義を遅延させる。 + - その他もろもろ。 + * Version 0.9 [2013/10/03] + - LuaTeX-ja との連携をサポート。 + - `magstyle`、`(no)zw`、`(no)js` オプションを追加。 + - “和文ドライバ”の概念を採用して、ソースコードの構成を + 大幅に変更した。 + * Version 0.4 [2013/08/03] + - CJK + bxcjkjatype との連携を追加。 + * Version 0.3a [2012/05/01] + - 一部の用紙サイズオプション(`b4paper` 等)で、縦と横の長さを + 逆に指定していたのを修正した。 + * Version 0.3 [2010/08/15] + - (u)pLaTeX 用連携モジュールを追加。 + - `jbase` クラスオプションを追加。 + - `base`, `jbase`, `mag` を calc パッケージの数式で + 記述できるようにした。 + * Version 0.2 [2009/08/15] + - 最初の公開版。 + +-------------------- +Takayuki YATO (aka. "ZR") +http://zrbabbler.sp.land.to/ diff --git a/Master/texmf-dist/doc/latex/bxjscls/README.md b/Master/texmf-dist/doc/latex/bxjscls/README.md new file mode 100644 index 00000000000..508ec55ca01 --- /dev/null +++ b/Master/texmf-dist/doc/latex/bxjscls/README.md @@ -0,0 +1,95 @@ +BXjscls Package +=============== + +LaTeX: Japanese document class collection for all major engines + +This package provides an extended version of the Japanese document +class collection provided by [jsclasses package]. While the original +version supports only pLaTeX and upLaTeX, the extended version also +supports pdfLaTeX, XeLaTeX and LuaLaTeX, with the aid of suitable +packages that provide capability of Japanese typesetting. + +[jsclasses package]: (https://www.ctan.org/pkg/jsclasses) + +### SYSTEM REQUIREMENTS + + * TeX engine: pdfTeX, XeTeX, LuaTeX, pTeX, or upTeX. + - e-TeX extension is not needed. + - XeTeX must be of version 0.997 or later. + * TeX format: LaTeX. + * DVIware: Anything. + * Prerequisite packages: + - keyval + - calc + - geometry + * Packages that the standard ja-driver cooperates with: + - On (pdf)LaTeX: + CJK + bxcjkjatype (v0.2c+) + - On XeLaTeX: + xeCJK (v3.0+) + zxjatype (v0.6+) + - On LuaLaTeX: + LuaTeX-ja + * Other packages required on occasion: + - type1cm: when `magstyle` is `real`/`xreal` + - pxchfon (v0.5+): when `jafont` is used on pLaTeX + - zxjafont (v0.2a+): when `jafont` is used on XeLaTeX + * When you use ja-drivers other than standard, you generally need + packages for processing Japanese documents that the employed + combination of the ja-driver and the engine supports. + +### PACKAGE CONTENT + + * `bxjscls-manual.pdf`: the user manual + * `bxjscls-manual.tex`: the source file for the above + * `bxjscls.dtx`: the DocStrip source file + * `bxjscls.ins`: the DocStrip installer file + * `bxjscls.pdf`: the DocStrip document (source code description) + +### INSTALLATION + +This package bundle is provided in the form of a DocStrip file. + +First, run the command to create some files: + + luatex bxjscls.ins + +This command will generate the following files: + + * `bxjsarticle.cls`: the BXJS-flavored article class file + * `bxjsbook.cls`: the BXJS-flavored book class file + * `bxjsreport.cls`: the BXJS-flavored report class file + * `bxjsslide.cls`: the BXJS-flavored slide class file + * `bxjsja-minimal.def`: the `minimal` ja-driver file + * `bxjsja-standard.def`: the `standard` ja-driver file + +After that, move the files as follows (in a system compliant to +TDS 1.1): + + - `*.cls`/`*.def` → $TEXMF/tex/latex/bxjscls/ + - `*.dtx`/`*.ins` → $TEXMF/source/latex/bxjscls/ + - `*.pdf`/`*.tex` → $TEXMF/doc/latex/bxjscls/ + +And rehash your TEXMF trees if necessary. + +### USAGE + +Please refer to the user manual `bxjscls-manual.pdf`. +Unfortunately, the manual is available only in Japanese.... + +### LICENSE + +This package is distributed under the BSD 2-Clause License. + +Revision History +---------------- + + * Version 1.0 [2015/08/05] + * Version 0.9 [2013/10/03] + * Version 0.4 [2013/08/03] + * Version 0.3a [2012/05/01] + * Version 0.3 [2010/08/15] + * Version 0.2 [2009/08/15] + +-------------------- +Takayuki YATO (aka. "ZR") +http://zrbabbler.sp.land.to/ diff --git a/Master/texmf-dist/doc/latex/bxjscls/bxjsclasses.pdf b/Master/texmf-dist/doc/latex/bxjscls/bxjsclasses.pdf Binary files differdeleted file mode 100644 index 719eafb8c47..00000000000 --- a/Master/texmf-dist/doc/latex/bxjscls/bxjsclasses.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.pdf b/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.pdf Binary files differnew file mode 100644 index 00000000000..400946b6ecb --- /dev/null +++ b/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.pdf diff --git a/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.tex b/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.tex new file mode 100644 index 00000000000..c118f9da86b --- /dev/null +++ b/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.tex @@ -0,0 +1,872 @@ +% 文字コードは UTF-8 +% lualatex で組版する +\documentclass[a4paper]{ltjsarticle} +\usepackage{url} +\usepackage{metalogo} +\usepackage{shortvrb} +\MakeShortVerb{\|} +\newcommand{\PkgVersion}{1.0} +\newcommand{\PkgDate}{2015/08/05} +\newcommand{\Pkg}[1]{\textsf{#1}} +\newcommand{\Meta}[1]{$\langle$\mbox{}#1\mbox{}$\rangle$} +\newcommand{\Note}{\par\noindent ※} +\newcommand{\Means}{:\ } +\newcommand{\jemph}{\textsf} +\newcommand{\Ord}[1]{#1$^\circ$} +\newcommand{\Prn}[1]{\<(#1)\<} +\providecommand{\pTeX}{p\TeX} +\providecommand{\pLaTeX}{p\LaTeX} +\providecommand{\upTeX}{u\pTeX} +\providecommand{\upLaTeX}{u\pLaTeX} +\providecommand{\pdfLaTeX}{pdf\LaTeX} +%----------------------------------------------------------- +\begin{document} +\title{\Pkg{BXjscls} パッケージ\\ + (BXJS文書クラス集)\\ + ユーザマニュアル} +\author{八登崇之\ (Takayuki YATO; aka.~``ZR'')} +\date{v\PkgVersion\quad[\PkgDate]} +\maketitle + +%=========================================================== +\section*{注意} + +このマニュアルは\textgt{暫定版}であり、内容に不完全な点がある。 + +BXJS文書クラスについては、“{\TeX} Wiki”中の記事、 +\footnote{\url{http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?BXjscls}}% +およびそこからたどれるサイトにある情報も参照してほしい。 + +%=========================================================== +\section{概要} +\label{sec:Ovewview} + +本パッケージに含まれる文書クラス集 +(以下では\jemph{BXJS(文書)クラス}と呼ぶ) +は、奥村晴彦氏製作の「p{\LaTeXe}新ドキュメントクラス」 +(以下では\jemph{JS(文書)クラス}と呼ぶ) +の拡張版に相当する。 +JSクラスのレイアウトデザインと機能をほぼ踏襲しているが、 +以下の点で改良が加えられている。 +\begin{itemize} +\item JSクラスは{\pLaTeX}と{\upLaTeX}のみをサポートするが、 + BXJSクラスはこれらに加えて{\pdfLaTeX}と{\XeLaTeX}と{\LuaLaTeX}を + サポートしており主要エンジンの全てで使用可能である。 +\item (u){\pLaTeX}以外では各々のエンジンの日本語処理パッケージを + 利用するが、“標準設定”を用いることで、それらのパッケージの + 設定を書かずに済ませられるので、{\pLaTeX}並に簡単に日本語の + 文書を書き始めることができる。 +\item JSクラスでは、フォントのオプティカルサイズを最適にするため、 + (基底フォントサイズが10pt以外の時に){\TeX}の版面拡大(mag)機能を + 利用しているが、これが他のパッケージと衝突して + 不具合を起こすことがある。 + BXJSクラスではmag機能を使う他に別の方式を選べるようにしている。 +\item 用紙サイズや基底フォントサイズについて、任意の値を指定する + ことができる。 +\end{itemize} + +%=========================================================== +\section{最も基本的な使い方} +\label{sec:Basic} + +ここでは、BXJSクラスを“標準設定”(standard和文ドライバ)で +用いる場合について解説する。 +この場合、|\documentclass| 命令を次のように書く。 +\footnote{もちろんクラスオプションの順序は任意である。}% + +\begin{quote} +|\documentclass[|\Meta{エンジン}|,|\Meta{ドライバ}% +|,ja=standard,jafont=|\Meta{フォント指定}|,|\Meta{他オプション}|]|\\ +| {|\Meta{クラス名}|}| +\end{quote} + +\begin{itemize} +\item \Meta{エンジン}の指定は必須で、実際に使っている + 「{\LaTeX}のコマンド名」を書く。 + |latex|、|platex|、|uplatex|、 + |pdflatex|、|xelatex|、|lualatex|が指定できる。 +\item DVI出力のエンジンを使う場合は、\Meta{ドライバ}の指定が必須で、 + これは実際に使っている「DVIウェアの名前」を書く。 + |dvips|、|dvipdfmx|、|dviout|、|xdvi|が指定できる。 + PDF出力のエンジンの場合は\Meta{ドライバ}の指定は不要である。 +\item “標準設定”を適用するので |ja=standard| を指定する。 + (|ja| の代わりに |jadriver| と書いてもよい。) +\item 既定以外のフォント設定を利用する場合は、\Meta{フォント指定}に + その名前を書く。 + 既定の設定を用いる場合は |jafont=...| 自体を省略する。 +\item その他のクラスオプション(|a4paper| 等)については、 + 多くの場合JSクラスと同じものが使える。 +\item BXJSクラスについて、\Meta{クラス名}は以下のものがある。 + \begin{itemize} + \item \Pkg{bxjsarticle}\Means 章のないレポート + (\Pkg{jsarticle}に相当する) + \item \Pkg{bxjsreport}\Means 章のあるレポート + (\Pkg{jsbook}\,+\,|report| に相当する) + \item \Pkg{bxjsbook}\Means 書籍 + (\Pkg{jsbook}に相当する) + \item \Pkg{bxjsslide}\Means スライド + (\Pkg{jsarticle}\,+\,|slide|に相当する) + \end{itemize} +\end{itemize} + +{\XeLaTeX}で\Pkg{bxjsarticle}クラスを用いた文書の例を示す。 +\footnote{組版結果における日付の出力はJSクラスと同様の +「2015年7月3日」の形式になる。}% + +\begin{quote}\small\begin{verbatim} +\documentclass[a4paper,xelatex,ja=standard]{bxjsarticle} +\usepackage[unicode,colorlinks, + pdftitle={いきなり日本語}]{hyperref} +\title{いきなり日本語} +\author{七篠 権兵衛} +\begin{document} +\maketitle + +\section{日本語で{\LaTeX}する} +中身はまだない。 + +\end{document} +\end{verbatim}\end{quote} + +以下では各エンジンについて、挙動を少し詳しく説明する。 + +%------------------- +\subsection{{\pLaTeX}の場合} + +例えば次の設定は: + +\begin{quote}\small\begin{verbatim} +\documentclass[a4paper,platex,dvipdfmx,ja=standard]{bxjsarticle} +\end{verbatim}\end{quote} + +対応するJSクラスを用いた次の設定と(ほぼ)等価になる +\footnote{すなわち、論理フォントは明朝がjis、 +ゴシックがjisgが使われる。 +なお、BXJSでは |mingoth| 等の論理フォント変更の +オプションはサポートされていない。}: + +\begin{quote}\small\begin{verbatim} +\documentclass[a4paper,dvipdfmx]{jsarticle} +\end{verbatim}\end{quote} + +次のように |jafont| を指定した場合は: + +\begin{quote}\small\begin{verbatim} +\documentclass[a4paper,platex,dvipdfmx,ja=standard,jafont=ms]{bxjsarticle} +\end{verbatim}\end{quote} + +その値をプリセットオプションとして\Pkg{pxchfon}が読み込まれる: + +\begin{quote}\small\begin{verbatim} +\documentclass[a4paper,dvipdfmx]{jsarticle} +\usepackage[ms]{pxchfon} +\end{verbatim}\end{quote} + +%------------------- +\subsection{{\upLaTeX}の場合} + +例えば次の設定は: + +\begin{quote}\small\begin{verbatim} +\documentclass[a5paper,uplatex,dvipdfmx,ja=standard]{bxjsarticle} +\end{verbatim}\end{quote} + +次の設定と(ほぼ)等価になる +\footnote{論理フォントについては、従来のもの + (明朝がupjisr-h、ゴシックがupjisg-h) + に代わって、BMP外の文字に対応したもの + (明朝がupjpnrm-h、ゴシックがupjpngt-h) + を採用した。 + 組み方は従来のものと変わらない。}: + +\begin{quote}\small\begin{verbatim} +\documentclass[uplatex,a4paper,dvipdfmx]{jsarticle} +\end{verbatim}\end{quote} + +|jafont| オプションの扱いは{\pLaTeX}の場合と同じである。 + +%------------------- +\subsection{{\pdfLaTeX}の場合} + +エンジン指定が |pdflatex| の場合、 +日本語処理パッケージとして\Pkg{bxcjkjatype} +(これ自体は内部で\Pkg{CJK}パッケージを読み込む) +を利用する。 + +例えば次の設定は: + +\begin{quote}\small\begin{verbatim} +\documentclass[a4paper,pdflatex,ja=standard]{bxjsarticle} +\end{verbatim}\end{quote} + +次の設定と大体同じであるが、ただし文書レイアウトは +\Pkg{article}でなく\Pkg{jsarticle}とほぼ同じになっている: + +\begin{quote}\small\begin{verbatim} +\documentclass[a4paper]{article} +\usepackage[whole,autotilde]{bxcjkjatype} +\end{verbatim}\end{quote} + +|jafont| を指定した場合は: + +\begin{quote}\small\begin{verbatim} +\documentclass[a4paper,pdflatex,ja=standard,jafont=ipaex]{bxjsarticle} +\end{verbatim}\end{quote} + +その値が\Pkg{bxcjkjatype}のフォントプリセットになる。 + +\begin{quote}\small\begin{verbatim} +\documentclass[a4paper]{article} +\usepackage[whole,autotilde,ipaex]{bxcjkjatype} +\end{verbatim}\end{quote} + +\Note 補足: +\begin{itemize} +\item 自動的に文書本体が |CJK*| 環境 + \footnote{\Pkg{CJKspace}パッケージが読み込まれた下での |CJK*| + 環境である。}% + で囲まれかつ |\CJKtilde| が有効な状態になっている。 + 従っていきなり日本語を書き始めることができる。 + ただし和欧文間空白(四分空き)は手動で |~| を入れる必要がある。 + \footnote{\Pkg{CJK}パッケージには自動で和欧文間空白を入れる + 機能はない。}% + 日本語出力の挙動の詳細については\Pkg{bxcjkjatype}のマニュアルを + 参照してほしい。 + 以下に完全な文書ソースの例を示す: +\begin{quote}\small\begin{verbatim} +\documentclass[a4paper,pdflatex,ja=standard]{bxjsarticle} +\begin{document} +日本語で~pdf{\LaTeX}~するテスト。 +\end{document} +\end{verbatim}\end{quote} +\item BXJSクラスでは(JSクラスと同様に)通常は和文に約92.5\%の + スケールを施している。 + ところが、\Pkg{CJK}パッケージは「和文のスケール」をサポートしていない。 + このため、エンジンが |pdflatex| の場合は他の場合と比べて和文が大きめに + 出力される。 +\footnote{同じ理由で、|pdflatex| では |scale| オプションも無効になる。}% +\item \Pkg{bxcjkjatype}パッケージにおけるフォントの既定設定は + 「Type1形式のIPAexフォント」(\Pkg{ipaex-type1}パッケージ)である。 + 一方、|ipaex| プリセットを指定した場合は + 「TrueType形式のIPAexフォント」が使われるので、両者の出力は + “PDFデータとしては”異なる(見かけは同じのはずだが)。 + \footnote{ちなみに、\Pkg{bxcjkjatype}には |ipaex-type1| という + オプションもあるが、この設定と既定設定(オプション無し)も + 動作は異なる。 + BXJSクラスが用いるのは既定設定の方である。}% +\end{itemize} + +%------------------- +\subsection{{\XeLaTeX}の場合} + +エンジン指定が |xelatex| の場合、 +日本語処理パッケージとして\Pkg{zxjatype} +(これ自体は内部で\Pkg{xeCJK}パッケージを読み込む) +を利用する。 + +例えば次の設定は: + +\begin{quote}\small\begin{verbatim} +\documentclass[a4paper,twocolumn,xelatex,ja=standard]{bxjsarticle} +\end{verbatim}\end{quote} + +次の設定と大体同じであるが、ただし文書レイアウトは +\Pkg{jsarticle}とほぼ同じになっている: + +\begin{quote}\small\begin{verbatim} +\documentclass[a4paper,twocolumn]{article} +\usepackage{zxjatype} +\setCJKmainfont[BoldFont=IPAexGothic]{IPAexMincho}% 明朝→IPAex明朝 +\setCJKsansfont[BoldFont=IPAexGothic]{IPAexGothic}% ゴシック→IPAexゴシック +\end{verbatim}\end{quote} + +|jafont| を指定した場合は: + +\begin{quote}\small\begin{verbatim} +\documentclass[a4paper,xelatex,ja=standard,jafont=ms]{bxjsarticle} +\end{verbatim}\end{quote} + +その値が\Pkg{zxjafont}のプリセットになる。 + +\begin{quote}\small\begin{verbatim} +\usepackage{zxjatype} +\usepackage[ms]{zxjafont} +\end{verbatim}\end{quote} + +%------------------- +\subsection{{\LuaLaTeX}の場合} + +エンジン指定が |lualatex| の場合、 +日本語処理パッケージとして\Pkg{\LuaTeX-ja}を利用する。 + +例えば次の設定は: + +\begin{quote}\small\begin{verbatim} +\documentclass[b5paper,9pt,lualatex,ja=standard]{bxjsarticle} +\end{verbatim}\end{quote} + +次の設定と(ほぼ)等価になる +(ただし\Pkg{luatexja-preset}は実際には読み込まれない): + +\begin{quote}\small\begin{verbatim} +\documentclass[b5paper,9pt]{ltjsarticle} +\usepackage{luatexja-fontspec} +\usepackage[ipaex]{luatexja-preset} +\end{verbatim}\end{quote} + +|jafont| を指定した場合は: + +\begin{quote}\small\begin{verbatim} +\documentclass[b5paper,lualatex,ja=standard,jafont=ms]{bxjsarticle} +\end{verbatim}\end{quote} + +次の設定と(ほぼ)等価になる: + +\begin{quote}\small\begin{verbatim} +\documentclass[b5paper]{ltjsarticle} +\usepackage{luatexja-fontspec} +\usepackage[ms]{luatexja-preset} +\end{verbatim}\end{quote} + +\Note 補足: + +\begin{itemize} +\item \Pkg{luatexja-preset}パッケージの読込が行われるのは |jafont| を + 指定した場合に限られる。 +\end{itemize} + +%------------------- +\subsection{注意事項} + +主にJSクラスとの違いについての注意。 + +\begin{itemize} +\item ページレイアウトについて、JSクラスの設計思想を受け継いで + いるが、全く同じになるわけではない。 +\item JSクラスの一部のオプションで、 + BXJSクラスでは使用不可能なものがある。 + (\ref{ssec:JS-deleted-option}節参照。) +\item BXJSクラスではページレイアウトを設定するために + 内部で\Pkg{geometry}パッケージを読み込んでいる。 + そのため、後からユーザが\Pkg{geometry}を読み込むことはできない。 + ページレイアウトを変更する場合は、BXJSクラスが用意している + 再設定用の命令(\ref{ssec:page-layout}節参照)か、または + \Pkg{geometry}パッケージが提供する再設定用命令(|\geometry| 等) + を利用する。 +\item \Pkg{hyperref}パッケージにおける“PDFの文字コード”の設定は + エンジンごとに適切な値が異なっていて複雑であり、 + これが不適切であるためにPDF文書情報(しおり等)が文字化けして + しまう事例が数知れない。 + そこで、文書クラス側でエンジン毎に適切な設定を予め行う + ようにした。 + \footnote{従って、(u){\pLaTeX}において、ほとんどの場合に + \Pkg{pxjahyper}パッケージを読み込む必要がない。 + ただし読み込んでも構わないし、必要な場合もある。}% + (ただし文書クラスが\Pkg{hyperref}を読み込むわけではない。) +\item |jafont| が無い場合の“既定のフォント設定”は多くのエンジンに + おいて「IPAexフォント使用」であるが、(u){\pLaTeX}だけは異なっていて + 「何も指定しない状態」(JSクラスと同様)である。 + すなわち実際に使われる物理フォントの選択はDVIウェアの設定に + 委ねられている。 +\item JSクラスは |\ifdraft| という公開名のスイッチ + \footnote{スイッチなので{\LaTeX}レベルの命令ではない。 + 標準クラスではこれに相当するものは |\if@draft| という非公開の + 制御綴で定義されている。}% + を用いているが、これは\Pkg{ifdraft}パッケージと衝突する。 + そこでBXJSクラスでは代わりに |\ifjsDraft| の名前を + 用い、本文開始時に |\ifdraft| が未定義の場合に限り、 + |\ifjsDraft| を |\ifdraft| にコピーする処理にしている。 +% TODO: \@ptsize の話 +\end{itemize} + +%=========================================================== +\section{クラスオプション} +\label{sec:Class-Option} + +%------------------- +\subsection{BXJSクラスに特有のオプション} +\label{ssec:BXJS-specific-option} + +JSクラスには無くBXJSクラスで追加されたクラスオプション。 + +\begin{itemize} +\item エンジンオプション\Means + 実際に使用するエンジン({\LaTeX}コマンド名)を指定する。 + 有効な値は |latex|、|platex|、|uplatex|、|pdflatex|、|xelatex|、 + |lualatex| である。 + エンジンオプション(と次項の |autodetect-engine| の何れか) + の指定は必須である。 +\item |autodetect-engine|\Means + 使用しているエンジンを判定して、自動的に適切なエンジンオプションを + 設定する。 + \footnote{実はエンジンの判定は常に行っていて、エンジンオプションが + 指定された場合はそれが正しいかを検査して、誤りの場合はエラーを + 出すようにしている。}% + \Note BXJSクラスの設計の思想としては、 + 「{\LaTeX}文書がどのエンジンでコンパイルすべきものかは + ソース中に明示されるべき」と考えていて、 + 従って、“人間が普通に”文書を作る際にはこのオプションの + 使用は推奨されない。 + このオプションは“{\LaTeX}ソースの自動生成”が絡む処理を念頭において + 用意されている。 +\item ドライバオプション\Means + DVI出力のエンジンを用いる場合に、実際に使用するDVIウェアの名前を + 指定する。 + 有効な値は |dvips|、|dvipdfmx|、|dviout|、|xdvi|、そして特殊な + 値として |dvipdfmx-if-dvi| がある。 + これは「エンジンがDVI出力の場合に限り |dvipdfmx| を指定する」 + ことを表すもので、|autodetect-engine| と一緒に使うことが + 想定されている。 + \footnote{「実際に |dvipdfmx| が指定された」場合は、 + |dvipdfmx| がグローバルオプションとしても働く。}% + ドライバオプションの指定は必須である。 +\item |nopapersize|\Means + “papersize special出力”を抑止する。 + (JSクラスとは異なり、special出力のオプション |papersize| + は既定で有効である。) + \Note papersize specialを出力する他のパッケージとの干渉に + 対する対策。 +\item |zw|(既定)\Means + |\jsZw| と等価な命令として |\zw| を定義する。 +\item |nozw|\Means + |zw| の否定。 + \Note 命令名の衝突に対する対策。 +\item |js|(既定)\Means + JSクラス(例えば\Pkg{bxjsreport}の場合は\Pkg{jsbook}) + が読込済であるように振舞う。 + \Note 「JSクラスであるかによって挙動を変える」 + パッケージに対する対策。 +\item |nojs|\Means + |js| の否定。 + \Note つまり「JSクラスの一種である」と判定されると不都合な場合に + このオプションを指定する。 +\item |ja=|\Meta{名前}\Means + 使用する和文ドライバの名前を指定する。 + (詳細は\ref{sec:Ja-Driver}節を参照。) + 標準で提供されている和文ドライバには |minimal| と |standard| がある。 + 既定値は、エンジンが |platex| か |uplatex| の時は |standard|、 + それ以外は |minimal|。 +\item |jadriver=|\Meta{名前}\Means + 「|ja=|\Meta{名前}」の(0.9版以前で使われていた)別名。 +\item |jafont=|\Meta{名前}\Means + “和文フォントプリセット指定”の名雨を設定する。 +\item |japaram=|\Meta{値}\Means + “和文ドライバパラメタ”の値を設定する。 + \Note |jafont| と |japaram| の値がどのように解釈されるかは + 和文ドライバの仕様次第である。 + minimal和文ドライバではこの2つの値は全く参照されない。 + \ref{sec:Basic}節で解説した通り、standard和文ドライバでは |jafont| + の値が利用される。 + 現状では |japaram| は参照されない。 +\item |base=|\Meta{長さ}\Means + 基底フォントサイズ(|\normalsize| のフォントのサイズ)を指定する。 + JSクラスの |10pt|、|11pt| 等と同じ役割で、任意の値を指定できる。 + 基底フォントサイズの既定値は10\,ptである。 + \Note |##pt| の形のオプションには名前と実際に設定される値が + ずれているものが多く、例えば |11pt| は10.95\,pt、 + |14pt| は 14.4\,pt が実際の設定値である。 + \footnote{これは昔の{\LaTeX}の“magstep”の習慣に由来する。}% + これに対して |base=14pt| は文字通り14\,ptを設定する。 +\item |jbase=|\Meta{長さ}\Means + 和文を基準にして基底フォントサイズを指定する。 + すなわち和文フォントの |\normalsize| のサイズを指定の長さとする。 + \footnote{この場合に決定されるmag値は和文スケール値にも依存する + ことに注意。}% +\item |scale=|\Meta{実数}\Means + 和文スケール値を設定する。 + 既定値は 0.924715(= 13\,Q/10\,pt)である。 + \footnote{これはJSクラスの設計に基づく値である。 + ただし実装の都合で、JSクラスの実際のスケール値はこれから + 僅かだけずれている。}% + \Note エンジンが |(pdf)latex| の時は和文スケールが無効になる。 +\item |noscale|\Means + |scale=1| と同値。 +\item |paper={|\Meta{横幅}|}{|\Meta{縦幅}|}|\Means + 用紙サイズ設定。 + |a4paper| 等と同じ役割で、任意の値を指定できる。 + 用紙サイズの既定値はA4縦 + ($\mbox{210\,mm}\times\mbox{294\,mm}$)である。 +\item |mag=|\Meta{整数}\Means + 版面拡大率(mag値)の直接設定。 + 既定は |base| から算出する。 + \Note mag値が$n$の場合、版面が $n/1000$ 倍に拡大される。 +\item |magstyle=|\Meta{値}\Means + “版面拡大”の実現方法を指定する。 + 有効な値は |mag|、|real|、|xreal| の何れか。 + 詳細は\ref{ssec:magstyle}節を参照。 +\end{itemize} + +%------------------- +\subsection{JSクラスのオプションで使用可能なもの} +\label{ssec:JS-inherited-option} + +これらについては名前だけ列挙するに留める。 +ただし、“JSクラス特有”(標準クラスに無い)オプションの一部に +ついては解説を加える。 + +\paragraph{用紙サイズ指定} +|a3paper|、|a4paper|、|a5paper|、|a6paper|、 +|b4paper|、|b5paper|、|b6paper|、 +|a4j|、|a5j|、|b4j|、|b5j|、|a4var|、|b5var|、 +|letterpaper|、|legalpaper|、|executivepaper|。 +\Note |a4var| はA4変判($\mbox{210\,mm}\times\mbox{283\,mm}$)、 +|b5var| はB5変判($\mbox{182\,mm}\times\mbox{230\,mm}$)。 +\Note (BX)\<JSクラスでは |a4j| は |a4paper| と全く等価である。 +(他の |b4j| 等も同様。) + +\paragraph{横置き} +|landscape|。 + +\paragraph{基底フォントサイズ} +|8pt|、|9pt|、|10pt|、|11pt|、|12pt|、|14pt|、|17pt|、|20pt|、 +|21pt|、|25pt|、|30pt|、|36pt|、|43pt|、 +|12Q|、|14Q|、 +|10ptj|、|10.5ptj|、|11ptj|、|12ptj|。 +\Note |10pt|、|11pt|、|12pt|、|14pt|、|17pt|、|21pt|、|25pt|、 +|30pt|、|36pt|、|43pt| はそれぞれmagstepの +0、0.5、1、2、3、4、5、6、7、8である。 +|8pt|、|9pt|、|20pt| は文字通りの値。 +|##Q|/|##ptj| は |jbase=##Q|/|jbase=##pt| を表す +(つまり和文規準)。 +\footnote{ちなみにJSクラスの(固定の)和文スケール値に従うと |10pt| + が |jbase=13Q| に相当するので |13Q| というオプションは無い。}% + +\paragraph{両面用レイアウト} +|oneside|、|twoside|、|vartwoside|。 +\Note |vartwoside| は |twoside| と同様だが +傍注が常に右側余白に出力される。 + +\paragraph{段組み} +|onecolumn|、|twocolumn|。 + +\paragraph{表題ページ} +|titlepage|、|notitlepage|。 + +\paragraph{起こし} +|openright|、|openany|。 +\Note \Pkg{jsbook}のみ(BXJSでは\Pkg{bxjsreport}と\Pkg{bxjsbook}) +にのみ存在するオプション。 + +\paragraph{数式配置} +|leqno|、|fleqn|。 + +\paragraph{オーバーフル警告} +|final|、|draft|。 + +\paragraph{papersize special出力} +|papersize|。 +\Note BXJSクラスでは |papersize| は既定で有効。 + +\paragraph{英語化} +|english|。 + +%------------------- +\subsection{JSクラスのオプションで使用不可能なもの} +\label{ssec:JS-deleted-option} + +\begin{itemize} +\item クラス変種指定\Means + |report|、|slide|。 + \Note |report| 相当は\Pkg{bxjsreport}、|slide| 相当は\Pkg{bxjsslide}と + 別クラスになっている。 +\item トンボ出力\Means + |tombow|、|tombo|、|mentuke| + \Note これは{\pLaTeX}のカーネル命令を利用しているので + とりあえず除外。 +\item 和文フォントメトリック指定\Means + |jis|、|winjis|、|mingoth|。 + \Note 異なるエンジンで汎用的に扱うのが難しい。 +\item 和文数式フォントの登録の制御\Means + |disablejfam|。 + \Note 前項と同じ理由。 + \footnote{ただし、こちらは一部のエンジンだけでも対応したほうが + よいかも知れない。}% +\end{itemize} + +%------------------- +\subsection{クラスオプション設定の既定値} + +\begin{itemize} +\item BXJSクラス共通\Means + |a4paper|、|onecolumn|、|final|、 + |ja=minimal|、|jafont|は空、|japaram|は空、 + |scale=0.924715|、|magstyle=mag| +\item \Pkg{bxjsarticle}\Means + |10pt|、|oneside|、|notitlepage| +\item \Pkg{bxjsreport}\Means + |10pt|、|oneside|、|titlepage|、|openany| +\item \Pkg{bxjsbook}\Means + |10pt|、|twoside|、|titlepage|、|openright| +\item \Pkg{bxjsslide}\Means + |36pt|、|oneside|、|notitlepage| +\end{itemize} + +%------------------- +\subsection{magstyleオプション} +\label{ssec:magstyle} + +JSクラスにおけるページレイアウト決定の過程では、 +基底フォントサイズが10\,pt以外の場合に、 +“版面を拡大縮小する”という処理を採用している。 +\footnote{例えば、基底フォントサイズが20\,ptだとすると、 +まずは指定されたものの半分の縦横幅をもつ用紙に対して +基底フォントサイズが10\,ptとしてレイアウトを決定し、 +それを縦横2倍に拡大する、という過程をとっている。}% +これには、「フォントのオプティカルサイズの選択を最適にするため +\footnote{{\LaTeX}の既定の欧文フォントであるComputer Modernフォントが +オプティカルサイズの性質をもつことは有名であるが、 +少々癖が強くて、本文を10\,pt(cmr10)で組んだ場合と +12\,pt(cmr12)で組んだ場合でかなり異なった印象を受ける場合がある。 +JSクラスではそれを嫌って、本文(|\normalsize| のフォント)が +必ず「cmr10を拡大縮小したもの」で組まれることを +企図しているのである。}% +」という理由があり、またこれにより、多種の基底フォントサイズへの +対応が容易になるという利点もある。 +\footnote{BXJSで「任意の」基底フォントサイズが設定できるのも +この利点があるため。}% +ところがここで、JSクラスではこの“版面の拡大”を実現するために +{\TeX}エンジンが持つ版面拡大機能(仮に「mag設定」と呼称する) +を用いていて、これについて批判されることが多い。 +また、現実問題として、mag設定が{\LaTeX}で用いられる機会は少ないため、 +実際に用いられた時にそれを想定していないパッケージが誤動作すると +いう問題もある。 + +これらの問題を緩和するため、BXJSクラスでは“版面拡大”について +他の実現方法を提供している。 +それを選択するのがクラスオプションの|magstyle|である。 +\footnote{ところで、このオプションキーの値 +(|mag|、|real|、|xreal|)はかなりイマイチなんだけど、 +もっと素敵な名前はないものだろうか……。}% + +\begin{itemize} +\item |magstyle=mag|(既定)\Means + JSクラスと同様に、“版面拡大”のためにmag設定を用いる。 +\item |magstyle=real|\Means + mag設定を一切用いず、代わりに、 + 全てのページレイアウトのパラメタの値をスケールさせる。 + |\normalsize| や |\large| 等の高位フォントサイズ命令で指定される + フォントサイズもスケールさせるが、 + “オプティカルサイズの調整”は行わない。 + いわゆる「基本35書体」のようなオプティカルサイズでない + \footnote{或いは、オプティカルサイズに“変な癖”のない。}% + フォントのみを用いるのであれば、この設定が最も適切である。 +\item |magstyle=xreal|\Means + |real| と同様に、 + 全てのページレイアウトのパラメタの値をスケールさせる。 + さらに、“オプティカルサイズの調整”を実現するために、 + NFSSの実装コードにパッチを当てる。 + \footnote{要するに、|OT1/cmr/m/n/12| が要求された時に、 + |cmr12| でなくて |cmr10 at 12pt| が選ばれるようにする。}% + この場合、mag設定による不具合は起こらなくなるが、 + 当然、NFSSのパッチのせいで別の不具合が起こる可能性はある。 +\end{itemize} + +%=========================================================== +\section{和文ドライバ} +\label{sec:Ja-Driver} + +BXJSクラスでは様々なエンジンについて、そのエンジンおよび +それに対応するパッケージが提供する日本語処理機能を活用することで、 +日本語用の文書クラスとしての機能を実現している。 +そこでの汎用性を確保するため、 +“日本語処理機能と連携する部分”の実装をモジュールとして分離していて、 +これを\jemph{和文ドライバ}と呼ぶ。 +\footnote{\Pkg{graphicx}パッケージ等の「ドライバ」と類似した概念 +のためこの名称を用いた。}% +\Pkg{BXjscls}のバンドルでは次の2つの和文ドライバを提供している。 + +\begin{itemize} +\item standard和文ドライバ\Means +各エンジンについて、最も一般的に用いられる特定の +“日本語処理機能”(例えば |lualatex| なら\Pkg{\LuaTeX-ja}) +を連携対象とした和文ドライバ。 +(u){\pLaTeX}上のJSクラスと同じくらい容易に日本語が +書き始められることを目指している。 +\item minimal和文ドライバ\Means +“何も実装されていない”和文ドライバ。 +上級ユーザがプレアンブルや自作パッケージ等に +アドホックな連携コードを書いて、 +好きな“日本語処理機能”との連携を実現するために +用いることを想定している。 +\end{itemize} + +和文ドライバは自分で作製することも可能である。 +\footnote{和文ドライバの実装に必要な連携仕様の + 情報については、ソースコード説明書(bxjscls.pdf) + の付録Aを参照してほしい。}% +|bxjsja-XXX.def|(|XXX| は任意の文字列 +\footnote{カテゴリコード11または12の文字からなる必要がある。}% +)の名前のファイルに実装コードを書いてそのファイルを配置すると、 +|ja=XXX| のオプション指定でその和文ドライバを利用できる。 + +なお、和文ドライバ指定オプション(|ja|)の既定値は |minimal| +である。 +現実には、ほとんど全ての場合に |standard| が用いられると思われるが、 +種々の理由があって、これを既定値にはしていない。 + +\Note ただし、(u){\pLaTeX}については、日本語処理機能がエンジン自体に +備わっていて不可分なため少し異なる扱いになっている。 +\footnote{JSクラスの実装から分離した「日本語処理関連」のコードを +minimalに配置している。}% +|minimal| を用いる意義がほとんどないため、 +|standard| が既定値になっている。 + + +%=========================================================== +\section{ユーザ用命令} +\label{sec:Commands} + +原則として、BXJSクラスで追加されたものだけを説明する。 + +%------------------- +\subsection{レイアウト設定関連} +\label{ssec:page-layout} + +BXJSクラスではページレイアウトの設定に\Pkg{geometry}パッケージを +用いて次の手順で行っている。 + +\begin{enumerate} +\item[\Ord{1}] + (基底フォントサイズにより決定されたmag値を実際に設定する。) +\item[\Ord{2}] + \Pkg{geometry}で次のパラメタを設定する。 + \begin{enumerate} + \item[\Prn{a}] + クラスオプションで指定された用紙サイズ、および|truedimen|。 + \item[\Prn{ii}] + \Pkg{bxjsarticle}/\Pkg{bxjsreport}の場合は次のパラメタ値。 +\begin{quote}\small\begin{verbatim} +headheight=10pt, footskip=0.03367\paperheight, +headsep=\footskip-\topskip, includeheadfoot, +hscale=0.76, hmarginratio=1:1, vscale=0.83, vmarginratio=1:1 +\end{verbatim}\end{quote} + \item[\Prn{iii}] + \Pkg{bxjsbook}の場合は次のパラメタ値。 +\begin{quote}\small\begin{verbatim} +headheight=10pt, headsep=6mm, nofoot, includeheadfoot, +hmargin=36mm, hmarginratio=1:1, vscale=0.83, vmarginratio=1:1 +\end{verbatim}\end{quote} + \item[\Prn{iv}] + \Pkg{bxjsslide}の場合は次のパラメタ値。 +\begin{quote}\small\begin{verbatim} +noheadfoot, hscale=0.9, hmarginratio=1:1, +vscale=0.944, vmarginratio=1:1 +\end{verbatim}\end{quote} + \end{enumerate} +\item[\Ord{3}] + 後処理を行う。 + 以下の処理が含まれる。 + \begin{itemize} + \item |textwidth| を全角幅の整数倍に、|textheight| を整数行分の + 自然長になるように丸める。 + \item |marginpar| 関連の設定を行う。 + \end{itemize} +\end{enumerate} + +ページレイアウトの再設定のために次の命令が用意されている。 +\begin{itemize} +\item |\setpagelayout{|\Meta{設定}|}|\Means + 現在のページレイアウトの設定の一部を修正する。 + \Meta{設定}は\Pkg{geometry}のパラメタの記述であり、 + 現在の設定に追記して\Pkg{geometry}が再設定を行った後、 + 再び\Ord{3}の後処理が行われる。 +\item |\setpagelayout*{|\Meta{設定}|}|\Means + 用紙以外の設定をリセットして改めてページレイアウトの設定を行う。 + 具体的には、\Ord{2}の\Prn{i}と\Meta{設定}の内容を用いて + \Pkg{geometry}が再設定を行った後、再び\Ord{3}の後処理が行われる。 +\end{itemize} + +なお、|\geometry| 命令を直接呼び出すことも可能である。 +当然この場合は\Ord{3}の後処理は行われない。 + +%------------------- +\subsection{和文用設定関連} + +\begin{itemize} +\item |\jsZw|\Means + 和文の全角幅を表す。 +\item |\zw|\Means + |\jsZw| の別名。 + \footnote{\Pkg{\LuaTeX-ja}では「実際の全角幅」を表す + 命令 |\zw|({\pLaTeX}の |zw| と本当に等価)が規定されている。 + |lualatex| エンジン指定かつ和文ドライバが |standard| の場合は + この |\zw| の定義がそのまま使われる。 + (従って |nozw| は実質的に無効である。) + なお、|\jsZw| は「規約上の全角幅」であり、「実際の全角幅」と本来は + 一致するはずだが、実際には計算誤差のせいで僅かに値が異なる。}% + ただし |nozw| 指定時は定義されない。 +\end{itemize} + +\subsubsection{standard和文ドライバの場合} + +|standard| 和文ドライバ使用時を指定した時)は和文に関連する +文書ソース記述をエンジンに依らずに共通になることを目指している。 +従って、和文関連の組版パラメタの設定*1についても +「共通の命令」が提供される。 + +\begin{itemize} +\item 和文ファミリ変更命令\Means + {\pLaTeX}と同様に、 + |\mcfamily| で「明朝」、|\gtfamily| で「ゴシック」に変更される。 + |\textmc|、|\textgt| も使える。 +\item 欧文ファミリ変更命令での和文の連動\Means + JSクラスと同様 + \footnote{ちなみに、(u){\pLaTeX}の既定ではこの連動は起こらない。}% + に、|\rmfamily| で和文が「明朝」、 + |\sffamily| および |\ttfamily| で和文が「ゴシック」に変更される。 +\item |\zw|\Means + 和文の全角幅を表す。 + 例えば |2\zw| が pLaTeX の |2zw| に相当する。 +\item |\jQ|、|\jH|、|\trueQ|、|\trueH|\Means + それぞれ{\pLaTeX}の単位Q、H、trueQ、trueHに相当する長さ。 +\item |\ascQ|\Means + |\trueQ| を和文スケール値で割った長さ。 + \footnote{命令名は“anti-scaled Q”の略。}% + 例えば、|\fontsize{10\ascQ}{16\trueH}| + で和文のサイズが10\,Qになる。 +\item |\setxkanjiskip{|\Meta{長さ}|}|\Means + 和欧文間空白の量を指定する。 + {\pLaTeX}での |\setlength{\xkanjiskip}{|\Meta{長さ}|}| に相当する。 +\item |\getxkanjiskip|\Means + 現在の和欧文間空白の量を表す文字列に展開される。 + {\pLaTeX}での |\xkanjiskip| の読出 + \footnote{{\TeX}言語でいうと |\the\xkanjiskip|。}% + に相当する。 +\item |\autoxspacing|/|\noautoxspacing|\Means + 和欧文間空白の挿入を有効/無効にする。 + {\pLaTeX}の同名の命令と同等。 +\item |\setkanjiskip{|\Meta{長さ}|}|\Means + 和文間空白の量を指定する。 + {\pLaTeX}での |\setlength{\kanjiskip}{|\Meta{長さ}|}| に相当する。 +\item |\getkanjiskip|\Means + 現在の和文間空白の量を表す文字列に展開される。 + {\pLaTeX}での |\kanjiskip| の読出 + \footnote{{\TeX}言語でいうと |\the\kanjiskip|。}% + に相当する。 +\item |\autospacing|/|\noautospacing|\Means + 和文間空白の挿入を有効/無効にする。 + {\pLaTeX}の同名の命令と同等。 +\end{itemize} + +例えば、{\pLaTeX}において、次のように「和文間空白」を +利用して均等割りを行うという技法が知られている。 + +\begin{quote}\small\begin{verbatim} +%% \kintouwari{<整数n>}{<テキスト>} +% n全角の幅にテキストを均等割りで出力する. +\newcommand\kintouwari[2]{{% + \setlength{\kanjiskip}{\fill}% + \makebox[#1zw][s]{#2}}} +\end{verbatim}\end{quote} + +これと同等のものを、次のようにエンジン非依存な形で書くことができる。 + +\begin{quote}\small\begin{verbatim} +\newcommand\kintouwari[2]{{% + \setkanjiskip{\fill}% + \makebox[#1\zw][s]{#2}}} +\end{verbatim}\end{quote} + +%=========================================================== +\end{document} +%% EOF diff --git a/Master/texmf-dist/doc/latex/bxjscls/bxjscls.pdf b/Master/texmf-dist/doc/latex/bxjscls/bxjscls.pdf Binary files differnew file mode 100644 index 00000000000..12fc2354069 --- /dev/null +++ b/Master/texmf-dist/doc/latex/bxjscls/bxjscls.pdf |