diff options
author | Karl Berry <karl@freefriends.org> | 2015-08-06 22:00:18 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2015-08-06 22:00:18 +0000 |
commit | 480b01a5b1314cc8e719ae8e402e7fd13b63006e (patch) | |
tree | 0523d77168787bf4199ff52ee5cf3de9ccb3993d /Master/texmf-dist | |
parent | b222737caf76ed337fff111efdb9e5c6502a6db0 (diff) |
bxjscls (6aug15)
git-svn-id: svn://tug.org/texlive/trunk@38062 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
17 files changed, 8027 insertions, 728 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 diff --git a/Master/texmf-dist/source/latex/bxjscls/bxjsclasses.ins b/Master/texmf-dist/source/latex/bxjscls/bxjsclasses.ins deleted file mode 100644 index 6958b7866e9..00000000000 --- a/Master/texmf-dist/source/latex/bxjscls/bxjsclasses.ins +++ /dev/null @@ -1,11 +0,0 @@ -%% bxjsclasses.ins : installer file for bxjsclasses.dtx -\def\batchfile{bxjsclasses.ins} -\input docstrip.tex -\keepsilent -\generateFile{bxjsarticle.cls}{f}{\from{bxjsclasses.dtx}{article}} -\generateFile{bxjsreport.cls}{f}{\from{bxjsclasses.dtx}{report}} -\generateFile{bxjsptex.def}{f}{\from{bxjsclasses.dtx}{ptex}} -% classes below are not yet completed.... -%\generateFile{bxjsbook.cls}{f}{\from{bxjsclasses.dtx}{book}} -%\generateFile{bxjsslide.cls}{f}{\from{bxjsclasses.dtx}{slide}} -%% EOF diff --git a/Master/texmf-dist/source/latex/bxjscls/bxjsclasses.dtx b/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx index c29f60a8e93..9ac556f805c 100644 --- a/Master/texmf-dist/source/latex/bxjscls/bxjsclasses.dtx +++ b/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx @@ -53,14 +53,24 @@ %<report>\ProvidesClass{bxjsreport} %<book>\ProvidesClass{bxjsbook} %<slide>\ProvidesClass{bxjsslide} -%<ptex>\ProvidesFile{bxjsptex.def} +%<drvminimal>\ProvidesFile{bxjsja-minimal.def} +%<drvstandard>\ProvidesFile{bxjsja-standard.def} %<*driver> -\ProvidesFile{bxjsclasses.dtx} +\ProvidesFile{bxjscls.dtx} %</driver> - [2012/05/01 v0.3a BXJS document classes] + [2015/08/05 v1.0 BXJS document classes] +% based on jsclasses [2014/02/07] +% [2013/10/03 v0.9pre BXJS document classes] +% based on jsclasses [2013/05/14] %<*driver> -\documentclass{jsarticle} % このドキュメント自身は jsarticle を使う +\documentclass[a4paper]{ltjsarticle} +\usepackage[ipaex]{luatexja-preset} +\usepackage{metalogo} \usepackage{doc} +\newcommand{\Pkg}[1]{\textsf{#1}} +\newcommand{\Meta}[1]{$\langle$\mbox{}#1\mbox{}$\rangle$} +\newcommand{\Note}{\par\noindent ※} +\newcommand{\Means}{~:\quad} \newenvironment{ZRnote} {\StartZRnote}{\EndZRnote} \newcommand*{\ZRnoteline}[1]{ @@ -68,8 +78,14 @@ \makebox{\hspace{.05\linewidth}\rule[#1ex]{.9\linewidth}{.2pt}}\par} \newcommand*{\StartZRnote}{\ZRnoteline{.1}} \newcommand*{\EndZRnote}{\ZRnoteline{.9}} -\newcommand*{\zrWDash}{\char\jis"2141\relax}% WAVE DASH +\providecommand*{\eTeX}{$\varepsilon$-\TeX} +\providecommand*{\upTeX}{u\pTeX} +\providecommand*{\XeTeX}{XeTeX} +\newcommand*{\zrWDash}{\symbol{"301C}}% WAVE DASH \newcommand*{\zrNote}[1]{[#1]} +\makeatletter +\def\meta@font@select{\rmfamily\itshape} +\makeatother \addtolength{\textwidth}{-1in} \addtolength{\evensidemargin}{1in} \addtolength{\oddsidemargin}{1in} @@ -78,17 +94,20 @@ % \OnlyDescription \DisableCrossrefs \setcounter{StandardModuleDepth}{1} -\GetFileInfo{bxjsclasses.dtx} +\GetFileInfo{bxjscls.dtx} \begin{document} - \DocInput{bxjsclasses.dtx} + \DocInput{bxjscls.dtx} \end{document} %</driver> % \end{macrocode} % % \fi % -% \title{BXJS ドキュメントクラス} -% \author{ZR} +%^^A======================================================== +% \title{\Pkg{BXjscls} パッケージ\\ +% (BXJS文書クラス集)\\ +% ソースコード説明書} +% \author{八登崇之\ (Takayuki YATO; aka.~``ZR''} % \date{\fileversion\quad[\filedate]} % \maketitle % @@ -164,43 +183,103 @@ % % \StopEventually{} % -% 以下では実際のコードに即して説明します。 +% 以下では実際のコードに即して説明します。^^A 1in % % \paragraph{BXJSクラス特有の設定 ☆} % % \begin{macrocode} -%<*!ptex> +%<*!drvminimal&!drvstandard> \RequirePackage{calc} \RequirePackage{keyval} % \end{macrocode} % \begin{ZRnote} -% エンジン({\TeX}の種類)の判定。 -% |\bxis@engine| の値: -% |n|=8ビット欧文\TeX、 +% +% \begin{macro}{\jsEngine} +% 〔暗黙文字トークン〕 +% エンジン({\TeX}の種類)の種別: +% |n|=オリジナル\TeX、 % |j|={\pTeX}またはu{\pTeX}、 % |J|=NTT j{\TeX}、 -% |x|=XeTeX、 -% |p|=pdf{\TeX}、 +% |x|={\XeTeX}、 +% |p|=pdf{\TeX}(含DVIモード)、 % |l|=Lua{\TeX}。 -% {\pTeX}かu{\pTeX}の判別はスイッチ |\if@jsc@uplatex| で表される。 -% \end{ZRnote} +% % \begin{macrocode} -\let\bxjs@engine=n -% 念のためプリミティブテストに変えた +\let\jsEngine=n \def\bxjs@test@engine#1#2{% \edef\bxjs@tmpa{\string#1}% \edef\bxjs@tmpb{\meaning#1}% \ifx\bxjs@tmpa\bxjs@tmpb #2\fi} -\bxjs@test@engine\kanjiskip{\let\bxjs@engine=j} -\bxjs@test@engine\jintercharskip{\let\bxjs@engine=J} -\bxjs@test@engine\XeTeXversion{\let\bxjs@engine=x} -\bxjs@test@engine\pdftexversion{\let\bxjs@engine=p} -\bxjs@test@engine\luatexversion{\let\bxjs@engine=l} -\newif\if@jsc@uplatex -% 内部Unicode動作の時だけupTeXとみなす +\bxjs@test@engine\kanjiskip{\let\jsEngine=j} +\bxjs@test@engine\jintercharskip{\let\jsEngine=J} +\bxjs@test@engine\XeTeXversion{\let\jsEngine=x} +\bxjs@test@engine\pdftexversion{\let\jsEngine=p} +\bxjs@test@engine\luatexversion{\let\jsEngine=l} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ifjsWithupTeX} +% 〔スイッチ〕 +% エンジンが(内部漢字コードがUnicodeの){\upTeX}であるか。 +% \begin{macrocode} +\newif\ifjsWithupTeX \ifx\ucs\@undefined\else \ifnum\ucs"3000="3000 - \@jsc@uplatextrue + \jsWithupTeXtrue +\fi\fi +\let\if@jsc@uplatex\ifjsWithupTeX +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ifjsWitheTeX} +% 〔スイッチ〕 +% エンジンが{\eTeX}拡張をもつか。 +% \begin{macrocode} +\newif\ifjsWitheTeX +\bxjs@test@engine\eTeXversion{\jsWitheTeXtrue} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\bxjs@protected} +% {\eTeX}拡張が有効な場合にのみ |\protected| +% の効果をもつ。 +% \begin{macrocode} +\ifjsWitheTeX \let\bxjs@protected\protected +\else \let\bxjs@protected\@empty +\fi +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\bxjs@robust@def} +% 無引数の頑強な命令を定義する。 +% \begin{macrocode} +\ifjsWitheTeX + \def\bxjs@robust@def{\protected\def} +\else + \def\bxjs@robust@def{\DeclareRobustCommand*} +\fi +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ifjsInPdfMode} +% 〔スイッチ〕 +% pdf{\TeX}/Lua{\TeX}がPDFモードで動作しているか。 +% \begin{macrocode} +\newif\ifjsInPdfMode +\ifx\pdfoutput\@undefined\else\ifnum\pdfoutput>\z@ + \jsInPdfModetrue \fi\fi +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\jsDocClass} +% 〔トークン〕 +% 文書クラスの種別。 +% 以下の定値トークンの何れかと同等: +% |\jsArticle|=bxjsarticle、 +% |\jsBook|=bxjsbook、 +% |\jsReport|=bxjsreport、 +% |\jsSlide|=bxjsslide。 +% \begin{macrocode} \let\jsArticle=a \let\jsBook=b \let\jsReport=r @@ -214,17 +293,17 @@ %<slide>\let\jsDocClass\jsSlide %<slide>\def\bxjs@clsname{bxjsslide} % \end{macrocode} -% \begin{ZRnote} +% \end{macro} +% % Lua\TeX の場合、原版のコード中のコントロールワード中に現れる % 日本語文字のカテゴリコードを11に変更する。 % (元は12。) % ただし、読込終了時点で元に戻しているので、日本語文字のコントロール % ワードのマクロはそのままでは使える状態になっていない。 -% \end{ZRnote} % \begin{macrocode} \@onlypreamble\bxjs@restore@jltrcc \let\bxjs@restore@jltrcc\@empty -\if l\bxjs@engine +\if l\jsEngine \def\bxjs@change@jltrcc#1{% \xdef\bxjs@restore@jltrcc{% \bxjs@restore@jltrcc @@ -234,14 +313,14 @@ {\expandafter\bxjs@change@jltrcc\bxjs@x} \fi % \end{macrocode} -% \begin{ZRnote} +% % |\jsInhibitGlue| は |\inhibitglue| が定義されていればそれを % 実行し、未定義ならば何もしない。 -% \end{ZRnote} % \begin{macrocode} -\DeclareRobustCommand*{\jsInhibitGlue}{% +\bxjs@robust@def\jsInhibitGlue{% \ifx\inhibitglue\@undefined\else \inhibitglue \fi} % \end{macrocode} +% \end{ZRnote} % % \section{オプション} % @@ -308,7 +387,7 @@ % これを基準として順に半截しては mm 単位に切り捨てたものがA1,A2,…です。 % % B判はJISとISOで定義が異なります。 -% JISではB0判の面積が $1.5\,\mathrm{mm}^2$ ですが, +% JISではB0判の面積が $1.5\,\mathrm{m}^2$ ですが, % ISOではB1判の辺の長さがA0判とA1判の辺の長さの幾何平均です。 % したがってISOのB0判は $1000\,\mathrm{mm} \times 1414\,\mathrm{mm}$ です。 % このため,\LaTeXe の \texttt{b5paper} @@ -405,8 +484,12 @@ \DeclareOption{30pt}{\bxjs@setbasefontsize{29.86pt}} \DeclareOption{36pt}{\bxjs@setbasefontsize{35.83pt}} \DeclareOption{43pt}{\bxjs@setbasefontsize{43pt}} -\DeclareOption{12Q}{\bxjs@setbasefontsize{3mm}} -\DeclareOption{14Q}{\bxjs@setbasefontsize{3.5mm}} +\DeclareOption{12Q}{\bxjs@setjbasefontsize{3mm}} +\DeclareOption{14Q}{\bxjs@setjbasefontsize{3.5mm}} +\DeclareOption{10ptj}{\bxjs@setjbasefontsize{10pt}} +\DeclareOption{10.5ptj}{\bxjs@setjbasefontsize{10.5pt}} +\DeclareOption{11ptj}{\bxjs@setjbasefontsize{11pt}} +\DeclareOption{12ptj}{\bxjs@setjbasefontsize{12pt}} % \end{macrocode} % % \paragraph{トンボオプション} @@ -550,10 +633,25 @@ % % \texttt{draft} でoverfull boxの起きた行末に5ptの罫線を引きます。 % +% \begin{ZRnote} +% JSクラスは |\ifdraft| という公開名のスイッチを用いているが、 +% これは |ifdraft| パッケージと衝突するので、代わりに |\ifjsDraft| +% の名前を用い、本文開始時に |\ifdraft| が未定義の場合に限り、 +% |\ifjsDraft| を |\ifdraft| にコピーする処理にする。 +% +% \end{ZRnote} % \begin{macrocode} -\newif\ifdraft -\DeclareOption{draft}{\drafttrue \setlength\overfullrule{5pt}} -\DeclareOption{final}{\draftfalse \setlength\overfullrule{0pt}} +\let\ifjsDraft\iffalse +\@onlypreamble\bxjs@draft +\def\bxjs@draft#1{% + \expandafter\let\expandafter\ifjsDraft\csname if#1\endcsname} +\DeclareOption{draft}{\bxjs@draft{true}\setlength\overfullrule{5pt}} +\DeclareOption{final}{\bxjs@draft{false}\setlength\overfullrule{0pt}} +\AtBeginDocument{% + \expandafter\ifx\csname ifdraft\endcsname\relax + \expandafter\let\csname ifdraft\expandafter\endcsname + \csname ifjsDraft\endcsname + \fi} % \end{macrocode} % % \paragraph{和文フォントメトリックの選択} @@ -566,6 +664,15 @@ % \mbox{} % \begin{ZRnote} % |geometry| パッケージが行う。 +% +% 既定で有効であるが、|nopapersize| オプションで無効にできる。 +% \begin{macrocode} +\newif\ifbxjs@papersize +\bxjs@papersizetrue +\DeclareOption{nopapersize}{\bxjs@papersizefalse} +\DeclareOption{papersize}{\bxjs@papersizetrue} +% \end{macrocode} +% % \end{ZRnote} % % \paragraph{英語化} @@ -599,13 +706,14 @@ % \item |mag=|\meta{int} : |\mag| 値の直接設定。既定は |base| から算出する。 % \item |paper={|\meta{dimen:width}|}{|\meta{dimen:height}|}| : 用紙サイズ設定。 % 用紙サイズオプションの代用で、既定値は |a4paper| 相当。 -% \item |platex|, |uplatex| : (u){\pTeX}用の連携モジュールを読み込む。 +% \item |platex|, |uplatex| : (u){\pTeX}用の連携モジュールを有効化する。 +% \item |CJK| : CJKパッケージ用の連携モジュールを有効化する。 % \end{itemize} % +% \begin{macro}{\bxjs@invscale} % |\bxjs@invscale| は{\TeX}における「長さのスケール」の逆関数を求めるもの。 % 例えば |\bxjs@invscale\dimX{1.3}| は |\dimX=1.3\dimX| の % 逆の演算を行う。 -% \end{ZRnote} % \begin{macrocode} \mathchardef\bxjs@csta=259 \def\bxjs@invscale#1#2{% @@ -625,46 +733,293 @@ \else \@tempdimb=\@tempcntb\@ne \fi}% \xdef\bxjs@gtmpa{\the\@tempdimb}% \egroup #1=\bxjs@gtmpa\relax} -% platex、uplatexオプション -\newif\ifbxjs@ptexmodule +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\bxjs@engine@given} +% オプションで明示されたエンジンの種別。 +% \begin{macrocode} +%\let\bxjs@engine@given\@undefined +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\bxjs@engine@opt} +% 明示されたエンジンのオプション名。 +% \begin{macrocode} +%\let\bxjs@engine@opt\@undefined +% \end{macrocode} +% \end{macro} +% +% エンジン明示指定のオプションの処理。 +% \Note 0.9pre版の暫定仕様と異なり、エンジン名は |...latex| +% に限定する。 +% |xetex| や |pdftex| は一般的な{\LaTeX}の慣習に従って +% 「ドライバの指定」とみなすべきだから。 +% +% \begin{macrocode} +\DeclareOption{autodetect-engine}{% + \let\bxjs@engine@given=*} +\DeclareOption{latex}{% + \def\bxjs@engine@opt{latex}% + \let\bxjs@engine@given=n} \DeclareOption{platex}{% - \@tempswafalse - \if j\bxjs@engine \if@jsc@uplatex\else \@tempswatrue \fi\fi - \bxjs@opt@platex} + \def\bxjs@engine@opt{platex}% + \let\bxjs@engine@given=j} \DeclareOption{uplatex}{% - \@tempswafalse - \if j\bxjs@engine \if@jsc@uplatex \@tempswatrue \fi\fi - \bxjs@opt@platex} -\def\bxjs@opt@platex{% - \if@tempswa - \bxjs@ptexmoduletrue - \else - \ClassError\bxjs@clsname% - {Option `\CurrentOption' used on wrong engine}\@ehc - \fi} + \def\bxjs@engine@opt{uplatex}% + \let\bxjs@engine@given=u} +\DeclareOption{xelatex}{% + \def\bxjs@engine@opt{xelatex}% + \let\bxjs@engine@given=x} +\DeclareOption{pdflatex}{% + \def\bxjs@engine@opt{pdflatex}% + \let\bxjs@engine@given=p} +\DeclareOption{lualatex}{% + \def\bxjs@engine@opt{lualatex}% + \let\bxjs@engine@given=l} +% \end{macrocode} +% +% \begin{macro}{\bxjs@driver@given} +% オプションで明示されたドライバの種別。 +% \begin{macrocode} +%\let\bxjs@driver@given\@undefined +\let\bxjs@driver@@dvimode=0 +\let\bxjs@driver@@dvipdfmx=1 +\let\bxjs@driver@@pdfmode=2 +\let\bxjs@driver@@xetex=3 +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\bxjs@driver@opt} +% 明示された「ドライバ指定」のオプション名。 +% \begin{macrocode} +%\let\bxjs@driver@opt\@undefined +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +\DeclareOption{dvips}{% + \def\bxjs@driver@opt{dvips}% + \let\bxjs@driver@given\bxjs@driver@@dvimode} +\DeclareOption{dviout}{% + \def\bxjs@driver@opt{dviout}% + \let\bxjs@driver@given\bxjs@driver@@dvimode} +\DeclareOption{xdvi}{% + \def\bxjs@driver@opt{xdvi}% + \let\bxjs@driver@given\bxjs@driver@@dvimode} +\DeclareOption{dvipdfmx}{% + \def\bxjs@driver@opt{dvipdfmx}% + \let\bxjs@driver@given\bxjs@driver@@dvipdfmx} +\DeclareOption{pdftex}{% + \def\bxjs@driver@opt{pdftex}% + \let\bxjs@driver@given\bxjs@driver@@pdfmode} +\DeclareOption{luatex}{% + \def\bxjs@driver@opt{luatex}% + \let\bxjs@driver@given\bxjs@driver@@pdfmode} +\DeclareOption{xetex}{% + \def\bxjs@driver@opt{xetex}% + \let\bxjs@driver@given\bxjs@driver@@xetex} +% \end{macrocode} +% +% 「もしDVIモードであればドライバを |dvipdfmx| にする」 +% というオプション。 +% \begin{macrocode} +\DeclareOption{dvipdfmx-if-dvi}{% + \def\bxjs@driver@opt{dvipdfmx-if-dvi}% + \let\bxjs@driver@given\@undefined} +% \end{macrocode} +% +% \begin{macro}{\ifbxjs@usezw} +% |\jsZw| の同義語として |\zw| を使えるようにするか。 +% 既定は真。 +% \begin{macrocode} +\newif\ifbxjs@usezw \bxjs@usezwtrue +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +\DeclareOption{nozw}{% + \bxjs@usezwfalse} +\DeclareOption{zw}{% + \bxjs@usezwtrue} +% \end{macrocode} +% +% \begin{macro}{\ifbxjs@disguise@js} +% JSクラスの派生クラスのふりをするか。 +% 既定は真。 +% \begin{macrocode} +\newif\ifbxjs@disguise@js \bxjs@disguise@jstrue +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +\DeclareOption{nojs}{% + \bxjs@disguise@jsfalse} +\DeclareOption{js}{% + \bxjs@disguise@jstrue} +% \end{macrocode} +% % keyval型のオプションの処理。 +% \begin{macrocode} \def\bxjs@setkey{% \expandafter\bxjs@setkey@a\expandafter{\CurrentOption}} \def\bxjs@setkey@a{\setkeys{bxjs}} -\define@key{bxjs}{base}{\bxjs@setbasefontsize{#1}} +\DeclareOption*{\bxjs@setkey} +% \end{macrocode} +% +% \begin{macro}{\ifbxjs@scaleset} +% 和文スケール値が指定されたか。 +% \begin{macrocode} +\newif\ifbxjs@scaleset +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\jsScale} +% 和文スケール値。 +% \begin{macrocode} \def\jsScale{0.924715} -% scaleとの順序依存を消すため、jbaseの実行を遅延させる +\def\Cjascale{\jsScale} +% \end{macrocode} +% \end{macro} +% +% |base| オプションの処理。 +% \begin{macrocode} +\define@key{bxjs}{base}{\bxjs@setbasefontsize{#1}} +% \end{macrocode} +% +% |jbase| オプションの処理。 +% ここでは |\jsScale| の値を使用する。 +% |scale| の処理との順序依存を消すため、 +% |jbase| の処理の実行を遅延させている。 +% \begin{macrocode} +\@onlypreamble\bxjs@do@opt@jbase \let\bxjs@do@opt@jbase\relax -\define@key{bxjs}{jbase}{% - \def\bxjs@do@opt@jbase{\bxjs@opt@jbase{#1}}} -\def\bxjs@opt@jbase#1{% - \setlength\@tempdima{#1}% - \bxjs@invscale\@tempdima\jsScale - \bxjs@setbasefontsize{\@tempdima}} -\define@key{bxjs}{scale}{\edef\jsScale{#1}} +\define@key{bxjs}{jbase}{\bxjs@setjbasefontsize{#1}} +\def\bxjs@setjbasefontsize#1{% + \def\bxjs@do@opt@jbase{% + \setlength\@tempdima{#1}% + \bxjs@invscale\@tempdima\jsScale + \bxjs@setbasefontsize{\@tempdima}}} +% \end{macrocode} +% +% |scale| オプションの処理。 +% \begin{macrocode} +\define@key{bxjs}{scale}{% + \bxjs@scalesettrue + \edef\jsScale{#1}} +% \end{macrocode} +% +% |noscale| オプションの処理。 +% \begin{macrocode} +\DeclareOption{noscale}{% + \bxjs@scalesettrue + \def\jsScale{1}} +% \end{macrocode} +% +% |CJK| オプションは廃止された。 +% \begin{macrocode} +\DeclareOption{CJK}{% + \ClassWarning\bxjs@clsname + {Option `CJK' was abolished}} +% \end{macrocode} +% +% \begin{macro}{\bxjs@param@mag} +% |mag| オプションの値。 +% \begin{macrocode} \let\bxjs@param@mag\relax +% \end{macrocode} +% \end{macro} +% +% |mag| オプションの処理。 +% \begin{macrocode} \define@key{bxjs}{mag}{\edef\bxjs@param@mag{#1}} +% \end{macrocode} +% +% |paper| オプションの処理。 +% \begin{macrocode} \define@key{bxjs}{paper}{\edef\bxjs@param@paper{#1}} -\DeclareOption*{\bxjs@setkey} % \end{macrocode} % +% \begin{macro}{\bxjs@jadriver} +% 和文ドライバの名前。 +% \begin{macrocode} +\let\bxjs@jadriver\relax +% \end{macrocode} +% \end{macro} +% +% |jadriver| オプション(|ja| オプション)の処理。 +% \begin{macrocode} +\define@key{bxjs}{jadriver}{\edef\bxjs@jadriver{#1}} +\define@key{bxjs}{ja}{\edef\bxjs@jadriver{#1}} +% \end{macrocode} +% +% \begin{macro}{\jsJaFont} +% 和文フォント設定の名前。 +% \begin{macrocode} +\let\jsJaFont\@empty +% \end{macrocode} +% \end{macro} +% +% |jafont| オプションの処理。 +% \begin{macrocode} +\define@key{bxjs}{jafont}{\edef\jsJaFont{#1}} +% \end{macrocode} +% +% \begin{macro}{\jsJaParam} +% 和文ドライバパラメタの文字列。 +% \begin{macrocode} +\let\jsJaParam\@empty +% \end{macrocode} +% \end{macro} +% +% |japaram| オプションの処理。 +% \begin{macrocode} +\define@key{bxjs}{japaram}{\edef\jsJaParam{#1}} +% \end{macrocode} +% +% \begin{macro}{\bxjs@magstyle} +% magstyle設定値。 +% \begin{macrocode} +\let\bxjs@magstyle@mag=m +\let\bxjs@magstyle@real=r +\let\bxjs@magstyle@xreal=x +\let\bxjs@magstyle\bxjs@magstyle@mag +% \end{macrocode} +% \end{macro} +% +% |magstyle| オプションの処理。 +% \begin{macrocode} +\define@key{bxjs}{magstyle}{% + \expandafter\let\expandafter\bxjs@magstyle\csname + bxjs@magstyle@#1\endcsname + \ifx\bxjs@magstyle\relax + \ClassError\bxjs@clsname + {Invalid magstyle value `#1'}\@ehc + \let\bxjs@magstyle\bxjs@magstyle@mag + \fi} +% \end{macrocode} +% +% \end{ZRnote} +% % \paragraph{オプションの実行} % +% \begin{ZRnote} +% {\LaTeX}の実装では、クラスやパッケージのオプションのトークン列の +% 中に |{ }| が含まれると正常に処理ができない。 +% これに対処する為 |\@removeelement| の実装に少し手を加える +% (仕様は変わらない)。 +% \Note クラスに |\DeclareOption*| がある場合は |\@unusedoptions| +% は常に空のままであることを利用している。 +% \end{ZRnote} +% \begin{macrocode} +\let\ltx@removeelement\@removeelement +\def\@removeelement#1#2#3{% + \def\reserved@a{#2}% + \ifx\reserved@a\@empty \let#3\@empty + \else \ltx@removeelement{#1}{#2}{#3}% + \fi} +% \end{macrocode} +% % デフォルトのオプションを実行し,|dvi| ファイルの先頭にdvipsのpapersize % specialを書き込みます。このspecialはdvipsや最近のdvioutが対応しています。 % |multicols| や |url| を |\RequirePackage| するのはやめました。 @@ -675,9 +1030,124 @@ %<book>\ExecuteOptions{a4paper,twoside,onecolumn,titlepage,openright,final} %<slide>\ExecuteOptions{36pt,a4paper,landscape,oneside,onecolumn,titlepage,final} \ProcessOptions\relax +% \end{macrocode} +% +% \begin{ZRnote} +% +% |papersize| と |10pt| のオプションは他のパッケージと衝突を +% 起こす可能性があるため、グローバルオプションから外す。 +% +% \begin{macrocode} +\@expandtwoargs\@removeelement + {papersize}\@classoptionslist\@classoptionslist +\@expandtwoargs\@removeelement + {10pt}\@classoptionslist\@classoptionslist +% \end{macrocode} +% +% エンジン明示指定のオプションが与えられた場合は、 +% それが実際のエンジンと一致するかを検査する。 +% \begin{macrocode} +\let\bxjs@tmpb\jsEngine +\ifx j\bxjs@tmpb\ifjsWithupTeX + \let\bxjs@tmpb=u +\fi\fi +\ifx p\bxjs@tmpb\ifjsInPdfMode\else + \let\bxjs@tmpb=n +\fi\fi +\ifx *\bxjs@engine@given + \let\bxjs@engine@given\bxjs@tmpb +\fi +\ifx\bxjs@engine@given\@undefined\else + \ifx\bxjs@engine@given\bxjs@tmpb\else + \ClassError\bxjs@clsname% + {Option `\bxjs@engine@opt' used on wrong engine}\@ehc + \fi +\fi +% \end{macrocode} +% +% ドライバ指定のオプションが与えられた場合は、 +% それがエンジンと整合するかを検査する。 +% \begin{macrocode} +\@tempswatrue +\ifx \bxjs@driver@given\@undefined\else + \ifjsInPdfMode + \ifx\bxjs@driver@given\bxjs@driver@@pdfmode\else + \@tempswafalse + \fi + \else\ifx x\jsEngine + \ifx\bxjs@driver@given\bxjs@driver@@xetex\else + \@tempswafalse + \fi + \else + \ifx\bxjs@driver@given\bxjs@driver@@pdfmode + \@tempswafalse + \else\ifx\bxjs@driver@given\bxjs@driver@@xetex + \@tempswafalse + \fi\fi + \fi\fi +\fi +\if@tempswa\else + \ClassError\bxjs@clsname% + {Option `\bxjs@driver@opt' used on wrong engine}\@ehc +\fi +% \end{macrocode} +% +% DVI出力のエンジンでドライバオプションがない場合は警告を出す。 +% \begin{macrocode} +\ifjsInPdfMode \@tempswafalse +\else\ifx x\jsEngine \@tempswafalse +\else \@tempswatrue +\fi\fi +\if@tempswa + \ifx\bxjs@driver@opt\@undefined + \ClassWarningNoLine\bxjs@clsname + {No driver option is given} + \fi +% \end{macrocode} +% DVI出力のエンジンで |dvipdfmx-in-dvi| が指定されていた場合は、 +% |dvipdfmx| が指定された時と同じ動作にする。 +% \begin{macrocode} + \def\bxjs@tmpa{dvipdfmx-if-dvi} + \ifx\bxjs@driver@opt\bxjs@tmpa + \def\bxjs@driver@opt{dvipdfmx} + \let\bxjs@driver@given\bxjs@driver@@dvipdfmx + \g@addto@macro\@classoptionslist{,dvipdfmx} + \fi +\fi +% \end{macrocode} +% +% |\bxjs@jadriver| の正規化。 +% 値が未指定の場合は |minimal| に変える。 +% ただしエンジンが{(u)\pTeX}である場合は |standard| +% に変える。 +% \begin{macrocode} +\def\bxjs@@minimal{minimal} +\ifx\bxjs@jadriver\relax + \ifx j\jsEngine + \def\bxjs@jadriver{standard} + \else + \let\bxjs@jadriver\bxjs@@minimal + \fi +\fi +% \end{macrocode} +% +% \begin{macrocode} +\ifx\bxjs@jadriver\bxjs@@minimal\else + \ifx\bxjs@engine@given\@undefined + \ClassError\bxjs@clsname% + {An engine option must be explicitly given}% + {When you employ a Japanese-driver you must specify a + correct\MessageBreak engine option.\MessageBreak\@ehc} +\fi\fi +% \end{macrocode} +% +% オプション処理時に遅延させていた |jbase| の処理をここで実行する。 +% \begin{macrocode} \bxjs@do@opt@jbase % \end{macrocode} % +% \end{ZRnote} +% % 後処理 % % \begin{macrocode} @@ -691,6 +1161,33 @@ \fi % \end{macrocode} % +% \begin{ZRnote} +% 8bit欧文{\TeX}の場合は、高位バイトをアクティブ化しておく。 +% (和文を含むマクロ定義を通用させるため。) +% \end{ZRnote} +% \begin{macrocode} +\if \if p\jsEngine T\else\if n\jsEngine T\else F\fi\fi T + \@tempcnta="80 \loop \ifnum\@tempcnta<"100 + \catcode\@tempcnta\active + \advance\@tempcnta\@ne + \repeat +\fi +% \end{macrocode} +% +% \begin{ZRnote} +% |js| オプション指定時は、jsarticle(または jsbook)クラスを +% 読込済のように振舞う。 +% \Note 「2つのクラスを読み込んだ状態」は |\LoadClass| を使用した +% 場合に出現するので、別に異常ではない。 +% \end{ZRnote} +% \begin{macrocode} +\ifbxjs@disguise@js +%<book|report>\def\bxjs@js@clsname{jsbook} +%<!book&!report>\def\bxjs@js@clsname{jsarticle} + \@namedef{ver@\bxjs@js@clsname.cls}{2001/01/01 (bxjs)} +\fi +% \end{macrocode} +% % \paragraph{papersizeスペシャルの出力} % \mbox{} % \begin{ZRnote} @@ -712,6 +1209,30 @@ % % \paragraph{拡大率の設定} % +% \begin{ZRnote} +% \begin{macro}{\ifbxjs@mag} +% |\mag| するか。 +% \begin{macrocode} +\newif\ifbxjs@mag +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ifbxjs@nfss@patch} +% NFSSパッチするか。 +% \begin{macrocode} +\newif\ifbxjs@nfss@patch +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +\ifx\bxjs@magstyle\bxjs@magstyle@mag + \bxjs@magtrue +\else\ifx\bxjs@magstyle\bxjs@magstyle@xreal + \bxjs@nfss@patchtrue +\fi\fi +% \end{macrocode} +% \end{ZRnote} +% % サイズの変更は\TeX のプリミティブ |\mag| を使って行います。 % 9ポイントについては行送りも若干縮めました。 % サイズについては全面的に見直しました。 @@ -729,7 +1250,6 @@ % 設定すべき |\mag| 値を (基底サイズ)/(10\,pt) $\times$ 1000 と算出。 % BXJSクラスでは、|\mag| を直接指定したい場合は、|geometry| 側では % なくクラスのオプションで行うものとする。 -% \end{ZRnote} % \begin{macrocode} \ifx\bxjs@param@mag\relax \@tempdima=\bxjs@param@basefontsize @@ -747,22 +1267,103 @@ \expandafter\bxjs@tmpa\the\@tempcnta\@nil \edef\bxjs@param@basefontsize{\the\@tempdima} \fi +\@tempcnta\bxjs@param@mag \advance\@tempcnta100000 +\def\bxjs@tmpa#1#2#3#4\@nil{\@tempdima=#2#3.#4\p@} +\expandafter\bxjs@tmpa\the\@tempcnta\@nil +\edef\bxjs@real@mag{\strip@pt\@tempdima} \let\jsBaseFontSize\bxjs@param@basefontsize %\typeout{\string\jsDocClass: \meaning\jsDocClass} -%\typeout{\string\bxjs@engine: \meaning\bxjs@engine} +%\typeout{\string\jsEngine: \meaning\jsEngine} %\typeout{\string\jsBaseFontSize: \jsBaseFontSize} %\typeout{\string\bxjs@param@mag: \bxjs@param@mag} +%\typeout{\string\bxjs@real@mag: \bxjs@real@mag} +%\typeout{\string\ifbxjs@mag: \meaning\ifbxjs@mag} +%\typeout{\string\ifbxjs@nfss@patch: \meaning\ifbxjs@nfss@patch} +% \end{macrocode} +% +% |\bxjs@mpt| は基底スケールしたpt。 +% |\mag| する場合は |\p@| と同値にする。 +% +% |\mag| する場合(現状はこれが既定)にコードの変更を低減するために、 +% 以下では必要に応じて、|\bxjs@mpt| を |\p@?| と書く。 +% その上で、|\mag| する場合は |?| を無視して |\p@| と解釈させ、 +% |\mag| しない場合は |?| を英字扱いにして |\p@?| という制御綴を +% |\bxjs@mpt| と同値にする。 +% \begin{macrocode} +\ifbxjs@mag + \let\bxjs@mpt\p@ + \catcode`\?=9 % \p@? read as \p@ +\else + \newdimen\bxjs@mpt + \bxjs@mpt=\bxjs@real@mag \p@ + \catcode`\?=11 \let\p@?\bxjs@mpt +\fi +\chardef\bxjs@qmcc=\catcode`\?\relax % \end{macrocode} +% \end{ZRnote} % % \begin{ZRnote} % ここで{p\TeX}のzwに相当する単位として用いる長さ変数 |\jsZw| を作成する。 % 約束により、これは |\jsScale| $\times$ (指定フォントサイズ) に等しい。 +% +% |nozw| 非指定時は |\zw| を |\jsZw| と同義にする。 % \end{ZRnote} % \begin{macrocode} \newdimen\jsZw -\jsZw=10pt \jsZw=\jsScale\jsZw +\jsZw=10\bxjs@mpt \jsZw=\jsScale\jsZw +\ifbxjs@usezw + \providecommand*\zw{\jsZw} +\fi % \end{macrocode} % +% \paragraph{NFSSパッチ ☆} +% +% ムニャムニャムニャ……。 +% \begin{ZRnote} +% \begin{macrocode} +\ifbxjs@nfss@patch +\RequirePackage{type1cm} +\expandafter\let\csname OT1/cmr/m/n/10\endcsname\relax +\expandafter\let\csname OMX/cmex/m/n/10\endcsname\relax +\let\bxjs@get@external@font\get@external@font +\def\get@external@font{% + \bxjs@preadjust@extract@font + \bxjs@get@external@font} +\def\bxjs@fstrunc#1{% + \edef\bxjs@tmpa{\strip@pt#1}% + \expandafter\bxjs@fstrunc@a\bxjs@tmpa.****\@nil} +\def\bxjs@fstrunc@a#1.#2#3#4#5#6\@nil{% + \if#5*\else + \edef\bxjs@tmpa{#1% + \ifnum#2#3>\z@ .#2\ifnum#3>\z@ #3\fi\fi}% + \fi} +\def\bxjs@preadjust@extract@font{% + \let\bxjs@req@size\f@size + \dimen@\f@size\p@ \bxjs@invscale\dimen@\bxjs@real@mag + \advance\dimen@.005pt\relax \bxjs@fstrunc\dimen@ + \let\bxjs@ref@size\bxjs@tmpa + \let\f@size\bxjs@ref@size} +\def\execute@size@function#1{% + \let\bxjs@cref@size\f@size + \let\f@size\bxjs@req@size + \csname s@fct@#1\endcsname} +\let\bxjs@DeclareErrorFont\DeclareErrorFont +\def\DeclareErrorFont#1#2#3#4#5{% + \@tempdimc#5\p@ \@tempdimc\bxjs@real@mag\@tempdimc + \edef\bxjs@tmpa{{#1}{#2}{#3}{#4}{\strip@pt\@tempdimc}} + \expandafter\bxjs@DeclareErrorFont\bxjs@tmpa} +\def\gen@sfcnt{% + \edef\mandatory@arg{\mandatory@arg\bxjs@cref@size}% + \empty@sfcnt} +\def\genb@sfcnt{% + \edef\mandatory@arg{% + \mandatory@arg\expandafter\genb@x\bxjs@cref@size..\@@}% + \empty@sfcnt} +\DeclareErrorFont{OT1}{cmr}{m}{n}{10} +\fi +% \end{macrocode} +% \end{ZRnote} +% % \paragraph{pagesizeスペシャルの出力} % \mbox{} % \begin{ZRnote} @@ -809,7 +1410,7 @@ % \@xipt 10.95 \@xiipt 12 \@xivpt 14.4 %\end{verbatim} % -% \begin{macro}{\@setfontsize} +%^^A\begin{macro}{\@setfontsize} % % ここでは |\@setfontsize| の定義を少々変更して, % 段落の字下げ |\parindent|, @@ -834,29 +1435,59 @@ % [2008-02-18] |english| オプションで |\parindent| を 1em にしました。 % % \begin{ZRnote} -% |\@setfontsize| の中で |\jsZw| を再設定している。 -% またユーザ定義用のフック |\jsResetDimen| を用意した。 -% \end{ZRnote} +% \begin{macro}{\set@fontsize} +% |\fontsize| 命令(|\large| 等でなく)でフォントサイズ変更した場合 +% にもフックが実行されるように、|\@setfontsize| では +% なく |\set@fontsize| に対してパッチを当てるように変更。 +% \begin{macrocode} +\def\bxjs@tmpa{\def\set@fontsize##1##2##3} +\expandafter\bxjs@tmpa\expandafter{% + \set@fontsize{#1}{#2}{#3}% +% 末尾にコードを追加 + \expandafter\def\expandafter\size@update\expandafter{% + \size@update + \jsFontSizeChanged}% +} +% \end{macrocode} +% \end{macro} % +% \begin{macro}{\jsFontSizeChanged} +% フォントサイズ変更時に呼ばれるフック。 +% |\jsZw| を再設定している。 +% その後でユーザ定義用のフック |\jsResetDimen| を実行する。 % \begin{macrocode} -\def\@setfontsize#1#2#3{% -% \@nomath#1% - \ifx\protect\@typeset@protect - \let\@currsize#1% - \fi - \fontsize{#2}{#3}\selectfont - \jsZw=\f@size pt\relax - \jsZw=\jsScale \jsZw\relax +\newcommand*\jsFontSizeChanged{% + \jsZw=\f@size\p@ + \jsZw=\jsScale \jsZw \ifdim\parindent>\z@ \if@english \parindent=1em \else \parindent=1\jsZw \fi \fi\relax \jsResetDimen} -\def\jsResetDimen{} % \end{macrocode} % \end{macro} % +% \begin{macro}{\jsResetDimen} +% ユーザ定義用のフック。 +% \begin{macrocode} +\newcommand*\jsResetDimen{} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\bxjs@setfontsize} +% 基底スケールを考慮した |\@setfontsize|。 +% \begin{macrocode} +\ifbxjs@mag + \let\bxjs@setfontsize\@setfontsize +\else + \def\bxjs@setfontsize#1#2#3{% + \@setfontsize#1{#2\bxjs@mpt}{#3\bxjs@mpt}} +\fi +% \end{macrocode} +% \end{macro} +% \end{ZRnote} +% % これらのグルーをもってしても行分割ができない場合は, % |\emergencystretch| に訴えます。 % @@ -881,6 +1512,8 @@ % % [2008-02-18] |english| オプションで最初の段落のインデントをしないようにしました。 % +% TODO: Hasumiさん [qa:54539] のご指摘は考慮中です。 +% % \begin{macrocode} \newif\ifnarrowbaselines \if@english @@ -903,6 +1536,21 @@ % \end{macro} % \end{macro} % +% \begin{ZRnote} +% |microtype| パッケージを読み込んだ場合、|\normalsize| 等の +% フォントサイズ変更命令の定義の中にif文が使われていると、 +% 不可解なエラーが発生する。 +% これは |microtype| が邪悪なトリックを使用しているせいなのだが、 +% 一応こちら側で対策をとることにする。 +% \end{ZRnote} +% \begin{macrocode} +\def\bxjs@if@narrowbaselines{% + \ifnarrowbaselines\expandafter\@firstoftwo + \else \expandafter\@secondoftwo + \fi +} +% \end{macrocode} +% % \begin{macro}{\normalsize} % % 標準のフォントサイズと行送りを選ぶコマンドです。 @@ -920,13 +1568,16 @@ % 和文の推奨値の一つ「二分四分」(1.75) % に近づきました。 % +% \begin{ZRnote} +% |microtype| 対策のためif文を避ける。 +% \end{ZRnote} % \begin{macrocode} \renewcommand{\normalsize}{% - \ifnarrowbaselines - \@setfontsize\normalsize\@xpt\@xiipt - \else - \@setfontsize\normalsize\@xpt{\n@baseline}% - \fi + \bxjs@if@narrowbaselines{% + \bxjs@setfontsize\normalsize\@xpt\@xiipt + }{%else + \bxjs@setfontsize\normalsize\@xpt{\n@baseline}% + }% % \end{macrocode} % % 数式の上のアキ(|\abovedisplayskip|), @@ -935,10 +1586,13 @@ % % [2003-02-16] ちょっと変えました。 % +% [2009-08-26] \TeX\ Q\,\&\,A 52569から始まる議論について逡巡して +% いましたが,結局,微調節してみることにしました。 +% % \begin{macrocode} - \abovedisplayskip 10\p@ \@plus3\p@ \@minus4\p@ - \abovedisplayshortskip \z@ \@plus3\p@ - \belowdisplayskip \abovedisplayskip + \abovedisplayskip 11\p@? \@plus3\p@? \@minus4\p@? + \abovedisplayshortskip \z@ \@plus3\p@? + \belowdisplayskip 9\p@? \@plus3\p@? \@minus4\p@? \belowdisplayshortskip \belowdisplayskip % \end{macrocode} % @@ -1006,17 +1660,21 @@ % また,|\topsep| と |\parsep| は,元はそれぞれ $4 \pm 2$,$2 \pm 1$ % ポイントでしたが,ここではゼロ(|\z@|)にしました。 % +% \begin{ZRnote} +% |microtype| 対策のためif文を避ける。 +% 後の |\footnotesize| も同様。 +% \end{ZRnote} % \begin{macrocode} \newcommand{\small}{% - \ifnarrowbaselines -%<!kiyou> \@setfontsize\small\@ixpt{11}% -%<kiyou> \@setfontsize\small{8.8888}{11}% - \else -%<!kiyou> \@setfontsize\small\@ixpt{13}% -%<kiyou> \@setfontsize\small{8.8888}{13.2418}% - \fi - \abovedisplayskip 9\p@ \@plus3\p@ \@minus4\p@ - \abovedisplayshortskip \z@ \@plus3\p@ + \bxjs@if@narrowbaselines{% +%<!kiyou> \bxjs@setfontsize\small\@ixpt{11}% +%<kiyou> \bxjs@setfontsize\small{8.8888}{11}% + }{%else +%<!kiyou> \bxjs@setfontsize\small\@ixpt{13}% +%<kiyou> \bxjs@setfontsize\small{8.8888}{13.2418}% + }% + \abovedisplayskip 9\p@? \@plus3\p@? \@minus4\p@? + \abovedisplayshortskip \z@ \@plus3\p@? \belowdisplayskip \abovedisplayskip \belowdisplayshortskip \belowdisplayskip \def\@listi{\leftmargin\leftmargini @@ -1034,15 +1692,15 @@ % % \begin{macrocode} \newcommand{\footnotesize}{% - \ifnarrowbaselines -%<!kiyou> \@setfontsize\footnotesize\@viiipt{9.5}% -%<kiyou> \@setfontsize\footnotesize{8.8888}{11}% - \else -%<!kiyou> \@setfontsize\footnotesize\@viiipt{11}% -%<kiyou> \@setfontsize\footnotesize{8.8888}{13.2418}% - \fi - \abovedisplayskip 6\p@ \@plus2\p@ \@minus3\p@ - \abovedisplayshortskip \z@ \@plus2\p@ + \bxjs@if@narrowbaselines{% +%<!kiyou> \bxjs@setfontsize\footnotesize\@viiipt{9.5}% +%<kiyou> \bxjs@setfontsize\footnotesize{8.8888}{11}% + }{%else +%<!kiyou> \bxjs@setfontsize\footnotesize\@viiipt{11}% +%<kiyou> \bxjs@setfontsize\footnotesize{8.8888}{13.2418}% + }% + \abovedisplayskip 6\p@? \@plus2\p@? \@minus3\p@? + \abovedisplayshortskip \z@ \@plus2\p@? \belowdisplayskip \abovedisplayskip \belowdisplayshortskip \belowdisplayskip \def\@listi{\leftmargin\leftmargini @@ -1071,21 +1729,21 @@ % [2004-11-03] |\HUGE| を追加。 % % \begin{macrocode} -\newcommand{\scriptsize}{\@setfontsize\scriptsize\@viipt\@viiipt} -\newcommand{\tiny}{\@setfontsize\tiny\@vpt\@vipt} +\newcommand{\scriptsize}{\bxjs@setfontsize\scriptsize\@viipt\@viiipt} +\newcommand{\tiny}{\bxjs@setfontsize\tiny\@vpt\@vipt} \if@twocolumn -%<!kiyou> \newcommand{\large}{\@setfontsize\large\@xiipt{\n@baseline}} -%<kiyou> \newcommand{\large}{\@setfontsize\large{11.111}{\n@baseline}} +%<!kiyou> \newcommand{\large}{\bxjs@setfontsize\large\@xiipt{\n@baseline}} +%<kiyou> \newcommand{\large}{\bxjs@setfontsize\large{11.111}{\n@baseline}} \else -%<!kiyou> \newcommand{\large}{\@setfontsize\large\@xiipt{17}} -%<kiyou> \newcommand{\large}{\@setfontsize\large{11.111}{17}} +%<!kiyou> \newcommand{\large}{\bxjs@setfontsize\large\@xiipt{17}} +%<kiyou> \newcommand{\large}{\bxjs@setfontsize\large{11.111}{17}} \fi -%<!kiyou>\newcommand{\Large}{\@setfontsize\Large\@xivpt{21}} -%<kiyou>\newcommand{\Large}{\@setfontsize\Large{12.222}{21}} -\newcommand{\LARGE}{\@setfontsize\LARGE\@xviipt{25}} -\newcommand{\huge}{\@setfontsize\huge\@xxpt{28}} -\newcommand{\Huge}{\@setfontsize\Huge\@xxvpt{33}} -\newcommand{\HUGE}{\@setfontsize\HUGE{30}{40}} +%<!kiyou>\newcommand{\Large}{\bxjs@setfontsize\Large\@xivpt{21}} +%<kiyou>\newcommand{\Large}{\bxjs@setfontsize\Large{12.222}{21}} +\newcommand{\LARGE}{\bxjs@setfontsize\LARGE\@xviipt{25}} +\newcommand{\huge}{\bxjs@setfontsize\huge\@xxpt{28}} +\newcommand{\Huge}{\bxjs@setfontsize\Huge\@xxvpt{33}} +\newcommand{\HUGE}{\bxjs@setfontsize\HUGE{30}{40}} % \end{macrocode} % \end{macro} % \end{macro} @@ -1159,10 +1817,10 @@ % \texttt{normal...} の付いた方は保存用です。 % % \begin{macrocode} -\setlength\lineskip{1\p@} -\setlength\normallineskip{1\p@} -\setlength\lineskiplimit{1\p@} -\setlength\normallineskiplimit{1\p@} +\setlength\lineskip{1\p@?} +\setlength\normallineskip{1\p@?} +\setlength\lineskiplimit{1\p@?} +\setlength\normallineskiplimit{1\p@?} % \end{macrocode} % \end{macro} % \end{macro} @@ -1248,8 +1906,10 @@ % |\topskip| も指定する。 % \end{ZRnote} % \begin{macrocode} +\ifbxjs@mag \mag=\bxjs@param@mag -\setlength{\topskip}{10pt} +\fi +\setlength{\topskip}{10\p@?} % \end{macrocode} % % \begin{ZRnote} @@ -1271,7 +1931,9 @@ % \end{ZRnote} % \begin{macrocode} \edef\bxjs@layout@paper{% - truedimen,\if@landscape landscape,\fi \bxjs@param@paper} + \ifbxjs@mag truedimen,\fi + \if@landscape landscape,\fi + \bxjs@param@paper} % \end{macrocode} % % @@ -1284,31 +1946,36 @@ \def\bxjs@layout{% headheight=\topskip,footskip=0.03367\paperheight,% headsep=\footskip-\topskip,includeheadfoot,% - hscale=0.76,,hmarginratio=1:1,% + hscale=0.76,hmarginratio=1:1,% vscale=0.83,vmarginratio=1:1,% } %</article|report> %<*book> \def\bxjs@layout{% - headheight=\topskip,headsep=6mm,nofoot,includeheadfoot,% - hmargin=36mm,hmarginratio=1:1,% - vscale=0.83%,vmarginratio=1:1,% +% 6mm=17.07164pt, 36mm=102.42992pt + headheight=\topskip,headsep=17.07164\p@?,nofoot,includeheadfoot,% + hmargin=102.42992\p@?,hmarginratio=1:1,% + vscale=0.83,vmarginratio=1:1,% } %</book> %<*slide> \def\bxjs@layout{% noheadfoot,% hscale=0.9,hmarginratio=1:1,% - vscale=0.95,vmarginratio=1:1,%% + vscale=0.944,vmarginratio=1:1,% } %</slide> % \end{macrocode} % % \begin{ZRnote} % |geometry| の後処理。 +% +% |\jsTextWidthLimit| は |bxjsbook| での |\textwidth| の +% 上限で、全角単位の実数値マクロ。 % \end{ZRnote} % \begin{macrocode} \newdimen\fullwidth +%<book>\newcommand\jsTextWidthLimit{40} \def\bxjs@postproc@layout{% % textwidth 調整 \@tempdimb=\textwidth @@ -1317,6 +1984,13 @@ \advance\@tempdimb-\textwidth \advance\oddsidemargin 0.5\@tempdimb \advance\evensidemargin 0.5\@tempdimb + \fullwidth=\textwidth +%<*book> + \ifdim\textwidth>\jsTextWidthLimit\Cwd + \textwidth=\jsTextWidthLimit\Cwd + \addtolength\evensidemargin{\fullwidth-\textwidth} + \fi +%</book> % textheight 調整 \@tempdimb=\textheight \advance\textheight-\topskip @@ -1331,16 +2005,15 @@ % marginpar 設定 \setlength\marginparsep{\columnsep} \setlength\marginparpush{\baselineskip} - \setlength\marginparwidth{\evensidemargin-1truein-\marginparsep} + \setlength\marginparwidth{\paperwidth-\oddsidemargin-1truein% + -\textwidth-1cm-\marginparsep} \divide\marginparwidth\Cwd \multiply\marginparwidth\Cwd % 連動する変数 \maxdepth=.5\topskip - \fullwidth=\textwidth } % \end{macrocode} % % \begin{ZRnote} -% ここで |geometry| を読み込む。 % |geometry| は |\topskip| が標準の行高(|\ht\strutbox|)より小さくならない % ようにする自動調整を行うが、これをどうするかは未検討。 % 今のところ、単純に回避(無効化)している。 @@ -1349,29 +2022,29 @@ \@onlypreamble\bxjs@revert \let\bxjs@revert\@empty \edef\bxjs@tmpa{\the\ht\strutbox} -\ht\strutbox=10pt +\ht\strutbox=10\p@? \g@addto@macro\bxjs@revert{\ht\strutbox=\bxjs@tmpa\relax} % \end{macrocode} % \begin{ZRnote} -% エンジンが XeTeX である場合の処理。 +% エンジンが{\XeTeX}である場合の処理。 % \begin{itemize} % \item |geometry| 4.2版の場合:\ % {\TeX} Liveの一部の版に用意されている設定ファイル |geometry.cfg| % では、|geometry| のドライバ自動検出の処理を乗っ取って、 % 強制的に |pdftex| を使用するようになっている。 -% ところが、XeTeXでは |\pdfhorigin| など未サポートのpdf{\TeX}% +% ところが、{\XeTeX}では |\pdfhorigin| など未サポートのpdf{\TeX}% % プリミティブがあり、|\mag| $\neq 1000$ の場合にエラーになる。 % そこで、|geometry.cfg| の読込の箇所にフックをかけて、|geometry.cfg| % での処理をさらに乗っ取ることにする。 % \begin{itemize} -% \item XeTeXが |\pdfpagewidth| をサポートする場合は、ダミーの\ +% \item {\XeTeX}が |\pdfpagewidth| をサポートする場合は、ダミーの\ % |\pdfhorigin|、|\pdfvorigin| を用意してドライバを |pdftex| % に強制的に変更する。 % \item そうでない場合は、ドライバを |dvipdfm| に強制的に変更する。 % \end{itemize} % \item |geometry| 5.x版の場合:\ -% この版の |geometry| はXeTeXに正式に対応(ドライバ名 |xetex|) -% していて、またXeTeXで実行した場合にドライバ自動検出の結果は\ +% この版の |geometry| は{\XeTeX}に正式に対応(ドライバ名 |xetex|) +% していて、また{\XeTeX}で実行した場合にドライバ自動検出の結果は\ % |xetex| となる。 % 従って、特に何もする必要がない。 % さらに、ドライバ自動検出処理のマクロ名を4.2版のもの @@ -1380,7 +2053,7 @@ % \end{itemize} % \end{ZRnote} % \begin{macrocode} -\if x\bxjs@engine +\if x\jsEngine \ifx\pdfpagewidth\@undefined \def\bxjs@Gm@driver{dvipdfm} \else @@ -1394,6 +2067,29 @@ \bxjs@InputIfFileExists{#1}{#2}{#3}% \edef\Gm@checkdrivers{\noexpand\Gm@setdriver{\bxjs@Gm@driver}}}% \fi +% \end{macrocode} +% \begin{ZRnote} +% |geometry| のドライバオプション指定。 +% |nopapersize| 指定時は、special命令出力を抑止するために +% ドライバを |none| にする。 +% そうでない場合は、クラスで指定したドライバオプションが引き継がれる +% ので何もしなくてよいが、例外として、ドライバが |dvipdfmx| の +% 時は、現状の |geometry| は |dvipdfm| を指定する必要がある。 +% \end{ZRnote} +% \begin{macrocode} +\ifbxjs@papersize + \ifx\bxjs@driver@given\bxjs@driver@@dvipdfmx + \PassOptionsToPackage{dvipdfm}{geometry} + \fi + \let\bxPapersizeSpecialDone=t +\else + \PassOptionsToPackage{driver=none}{geometry} +\fi +% \end{macrocode} +% \begin{ZRnote} +% ここで |geometry| を読み込む。 +% \end{ZRnote} +% \begin{macrocode} \edef\bxjs@nxt{% \noexpand\RequirePackage[\bxjs@layout@paper,\bxjs@layout]{geometry}} \bxjs@nxt \bxjs@revert @@ -1436,9 +2132,19 @@ % 脚注間に余分のアキが入らないように, % |\footnotesize| の支柱の高さ(行送りの0.7倍)に等しくします。 % +% \begin{ZRnote} +% ここは元々は +%\begin{verbatim} +%{\footnotesize\global\setlength\footnotesep{\baselineskip}} +%\end{verbatim} +% としていたが、そもそも |\global||\setlength|~ は\Pkg{calc}使用時には +% 有意義な動作をしない。 +% |\global||\footnotesep| だと所望の値が得られるが、 +% 同時に |\footnotesize| のフォントを固定させてしまうという副作用をもつ。 +% なので、実際の設定値を直接使うことにする。 +% \end{ZRnote} % \begin{macrocode} -{\footnotesize\global\setlength\footnotesep{\baselineskip}} -\setlength\footnotesep{0.7\footnotesep} +\footnotesep=11\p@? \footnotesep=0.7\footnotesep % \end{macrocode} % \end{macro} % @@ -1449,7 +2155,7 @@ % 和文の行送りを考えてもうちょっと大きくします。 % % \begin{macrocode} -\setlength{\skip\footins}{16\p@ \@plus 5\p@ \@minus 2\p@} +\setlength{\skip\footins}{16\p@? \@plus 5\p@? \@minus 2\p@?} % \end{macrocode} % \end{macro} % @@ -1575,9 +2281,9 @@ % |\intextsep| は本文の途中に出力されるフロートと本文との距離です。 % % \begin{macrocode} -\setlength\floatsep {12\p@ \@plus 2\p@ \@minus 2\p@} -\setlength\textfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} -\setlength\intextsep {12\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\floatsep {12\p@? \@plus 2\p@? \@minus 2\p@?} +\setlength\textfloatsep{20\p@? \@plus 2\p@? \@minus 4\p@?} +\setlength\intextsep {12\p@? \@plus 2\p@? \@minus 2\p@?} % \end{macrocode} % \end{macro} % \end{macro} @@ -1589,8 +2295,8 @@ % 二段組のときの段抜きのフロートについての値です。 % % \begin{macrocode} -\setlength\dblfloatsep {12\p@ \@plus 2\p@ \@minus 2\p@} -\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\dblfloatsep {12\p@? \@plus 2\p@? \@minus 2\p@?} +\setlength\dbltextfloatsep{20\p@? \@plus 2\p@? \@minus 4\p@?} % \end{macrocode} % \end{macro} % \end{macro} @@ -1605,9 +2311,9 @@ % |\@fpsep| はフロート間に入ります。 % % \begin{macrocode} -\setlength\@fptop{0\p@ \@plus 1fil} -\setlength\@fpsep{8\p@ \@plus 2fil} -\setlength\@fpbot{0\p@ \@plus 1fil} +\setlength\@fptop{0\p@? \@plus 1fil} +\setlength\@fpsep{8\p@? \@plus 2fil} +\setlength\@fpbot{0\p@? \@plus 1fil} % \end{macrocode} % \end{macro} % \end{macro} @@ -1620,9 +2326,9 @@ % 段抜きフロートについての値です。 % % \begin{macrocode} -\setlength\@dblfptop{0\p@ \@plus 1fil} -\setlength\@dblfpsep{8\p@ \@plus 2fil} -\setlength\@dblfpbot{0\p@ \@plus 1fil} +\setlength\@dblfptop{0\p@? \@plus 1fil} +\setlength\@dblfpsep{8\p@? \@plus 2fil} +\setlength\@dblfpbot{0\p@? \@plus 1fil} % \end{macrocode} % \end{macro} % \end{macro} @@ -1771,9 +2477,12 @@ % \end{macrocode} % % 次は book の場合です。 +% [2011-05-10] しっぽ愛好家さん [qa:6370] のパッチを取り込ませていただきました +% (北見さん [qa:55896] のご指摘ありがとうございます)。 % % \begin{macrocode} %<*book|report> +\newif\if@omit@number \def\ps@headings{% \let\@oddfoot\@empty \let\@evenfoot\@empty @@ -1788,7 +2497,9 @@ \def\chaptermark##1{\markboth{% \ifnum \c@secnumdepth >\m@ne \if@mainmatter - \@chapapp\thechapter\@chappos\hskip1\jsZw + \if@omit@number\else + \@chapapp\thechapter\@chappos\hskip1\jsZw + \fi \fi \fi ##1}{}}% @@ -1921,16 +2632,16 @@ \begin{center} \mbox{} \\[1\jsZw] \large - {\maybeblue\hrule height0pt depth2pt\relax}\par + {\maybeblue\hrule height0\p@? depth2\p@?\relax}\par \smallskip \@title \smallskip - {\maybeblue\hrule height0pt depth2pt\relax}\par + {\maybeblue\hrule height0\p@? depth2\p@?\relax}\par \vfill {\small \@author}% \end{center} \else - \vskip 60\p@ + \vskip 60\p@? \begin{center}% {\LARGE \@title \par}% \vskip 3em% @@ -2223,6 +2934,7 @@ \unskip \@tempskipa #1\relax \hskip -\@tempskipa + \bxjs@ltj@inhibitglue \else \clubpenalty \@clubpenalty \everypar{\everyparhook}% @@ -2233,7 +2945,7 @@ \@afterheading \fi \if@slide - {\vskip-6pt\maybeblue\hrule height0pt depth1pt\vskip7pt\relax}% + {\vskip-6\p@?\maybeblue\hrule height0\p@? depth1\p@?\vskip7\p@?\relax}% \fi \par % 2000-12-18 \ignorespaces} @@ -2251,6 +2963,14 @@ \@xsect{#3}} % \end{macrocode} % +% \begin{ZRnote} +% 上記の定義中の |\bxjs@ltj@inhibitglue| は{Lua\TeX-ja}で +% 用いられるフック。 +% \begin{macrocode} +\let\bxjs@ltj@inhibitglue\@empty +% \end{macrocode} +% \end{ZRnote} +% % \paragraph{柱関係の命令} % % \begin{macro}{\chaptermark} @@ -2556,7 +3276,7 @@ \normalfont \ifnum \c@secnumdepth >-2\relax \huge\headfont \prepartname\thepart\postpartname - \par\vskip20\p@ + \par\vskip20\p@? \fi \Huge \headfont #2\par}% \@endpart} @@ -2627,7 +3347,9 @@ \plainifnotempty % 元: \thispagestyle{plain} \global\@topnum\z@ \if@english \@afterindentfalse \else \@afterindenttrue \fi - \secdef\@chapter\@schapter} + \secdef + {\@omit@numberfalse\@chapter}% + {\@omit@numbertrue\@schapter}} % \end{macrocode} % \end{macro} % @@ -2644,7 +3366,8 @@ \typeout{\@chapapp\thechapter\@chappos}% \addcontentsline{toc}{chapter}% {\protect\numberline - {\if@english\thechapter\else\@chapapp\thechapter\@chappos\fi}% +% %{\if@english\thechapter\else\@chapapp\thechapter\@chappos\fi}% + {\@chapapp\thechapter\@chappos}% #1}% \else\addcontentsline{toc}{chapter}{#1}\fi \else @@ -3118,7 +3841,7 @@ \begin{list}{}{% \listparindent=1\jsZw \itemindent=\listparindent - \rightmargin=0pt + \rightmargin=\z@ \leftmargin=5\jsZw}\item[]}{\end{list}\vspace{\baselineskip}} %</book|report> %<*article|slide> @@ -3264,11 +3987,14 @@ % これでは和文がゴシック体になってしまうので, % |\itshape| を削除しました。 % +% [2009-08-23] |\bfseries| を |\headfont| に直し, +% |\labelsep| を 1\,zw にし,括弧を全角にしました。 +% % \begin{macrocode} -\def\@begintheorem#1#2{\trivlist - \item[\hskip \labelsep{\bfseries #1\ #2}]} -\def\@opargbegintheorem#1#2#3{\trivlist - \item[\hskip \labelsep{\bfseries #1\ #2\ (#3)}]} +\def\@begintheorem#1#2{\trivlist\labelsep=1\jsZw + \item[\hskip \labelsep{\headfont #1\ #2}]} +\def\@opargbegintheorem#1#2#3{\trivlist\labelsep=1\jsZw + \item[\hskip \labelsep{\headfont #1\ #2(#3)}]} % \end{macrocode} % % \begin{environment}{titlepage} @@ -3330,7 +4056,7 @@ % |array| 環境の列間には |\arraycolsep| の2倍の幅の空きが入ります。 % % \begin{macrocode} -\setlength\arraycolsep{5\p@} +\setlength\arraycolsep{5\p@?} % \end{macrocode} % \end{macro} % @@ -3339,7 +4065,7 @@ % |tabular| 環境の列間には |\tabcolsep| の2倍の幅の空きが入ります。 % % \begin{macrocode} -\setlength\tabcolsep{6\p@} +\setlength\tabcolsep{6\p@?} % \end{macrocode} % \end{macro} % @@ -3396,7 +4122,7 @@ % |\fbox|,|\framebox| の罫線の幅です。 % % \begin{macrocode} -\setlength\fboxsep{3\p@} +\setlength\fboxsep{3\p@?} \setlength\fboxrule{.4\p@} % \end{macrocode} % \end{macro} @@ -3606,8 +4332,8 @@ % \begin{macrocode} \newlength\abovecaptionskip \newlength\belowcaptionskip -\setlength\abovecaptionskip{5\p@} % 元: 10\p@ -\setlength\belowcaptionskip{5\p@} % 元: 0\p@ +\setlength\abovecaptionskip{5\p@?} % 元: 10\p@ +\setlength\belowcaptionskip{5\p@?} % 元: 0\p@ % \end{macrocode} % \end{macro} % \end{macro} @@ -3810,9 +4536,18 @@ % % 目次を生成します。 % +% \begin{macro}{\js@tocl@width} +% +% [2013-12-30] |\prechaptername| などから見積もった目次のラベルの長さです。(by ts) +% % \begin{macrocode} +\newdimen\js@tocl@width \newcommand{\tableofcontents}{% %<*book|report> + \settowidth\js@tocl@width{\headfont\prechaptername\postchaptername}% + \settowidth\@tempdima{\headfont\appendixname}% + \ifdim\js@tocl@width<\@tempdima \setlength\js@tocl@width{\@tempdima}\fi + \ifdim\js@tocl@width<2zw \divide\js@tocl@width by 2 \advance\js@tocl@width 1zw\fi \if@twocolumn \@restonecoltrue\onecolumn \else @@ -3822,6 +4557,10 @@ \@mkboth{\contentsname}{}% %</book|report> %<*!book&!report> + \settowidth\js@tocl@width{\headfont\presectionname\postsectionname}% + \settowidth\@tempdima{\headfont\appendixname}% + \ifdim\js@tocl@width<\@tempdima\relax\setlength\js@tocl@width{\@tempdima}\fi + \ifdim\js@tocl@width<2zw \divide\js@tocl@width by 2 \advance\js@tocl@width 1zw\fi \section*{\contentsname}% \@mkboth{\contentsname}{\contentsname}% %</!book&!report> @@ -3829,7 +4568,7 @@ %<book|report> \if@restonecol\twocolumn\fi } % \end{macrocode} -% \end{macro} +% \end{macro}\end{macro} % % \begin{macro}{\l@part} % @@ -3840,7 +4579,7 @@ \ifnum \c@tocdepth >-2\relax %<!book&!report> \addpenalty\@secpenalty %<book|report> \addpenalty{-\@highpenalty}% - \addvspace{2.25em \@plus\p@}% + \addvspace{2.25em \@plus\p@?}% \begingroup \parindent \z@ % \@pnumwidth should be \@tocrmarg @@ -3863,12 +4602,15 @@ % % 章の目次です。|\@lnumwidth| を4.683zwに増やしました。 % +% [2013-12-30] |\@lnumwidth| を |\js@tocl@width| から +% 決めるようにしてみました。(by ts) +% % \begin{macrocode} %<*book|report> \newcommand*{\l@chapter}[2]{% \ifnum \c@tocdepth >\m@ne \addpenalty{-\@highpenalty}% - \addvspace{1.0em \@plus\p@} + \addvspace{1.0em \@plus\p@?} % \vskip 1.0em \@plus\p@ % book.clsでは↑がこうなっている \begingroup \parindent\z@ @@ -3876,7 +4618,8 @@ \rightskip\@tocrmarg \parfillskip-\rightskip \leavevmode\headfont - \if@english\setlength\@lnumwidth{5.5em}\else\setlength\@lnumwidth{4.683\jsZw}\fi +% % \if@english\setlength\@lnumwidth{5.5em}\else\setlength\@lnumwidth{4.683\jsZw}\fi + \setlength\@lnumwidth{\js@tocl@width}\advance\@lnumwidth 2.683\jsZw \advance\leftskip\@lnumwidth \hskip-\leftskip #1\nobreak\hfil\nobreak\hbox to\@pnumwidth{\hss#2}\par \penalty\@highpenalty @@ -3895,14 +4638,15 @@ \newcommand*{\l@section}[2]{% \ifnum \c@tocdepth >\z@ \addpenalty{\@secpenalty}% - \addvspace{1.0em \@plus\p@}% + \addvspace{1.0em \@plus\p@?}% \begingroup \parindent\z@ % \rightskip\@pnumwidth \rightskip\@tocrmarg \parfillskip-\rightskip \leavevmode\headfont - \setlength\@lnumwidth{4\jsZw}% 元1.5em [2003-03-02] +% % \setlength\@lnumwidth{4\jsZw}% 元1.5em [2003-03-02] + \setlength\@lnumwidth{\js@tocl@width}\advance\@lnumwidth 2\jsZw \advance\leftskip\@lnumwidth \hskip-\leftskip #1\nobreak\hfil\nobreak\hbox to\@pnumwidth{\hss#2}\par \endgroup @@ -3912,10 +4656,13 @@ % % インデントと幅はそれぞれ1.5em,2.3emでしたが, % 1zw,3.683zwに変えました。 -% % \begin{macrocode} -%<book|report>\newcommand*{\l@section}{\@dottedtocline{1}{1\jsZw}{3.683\jsZw}} +%<book|report> % \newcommand*{\l@section}{\@dottedtocline{1}{1\jsZw}{3.683\jsZw}} % \end{macrocode} +% +% [2013-12-30] 上のインデントは |\js@tocl@width| から決めるように +% しました。(by ts) +% % \end{macro} % % \begin{macro}{\l@subsection} @@ -3926,22 +4673,53 @@ % さらに下位レベルの目次項目の体裁です。 % あまり使ったことがありませんので,要修正かもしれません。 % +% [2013-12-30] ここも |\js@tocl@width| から決めるように +% してみました。(by ts) +% % \begin{macrocode} %<*!book&!report> % \newcommand*{\l@subsection} {\@dottedtocline{2}{1.5em}{2.3em}} -\newcommand*{\l@subsection} {\@dottedtocline{2}{1\jsZw}{3\jsZw}} % \newcommand*{\l@subsubsection}{\@dottedtocline{3}{3.8em}{3.2em}} -\newcommand*{\l@subsubsection}{\@dottedtocline{3}{2\jsZw}{3\jsZw}} % \newcommand*{\l@paragraph} {\@dottedtocline{4}{7.0em}{4.1em}} -\newcommand*{\l@paragraph} {\@dottedtocline{4}{3\jsZw}{3\jsZw}} % \newcommand*{\l@subparagraph} {\@dottedtocline{5}{10em}{5em}} -\newcommand*{\l@subparagraph} {\@dottedtocline{5}{4\jsZw}{3\jsZw}} +% +% \newcommand*{\l@subsubsection}{\@dottedtocline{3}{2\jsZw}{3\jsZw}} +% \newcommand*{\l@paragraph} {\@dottedtocline{4}{3\jsZw}{3\jsZw}} +% \newcommand*{\l@subparagraph} {\@dottedtocline{5}{4\jsZw}{3\jsZw}} +% +\newcommand*{\l@subsection}{% + \@tempdima\js@tocl@width \advance\@tempdima -1\jsZw + \@dottedtocline{2}{\@tempdima}{3\jsZw}} +\newcommand*{\l@subsubsection}{% + \@tempdima\js@tocl@width \advance\@tempdima 0\jsZw + \@dottedtocline{3}{\@tempdima}{4\jsZw}} +\newcommand*{\l@paragraph}{% + \@tempdima\js@tocl@width \advance\@tempdima 1\jsZw + \@dottedtocline{4}{\@tempdima}{5\jsZw}} +\newcommand*{\l@subparagraph}{% + \@tempdima\js@tocl@width \advance\@tempdima 2\jsZw + \@dottedtocline{5}{\@tempdima}{6\jsZw}} %</!book&!report> %<*book|report> -\newcommand*{\l@subsection} {\@dottedtocline{2}{3.8em}{3.2em}} -\newcommand*{\l@subsubsection}{\@dottedtocline{3}{7.0em}{4.1em}} -\newcommand*{\l@paragraph} {\@dottedtocline{4}{10em}{5em}} -\newcommand*{\l@subparagraph} {\@dottedtocline{5}{12em}{6em}} +% \newcommand*{\l@subsection} {\@dottedtocline{2}{3.8em}{3.2em}} +% \newcommand*{\l@subsubsection}{\@dottedtocline{3}{7.0em}{4.1em}} +% \newcommand*{\l@paragraph} {\@dottedtocline{4}{10em}{5em}} +% \newcommand*{\l@subparagraph} {\@dottedtocline{5}{12em}{6em}} +\newcommand*{\l@section}{% + \@tempdima\js@tocl@width \advance\@tempdima -1\jsZw + \@dottedtocline{1}{\@tempdima}{3.683\jsZw}} +\newcommand*{\l@subsection}{% + \@tempdima\js@tocl@width \advance\@tempdima 2.683\jsZw + \@dottedtocline{2}{\@tempdima}{3.5\jsZw}} +\newcommand*{\l@subsubsection}{% + \@tempdima\js@tocl@width \advance\@tempdima 6.183\jsZw + \@dottedtocline{3}{\@tempdima}{4.5\jsZw}} +\newcommand*{\l@paragraph}{% + \@tempdima\js@tocl@width \advance\@tempdima 10.683\jsZw + \@dottedtocline{4}{\@tempdima}{5.5\jsZw}} +\newcommand*{\l@subparagraph}{% + \@tempdima\js@tocl@width \advance\@tempdima 16.183\jsZw + \@dottedtocline{5}{\@tempdima}{6.5\jsZw}} %</book|report> % \end{macrocode} % \end{macro} @@ -3973,7 +4751,7 @@ % % \begin{macrocode} \def\@dottedtocline#1#2#3#4#5{\ifnum #1>\c@tocdepth \else - \vskip \z@ \@plus.2\p@ + \vskip \z@ \@plus.2\p@? {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip \parindent #2\relax\@afterindenttrue \interlinepenalty\@M @@ -4211,7 +4989,7 @@ %<!book&!report> \@mkboth{\indexname}{\indexname}% \plainifnotempty % \thispagestyle{plain} \parindent\z@ - \parskip\z@ \@plus .3\p@\relax + \parskip\z@ \@plus .3\p@?\relax \let\item\@idxitem \raggedright \footnotesize\narrowbaselines @@ -4246,7 +5024,7 @@ % 索引で先頭文字ごとのブロックの間に入るスペースです。 % % \begin{macrocode} -\newcommand{\indexspace}{\par \vskip 10\p@ \@plus5\p@ \@minus3\p@\relax} +\newcommand{\indexspace}{\par \vskip 10\p@? \@plus5\p@? \@minus3\p@?\relax} % \end{macrocode} % \end{macro} % @@ -4294,12 +5072,18 @@ % % [2002-04-09] インプリメントの仕方を変えたため消しました。 % +% [2013-04-23] 新しい\pTeX では脚注番号のまわりにスペースが入りすぎることを防ぐため, +% 北川さんのパッチ [qa:57090] を取り込みました。 +% +% [2013-05-14] plcore.ltx に倣った形に書き直しました(Thanks: 北川さん)。 +% +% \begin{ZRnote} +% {\pTeX}依存のコードなので、{\pTeX}連携モジュールに移動。 +% \end{ZRnote} % \begin{macrocode} -% \def\@makefnmark{\hbox{\@textsuperscript{\normalfont -% \ifx\@thefnmark\@empty\else -% \textasteriskcentered -% \fi -% \@thefnmark}}} +%\renewcommand\@makefnmark{\hbox{}\hbox{% +% \ifydir \@textsuperscript{\normalfont\@thefnmark}% +% \else\hbox{\yoko\@textsuperscript{\normalfont\@thefnmark}}\fi}\hbox{}} % \end{macrocode} % \end{macro} % @@ -4329,9 +5113,9 @@ % % \begin{macrocode} \renewcommand{\footnoterule}{% - \kern-3\p@ + \kern-3\p@? \hrule width .4\columnwidth - \kern 2.6\p@} + \kern 2.6\p@?} % \end{macrocode} % \end{macro} % @@ -4422,29 +5206,49 @@ % % 段落頭のかぎかっこなどを見かけ1字半下げから全角1字下げに直します。 % +% \begin{ZRnote} +% \begin{macro}{\jsInhibitGlueAtParTop} +% 「段落頭の括弧の空き補正」の処理を |\jsInhibitGlueAtParTop| +% という命令にして、これを再定義可能にした。 +% \begin{macrocode} +\let\jsInhibitGlueAtParTop\@empty +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\everyparhook} +% 全ての段落の冒頭で実行されるフック。 +% これの初期値を先述の |\jsInhibitGlueAtParTop| とする。 +% \begin{macrocode} +\def\everyparhook{\jsInhibitGlueAtParTop} +\AtBeginDocument{\everypar{\everyparhook}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@inhibitglue} +% JSクラスでの |\jsInhibitGlueAtParTop| の実装。 % \begin{macrocode} \def\@inhibitglue{% \futurelet\@let@token\@@inhibitglue} \def\@@inhibitglue{% - \ifx\@let@token「 + \ifx\@let@token「% \jsInhibitGlue \else - \ifx\@let@token( + \ifx\@let@token(% \jsInhibitGlue \else - \ifx\@let@token『 + \ifx\@let@token『% \jsInhibitGlue \else - \ifx\@let@token[ + \ifx\@let@token[% \jsInhibitGlue \fi \fi \fi \fi} -\def\everyparhook{\jsInhibitGlueAtParTop} -\let\jsInhibitGlueAtParTop\@inhibitglue -\AtBeginDocument{\everypar{\everyparhook}} % \end{macrocode} +% \end{macro} +% +% \end{ZRnote} % % これだけではいけないようです。あちこちに |\everypar| を初期化するコマンドが % 隠されていました。 @@ -4504,7 +5308,9 @@ \else \clubpenalty \@clubpenalty \everypar{\everyparhook}% - \fi\everyparhook}% + \fi + \bxjs@ltj@inhibitglue + \everyparhook}% \if@noitemarg \@noitemargfalse \if@nmbrlist @@ -4629,7 +5435,7 @@ % \begin{macro}{\tablename} % \begin{macrocode} \newcommand{\figurename}{\if@english Fig.~\else 図\fi} -\newcommand{\tablename}{\if@english Table.~\else 表\fi} +\newcommand{\tablename}{\if@english Table~\else 表\fi} % \end{macrocode} % \end{macro} % \end{macro} @@ -4637,7 +5443,8 @@ % \begin{macro}{\appendixname} % \begin{macro}{\abstractname} % \begin{macrocode} -\newcommand{\appendixname}{\if@english Appendix~\else 付録\fi} +% \newcommand{\appendixname}{\if@english Appendix~\else 付録\fi} +\newcommand{\appendixname}{\if@english \else 付録\fi} %<!book&!report>\newcommand{\abstractname}{\if@english Abstract\else 概要\fi} % \end{macrocode} % \end{macro} @@ -4651,26 +5458,59 @@ % % \begin{macro}{\today} % \begin{macrocode} +\@tempswafalse +\if p\jsEngine \@tempswatrue \fi +\if n\jsEngine \@tempswatrue \fi +\if@tempswa \expandafter\@firstoftwo +\else \expandafter\@secondoftwo +\fi +{% +% 欧文8bitTeXの場合 +\newif\ifjsSeireki \jsSeirekitrue +\def\西暦{\jsSeirekitrue} +\def\和暦{\jsSeirekifalse} +\def\Seireki{\jsSeirekitrue} +\def\Wareki{\jsSeirekifalse} +\def\bxjs@if@use@seireki{% + \ifjsSeireki \expandafter\@firstoftwo + \else \expandafter\@secondoftwo \fi} +}{% \newif\if西暦 \西暦true \def\西暦{\西暦true} \def\和暦{\西暦false} +\def\Seireki{\西暦true} +\def\Wareki{\西暦false} +\def\bxjs@if@use@seireki{% + \if西暦 \expandafter\@firstoftwo + \else \expandafter\@secondoftwo \fi} +} +% \bxjs@unxp +\let\bxjs@unxp\@firstofone +\bxjs@test@engine\unexpanded{\let\bxjs@unxp\unexpanded} +% \bxjs@iai +\if \if p\jsEngine T\else\if n\jsEngine T\else F\fi\fi T + \def\bxjs@iai{\noexpand~} +\else \def\bxjs@iai{} +\fi +% \heisei \newcount\heisei \heisei\year \advance\heisei-1988\relax -\def\today{% +% \today +\edef\today{% \if@english \ifcase\month\or January\or February\or March\or April\or May\or June\or July\or August\or September\or October\or November\or December\fi \space\number\day, \number\year \else - \if西暦 - \number\year 年 - \number\month 月 - \number\day 日 - \else - 平成\number\heisei 年 - \number\month 月 - \number\day 日 - \fi + \noexpand\bxjs@if@use@seireki{% + \number\year\bxjs@iai\bxjs@unxp{年}% + \bxjs@iai\number\month\bxjs@iai\bxjs@unxp{月}% + \bxjs@iai\number\day\bxjs@iai\bxjs@unxp{日}% + }{% + \bxjs@unxp{平成}\bxjs@iai\number\heisei\bxjs@iai\bxjs@unxp{年}% + \bxjs@iai\number\month\bxjs@iai\bxjs@unxp{月}% + \bxjs@iai\number\day\bxjs@iai\bxjs@unxp{日}% + }% \fi} % \end{macrocode} % \end{macro} @@ -4701,61 +5541,98 @@ \raggedbottom \fi %<*slide> -% \renewcommand\kanjifamilydefault{\gtdefault} \renewcommand\familydefault{\sfdefault} \raggedright -% \xkanjiskip=0.1em\relax %</slide> % \end{macrocode} -%\begin{ZRnote} -%{(u)\pTeX} 上で動作している場合は、{\pTeX} 用の -%連携モジュールを読み込む。 -%最後に日本語文字のカテゴリコードを元に戻す。 -%\end{ZRnote} +% +% \paragraph{BXJS独自の追加処理 ☆} +% +% \begin{ZRnote} +% +% 和文ドライバのファイルを読み込む。 % \begin{macrocode} -\ifbxjs@ptexmodule - \input{bxjsptex.def} +\catcode`\?=12 +\ifx\bxjs@jadriver\relax\else +\input{bxjsja-\bxjs@jadriver.def} \fi +% \end{macrocode} +% +% 最後に日本語文字のカテゴリコードを元に戻す。 +% \begin{macrocode} \bxjs@restore@jltrcc -%</!ptex> +%</!drvminimal&!drvstandard> % \end{macrocode} % +% \end{ZRnote} +% % 以上です。 % -%^^A-------------------------------------------------------- +%^^A//////////////////////////////////////////////////////// % \clearpage % \appendix +%^^A======================================================== % \section{連携モジュールの仕様 ☆} % +% 次の命令がBXJSクラス本体と和文モジュールの連携のために +% 用意されている。 +% このうち、★印を付けたものは“書込”が許されるものである。 +% % \begin{itemize} -% \item 次の命令がBXJSクラス側で定義される。 -% \begin{itemize} -% \item |\jsDocClass| \zrNote{文字トークンの let}\quad -% 文書クラスの種類を示し、次のいずれかと一致する -% (|\if| で判定可能)。 -% \begin{quote}\begin{tabular}{l@{\qquad}l} -% |\jsArticle| & |bxjsarticle| クラス\\ -% |\jsBook| & |bxjsbook| クラス\\ -% |\jsReport| & |bxjsreport| クラス\\ -% |\jsSlide| & |bxjsslide| クラス -% \end{tabular}\end{quote} -% \item |\jsUnusualPtSize| \zrNote{整数定数を表す文字列のマクロ}\quad -% 基底フォントサイズが |10pt|、|11pt|、|12pt| のいずれでもない -% 場合の |\@ptsize| の値。 -% (|\@ptsize| 自体があまり有用でないと思われる。) -% \item |\jsScale| \zrNote{実数を表す文字列のマクロ}\quad -% 和文フォントサイズの要求サイズに対するスケール。 -% クラスオプション |scale| で指定される。 -% (既定値は0.924715。) -% \item |\jsInhibitGlue| \zrNote{マクロ}\quad -% |\inhibitglue| という命令が定義されていればそれを実行し、 -% そうでなければ何もしない。 -% JSクラスで |\inhibitglue| を用いている箇所は -% 全て |\jsInhibitGlue| に置き換えられている。 -% 従って、|\inhibitglue| は未定義でも動作するが、その実装が -% ある場合はBXJSクラスはそれを活用する。 -% \end{itemize} -% \item 「現在の全角幅」を表す長さ変数 |\jsZw| が用意されていて、 +% \item |\jsDocClass| \zrNote{文字トークンの let}\quad +% 文書クラスの種類を示し、次のいずれかと一致する +% (|\if| で判定可能)。 +% \begin{quote}\begin{tabular}{l@{\qquad}l} +% |\jsArticle| & |bxjsarticle| クラス\\ +% |\jsBook| & |bxjsbook| クラス\\ +% |\jsReport| & |bxjsreport| クラス\\ +% |\jsSlide| & |bxjsslide| クラス +% \end{tabular}\end{quote} +% \item |\jsEngine| \zrNote{文字トークンの let}\quad +% 使用されているエンジンの種別。 +% (|\if| で判定可能)。 +% \begin{quote}\begin{tabular}{l@{\qquad}l} +% |p| & pdf{\TeX}(DVIモードも含む)\\ +% |l| & Lua{\TeX}(〃)\\ +% |x| & {\XeTeX}\\ +% |j| & {\pTeX}または{\upTeX}\\ +% |n| & 以上の何れでもない +% \end{tabular}\end{quote} +% \item |\ifjsWithupTeX| \zrNote{スイッチ}\quad +% 使用されているエンジンが{\upTeX}であるか。 +% \item |\ifjsWitheTeX| \zrNote{スイッチ}\quad +% 使用されているエンジンが{\eTeX}拡張であるか。 +% \item |\ifjsInPdfMode| \zrNote{スイッチ}\quad +% 使用されているエンジンが(pdf{\TeX}・Lua{\TeX}の) +% PDFモードであるか。 +% \item |\jsUnusualPtSize| \zrNote{整数定数を表す文字列のマクロ}\quad +% 基底フォントサイズが |10pt|、|11pt|、|12pt| のいずれでもない +% 場合の |\@ptsize| の値。 +% (|\@ptsize| 自体があまり有用でないと思われる。) +% \item |\jsScale| \zrNote{実数を表す文字列のマクロ}\quad +% 和文フォントサイズの要求サイズに対するスケール。 +% クラスオプション |scale| で指定される。 +% (既定値は0.924715。) +% \item |\jsJaFont| \zrNote{マクロ}\quad +% 和文フォント設定を表す文字列。 +% クラスオプション |jafont| で指定された値。 +% \item |\jsJaParam| \zrNote{マクロ}\quad +% 和文モジュールに渡すパラメタを表す文字列。 +% この値が何を表すかは決まってなくて、各々の和文モジュールが +% 独自に解釈する。 +% クラスオプション |japaram| で指定された値。 +% \item |\jsInhibitGlue| \zrNote{マクロ}\quad +% |\inhibitglue| という命令が定義されていればそれを実行し、 +% そうでなければ何もしない。 +% JSクラスで |\inhibitglue| を用いている箇所は +% 全て |\jsInhibitGlue| に置き換えられている。 +% 従って、|\inhibitglue| は未定義でも動作するが、その実装が +% ある場合はBXJSクラスはそれを活用する。 +% \item |\jsInhibitGlueAtParTop| \zrNote{マクロ}★\quad +% 段落先頭におけるカギ括弧の位置調整を行うマクロ。 +% 全ての段落先頭で呼び出される。 +% \item |\jsZw| \zrNote{内部寸法値}\quad +% 「現在の全角幅」を表す変数。 % JSクラスでzw単位で設定されている長さパラメタはこの変数を単位と % して設定されている。 % この変数の値は実際に用いられる「和文フォント」のメトリックに @@ -4767,37 +5644,85 @@ % 和文フォントサイズを調整する必要がある。 % ほとんどの場合、和文フォントをNFSSで規定する際に |\jsScale| % の値をスケール値として与えれば上手くいく。 -% \item フォントサイズが変更された時には |\jsResetDimen| という -% マクロが呼び出される。 -% 和文コンポーネントでフォントサイズに依存するパラメタを -% ここで設定することができる。 +% \item |\jsFontSizeChanged| \zrNote{マクロ}\quad +% フォントサイズが変更された時に必ず呼び出されるマクロ。 +% \item |\jsResetDimen| \zrNote{マクロ}★\quad +% 上記 |\jsFontSizeChanged| の中で呼び出される、 +% ユーザ(和文モジュール)用のフック。 +% フォントサイズに依存するパラメタをここで設定することができる。 % 既定の定義は空。 % \end{itemize} % -% \section{{\pTeX}用の連携モジュール ☆} +%^^A======================================================== +% \section{和文ドライバ:minimal ☆} +% +% |jadriver| の指定が無い場合に適用されるドライバ。 +% また、standard ドライバはまずこのドライバファイルを +% 読み込んでいる。 +% +% このドライバでは、各エンジンについての必要最低限の処理だけを +% 行っている。 +% 日本語処理のためのパッケージ(xeCJK や Lua{\TeX}-ja 等) +% を自分で読み込んで適切な設定を行うという使用状況を想定している。 +% +% ただし、(u){\pTeX}エンジンについては例外で、和文処理機構の +% 選択の余地がないため、このドライバにおいて、 +% 「JSクラスと同等の指定」を完成させるためのコードを記述する。 +% +% \begin{macrocode} +%<*drvminimal> +%% このファイルは日本語文字を含みます +% \end{macrocode} +% +% \begin{macro}{\DeclareJaTextFontCommand} +% 和文書体のための、「余計なこと」をしない |\DeclareTextFontCommand|。 +% \begin{macrocode} +\def\DeclareJaTextFontCommand#1#2{% + \DeclareRobustCommand#1[1]{% + \relax + \ifmmode \expandafter\nfss@text \fi + {#2##1}}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\bxjs@if@sf@default} +% |\familydefault| の定義が“|\sfdefault|”である場合に +% 引数のコードを実行する。 +% \begin{macrocode} +\long\def\bxjs@@CSsfdefault{\sfdefault}% +\@onlypreamble\bxjs@if@sf@default +\def\bxjs@if@sf@default#1{% + \ifx\familydefault\bxjs@@CSsfdefault#1\fi + \AtBeginDocument{% + \ifx\familydefault\bxjs@@CSsfdefault#1\fi}% +} +% \end{macrocode} +% \end{macro} +% +% +% \subsection{(u){\pTeX}用の設定} +% +% \begin{macrocode} +\ifx j\jsEngine +% \end{macrocode} % -% ここでは、u{\pTeX}用の連携モジュールのコードを示す。 % 基本的に、JSクラスのコードの中で、「和文コンポーネントの管轄」 % としてBXJSクラスで除外されている部分に相当するが、 % 若干の変更が加えられている。 -% このモジュールは、BXJSクラスのオプションとして |platex| -% または |uplatex| を指定した時に自動的に読み込まれる。 -% オプションと実際のエンジンが一致しているかは -% 既に検査されている。 % % \paragraph{エンジン依存の定義} % -% 最初にエンジンに依存する定義を行う。 -% |\if@jsc@uplatex| はBXJSにおいて定義されているスイッチで、 +% 最初にエンジン({\pTeX}かu{\pTeX}か)に依存する定義を行う。 +% |\ifjsWithupTeX| はBXJSにおいて定義されているスイッチで、 % エンジンがu{\pTeX}であるかを表す。 % % |\jsc@JYn| および |\jsc@JTn| は標準の和文横書きおよび縦書き用 % エンコーディングを表す。 % \begin{macrocode} -%<*ptex> -\edef\jsc@JYn{\if@jsc@uplatex JY2\else JY1\fi} -\edef\jsc@JTn{\if@jsc@uplatex JT2\else JT1\fi} -\edef\jsc@pfx@{\if@jsc@uplatex u\fi} +\edef\jsc@JYn{\ifjsWithupTeX JY2\else JY1\fi} +\edef\jsc@JTn{\ifjsWithupTeX JT2\else JT1\fi} +\edef\jsc@pfx@{\ifjsWithupTeX u\fi} % \end{macrocode} % % |\bxjs@declarefontshape| は標準の和文フォント宣言である。 @@ -4808,12 +5733,12 @@ % JSクラスの |uplatex| オプション指定時の定義と同じである。 % \begin{macrocode} \@onlypreamble\bxjs@declarefontshape -\if@jsc@uplatex +\ifjsWithupTeX \def\bxjs@declarefontshape{% -\DeclareFontShape{JY2}{mc}{m}{n}{<->s*[\bxjs@scale]upjisr-h}{}% -\DeclareFontShape{JY2}{gt}{m}{n}{<->s*[\bxjs@scale]upjisg-h}{}% -\DeclareFontShape{JT2}{mc}{m}{n}{<->s*[\bxjs@scale]upjisr-v}{}% -\DeclareFontShape{JT2}{gt}{m}{n}{<->s*[\bxjs@scale]upjisg-v}{}% +\DeclareFontShape{JY2}{mc}{m}{n}{<->s*[\bxjs@scale]upjpnrm-h}{}% +\DeclareFontShape{JY2}{gt}{m}{n}{<->s*[\bxjs@scale]upjpngt-h}{}% +\DeclareFontShape{JT2}{mc}{m}{n}{<->s*[\bxjs@scale]upjpnrm-v}{}% +\DeclareFontShape{JT2}{gt}{m}{n}{<->s*[\bxjs@scale]upjpngt-v}{}% } \def\bxjs@sizereference{upjisr-h} % \end{macrocode} @@ -4833,11 +5758,15 @@ % \end{macrocode} % % 既に使用されている標準和文フォント定義がもしあれば取り消す。 -% (BXJSクラスの中から呼ばれている場合は不要のはずである。) - % \begin{macrocode} +% \begin{macrocode} +\def\bxjs@tmpa#1/#2/#3/#4/#5\relax{% + \def\bxjs@y{#5}} +\expandafter\expandafter\expandafter\bxjs@tmpa + \expandafter\string\the\jfont\relax \@for\bxjs@x:={\jsc@JYn/mc/m/n,\jsc@JYn/gt/m/n,% \jsc@JTn/mc/m/n,\jsc@JTn/gt/m/n}\do - {\expandafter\let\csname\bxjs@x/10\endcsname=\@undefined} + {\expandafter\let\csname\bxjs@x/10\endcsname=\@undefined + \expandafter\let\csname\bxjs@x/\bxjs@y\endcsname=\@undefined} % \end{macrocode} % % \paragraph{和文フォントスケールの補正} @@ -4907,8 +5836,15 @@ \DeclareRobustCommand\ttfamily {\not@math@alphabet\ttfamily\mathtt \romanfamily\ttdefault\kanjifamily\gtdefault\selectfont} -\def\textmc#1{\relax\ifmmode\hbox\fi{\mcfamily #1}} -\def\textgt#1{\relax\ifmmode\hbox\fi{\gtfamily #1}} +\DeclareJaTextFontCommand{\textmc}{\mcfamily} +\DeclareJaTextFontCommand{\textgt}{\gtfamily} +\bxjs@if@sf@default{% + \renewcommand\kanjifamilydefault{\gtdefault}} +% \end{macrocode} +% +% 念のため。 +% \begin{macrocode} +\selectfont % \end{macrocode} % % \paragraph{パラメタの設定} @@ -4917,6 +5853,7 @@ \prebreakpenalty\jis"2147=10000 \postbreakpenalty\jis"2148=10000 \prebreakpenalty\jis"2149=10000 +\inhibitxspcode`!=1 \inhibitxspcode`〒=2 \xspcode`+=3 \xspcode`\%=3 @@ -4926,12 +5863,771 @@ % \begin{macrocode} \@tempcnta="80 \@whilenum\@tempcnta<"100 \do{% \xspcode\@tempcnta=3\advance\@tempcnta\@ne} -%</ptex> % \end{macrocode} % -% 以上で終わり。 +% 新版の{\pTeX}で脚注番号の周囲の空きが過大になる現象への対処。 +% \begin{macrocode} +%\renewcommand\@makefnmark{\hbox{}\hbox{% +% \ifydir \@textsuperscript{\normalfont\@thefnmark}% +% \else\hbox{\yoko\@textsuperscript{\normalfont\@thefnmark}}\fi}\hbox{}} +% \end{macrocode} +% +% |\jsInhibitGlueAtParTop| の定義。 +% \begin{macrocode} +\let\jsInhibitGlueAtParTop\@inhibitglue +% \end{macrocode} +% % |\jsResetDimen| は空のままでよい。 % +% \subsection{pdf{\TeX}用の処理} +% +% \begin{macrocode} +\else\ifx p\jsEngine +% \end{macrocode} +% +% +% \begin{macrocode} +\@onlypreamble\bxjs@cjk@loaded +\def\bxjs@cjk@loaded{% + \def\@footnotemark{% + \leavevmode + \ifhmode + \edef\@x@sf{\the\spacefactor}% + \ifdim\lastkern>\z@\ifdim\lastkern<5sp\relax + \unkern\unkern + \ifdim\lastskip>\z@ \unskip \fi + \fi\fi + \nobreak + \fi + \@makefnmark + \ifhmode \spacefactor\@x@sf \fi + \relax}% + \let\bxjs@cjk@loaded\relax +} +\AtBeginDocument{% + \@ifpackageloaded{CJK}{% + \bxjs@cjk@loaded + }{}% +} +% \end{macrocode} +% +% 以上で終わり。 +% \begin{macrocode} +\fi\fi +%</drvminimal> +% \end{macrocode} +% +%^^A======================================================== +% \section{和文ドライバ:standard ☆} +% +% 標準のドライバ。 +% +% \begin{itemize} +% \item |\rmfamily|/|\sffamily|/|\ttfamily| での +% 和文ファミリ連動 +% \item |\mcfamily|/|\gtfamily| +% \item |\textmc|/|\textgt| +% \item |\zw| +% \item |\jQ|/|\jH| +% \item |\trueQ|/|\trueH|/|\ascQ| +% \item |\setkanjiskip|/|\getkanjiskip| +% \item |\setxkanjiskip|/|\getxkanjiskip| +% \end{itemize} +% +% \paragraph{和文フォント指定の扱い} +% +% |standard| 和文ドライバでは |\jsJaFont| の値を和文フォントの +% “プリセット”の指定として用いる。 +% プリセットの値は、{\TeX} Liveの |kanji-config-updmap| コマンドで +% 使う“ファミリ”と同じにすることを想定する。 +% 特別な値として、|auto| は |kanji-config-updmap| で現在指定 +% されているファミリを表す。 +% +%^^A---------------- +% \subsection{共通処理(1)} +% +% まず minimal ドライバを読み込む。 +% \begin{macrocode} +%<*drvstandard> +\input{bxjsja-minimal.def} +% \end{macrocode} +% +% \paragraph{共通命令の実装} +% +% |\jQ| 等の「単位」系の共通命令を実装する。 +% まず{$\varepsilon$-\TeX}拡張が使えるか検査する。 +% \begin{macrocode} +\ifjsWitheTeX +% \end{macrocode} +% 使える場合は、「|\dimexpr|外部寸法表記|\relax|」の形式 +% (これは内部値なので単位として使える)で各命令定義する。 +% +% \begin{macro}{\jQ} +% \begin{macro}{\jH} +% |\jQ| と |\jH| はともに0.25\,mmに等しい。 +% \begin{macrocode} + \@tempdima=0.25mm + \protected\edef\jQ{\dimexpr\the\@tempdima\relax} + \let\jH\jQ +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\trueQ} +% \begin{macro}{\trueH} +% |\trueQ| と |\trueH| はともに0.25\,true\,mmに等しい。 +% \begin{macrocode} + \ifbxjs@mag + \@tempdima=2.5mm + \@tempdimb=\jsBaseFontSize\relax + \edef\bxjs@tmpa{\strip@pt\@tempdimb}% + \bxjs@invscale\@tempdima\bxjs@tmpa + \edef\trueQ{\dimexpr\the\@tempdima\relax} + \else \let\trueQ\jQ + \fi + \let\trueH\trueQ +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\ascQ} +% |\ascQ| は |\trueQ| を和文スケール値で割った値。 +% 例えば、|\fontsize{12\ascQ}{16\trueH}| とすると、 +% 和文が12Qになる。 +% \begin{macrocode} + \@tempdima\trueQ \bxjs@invscale\@tempdima\jsScale + \edef\ascQ{\dimexpr\the\@tempdima\relax} +\fi +% \end{macrocode} +% \end{macro} +% +% 続いて、和文間空白・和欧文間空白関連の命令を実装する。 +% (エンジン依存のコード。) +% +% \begin{macro}{\bxjs@kanjiskip} +% 和文間空白の量を表すテキスト。 +% \begin{macrocode} +\def\bxjs@kanjiskip{0pt} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\setkanjiskip} +% 和文間空白の量を設定する。 +% \begin{macrocode} +\newcommand*\setkanjiskip[1]{% + \edef\bxjs@kanjiskip{#1}% + \bxjs@reset@kanjiskip} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\getkanjiskip} +% 和文間空白の量を表すテキストに展開する。 +% \begin{macrocode} +\newcommand*\getkanjiskip{% + \bxjs@kanjiskip} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ifbxjs@kanjiskip@enabled} +% 和文間空白の挿入が有効か。 +% ただし{\pTeX}では自身の |\(no)autospacing| での制御を +% 用いるのでこの変数は常に真とする。 +% \begin{macrocode} +\newif\ifbxjs@kanjiskip@enabled \bxjs@kanjiskip@enabledtrue +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\bxjs@enable@kanjiskip} +% \begin{macro}{\bxjs@disable@kanjiskip} +% 和文間空白の挿入を有効/無効にする。({\pTeX}以外) +% \begin{macrocode} +\bxjs@robust@def\bxjs@enable@kanjiskip{% + \bxjs@kanjiskip@enabledtrue + \bxjs@reset@kanjiskip} +\bxjs@robust@def\bxjs@disable@kanjiskip{% + \bxjs@kanjiskip@enabledfalse + \bxjs@reset@kanjiskip} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\bxjs@reset@kanjiskip} +% 現在の和文間空白の設定を実際にエンジンに反映させる。 +% \begin{macrocode} +\bxjs@robust@def\bxjs@reset@kanjiskip{% + \ifbxjs@kanjiskip@enabled + \setlength{\@tempskipa}{\bxjs@kanjiskip}% + \else \@tempskipa\z@ + \fi + \bxjs@apply@kanjiskip} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\bxjs@xkanjiskip} +% \begin{macro}{\setxkanjiskip} +% \begin{macro}{\getxkanjiskip} +% \begin{macro}{\ifbxjs@xkanjiskip@enabled} +% \begin{macro}{\bxjs@enable@xkanjiskip} +% \begin{macro}{\bxjs@disable@xkanjiskip} +% \begin{macro}{\bxjs@reset@xkanjiskip} +% 和欧文間空白について同様のものを用意する。 +% \begin{macrocode} +\def\bxjs@xkanjiskip{0pt} +\newcommand*\setxkanjiskip[1]{% + \edef\bxjs@xkanjiskip{#1}% + \bxjs@reset@xkanjiskip} +\newcommand*\getxkanjiskip{% + \bxjs@xkanjiskip} +\newif\ifbxjs@xkanjiskip@enabled \bxjs@xkanjiskip@enabledtrue +\bxjs@robust@def\bxjs@enable@xkanjiskip{% + \bxjs@xkanjiskip@enabledtrue + \bxjs@reset@xkanjiskip} +\bxjs@robust@def\bxjs@disable@xkanjiskip{% + \bxjs@xkanjiskip@enabledfalse + \bxjs@reset@xkanjiskip} +\bxjs@robust@def\bxjs@reset@xkanjiskip{% + \ifbxjs@xkanjiskip@enabled + \setlength{\@tempskipa}{\bxjs@xkanjiskip}% + \else \@tempskipa\z@ + \fi + \bxjs@apply@xkanjiskip} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% |\jsResetDimen| を用いて、フォントサイズが変更された時に +% 空白の量が追随するようにする。 +% \begin{macrocode} +\g@addto@macro\jsResetDimen{% + \bxjs@reset@kanjiskip + \bxjs@reset@xkanjiskip} +\let\bxjs@apply@kanjiskip\relax +\let\bxjs@apply@xkanjiskip\relax +% \end{macrocode} +% +% \paragraph{和文フォント指定の扱い} +% +% \begin{macro}{\bxjs@adjust@jafont} +% ムニャムニャ…。 +% \begin{macrocode} +\@onlypreamble\bxjs@adjust@jafont +\def\bxjs@adjust@jafont#1{% + \ifx\jsJaFont\bxjs@@auto + \bxjs@get@kanjiEmbed + \ifx\bxjs@kanjiEmbed\relax + \let\bxjs@tmpa\@empty + \else + \let\bxjs@tmpa\bxjs@kanjiEmbed + \fi + \else + \let\bxjs@tmpa\jsJaFont + \fi + \if f#1\ifx\bxjs@tmpa\bxjs@@noEmbed + \ClassWarning\bxjs@clsname + {Option 'jafont=noEmbed' is ignored, because no-embed\MessageBreak + is not available}% + \let\bxjs@tmpa\@empty + \fi\fi +} +\def\bxjs@@auto{auto} +\def\bxjs@@noEmbed{noEmbed} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\bxjs@kanjiEmbed} +% 現在の |updmap| の |kanjiEmbed| パラメタの値。 +% |\bxjs@get@kanjiEmbed| により設定される。 +% \begin{macrocode} +\let\bxjs@kanjiEmbed\relax +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\bxjs@get@kanjiEmbed} +% 現在の |updmap| の |kanjiEmbed| パラメタの値を取得する。 +% \begin{macrocode} +\@onlypreamble\bxjs@get@kanjiEmbed +\def\bxjs@get@kanjiEmbed{% + \begingroup\setbox\z@=\hbox{% + \global\let\bxjs@g@tmpa\relax + \endlinechar\m@ne + \let\do\@makeother\dospecials + \catcode32=10 \catcode12=10 %form-feed + \let\bxjs@tmpa\@empty + \openin\@inputcheck="|kpsewhich updmap.cfg"\relax + \ifeof\@inputcheck\else + \read\@inputcheck to\bxjs@tmpa + \closein\@inputcheck + \fi + \ifx\bxjs@tmpa\@empty\else + \openin\@inputcheck="\bxjs@tmpa"\relax + \@tempswatrue + \loop\if@tempswa + \read\@inputcheck to\bxjs@tmpa + \expandafter\bxjs@get@ke@a\bxjs@tmpa\@nil kanjiEmbed \@nil\@nnil + \ifx\bxjs@tmpa\relax\else + \global\let\bxjs@g@tmpa\bxjs@tmpa + \@tempswafalse + \fi + \ifeof\@inputcheck \@tempswafalse \fi + \repeat + \fi + }\endgroup + \let\bxjs@kanjiEmbed\bxjs@g@tmpa +} +\@onlypreamble\bxjs@get@ke@a +\def\bxjs@get@ke@a#1kanjiEmbed #2\@nil#3\@nnil{% + \ifx$#1$\def\bxjs@tmpa{#2}% + \else \let\bxjs@tmpa\relax + \fi} +% \end{macrocode} +% \end{macro} +% +% \paragraph{hyperref対策} +% +% 出力ページサイズに館する処理は |geometry| パッケージが行うので、 +% |hyperref| 側の処理は無効にしておく。 +% \begin{macrocode} +\PassOptionsToPackage{setpagesize=false}{hyperref} +% \end{macrocode} +% +% \begin{macro}{\bxjs@fix@hyperref@unicode} +% |hyperref| の |unicode| オプションの値を固定する。 +% \begin{macrocode} +\@onlypreamble\bxjs@fix@hyperref@unicode +\def\bxjs@fix@hyperref@unicode#1{% + \PassOptionsToPackage{bxjs/hook=#1}{hyperref}% + \@namedef{KV@Hyp@bxjs/hook}##1{% + \KV@Hyp@unicode{##1}% + \def\KV@Hyp@unicode####1{% + \expandafter\ifx\csname if##1\expandafter\endcsname + \csname if####1\endcsname\else + \ClassWarningNoLine\bxjs@clsname + {Blcoked hyperref option 'unicode=####1'}% + \fi + }% + }% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\bxjs@urgent@special} +% DVIのなるべく早い位置にspecialを出力する。 +% \begin{macrocode} +\@onlypreamble\bxjs@urgent@special +\def\bxjs@urgent@special#1{% + \AtBeginDvi{\special{#1}}% + \AtBeginDocument{% + \@ifpackageloaded{atbegshi}{% + \begingroup + \toks\z@{\special{#1}}% + \toks\tw@\expandafter{\AtBegShi@HookFirst}% + \xdef\AtBegShi@HookFirst{\the\toks@\the\toks\tw@}% + \endgroup + }{}% + }% +} +% \end{macrocode} +% \end{macro} +% +%^^A---------------- +% \subsection{{\pTeX}用設定} +% +% \begin{macrocode} +\if j\jsEngine +% \end{macrocode} +% +% \paragraph{共通命令の実装} +% +% \begin{macrocode} +\def\bxjs@apply@kanjiskip{% + \kanjiskip\@tempskipa} +\def\bxjs@apply@xkanjiskip{% + \xkanjiskip\@tempskipa} +% \end{macrocode} +% +% \paragraph{和文フォント指定の扱い} +% +% {\pTeX}は既定で |kanji-config-updmap| の設定に従うため、 +% |\jsJaFont| が |auto| の場合は何もする必要がない。 +% 無指定でも |auto| でもない場合は、|\jsJaFont| をオプションに +% して |pxchfon| パッケージを読み込む。 +% \begin{macrocode} +\let\bxjs@tmpa\jsJaFont +\ifx\bxjs@tmpa\bxjs@@auto + \let\bxjs@tmpa\@empty +\else\ifx\bxjs@tmpa\bxjs@@noEmbed + \def\bxjs@tmpa{noembed} +\fi\fi +\ifx\jsJaFont\@empty\else + \edef\bxjs@nxt{% + \noexpand\RequirePackage[\jsJaFont] + {pxchfon}[2010/05/12]}% v0.5 + \bxjs@nxt +\fi +% \end{macrocode} +% +% \paragraph{otfパッケージ対策} +% +% インストールされている |otf| パッケージが |scale| オプションに +% 対応している場合は |scale=(\jsScaleの値)| を事前に |otf| に渡す。 +% \Note otf.sty の中に「|\RequirePackage{keyval}|」の行が存在する +% かにより判定している。 +% (もっといい方法はないのか……。) +% +% \begin{macrocode} +\begingroup + \global\let\@gtempa\relax + \catcode`\|=0 \catcode`\\=12 + |def|bxjs@check#1|@nil{% + |bxjs@check@a#1|@nil\RequirePackage|@nnil}% + |def|bxjs@check@a#1\RequirePackage#2|@nnil{% + |ifx$#1$|bxjs@check@b#2|@nil keyval|@nnil |fi}% + |catcode`|\=0 \catcode`\|=12 + \def\bxjs@check@b#1keyval#2\@nnil{% + \ifx$#2$\else + \xdef\@gtempa{% + \noexpand\PassOptionsToPackage{scale=\jsScale}{otf}}% + \fi} +\@firstofone{% + \catcode10=12 \endlinechar\m@ne + \let\do\@makeother \dospecials \catcode32=10 + \openin\@inputcheck=otf.sty\relax + \@tempswatrue + \loop\if@tempswa + \ifeof\@inputcheck \@tempswafalse \fi + \if@tempswa + \read\@inputcheck to\bxjs@line + \expandafter\bxjs@check\bxjs@line\@nil + \fi + \repeat + \closein\@inputcheck +\endgroup} +\@gtempa +% \end{macrocode} +% +% \paragraph{hyperref対策} +% +% |unicode| にしてはいけない。 +% \begin{macrocode} +\bxjs@fix@hyperref@unicode{false} +% \end{macrocode} +% +% |tounicode| special命令を出力する。 +% \begin{macrocode} +\ifx\bxjs@driver@given\bxjs@driver@@dvipdfmx + \ifnum\jis"2121="A1A1 %euc + \bxjs@urgent@special{pdf:tounicode EUC-UCS2} + \else\ifnum\jis"2121="8140 %sjis + \bxjs@urgent@special{pdf:tounicode 90ms-RKSJ-UCS2} + \else\ifnum\jis"2121="3000 %uptex + \bxjs@urgent@special{pdf:tounicode UTF8-UCS2} + \fi\fi\fi + \let\bxToUnicodeSpecialDone=t +\fi +% \end{macrocode} +% +% \paragraph{microtype対策} +% +% \begin{macrocode} +\@namedef{ver@microtype.sty}{2000/01/01} +\newcommand*\UseMicrotypeSet[2][]{} +% \end{macrocode} +% +%^^A---------------- +% \subsection{pdf{\TeX}用設定: CJK + bxcjkjatype} +% +% \begin{macrocode} +\else\if p\jsEngine +% \end{macrocode} +% +% \paragraph{bxcjkjatypeパッケージの読込} +% +% |\jsJaFont| が指定されている場合は、その値を |bxcjkjatype| の +% オプション(プリセット指定)に渡す。 +% (|auto| ならば |\bxjs@get@kanjiEmbed| を実行する。) +% \begin{macrocode} +\bxjs@adjust@jafont{f} +\edef\bxjs@nxt{% + \noexpand\RequirePackage[% + \ifx\bxjs@tmpa\@empty\else \bxjs@tmpa,\fi + whole,autotilde]{bxcjkjatype}[2013/10/15]}% v0.2c +\bxjs@nxt +\bxjs@cjk@loaded +% \end{macrocode} +% +% \paragraph{hyperref対策} +% +% |bxcjkjatype| 使用時は |unicode| にするべき。 +% \Note 取りあえず固定はしない。 +% +% \begin{macrocode} +\PassOptionsToPackage{unicode}{hyperref} +% \end{macrocode} +% +% \paragraph{共通命令の実装} +% +% \begin{macrocode} +\newskip\jsKanjiSkip +\newskip\jsXKanjiSkip +\ifx\CJKecglue\@undefined + \def\CJKtilde{\CJK@global\def~{\CJKecglue\ignorespaces}} +\fi +\let\autospacing\bxjs@enable@kanjiskip +\let\noautospacing\bxjs@disable@kanjiskip +\protected\def\bxjs@CJKglue{\hskip\jsKanjiSkip} +\def\bxjs@apply@kanjiskip{% + \jsKanjiSkip\@tempskipa + \let\CJKglue\bxjs@CJKglue} +\let\autoxspacing\bxjs@enable@xkanjiskip +\let\noautoxspacing\bxjs@disable@xkanjiskip +\protected\def\bxjs@CJKecglue{\hskip\jsXKanjiSkip} +\def\bxjs@apply@xkanjiskip{% + \jsXKanjiSkip\@tempskipa + \let\CJKecglue\bxjs@CJKecglue} +% \end{macrocode} +% +%^^A---------------- +% \subsection{{\XeTeX}用設定: xeCJK + zxjatype} +% +% \begin{macrocode} +\else\if x\jsEngine +% \end{macrocode} +% +% \paragraph{zxjatypeパッケージの読込} +% +% スケール値(|\jsScale|)の反映は zxjatype の側で行われる。 +% \begin{macrocode} +\RequirePackage{zxjatype} +\PassOptionsToPackage{no-math}{fontspec}%! +\ifx\zxJaFamilyName\@undefined + \ClassError\bxjs@clsname + {xeCJK or zxjatype is too old}\@ehc +\fi +% \end{macrocode} +% +% \paragraph{和文フォント定義} +% +% |\jsJaFont| が指定された場合は、その値をオプションと +% して |zxjafont| を読み込む。 +% 非指定の場合はIPAexフォントを使用する。 +% \begin{macrocode} +\bxjs@adjust@jafont{f} +\ifx\bxjs@tmpa\@empty + \setCJKmainfont[BoldFont=IPAexGothic]{IPAexMincho} + \setCJKsansfont[BoldFont=IPAexGothic]{IPAexGothic} +\else + \edef\bxjs@nxt{% + \noexpand\RequirePackage[\bxjs@tmpa]% + {zxjafont}[2013/01/28]}% v0.2a + \bxjs@nxt +\fi +% \end{macrocode} +% +% \paragraph{hyperref対策} +% +% 昔の |hyperref| では |unicode| を無効にするのが正解だった。 +% ところが、現在では“形式上は” |unicode| を有効にするのが正解で、 +% 無効だと警告が出て強制的に有効化される。 +% 内部動作としては、「通常({\XeTeX}以外)の |unicode| 無効」の時と +% 同じになるようである。 +% 取りあえず、ここでは |unicode| オプションの設定を行わない。 +% +% \paragraph{段落頭でのグルー挿入禁止} +% +% \begin{macrocode} +\let\jsInhibitGlueAtParTop\@inhibitglue +% \end{macrocode} +% +% \paragraph{共通命令の実装} +% +% \begin{macrocode} +\newskip\jsKanjiSkip +\newskip\jsXKanjiSkip +\ifx\CJKecglue\@undefined + \def\CJKtilde{\CJK@global\def~{\CJKecglue\ignorespaces}} +\fi +\let\autospacing\bxjs@enable@kanjiskip +\let\noautospacing\bxjs@disable@kanjiskip +\protected\def\bxjs@CJKglue{\hskip\jsKanjiSkip} +\def\bxjs@apply@kanjiskip{% + \jsKanjiSkip\@tempskipa + \xeCJKsetup{CJKglue={\bxjs@CJKglue}}} +\let\autoxspacing\bxjs@enable@xkanjiskip +\let\noautoxspacing\bxjs@disable@xkanjiskip +\protected\def\bxjs@CJKecglue{\hskip\jsXKanjiSkip} +\def\bxjs@apply@xkanjiskip{% + \jsXKanjiSkip\@tempskipa + \xeCJKsetup{CJKecglue={\bxjs@CJKecglue}}} +% \end{macrocode} +% +% |\mcfamily|、|\gtfamily| は本来は zxjatype の方で定義すべき +% であろうが、現状は暫定的にここで定義する。 +% \begin{macrocode} +\ifx\mcfamily\@undefined + \protected\def\mcfamily{\CJKfamily{\CJKrmdefault}} + \protected\def\gtfamily{\CJKfamily{\CJKsfdefault}} +\fi +% \end{macrocode} +% +%^^A---------------- +% \subsection{Lua{\TeX}用設定: Lua{\TeX}-ja} +% +% \begin{macrocode} +\else\if l\jsEngine +% \end{macrocode} +% +% \paragraph{Lua{\TeX}-jaパッケージの読込} +% +% |luatexja| とともに |luatexja-fontspec| パッケージを読み込む。 +% +% |luatexja| は自前の |\zw|(これは実際の現在和文フォントに +% 基づく値を返す)を定義するので、|\zw| の定義を消しておく。 +% なお、レイアウト定義の「全角幅」は「規定」に基づく |\jsZw| で +% あることに注意が必要。 +% +% \begin{macrocode} +\let\zw\@undefined +\RequirePackage{luatexja} +\RequirePackage{luatexja-fontspec} +% \end{macrocode} +% +% \paragraph{和文フォント定義} +% +% |luatexja-fontspec| で使用する和文スケール値を |\jsScale| と合致 +% させたいのだが……もっと良い方法はないのか? +% \begin{macrocode} +\ExplSyntaxOn +\fp_gset:Nn \g_ltj_fontspec_scale_fp { \jsScale } +\ExplSyntaxOff +% \end{macrocode} +% +% |\jsJaFont| が指定された場合は、その値をオプションと +% して |luatexja-preset| を読み込む。 +% 非指定の場合は、|luatexja-preset| パッケージの |ipaex| +% オプション(IPAexフォント使用)と等価な設定を用いる +% (|luatexja-preset| は読み込まない)。 +% \begin{macrocode} +\bxjs@adjust@jafont{t} +\ifx\bxjs@tmpa\bxjs@@noEmbed + \def\bxjs@tmpa{noembed} +\fi +\ifx\bxjs@tmpa\@empty + \defaultjfontfeatures{ Kerning=Off } + \setmainjfont[BoldFont=IPAexGothic,JFM=ujis]{IPAexMincho} + \setsansjfont[BoldFont=IPAexGothic,JFM=ujis]{IPAexGothic} +\else + \edef\bxjs@nxt{% + \noexpand\RequirePackage[\bxjs@tmpa] + {luatexja-preset}}% + \bxjs@nxt +\fi +% \end{macrocode} +% +% 欧文総称フォント命令で和文フォントが連動するように修正する。 +% その他の和文フォント関係の定義を行う。 +% \begin{macrocode} +\DeclareRobustCommand\rmfamily + {\not@math@alphabet\rmfamily\mathrm + \romanfamily\rmdefault\kanjifamily\mcdefault\selectfont} +\DeclareRobustCommand\sffamily + {\not@math@alphabet\sffamily\mathsf + \romanfamily\sfdefault\kanjifamily\gtdefault\selectfont} +\DeclareRobustCommand\ttfamily + {\not@math@alphabet\ttfamily\mathtt + \romanfamily\ttdefault\kanjifamily\gtdefault\selectfont} +\AtBeginDocument{% + \reDeclareMathAlphabet{\mathrm}{\mathrm}{\mathmc} + \reDeclareMathAlphabet{\mathbf}{\mathbf}{\mathgt}}% +\bxjs@if@sf@default{% + \renewcommand\kanjifamilydefault{\gtdefault}} +% \end{macrocode} +% +% \paragraph{和文パラメタの設定} +% +% \begin{macrocode} +% 次の3つは既定値の通り +%\ltjsetparameter{prebreakpenalty={`’,10000}} +%\ltjsetparameter{postbreakpenalty={`“,10000}} +%\ltjsetparameter{prebreakpenalty={`”,10000}} +\ltjsetparameter{jaxspmode={`!,1}} +\ltjsetparameter{jaxspmode={`〒,2}} +\ltjsetparameter{alxspmode={`+,3}} +\ltjsetparameter{alxspmode={`\%,3}} +% \end{macrocode} +% +% \paragraph{段落頭でのグルー挿入禁止} +% +% \begin{macrocode} +\protected\def\@inhibitglue{% + \directlua{% + luatexja.jfmglue.create_beginpar_node()}} +\let\bxjs@ltj@inhibitglue\@inhibitglue +\let\@@inhibitglue\@undefined +% \end{macrocode} +% +% \paragraph{hyperref対策} +% +% |unicode| にするべき。 +% \begin{macrocode} +\bxjs@fix@hyperref@unicode{true} +% \end{macrocode} +% +% \paragraph{共通命令の実装} +% +% \begin{macrocode} +\protected\def\autospacing{% + \ltjsetparameter{autospacing=true}} +\protected\def\noautospacing{% + \ltjsetparameter{autospacing=false}} +\protected\def\autoxspacing{% + \ltjsetparameter{autoxspacing=true}} +\protected\def\noautoxspacing{% + \ltjsetparameter{autoxspacing=false}} +\def\bxjs@apply@kanjiskip{% + \ltjsetparameter{kanjiskip={\@tempskipa}}} +\def\bxjs@apply@xkanjiskip{% + \ltjsetparameter{xkanjiskip={\@tempskipa}}} +% \end{macrocode} +% +%^^A---------------- +% \subsection{共通処理(2)} +% +% \begin{macrocode} +\fi\fi\fi\fi +% \end{macrocode} +% +% \paragraph{共通命令の実装} +% \begin{macro}{\textmc} +% \begin{macro}{\textgt} +% minimal ドライバ実装中で定義した |\DeclareJaTextFontCommand| +% を利用する。 +% \begin{macrocode} +\DeclareJaTextFontCommand{\textmc}{\mcfamily} +\DeclareJaTextFontCommand{\textgt}{\gtfamily} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \paragraph{和文・和欧文間空白の初期値} +% +% \begin{macrocode} +\setkanjiskip{0pt plus.1\jsZw minus.01\jsZw} +\ifx\jsDocClass\jsSlide \setxkanjiskip{0.1em} +\else \setxkanjiskip{0.25em plus 0.15em minus 0.06em} +\fi +% \end{macrocode} +% +% 以上で終わり。 +% +% \begin{macrocode} +%</drvstandard> +% \end{macrocode} +% % \Finale % \endinput diff --git a/Master/texmf-dist/source/latex/bxjscls/bxjscls.ins b/Master/texmf-dist/source/latex/bxjscls/bxjscls.ins new file mode 100644 index 00000000000..b7697b1d67e --- /dev/null +++ b/Master/texmf-dist/source/latex/bxjscls/bxjscls.ins @@ -0,0 +1,11 @@ +%% bxjscls.ins : installer file for bxjscls.dtx +\def\batchfile{bxjscls.ins} +\input docstrip.tex +\keepsilent +\generateFile{bxjsarticle.cls}{f}{\from{bxjscls.dtx}{article}} +\generateFile{bxjsreport.cls}{f}{\from{bxjscls.dtx}{report}} +\generateFile{bxjsja-minimal.def}{f}{\from{bxjscls.dtx}{drvminimal}} +\generateFile{bxjsja-standard.def}{f}{\from{bxjscls.dtx}{drvstandard}} +\generateFile{bxjsbook.cls}{f}{\from{bxjscls.dtx}{book}} +\generateFile{bxjsslide.cls}{f}{\from{bxjscls.dtx}{slide}} +%% EOF diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsarticle.cls b/Master/texmf-dist/tex/latex/bxjscls/bxjsarticle.cls index 2f2106557f9..acdd447e30a 100644 --- a/Master/texmf-dist/tex/latex/bxjscls/bxjsarticle.cls +++ b/Master/texmf-dist/tex/latex/bxjscls/bxjsarticle.cls @@ -4,7 +4,7 @@ %% %% The original source files were: %% -%% bxjsclasses.dtx (with options: `article') +%% bxjscls.dtx (with options: `article') %% %% IMPORTANT NOTICE: %% @@ -14,7 +14,7 @@ %% with new filenames distinct from bxjsarticle.cls. %% %% For distribution of the original source see the terms -%% for copying and modification in the file bxjsclasses.dtx. +%% for copying and modification in the file bxjscls.dtx. %% %% This generated file may be distributed as long as the %% original source files, as listed above, are part of the @@ -37,22 +37,37 @@ %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e} \ProvidesClass{bxjsarticle} - [2012/05/01 v0.3a BXJS document classes] + [2015/08/05 v1.0 BXJS document classes] \RequirePackage{calc} \RequirePackage{keyval} -\let\bxjs@engine=n +\let\jsEngine=n \def\bxjs@test@engine#1#2{% \edef\bxjs@tmpa{\string#1}% \edef\bxjs@tmpb{\meaning#1}% \ifx\bxjs@tmpa\bxjs@tmpb #2\fi} -\bxjs@test@engine\kanjiskip{\let\bxjs@engine=j} -\bxjs@test@engine\jintercharskip{\let\bxjs@engine=J} -\bxjs@test@engine\XeTeXversion{\let\bxjs@engine=x} -\bxjs@test@engine\pdftexversion{\let\bxjs@engine=p} -\bxjs@test@engine\luatexversion{\let\bxjs@engine=l} -\newif\if@jsc@uplatex +\bxjs@test@engine\kanjiskip{\let\jsEngine=j} +\bxjs@test@engine\jintercharskip{\let\jsEngine=J} +\bxjs@test@engine\XeTeXversion{\let\jsEngine=x} +\bxjs@test@engine\pdftexversion{\let\jsEngine=p} +\bxjs@test@engine\luatexversion{\let\jsEngine=l} +\newif\ifjsWithupTeX \ifx\ucs\@undefined\else \ifnum\ucs"3000="3000 - \@jsc@uplatextrue + \jsWithupTeXtrue +\fi\fi +\let\if@jsc@uplatex\ifjsWithupTeX +\newif\ifjsWitheTeX +\bxjs@test@engine\eTeXversion{\jsWitheTeXtrue} +\ifjsWitheTeX \let\bxjs@protected\protected +\else \let\bxjs@protected\@empty +\fi +\ifjsWitheTeX + \def\bxjs@robust@def{\protected\def} +\else + \def\bxjs@robust@def{\DeclareRobustCommand*} +\fi +\newif\ifjsInPdfMode +\ifx\pdfoutput\@undefined\else\ifnum\pdfoutput>\z@ + \jsInPdfModetrue \fi\fi \let\jsArticle=a \let\jsBook=b @@ -62,7 +77,7 @@ \def\bxjs@clsname{bxjsarticle} \@onlypreamble\bxjs@restore@jltrcc \let\bxjs@restore@jltrcc\@empty -\if l\bxjs@engine +\if l\jsEngine \def\bxjs@change@jltrcc#1{% \xdef\bxjs@restore@jltrcc{% \bxjs@restore@jltrcc @@ -71,7 +86,7 @@ \@tfor\bxjs@x:=西暦\do {\expandafter\bxjs@change@jltrcc\bxjs@x} \fi -\DeclareRobustCommand*{\jsInhibitGlue}{% +\bxjs@robust@def\jsInhibitGlue{% \ifx\inhibitglue\@undefined\else \inhibitglue \fi} \newif\if@restonecol \newif\if@titlepage @@ -121,8 +136,12 @@ \DeclareOption{30pt}{\bxjs@setbasefontsize{29.86pt}} \DeclareOption{36pt}{\bxjs@setbasefontsize{35.83pt}} \DeclareOption{43pt}{\bxjs@setbasefontsize{43pt}} -\DeclareOption{12Q}{\bxjs@setbasefontsize{3mm}} -\DeclareOption{14Q}{\bxjs@setbasefontsize{3.5mm}} +\DeclareOption{12Q}{\bxjs@setjbasefontsize{3mm}} +\DeclareOption{14Q}{\bxjs@setjbasefontsize{3.5mm}} +\DeclareOption{10ptj}{\bxjs@setjbasefontsize{10pt}} +\DeclareOption{10.5ptj}{\bxjs@setjbasefontsize{10.5pt}} +\DeclareOption{11ptj}{\bxjs@setjbasefontsize{11pt}} +\DeclareOption{12ptj}{\bxjs@setjbasefontsize{12pt}} \DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse} \DeclareOption{twoside}{\@twosidetrue \@mparswitchtrue} \DeclareOption{vartwoside}{\@twosidetrue \@mparswitchfalse} @@ -171,9 +190,21 @@ &\global\@eqcnt\thr@@ \hb@xt@\z@\bgroup\hss##\egroup \tabskip\z@skip\cr }} -\newif\ifdraft -\DeclareOption{draft}{\drafttrue \setlength\overfullrule{5pt}} -\DeclareOption{final}{\draftfalse \setlength\overfullrule{0pt}} +\let\ifjsDraft\iffalse +\@onlypreamble\bxjs@draft +\def\bxjs@draft#1{% + \expandafter\let\expandafter\ifjsDraft\csname if#1\endcsname} +\DeclareOption{draft}{\bxjs@draft{true}\setlength\overfullrule{5pt}} +\DeclareOption{final}{\bxjs@draft{false}\setlength\overfullrule{0pt}} +\AtBeginDocument{% + \expandafter\ifx\csname ifdraft\endcsname\relax + \expandafter\let\csname ifdraft\expandafter\endcsname + \csname ifjsDraft\endcsname + \fi} +\newif\ifbxjs@papersize +\bxjs@papersizetrue +\DeclareOption{nopapersize}{\bxjs@papersizefalse} +\DeclareOption{papersize}{\bxjs@papersizetrue} \newif\if@english \@englishfalse \DeclareOption{english}{\@englishtrue} @@ -195,41 +226,192 @@ \else \@tempdimb=\@tempcntb\@ne \fi}% \xdef\bxjs@gtmpa{\the\@tempdimb}% \egroup #1=\bxjs@gtmpa\relax} -\newif\ifbxjs@ptexmodule +\DeclareOption{autodetect-engine}{% + \let\bxjs@engine@given=*} +\DeclareOption{latex}{% + \def\bxjs@engine@opt{latex}% + \let\bxjs@engine@given=n} \DeclareOption{platex}{% - \@tempswafalse - \if j\bxjs@engine \if@jsc@uplatex\else \@tempswatrue \fi\fi - \bxjs@opt@platex} + \def\bxjs@engine@opt{platex}% + \let\bxjs@engine@given=j} \DeclareOption{uplatex}{% - \@tempswafalse - \if j\bxjs@engine \if@jsc@uplatex \@tempswatrue \fi\fi - \bxjs@opt@platex} -\def\bxjs@opt@platex{% - \if@tempswa - \bxjs@ptexmoduletrue - \else - \ClassError\bxjs@clsname% - {Option `\CurrentOption' used on wrong engine}\@ehc - \fi} + \def\bxjs@engine@opt{uplatex}% + \let\bxjs@engine@given=u} +\DeclareOption{xelatex}{% + \def\bxjs@engine@opt{xelatex}% + \let\bxjs@engine@given=x} +\DeclareOption{pdflatex}{% + \def\bxjs@engine@opt{pdflatex}% + \let\bxjs@engine@given=p} +\DeclareOption{lualatex}{% + \def\bxjs@engine@opt{lualatex}% + \let\bxjs@engine@given=l} +\let\bxjs@driver@@dvimode=0 +\let\bxjs@driver@@dvipdfmx=1 +\let\bxjs@driver@@pdfmode=2 +\let\bxjs@driver@@xetex=3 +\DeclareOption{dvips}{% + \def\bxjs@driver@opt{dvips}% + \let\bxjs@driver@given\bxjs@driver@@dvimode} +\DeclareOption{dviout}{% + \def\bxjs@driver@opt{dviout}% + \let\bxjs@driver@given\bxjs@driver@@dvimode} +\DeclareOption{xdvi}{% + \def\bxjs@driver@opt{xdvi}% + \let\bxjs@driver@given\bxjs@driver@@dvimode} +\DeclareOption{dvipdfmx}{% + \def\bxjs@driver@opt{dvipdfmx}% + \let\bxjs@driver@given\bxjs@driver@@dvipdfmx} +\DeclareOption{pdftex}{% + \def\bxjs@driver@opt{pdftex}% + \let\bxjs@driver@given\bxjs@driver@@pdfmode} +\DeclareOption{luatex}{% + \def\bxjs@driver@opt{luatex}% + \let\bxjs@driver@given\bxjs@driver@@pdfmode} +\DeclareOption{xetex}{% + \def\bxjs@driver@opt{xetex}% + \let\bxjs@driver@given\bxjs@driver@@xetex} +\DeclareOption{dvipdfmx-if-dvi}{% + \def\bxjs@driver@opt{dvipdfmx-if-dvi}% + \let\bxjs@driver@given\@undefined} +\newif\ifbxjs@usezw \bxjs@usezwtrue +\DeclareOption{nozw}{% + \bxjs@usezwfalse} +\DeclareOption{zw}{% + \bxjs@usezwtrue} +\newif\ifbxjs@disguise@js \bxjs@disguise@jstrue +\DeclareOption{nojs}{% + \bxjs@disguise@jsfalse} +\DeclareOption{js}{% + \bxjs@disguise@jstrue} \def\bxjs@setkey{% \expandafter\bxjs@setkey@a\expandafter{\CurrentOption}} \def\bxjs@setkey@a{\setkeys{bxjs}} -\define@key{bxjs}{base}{\bxjs@setbasefontsize{#1}} +\DeclareOption*{\bxjs@setkey} +\newif\ifbxjs@scaleset \def\jsScale{0.924715} +\def\Cjascale{\jsScale} +\define@key{bxjs}{base}{\bxjs@setbasefontsize{#1}} +\@onlypreamble\bxjs@do@opt@jbase \let\bxjs@do@opt@jbase\relax -\define@key{bxjs}{jbase}{% - \def\bxjs@do@opt@jbase{\bxjs@opt@jbase{#1}}} -\def\bxjs@opt@jbase#1{% - \setlength\@tempdima{#1}% - \bxjs@invscale\@tempdima\jsScale - \bxjs@setbasefontsize{\@tempdima}} -\define@key{bxjs}{scale}{\edef\jsScale{#1}} +\define@key{bxjs}{jbase}{\bxjs@setjbasefontsize{#1}} +\def\bxjs@setjbasefontsize#1{% + \def\bxjs@do@opt@jbase{% + \setlength\@tempdima{#1}% + \bxjs@invscale\@tempdima\jsScale + \bxjs@setbasefontsize{\@tempdima}}} +\define@key{bxjs}{scale}{% + \bxjs@scalesettrue + \edef\jsScale{#1}} +\DeclareOption{noscale}{% + \bxjs@scalesettrue + \def\jsScale{1}} +\DeclareOption{CJK}{% + \ClassWarning\bxjs@clsname + {Option `CJK' was abolished}} \let\bxjs@param@mag\relax \define@key{bxjs}{mag}{\edef\bxjs@param@mag{#1}} \define@key{bxjs}{paper}{\edef\bxjs@param@paper{#1}} -\DeclareOption*{\bxjs@setkey} +\let\bxjs@jadriver\relax +\define@key{bxjs}{jadriver}{\edef\bxjs@jadriver{#1}} +\define@key{bxjs}{ja}{\edef\bxjs@jadriver{#1}} +\let\jsJaFont\@empty +\define@key{bxjs}{jafont}{\edef\jsJaFont{#1}} +\let\jsJaParam\@empty +\define@key{bxjs}{japaram}{\edef\jsJaParam{#1}} +\let\bxjs@magstyle@mag=m +\let\bxjs@magstyle@real=r +\let\bxjs@magstyle@xreal=x +\let\bxjs@magstyle\bxjs@magstyle@mag +\define@key{bxjs}{magstyle}{% + \expandafter\let\expandafter\bxjs@magstyle\csname + bxjs@magstyle@#1\endcsname + \ifx\bxjs@magstyle\relax + \ClassError\bxjs@clsname + {Invalid magstyle value `#1'}\@ehc + \let\bxjs@magstyle\bxjs@magstyle@mag + \fi} +\let\ltx@removeelement\@removeelement +\def\@removeelement#1#2#3{% + \def\reserved@a{#2}% + \ifx\reserved@a\@empty \let#3\@empty + \else \ltx@removeelement{#1}{#2}{#3}% + \fi} \ExecuteOptions{a4paper,oneside,onecolumn,notitlepage,final} \ProcessOptions\relax +\@expandtwoargs\@removeelement + {papersize}\@classoptionslist\@classoptionslist +\@expandtwoargs\@removeelement + {10pt}\@classoptionslist\@classoptionslist +\let\bxjs@tmpb\jsEngine +\ifx j\bxjs@tmpb\ifjsWithupTeX + \let\bxjs@tmpb=u +\fi\fi +\ifx p\bxjs@tmpb\ifjsInPdfMode\else + \let\bxjs@tmpb=n +\fi\fi +\ifx *\bxjs@engine@given + \let\bxjs@engine@given\bxjs@tmpb +\fi +\ifx\bxjs@engine@given\@undefined\else + \ifx\bxjs@engine@given\bxjs@tmpb\else + \ClassError\bxjs@clsname% + {Option `\bxjs@engine@opt' used on wrong engine}\@ehc + \fi +\fi +\@tempswatrue +\ifx \bxjs@driver@given\@undefined\else + \ifjsInPdfMode + \ifx\bxjs@driver@given\bxjs@driver@@pdfmode\else + \@tempswafalse + \fi + \else\ifx x\jsEngine + \ifx\bxjs@driver@given\bxjs@driver@@xetex\else + \@tempswafalse + \fi + \else + \ifx\bxjs@driver@given\bxjs@driver@@pdfmode + \@tempswafalse + \else\ifx\bxjs@driver@given\bxjs@driver@@xetex + \@tempswafalse + \fi\fi + \fi\fi +\fi +\if@tempswa\else + \ClassError\bxjs@clsname% + {Option `\bxjs@driver@opt' used on wrong engine}\@ehc +\fi +\ifjsInPdfMode \@tempswafalse +\else\ifx x\jsEngine \@tempswafalse +\else \@tempswatrue +\fi\fi +\if@tempswa + \ifx\bxjs@driver@opt\@undefined + \ClassWarningNoLine\bxjs@clsname + {No driver option is given} + \fi + \def\bxjs@tmpa{dvipdfmx-if-dvi} + \ifx\bxjs@driver@opt\bxjs@tmpa + \def\bxjs@driver@opt{dvipdfmx} + \let\bxjs@driver@given\bxjs@driver@@dvipdfmx + \g@addto@macro\@classoptionslist{,dvipdfmx} + \fi +\fi +\def\bxjs@@minimal{minimal} +\ifx\bxjs@jadriver\relax + \ifx j\jsEngine + \def\bxjs@jadriver{standard} + \else + \let\bxjs@jadriver\bxjs@@minimal + \fi +\fi +\ifx\bxjs@jadriver\bxjs@@minimal\else + \ifx\bxjs@engine@given\@undefined + \ClassError\bxjs@clsname% + {An engine option must be explicitly given}% + {When you employ a Japanese-driver you must specify a + correct\MessageBreak engine option.\MessageBreak\@ehc} +\fi\fi \bxjs@do@opt@jbase \if@slide \def\maybeblue{\@ifundefined{ver@color.sty}{}{\color{blue}}} @@ -239,8 +421,25 @@ \setlength\paperheight{\paperwidth} \setlength\paperwidth {\@tempdima} \fi +\if \if p\jsEngine T\else\if n\jsEngine T\else F\fi\fi T + \@tempcnta="80 \loop \ifnum\@tempcnta<"100 + \catcode\@tempcnta\active + \advance\@tempcnta\@ne + \repeat +\fi +\ifbxjs@disguise@js +\def\bxjs@js@clsname{jsarticle} + \@namedef{ver@\bxjs@js@clsname.cls}{2001/01/01 (bxjs)} +\fi \ifdim\bxjs@param@basefontsize<10pt \def\n@baseline{15}% \else \def\n@baseline{16}\fi +\newif\ifbxjs@mag +\newif\ifbxjs@nfss@patch +\ifx\bxjs@magstyle\bxjs@magstyle@mag + \bxjs@magtrue +\else\ifx\bxjs@magstyle\bxjs@magstyle@xreal + \bxjs@nfss@patchtrue +\fi\fi \ifx\bxjs@param@mag\relax \@tempdima=\bxjs@param@basefontsize \advance\@tempdima.001pt \multiply\@tempdima25 @@ -256,25 +455,90 @@ \expandafter\bxjs@tmpa\the\@tempcnta\@nil \edef\bxjs@param@basefontsize{\the\@tempdima} \fi +\@tempcnta\bxjs@param@mag \advance\@tempcnta100000 +\def\bxjs@tmpa#1#2#3#4\@nil{\@tempdima=#2#3.#4\p@} +\expandafter\bxjs@tmpa\the\@tempcnta\@nil +\edef\bxjs@real@mag{\strip@pt\@tempdima} \let\jsBaseFontSize\bxjs@param@basefontsize +\ifbxjs@mag + \let\bxjs@mpt\p@ + \catcode`\?=9 % \p@? read as \p@ +\else + \newdimen\bxjs@mpt + \bxjs@mpt=\bxjs@real@mag \p@ + \catcode`\?=11 \let\p@?\bxjs@mpt +\fi +\chardef\bxjs@qmcc=\catcode`\?\relax \newdimen\jsZw -\jsZw=10pt \jsZw=\jsScale\jsZw +\jsZw=10\bxjs@mpt \jsZw=\jsScale\jsZw +\ifbxjs@usezw + \providecommand*\zw{\jsZw} +\fi +\ifbxjs@nfss@patch +\RequirePackage{type1cm} +\expandafter\let\csname OT1/cmr/m/n/10\endcsname\relax +\expandafter\let\csname OMX/cmex/m/n/10\endcsname\relax +\let\bxjs@get@external@font\get@external@font +\def\get@external@font{% + \bxjs@preadjust@extract@font + \bxjs@get@external@font} +\def\bxjs@fstrunc#1{% + \edef\bxjs@tmpa{\strip@pt#1}% + \expandafter\bxjs@fstrunc@a\bxjs@tmpa.****\@nil} +\def\bxjs@fstrunc@a#1.#2#3#4#5#6\@nil{% + \if#5*\else + \edef\bxjs@tmpa{#1% + \ifnum#2#3>\z@ .#2\ifnum#3>\z@ #3\fi\fi}% + \fi} +\def\bxjs@preadjust@extract@font{% + \let\bxjs@req@size\f@size + \dimen@\f@size\p@ \bxjs@invscale\dimen@\bxjs@real@mag + \advance\dimen@.005pt\relax \bxjs@fstrunc\dimen@ + \let\bxjs@ref@size\bxjs@tmpa + \let\f@size\bxjs@ref@size} +\def\execute@size@function#1{% + \let\bxjs@cref@size\f@size + \let\f@size\bxjs@req@size + \csname s@fct@#1\endcsname} +\let\bxjs@DeclareErrorFont\DeclareErrorFont +\def\DeclareErrorFont#1#2#3#4#5{% + \@tempdimc#5\p@ \@tempdimc\bxjs@real@mag\@tempdimc + \edef\bxjs@tmpa{{#1}{#2}{#3}{#4}{\strip@pt\@tempdimc}} + \expandafter\bxjs@DeclareErrorFont\bxjs@tmpa} +\def\gen@sfcnt{% + \edef\mandatory@arg{\mandatory@arg\bxjs@cref@size}% + \empty@sfcnt} +\def\genb@sfcnt{% + \edef\mandatory@arg{% + \mandatory@arg\expandafter\genb@x\bxjs@cref@size..\@@}% + \empty@sfcnt} +\DeclareErrorFont{OT1}{cmr}{m}{n}{10} +\fi \chardef\bxjs@periodchar=`\. \def\@{\spacefactor\sfcode\bxjs@periodchar} -\def\@setfontsize#1#2#3{% - \ifx\protect\@typeset@protect - \let\@currsize#1% - \fi - \fontsize{#2}{#3}\selectfont - \jsZw=\f@size pt\relax - \jsZw=\jsScale \jsZw\relax +\def\bxjs@tmpa{\def\set@fontsize##1##2##3} +\expandafter\bxjs@tmpa\expandafter{% + \set@fontsize{#1}{#2}{#3}% + \expandafter\def\expandafter\size@update\expandafter{% + \size@update + \jsFontSizeChanged}% +} +\newcommand*\jsFontSizeChanged{% + \jsZw=\f@size\p@ + \jsZw=\jsScale \jsZw \ifdim\parindent>\z@ \if@english \parindent=1em \else \parindent=1\jsZw \fi \fi\relax \jsResetDimen} -\def\jsResetDimen{} +\newcommand*\jsResetDimen{} +\ifbxjs@mag + \let\bxjs@setfontsize\@setfontsize +\else + \def\bxjs@setfontsize#1#2#3{% + \@setfontsize#1{#2\bxjs@mpt}{#3\bxjs@mpt}} +\fi \emergencystretch 3\jsZw \newif\ifnarrowbaselines \if@english @@ -292,15 +556,20 @@ \belowdisplayskip=\skip4 \belowdisplayshortskip=\skip6\relax} \def\widebaselines{\narrowbaselinesfalse\@currsize\selectfont} -\renewcommand{\normalsize}{% - \ifnarrowbaselines - \@setfontsize\normalsize\@xpt\@xiipt - \else - \@setfontsize\normalsize\@xpt{\n@baseline}% +\def\bxjs@if@narrowbaselines{% + \ifnarrowbaselines\expandafter\@firstoftwo + \else \expandafter\@secondoftwo \fi - \abovedisplayskip 10\p@ \@plus3\p@ \@minus4\p@ - \abovedisplayshortskip \z@ \@plus3\p@ - \belowdisplayskip \abovedisplayskip +} +\renewcommand{\normalsize}{% + \bxjs@if@narrowbaselines{% + \bxjs@setfontsize\normalsize\@xpt\@xiipt + }{%else + \bxjs@setfontsize\normalsize\@xpt{\n@baseline}% + }% + \abovedisplayskip 11\p@? \@plus3\p@? \@minus4\p@? + \abovedisplayshortskip \z@ \@plus3\p@? + \belowdisplayskip 9\p@? \@plus3\p@? \@minus4\p@? \belowdisplayshortskip \belowdisplayskip \let\@listi\@listI} \normalsize @@ -315,13 +584,13 @@ \setlength\Cvs{\baselineskip} \setlength\Chs{1\jsZw} \newcommand{\small}{% - \ifnarrowbaselines - \@setfontsize\small\@ixpt{11}% - \else - \@setfontsize\small\@ixpt{13}% - \fi - \abovedisplayskip 9\p@ \@plus3\p@ \@minus4\p@ - \abovedisplayshortskip \z@ \@plus3\p@ + \bxjs@if@narrowbaselines{% + \bxjs@setfontsize\small\@ixpt{11}% + }{%else + \bxjs@setfontsize\small\@ixpt{13}% + }% + \abovedisplayskip 9\p@? \@plus3\p@? \@minus4\p@? + \abovedisplayshortskip \z@ \@plus3\p@? \belowdisplayskip \abovedisplayskip \belowdisplayshortskip \belowdisplayskip \def\@listi{\leftmargin\leftmargini @@ -329,39 +598,39 @@ \parsep \z@ \itemsep \parsep}} \newcommand{\footnotesize}{% - \ifnarrowbaselines - \@setfontsize\footnotesize\@viiipt{9.5}% - \else - \@setfontsize\footnotesize\@viiipt{11}% - \fi - \abovedisplayskip 6\p@ \@plus2\p@ \@minus3\p@ - \abovedisplayshortskip \z@ \@plus2\p@ + \bxjs@if@narrowbaselines{% + \bxjs@setfontsize\footnotesize\@viiipt{9.5}% + }{%else + \bxjs@setfontsize\footnotesize\@viiipt{11}% + }% + \abovedisplayskip 6\p@? \@plus2\p@? \@minus3\p@? + \abovedisplayshortskip \z@ \@plus2\p@? \belowdisplayskip \abovedisplayskip \belowdisplayshortskip \belowdisplayskip \def\@listi{\leftmargin\leftmargini \topsep \z@ \parsep \z@ \itemsep \parsep}} -\newcommand{\scriptsize}{\@setfontsize\scriptsize\@viipt\@viiipt} -\newcommand{\tiny}{\@setfontsize\tiny\@vpt\@vipt} +\newcommand{\scriptsize}{\bxjs@setfontsize\scriptsize\@viipt\@viiipt} +\newcommand{\tiny}{\bxjs@setfontsize\tiny\@vpt\@vipt} \if@twocolumn - \newcommand{\large}{\@setfontsize\large\@xiipt{\n@baseline}} + \newcommand{\large}{\bxjs@setfontsize\large\@xiipt{\n@baseline}} \else - \newcommand{\large}{\@setfontsize\large\@xiipt{17}} + \newcommand{\large}{\bxjs@setfontsize\large\@xiipt{17}} \fi -\newcommand{\Large}{\@setfontsize\Large\@xivpt{21}} -\newcommand{\LARGE}{\@setfontsize\LARGE\@xviipt{25}} -\newcommand{\huge}{\@setfontsize\huge\@xxpt{28}} -\newcommand{\Huge}{\@setfontsize\Huge\@xxvpt{33}} -\newcommand{\HUGE}{\@setfontsize\HUGE{30}{40}} +\newcommand{\Large}{\bxjs@setfontsize\Large\@xivpt{21}} +\newcommand{\LARGE}{\bxjs@setfontsize\LARGE\@xviipt{25}} +\newcommand{\huge}{\bxjs@setfontsize\huge\@xxpt{28}} +\newcommand{\Huge}{\bxjs@setfontsize\Huge\@xxvpt{33}} +\newcommand{\HUGE}{\bxjs@setfontsize\HUGE{30}{40}} \everydisplay=\expandafter{\the\everydisplay \narrowbaselines} \newcommand{\headfont}{\sffamily} \setlength\columnsep{2\Cwd} \setlength\columnseprule{0\p@} -\setlength\lineskip{1\p@} -\setlength\normallineskip{1\p@} -\setlength\lineskiplimit{1\p@} -\setlength\normallineskiplimit{1\p@} +\setlength\lineskip{1\p@?} +\setlength\normallineskip{1\p@?} +\setlength\lineskiplimit{1\p@?} +\setlength\normallineskiplimit{1\p@?} \renewcommand{\baselinestretch}{} \setlength\parskip{0\p@} \if@slide @@ -372,8 +641,10 @@ \@lowpenalty 51 \@medpenalty 151 \@highpenalty 301 +\ifbxjs@mag \mag=\bxjs@param@mag -\setlength{\topskip}{10pt} +\fi +\setlength{\topskip}{10\p@?} \def\bxjs@read@a{\futurelet\bxjs@tmpa\bxjs@read@b} \def\bxjs@read@b{% \ifx\bxjs@tmpa\bgroup \expandafter\bxjs@read@c @@ -382,11 +653,13 @@ \def\bxjs@read@d#1\@nil{} \expandafter\bxjs@read@a\bxjs@param@paper\@nil \edef\bxjs@layout@paper{% - truedimen,\if@landscape landscape,\fi \bxjs@param@paper} + \ifbxjs@mag truedimen,\fi + \if@landscape landscape,\fi + \bxjs@param@paper} \def\bxjs@layout{% headheight=\topskip,footskip=0.03367\paperheight,% headsep=\footskip-\topskip,includeheadfoot,% - hscale=0.76,,hmarginratio=1:1,% + hscale=0.76,hmarginratio=1:1,% vscale=0.83,vmarginratio=1:1,% } \newdimen\fullwidth @@ -397,6 +670,7 @@ \advance\@tempdimb-\textwidth \advance\oddsidemargin 0.5\@tempdimb \advance\evensidemargin 0.5\@tempdimb + \fullwidth=\textwidth \@tempdimb=\textheight \advance\textheight-\topskip \divide\textheight\baselineskip \multiply\textheight\baselineskip @@ -408,17 +682,17 @@ \advance\topmargin-\@tempdima \setlength\marginparsep{\columnsep} \setlength\marginparpush{\baselineskip} - \setlength\marginparwidth{\evensidemargin-1truein-\marginparsep} + \setlength\marginparwidth{\paperwidth-\oddsidemargin-1truein% + -\textwidth-1cm-\marginparsep} \divide\marginparwidth\Cwd \multiply\marginparwidth\Cwd \maxdepth=.5\topskip - \fullwidth=\textwidth } \@onlypreamble\bxjs@revert \let\bxjs@revert\@empty \edef\bxjs@tmpa{\the\ht\strutbox} -\ht\strutbox=10pt +\ht\strutbox=10\p@? \g@addto@macro\bxjs@revert{\ht\strutbox=\bxjs@tmpa\relax} -\if x\bxjs@engine +\if x\jsEngine \ifx\pdfpagewidth\@undefined \def\bxjs@Gm@driver{dvipdfm} \else @@ -432,6 +706,14 @@ \bxjs@InputIfFileExists{#1}{#2}{#3}% \edef\Gm@checkdrivers{\noexpand\Gm@setdriver{\bxjs@Gm@driver}}}% \fi +\ifbxjs@papersize + \ifx\bxjs@driver@given\bxjs@driver@@dvipdfmx + \PassOptionsToPackage{dvipdfm}{geometry} + \fi + \let\bxPapersizeSpecialDone=t +\else + \PassOptionsToPackage{driver=none}{geometry} +\fi \edef\bxjs@nxt{% \noexpand\RequirePackage[\bxjs@layout@paper,\bxjs@layout]{geometry}} \bxjs@nxt \bxjs@revert @@ -444,9 +726,8 @@ \def\bxjs@reset@layout#1{% \edef\bxjs@nxt{\noexpand\geometry{reset,\bxjs@layout@paper,#1,truedimen}}% \bxjs@nxt\bxjs@postproc@layout} -{\footnotesize\global\setlength\footnotesep{\baselineskip}} -\setlength\footnotesep{0.7\footnotesep} -\setlength{\skip\footins}{16\p@ \@plus 5\p@ \@minus 2\p@} +\footnotesep=11\p@? \footnotesep=0.7\footnotesep +\setlength{\skip\footins}{16\p@? \@plus 5\p@? \@minus 2\p@?} \setcounter{topnumber}{9} \renewcommand{\topfraction}{.85} \setcounter{bottomnumber}{9} @@ -457,17 +738,17 @@ \setcounter{dbltopnumber}{9} \renewcommand{\dbltopfraction}{.8} \renewcommand{\dblfloatpagefraction}{.8} -\setlength\floatsep {12\p@ \@plus 2\p@ \@minus 2\p@} -\setlength\textfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} -\setlength\intextsep {12\p@ \@plus 2\p@ \@minus 2\p@} -\setlength\dblfloatsep {12\p@ \@plus 2\p@ \@minus 2\p@} -\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} -\setlength\@fptop{0\p@ \@plus 1fil} -\setlength\@fpsep{8\p@ \@plus 2fil} -\setlength\@fpbot{0\p@ \@plus 1fil} -\setlength\@dblfptop{0\p@ \@plus 1fil} -\setlength\@dblfpsep{8\p@ \@plus 2fil} -\setlength\@dblfpbot{0\p@ \@plus 1fil} +\setlength\floatsep {12\p@? \@plus 2\p@? \@minus 2\p@?} +\setlength\textfloatsep{20\p@? \@plus 2\p@? \@minus 4\p@?} +\setlength\intextsep {12\p@? \@plus 2\p@? \@minus 2\p@?} +\setlength\dblfloatsep {12\p@? \@plus 2\p@? \@minus 2\p@?} +\setlength\dbltextfloatsep{20\p@? \@plus 2\p@? \@minus 4\p@?} +\setlength\@fptop{0\p@? \@plus 1fil} +\setlength\@fpsep{8\p@? \@plus 2fil} +\setlength\@fpbot{0\p@? \@plus 1fil} +\setlength\@dblfptop{0\p@? \@plus 1fil} +\setlength\@dblfpsep{8\p@? \@plus 2fil} +\setlength\@dblfpbot{0\p@? \@plus 1fil} \def\ps@plainfoot{% \let\@mkboth\@gobbletwo \let\@oddhead\@empty @@ -547,16 +828,16 @@ \begin{center} \mbox{} \\[1\jsZw] \large - {\maybeblue\hrule height0pt depth2pt\relax}\par + {\maybeblue\hrule height0\p@? depth2\p@?\relax}\par \smallskip \@title \smallskip - {\maybeblue\hrule height0pt depth2pt\relax}\par + {\maybeblue\hrule height0\p@? depth2\p@?\relax}\par \vfill {\small \@author}% \end{center} \else - \vskip 60\p@ + \vskip 60\p@? \begin{center}% {\LARGE \@title \par}% \vskip 3em% @@ -708,6 +989,7 @@ \unskip \@tempskipa #1\relax \hskip -\@tempskipa + \bxjs@ltj@inhibitglue \else \clubpenalty \@clubpenalty \everypar{\everyparhook}% @@ -718,7 +1000,7 @@ \@afterheading \fi \if@slide - {\vskip-6pt\maybeblue\hrule height0pt depth1pt\vskip7pt\relax}% + {\vskip-6\p@?\maybeblue\hrule height0\p@? depth1\p@?\vskip7\p@?\relax}% \fi \par % 2000-12-18 \ignorespaces} @@ -734,6 +1016,7 @@ \endgroup \fi \@xsect{#3}} +\let\bxjs@ltj@inhibitglue\@empty \newcommand*\chaptermark[1]{} \setcounter{secnumdepth}{3} \newcounter{part} @@ -975,10 +1258,10 @@ \item\relax}{\endlist} \newenvironment{quote}% {\list{}{\rightmargin\z@}\item\relax}{\endlist} -\def\@begintheorem#1#2{\trivlist - \item[\hskip \labelsep{\bfseries #1\ #2}]} -\def\@opargbegintheorem#1#2#3{\trivlist - \item[\hskip \labelsep{\bfseries #1\ #2\ (#3)}]} +\def\@begintheorem#1#2{\trivlist\labelsep=1\jsZw + \item[\hskip \labelsep{\headfont #1\ #2}]} +\def\@opargbegintheorem#1#2#3{\trivlist\labelsep=1\jsZw + \item[\hskip \labelsep{\headfont #1\ #2(#3)}]} \newenvironment{titlepage}{% \if@twocolumn \@restonecoltrue\onecolumn @@ -999,13 +1282,13 @@ \gdef\postsectionname{}% \gdef\thesection{\presectionname\@Alph\c@section\postsectionname}% \gdef\thesubsection{\@Alph\c@section.\@arabic\c@subsection}} -\setlength\arraycolsep{5\p@} -\setlength\tabcolsep{6\p@} +\setlength\arraycolsep{5\p@?} +\setlength\tabcolsep{6\p@?} \setlength\arrayrulewidth{.4\p@} \setlength\doublerulesep{2\p@} \setlength\tabbingsep{\labelsep} \skip\@mpfootins = \skip\footins -\setlength\fboxsep{3\p@} +\setlength\fboxsep{3\p@?} \setlength\fboxrule{.4\p@} \renewcommand \theequation {\@arabic\c@equation} \newcounter{figure} @@ -1034,8 +1317,8 @@ {\end@dblfloat} \newlength\abovecaptionskip \newlength\belowcaptionskip -\setlength\abovecaptionskip{5\p@} % 元: 10\p@ -\setlength\belowcaptionskip{5\p@} % 元: 0\p@ +\setlength\abovecaptionskip{5\p@?} % 元: 10\p@ +\setlength\belowcaptionskip{5\p@?} % 元: 0\p@ \long\def\@makecaption#1#2{{\small \advance\leftskip .0628\linewidth \advance\rightskip .0628\linewidth @@ -1059,7 +1342,12 @@ \newcommand\@tocrmarg{2.55em} \newcommand\@dotsep{4.5} \setcounter{tocdepth}{2} +\newdimen\js@tocl@width \newcommand{\tableofcontents}{% + \settowidth\js@tocl@width{\headfont\presectionname\postsectionname}% + \settowidth\@tempdima{\headfont\appendixname}% + \ifdim\js@tocl@width<\@tempdima\relax\setlength\js@tocl@width{\@tempdima}\fi + \ifdim\js@tocl@width<2zw \divide\js@tocl@width by 2 \advance\js@tocl@width 1zw\fi \section*{\contentsname}% \@mkboth{\contentsname}{\contentsname}% \@starttoc{toc}% @@ -1067,7 +1355,7 @@ \newcommand*{\l@part}[2]{% \ifnum \c@tocdepth >-2\relax \addpenalty\@secpenalty - \addvspace{2.25em \@plus\p@}% + \addvspace{2.25em \@plus\p@?}% \begingroup \parindent \z@ \rightskip \@tocrmarg @@ -1082,25 +1370,33 @@ \newcommand*{\l@section}[2]{% \ifnum \c@tocdepth >\z@ \addpenalty{\@secpenalty}% - \addvspace{1.0em \@plus\p@}% + \addvspace{1.0em \@plus\p@?}% \begingroup \parindent\z@ \rightskip\@tocrmarg \parfillskip-\rightskip \leavevmode\headfont - \setlength\@lnumwidth{4\jsZw}% 元1.5em [2003-03-02] + \setlength\@lnumwidth{\js@tocl@width}\advance\@lnumwidth 2\jsZw \advance\leftskip\@lnumwidth \hskip-\leftskip #1\nobreak\hfil\nobreak\hbox to\@pnumwidth{\hss#2}\par \endgroup \fi} -\newcommand*{\l@subsection} {\@dottedtocline{2}{1\jsZw}{3\jsZw}} -\newcommand*{\l@subsubsection}{\@dottedtocline{3}{2\jsZw}{3\jsZw}} -\newcommand*{\l@paragraph} {\@dottedtocline{4}{3\jsZw}{3\jsZw}} -\newcommand*{\l@subparagraph} {\@dottedtocline{5}{4\jsZw}{3\jsZw}} +\newcommand*{\l@subsection}{% + \@tempdima\js@tocl@width \advance\@tempdima -1\jsZw + \@dottedtocline{2}{\@tempdima}{3\jsZw}} +\newcommand*{\l@subsubsection}{% + \@tempdima\js@tocl@width \advance\@tempdima 0\jsZw + \@dottedtocline{3}{\@tempdima}{4\jsZw}} +\newcommand*{\l@paragraph}{% + \@tempdima\js@tocl@width \advance\@tempdima 1\jsZw + \@dottedtocline{4}{\@tempdima}{5\jsZw}} +\newcommand*{\l@subparagraph}{% + \@tempdima\js@tocl@width \advance\@tempdima 2\jsZw + \@dottedtocline{5}{\@tempdima}{6\jsZw}} \newdimen\@lnumwidth \def\numberline#1{\hb@xt@\@lnumwidth{#1\hfil}\hspace{0pt}} \def\@dottedtocline#1#2#3#4#5{\ifnum #1>\c@tocdepth \else - \vskip \z@ \@plus.2\p@ + \vskip \z@ \@plus.2\p@? {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip \parindent #2\relax\@afterindenttrue \interlinepenalty\@M @@ -1172,7 +1468,7 @@ \@mkboth{\indexname}{\indexname}% \plainifnotempty % \thispagestyle{plain} \parindent\z@ - \parskip\z@ \@plus .3\p@\relax + \parskip\z@ \@plus .3\p@?\relax \let\item\@idxitem \raggedright \footnotesize\narrowbaselines @@ -1187,7 +1483,7 @@ \newcommand{\@idxitem}{\par\hangindent 4\jsZw} % 元 40pt \newcommand{\subitem}{\@idxitem \hspace*{2\jsZw}} % 元 20pt \newcommand{\subsubitem}{\@idxitem \hspace*{3\jsZw}} % 元 30pt -\newcommand{\indexspace}{\par \vskip 10\p@ \@plus5\p@ \@minus3\p@\relax} +\newcommand{\indexspace}{\par \vskip 10\p@? \@plus5\p@? \@minus3\p@?\relax} \newcommand\seename{\if@english see\else →\fi} \newcommand\alsoname{\if@english see also\else →\fi} \let\footnotes@ve=\footnote @@ -1196,9 +1492,9 @@ \def\footnotemark{\jsInhibitGlue\footnotemarks@ve} \def\thefootnote{\ifnum\c@footnote>\z@\leavevmode\lower.5ex\hbox{*}\@arabic\c@footnote\fi} \renewcommand{\footnoterule}{% - \kern-3\p@ + \kern-3\p@? \hrule width .4\columnwidth - \kern 2.6\p@} + \kern 2.6\p@?} \long\def\@footnotetext{% \insert\footins\bgroup \normalfont\footnotesize @@ -1223,27 +1519,27 @@ \parindent 1\jsZw \noindent \llap{\@makefnmark\hskip0.3\jsZw}#1} +\let\jsInhibitGlueAtParTop\@empty +\def\everyparhook{\jsInhibitGlueAtParTop} +\AtBeginDocument{\everypar{\everyparhook}} \def\@inhibitglue{% \futurelet\@let@token\@@inhibitglue} \def\@@inhibitglue{% - \ifx\@let@token「 + \ifx\@let@token「% \jsInhibitGlue \else - \ifx\@let@token( + \ifx\@let@token(% \jsInhibitGlue \else - \ifx\@let@token『 + \ifx\@let@token『% \jsInhibitGlue \else - \ifx\@let@token[ + \ifx\@let@token[% \jsInhibitGlue \fi \fi \fi \fi} -\def\everyparhook{\jsInhibitGlueAtParTop} -\let\jsInhibitGlueAtParTop\@inhibitglue -\AtBeginDocument{\everypar{\everyparhook}} \def\@doendpe{% \@endpetrue \def\par{% @@ -1291,7 +1587,9 @@ \else \clubpenalty \@clubpenalty \everypar{\everyparhook}% - \fi\everyparhook}% + \fi + \bxjs@ltj@inhibitglue + \everyparhook}% \if@noitemarg \@noitemargfalse \if@nmbrlist @@ -1342,29 +1640,57 @@ \newcommand{\bibname}{\if@english Bibliography\else 参考文献\fi} \newcommand{\indexname}{\if@english Index\else 索引\fi} \newcommand{\figurename}{\if@english Fig.~\else 図\fi} -\newcommand{\tablename}{\if@english Table.~\else 表\fi} -\newcommand{\appendixname}{\if@english Appendix~\else 付録\fi} +\newcommand{\tablename}{\if@english Table~\else 表\fi} +\newcommand{\appendixname}{\if@english \else 付録\fi} \newcommand{\abstractname}{\if@english Abstract\else 概要\fi} +\@tempswafalse +\if p\jsEngine \@tempswatrue \fi +\if n\jsEngine \@tempswatrue \fi +\if@tempswa \expandafter\@firstoftwo +\else \expandafter\@secondoftwo +\fi +{% +\newif\ifjsSeireki \jsSeirekitrue +\def\西暦{\jsSeirekitrue} +\def\和暦{\jsSeirekifalse} +\def\Seireki{\jsSeirekitrue} +\def\Wareki{\jsSeirekifalse} +\def\bxjs@if@use@seireki{% + \ifjsSeireki \expandafter\@firstoftwo + \else \expandafter\@secondoftwo \fi} +}{% \newif\if西暦 \西暦true \def\西暦{\西暦true} \def\和暦{\西暦false} +\def\Seireki{\西暦true} +\def\Wareki{\西暦false} +\def\bxjs@if@use@seireki{% + \if西暦 \expandafter\@firstoftwo + \else \expandafter\@secondoftwo \fi} +} +\let\bxjs@unxp\@firstofone +\bxjs@test@engine\unexpanded{\let\bxjs@unxp\unexpanded} +\if \if p\jsEngine T\else\if n\jsEngine T\else F\fi\fi T + \def\bxjs@iai{\noexpand~} +\else \def\bxjs@iai{} +\fi \newcount\heisei \heisei\year \advance\heisei-1988\relax -\def\today{% +\edef\today{% \if@english \ifcase\month\or January\or February\or March\or April\or May\or June\or July\or August\or September\or October\or November\or December\fi \space\number\day, \number\year \else - \if西暦 - \number\year 年 - \number\month 月 - \number\day 日 - \else - 平成\number\heisei 年 - \number\month 月 - \number\day 日 - \fi + \noexpand\bxjs@if@use@seireki{% + \number\year\bxjs@iai\bxjs@unxp{年}% + \bxjs@iai\number\month\bxjs@iai\bxjs@unxp{月}% + \bxjs@iai\number\day\bxjs@iai\bxjs@unxp{日}% + }{% + \bxjs@unxp{平成}\bxjs@iai\number\heisei\bxjs@iai\bxjs@unxp{年}% + \bxjs@iai\number\month\bxjs@iai\bxjs@unxp{月}% + \bxjs@iai\number\day\bxjs@iai\bxjs@unxp{日}% + }% \fi} \hyphenation{ado-be post-script ghost-script phe-nom-e-no-log-i-cal man-u-script} \pagestyle{plain}% @@ -1377,8 +1703,9 @@ \onecolumn \raggedbottom \fi -\ifbxjs@ptexmodule - \input{bxjsptex.def} +\catcode`\?=12 +\ifx\bxjs@jadriver\relax\else +\input{bxjsja-\bxjs@jadriver.def} \fi \bxjs@restore@jltrcc \endinput diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsbook.cls b/Master/texmf-dist/tex/latex/bxjscls/bxjsbook.cls new file mode 100644 index 00000000000..05f1b5c886e --- /dev/null +++ b/Master/texmf-dist/tex/latex/bxjscls/bxjsbook.cls @@ -0,0 +1,1790 @@ +%% +%% This is file `bxjsbook.cls', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% bxjscls.dtx (with options: `book') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from bxjsbook.cls. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file bxjscls.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{bxjsbook} + [2015/08/05 v1.0 BXJS document classes] +\RequirePackage{calc} +\RequirePackage{keyval} +\let\jsEngine=n +\def\bxjs@test@engine#1#2{% + \edef\bxjs@tmpa{\string#1}% + \edef\bxjs@tmpb{\meaning#1}% + \ifx\bxjs@tmpa\bxjs@tmpb #2\fi} +\bxjs@test@engine\kanjiskip{\let\jsEngine=j} +\bxjs@test@engine\jintercharskip{\let\jsEngine=J} +\bxjs@test@engine\XeTeXversion{\let\jsEngine=x} +\bxjs@test@engine\pdftexversion{\let\jsEngine=p} +\bxjs@test@engine\luatexversion{\let\jsEngine=l} +\newif\ifjsWithupTeX +\ifx\ucs\@undefined\else \ifnum\ucs"3000="3000 + \jsWithupTeXtrue +\fi\fi +\let\if@jsc@uplatex\ifjsWithupTeX +\newif\ifjsWitheTeX +\bxjs@test@engine\eTeXversion{\jsWitheTeXtrue} +\ifjsWitheTeX \let\bxjs@protected\protected +\else \let\bxjs@protected\@empty +\fi +\ifjsWitheTeX + \def\bxjs@robust@def{\protected\def} +\else + \def\bxjs@robust@def{\DeclareRobustCommand*} +\fi +\newif\ifjsInPdfMode +\ifx\pdfoutput\@undefined\else\ifnum\pdfoutput>\z@ + \jsInPdfModetrue +\fi\fi +\let\jsArticle=a +\let\jsBook=b +\let\jsReport=r +\let\jsSlide=s +\let\jsDocClass\jsBook +\def\bxjs@clsname{bxjsbook} +\@onlypreamble\bxjs@restore@jltrcc +\let\bxjs@restore@jltrcc\@empty +\if l\jsEngine +\def\bxjs@change@jltrcc#1{% + \xdef\bxjs@restore@jltrcc{% + \bxjs@restore@jltrcc + \catcode`#1=\the\catcode`#1\relax}% + \catcode`#1=11\relax} +\@tfor\bxjs@x:=西暦\do + {\expandafter\bxjs@change@jltrcc\bxjs@x} +\fi +\bxjs@robust@def\jsInhibitGlue{% + \ifx\inhibitglue\@undefined\else \inhibitglue \fi} +\newif\if@restonecol +\newif\if@titlepage +\newif\if@openright +\newif\if@mainmatter \@mainmattertrue +\newif\if@enablejfam \@enablejfamtrue +\def\bxjs@setpaper#1{\def\bxjs@param@paper{#1}} +\DeclareOption{a3paper}{\bxjs@setpaper{a3paper}} +\DeclareOption{a4paper}{\bxjs@setpaper{a4paper}} +\DeclareOption{a5paper}{\bxjs@setpaper{a5paper}} +\DeclareOption{a6paper}{\bxjs@setpaper{a6paper}} +\DeclareOption{b4paper}{\bxjs@setpaper{{257truemm}{364truemm}}} +\DeclareOption{b5paper}{\bxjs@setpaper{{182truemm}{257truemm}}} +\DeclareOption{b6paper}{\bxjs@setpaper{{128truemm}{182truemm}}} +\DeclareOption{a4j}{\bxjs@setpaper{a4paper}} +\DeclareOption{a5j}{\bxjs@setpaper{a5paper}} +\DeclareOption{b4j}{\bxjs@setpaper{{257truemm}{364truemm}}} +\DeclareOption{b5j}{\bxjs@setpaper{{182truemm}{257truemm}}} +\DeclareOption{a4var}{\bxjs@setpaper{{210truemm}{283truemm}}} +\DeclareOption{b5var}{\bxjs@setpaper{{182truemm}{230truemm}}} +\DeclareOption{letterpaper}{\bxjs@setpaper{letterpaper}} +\DeclareOption{legalpaper}{\bxjs@setpaper{legalpaper}} +\DeclareOption{executivepaper}{\bxjs@setpaper{executivepaper}} +\newif\if@landscape +\@landscapefalse +\DeclareOption{landscape}{\@landscapetrue} +\newif\if@slide +\@slidefalse +\newcommand{\@ptsize}{0} +\def\bxjs@param@basefontsize{10pt} +\def\jsUnusualPtSize{-20} +\def\bxjs@setbasefontsize#1{% + \setlength\@tempdima{#1}% + \edef\bxjs@param@basefontsize{\the\@tempdima}% + \ifdim\@tempdima=10pt \long\def\@ptsize{0}% + \else\ifdim\@tempdima=10.95pt \long\def\@ptsize{1}% + \else\ifdim\@tempdima=12pt \long\def\@ptsize{2}% + \else \long\edef\@ptsize{\jsUnusualPtSize}\fi\fi\fi} +\DeclareOption{8pt}{\bxjs@setbasefontsize{8pt}} +\DeclareOption{9pt}{\bxjs@setbasefontsize{9pt}} +\DeclareOption{10pt}{\bxjs@setbasefontsize{10pt}} +\DeclareOption{11pt}{\bxjs@setbasefontsize{10.95pt}} +\DeclareOption{12pt}{\bxjs@setbasefontsize{12pt}} +\DeclareOption{14pt}{\bxjs@setbasefontsize{14.4pt}} +\DeclareOption{17pt}{\bxjs@setbasefontsize{17.28pt}} +\DeclareOption{20pt}{\bxjs@setbasefontsize{20pt}} +\DeclareOption{21pt}{\bxjs@setbasefontsize{20.74pt}} +\DeclareOption{25pt}{\bxjs@setbasefontsize{24.88pt}} +\DeclareOption{30pt}{\bxjs@setbasefontsize{29.86pt}} +\DeclareOption{36pt}{\bxjs@setbasefontsize{35.83pt}} +\DeclareOption{43pt}{\bxjs@setbasefontsize{43pt}} +\DeclareOption{12Q}{\bxjs@setjbasefontsize{3mm}} +\DeclareOption{14Q}{\bxjs@setjbasefontsize{3.5mm}} +\DeclareOption{10ptj}{\bxjs@setjbasefontsize{10pt}} +\DeclareOption{10.5ptj}{\bxjs@setjbasefontsize{10.5pt}} +\DeclareOption{11ptj}{\bxjs@setjbasefontsize{11pt}} +\DeclareOption{12ptj}{\bxjs@setjbasefontsize{12pt}} +\DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse} +\DeclareOption{twoside}{\@twosidetrue \@mparswitchtrue} +\DeclareOption{vartwoside}{\@twosidetrue \@mparswitchfalse} +\DeclareOption{onecolumn}{\@twocolumnfalse} +\DeclareOption{twocolumn}{\@twocolumntrue} +\DeclareOption{titlepage}{\@titlepagetrue} +\DeclareOption{notitlepage}{\@titlepagefalse} +\DeclareOption{openright}{\@openrighttrue} +\DeclareOption{openany}{\@openrightfalse} +\def\eqnarray{% + \stepcounter{equation}% + \def\@currentlabel{\p@equation\theequation}% + \global\@eqnswtrue + \m@th + \global\@eqcnt\z@ + \tabskip\@centering + \let\\\@eqncr + $$\everycr{}\halign to\displaywidth\bgroup + \hskip\@centering$\displaystyle\tabskip\z@skip{##}$\@eqnsel + &\global\@eqcnt\@ne \hfil$\displaystyle{{}##{}}$\hfil + &\global\@eqcnt\tw@ $\displaystyle{##}$\hfil\tabskip\@centering + &\global\@eqcnt\thr@@ \hb@xt@\z@\bgroup\hss##\egroup + \tabskip\z@skip + \cr} +\DeclareOption{leqno}{\input{leqno.clo}} +\DeclareOption{fleqn}{\input{fleqn.clo}% + \def\eqnarray{% + \stepcounter{equation}% + \def\@currentlabel{\p@equation\theequation}% + \global\@eqnswtrue\m@th + \global\@eqcnt\z@ + \tabskip\mathindent + \let\\=\@eqncr + \setlength\abovedisplayskip{\topsep}% + \ifvmode + \addtolength\abovedisplayskip{\partopsep}% + \fi + \addtolength\abovedisplayskip{\parskip}% + \setlength\belowdisplayskip{\abovedisplayskip}% + \setlength\belowdisplayshortskip{\abovedisplayskip}% + \setlength\abovedisplayshortskip{\abovedisplayskip}% + $$\everycr{}\halign to\linewidth% $$ + \bgroup + \hskip\@centering$\displaystyle\tabskip\z@skip{##}$\@eqnsel + &\global\@eqcnt\@ne \hfil$\displaystyle{{}##{}}$\hfil + &\global\@eqcnt\tw@ + $\displaystyle{##}$\hfil \tabskip\@centering + &\global\@eqcnt\thr@@ \hb@xt@\z@\bgroup\hss##\egroup + \tabskip\z@skip\cr + }} +\let\ifjsDraft\iffalse +\@onlypreamble\bxjs@draft +\def\bxjs@draft#1{% + \expandafter\let\expandafter\ifjsDraft\csname if#1\endcsname} +\DeclareOption{draft}{\bxjs@draft{true}\setlength\overfullrule{5pt}} +\DeclareOption{final}{\bxjs@draft{false}\setlength\overfullrule{0pt}} +\AtBeginDocument{% + \expandafter\ifx\csname ifdraft\endcsname\relax + \expandafter\let\csname ifdraft\expandafter\endcsname + \csname ifjsDraft\endcsname + \fi} +\newif\ifbxjs@papersize +\bxjs@papersizetrue +\DeclareOption{nopapersize}{\bxjs@papersizefalse} +\DeclareOption{papersize}{\bxjs@papersizetrue} +\newif\if@english +\@englishfalse +\DeclareOption{english}{\@englishtrue} +\mathchardef\bxjs@csta=259 +\def\bxjs@invscale#1#2{% + \bgroup \@tempdima=#1\relax \@tempdimb#2\p@\relax + \@tempcnta\@tempdima \multiply\@tempcnta\@cclvi + \divide\@tempcnta\@tempdimb \multiply\@tempcnta\@cclvi + \@tempcntb\p@ \divide\@tempcntb\@tempdimb + \advance\@tempcnta-\@tempcntb \advance\@tempcnta-\tw@ + \@tempdimb\@tempcnta\@ne + \advance\@tempcnta\@tempcntb \advance\@tempcnta\@tempcntb + \advance\@tempcnta\bxjs@csta \@tempdimc\@tempcnta\@ne + \@whiledim\@tempdimb<\@tempdimc\do{% + \@tempcntb\@tempdimb \advance\@tempcntb\@tempdimc + \advance\@tempcntb\@ne \divide\@tempcntb\tw@ + \ifdim #2\@tempcntb>\@tempdima + \advance\@tempcntb\m@ne \@tempdimc=\@tempcntb\@ne + \else \@tempdimb=\@tempcntb\@ne \fi}% + \xdef\bxjs@gtmpa{\the\@tempdimb}% + \egroup #1=\bxjs@gtmpa\relax} +\DeclareOption{autodetect-engine}{% + \let\bxjs@engine@given=*} +\DeclareOption{latex}{% + \def\bxjs@engine@opt{latex}% + \let\bxjs@engine@given=n} +\DeclareOption{platex}{% + \def\bxjs@engine@opt{platex}% + \let\bxjs@engine@given=j} +\DeclareOption{uplatex}{% + \def\bxjs@engine@opt{uplatex}% + \let\bxjs@engine@given=u} +\DeclareOption{xelatex}{% + \def\bxjs@engine@opt{xelatex}% + \let\bxjs@engine@given=x} +\DeclareOption{pdflatex}{% + \def\bxjs@engine@opt{pdflatex}% + \let\bxjs@engine@given=p} +\DeclareOption{lualatex}{% + \def\bxjs@engine@opt{lualatex}% + \let\bxjs@engine@given=l} +\let\bxjs@driver@@dvimode=0 +\let\bxjs@driver@@dvipdfmx=1 +\let\bxjs@driver@@pdfmode=2 +\let\bxjs@driver@@xetex=3 +\DeclareOption{dvips}{% + \def\bxjs@driver@opt{dvips}% + \let\bxjs@driver@given\bxjs@driver@@dvimode} +\DeclareOption{dviout}{% + \def\bxjs@driver@opt{dviout}% + \let\bxjs@driver@given\bxjs@driver@@dvimode} +\DeclareOption{xdvi}{% + \def\bxjs@driver@opt{xdvi}% + \let\bxjs@driver@given\bxjs@driver@@dvimode} +\DeclareOption{dvipdfmx}{% + \def\bxjs@driver@opt{dvipdfmx}% + \let\bxjs@driver@given\bxjs@driver@@dvipdfmx} +\DeclareOption{pdftex}{% + \def\bxjs@driver@opt{pdftex}% + \let\bxjs@driver@given\bxjs@driver@@pdfmode} +\DeclareOption{luatex}{% + \def\bxjs@driver@opt{luatex}% + \let\bxjs@driver@given\bxjs@driver@@pdfmode} +\DeclareOption{xetex}{% + \def\bxjs@driver@opt{xetex}% + \let\bxjs@driver@given\bxjs@driver@@xetex} +\DeclareOption{dvipdfmx-if-dvi}{% + \def\bxjs@driver@opt{dvipdfmx-if-dvi}% + \let\bxjs@driver@given\@undefined} +\newif\ifbxjs@usezw \bxjs@usezwtrue +\DeclareOption{nozw}{% + \bxjs@usezwfalse} +\DeclareOption{zw}{% + \bxjs@usezwtrue} +\newif\ifbxjs@disguise@js \bxjs@disguise@jstrue +\DeclareOption{nojs}{% + \bxjs@disguise@jsfalse} +\DeclareOption{js}{% + \bxjs@disguise@jstrue} +\def\bxjs@setkey{% + \expandafter\bxjs@setkey@a\expandafter{\CurrentOption}} +\def\bxjs@setkey@a{\setkeys{bxjs}} +\DeclareOption*{\bxjs@setkey} +\newif\ifbxjs@scaleset +\def\jsScale{0.924715} +\def\Cjascale{\jsScale} +\define@key{bxjs}{base}{\bxjs@setbasefontsize{#1}} +\@onlypreamble\bxjs@do@opt@jbase +\let\bxjs@do@opt@jbase\relax +\define@key{bxjs}{jbase}{\bxjs@setjbasefontsize{#1}} +\def\bxjs@setjbasefontsize#1{% + \def\bxjs@do@opt@jbase{% + \setlength\@tempdima{#1}% + \bxjs@invscale\@tempdima\jsScale + \bxjs@setbasefontsize{\@tempdima}}} +\define@key{bxjs}{scale}{% + \bxjs@scalesettrue + \edef\jsScale{#1}} +\DeclareOption{noscale}{% + \bxjs@scalesettrue + \def\jsScale{1}} +\DeclareOption{CJK}{% + \ClassWarning\bxjs@clsname + {Option `CJK' was abolished}} +\let\bxjs@param@mag\relax +\define@key{bxjs}{mag}{\edef\bxjs@param@mag{#1}} +\define@key{bxjs}{paper}{\edef\bxjs@param@paper{#1}} +\let\bxjs@jadriver\relax +\define@key{bxjs}{jadriver}{\edef\bxjs@jadriver{#1}} +\define@key{bxjs}{ja}{\edef\bxjs@jadriver{#1}} +\let\jsJaFont\@empty +\define@key{bxjs}{jafont}{\edef\jsJaFont{#1}} +\let\jsJaParam\@empty +\define@key{bxjs}{japaram}{\edef\jsJaParam{#1}} +\let\bxjs@magstyle@mag=m +\let\bxjs@magstyle@real=r +\let\bxjs@magstyle@xreal=x +\let\bxjs@magstyle\bxjs@magstyle@mag +\define@key{bxjs}{magstyle}{% + \expandafter\let\expandafter\bxjs@magstyle\csname + bxjs@magstyle@#1\endcsname + \ifx\bxjs@magstyle\relax + \ClassError\bxjs@clsname + {Invalid magstyle value `#1'}\@ehc + \let\bxjs@magstyle\bxjs@magstyle@mag + \fi} +\let\ltx@removeelement\@removeelement +\def\@removeelement#1#2#3{% + \def\reserved@a{#2}% + \ifx\reserved@a\@empty \let#3\@empty + \else \ltx@removeelement{#1}{#2}{#3}% + \fi} +\ExecuteOptions{a4paper,twoside,onecolumn,titlepage,openright,final} +\ProcessOptions\relax +\@expandtwoargs\@removeelement + {papersize}\@classoptionslist\@classoptionslist +\@expandtwoargs\@removeelement + {10pt}\@classoptionslist\@classoptionslist +\let\bxjs@tmpb\jsEngine +\ifx j\bxjs@tmpb\ifjsWithupTeX + \let\bxjs@tmpb=u +\fi\fi +\ifx p\bxjs@tmpb\ifjsInPdfMode\else + \let\bxjs@tmpb=n +\fi\fi +\ifx *\bxjs@engine@given + \let\bxjs@engine@given\bxjs@tmpb +\fi +\ifx\bxjs@engine@given\@undefined\else + \ifx\bxjs@engine@given\bxjs@tmpb\else + \ClassError\bxjs@clsname% + {Option `\bxjs@engine@opt' used on wrong engine}\@ehc + \fi +\fi +\@tempswatrue +\ifx \bxjs@driver@given\@undefined\else + \ifjsInPdfMode + \ifx\bxjs@driver@given\bxjs@driver@@pdfmode\else + \@tempswafalse + \fi + \else\ifx x\jsEngine + \ifx\bxjs@driver@given\bxjs@driver@@xetex\else + \@tempswafalse + \fi + \else + \ifx\bxjs@driver@given\bxjs@driver@@pdfmode + \@tempswafalse + \else\ifx\bxjs@driver@given\bxjs@driver@@xetex + \@tempswafalse + \fi\fi + \fi\fi +\fi +\if@tempswa\else + \ClassError\bxjs@clsname% + {Option `\bxjs@driver@opt' used on wrong engine}\@ehc +\fi +\ifjsInPdfMode \@tempswafalse +\else\ifx x\jsEngine \@tempswafalse +\else \@tempswatrue +\fi\fi +\if@tempswa + \ifx\bxjs@driver@opt\@undefined + \ClassWarningNoLine\bxjs@clsname + {No driver option is given} + \fi + \def\bxjs@tmpa{dvipdfmx-if-dvi} + \ifx\bxjs@driver@opt\bxjs@tmpa + \def\bxjs@driver@opt{dvipdfmx} + \let\bxjs@driver@given\bxjs@driver@@dvipdfmx + \g@addto@macro\@classoptionslist{,dvipdfmx} + \fi +\fi +\def\bxjs@@minimal{minimal} +\ifx\bxjs@jadriver\relax + \ifx j\jsEngine + \def\bxjs@jadriver{standard} + \else + \let\bxjs@jadriver\bxjs@@minimal + \fi +\fi +\ifx\bxjs@jadriver\bxjs@@minimal\else + \ifx\bxjs@engine@given\@undefined + \ClassError\bxjs@clsname% + {An engine option must be explicitly given}% + {When you employ a Japanese-driver you must specify a + correct\MessageBreak engine option.\MessageBreak\@ehc} +\fi\fi +\bxjs@do@opt@jbase +\if@slide + \def\maybeblue{\@ifundefined{ver@color.sty}{}{\color{blue}}} +\fi +\if@landscape + \setlength\@tempdima {\paperheight} + \setlength\paperheight{\paperwidth} + \setlength\paperwidth {\@tempdima} +\fi +\if \if p\jsEngine T\else\if n\jsEngine T\else F\fi\fi T + \@tempcnta="80 \loop \ifnum\@tempcnta<"100 + \catcode\@tempcnta\active + \advance\@tempcnta\@ne + \repeat +\fi +\ifbxjs@disguise@js +\def\bxjs@js@clsname{jsbook} + \@namedef{ver@\bxjs@js@clsname.cls}{2001/01/01 (bxjs)} +\fi +\ifdim\bxjs@param@basefontsize<10pt \def\n@baseline{15}% +\else \def\n@baseline{16}\fi +\newif\ifbxjs@mag +\newif\ifbxjs@nfss@patch +\ifx\bxjs@magstyle\bxjs@magstyle@mag + \bxjs@magtrue +\else\ifx\bxjs@magstyle\bxjs@magstyle@xreal + \bxjs@nfss@patchtrue +\fi\fi +\ifx\bxjs@param@mag\relax + \@tempdima=\bxjs@param@basefontsize + \advance\@tempdima.001pt \multiply\@tempdima25 + \divide\@tempdima16384\relax \@tempcnta\@tempdima\relax + \edef\bxjs@param@mag{\the\@tempcnta} +\else + \let\c@bxjs@cnta\@tempcnta + \setcounter{bxjs@cnta}{\bxjs@param@mag} + \ifnum\@tempcnta<\z@ \@tempcnta=\z@ \fi + \edef\bxjs@param@mag{\the\@tempcnta} + \advance\@tempcnta100000 + \def\bxjs@tmpa#1#2#3#4#5\@nil{\@tempdima=#2#3#4.#5\p@} + \expandafter\bxjs@tmpa\the\@tempcnta\@nil + \edef\bxjs@param@basefontsize{\the\@tempdima} +\fi +\@tempcnta\bxjs@param@mag \advance\@tempcnta100000 +\def\bxjs@tmpa#1#2#3#4\@nil{\@tempdima=#2#3.#4\p@} +\expandafter\bxjs@tmpa\the\@tempcnta\@nil +\edef\bxjs@real@mag{\strip@pt\@tempdima} +\let\jsBaseFontSize\bxjs@param@basefontsize +\ifbxjs@mag + \let\bxjs@mpt\p@ + \catcode`\?=9 % \p@? read as \p@ +\else + \newdimen\bxjs@mpt + \bxjs@mpt=\bxjs@real@mag \p@ + \catcode`\?=11 \let\p@?\bxjs@mpt +\fi +\chardef\bxjs@qmcc=\catcode`\?\relax +\newdimen\jsZw +\jsZw=10\bxjs@mpt \jsZw=\jsScale\jsZw +\ifbxjs@usezw + \providecommand*\zw{\jsZw} +\fi +\ifbxjs@nfss@patch +\RequirePackage{type1cm} +\expandafter\let\csname OT1/cmr/m/n/10\endcsname\relax +\expandafter\let\csname OMX/cmex/m/n/10\endcsname\relax +\let\bxjs@get@external@font\get@external@font +\def\get@external@font{% + \bxjs@preadjust@extract@font + \bxjs@get@external@font} +\def\bxjs@fstrunc#1{% + \edef\bxjs@tmpa{\strip@pt#1}% + \expandafter\bxjs@fstrunc@a\bxjs@tmpa.****\@nil} +\def\bxjs@fstrunc@a#1.#2#3#4#5#6\@nil{% + \if#5*\else + \edef\bxjs@tmpa{#1% + \ifnum#2#3>\z@ .#2\ifnum#3>\z@ #3\fi\fi}% + \fi} +\def\bxjs@preadjust@extract@font{% + \let\bxjs@req@size\f@size + \dimen@\f@size\p@ \bxjs@invscale\dimen@\bxjs@real@mag + \advance\dimen@.005pt\relax \bxjs@fstrunc\dimen@ + \let\bxjs@ref@size\bxjs@tmpa + \let\f@size\bxjs@ref@size} +\def\execute@size@function#1{% + \let\bxjs@cref@size\f@size + \let\f@size\bxjs@req@size + \csname s@fct@#1\endcsname} +\let\bxjs@DeclareErrorFont\DeclareErrorFont +\def\DeclareErrorFont#1#2#3#4#5{% + \@tempdimc#5\p@ \@tempdimc\bxjs@real@mag\@tempdimc + \edef\bxjs@tmpa{{#1}{#2}{#3}{#4}{\strip@pt\@tempdimc}} + \expandafter\bxjs@DeclareErrorFont\bxjs@tmpa} +\def\gen@sfcnt{% + \edef\mandatory@arg{\mandatory@arg\bxjs@cref@size}% + \empty@sfcnt} +\def\genb@sfcnt{% + \edef\mandatory@arg{% + \mandatory@arg\expandafter\genb@x\bxjs@cref@size..\@@}% + \empty@sfcnt} +\DeclareErrorFont{OT1}{cmr}{m}{n}{10} +\fi +\chardef\bxjs@periodchar=`\. +\def\@{\spacefactor\sfcode\bxjs@periodchar} +\def\bxjs@tmpa{\def\set@fontsize##1##2##3} +\expandafter\bxjs@tmpa\expandafter{% + \set@fontsize{#1}{#2}{#3}% + \expandafter\def\expandafter\size@update\expandafter{% + \size@update + \jsFontSizeChanged}% +} +\newcommand*\jsFontSizeChanged{% + \jsZw=\f@size\p@ + \jsZw=\jsScale \jsZw + \ifdim\parindent>\z@ + \if@english \parindent=1em + \else \parindent=1\jsZw + \fi + \fi\relax + \jsResetDimen} +\newcommand*\jsResetDimen{} +\ifbxjs@mag + \let\bxjs@setfontsize\@setfontsize +\else + \def\bxjs@setfontsize#1#2#3{% + \@setfontsize#1{#2\bxjs@mpt}{#3\bxjs@mpt}} +\fi +\emergencystretch 3\jsZw +\newif\ifnarrowbaselines +\if@english + \narrowbaselinestrue +\fi +\def\narrowbaselines{% + \narrowbaselinestrue + \skip0=\abovedisplayskip + \skip2=\abovedisplayshortskip + \skip4=\belowdisplayskip + \skip6=\belowdisplayshortskip + \@currsize\selectfont + \abovedisplayskip=\skip0 + \abovedisplayshortskip=\skip2 + \belowdisplayskip=\skip4 + \belowdisplayshortskip=\skip6\relax} +\def\widebaselines{\narrowbaselinesfalse\@currsize\selectfont} +\def\bxjs@if@narrowbaselines{% + \ifnarrowbaselines\expandafter\@firstoftwo + \else \expandafter\@secondoftwo + \fi +} +\renewcommand{\normalsize}{% + \bxjs@if@narrowbaselines{% + \bxjs@setfontsize\normalsize\@xpt\@xiipt + }{%else + \bxjs@setfontsize\normalsize\@xpt{\n@baseline}% + }% + \abovedisplayskip 11\p@? \@plus3\p@? \@minus4\p@? + \abovedisplayshortskip \z@ \@plus3\p@? + \belowdisplayskip 9\p@? \@plus3\p@? \@minus4\p@? + \belowdisplayshortskip \belowdisplayskip + \let\@listi\@listI} +\normalsize +\ifx\Cht\@undefined \newdimen\Cht \fi +\ifx\Cdp\@undefined \newdimen\Cdp \fi +\ifx\Cwd\@undefined \newdimen\Cwd \fi +\ifx\Cvs\@undefined \newdimen\Cvs \fi +\ifx\Chs\@undefined \newdimen\Chs \fi +\setlength\Cht{0.88\jsZw} +\setlength\Cdp{0.12\jsZw} +\setlength\Cwd{1\jsZw} +\setlength\Cvs{\baselineskip} +\setlength\Chs{1\jsZw} +\newcommand{\small}{% + \bxjs@if@narrowbaselines{% + \bxjs@setfontsize\small\@ixpt{11}% + }{%else + \bxjs@setfontsize\small\@ixpt{13}% + }% + \abovedisplayskip 9\p@? \@plus3\p@? \@minus4\p@? + \abovedisplayshortskip \z@ \@plus3\p@? + \belowdisplayskip \abovedisplayskip + \belowdisplayshortskip \belowdisplayskip + \def\@listi{\leftmargin\leftmargini + \topsep \z@ + \parsep \z@ + \itemsep \parsep}} +\newcommand{\footnotesize}{% + \bxjs@if@narrowbaselines{% + \bxjs@setfontsize\footnotesize\@viiipt{9.5}% + }{%else + \bxjs@setfontsize\footnotesize\@viiipt{11}% + }% + \abovedisplayskip 6\p@? \@plus2\p@? \@minus3\p@? + \abovedisplayshortskip \z@ \@plus2\p@? + \belowdisplayskip \abovedisplayskip + \belowdisplayshortskip \belowdisplayskip + \def\@listi{\leftmargin\leftmargini + \topsep \z@ + \parsep \z@ + \itemsep \parsep}} +\newcommand{\scriptsize}{\bxjs@setfontsize\scriptsize\@viipt\@viiipt} +\newcommand{\tiny}{\bxjs@setfontsize\tiny\@vpt\@vipt} +\if@twocolumn + \newcommand{\large}{\bxjs@setfontsize\large\@xiipt{\n@baseline}} +\else + \newcommand{\large}{\bxjs@setfontsize\large\@xiipt{17}} +\fi +\newcommand{\Large}{\bxjs@setfontsize\Large\@xivpt{21}} +\newcommand{\LARGE}{\bxjs@setfontsize\LARGE\@xviipt{25}} +\newcommand{\huge}{\bxjs@setfontsize\huge\@xxpt{28}} +\newcommand{\Huge}{\bxjs@setfontsize\Huge\@xxvpt{33}} +\newcommand{\HUGE}{\bxjs@setfontsize\HUGE{30}{40}} +\everydisplay=\expandafter{\the\everydisplay \narrowbaselines} +\newcommand{\headfont}{\sffamily} +\setlength\columnsep{2\Cwd} +\setlength\columnseprule{0\p@} +\setlength\lineskip{1\p@?} +\setlength\normallineskip{1\p@?} +\setlength\lineskiplimit{1\p@?} +\setlength\normallineskiplimit{1\p@?} +\renewcommand{\baselinestretch}{} +\setlength\parskip{0\p@} +\if@slide + \setlength\parindent{0\p@} +\else + \setlength\parindent{1\Cwd} +\fi +\@lowpenalty 51 +\@medpenalty 151 +\@highpenalty 301 +\ifbxjs@mag +\mag=\bxjs@param@mag +\fi +\setlength{\topskip}{10\p@?} +\def\bxjs@read@a{\futurelet\bxjs@tmpa\bxjs@read@b} +\def\bxjs@read@b{% + \ifx\bxjs@tmpa\bgroup \expandafter\bxjs@read@c + \else \expandafter\bxjs@read@d \fi} +\def\bxjs@read@c#1#2#3\@nil{\def\bxjs@param@paper{papersize={#1,#2}}} +\def\bxjs@read@d#1\@nil{} +\expandafter\bxjs@read@a\bxjs@param@paper\@nil +\edef\bxjs@layout@paper{% + \ifbxjs@mag truedimen,\fi + \if@landscape landscape,\fi + \bxjs@param@paper} +\def\bxjs@layout{% + headheight=\topskip,headsep=17.07164\p@?,nofoot,includeheadfoot,% + hmargin=102.42992\p@?,hmarginratio=1:1,% + vscale=0.83,vmarginratio=1:1,% +} +\newdimen\fullwidth +\newcommand\jsTextWidthLimit{40} +\def\bxjs@postproc@layout{% + \@tempdimb=\textwidth + \if@twocolumn \@tempdima=2\Cwd \else \@tempdima=1\Cwd \fi + \divide\textwidth\@tempdima \multiply\textwidth\@tempdima + \advance\@tempdimb-\textwidth + \advance\oddsidemargin 0.5\@tempdimb + \advance\evensidemargin 0.5\@tempdimb + \fullwidth=\textwidth + \ifdim\textwidth>\jsTextWidthLimit\Cwd + \textwidth=\jsTextWidthLimit\Cwd + \addtolength\evensidemargin{\fullwidth-\textwidth} + \fi + \@tempdimb=\textheight + \advance\textheight-\topskip + \divide\textheight\baselineskip \multiply\textheight\baselineskip + \advance\textheight\topskip + \advance\@tempdimb-\textheight + \advance\topmargin0.5\@tempdimb + \@tempdima=\topskip + \advance\headheight\@tempdima + \advance\topmargin-\@tempdima + \setlength\marginparsep{\columnsep} + \setlength\marginparpush{\baselineskip} + \setlength\marginparwidth{\paperwidth-\oddsidemargin-1truein% + -\textwidth-1cm-\marginparsep} + \divide\marginparwidth\Cwd \multiply\marginparwidth\Cwd + \maxdepth=.5\topskip +} +\@onlypreamble\bxjs@revert +\let\bxjs@revert\@empty +\edef\bxjs@tmpa{\the\ht\strutbox} +\ht\strutbox=10\p@? +\g@addto@macro\bxjs@revert{\ht\strutbox=\bxjs@tmpa\relax} +\if x\jsEngine + \ifx\pdfpagewidth\@undefined + \def\bxjs@Gm@driver{dvipdfm} + \else + \def\bxjs@Gm@driver{pdftex} + \ifx\pdfhorigin\@undefined \newdimen\pdfhorigin \fi + \ifx\pdfvorigin\@undefined \newdimen\pdfvorigin \fi + \fi + \let\bxjs@InputIfFileExists\InputIfFileExists + \g@addto@macro\bxjs@revert{\let\InputIfFileExists\bxjs@InputIfFileExists} + \def\InputIfFileExists#1#2#3{% + \bxjs@InputIfFileExists{#1}{#2}{#3}% + \edef\Gm@checkdrivers{\noexpand\Gm@setdriver{\bxjs@Gm@driver}}}% +\fi +\ifbxjs@papersize + \ifx\bxjs@driver@given\bxjs@driver@@dvipdfmx + \PassOptionsToPackage{dvipdfm}{geometry} + \fi + \let\bxPapersizeSpecialDone=t +\else + \PassOptionsToPackage{driver=none}{geometry} +\fi +\edef\bxjs@nxt{% + \noexpand\RequirePackage[\bxjs@layout@paper,\bxjs@layout]{geometry}} +\bxjs@nxt \bxjs@revert +\bxjs@postproc@layout +\def\setpagelayout{\@ifstar + {\bxjs@reset@layout}{\bxjs@modify@layout}} +\def\bxjs@modify@layout#1{% + \edef\bxjs@nxt{\noexpand\geometry{#1,truedimen}}% + \bxjs@nxt\bxjs@postproc@layout} +\def\bxjs@reset@layout#1{% + \edef\bxjs@nxt{\noexpand\geometry{reset,\bxjs@layout@paper,#1,truedimen}}% + \bxjs@nxt\bxjs@postproc@layout} +\footnotesep=11\p@? \footnotesep=0.7\footnotesep +\setlength{\skip\footins}{16\p@? \@plus 5\p@? \@minus 2\p@?} +\setcounter{topnumber}{9} +\renewcommand{\topfraction}{.85} +\setcounter{bottomnumber}{9} +\renewcommand{\bottomfraction}{.8} +\setcounter{totalnumber}{20} +\renewcommand{\textfraction}{.1} +\renewcommand{\floatpagefraction}{.8} +\setcounter{dbltopnumber}{9} +\renewcommand{\dbltopfraction}{.8} +\renewcommand{\dblfloatpagefraction}{.8} +\setlength\floatsep {12\p@? \@plus 2\p@? \@minus 2\p@?} +\setlength\textfloatsep{20\p@? \@plus 2\p@? \@minus 4\p@?} +\setlength\intextsep {12\p@? \@plus 2\p@? \@minus 2\p@?} +\setlength\dblfloatsep {12\p@? \@plus 2\p@? \@minus 2\p@?} +\setlength\dbltextfloatsep{20\p@? \@plus 2\p@? \@minus 4\p@?} +\setlength\@fptop{0\p@? \@plus 1fil} +\setlength\@fpsep{8\p@? \@plus 2fil} +\setlength\@fpbot{0\p@? \@plus 1fil} +\setlength\@dblfptop{0\p@? \@plus 1fil} +\setlength\@dblfpsep{8\p@? \@plus 2fil} +\setlength\@dblfpbot{0\p@? \@plus 1fil} +\def\ps@plainfoot{% + \let\@mkboth\@gobbletwo + \let\@oddhead\@empty + \def\@oddfoot{\normalfont\hfil\thepage\hfil}% + \let\@evenhead\@empty + \let\@evenfoot\@oddfoot} +\def\ps@plainhead{% + \let\@mkboth\@gobbletwo + \let\@oddfoot\@empty + \let\@evenfoot\@empty + \def\@evenhead{% + \if@mparswitch \hss \fi + \hbox to \fullwidth{\textbf{\thepage}\hfil}% + \if@mparswitch\else \hss \fi}% + \def\@oddhead{% + \hbox to \fullwidth{\hfil\textbf{\thepage}}\hss}} +\let\ps@plain\ps@plainhead +\newif\if@omit@number +\def\ps@headings{% + \let\@oddfoot\@empty + \let\@evenfoot\@empty + \def\@evenhead{% + \if@mparswitch \hss \fi + \underline{\hbox to \fullwidth{\autoxspacing + \textbf{\thepage}\hfil\leftmark}}% + \if@mparswitch\else \hss \fi}% + \def\@oddhead{\underline{\hbox to \fullwidth{\autoxspacing + {\if@twoside\rightmark\else\leftmark\fi}\hfil\textbf{\thepage}}}\hss}% + \let\@mkboth\markboth + \def\chaptermark##1{\markboth{% + \ifnum \c@secnumdepth >\m@ne + \if@mainmatter + \if@omit@number\else + \@chapapp\thechapter\@chappos\hskip1\jsZw + \fi + \fi + \fi + ##1}{}}% + \def\sectionmark##1{\markright{% + \ifnum \c@secnumdepth >\z@ \thesection \hskip1\jsZw\fi + ##1}}}% +\def\ps@myheadings{% + \let\@oddfoot\@empty\let\@evenfoot\@empty + \def\@evenhead{% + \if@mparswitch \hss \fi% + \hbox to \fullwidth{\thepage\hfil\leftmark}% + \if@mparswitch\else \hss \fi}% + \def\@oddhead{% + \hbox to \fullwidth{\rightmark\hfil\thepage}\hss}% + \let\@mkboth\@gobbletwo + \let\chaptermark\@gobble + \let\sectionmark\@gobble +} +\def\plainifnotempty{% + \ifx \@oddhead \@empty + \ifx \@oddfoot \@empty + \else + \thispagestyle{plainfoot}% + \fi + \else + \thispagestyle{plainhead}% + \fi} +\if@titlepage + \newcommand{\maketitle}{% + \begin{titlepage}% + \let\footnotesize\small + \let\footnoterule\relax + \let\footnote\thanks + \null\vfil + \if@slide + {\footnotesize \@date}% + \begin{center} + \mbox{} \\[1\jsZw] + \large + {\maybeblue\hrule height0\p@? depth2\p@?\relax}\par + \smallskip + \@title + \smallskip + {\maybeblue\hrule height0\p@? depth2\p@?\relax}\par + \vfill + {\small \@author}% + \end{center} + \else + \vskip 60\p@? + \begin{center}% + {\LARGE \@title \par}% + \vskip 3em% + {\large + \lineskip .75em + \begin{tabular}[t]{c}% + \@author + \end{tabular}\par}% + \vskip 1.5em + {\large \@date \par}% + \end{center}% + \fi + \par + \@thanks\vfil\null + \end{titlepage}% + \setcounter{footnote}{0}% + \global\let\thanks\relax + \global\let\maketitle\relax + \global\let\@thanks\@empty + \global\let\@author\@empty + \global\let\@date\@empty + \global\let\@title\@empty + \global\let\title\relax + \global\let\author\relax + \global\let\date\relax + \global\let\and\relax + }% +\else + \newcommand{\maketitle}{\par + \begingroup + \renewcommand\thefootnote{\@fnsymbol\c@footnote}% + \def\@makefnmark{\rlap{\@textsuperscript{\normalfont\@thefnmark}}}% + \long\def\@makefntext##1{\advance\leftskip 3\jsZw + \parindent 1\jsZw\noindent + \llap{\@textsuperscript{\normalfont\@thefnmark}\hskip0.3\jsZw}##1}% + \if@twocolumn + \ifnum \col@number=\@ne + \@maketitle + \else + \twocolumn[\@maketitle]% + \fi + \else + \newpage + \global\@topnum\z@ % Prevents figures from going at top of page. + \@maketitle + \fi + \plainifnotempty + \@thanks + \endgroup + \setcounter{footnote}{0}% + \global\let\thanks\relax + \global\let\maketitle\relax + \global\let\@thanks\@empty + \global\let\@author\@empty + \global\let\@date\@empty + \global\let\@title\@empty + \global\let\title\relax + \global\let\author\relax + \global\let\date\relax + \global\let\and\relax + } + \def\@maketitle{% + \newpage\null + \vskip 2em + \begin{center}% + \let\footnote\thanks + {\LARGE \@title \par}% + \vskip 1.5em + {\large + \lineskip .5em + \begin{tabular}[t]{c}% + \@author + \end{tabular}\par}% + \vskip 1em + {\large \@date}% + \end{center}% + \par\vskip 1.5em + } +\fi +\def\@startsection#1#2#3#4#5#6{% + \if@noskipsec \leavevmode \fi + \par + \@tempskipa #4\relax + \if@english \@afterindentfalse \else \@afterindenttrue \fi + \ifdim \@tempskipa <\z@ + \@tempskipa -\@tempskipa \@afterindentfalse + \fi + \if@nobreak + \everypar{}% + \else + \addpenalty\@secpenalty + \ifdim \@tempskipa >\z@ + \if@slide\else + \null + \vspace*{-\baselineskip}% + \fi + \vskip\@tempskipa + \fi + \fi + \noindent + \@ifstar + {\@ssect{#3}{#4}{#5}{#6}}% + {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}} +\def\@sect#1#2#3#4#5#6[#7]#8{% + \ifnum #2>\c@secnumdepth + \let\@svsec\@empty + \else + \refstepcounter{#1}% + \protected@edef\@svsec{\@seccntformat{#1}\relax}% + \fi + \@tempskipa #5\relax + \ifdim \@tempskipa<\z@ + \def\@svsechd{% + #6{\hskip #3\relax + \@svsec #8}% + \csname #1mark\endcsname{#7}% + \addcontentsline{toc}{#1}{% + \ifnum #2>\c@secnumdepth \else + \protect\numberline{\csname the#1\endcsname}% + \fi + #7}}% 目次にフルネームを載せるなら #8 + \else + \begingroup + \interlinepenalty \@M % 下から移動 + #6{% + \@hangfrom{\hskip #3\relax\@svsec}% + #8\@@par}% + \endgroup + \csname #1mark\endcsname{#7}% + \addcontentsline{toc}{#1}{% + \ifnum #2>\c@secnumdepth \else + \protect\numberline{\csname the#1\endcsname}% + \fi + #7}% 目次にフルネームを載せるならここは #8 + \fi + \@xsect{#5}} +\def\@xsect#1{% + \@tempskipa #1\relax + \ifdim \@tempskipa<\z@ + \@nobreakfalse + \global\@noskipsectrue + \everypar{% + \if@noskipsec + \global\@noskipsecfalse + {\setbox\z@\lastbox}% + \clubpenalty\@M + \begingroup \@svsechd \endgroup + \unskip + \@tempskipa #1\relax + \hskip -\@tempskipa + \bxjs@ltj@inhibitglue + \else + \clubpenalty \@clubpenalty + \everypar{\everyparhook}% + \fi\everyparhook}% + \else + \par \nobreak + \vskip \@tempskipa + \@afterheading + \fi + \if@slide + {\vskip-6\p@?\maybeblue\hrule height0\p@? depth1\p@?\vskip7\p@?\relax}% + \fi + \par % 2000-12-18 + \ignorespaces} +\def\@ssect#1#2#3#4#5{% + \@tempskipa #3\relax + \ifdim \@tempskipa<\z@ + \def\@svsechd{#4{\hskip #1\relax #5}}% + \else + \begingroup + #4{% + \@hangfrom{\hskip #1}% + \interlinepenalty \@M #5\@@par}% + \endgroup + \fi + \@xsect{#3}} +\let\bxjs@ltj@inhibitglue\@empty +\newcommand*\chaptermark[1]{} +\setcounter{secnumdepth}{2} +\newcounter{part} +\newcounter{chapter} +\newcounter{section}[chapter] +\newcounter{subsection}[section] +\newcounter{subsubsection}[subsection] +\newcounter{paragraph}[subsubsection] +\newcounter{subparagraph}[paragraph] +\renewcommand{\thepart}{\@Roman\c@part} +\renewcommand{\thechapter}{\@arabic\c@chapter} +\renewcommand{\thesection}{\thechapter.\@arabic\c@section} +\renewcommand{\thesubsection}{\thesection.\@arabic\c@subsection} +\renewcommand{\thesubsubsection}{% + \thesubsection.\@arabic\c@subsubsection} +\renewcommand{\theparagraph}{% + \thesubsubsection.\@arabic\c@paragraph} +\renewcommand{\thesubparagraph}{% + \theparagraph.\@arabic\c@subparagraph} +\newcommand{\@chapapp}{\prechaptername} +\newcommand{\@chappos}{\postchaptername} +\newcommand\frontmatter{% + \if@openright + \cleardoublepage + \else + \clearpage + \fi + \@mainmatterfalse + \pagenumbering{roman}} +\newcommand\mainmatter{% + \cleardoublepage + \@mainmattertrue + \pagenumbering{arabic}} +\newcommand\backmatter{% + \if@openright + \cleardoublepage + \else + \clearpage + \fi + \@mainmatterfalse} +\newcommand\part{% + \if@openright + \cleardoublepage + \else + \clearpage + \fi + \thispagestyle{empty}% 欧文用標準スタイルでは plain + \if@twocolumn + \onecolumn + \@restonecoltrue + \else + \@restonecolfalse + \fi + \null\vfil + \secdef\@part\@spart} +\def\@part[#1]#2{% + \ifnum \c@secnumdepth >-2\relax + \refstepcounter{part}% + \addcontentsline{toc}{part}{% + \prepartname\thepart\postpartname\hspace{1\jsZw}#1}% + \else + \addcontentsline{toc}{part}{#1}% + \fi + \markboth{}{}% + {\centering + \interlinepenalty \@M + \normalfont + \ifnum \c@secnumdepth >-2\relax + \huge\headfont \prepartname\thepart\postpartname + \par\vskip20\p@? + \fi + \Huge \headfont #2\par}% + \@endpart} +\def\@spart#1{{% + \centering + \interlinepenalty \@M + \normalfont + \Huge \headfont #1\par}% + \@endpart} +\def\@endpart{\vfil\newpage + \if@twoside + \null + \thispagestyle{empty}% + \newpage + \fi + \if@restonecol + \twocolumn + \fi} +\newcommand{\chapter}{% + \if@openright\cleardoublepage\else\clearpage\fi + \plainifnotempty % 元: \thispagestyle{plain} + \global\@topnum\z@ + \if@english \@afterindentfalse \else \@afterindenttrue \fi + \secdef + {\@omit@numberfalse\@chapter}% + {\@omit@numbertrue\@schapter}} +\def\@chapter[#1]#2{% + \ifnum \c@secnumdepth >\m@ne + \if@mainmatter + \refstepcounter{chapter}% + \typeout{\@chapapp\thechapter\@chappos}% + \addcontentsline{toc}{chapter}% + {\protect\numberline + {\@chapapp\thechapter\@chappos}% + #1}% + \else\addcontentsline{toc}{chapter}{#1}\fi + \else + \addcontentsline{toc}{chapter}{#1}% + \fi + \chaptermark{#1}% + \addtocontents{lof}{\protect\addvspace{10\p@}}% + \addtocontents{lot}{\protect\addvspace{10\p@}}% + \if@twocolumn + \@topnewpage[\@makechapterhead{#2}]% + \else + \@makechapterhead{#2}% + \@afterheading + \fi} +\def\@makechapterhead#1{% + \vspace*{2\Cvs}% 欧文は50pt + {\parindent \z@ \raggedright \normalfont + \ifnum \c@secnumdepth >\m@ne + \if@mainmatter + \huge\headfont \@chapapp\thechapter\@chappos + \par\nobreak + \vskip \Cvs % 欧文は20pt + \fi + \fi + \interlinepenalty\@M + \Huge \headfont #1\par\nobreak + \vskip 3\Cvs}} % 欧文は40pt +\def\@schapter#1{% + \chaptermark{#1}% + \if@twocolumn + \@topnewpage[\@makeschapterhead{#1}]% + \else + \@makeschapterhead{#1}\@afterheading + \fi} +\def\@makeschapterhead#1{% + \vspace*{2\Cvs}% 欧文は50pt + {\parindent \z@ \raggedright + \normalfont + \interlinepenalty\@M + \Huge \headfont #1\par\nobreak + \vskip 3\Cvs}} % 欧文は40pt +\if@twocolumn + \newcommand{\section}{% + \@startsection{section}{1}{\z@}% + {0.6\Cvs}{0.4\Cvs}% + {\normalfont\large\headfont\raggedright}} +\else + \newcommand{\section}{% + \if@slide\clearpage\fi + \@startsection{section}{1}{\z@}% + {\Cvs \@plus.5\Cdp \@minus.2\Cdp}% 前アキ + {.5\Cvs \@plus.3\Cdp}% 後アキ + {\normalfont\Large\headfont\raggedright}} +\fi +\if@twocolumn + \newcommand{\subsection}{\@startsection{subsection}{2}{\z@}% + {\z@}{\z@}% + {\normalfont\normalsize\headfont}} +\else + \newcommand{\subsection}{\@startsection{subsection}{2}{\z@}% + {\Cvs \@plus.5\Cdp \@minus.2\Cdp}% 前アキ + {.5\Cvs \@plus.3\Cdp}% 後アキ + {\normalfont\large\headfont}} +\fi +\if@twocolumn + \newcommand{\subsubsection}{\@startsection{subsubsection}{3}{\z@}% + {\z@}{\z@}% + {\normalfont\normalsize\headfont}} +\else + \newcommand{\subsubsection}{\@startsection{subsubsection}{3}{\z@}% + {\Cvs \@plus.5\Cdp \@minus.2\Cdp}% + {\z@}% + {\normalfont\normalsize\headfont}} +\fi +\if@twocolumn + \newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}% + {\z@}{-1\jsZw}% 改行せず 1\jsZw のアキ + {\normalfont\normalsize\headfont ■}} +\else + \newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}% + {0.5\Cvs \@plus.5\Cdp \@minus.2\Cdp}% + {-1\jsZw}% 改行せず 1\jsZw のアキ + {\normalfont\normalsize\headfont ■}} +\fi +\newcommand{\subparagraph}{\@startsection{subparagraph}{5}{\z@}% + {\z@}{-1\jsZw}% + {\normalfont\normalsize\headfont}} +\if@slide + \setlength\leftmargini{1\jsZw} +\else + \if@twocolumn + \setlength\leftmargini{2\jsZw} + \else + \setlength\leftmargini{3\jsZw} + \fi +\fi +\if@slide + \setlength\leftmarginii {1\jsZw} + \setlength\leftmarginiii{1\jsZw} + \setlength\leftmarginiv {1\jsZw} + \setlength\leftmarginv {1\jsZw} + \setlength\leftmarginvi {1\jsZw} +\else + \setlength\leftmarginii {2\jsZw} + \setlength\leftmarginiii{2\jsZw} + \setlength\leftmarginiv {2\jsZw} + \setlength\leftmarginv {1\jsZw} + \setlength\leftmarginvi {1\jsZw} +\fi +\setlength \labelsep {0.5\jsZw} % .5em +\setlength \labelwidth{\leftmargini} +\addtolength\labelwidth{-\labelsep} +\setlength\partopsep{\z@} % {2\p@ \@plus 1\p@ \@minus 1\p@} +\@beginparpenalty -\@lowpenalty +\@endparpenalty -\@lowpenalty +\@itempenalty -\@lowpenalty +\def\@listi{\leftmargin\leftmargini + \parsep \z@ + \topsep 0.5\baselineskip + \itemsep \z@ \relax} +\let\@listI\@listi +\@listi +\def\@listii{\leftmargin\leftmarginii + \labelwidth\leftmarginii \advance\labelwidth-\labelsep + \topsep \z@ + \parsep \z@ + \itemsep\parsep} +\def\@listiii{\leftmargin\leftmarginiii + \labelwidth\leftmarginiii \advance\labelwidth-\labelsep + \topsep \z@ + \parsep \z@ + \itemsep\parsep} +\def\@listiv {\leftmargin\leftmarginiv + \labelwidth\leftmarginiv + \advance\labelwidth-\labelsep} +\def\@listv {\leftmargin\leftmarginv + \labelwidth\leftmarginv + \advance\labelwidth-\labelsep} +\def\@listvi {\leftmargin\leftmarginvi + \labelwidth\leftmarginvi + \advance\labelwidth-\labelsep} +\renewcommand{\theenumi}{\@arabic\c@enumi} +\renewcommand{\theenumii}{\@alph\c@enumii} +\renewcommand{\theenumiii}{\@roman\c@enumiii} +\renewcommand{\theenumiv}{\@Alph\c@enumiv} +\newcommand{\labelenumi}{\theenumi.} +\newcommand{\labelenumii}{\jsInhibitGlue(\theenumii)\jsInhibitGlue} +\newcommand{\labelenumiii}{\theenumiii.} +\newcommand{\labelenumiv}{\theenumiv.} +\renewcommand{\p@enumii}{\theenumi} +\renewcommand{\p@enumiii}{\theenumi\jsInhibitGlue(\theenumii)} +\renewcommand{\p@enumiv}{\p@enumiii\theenumiii} +\newcommand\labelitemi{\textbullet} +\newcommand\labelitemii{\normalfont\bfseries \textendash} +\newcommand\labelitemiii{\textasteriskcentered} +\newcommand\labelitemiv{\textperiodcentered} +\newenvironment{description}{% + \list{}{% + \labelwidth=\leftmargin + \labelsep=1\jsZw + \advance \labelwidth by -\labelsep + \let \makelabel=\descriptionlabel}}{\endlist} +\newcommand*\descriptionlabel[1]{\normalfont\headfont #1\hfil} +\newenvironment{abstract}{% + \begin{list}{}{% + \listparindent=1\jsZw + \itemindent=\listparindent + \rightmargin=\z@ + \leftmargin=5\jsZw}\item[]}{\end{list}\vspace{\baselineskip}} +\newenvironment{verse}{% + \let \\=\@centercr + \list{}{% + \itemsep \z@ + \itemindent -2\jsZw % 元: -1.5em + \listparindent\itemindent + \rightmargin \z@ + \advance\leftmargin 2\jsZw}% 元: 1.5em + \item\relax}{\endlist} +\newenvironment{quotation}{% + \list{}{% + \listparindent\parindent + \itemindent\listparindent + \rightmargin \z@}% + \item\relax}{\endlist} +\newenvironment{quote}% + {\list{}{\rightmargin\z@}\item\relax}{\endlist} +\def\@begintheorem#1#2{\trivlist\labelsep=1\jsZw + \item[\hskip \labelsep{\headfont #1\ #2}]} +\def\@opargbegintheorem#1#2#3{\trivlist\labelsep=1\jsZw + \item[\hskip \labelsep{\headfont #1\ #2(#3)}]} +\newenvironment{titlepage}{% + \cleardoublepage + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse\newpage + \fi + \thispagestyle{empty}% + \setcounter{page}\@ne + }% + {\if@restonecol\twocolumn \else \newpage \fi + \if@twoside\else + \setcounter{page}\@ne + \fi} +\newcommand{\appendix}{\par + \setcounter{chapter}{0}% + \setcounter{section}{0}% + \gdef\@chapapp{\appendixname}% + \gdef\@chappos{}% + \gdef\thechapter{\@Alph\c@chapter}} +\setlength\arraycolsep{5\p@?} +\setlength\tabcolsep{6\p@?} +\setlength\arrayrulewidth{.4\p@} +\setlength\doublerulesep{2\p@} +\setlength\tabbingsep{\labelsep} +\skip\@mpfootins = \skip\footins +\setlength\fboxsep{3\p@?} +\setlength\fboxrule{.4\p@} +\@addtoreset{equation}{chapter} +\renewcommand\theequation + {\ifnum \c@chapter>\z@ \thechapter.\fi \@arabic\c@equation} +\newcounter{figure}[chapter] +\renewcommand \thefigure + {\ifnum \c@chapter>\z@ \thechapter.\fi \@arabic\c@figure} +\def\fps@figure{tbp} +\def\ftype@figure{1} +\def\ext@figure{lof} +\def\fnum@figure{\figurename\nobreak\thefigure} +\newenvironment{figure}% + {\@float{figure}}% + {\end@float} +\newenvironment{figure*}% + {\@dblfloat{figure}}% + {\end@dblfloat} +\newcounter{table}[chapter] +\renewcommand \thetable + {\ifnum \c@chapter>\z@ \thechapter.\fi \@arabic\c@table} +\def\fps@table{tbp} +\def\ftype@table{2} +\def\ext@table{lot} +\def\fnum@table{\tablename\nobreak\thetable} +\newenvironment{table}% + {\@float{table}}% + {\end@float} +\newenvironment{table*}% + {\@dblfloat{table}}% + {\end@dblfloat} +\newlength\abovecaptionskip +\newlength\belowcaptionskip +\setlength\abovecaptionskip{5\p@?} % 元: 10\p@ +\setlength\belowcaptionskip{5\p@?} % 元: 0\p@ +\long\def\@makecaption#1#2{{\small + \advance\leftskip .0628\linewidth + \advance\rightskip .0628\linewidth + \vskip\abovecaptionskip + \sbox\@tempboxa{#1\hskip1\jsZw\relax #2}% + \ifdim \wd\@tempboxa <\hsize \centering \fi + #1\hskip1\jsZw\relax #2\par + \vskip\belowcaptionskip}} +\DeclareOldFontCommand{\mc}{\normalfont\mcfamily}{\mathmc} +\DeclareOldFontCommand{\gt}{\normalfont\gtfamily}{\mathgt} +\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm} +\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf} +\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt} +\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf} +\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit} +\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl} +\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc} +\DeclareRobustCommand*{\cal}{\@fontswitch\relax\mathcal} +\DeclareRobustCommand*{\mit}{\@fontswitch\relax\mathnormal} +\newcommand\@pnumwidth{1.55em} +\newcommand\@tocrmarg{2.55em} +\newcommand\@dotsep{4.5} +\setcounter{tocdepth}{1} +\newdimen\js@tocl@width +\newcommand{\tableofcontents}{% + \settowidth\js@tocl@width{\headfont\prechaptername\postchaptername}% + \settowidth\@tempdima{\headfont\appendixname}% + \ifdim\js@tocl@width<\@tempdima \setlength\js@tocl@width{\@tempdima}\fi + \ifdim\js@tocl@width<2zw \divide\js@tocl@width by 2 \advance\js@tocl@width 1zw\fi + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse + \fi + \chapter*{\contentsname}% + \@mkboth{\contentsname}{}% + \@starttoc{toc}% + \if@restonecol\twocolumn\fi +} +\newcommand*{\l@part}[2]{% + \ifnum \c@tocdepth >-2\relax + \addpenalty{-\@highpenalty}% + \addvspace{2.25em \@plus\p@?}% + \begingroup + \parindent \z@ + \rightskip \@tocrmarg + \parfillskip -\rightskip + {\leavevmode + \large \headfont + \setlength\@lnumwidth{4\jsZw}% + #1\hfil \hb@xt@\@pnumwidth{\hss #2}}\par + \nobreak + \global\@nobreaktrue + \everypar{\global\@nobreakfalse\everypar{}}% + \endgroup + \fi} +\newcommand*{\l@chapter}[2]{% + \ifnum \c@tocdepth >\m@ne + \addpenalty{-\@highpenalty}% + \addvspace{1.0em \@plus\p@?} + \begingroup + \parindent\z@ + \rightskip\@tocrmarg + \parfillskip-\rightskip + \leavevmode\headfont + \setlength\@lnumwidth{\js@tocl@width}\advance\@lnumwidth 2.683\jsZw + \advance\leftskip\@lnumwidth \hskip-\leftskip + #1\nobreak\hfil\nobreak\hbox to\@pnumwidth{\hss#2}\par + \penalty\@highpenalty + \endgroup + \fi} + % \newcommand*{\l@section}{\@dottedtocline{1}{1\jsZw}{3.683\jsZw}} +\newcommand*{\l@section}{% + \@tempdima\js@tocl@width \advance\@tempdima -1\jsZw + \@dottedtocline{1}{\@tempdima}{3.683\jsZw}} +\newcommand*{\l@subsection}{% + \@tempdima\js@tocl@width \advance\@tempdima 2.683\jsZw + \@dottedtocline{2}{\@tempdima}{3.5\jsZw}} +\newcommand*{\l@subsubsection}{% + \@tempdima\js@tocl@width \advance\@tempdima 6.183\jsZw + \@dottedtocline{3}{\@tempdima}{4.5\jsZw}} +\newcommand*{\l@paragraph}{% + \@tempdima\js@tocl@width \advance\@tempdima 10.683\jsZw + \@dottedtocline{4}{\@tempdima}{5.5\jsZw}} +\newcommand*{\l@subparagraph}{% + \@tempdima\js@tocl@width \advance\@tempdima 16.183\jsZw + \@dottedtocline{5}{\@tempdima}{6.5\jsZw}} +\newdimen\@lnumwidth +\def\numberline#1{\hb@xt@\@lnumwidth{#1\hfil}\hspace{0pt}} +\def\@dottedtocline#1#2#3#4#5{\ifnum #1>\c@tocdepth \else + \vskip \z@ \@plus.2\p@? + {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip + \parindent #2\relax\@afterindenttrue + \interlinepenalty\@M + \leavevmode + \@lnumwidth #3\relax + \advance\leftskip \@lnumwidth \null\nobreak\hskip -\leftskip + {#4}\nobreak + \leaders\hbox{$\m@th \mkern \@dotsep mu\hbox{.}\mkern \@dotsep + mu$}\hfill \nobreak\hb@xt@\@pnumwidth{% + \hfil\normalfont \normalcolor #5}\par}\fi} +\newcommand{\listoffigures}{% + \if@twocolumn\@restonecoltrue\onecolumn + \else\@restonecolfalse\fi + \chapter*{\listfigurename}% + \@mkboth{\listfigurename}{}% + \@starttoc{lof}% + \if@restonecol\twocolumn\fi +} +\newcommand*{\l@figure}{\@dottedtocline{1}{1\jsZw}{3.683\jsZw}} +\newcommand{\listoftables}{% + \if@twocolumn\@restonecoltrue\onecolumn + \else\@restonecolfalse\fi + \chapter*{\listtablename}% + \@mkboth{\listtablename}{}% + \@starttoc{lot}% + \if@restonecol\twocolumn\fi +} +\let\l@table\l@figure +\newdimen\bibindent +\setlength\bibindent{2\jsZw} +\newenvironment{thebibliography}[1]{% + \global\let\presectionname\relax + \global\let\postsectionname\relax + \chapter*{\bibname}\@mkboth{\bibname}{}% + \addcontentsline{toc}{chapter}{\bibname}% + \list{\@biblabel{\@arabic\c@enumiv}}% + {\settowidth\labelwidth{\@biblabel{#1}}% + \leftmargin\labelwidth + \advance\leftmargin\labelsep + \@openbib@code + \usecounter{enumiv}% + \let\p@enumiv\@empty + \renewcommand\theenumiv{\@arabic\c@enumiv}}% + \sloppy + \clubpenalty4000 + \@clubpenalty\clubpenalty + \widowpenalty4000% + \sfcode`\.\@m} + {\def\@noitemerr + {\@latex@warning{Empty `thebibliography' environment}}% + \endlist} +\newcommand{\newblock}{\hskip .11em\@plus.33em\@minus.07em} +\let\@openbib@code\@empty +\newenvironment{theindex}{% 索引を3段組で出力する環境 + \if@twocolumn + \onecolumn\@restonecolfalse + \else + \clearpage\@restonecoltrue + \fi + \columnseprule.4pt \columnsep 2\jsZw + \ifx\multicols\@undefined + \twocolumn[\@makeschapterhead{\indexname}% + \addcontentsline{toc}{chapter}{\indexname}]% + \else + \ifdim\textwidth<\fullwidth + \setlength{\evensidemargin}{\oddsidemargin} + \setlength{\textwidth}{\fullwidth} + \setlength{\linewidth}{\fullwidth} + \begin{multicols}{3}[\chapter*{\indexname}% + \addcontentsline{toc}{chapter}{\indexname}]% + \else + \begin{multicols}{2}[\chapter*{\indexname}% + \addcontentsline{toc}{chapter}{\indexname}]% + \fi + \fi + \@mkboth{\indexname}{}% + \plainifnotempty % \thispagestyle{plain} + \parindent\z@ + \parskip\z@ \@plus .3\p@?\relax + \let\item\@idxitem + \raggedright + \footnotesize\narrowbaselines + }{ + \ifx\multicols\@undefined + \if@restonecol\onecolumn\fi + \else + \end{multicols} + \fi + \clearpage + } +\newcommand{\@idxitem}{\par\hangindent 4\jsZw} % 元 40pt +\newcommand{\subitem}{\@idxitem \hspace*{2\jsZw}} % 元 20pt +\newcommand{\subsubitem}{\@idxitem \hspace*{3\jsZw}} % 元 30pt +\newcommand{\indexspace}{\par \vskip 10\p@? \@plus5\p@? \@minus3\p@?\relax} +\newcommand\seename{\if@english see\else →\fi} +\newcommand\alsoname{\if@english see also\else →\fi} +\let\footnotes@ve=\footnote +\def\footnote{\jsInhibitGlue\footnotes@ve} +\let\footnotemarks@ve=\footnotemark +\def\footnotemark{\jsInhibitGlue\footnotemarks@ve} +\def\thefootnote{\ifnum\c@footnote>\z@\leavevmode\lower.5ex\hbox{*}\@arabic\c@footnote\fi} +\renewcommand{\footnoterule}{% + \kern-3\p@? + \hrule width .4\columnwidth + \kern 2.6\p@?} +\@addtoreset{footnote}{chapter} +\long\def\@footnotetext{% + \insert\footins\bgroup + \normalfont\footnotesize + \interlinepenalty\interfootnotelinepenalty + \splittopskip\footnotesep + \splitmaxdepth \dp\strutbox \floatingpenalty \@MM + \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark + }% + \color@begingroup + \@makefntext{% + \rule\z@\footnotesep\ignorespaces}% + \futurelet\next\fo@t} +\def\fo@t{\ifcat\bgroup\noexpand\next \let\next\f@@t + \else \let\next\f@t\fi \next} +\def\f@@t{\bgroup\aftergroup\@foot\let\next} +\def\f@t#1{#1\@foot} +\def\@foot{\@finalstrut\strutbox\color@endgroup\egroup} +\newcommand\@makefntext[1]{% + \advance\leftskip 3\jsZw + \parindent 1\jsZw + \noindent + \llap{\@makefnmark\hskip0.3\jsZw}#1} +\let\jsInhibitGlueAtParTop\@empty +\def\everyparhook{\jsInhibitGlueAtParTop} +\AtBeginDocument{\everypar{\everyparhook}} +\def\@inhibitglue{% + \futurelet\@let@token\@@inhibitglue} +\def\@@inhibitglue{% + \ifx\@let@token「% + \jsInhibitGlue + \else + \ifx\@let@token(% + \jsInhibitGlue + \else + \ifx\@let@token『% + \jsInhibitGlue + \else + \ifx\@let@token[% + \jsInhibitGlue + \fi + \fi + \fi + \fi} +\def\@doendpe{% + \@endpetrue + \def\par{% + \@restorepar\everypar{\everyparhook}\par\@endpefalse}% + \everypar{{\setbox\z@\lastbox}\everypar{\everyparhook}\@endpefalse\everyparhook}} +\def\@item[#1]{% + \if@noparitem + \@donoparitem + \else + \if@inlabel + \indent \par + \fi + \ifhmode + \unskip\unskip \par + \fi + \if@newlist + \if@nobreak + \@nbitem + \else + \addpenalty\@beginparpenalty + \addvspace\@topsep + \addvspace{-\parskip}% + \fi + \else + \addpenalty\@itempenalty + \addvspace\itemsep + \fi + \global\@inlabeltrue + \fi + \everypar{% + \@minipagefalse + \global\@newlistfalse + \if@inlabel + \global\@inlabelfalse + {\setbox\z@\lastbox + \ifvoid\z@ + \kern-\itemindent + \fi}% + \box\@labels + \penalty\z@ + \fi + \if@nobreak + \@nobreakfalse + \clubpenalty \@M + \else + \clubpenalty \@clubpenalty + \everypar{\everyparhook}% + \fi + \bxjs@ltj@inhibitglue + \everyparhook}% + \if@noitemarg + \@noitemargfalse + \if@nmbrlist + \refstepcounter\@listctr + \fi + \fi + \sbox\@tempboxa{\makelabel{#1}}% + \global\setbox\@labels\hbox{% + \unhbox\@labels + \hskip \itemindent + \hskip -\labelwidth + \hskip -\labelsep + \ifdim \wd\@tempboxa >\labelwidth + \box\@tempboxa + \else + \hbox to\labelwidth {\unhbox\@tempboxa}% + \fi + \hskip \labelsep}% + \ignorespaces} +\def\@afterheading{% + \@nobreaktrue + \everypar{% + \if@nobreak + \@nobreakfalse + \clubpenalty \@M + \if@afterindent \else + {\setbox\z@\lastbox}% + \fi + \else + \clubpenalty \@clubpenalty + \everypar{\everyparhook}% + \fi\everyparhook}} +\def\@gnewline #1{% + \ifvmode + \@nolnerr + \else + \unskip \reserved@e {\reserved@f#1}\nobreak \hfil \break \null + \jsInhibitGlue \ignorespaces + \fi} +\newcommand{\prepartname}{\if@english Part~\else 第\fi} +\newcommand{\postpartname}{\if@english\else 部\fi} +\newcommand{\prechaptername}{\if@english Chapter~\else 第\fi} +\newcommand{\postchaptername}{\if@english\else 章\fi} +\newcommand{\presectionname}{}% 第 +\newcommand{\postsectionname}{}% 節 +\newcommand{\contentsname}{\if@english Contents\else 目次\fi} +\newcommand{\listfigurename}{\if@english List of Figures\else 図目次\fi} +\newcommand{\listtablename}{\if@english List of Tables\else 表目次\fi} +\newcommand{\refname}{\if@english References\else 参考文献\fi} +\newcommand{\bibname}{\if@english Bibliography\else 参考文献\fi} +\newcommand{\indexname}{\if@english Index\else 索引\fi} +\newcommand{\figurename}{\if@english Fig.~\else 図\fi} +\newcommand{\tablename}{\if@english Table~\else 表\fi} +\newcommand{\appendixname}{\if@english \else 付録\fi} +\@tempswafalse +\if p\jsEngine \@tempswatrue \fi +\if n\jsEngine \@tempswatrue \fi +\if@tempswa \expandafter\@firstoftwo +\else \expandafter\@secondoftwo +\fi +{% +\newif\ifjsSeireki \jsSeirekitrue +\def\西暦{\jsSeirekitrue} +\def\和暦{\jsSeirekifalse} +\def\Seireki{\jsSeirekitrue} +\def\Wareki{\jsSeirekifalse} +\def\bxjs@if@use@seireki{% + \ifjsSeireki \expandafter\@firstoftwo + \else \expandafter\@secondoftwo \fi} +}{% +\newif\if西暦 \西暦true +\def\西暦{\西暦true} +\def\和暦{\西暦false} +\def\Seireki{\西暦true} +\def\Wareki{\西暦false} +\def\bxjs@if@use@seireki{% + \if西暦 \expandafter\@firstoftwo + \else \expandafter\@secondoftwo \fi} +} +\let\bxjs@unxp\@firstofone +\bxjs@test@engine\unexpanded{\let\bxjs@unxp\unexpanded} +\if \if p\jsEngine T\else\if n\jsEngine T\else F\fi\fi T + \def\bxjs@iai{\noexpand~} +\else \def\bxjs@iai{} +\fi +\newcount\heisei \heisei\year \advance\heisei-1988\relax +\edef\today{% + \if@english + \ifcase\month\or + January\or February\or March\or April\or May\or June\or + July\or August\or September\or October\or November\or December\fi + \space\number\day, \number\year + \else + \noexpand\bxjs@if@use@seireki{% + \number\year\bxjs@iai\bxjs@unxp{年}% + \bxjs@iai\number\month\bxjs@iai\bxjs@unxp{月}% + \bxjs@iai\number\day\bxjs@iai\bxjs@unxp{日}% + }{% + \bxjs@unxp{平成}\bxjs@iai\number\heisei\bxjs@iai\bxjs@unxp{年}% + \bxjs@iai\number\month\bxjs@iai\bxjs@unxp{月}% + \bxjs@iai\number\day\bxjs@iai\bxjs@unxp{日}% + }% + \fi} +\hyphenation{ado-be post-script ghost-script phe-nom-e-no-log-i-cal man-u-script} +\pagestyle{headings}% +\pagenumbering{arabic} +\if@twocolumn + \twocolumn + \sloppy + \flushbottom +\else + \onecolumn + \raggedbottom +\fi +\catcode`\?=12 +\ifx\bxjs@jadriver\relax\else +\input{bxjsja-\bxjs@jadriver.def} +\fi +\bxjs@restore@jltrcc +\endinput +%% +%% End of file `bxjsbook.cls'. diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsptex.def b/Master/texmf-dist/tex/latex/bxjscls/bxjsja-minimal.def index 4acd7a4efa5..49f11c96e0d 100644 --- a/Master/texmf-dist/tex/latex/bxjscls/bxjsptex.def +++ b/Master/texmf-dist/tex/latex/bxjscls/bxjsja-minimal.def @@ -1,20 +1,20 @@ %% -%% This is file `bxjsptex.def', +%% This is file `bxjsja-minimal.def', %% generated with the docstrip utility. %% %% The original source files were: %% -%% bxjsclasses.dtx (with options: `ptex') +%% bxjscls.dtx (with options: `drvminimal') %% %% IMPORTANT NOTICE: %% %% For the copyright see the source file. %% %% Any modified versions of this file must be renamed -%% with new filenames distinct from bxjsptex.def. +%% with new filenames distinct from bxjsja-minimal.def. %% %% For distribution of the original source see the terms -%% for copying and modification in the file bxjsclasses.dtx. +%% for copying and modification in the file bxjscls.dtx. %% %% This generated file may be distributed as long as the %% original source files, as listed above, are part of the @@ -35,18 +35,33 @@ %% Right bracket \] Circumflex \^ Underscore \_ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} -\ProvidesFile{bxjsptex.def} - [2012/05/01 v0.3a BXJS document classes] -\edef\jsc@JYn{\if@jsc@uplatex JY2\else JY1\fi} -\edef\jsc@JTn{\if@jsc@uplatex JT2\else JT1\fi} -\edef\jsc@pfx@{\if@jsc@uplatex u\fi} +\ProvidesFile{bxjsja-minimal.def} + [2015/08/05 v1.0 BXJS document classes] +%% このファイルは日本語文字を含みます +\def\DeclareJaTextFontCommand#1#2{% + \DeclareRobustCommand#1[1]{% + \relax + \ifmmode \expandafter\nfss@text \fi + {#2##1}}% +} +\long\def\bxjs@@CSsfdefault{\sfdefault}% +\@onlypreamble\bxjs@if@sf@default +\def\bxjs@if@sf@default#1{% + \ifx\familydefault\bxjs@@CSsfdefault#1\fi + \AtBeginDocument{% + \ifx\familydefault\bxjs@@CSsfdefault#1\fi}% +} +\ifx j\jsEngine +\edef\jsc@JYn{\ifjsWithupTeX JY2\else JY1\fi} +\edef\jsc@JTn{\ifjsWithupTeX JT2\else JT1\fi} +\edef\jsc@pfx@{\ifjsWithupTeX u\fi} \@onlypreamble\bxjs@declarefontshape -\if@jsc@uplatex +\ifjsWithupTeX \def\bxjs@declarefontshape{% -\DeclareFontShape{JY2}{mc}{m}{n}{<->s*[\bxjs@scale]upjisr-h}{}% -\DeclareFontShape{JY2}{gt}{m}{n}{<->s*[\bxjs@scale]upjisg-h}{}% -\DeclareFontShape{JT2}{mc}{m}{n}{<->s*[\bxjs@scale]upjisr-v}{}% -\DeclareFontShape{JT2}{gt}{m}{n}{<->s*[\bxjs@scale]upjisg-v}{}% +\DeclareFontShape{JY2}{mc}{m}{n}{<->s*[\bxjs@scale]upjpnrm-h}{}% +\DeclareFontShape{JY2}{gt}{m}{n}{<->s*[\bxjs@scale]upjpngt-h}{}% +\DeclareFontShape{JT2}{mc}{m}{n}{<->s*[\bxjs@scale]upjpnrm-v}{}% +\DeclareFontShape{JT2}{gt}{m}{n}{<->s*[\bxjs@scale]upjpngt-v}{}% } \def\bxjs@sizereference{upjisr-h} \else @@ -58,9 +73,14 @@ } \def\bxjs@sizereference{jis} \fi +\def\bxjs@tmpa#1/#2/#3/#4/#5\relax{% + \def\bxjs@y{#5}} +\expandafter\expandafter\expandafter\bxjs@tmpa + \expandafter\string\the\jfont\relax \@for\bxjs@x:={\jsc@JYn/mc/m/n,\jsc@JYn/gt/m/n,% \jsc@JTn/mc/m/n,\jsc@JTn/gt/m/n}\do - {\expandafter\let\csname\bxjs@x/10\endcsname=\@undefined} + {\expandafter\let\csname\bxjs@x/10\endcsname=\@undefined + \expandafter\let\csname\bxjs@x/\bxjs@y\endcsname=\@undefined} \begingroup \font\bxjs@tmpa=\bxjs@sizereference\space at 10pt \setbox\z@\hbox{\bxjs@tmpa\char\jis"2121\relax} @@ -97,16 +117,45 @@ \DeclareRobustCommand\ttfamily {\not@math@alphabet\ttfamily\mathtt \romanfamily\ttdefault\kanjifamily\gtdefault\selectfont} -\def\textmc#1{\relax\ifmmode\hbox\fi{\mcfamily #1}} -\def\textgt#1{\relax\ifmmode\hbox\fi{\gtfamily #1}} +\DeclareJaTextFontCommand{\textmc}{\mcfamily} +\DeclareJaTextFontCommand{\textgt}{\gtfamily} +\bxjs@if@sf@default{% + \renewcommand\kanjifamilydefault{\gtdefault}} +\selectfont \prebreakpenalty\jis"2147=10000 \postbreakpenalty\jis"2148=10000 \prebreakpenalty\jis"2149=10000 +\inhibitxspcode`!=1 \inhibitxspcode`〒=2 \xspcode`+=3 \xspcode`\%=3 \@tempcnta="80 \@whilenum\@tempcnta<"100 \do{% \xspcode\@tempcnta=3\advance\@tempcnta\@ne} +\let\jsInhibitGlueAtParTop\@inhibitglue +\else\ifx p\jsEngine +\@onlypreamble\bxjs@cjk@loaded +\def\bxjs@cjk@loaded{% + \def\@footnotemark{% + \leavevmode + \ifhmode + \edef\@x@sf{\the\spacefactor}% + \ifdim\lastkern>\z@\ifdim\lastkern<5sp\relax + \unkern\unkern + \ifdim\lastskip>\z@ \unskip \fi + \fi\fi + \nobreak + \fi + \@makefnmark + \ifhmode \spacefactor\@x@sf \fi + \relax}% + \let\bxjs@cjk@loaded\relax +} +\AtBeginDocument{% + \@ifpackageloaded{CJK}{% + \bxjs@cjk@loaded + }{}% +} +\fi\fi \endinput %% -%% End of file `bxjsptex.def'. +%% End of file `bxjsja-minimal.def'. diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsja-standard.def b/Master/texmf-dist/tex/latex/bxjscls/bxjsja-standard.def new file mode 100644 index 00000000000..83a57af1304 --- /dev/null +++ b/Master/texmf-dist/tex/latex/bxjscls/bxjsja-standard.def @@ -0,0 +1,373 @@ +%% +%% This is file `bxjsja-standard.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% bxjscls.dtx (with options: `drvstandard') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from bxjsja-standard.def. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file bxjscls.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +\ProvidesFile{bxjsja-standard.def} + [2015/08/05 v1.0 BXJS document classes] +\input{bxjsja-minimal.def} +\ifjsWitheTeX + \@tempdima=0.25mm + \protected\edef\jQ{\dimexpr\the\@tempdima\relax} + \let\jH\jQ + \ifbxjs@mag + \@tempdima=2.5mm + \@tempdimb=\jsBaseFontSize\relax + \edef\bxjs@tmpa{\strip@pt\@tempdimb}% + \bxjs@invscale\@tempdima\bxjs@tmpa + \edef\trueQ{\dimexpr\the\@tempdima\relax} + \else \let\trueQ\jQ + \fi + \let\trueH\trueQ + \@tempdima\trueQ \bxjs@invscale\@tempdima\jsScale + \edef\ascQ{\dimexpr\the\@tempdima\relax} +\fi +\def\bxjs@kanjiskip{0pt} +\newcommand*\setkanjiskip[1]{% + \edef\bxjs@kanjiskip{#1}% + \bxjs@reset@kanjiskip} +\newcommand*\getkanjiskip{% + \bxjs@kanjiskip} +\newif\ifbxjs@kanjiskip@enabled \bxjs@kanjiskip@enabledtrue +\bxjs@robust@def\bxjs@enable@kanjiskip{% + \bxjs@kanjiskip@enabledtrue + \bxjs@reset@kanjiskip} +\bxjs@robust@def\bxjs@disable@kanjiskip{% + \bxjs@kanjiskip@enabledfalse + \bxjs@reset@kanjiskip} +\bxjs@robust@def\bxjs@reset@kanjiskip{% + \ifbxjs@kanjiskip@enabled + \setlength{\@tempskipa}{\bxjs@kanjiskip}% + \else \@tempskipa\z@ + \fi + \bxjs@apply@kanjiskip} +\def\bxjs@xkanjiskip{0pt} +\newcommand*\setxkanjiskip[1]{% + \edef\bxjs@xkanjiskip{#1}% + \bxjs@reset@xkanjiskip} +\newcommand*\getxkanjiskip{% + \bxjs@xkanjiskip} +\newif\ifbxjs@xkanjiskip@enabled \bxjs@xkanjiskip@enabledtrue +\bxjs@robust@def\bxjs@enable@xkanjiskip{% + \bxjs@xkanjiskip@enabledtrue + \bxjs@reset@xkanjiskip} +\bxjs@robust@def\bxjs@disable@xkanjiskip{% + \bxjs@xkanjiskip@enabledfalse + \bxjs@reset@xkanjiskip} +\bxjs@robust@def\bxjs@reset@xkanjiskip{% + \ifbxjs@xkanjiskip@enabled + \setlength{\@tempskipa}{\bxjs@xkanjiskip}% + \else \@tempskipa\z@ + \fi + \bxjs@apply@xkanjiskip} +\g@addto@macro\jsResetDimen{% + \bxjs@reset@kanjiskip + \bxjs@reset@xkanjiskip} +\let\bxjs@apply@kanjiskip\relax +\let\bxjs@apply@xkanjiskip\relax +\@onlypreamble\bxjs@adjust@jafont +\def\bxjs@adjust@jafont#1{% + \ifx\jsJaFont\bxjs@@auto + \bxjs@get@kanjiEmbed + \ifx\bxjs@kanjiEmbed\relax + \let\bxjs@tmpa\@empty + \else + \let\bxjs@tmpa\bxjs@kanjiEmbed + \fi + \else + \let\bxjs@tmpa\jsJaFont + \fi + \if f#1\ifx\bxjs@tmpa\bxjs@@noEmbed + \ClassWarning\bxjs@clsname + {Option 'jafont=noEmbed' is ignored, because no-embed\MessageBreak + is not available}% + \let\bxjs@tmpa\@empty + \fi\fi +} +\def\bxjs@@auto{auto} +\def\bxjs@@noEmbed{noEmbed} +\let\bxjs@kanjiEmbed\relax +\@onlypreamble\bxjs@get@kanjiEmbed +\def\bxjs@get@kanjiEmbed{% + \begingroup\setbox\z@=\hbox{% + \global\let\bxjs@g@tmpa\relax + \endlinechar\m@ne + \let\do\@makeother\dospecials + \catcode32=10 \catcode12=10 %form-feed + \let\bxjs@tmpa\@empty + \openin\@inputcheck="|kpsewhich updmap.cfg"\relax + \ifeof\@inputcheck\else + \read\@inputcheck to\bxjs@tmpa + \closein\@inputcheck + \fi + \ifx\bxjs@tmpa\@empty\else + \openin\@inputcheck="\bxjs@tmpa"\relax + \@tempswatrue + \loop\if@tempswa + \read\@inputcheck to\bxjs@tmpa + \expandafter\bxjs@get@ke@a\bxjs@tmpa\@nil kanjiEmbed \@nil\@nnil + \ifx\bxjs@tmpa\relax\else + \global\let\bxjs@g@tmpa\bxjs@tmpa + \@tempswafalse + \fi + \ifeof\@inputcheck \@tempswafalse \fi + \repeat + \fi + }\endgroup + \let\bxjs@kanjiEmbed\bxjs@g@tmpa +} +\@onlypreamble\bxjs@get@ke@a +\def\bxjs@get@ke@a#1kanjiEmbed #2\@nil#3\@nnil{% + \ifx$#1$\def\bxjs@tmpa{#2}% + \else \let\bxjs@tmpa\relax + \fi} +\PassOptionsToPackage{setpagesize=false}{hyperref} +\@onlypreamble\bxjs@fix@hyperref@unicode +\def\bxjs@fix@hyperref@unicode#1{% + \PassOptionsToPackage{bxjs/hook=#1}{hyperref}% + \@namedef{KV@Hyp@bxjs/hook}##1{% + \KV@Hyp@unicode{##1}% + \def\KV@Hyp@unicode####1{% + \expandafter\ifx\csname if##1\expandafter\endcsname + \csname if####1\endcsname\else + \ClassWarningNoLine\bxjs@clsname + {Blcoked hyperref option 'unicode=####1'}% + \fi + }% + }% +} +\@onlypreamble\bxjs@urgent@special +\def\bxjs@urgent@special#1{% + \AtBeginDvi{\special{#1}}% + \AtBeginDocument{% + \@ifpackageloaded{atbegshi}{% + \begingroup + \toks\z@{\special{#1}}% + \toks\tw@\expandafter{\AtBegShi@HookFirst}% + \xdef\AtBegShi@HookFirst{\the\toks@\the\toks\tw@}% + \endgroup + }{}% + }% +} +\if j\jsEngine +\def\bxjs@apply@kanjiskip{% + \kanjiskip\@tempskipa} +\def\bxjs@apply@xkanjiskip{% + \xkanjiskip\@tempskipa} +\let\bxjs@tmpa\jsJaFont +\ifx\bxjs@tmpa\bxjs@@auto + \let\bxjs@tmpa\@empty +\else\ifx\bxjs@tmpa\bxjs@@noEmbed + \def\bxjs@tmpa{noembed} +\fi\fi +\ifx\jsJaFont\@empty\else + \edef\bxjs@nxt{% + \noexpand\RequirePackage[\jsJaFont] + {pxchfon}[2010/05/12]}% v0.5 + \bxjs@nxt +\fi +\begingroup + \global\let\@gtempa\relax + \catcode`\|=0 \catcode`\\=12 + |def|bxjs@check#1|@nil{% + |bxjs@check@a#1|@nil\RequirePackage|@nnil}% + |def|bxjs@check@a#1\RequirePackage#2|@nnil{% + |ifx$#1$|bxjs@check@b#2|@nil keyval|@nnil |fi}% + |catcode`|\=0 \catcode`\|=12 + \def\bxjs@check@b#1keyval#2\@nnil{% + \ifx$#2$\else + \xdef\@gtempa{% + \noexpand\PassOptionsToPackage{scale=\jsScale}{otf}}% + \fi} +\@firstofone{% + \catcode10=12 \endlinechar\m@ne + \let\do\@makeother \dospecials \catcode32=10 + \openin\@inputcheck=otf.sty\relax + \@tempswatrue + \loop\if@tempswa + \ifeof\@inputcheck \@tempswafalse \fi + \if@tempswa + \read\@inputcheck to\bxjs@line + \expandafter\bxjs@check\bxjs@line\@nil + \fi + \repeat + \closein\@inputcheck +\endgroup} +\@gtempa +\bxjs@fix@hyperref@unicode{false} +\ifx\bxjs@driver@given\bxjs@driver@@dvipdfmx + \ifnum\jis"2121="A1A1 %euc + \bxjs@urgent@special{pdf:tounicode EUC-UCS2} + \else\ifnum\jis"2121="8140 %sjis + \bxjs@urgent@special{pdf:tounicode 90ms-RKSJ-UCS2} + \else\ifnum\jis"2121="3000 %uptex + \bxjs@urgent@special{pdf:tounicode UTF8-UCS2} + \fi\fi\fi + \let\bxToUnicodeSpecialDone=t +\fi +\@namedef{ver@microtype.sty}{2000/01/01} +\newcommand*\UseMicrotypeSet[2][]{} +\else\if p\jsEngine +\bxjs@adjust@jafont{f} +\edef\bxjs@nxt{% + \noexpand\RequirePackage[% + \ifx\bxjs@tmpa\@empty\else \bxjs@tmpa,\fi + whole,autotilde]{bxcjkjatype}[2013/10/15]}% v0.2c +\bxjs@nxt +\bxjs@cjk@loaded +\PassOptionsToPackage{unicode}{hyperref} +\newskip\jsKanjiSkip +\newskip\jsXKanjiSkip +\ifx\CJKecglue\@undefined + \def\CJKtilde{\CJK@global\def~{\CJKecglue\ignorespaces}} +\fi +\let\autospacing\bxjs@enable@kanjiskip +\let\noautospacing\bxjs@disable@kanjiskip +\protected\def\bxjs@CJKglue{\hskip\jsKanjiSkip} +\def\bxjs@apply@kanjiskip{% + \jsKanjiSkip\@tempskipa + \let\CJKglue\bxjs@CJKglue} +\let\autoxspacing\bxjs@enable@xkanjiskip +\let\noautoxspacing\bxjs@disable@xkanjiskip +\protected\def\bxjs@CJKecglue{\hskip\jsXKanjiSkip} +\def\bxjs@apply@xkanjiskip{% + \jsXKanjiSkip\@tempskipa + \let\CJKecglue\bxjs@CJKecglue} +\else\if x\jsEngine +\RequirePackage{zxjatype} +\PassOptionsToPackage{no-math}{fontspec}%! +\ifx\zxJaFamilyName\@undefined + \ClassError\bxjs@clsname + {xeCJK or zxjatype is too old}\@ehc +\fi +\bxjs@adjust@jafont{f} +\ifx\bxjs@tmpa\@empty + \setCJKmainfont[BoldFont=IPAexGothic]{IPAexMincho} + \setCJKsansfont[BoldFont=IPAexGothic]{IPAexGothic} +\else + \edef\bxjs@nxt{% + \noexpand\RequirePackage[\bxjs@tmpa]% + {zxjafont}[2013/01/28]}% v0.2a + \bxjs@nxt +\fi +\let\jsInhibitGlueAtParTop\@inhibitglue +\newskip\jsKanjiSkip +\newskip\jsXKanjiSkip +\ifx\CJKecglue\@undefined + \def\CJKtilde{\CJK@global\def~{\CJKecglue\ignorespaces}} +\fi +\let\autospacing\bxjs@enable@kanjiskip +\let\noautospacing\bxjs@disable@kanjiskip +\protected\def\bxjs@CJKglue{\hskip\jsKanjiSkip} +\def\bxjs@apply@kanjiskip{% + \jsKanjiSkip\@tempskipa + \xeCJKsetup{CJKglue={\bxjs@CJKglue}}} +\let\autoxspacing\bxjs@enable@xkanjiskip +\let\noautoxspacing\bxjs@disable@xkanjiskip +\protected\def\bxjs@CJKecglue{\hskip\jsXKanjiSkip} +\def\bxjs@apply@xkanjiskip{% + \jsXKanjiSkip\@tempskipa + \xeCJKsetup{CJKecglue={\bxjs@CJKecglue}}} +\ifx\mcfamily\@undefined + \protected\def\mcfamily{\CJKfamily{\CJKrmdefault}} + \protected\def\gtfamily{\CJKfamily{\CJKsfdefault}} +\fi +\else\if l\jsEngine +\let\zw\@undefined +\RequirePackage{luatexja} +\RequirePackage{luatexja-fontspec} +\ExplSyntaxOn +\fp_gset:Nn \g_ltj_fontspec_scale_fp { \jsScale } +\ExplSyntaxOff +\bxjs@adjust@jafont{t} +\ifx\bxjs@tmpa\bxjs@@noEmbed + \def\bxjs@tmpa{noembed} +\fi +\ifx\bxjs@tmpa\@empty + \defaultjfontfeatures{ Kerning=Off } + \setmainjfont[BoldFont=IPAexGothic,JFM=ujis]{IPAexMincho} + \setsansjfont[BoldFont=IPAexGothic,JFM=ujis]{IPAexGothic} +\else + \edef\bxjs@nxt{% + \noexpand\RequirePackage[\bxjs@tmpa] + {luatexja-preset}}% + \bxjs@nxt +\fi +\DeclareRobustCommand\rmfamily + {\not@math@alphabet\rmfamily\mathrm + \romanfamily\rmdefault\kanjifamily\mcdefault\selectfont} +\DeclareRobustCommand\sffamily + {\not@math@alphabet\sffamily\mathsf + \romanfamily\sfdefault\kanjifamily\gtdefault\selectfont} +\DeclareRobustCommand\ttfamily + {\not@math@alphabet\ttfamily\mathtt + \romanfamily\ttdefault\kanjifamily\gtdefault\selectfont} +\AtBeginDocument{% + \reDeclareMathAlphabet{\mathrm}{\mathrm}{\mathmc} + \reDeclareMathAlphabet{\mathbf}{\mathbf}{\mathgt}}% +\bxjs@if@sf@default{% + \renewcommand\kanjifamilydefault{\gtdefault}} +\ltjsetparameter{jaxspmode={`!,1}} +\ltjsetparameter{jaxspmode={`〒,2}} +\ltjsetparameter{alxspmode={`+,3}} +\ltjsetparameter{alxspmode={`\%,3}} +\protected\def\@inhibitglue{% + \directlua{% + luatexja.jfmglue.create_beginpar_node()}} +\let\bxjs@ltj@inhibitglue\@inhibitglue +\let\@@inhibitglue\@undefined +\bxjs@fix@hyperref@unicode{true} +\protected\def\autospacing{% + \ltjsetparameter{autospacing=true}} +\protected\def\noautospacing{% + \ltjsetparameter{autospacing=false}} +\protected\def\autoxspacing{% + \ltjsetparameter{autoxspacing=true}} +\protected\def\noautoxspacing{% + \ltjsetparameter{autoxspacing=false}} +\def\bxjs@apply@kanjiskip{% + \ltjsetparameter{kanjiskip={\@tempskipa}}} +\def\bxjs@apply@xkanjiskip{% + \ltjsetparameter{xkanjiskip={\@tempskipa}}} +\fi\fi\fi\fi +\DeclareJaTextFontCommand{\textmc}{\mcfamily} +\DeclareJaTextFontCommand{\textgt}{\gtfamily} +\setkanjiskip{0pt plus.1\jsZw minus.01\jsZw} +\ifx\jsDocClass\jsSlide \setxkanjiskip{0.1em} +\else \setxkanjiskip{0.25em plus 0.15em minus 0.06em} +\fi +\endinput +%% +%% End of file `bxjsja-standard.def'. diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsreport.cls b/Master/texmf-dist/tex/latex/bxjscls/bxjsreport.cls index 352e80e1de6..7effdcf18cd 100644 --- a/Master/texmf-dist/tex/latex/bxjscls/bxjsreport.cls +++ b/Master/texmf-dist/tex/latex/bxjscls/bxjsreport.cls @@ -4,7 +4,7 @@ %% %% The original source files were: %% -%% bxjsclasses.dtx (with options: `report') +%% bxjscls.dtx (with options: `report') %% %% IMPORTANT NOTICE: %% @@ -14,7 +14,7 @@ %% with new filenames distinct from bxjsreport.cls. %% %% For distribution of the original source see the terms -%% for copying and modification in the file bxjsclasses.dtx. +%% for copying and modification in the file bxjscls.dtx. %% %% This generated file may be distributed as long as the %% original source files, as listed above, are part of the @@ -37,22 +37,37 @@ %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e} \ProvidesClass{bxjsreport} - [2012/05/01 v0.3a BXJS document classes] + [2015/08/05 v1.0 BXJS document classes] \RequirePackage{calc} \RequirePackage{keyval} -\let\bxjs@engine=n +\let\jsEngine=n \def\bxjs@test@engine#1#2{% \edef\bxjs@tmpa{\string#1}% \edef\bxjs@tmpb{\meaning#1}% \ifx\bxjs@tmpa\bxjs@tmpb #2\fi} -\bxjs@test@engine\kanjiskip{\let\bxjs@engine=j} -\bxjs@test@engine\jintercharskip{\let\bxjs@engine=J} -\bxjs@test@engine\XeTeXversion{\let\bxjs@engine=x} -\bxjs@test@engine\pdftexversion{\let\bxjs@engine=p} -\bxjs@test@engine\luatexversion{\let\bxjs@engine=l} -\newif\if@jsc@uplatex +\bxjs@test@engine\kanjiskip{\let\jsEngine=j} +\bxjs@test@engine\jintercharskip{\let\jsEngine=J} +\bxjs@test@engine\XeTeXversion{\let\jsEngine=x} +\bxjs@test@engine\pdftexversion{\let\jsEngine=p} +\bxjs@test@engine\luatexversion{\let\jsEngine=l} +\newif\ifjsWithupTeX \ifx\ucs\@undefined\else \ifnum\ucs"3000="3000 - \@jsc@uplatextrue + \jsWithupTeXtrue +\fi\fi +\let\if@jsc@uplatex\ifjsWithupTeX +\newif\ifjsWitheTeX +\bxjs@test@engine\eTeXversion{\jsWitheTeXtrue} +\ifjsWitheTeX \let\bxjs@protected\protected +\else \let\bxjs@protected\@empty +\fi +\ifjsWitheTeX + \def\bxjs@robust@def{\protected\def} +\else + \def\bxjs@robust@def{\DeclareRobustCommand*} +\fi +\newif\ifjsInPdfMode +\ifx\pdfoutput\@undefined\else\ifnum\pdfoutput>\z@ + \jsInPdfModetrue \fi\fi \let\jsArticle=a \let\jsBook=b @@ -62,7 +77,7 @@ \def\bxjs@clsname{bxjsreport} \@onlypreamble\bxjs@restore@jltrcc \let\bxjs@restore@jltrcc\@empty -\if l\bxjs@engine +\if l\jsEngine \def\bxjs@change@jltrcc#1{% \xdef\bxjs@restore@jltrcc{% \bxjs@restore@jltrcc @@ -71,7 +86,7 @@ \@tfor\bxjs@x:=西暦\do {\expandafter\bxjs@change@jltrcc\bxjs@x} \fi -\DeclareRobustCommand*{\jsInhibitGlue}{% +\bxjs@robust@def\jsInhibitGlue{% \ifx\inhibitglue\@undefined\else \inhibitglue \fi} \newif\if@restonecol \newif\if@titlepage @@ -123,8 +138,12 @@ \DeclareOption{30pt}{\bxjs@setbasefontsize{29.86pt}} \DeclareOption{36pt}{\bxjs@setbasefontsize{35.83pt}} \DeclareOption{43pt}{\bxjs@setbasefontsize{43pt}} -\DeclareOption{12Q}{\bxjs@setbasefontsize{3mm}} -\DeclareOption{14Q}{\bxjs@setbasefontsize{3.5mm}} +\DeclareOption{12Q}{\bxjs@setjbasefontsize{3mm}} +\DeclareOption{14Q}{\bxjs@setjbasefontsize{3.5mm}} +\DeclareOption{10ptj}{\bxjs@setjbasefontsize{10pt}} +\DeclareOption{10.5ptj}{\bxjs@setjbasefontsize{10.5pt}} +\DeclareOption{11ptj}{\bxjs@setjbasefontsize{11pt}} +\DeclareOption{12ptj}{\bxjs@setjbasefontsize{12pt}} \DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse} \DeclareOption{twoside}{\@twosidetrue \@mparswitchtrue} \DeclareOption{vartwoside}{\@twosidetrue \@mparswitchfalse} @@ -175,9 +194,21 @@ &\global\@eqcnt\thr@@ \hb@xt@\z@\bgroup\hss##\egroup \tabskip\z@skip\cr }} -\newif\ifdraft -\DeclareOption{draft}{\drafttrue \setlength\overfullrule{5pt}} -\DeclareOption{final}{\draftfalse \setlength\overfullrule{0pt}} +\let\ifjsDraft\iffalse +\@onlypreamble\bxjs@draft +\def\bxjs@draft#1{% + \expandafter\let\expandafter\ifjsDraft\csname if#1\endcsname} +\DeclareOption{draft}{\bxjs@draft{true}\setlength\overfullrule{5pt}} +\DeclareOption{final}{\bxjs@draft{false}\setlength\overfullrule{0pt}} +\AtBeginDocument{% + \expandafter\ifx\csname ifdraft\endcsname\relax + \expandafter\let\csname ifdraft\expandafter\endcsname + \csname ifjsDraft\endcsname + \fi} +\newif\ifbxjs@papersize +\bxjs@papersizetrue +\DeclareOption{nopapersize}{\bxjs@papersizefalse} +\DeclareOption{papersize}{\bxjs@papersizetrue} \newif\if@english \@englishfalse \DeclareOption{english}{\@englishtrue} @@ -199,41 +230,192 @@ \else \@tempdimb=\@tempcntb\@ne \fi}% \xdef\bxjs@gtmpa{\the\@tempdimb}% \egroup #1=\bxjs@gtmpa\relax} -\newif\ifbxjs@ptexmodule +\DeclareOption{autodetect-engine}{% + \let\bxjs@engine@given=*} +\DeclareOption{latex}{% + \def\bxjs@engine@opt{latex}% + \let\bxjs@engine@given=n} \DeclareOption{platex}{% - \@tempswafalse - \if j\bxjs@engine \if@jsc@uplatex\else \@tempswatrue \fi\fi - \bxjs@opt@platex} + \def\bxjs@engine@opt{platex}% + \let\bxjs@engine@given=j} \DeclareOption{uplatex}{% - \@tempswafalse - \if j\bxjs@engine \if@jsc@uplatex \@tempswatrue \fi\fi - \bxjs@opt@platex} -\def\bxjs@opt@platex{% - \if@tempswa - \bxjs@ptexmoduletrue - \else - \ClassError\bxjs@clsname% - {Option `\CurrentOption' used on wrong engine}\@ehc - \fi} + \def\bxjs@engine@opt{uplatex}% + \let\bxjs@engine@given=u} +\DeclareOption{xelatex}{% + \def\bxjs@engine@opt{xelatex}% + \let\bxjs@engine@given=x} +\DeclareOption{pdflatex}{% + \def\bxjs@engine@opt{pdflatex}% + \let\bxjs@engine@given=p} +\DeclareOption{lualatex}{% + \def\bxjs@engine@opt{lualatex}% + \let\bxjs@engine@given=l} +\let\bxjs@driver@@dvimode=0 +\let\bxjs@driver@@dvipdfmx=1 +\let\bxjs@driver@@pdfmode=2 +\let\bxjs@driver@@xetex=3 +\DeclareOption{dvips}{% + \def\bxjs@driver@opt{dvips}% + \let\bxjs@driver@given\bxjs@driver@@dvimode} +\DeclareOption{dviout}{% + \def\bxjs@driver@opt{dviout}% + \let\bxjs@driver@given\bxjs@driver@@dvimode} +\DeclareOption{xdvi}{% + \def\bxjs@driver@opt{xdvi}% + \let\bxjs@driver@given\bxjs@driver@@dvimode} +\DeclareOption{dvipdfmx}{% + \def\bxjs@driver@opt{dvipdfmx}% + \let\bxjs@driver@given\bxjs@driver@@dvipdfmx} +\DeclareOption{pdftex}{% + \def\bxjs@driver@opt{pdftex}% + \let\bxjs@driver@given\bxjs@driver@@pdfmode} +\DeclareOption{luatex}{% + \def\bxjs@driver@opt{luatex}% + \let\bxjs@driver@given\bxjs@driver@@pdfmode} +\DeclareOption{xetex}{% + \def\bxjs@driver@opt{xetex}% + \let\bxjs@driver@given\bxjs@driver@@xetex} +\DeclareOption{dvipdfmx-if-dvi}{% + \def\bxjs@driver@opt{dvipdfmx-if-dvi}% + \let\bxjs@driver@given\@undefined} +\newif\ifbxjs@usezw \bxjs@usezwtrue +\DeclareOption{nozw}{% + \bxjs@usezwfalse} +\DeclareOption{zw}{% + \bxjs@usezwtrue} +\newif\ifbxjs@disguise@js \bxjs@disguise@jstrue +\DeclareOption{nojs}{% + \bxjs@disguise@jsfalse} +\DeclareOption{js}{% + \bxjs@disguise@jstrue} \def\bxjs@setkey{% \expandafter\bxjs@setkey@a\expandafter{\CurrentOption}} \def\bxjs@setkey@a{\setkeys{bxjs}} -\define@key{bxjs}{base}{\bxjs@setbasefontsize{#1}} +\DeclareOption*{\bxjs@setkey} +\newif\ifbxjs@scaleset \def\jsScale{0.924715} +\def\Cjascale{\jsScale} +\define@key{bxjs}{base}{\bxjs@setbasefontsize{#1}} +\@onlypreamble\bxjs@do@opt@jbase \let\bxjs@do@opt@jbase\relax -\define@key{bxjs}{jbase}{% - \def\bxjs@do@opt@jbase{\bxjs@opt@jbase{#1}}} -\def\bxjs@opt@jbase#1{% - \setlength\@tempdima{#1}% - \bxjs@invscale\@tempdima\jsScale - \bxjs@setbasefontsize{\@tempdima}} -\define@key{bxjs}{scale}{\edef\jsScale{#1}} +\define@key{bxjs}{jbase}{\bxjs@setjbasefontsize{#1}} +\def\bxjs@setjbasefontsize#1{% + \def\bxjs@do@opt@jbase{% + \setlength\@tempdima{#1}% + \bxjs@invscale\@tempdima\jsScale + \bxjs@setbasefontsize{\@tempdima}}} +\define@key{bxjs}{scale}{% + \bxjs@scalesettrue + \edef\jsScale{#1}} +\DeclareOption{noscale}{% + \bxjs@scalesettrue + \def\jsScale{1}} +\DeclareOption{CJK}{% + \ClassWarning\bxjs@clsname + {Option `CJK' was abolished}} \let\bxjs@param@mag\relax \define@key{bxjs}{mag}{\edef\bxjs@param@mag{#1}} \define@key{bxjs}{paper}{\edef\bxjs@param@paper{#1}} -\DeclareOption*{\bxjs@setkey} +\let\bxjs@jadriver\relax +\define@key{bxjs}{jadriver}{\edef\bxjs@jadriver{#1}} +\define@key{bxjs}{ja}{\edef\bxjs@jadriver{#1}} +\let\jsJaFont\@empty +\define@key{bxjs}{jafont}{\edef\jsJaFont{#1}} +\let\jsJaParam\@empty +\define@key{bxjs}{japaram}{\edef\jsJaParam{#1}} +\let\bxjs@magstyle@mag=m +\let\bxjs@magstyle@real=r +\let\bxjs@magstyle@xreal=x +\let\bxjs@magstyle\bxjs@magstyle@mag +\define@key{bxjs}{magstyle}{% + \expandafter\let\expandafter\bxjs@magstyle\csname + bxjs@magstyle@#1\endcsname + \ifx\bxjs@magstyle\relax + \ClassError\bxjs@clsname + {Invalid magstyle value `#1'}\@ehc + \let\bxjs@magstyle\bxjs@magstyle@mag + \fi} +\let\ltx@removeelement\@removeelement +\def\@removeelement#1#2#3{% + \def\reserved@a{#2}% + \ifx\reserved@a\@empty \let#3\@empty + \else \ltx@removeelement{#1}{#2}{#3}% + \fi} \ExecuteOptions{a4paper,oneside,onecolumn,titlepage,openany,final} \ProcessOptions\relax +\@expandtwoargs\@removeelement + {papersize}\@classoptionslist\@classoptionslist +\@expandtwoargs\@removeelement + {10pt}\@classoptionslist\@classoptionslist +\let\bxjs@tmpb\jsEngine +\ifx j\bxjs@tmpb\ifjsWithupTeX + \let\bxjs@tmpb=u +\fi\fi +\ifx p\bxjs@tmpb\ifjsInPdfMode\else + \let\bxjs@tmpb=n +\fi\fi +\ifx *\bxjs@engine@given + \let\bxjs@engine@given\bxjs@tmpb +\fi +\ifx\bxjs@engine@given\@undefined\else + \ifx\bxjs@engine@given\bxjs@tmpb\else + \ClassError\bxjs@clsname% + {Option `\bxjs@engine@opt' used on wrong engine}\@ehc + \fi +\fi +\@tempswatrue +\ifx \bxjs@driver@given\@undefined\else + \ifjsInPdfMode + \ifx\bxjs@driver@given\bxjs@driver@@pdfmode\else + \@tempswafalse + \fi + \else\ifx x\jsEngine + \ifx\bxjs@driver@given\bxjs@driver@@xetex\else + \@tempswafalse + \fi + \else + \ifx\bxjs@driver@given\bxjs@driver@@pdfmode + \@tempswafalse + \else\ifx\bxjs@driver@given\bxjs@driver@@xetex + \@tempswafalse + \fi\fi + \fi\fi +\fi +\if@tempswa\else + \ClassError\bxjs@clsname% + {Option `\bxjs@driver@opt' used on wrong engine}\@ehc +\fi +\ifjsInPdfMode \@tempswafalse +\else\ifx x\jsEngine \@tempswafalse +\else \@tempswatrue +\fi\fi +\if@tempswa + \ifx\bxjs@driver@opt\@undefined + \ClassWarningNoLine\bxjs@clsname + {No driver option is given} + \fi + \def\bxjs@tmpa{dvipdfmx-if-dvi} + \ifx\bxjs@driver@opt\bxjs@tmpa + \def\bxjs@driver@opt{dvipdfmx} + \let\bxjs@driver@given\bxjs@driver@@dvipdfmx + \g@addto@macro\@classoptionslist{,dvipdfmx} + \fi +\fi +\def\bxjs@@minimal{minimal} +\ifx\bxjs@jadriver\relax + \ifx j\jsEngine + \def\bxjs@jadriver{standard} + \else + \let\bxjs@jadriver\bxjs@@minimal + \fi +\fi +\ifx\bxjs@jadriver\bxjs@@minimal\else + \ifx\bxjs@engine@given\@undefined + \ClassError\bxjs@clsname% + {An engine option must be explicitly given}% + {When you employ a Japanese-driver you must specify a + correct\MessageBreak engine option.\MessageBreak\@ehc} +\fi\fi \bxjs@do@opt@jbase \if@slide \def\maybeblue{\@ifundefined{ver@color.sty}{}{\color{blue}}} @@ -243,8 +425,25 @@ \setlength\paperheight{\paperwidth} \setlength\paperwidth {\@tempdima} \fi +\if \if p\jsEngine T\else\if n\jsEngine T\else F\fi\fi T + \@tempcnta="80 \loop \ifnum\@tempcnta<"100 + \catcode\@tempcnta\active + \advance\@tempcnta\@ne + \repeat +\fi +\ifbxjs@disguise@js +\def\bxjs@js@clsname{jsbook} + \@namedef{ver@\bxjs@js@clsname.cls}{2001/01/01 (bxjs)} +\fi \ifdim\bxjs@param@basefontsize<10pt \def\n@baseline{15}% \else \def\n@baseline{16}\fi +\newif\ifbxjs@mag +\newif\ifbxjs@nfss@patch +\ifx\bxjs@magstyle\bxjs@magstyle@mag + \bxjs@magtrue +\else\ifx\bxjs@magstyle\bxjs@magstyle@xreal + \bxjs@nfss@patchtrue +\fi\fi \ifx\bxjs@param@mag\relax \@tempdima=\bxjs@param@basefontsize \advance\@tempdima.001pt \multiply\@tempdima25 @@ -260,25 +459,90 @@ \expandafter\bxjs@tmpa\the\@tempcnta\@nil \edef\bxjs@param@basefontsize{\the\@tempdima} \fi +\@tempcnta\bxjs@param@mag \advance\@tempcnta100000 +\def\bxjs@tmpa#1#2#3#4\@nil{\@tempdima=#2#3.#4\p@} +\expandafter\bxjs@tmpa\the\@tempcnta\@nil +\edef\bxjs@real@mag{\strip@pt\@tempdima} \let\jsBaseFontSize\bxjs@param@basefontsize +\ifbxjs@mag + \let\bxjs@mpt\p@ + \catcode`\?=9 % \p@? read as \p@ +\else + \newdimen\bxjs@mpt + \bxjs@mpt=\bxjs@real@mag \p@ + \catcode`\?=11 \let\p@?\bxjs@mpt +\fi +\chardef\bxjs@qmcc=\catcode`\?\relax \newdimen\jsZw -\jsZw=10pt \jsZw=\jsScale\jsZw +\jsZw=10\bxjs@mpt \jsZw=\jsScale\jsZw +\ifbxjs@usezw + \providecommand*\zw{\jsZw} +\fi +\ifbxjs@nfss@patch +\RequirePackage{type1cm} +\expandafter\let\csname OT1/cmr/m/n/10\endcsname\relax +\expandafter\let\csname OMX/cmex/m/n/10\endcsname\relax +\let\bxjs@get@external@font\get@external@font +\def\get@external@font{% + \bxjs@preadjust@extract@font + \bxjs@get@external@font} +\def\bxjs@fstrunc#1{% + \edef\bxjs@tmpa{\strip@pt#1}% + \expandafter\bxjs@fstrunc@a\bxjs@tmpa.****\@nil} +\def\bxjs@fstrunc@a#1.#2#3#4#5#6\@nil{% + \if#5*\else + \edef\bxjs@tmpa{#1% + \ifnum#2#3>\z@ .#2\ifnum#3>\z@ #3\fi\fi}% + \fi} +\def\bxjs@preadjust@extract@font{% + \let\bxjs@req@size\f@size + \dimen@\f@size\p@ \bxjs@invscale\dimen@\bxjs@real@mag + \advance\dimen@.005pt\relax \bxjs@fstrunc\dimen@ + \let\bxjs@ref@size\bxjs@tmpa + \let\f@size\bxjs@ref@size} +\def\execute@size@function#1{% + \let\bxjs@cref@size\f@size + \let\f@size\bxjs@req@size + \csname s@fct@#1\endcsname} +\let\bxjs@DeclareErrorFont\DeclareErrorFont +\def\DeclareErrorFont#1#2#3#4#5{% + \@tempdimc#5\p@ \@tempdimc\bxjs@real@mag\@tempdimc + \edef\bxjs@tmpa{{#1}{#2}{#3}{#4}{\strip@pt\@tempdimc}} + \expandafter\bxjs@DeclareErrorFont\bxjs@tmpa} +\def\gen@sfcnt{% + \edef\mandatory@arg{\mandatory@arg\bxjs@cref@size}% + \empty@sfcnt} +\def\genb@sfcnt{% + \edef\mandatory@arg{% + \mandatory@arg\expandafter\genb@x\bxjs@cref@size..\@@}% + \empty@sfcnt} +\DeclareErrorFont{OT1}{cmr}{m}{n}{10} +\fi \chardef\bxjs@periodchar=`\. \def\@{\spacefactor\sfcode\bxjs@periodchar} -\def\@setfontsize#1#2#3{% - \ifx\protect\@typeset@protect - \let\@currsize#1% - \fi - \fontsize{#2}{#3}\selectfont - \jsZw=\f@size pt\relax - \jsZw=\jsScale \jsZw\relax +\def\bxjs@tmpa{\def\set@fontsize##1##2##3} +\expandafter\bxjs@tmpa\expandafter{% + \set@fontsize{#1}{#2}{#3}% + \expandafter\def\expandafter\size@update\expandafter{% + \size@update + \jsFontSizeChanged}% +} +\newcommand*\jsFontSizeChanged{% + \jsZw=\f@size\p@ + \jsZw=\jsScale \jsZw \ifdim\parindent>\z@ \if@english \parindent=1em \else \parindent=1\jsZw \fi \fi\relax \jsResetDimen} -\def\jsResetDimen{} +\newcommand*\jsResetDimen{} +\ifbxjs@mag + \let\bxjs@setfontsize\@setfontsize +\else + \def\bxjs@setfontsize#1#2#3{% + \@setfontsize#1{#2\bxjs@mpt}{#3\bxjs@mpt}} +\fi \emergencystretch 3\jsZw \newif\ifnarrowbaselines \if@english @@ -296,15 +560,20 @@ \belowdisplayskip=\skip4 \belowdisplayshortskip=\skip6\relax} \def\widebaselines{\narrowbaselinesfalse\@currsize\selectfont} -\renewcommand{\normalsize}{% - \ifnarrowbaselines - \@setfontsize\normalsize\@xpt\@xiipt - \else - \@setfontsize\normalsize\@xpt{\n@baseline}% +\def\bxjs@if@narrowbaselines{% + \ifnarrowbaselines\expandafter\@firstoftwo + \else \expandafter\@secondoftwo \fi - \abovedisplayskip 10\p@ \@plus3\p@ \@minus4\p@ - \abovedisplayshortskip \z@ \@plus3\p@ - \belowdisplayskip \abovedisplayskip +} +\renewcommand{\normalsize}{% + \bxjs@if@narrowbaselines{% + \bxjs@setfontsize\normalsize\@xpt\@xiipt + }{%else + \bxjs@setfontsize\normalsize\@xpt{\n@baseline}% + }% + \abovedisplayskip 11\p@? \@plus3\p@? \@minus4\p@? + \abovedisplayshortskip \z@ \@plus3\p@? + \belowdisplayskip 9\p@? \@plus3\p@? \@minus4\p@? \belowdisplayshortskip \belowdisplayskip \let\@listi\@listI} \normalsize @@ -319,13 +588,13 @@ \setlength\Cvs{\baselineskip} \setlength\Chs{1\jsZw} \newcommand{\small}{% - \ifnarrowbaselines - \@setfontsize\small\@ixpt{11}% - \else - \@setfontsize\small\@ixpt{13}% - \fi - \abovedisplayskip 9\p@ \@plus3\p@ \@minus4\p@ - \abovedisplayshortskip \z@ \@plus3\p@ + \bxjs@if@narrowbaselines{% + \bxjs@setfontsize\small\@ixpt{11}% + }{%else + \bxjs@setfontsize\small\@ixpt{13}% + }% + \abovedisplayskip 9\p@? \@plus3\p@? \@minus4\p@? + \abovedisplayshortskip \z@ \@plus3\p@? \belowdisplayskip \abovedisplayskip \belowdisplayshortskip \belowdisplayskip \def\@listi{\leftmargin\leftmargini @@ -333,39 +602,39 @@ \parsep \z@ \itemsep \parsep}} \newcommand{\footnotesize}{% - \ifnarrowbaselines - \@setfontsize\footnotesize\@viiipt{9.5}% - \else - \@setfontsize\footnotesize\@viiipt{11}% - \fi - \abovedisplayskip 6\p@ \@plus2\p@ \@minus3\p@ - \abovedisplayshortskip \z@ \@plus2\p@ + \bxjs@if@narrowbaselines{% + \bxjs@setfontsize\footnotesize\@viiipt{9.5}% + }{%else + \bxjs@setfontsize\footnotesize\@viiipt{11}% + }% + \abovedisplayskip 6\p@? \@plus2\p@? \@minus3\p@? + \abovedisplayshortskip \z@ \@plus2\p@? \belowdisplayskip \abovedisplayskip \belowdisplayshortskip \belowdisplayskip \def\@listi{\leftmargin\leftmargini \topsep \z@ \parsep \z@ \itemsep \parsep}} -\newcommand{\scriptsize}{\@setfontsize\scriptsize\@viipt\@viiipt} -\newcommand{\tiny}{\@setfontsize\tiny\@vpt\@vipt} +\newcommand{\scriptsize}{\bxjs@setfontsize\scriptsize\@viipt\@viiipt} +\newcommand{\tiny}{\bxjs@setfontsize\tiny\@vpt\@vipt} \if@twocolumn - \newcommand{\large}{\@setfontsize\large\@xiipt{\n@baseline}} + \newcommand{\large}{\bxjs@setfontsize\large\@xiipt{\n@baseline}} \else - \newcommand{\large}{\@setfontsize\large\@xiipt{17}} + \newcommand{\large}{\bxjs@setfontsize\large\@xiipt{17}} \fi -\newcommand{\Large}{\@setfontsize\Large\@xivpt{21}} -\newcommand{\LARGE}{\@setfontsize\LARGE\@xviipt{25}} -\newcommand{\huge}{\@setfontsize\huge\@xxpt{28}} -\newcommand{\Huge}{\@setfontsize\Huge\@xxvpt{33}} -\newcommand{\HUGE}{\@setfontsize\HUGE{30}{40}} +\newcommand{\Large}{\bxjs@setfontsize\Large\@xivpt{21}} +\newcommand{\LARGE}{\bxjs@setfontsize\LARGE\@xviipt{25}} +\newcommand{\huge}{\bxjs@setfontsize\huge\@xxpt{28}} +\newcommand{\Huge}{\bxjs@setfontsize\Huge\@xxvpt{33}} +\newcommand{\HUGE}{\bxjs@setfontsize\HUGE{30}{40}} \everydisplay=\expandafter{\the\everydisplay \narrowbaselines} \newcommand{\headfont}{\sffamily} \setlength\columnsep{2\Cwd} \setlength\columnseprule{0\p@} -\setlength\lineskip{1\p@} -\setlength\normallineskip{1\p@} -\setlength\lineskiplimit{1\p@} -\setlength\normallineskiplimit{1\p@} +\setlength\lineskip{1\p@?} +\setlength\normallineskip{1\p@?} +\setlength\lineskiplimit{1\p@?} +\setlength\normallineskiplimit{1\p@?} \renewcommand{\baselinestretch}{} \setlength\parskip{0\p@} \if@slide @@ -376,8 +645,10 @@ \@lowpenalty 51 \@medpenalty 151 \@highpenalty 301 +\ifbxjs@mag \mag=\bxjs@param@mag -\setlength{\topskip}{10pt} +\fi +\setlength{\topskip}{10\p@?} \def\bxjs@read@a{\futurelet\bxjs@tmpa\bxjs@read@b} \def\bxjs@read@b{% \ifx\bxjs@tmpa\bgroup \expandafter\bxjs@read@c @@ -386,11 +657,13 @@ \def\bxjs@read@d#1\@nil{} \expandafter\bxjs@read@a\bxjs@param@paper\@nil \edef\bxjs@layout@paper{% - truedimen,\if@landscape landscape,\fi \bxjs@param@paper} + \ifbxjs@mag truedimen,\fi + \if@landscape landscape,\fi + \bxjs@param@paper} \def\bxjs@layout{% headheight=\topskip,footskip=0.03367\paperheight,% headsep=\footskip-\topskip,includeheadfoot,% - hscale=0.76,,hmarginratio=1:1,% + hscale=0.76,hmarginratio=1:1,% vscale=0.83,vmarginratio=1:1,% } \newdimen\fullwidth @@ -401,6 +674,7 @@ \advance\@tempdimb-\textwidth \advance\oddsidemargin 0.5\@tempdimb \advance\evensidemargin 0.5\@tempdimb + \fullwidth=\textwidth \@tempdimb=\textheight \advance\textheight-\topskip \divide\textheight\baselineskip \multiply\textheight\baselineskip @@ -412,17 +686,17 @@ \advance\topmargin-\@tempdima \setlength\marginparsep{\columnsep} \setlength\marginparpush{\baselineskip} - \setlength\marginparwidth{\evensidemargin-1truein-\marginparsep} + \setlength\marginparwidth{\paperwidth-\oddsidemargin-1truein% + -\textwidth-1cm-\marginparsep} \divide\marginparwidth\Cwd \multiply\marginparwidth\Cwd \maxdepth=.5\topskip - \fullwidth=\textwidth } \@onlypreamble\bxjs@revert \let\bxjs@revert\@empty \edef\bxjs@tmpa{\the\ht\strutbox} -\ht\strutbox=10pt +\ht\strutbox=10\p@? \g@addto@macro\bxjs@revert{\ht\strutbox=\bxjs@tmpa\relax} -\if x\bxjs@engine +\if x\jsEngine \ifx\pdfpagewidth\@undefined \def\bxjs@Gm@driver{dvipdfm} \else @@ -436,6 +710,14 @@ \bxjs@InputIfFileExists{#1}{#2}{#3}% \edef\Gm@checkdrivers{\noexpand\Gm@setdriver{\bxjs@Gm@driver}}}% \fi +\ifbxjs@papersize + \ifx\bxjs@driver@given\bxjs@driver@@dvipdfmx + \PassOptionsToPackage{dvipdfm}{geometry} + \fi + \let\bxPapersizeSpecialDone=t +\else + \PassOptionsToPackage{driver=none}{geometry} +\fi \edef\bxjs@nxt{% \noexpand\RequirePackage[\bxjs@layout@paper,\bxjs@layout]{geometry}} \bxjs@nxt \bxjs@revert @@ -448,9 +730,8 @@ \def\bxjs@reset@layout#1{% \edef\bxjs@nxt{\noexpand\geometry{reset,\bxjs@layout@paper,#1,truedimen}}% \bxjs@nxt\bxjs@postproc@layout} -{\footnotesize\global\setlength\footnotesep{\baselineskip}} -\setlength\footnotesep{0.7\footnotesep} -\setlength{\skip\footins}{16\p@ \@plus 5\p@ \@minus 2\p@} +\footnotesep=11\p@? \footnotesep=0.7\footnotesep +\setlength{\skip\footins}{16\p@? \@plus 5\p@? \@minus 2\p@?} \setcounter{topnumber}{9} \renewcommand{\topfraction}{.85} \setcounter{bottomnumber}{9} @@ -461,17 +742,17 @@ \setcounter{dbltopnumber}{9} \renewcommand{\dbltopfraction}{.8} \renewcommand{\dblfloatpagefraction}{.8} -\setlength\floatsep {12\p@ \@plus 2\p@ \@minus 2\p@} -\setlength\textfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} -\setlength\intextsep {12\p@ \@plus 2\p@ \@minus 2\p@} -\setlength\dblfloatsep {12\p@ \@plus 2\p@ \@minus 2\p@} -\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} -\setlength\@fptop{0\p@ \@plus 1fil} -\setlength\@fpsep{8\p@ \@plus 2fil} -\setlength\@fpbot{0\p@ \@plus 1fil} -\setlength\@dblfptop{0\p@ \@plus 1fil} -\setlength\@dblfpsep{8\p@ \@plus 2fil} -\setlength\@dblfpbot{0\p@ \@plus 1fil} +\setlength\floatsep {12\p@? \@plus 2\p@? \@minus 2\p@?} +\setlength\textfloatsep{20\p@? \@plus 2\p@? \@minus 4\p@?} +\setlength\intextsep {12\p@? \@plus 2\p@? \@minus 2\p@?} +\setlength\dblfloatsep {12\p@? \@plus 2\p@? \@minus 2\p@?} +\setlength\dbltextfloatsep{20\p@? \@plus 2\p@? \@minus 4\p@?} +\setlength\@fptop{0\p@? \@plus 1fil} +\setlength\@fpsep{8\p@? \@plus 2fil} +\setlength\@fpbot{0\p@? \@plus 1fil} +\setlength\@dblfptop{0\p@? \@plus 1fil} +\setlength\@dblfpsep{8\p@? \@plus 2fil} +\setlength\@dblfpbot{0\p@? \@plus 1fil} \def\ps@plainfoot{% \let\@mkboth\@gobbletwo \let\@oddhead\@empty @@ -489,6 +770,7 @@ \def\@oddhead{% \hbox to \fullwidth{\hfil\textbf{\thepage}}\hss}} \let\ps@plain\ps@plainfoot +\newif\if@omit@number \def\ps@headings{% \let\@oddfoot\@empty \let\@evenfoot\@empty @@ -503,7 +785,9 @@ \def\chaptermark##1{\markboth{% \ifnum \c@secnumdepth >\m@ne \if@mainmatter - \@chapapp\thechapter\@chappos\hskip1\jsZw + \if@omit@number\else + \@chapapp\thechapter\@chappos\hskip1\jsZw + \fi \fi \fi ##1}{}}% @@ -543,16 +827,16 @@ \begin{center} \mbox{} \\[1\jsZw] \large - {\maybeblue\hrule height0pt depth2pt\relax}\par + {\maybeblue\hrule height0\p@? depth2\p@?\relax}\par \smallskip \@title \smallskip - {\maybeblue\hrule height0pt depth2pt\relax}\par + {\maybeblue\hrule height0\p@? depth2\p@?\relax}\par \vfill {\small \@author}% \end{center} \else - \vskip 60\p@ + \vskip 60\p@? \begin{center}% {\LARGE \@title \par}% \vskip 3em% @@ -703,6 +987,7 @@ \unskip \@tempskipa #1\relax \hskip -\@tempskipa + \bxjs@ltj@inhibitglue \else \clubpenalty \@clubpenalty \everypar{\everyparhook}% @@ -713,7 +998,7 @@ \@afterheading \fi \if@slide - {\vskip-6pt\maybeblue\hrule height0pt depth1pt\vskip7pt\relax}% + {\vskip-6\p@?\maybeblue\hrule height0\p@? depth1\p@?\vskip7\p@?\relax}% \fi \par % 2000-12-18 \ignorespaces} @@ -729,6 +1014,7 @@ \endgroup \fi \@xsect{#3}} +\let\bxjs@ltj@inhibitglue\@empty \newcommand*\chaptermark[1]{} \setcounter{secnumdepth}{2} \newcounter{part} @@ -798,7 +1084,7 @@ \normalfont \ifnum \c@secnumdepth >-2\relax \huge\headfont \prepartname\thepart\postpartname - \par\vskip20\p@ + \par\vskip20\p@? \fi \Huge \headfont #2\par}% \@endpart} @@ -822,7 +1108,9 @@ \plainifnotempty % 元: \thispagestyle{plain} \global\@topnum\z@ \if@english \@afterindentfalse \else \@afterindenttrue \fi - \secdef\@chapter\@schapter} + \secdef + {\@omit@numberfalse\@chapter}% + {\@omit@numbertrue\@schapter}} \def\@chapter[#1]#2{% \ifnum \c@secnumdepth >\m@ne \if@mainmatter @@ -830,7 +1118,7 @@ \typeout{\@chapapp\thechapter\@chappos}% \addcontentsline{toc}{chapter}% {\protect\numberline - {\if@english\thechapter\else\@chapapp\thechapter\@chappos\fi}% + {\@chapapp\thechapter\@chappos}% #1}% \else\addcontentsline{toc}{chapter}{#1}\fi \else @@ -998,7 +1286,7 @@ \begin{list}{}{% \listparindent=1\jsZw \itemindent=\listparindent - \rightmargin=0pt + \rightmargin=\z@ \leftmargin=5\jsZw}\item[]}{\end{list}\vspace{\baselineskip}} \newenvironment{verse}{% \let \\=\@centercr @@ -1017,10 +1305,10 @@ \item\relax}{\endlist} \newenvironment{quote}% {\list{}{\rightmargin\z@}\item\relax}{\endlist} -\def\@begintheorem#1#2{\trivlist - \item[\hskip \labelsep{\bfseries #1\ #2}]} -\def\@opargbegintheorem#1#2#3{\trivlist - \item[\hskip \labelsep{\bfseries #1\ #2\ (#3)}]} +\def\@begintheorem#1#2{\trivlist\labelsep=1\jsZw + \item[\hskip \labelsep{\headfont #1\ #2}]} +\def\@opargbegintheorem#1#2#3{\trivlist\labelsep=1\jsZw + \item[\hskip \labelsep{\headfont #1\ #2(#3)}]} \newenvironment{titlepage}{% \cleardoublepage \if@twocolumn @@ -1041,13 +1329,13 @@ \gdef\@chapapp{\appendixname}% \gdef\@chappos{}% \gdef\thechapter{\@Alph\c@chapter}} -\setlength\arraycolsep{5\p@} -\setlength\tabcolsep{6\p@} +\setlength\arraycolsep{5\p@?} +\setlength\tabcolsep{6\p@?} \setlength\arrayrulewidth{.4\p@} \setlength\doublerulesep{2\p@} \setlength\tabbingsep{\labelsep} \skip\@mpfootins = \skip\footins -\setlength\fboxsep{3\p@} +\setlength\fboxsep{3\p@?} \setlength\fboxrule{.4\p@} \@addtoreset{equation}{chapter} \renewcommand\theequation @@ -1080,8 +1368,8 @@ {\end@dblfloat} \newlength\abovecaptionskip \newlength\belowcaptionskip -\setlength\abovecaptionskip{5\p@} % 元: 10\p@ -\setlength\belowcaptionskip{5\p@} % 元: 0\p@ +\setlength\abovecaptionskip{5\p@?} % 元: 10\p@ +\setlength\belowcaptionskip{5\p@?} % 元: 0\p@ \long\def\@makecaption#1#2{{\small \advance\leftskip .0628\linewidth \advance\rightskip .0628\linewidth @@ -1105,7 +1393,12 @@ \newcommand\@tocrmarg{2.55em} \newcommand\@dotsep{4.5} \setcounter{tocdepth}{1} +\newdimen\js@tocl@width \newcommand{\tableofcontents}{% + \settowidth\js@tocl@width{\headfont\prechaptername\postchaptername}% + \settowidth\@tempdima{\headfont\appendixname}% + \ifdim\js@tocl@width<\@tempdima \setlength\js@tocl@width{\@tempdima}\fi + \ifdim\js@tocl@width<2zw \divide\js@tocl@width by 2 \advance\js@tocl@width 1zw\fi \if@twocolumn \@restonecoltrue\onecolumn \else @@ -1119,7 +1412,7 @@ \newcommand*{\l@part}[2]{% \ifnum \c@tocdepth >-2\relax \addpenalty{-\@highpenalty}% - \addvspace{2.25em \@plus\p@}% + \addvspace{2.25em \@plus\p@?}% \begingroup \parindent \z@ \rightskip \@tocrmarg @@ -1136,27 +1429,38 @@ \newcommand*{\l@chapter}[2]{% \ifnum \c@tocdepth >\m@ne \addpenalty{-\@highpenalty}% - \addvspace{1.0em \@plus\p@} + \addvspace{1.0em \@plus\p@?} \begingroup \parindent\z@ \rightskip\@tocrmarg \parfillskip-\rightskip \leavevmode\headfont - \if@english\setlength\@lnumwidth{5.5em}\else\setlength\@lnumwidth{4.683\jsZw}\fi + \setlength\@lnumwidth{\js@tocl@width}\advance\@lnumwidth 2.683\jsZw \advance\leftskip\@lnumwidth \hskip-\leftskip #1\nobreak\hfil\nobreak\hbox to\@pnumwidth{\hss#2}\par \penalty\@highpenalty \endgroup \fi} -\newcommand*{\l@section}{\@dottedtocline{1}{1\jsZw}{3.683\jsZw}} -\newcommand*{\l@subsection} {\@dottedtocline{2}{3.8em}{3.2em}} -\newcommand*{\l@subsubsection}{\@dottedtocline{3}{7.0em}{4.1em}} -\newcommand*{\l@paragraph} {\@dottedtocline{4}{10em}{5em}} -\newcommand*{\l@subparagraph} {\@dottedtocline{5}{12em}{6em}} + % \newcommand*{\l@section}{\@dottedtocline{1}{1\jsZw}{3.683\jsZw}} +\newcommand*{\l@section}{% + \@tempdima\js@tocl@width \advance\@tempdima -1\jsZw + \@dottedtocline{1}{\@tempdima}{3.683\jsZw}} +\newcommand*{\l@subsection}{% + \@tempdima\js@tocl@width \advance\@tempdima 2.683\jsZw + \@dottedtocline{2}{\@tempdima}{3.5\jsZw}} +\newcommand*{\l@subsubsection}{% + \@tempdima\js@tocl@width \advance\@tempdima 6.183\jsZw + \@dottedtocline{3}{\@tempdima}{4.5\jsZw}} +\newcommand*{\l@paragraph}{% + \@tempdima\js@tocl@width \advance\@tempdima 10.683\jsZw + \@dottedtocline{4}{\@tempdima}{5.5\jsZw}} +\newcommand*{\l@subparagraph}{% + \@tempdima\js@tocl@width \advance\@tempdima 16.183\jsZw + \@dottedtocline{5}{\@tempdima}{6.5\jsZw}} \newdimen\@lnumwidth \def\numberline#1{\hb@xt@\@lnumwidth{#1\hfil}\hspace{0pt}} \def\@dottedtocline#1#2#3#4#5{\ifnum #1>\c@tocdepth \else - \vskip \z@ \@plus.2\p@ + \vskip \z@ \@plus.2\p@? {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip \parindent #2\relax\@afterindenttrue \interlinepenalty\@M @@ -1235,7 +1539,7 @@ \@mkboth{\indexname}{}% \plainifnotempty % \thispagestyle{plain} \parindent\z@ - \parskip\z@ \@plus .3\p@\relax + \parskip\z@ \@plus .3\p@?\relax \let\item\@idxitem \raggedright \footnotesize\narrowbaselines @@ -1250,7 +1554,7 @@ \newcommand{\@idxitem}{\par\hangindent 4\jsZw} % 元 40pt \newcommand{\subitem}{\@idxitem \hspace*{2\jsZw}} % 元 20pt \newcommand{\subsubitem}{\@idxitem \hspace*{3\jsZw}} % 元 30pt -\newcommand{\indexspace}{\par \vskip 10\p@ \@plus5\p@ \@minus3\p@\relax} +\newcommand{\indexspace}{\par \vskip 10\p@? \@plus5\p@? \@minus3\p@?\relax} \newcommand\seename{\if@english see\else →\fi} \newcommand\alsoname{\if@english see also\else →\fi} \let\footnotes@ve=\footnote @@ -1259,9 +1563,9 @@ \def\footnotemark{\jsInhibitGlue\footnotemarks@ve} \def\thefootnote{\ifnum\c@footnote>\z@\leavevmode\lower.5ex\hbox{*}\@arabic\c@footnote\fi} \renewcommand{\footnoterule}{% - \kern-3\p@ + \kern-3\p@? \hrule width .4\columnwidth - \kern 2.6\p@} + \kern 2.6\p@?} \@addtoreset{footnote}{chapter} \long\def\@footnotetext{% \insert\footins\bgroup @@ -1287,27 +1591,27 @@ \parindent 1\jsZw \noindent \llap{\@makefnmark\hskip0.3\jsZw}#1} +\let\jsInhibitGlueAtParTop\@empty +\def\everyparhook{\jsInhibitGlueAtParTop} +\AtBeginDocument{\everypar{\everyparhook}} \def\@inhibitglue{% \futurelet\@let@token\@@inhibitglue} \def\@@inhibitglue{% - \ifx\@let@token「 + \ifx\@let@token「% \jsInhibitGlue \else - \ifx\@let@token( + \ifx\@let@token(% \jsInhibitGlue \else - \ifx\@let@token『 + \ifx\@let@token『% \jsInhibitGlue \else - \ifx\@let@token[ + \ifx\@let@token[% \jsInhibitGlue \fi \fi \fi \fi} -\def\everyparhook{\jsInhibitGlueAtParTop} -\let\jsInhibitGlueAtParTop\@inhibitglue -\AtBeginDocument{\everypar{\everyparhook}} \def\@doendpe{% \@endpetrue \def\par{% @@ -1355,7 +1659,9 @@ \else \clubpenalty \@clubpenalty \everypar{\everyparhook}% - \fi\everyparhook}% + \fi + \bxjs@ltj@inhibitglue + \everyparhook}% \if@noitemarg \@noitemargfalse \if@nmbrlist @@ -1408,28 +1714,56 @@ \newcommand{\bibname}{\if@english Bibliography\else 参考文献\fi} \newcommand{\indexname}{\if@english Index\else 索引\fi} \newcommand{\figurename}{\if@english Fig.~\else 図\fi} -\newcommand{\tablename}{\if@english Table.~\else 表\fi} -\newcommand{\appendixname}{\if@english Appendix~\else 付録\fi} +\newcommand{\tablename}{\if@english Table~\else 表\fi} +\newcommand{\appendixname}{\if@english \else 付録\fi} +\@tempswafalse +\if p\jsEngine \@tempswatrue \fi +\if n\jsEngine \@tempswatrue \fi +\if@tempswa \expandafter\@firstoftwo +\else \expandafter\@secondoftwo +\fi +{% +\newif\ifjsSeireki \jsSeirekitrue +\def\西暦{\jsSeirekitrue} +\def\和暦{\jsSeirekifalse} +\def\Seireki{\jsSeirekitrue} +\def\Wareki{\jsSeirekifalse} +\def\bxjs@if@use@seireki{% + \ifjsSeireki \expandafter\@firstoftwo + \else \expandafter\@secondoftwo \fi} +}{% \newif\if西暦 \西暦true \def\西暦{\西暦true} \def\和暦{\西暦false} +\def\Seireki{\西暦true} +\def\Wareki{\西暦false} +\def\bxjs@if@use@seireki{% + \if西暦 \expandafter\@firstoftwo + \else \expandafter\@secondoftwo \fi} +} +\let\bxjs@unxp\@firstofone +\bxjs@test@engine\unexpanded{\let\bxjs@unxp\unexpanded} +\if \if p\jsEngine T\else\if n\jsEngine T\else F\fi\fi T + \def\bxjs@iai{\noexpand~} +\else \def\bxjs@iai{} +\fi \newcount\heisei \heisei\year \advance\heisei-1988\relax -\def\today{% +\edef\today{% \if@english \ifcase\month\or January\or February\or March\or April\or May\or June\or July\or August\or September\or October\or November\or December\fi \space\number\day, \number\year \else - \if西暦 - \number\year 年 - \number\month 月 - \number\day 日 - \else - 平成\number\heisei 年 - \number\month 月 - \number\day 日 - \fi + \noexpand\bxjs@if@use@seireki{% + \number\year\bxjs@iai\bxjs@unxp{年}% + \bxjs@iai\number\month\bxjs@iai\bxjs@unxp{月}% + \bxjs@iai\number\day\bxjs@iai\bxjs@unxp{日}% + }{% + \bxjs@unxp{平成}\bxjs@iai\number\heisei\bxjs@iai\bxjs@unxp{年}% + \bxjs@iai\number\month\bxjs@iai\bxjs@unxp{月}% + \bxjs@iai\number\day\bxjs@iai\bxjs@unxp{日}% + }% \fi} \hyphenation{ado-be post-script ghost-script phe-nom-e-no-log-i-cal man-u-script} \pagestyle{plain}% @@ -1442,8 +1776,9 @@ \onecolumn \raggedbottom \fi -\ifbxjs@ptexmodule - \input{bxjsptex.def} +\catcode`\?=12 +\ifx\bxjs@jadriver\relax\else +\input{bxjsja-\bxjs@jadriver.def} \fi \bxjs@restore@jltrcc \endinput diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsslide.cls b/Master/texmf-dist/tex/latex/bxjscls/bxjsslide.cls new file mode 100644 index 00000000000..7af7de0735d --- /dev/null +++ b/Master/texmf-dist/tex/latex/bxjscls/bxjsslide.cls @@ -0,0 +1,1713 @@ +%% +%% This is file `bxjsslide.cls', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% bxjscls.dtx (with options: `slide') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from bxjsslide.cls. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file bxjscls.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{bxjsslide} + [2015/08/05 v1.0 BXJS document classes] +\RequirePackage{calc} +\RequirePackage{keyval} +\let\jsEngine=n +\def\bxjs@test@engine#1#2{% + \edef\bxjs@tmpa{\string#1}% + \edef\bxjs@tmpb{\meaning#1}% + \ifx\bxjs@tmpa\bxjs@tmpb #2\fi} +\bxjs@test@engine\kanjiskip{\let\jsEngine=j} +\bxjs@test@engine\jintercharskip{\let\jsEngine=J} +\bxjs@test@engine\XeTeXversion{\let\jsEngine=x} +\bxjs@test@engine\pdftexversion{\let\jsEngine=p} +\bxjs@test@engine\luatexversion{\let\jsEngine=l} +\newif\ifjsWithupTeX +\ifx\ucs\@undefined\else \ifnum\ucs"3000="3000 + \jsWithupTeXtrue +\fi\fi +\let\if@jsc@uplatex\ifjsWithupTeX +\newif\ifjsWitheTeX +\bxjs@test@engine\eTeXversion{\jsWitheTeXtrue} +\ifjsWitheTeX \let\bxjs@protected\protected +\else \let\bxjs@protected\@empty +\fi +\ifjsWitheTeX + \def\bxjs@robust@def{\protected\def} +\else + \def\bxjs@robust@def{\DeclareRobustCommand*} +\fi +\newif\ifjsInPdfMode +\ifx\pdfoutput\@undefined\else\ifnum\pdfoutput>\z@ + \jsInPdfModetrue +\fi\fi +\let\jsArticle=a +\let\jsBook=b +\let\jsReport=r +\let\jsSlide=s +\let\jsDocClass\jsSlide +\def\bxjs@clsname{bxjsslide} +\@onlypreamble\bxjs@restore@jltrcc +\let\bxjs@restore@jltrcc\@empty +\if l\jsEngine +\def\bxjs@change@jltrcc#1{% + \xdef\bxjs@restore@jltrcc{% + \bxjs@restore@jltrcc + \catcode`#1=\the\catcode`#1\relax}% + \catcode`#1=11\relax} +\@tfor\bxjs@x:=西暦\do + {\expandafter\bxjs@change@jltrcc\bxjs@x} +\fi +\bxjs@robust@def\jsInhibitGlue{% + \ifx\inhibitglue\@undefined\else \inhibitglue \fi} +\newif\if@restonecol +\newif\if@titlepage +\newif\if@enablejfam \@enablejfamtrue +\def\bxjs@setpaper#1{\def\bxjs@param@paper{#1}} +\DeclareOption{a3paper}{\bxjs@setpaper{a3paper}} +\DeclareOption{a4paper}{\bxjs@setpaper{a4paper}} +\DeclareOption{a5paper}{\bxjs@setpaper{a5paper}} +\DeclareOption{a6paper}{\bxjs@setpaper{a6paper}} +\DeclareOption{b4paper}{\bxjs@setpaper{{257truemm}{364truemm}}} +\DeclareOption{b5paper}{\bxjs@setpaper{{182truemm}{257truemm}}} +\DeclareOption{b6paper}{\bxjs@setpaper{{128truemm}{182truemm}}} +\DeclareOption{a4j}{\bxjs@setpaper{a4paper}} +\DeclareOption{a5j}{\bxjs@setpaper{a5paper}} +\DeclareOption{b4j}{\bxjs@setpaper{{257truemm}{364truemm}}} +\DeclareOption{b5j}{\bxjs@setpaper{{182truemm}{257truemm}}} +\DeclareOption{a4var}{\bxjs@setpaper{{210truemm}{283truemm}}} +\DeclareOption{b5var}{\bxjs@setpaper{{182truemm}{230truemm}}} +\DeclareOption{letterpaper}{\bxjs@setpaper{letterpaper}} +\DeclareOption{legalpaper}{\bxjs@setpaper{legalpaper}} +\DeclareOption{executivepaper}{\bxjs@setpaper{executivepaper}} +\newif\if@landscape +\@landscapefalse +\DeclareOption{landscape}{\@landscapetrue} +\newif\if@slide +\@slidetrue +\newcommand{\@ptsize}{0} +\def\bxjs@param@basefontsize{10pt} +\def\jsUnusualPtSize{-20} +\def\bxjs@setbasefontsize#1{% + \setlength\@tempdima{#1}% + \edef\bxjs@param@basefontsize{\the\@tempdima}% + \ifdim\@tempdima=10pt \long\def\@ptsize{0}% + \else\ifdim\@tempdima=10.95pt \long\def\@ptsize{1}% + \else\ifdim\@tempdima=12pt \long\def\@ptsize{2}% + \else \long\edef\@ptsize{\jsUnusualPtSize}\fi\fi\fi} +\DeclareOption{8pt}{\bxjs@setbasefontsize{8pt}} +\DeclareOption{9pt}{\bxjs@setbasefontsize{9pt}} +\DeclareOption{10pt}{\bxjs@setbasefontsize{10pt}} +\DeclareOption{11pt}{\bxjs@setbasefontsize{10.95pt}} +\DeclareOption{12pt}{\bxjs@setbasefontsize{12pt}} +\DeclareOption{14pt}{\bxjs@setbasefontsize{14.4pt}} +\DeclareOption{17pt}{\bxjs@setbasefontsize{17.28pt}} +\DeclareOption{20pt}{\bxjs@setbasefontsize{20pt}} +\DeclareOption{21pt}{\bxjs@setbasefontsize{20.74pt}} +\DeclareOption{25pt}{\bxjs@setbasefontsize{24.88pt}} +\DeclareOption{30pt}{\bxjs@setbasefontsize{29.86pt}} +\DeclareOption{36pt}{\bxjs@setbasefontsize{35.83pt}} +\DeclareOption{43pt}{\bxjs@setbasefontsize{43pt}} +\DeclareOption{12Q}{\bxjs@setjbasefontsize{3mm}} +\DeclareOption{14Q}{\bxjs@setjbasefontsize{3.5mm}} +\DeclareOption{10ptj}{\bxjs@setjbasefontsize{10pt}} +\DeclareOption{10.5ptj}{\bxjs@setjbasefontsize{10.5pt}} +\DeclareOption{11ptj}{\bxjs@setjbasefontsize{11pt}} +\DeclareOption{12ptj}{\bxjs@setjbasefontsize{12pt}} +\DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse} +\DeclareOption{twoside}{\@twosidetrue \@mparswitchtrue} +\DeclareOption{vartwoside}{\@twosidetrue \@mparswitchfalse} +\DeclareOption{onecolumn}{\@twocolumnfalse} +\DeclareOption{twocolumn}{\@twocolumntrue} +\DeclareOption{titlepage}{\@titlepagetrue} +\DeclareOption{notitlepage}{\@titlepagefalse} +\def\eqnarray{% + \stepcounter{equation}% + \def\@currentlabel{\p@equation\theequation}% + \global\@eqnswtrue + \m@th + \global\@eqcnt\z@ + \tabskip\@centering + \let\\\@eqncr + $$\everycr{}\halign to\displaywidth\bgroup + \hskip\@centering$\displaystyle\tabskip\z@skip{##}$\@eqnsel + &\global\@eqcnt\@ne \hfil$\displaystyle{{}##{}}$\hfil + &\global\@eqcnt\tw@ $\displaystyle{##}$\hfil\tabskip\@centering + &\global\@eqcnt\thr@@ \hb@xt@\z@\bgroup\hss##\egroup + \tabskip\z@skip + \cr} +\DeclareOption{leqno}{\input{leqno.clo}} +\DeclareOption{fleqn}{\input{fleqn.clo}% + \def\eqnarray{% + \stepcounter{equation}% + \def\@currentlabel{\p@equation\theequation}% + \global\@eqnswtrue\m@th + \global\@eqcnt\z@ + \tabskip\mathindent + \let\\=\@eqncr + \setlength\abovedisplayskip{\topsep}% + \ifvmode + \addtolength\abovedisplayskip{\partopsep}% + \fi + \addtolength\abovedisplayskip{\parskip}% + \setlength\belowdisplayskip{\abovedisplayskip}% + \setlength\belowdisplayshortskip{\abovedisplayskip}% + \setlength\abovedisplayshortskip{\abovedisplayskip}% + $$\everycr{}\halign to\linewidth% $$ + \bgroup + \hskip\@centering$\displaystyle\tabskip\z@skip{##}$\@eqnsel + &\global\@eqcnt\@ne \hfil$\displaystyle{{}##{}}$\hfil + &\global\@eqcnt\tw@ + $\displaystyle{##}$\hfil \tabskip\@centering + &\global\@eqcnt\thr@@ \hb@xt@\z@\bgroup\hss##\egroup + \tabskip\z@skip\cr + }} +\let\ifjsDraft\iffalse +\@onlypreamble\bxjs@draft +\def\bxjs@draft#1{% + \expandafter\let\expandafter\ifjsDraft\csname if#1\endcsname} +\DeclareOption{draft}{\bxjs@draft{true}\setlength\overfullrule{5pt}} +\DeclareOption{final}{\bxjs@draft{false}\setlength\overfullrule{0pt}} +\AtBeginDocument{% + \expandafter\ifx\csname ifdraft\endcsname\relax + \expandafter\let\csname ifdraft\expandafter\endcsname + \csname ifjsDraft\endcsname + \fi} +\newif\ifbxjs@papersize +\bxjs@papersizetrue +\DeclareOption{nopapersize}{\bxjs@papersizefalse} +\DeclareOption{papersize}{\bxjs@papersizetrue} +\newif\if@english +\@englishfalse +\DeclareOption{english}{\@englishtrue} +\mathchardef\bxjs@csta=259 +\def\bxjs@invscale#1#2{% + \bgroup \@tempdima=#1\relax \@tempdimb#2\p@\relax + \@tempcnta\@tempdima \multiply\@tempcnta\@cclvi + \divide\@tempcnta\@tempdimb \multiply\@tempcnta\@cclvi + \@tempcntb\p@ \divide\@tempcntb\@tempdimb + \advance\@tempcnta-\@tempcntb \advance\@tempcnta-\tw@ + \@tempdimb\@tempcnta\@ne + \advance\@tempcnta\@tempcntb \advance\@tempcnta\@tempcntb + \advance\@tempcnta\bxjs@csta \@tempdimc\@tempcnta\@ne + \@whiledim\@tempdimb<\@tempdimc\do{% + \@tempcntb\@tempdimb \advance\@tempcntb\@tempdimc + \advance\@tempcntb\@ne \divide\@tempcntb\tw@ + \ifdim #2\@tempcntb>\@tempdima + \advance\@tempcntb\m@ne \@tempdimc=\@tempcntb\@ne + \else \@tempdimb=\@tempcntb\@ne \fi}% + \xdef\bxjs@gtmpa{\the\@tempdimb}% + \egroup #1=\bxjs@gtmpa\relax} +\DeclareOption{autodetect-engine}{% + \let\bxjs@engine@given=*} +\DeclareOption{latex}{% + \def\bxjs@engine@opt{latex}% + \let\bxjs@engine@given=n} +\DeclareOption{platex}{% + \def\bxjs@engine@opt{platex}% + \let\bxjs@engine@given=j} +\DeclareOption{uplatex}{% + \def\bxjs@engine@opt{uplatex}% + \let\bxjs@engine@given=u} +\DeclareOption{xelatex}{% + \def\bxjs@engine@opt{xelatex}% + \let\bxjs@engine@given=x} +\DeclareOption{pdflatex}{% + \def\bxjs@engine@opt{pdflatex}% + \let\bxjs@engine@given=p} +\DeclareOption{lualatex}{% + \def\bxjs@engine@opt{lualatex}% + \let\bxjs@engine@given=l} +\let\bxjs@driver@@dvimode=0 +\let\bxjs@driver@@dvipdfmx=1 +\let\bxjs@driver@@pdfmode=2 +\let\bxjs@driver@@xetex=3 +\DeclareOption{dvips}{% + \def\bxjs@driver@opt{dvips}% + \let\bxjs@driver@given\bxjs@driver@@dvimode} +\DeclareOption{dviout}{% + \def\bxjs@driver@opt{dviout}% + \let\bxjs@driver@given\bxjs@driver@@dvimode} +\DeclareOption{xdvi}{% + \def\bxjs@driver@opt{xdvi}% + \let\bxjs@driver@given\bxjs@driver@@dvimode} +\DeclareOption{dvipdfmx}{% + \def\bxjs@driver@opt{dvipdfmx}% + \let\bxjs@driver@given\bxjs@driver@@dvipdfmx} +\DeclareOption{pdftex}{% + \def\bxjs@driver@opt{pdftex}% + \let\bxjs@driver@given\bxjs@driver@@pdfmode} +\DeclareOption{luatex}{% + \def\bxjs@driver@opt{luatex}% + \let\bxjs@driver@given\bxjs@driver@@pdfmode} +\DeclareOption{xetex}{% + \def\bxjs@driver@opt{xetex}% + \let\bxjs@driver@given\bxjs@driver@@xetex} +\DeclareOption{dvipdfmx-if-dvi}{% + \def\bxjs@driver@opt{dvipdfmx-if-dvi}% + \let\bxjs@driver@given\@undefined} +\newif\ifbxjs@usezw \bxjs@usezwtrue +\DeclareOption{nozw}{% + \bxjs@usezwfalse} +\DeclareOption{zw}{% + \bxjs@usezwtrue} +\newif\ifbxjs@disguise@js \bxjs@disguise@jstrue +\DeclareOption{nojs}{% + \bxjs@disguise@jsfalse} +\DeclareOption{js}{% + \bxjs@disguise@jstrue} +\def\bxjs@setkey{% + \expandafter\bxjs@setkey@a\expandafter{\CurrentOption}} +\def\bxjs@setkey@a{\setkeys{bxjs}} +\DeclareOption*{\bxjs@setkey} +\newif\ifbxjs@scaleset +\def\jsScale{0.924715} +\def\Cjascale{\jsScale} +\define@key{bxjs}{base}{\bxjs@setbasefontsize{#1}} +\@onlypreamble\bxjs@do@opt@jbase +\let\bxjs@do@opt@jbase\relax +\define@key{bxjs}{jbase}{\bxjs@setjbasefontsize{#1}} +\def\bxjs@setjbasefontsize#1{% + \def\bxjs@do@opt@jbase{% + \setlength\@tempdima{#1}% + \bxjs@invscale\@tempdima\jsScale + \bxjs@setbasefontsize{\@tempdima}}} +\define@key{bxjs}{scale}{% + \bxjs@scalesettrue + \edef\jsScale{#1}} +\DeclareOption{noscale}{% + \bxjs@scalesettrue + \def\jsScale{1}} +\DeclareOption{CJK}{% + \ClassWarning\bxjs@clsname + {Option `CJK' was abolished}} +\let\bxjs@param@mag\relax +\define@key{bxjs}{mag}{\edef\bxjs@param@mag{#1}} +\define@key{bxjs}{paper}{\edef\bxjs@param@paper{#1}} +\let\bxjs@jadriver\relax +\define@key{bxjs}{jadriver}{\edef\bxjs@jadriver{#1}} +\define@key{bxjs}{ja}{\edef\bxjs@jadriver{#1}} +\let\jsJaFont\@empty +\define@key{bxjs}{jafont}{\edef\jsJaFont{#1}} +\let\jsJaParam\@empty +\define@key{bxjs}{japaram}{\edef\jsJaParam{#1}} +\let\bxjs@magstyle@mag=m +\let\bxjs@magstyle@real=r +\let\bxjs@magstyle@xreal=x +\let\bxjs@magstyle\bxjs@magstyle@mag +\define@key{bxjs}{magstyle}{% + \expandafter\let\expandafter\bxjs@magstyle\csname + bxjs@magstyle@#1\endcsname + \ifx\bxjs@magstyle\relax + \ClassError\bxjs@clsname + {Invalid magstyle value `#1'}\@ehc + \let\bxjs@magstyle\bxjs@magstyle@mag + \fi} +\let\ltx@removeelement\@removeelement +\def\@removeelement#1#2#3{% + \def\reserved@a{#2}% + \ifx\reserved@a\@empty \let#3\@empty + \else \ltx@removeelement{#1}{#2}{#3}% + \fi} +\ExecuteOptions{36pt,a4paper,landscape,oneside,onecolumn,titlepage,final} +\ProcessOptions\relax +\@expandtwoargs\@removeelement + {papersize}\@classoptionslist\@classoptionslist +\@expandtwoargs\@removeelement + {10pt}\@classoptionslist\@classoptionslist +\let\bxjs@tmpb\jsEngine +\ifx j\bxjs@tmpb\ifjsWithupTeX + \let\bxjs@tmpb=u +\fi\fi +\ifx p\bxjs@tmpb\ifjsInPdfMode\else + \let\bxjs@tmpb=n +\fi\fi +\ifx *\bxjs@engine@given + \let\bxjs@engine@given\bxjs@tmpb +\fi +\ifx\bxjs@engine@given\@undefined\else + \ifx\bxjs@engine@given\bxjs@tmpb\else + \ClassError\bxjs@clsname% + {Option `\bxjs@engine@opt' used on wrong engine}\@ehc + \fi +\fi +\@tempswatrue +\ifx \bxjs@driver@given\@undefined\else + \ifjsInPdfMode + \ifx\bxjs@driver@given\bxjs@driver@@pdfmode\else + \@tempswafalse + \fi + \else\ifx x\jsEngine + \ifx\bxjs@driver@given\bxjs@driver@@xetex\else + \@tempswafalse + \fi + \else + \ifx\bxjs@driver@given\bxjs@driver@@pdfmode + \@tempswafalse + \else\ifx\bxjs@driver@given\bxjs@driver@@xetex + \@tempswafalse + \fi\fi + \fi\fi +\fi +\if@tempswa\else + \ClassError\bxjs@clsname% + {Option `\bxjs@driver@opt' used on wrong engine}\@ehc +\fi +\ifjsInPdfMode \@tempswafalse +\else\ifx x\jsEngine \@tempswafalse +\else \@tempswatrue +\fi\fi +\if@tempswa + \ifx\bxjs@driver@opt\@undefined + \ClassWarningNoLine\bxjs@clsname + {No driver option is given} + \fi + \def\bxjs@tmpa{dvipdfmx-if-dvi} + \ifx\bxjs@driver@opt\bxjs@tmpa + \def\bxjs@driver@opt{dvipdfmx} + \let\bxjs@driver@given\bxjs@driver@@dvipdfmx + \g@addto@macro\@classoptionslist{,dvipdfmx} + \fi +\fi +\def\bxjs@@minimal{minimal} +\ifx\bxjs@jadriver\relax + \ifx j\jsEngine + \def\bxjs@jadriver{standard} + \else + \let\bxjs@jadriver\bxjs@@minimal + \fi +\fi +\ifx\bxjs@jadriver\bxjs@@minimal\else + \ifx\bxjs@engine@given\@undefined + \ClassError\bxjs@clsname% + {An engine option must be explicitly given}% + {When you employ a Japanese-driver you must specify a + correct\MessageBreak engine option.\MessageBreak\@ehc} +\fi\fi +\bxjs@do@opt@jbase +\if@slide + \def\maybeblue{\@ifundefined{ver@color.sty}{}{\color{blue}}} +\fi +\if@landscape + \setlength\@tempdima {\paperheight} + \setlength\paperheight{\paperwidth} + \setlength\paperwidth {\@tempdima} +\fi +\if \if p\jsEngine T\else\if n\jsEngine T\else F\fi\fi T + \@tempcnta="80 \loop \ifnum\@tempcnta<"100 + \catcode\@tempcnta\active + \advance\@tempcnta\@ne + \repeat +\fi +\ifbxjs@disguise@js +\def\bxjs@js@clsname{jsarticle} + \@namedef{ver@\bxjs@js@clsname.cls}{2001/01/01 (bxjs)} +\fi +\def\n@baseline{13}% +\newif\ifbxjs@mag +\newif\ifbxjs@nfss@patch +\ifx\bxjs@magstyle\bxjs@magstyle@mag + \bxjs@magtrue +\else\ifx\bxjs@magstyle\bxjs@magstyle@xreal + \bxjs@nfss@patchtrue +\fi\fi +\ifx\bxjs@param@mag\relax + \@tempdima=\bxjs@param@basefontsize + \advance\@tempdima.001pt \multiply\@tempdima25 + \divide\@tempdima16384\relax \@tempcnta\@tempdima\relax + \edef\bxjs@param@mag{\the\@tempcnta} +\else + \let\c@bxjs@cnta\@tempcnta + \setcounter{bxjs@cnta}{\bxjs@param@mag} + \ifnum\@tempcnta<\z@ \@tempcnta=\z@ \fi + \edef\bxjs@param@mag{\the\@tempcnta} + \advance\@tempcnta100000 + \def\bxjs@tmpa#1#2#3#4#5\@nil{\@tempdima=#2#3#4.#5\p@} + \expandafter\bxjs@tmpa\the\@tempcnta\@nil + \edef\bxjs@param@basefontsize{\the\@tempdima} +\fi +\@tempcnta\bxjs@param@mag \advance\@tempcnta100000 +\def\bxjs@tmpa#1#2#3#4\@nil{\@tempdima=#2#3.#4\p@} +\expandafter\bxjs@tmpa\the\@tempcnta\@nil +\edef\bxjs@real@mag{\strip@pt\@tempdima} +\let\jsBaseFontSize\bxjs@param@basefontsize +\ifbxjs@mag + \let\bxjs@mpt\p@ + \catcode`\?=9 % \p@? read as \p@ +\else + \newdimen\bxjs@mpt + \bxjs@mpt=\bxjs@real@mag \p@ + \catcode`\?=11 \let\p@?\bxjs@mpt +\fi +\chardef\bxjs@qmcc=\catcode`\?\relax +\newdimen\jsZw +\jsZw=10\bxjs@mpt \jsZw=\jsScale\jsZw +\ifbxjs@usezw + \providecommand*\zw{\jsZw} +\fi +\ifbxjs@nfss@patch +\RequirePackage{type1cm} +\expandafter\let\csname OT1/cmr/m/n/10\endcsname\relax +\expandafter\let\csname OMX/cmex/m/n/10\endcsname\relax +\let\bxjs@get@external@font\get@external@font +\def\get@external@font{% + \bxjs@preadjust@extract@font + \bxjs@get@external@font} +\def\bxjs@fstrunc#1{% + \edef\bxjs@tmpa{\strip@pt#1}% + \expandafter\bxjs@fstrunc@a\bxjs@tmpa.****\@nil} +\def\bxjs@fstrunc@a#1.#2#3#4#5#6\@nil{% + \if#5*\else + \edef\bxjs@tmpa{#1% + \ifnum#2#3>\z@ .#2\ifnum#3>\z@ #3\fi\fi}% + \fi} +\def\bxjs@preadjust@extract@font{% + \let\bxjs@req@size\f@size + \dimen@\f@size\p@ \bxjs@invscale\dimen@\bxjs@real@mag + \advance\dimen@.005pt\relax \bxjs@fstrunc\dimen@ + \let\bxjs@ref@size\bxjs@tmpa + \let\f@size\bxjs@ref@size} +\def\execute@size@function#1{% + \let\bxjs@cref@size\f@size + \let\f@size\bxjs@req@size + \csname s@fct@#1\endcsname} +\let\bxjs@DeclareErrorFont\DeclareErrorFont +\def\DeclareErrorFont#1#2#3#4#5{% + \@tempdimc#5\p@ \@tempdimc\bxjs@real@mag\@tempdimc + \edef\bxjs@tmpa{{#1}{#2}{#3}{#4}{\strip@pt\@tempdimc}} + \expandafter\bxjs@DeclareErrorFont\bxjs@tmpa} +\def\gen@sfcnt{% + \edef\mandatory@arg{\mandatory@arg\bxjs@cref@size}% + \empty@sfcnt} +\def\genb@sfcnt{% + \edef\mandatory@arg{% + \mandatory@arg\expandafter\genb@x\bxjs@cref@size..\@@}% + \empty@sfcnt} +\DeclareErrorFont{OT1}{cmr}{m}{n}{10} +\fi +\chardef\bxjs@periodchar=`\. +\def\@{\spacefactor\sfcode\bxjs@periodchar} +\def\bxjs@tmpa{\def\set@fontsize##1##2##3} +\expandafter\bxjs@tmpa\expandafter{% + \set@fontsize{#1}{#2}{#3}% + \expandafter\def\expandafter\size@update\expandafter{% + \size@update + \jsFontSizeChanged}% +} +\newcommand*\jsFontSizeChanged{% + \jsZw=\f@size\p@ + \jsZw=\jsScale \jsZw + \ifdim\parindent>\z@ + \if@english \parindent=1em + \else \parindent=1\jsZw + \fi + \fi\relax + \jsResetDimen} +\newcommand*\jsResetDimen{} +\ifbxjs@mag + \let\bxjs@setfontsize\@setfontsize +\else + \def\bxjs@setfontsize#1#2#3{% + \@setfontsize#1{#2\bxjs@mpt}{#3\bxjs@mpt}} +\fi +\emergencystretch 3\jsZw +\newif\ifnarrowbaselines +\if@english + \narrowbaselinestrue +\fi +\def\narrowbaselines{% + \narrowbaselinestrue + \skip0=\abovedisplayskip + \skip2=\abovedisplayshortskip + \skip4=\belowdisplayskip + \skip6=\belowdisplayshortskip + \@currsize\selectfont + \abovedisplayskip=\skip0 + \abovedisplayshortskip=\skip2 + \belowdisplayskip=\skip4 + \belowdisplayshortskip=\skip6\relax} +\def\widebaselines{\narrowbaselinesfalse\@currsize\selectfont} +\def\bxjs@if@narrowbaselines{% + \ifnarrowbaselines\expandafter\@firstoftwo + \else \expandafter\@secondoftwo + \fi +} +\renewcommand{\normalsize}{% + \bxjs@if@narrowbaselines{% + \bxjs@setfontsize\normalsize\@xpt\@xiipt + }{%else + \bxjs@setfontsize\normalsize\@xpt{\n@baseline}% + }% + \abovedisplayskip 11\p@? \@plus3\p@? \@minus4\p@? + \abovedisplayshortskip \z@ \@plus3\p@? + \belowdisplayskip 9\p@? \@plus3\p@? \@minus4\p@? + \belowdisplayshortskip \belowdisplayskip + \let\@listi\@listI} +\normalsize +\ifx\Cht\@undefined \newdimen\Cht \fi +\ifx\Cdp\@undefined \newdimen\Cdp \fi +\ifx\Cwd\@undefined \newdimen\Cwd \fi +\ifx\Cvs\@undefined \newdimen\Cvs \fi +\ifx\Chs\@undefined \newdimen\Chs \fi +\setlength\Cht{0.88\jsZw} +\setlength\Cdp{0.12\jsZw} +\setlength\Cwd{1\jsZw} +\setlength\Cvs{\baselineskip} +\setlength\Chs{1\jsZw} +\newcommand{\small}{% + \bxjs@if@narrowbaselines{% + \bxjs@setfontsize\small\@ixpt{11}% + }{%else + \bxjs@setfontsize\small\@ixpt{13}% + }% + \abovedisplayskip 9\p@? \@plus3\p@? \@minus4\p@? + \abovedisplayshortskip \z@ \@plus3\p@? + \belowdisplayskip \abovedisplayskip + \belowdisplayshortskip \belowdisplayskip + \def\@listi{\leftmargin\leftmargini + \topsep \z@ + \parsep \z@ + \itemsep \parsep}} +\newcommand{\footnotesize}{% + \bxjs@if@narrowbaselines{% + \bxjs@setfontsize\footnotesize\@viiipt{9.5}% + }{%else + \bxjs@setfontsize\footnotesize\@viiipt{11}% + }% + \abovedisplayskip 6\p@? \@plus2\p@? \@minus3\p@? + \abovedisplayshortskip \z@ \@plus2\p@? + \belowdisplayskip \abovedisplayskip + \belowdisplayshortskip \belowdisplayskip + \def\@listi{\leftmargin\leftmargini + \topsep \z@ + \parsep \z@ + \itemsep \parsep}} +\newcommand{\scriptsize}{\bxjs@setfontsize\scriptsize\@viipt\@viiipt} +\newcommand{\tiny}{\bxjs@setfontsize\tiny\@vpt\@vipt} +\if@twocolumn + \newcommand{\large}{\bxjs@setfontsize\large\@xiipt{\n@baseline}} +\else + \newcommand{\large}{\bxjs@setfontsize\large\@xiipt{17}} +\fi +\newcommand{\Large}{\bxjs@setfontsize\Large\@xivpt{21}} +\newcommand{\LARGE}{\bxjs@setfontsize\LARGE\@xviipt{25}} +\newcommand{\huge}{\bxjs@setfontsize\huge\@xxpt{28}} +\newcommand{\Huge}{\bxjs@setfontsize\Huge\@xxvpt{33}} +\newcommand{\HUGE}{\bxjs@setfontsize\HUGE{30}{40}} +\everydisplay=\expandafter{\the\everydisplay \narrowbaselines} +\newcommand{\headfont}{\sffamily} +\setlength\columnsep{2\Cwd} +\setlength\columnseprule{0\p@} +\setlength\lineskip{1\p@?} +\setlength\normallineskip{1\p@?} +\setlength\lineskiplimit{1\p@?} +\setlength\normallineskiplimit{1\p@?} +\renewcommand{\baselinestretch}{} +\setlength\parskip{0\p@} +\if@slide + \setlength\parindent{0\p@} +\else + \setlength\parindent{1\Cwd} +\fi +\@lowpenalty 51 +\@medpenalty 151 +\@highpenalty 301 +\ifbxjs@mag +\mag=\bxjs@param@mag +\fi +\setlength{\topskip}{10\p@?} +\def\bxjs@read@a{\futurelet\bxjs@tmpa\bxjs@read@b} +\def\bxjs@read@b{% + \ifx\bxjs@tmpa\bgroup \expandafter\bxjs@read@c + \else \expandafter\bxjs@read@d \fi} +\def\bxjs@read@c#1#2#3\@nil{\def\bxjs@param@paper{papersize={#1,#2}}} +\def\bxjs@read@d#1\@nil{} +\expandafter\bxjs@read@a\bxjs@param@paper\@nil +\edef\bxjs@layout@paper{% + \ifbxjs@mag truedimen,\fi + \if@landscape landscape,\fi + \bxjs@param@paper} +\def\bxjs@layout{% + noheadfoot,% + hscale=0.9,hmarginratio=1:1,% + vscale=0.944,vmarginratio=1:1,% +} +\newdimen\fullwidth +\def\bxjs@postproc@layout{% + \@tempdimb=\textwidth + \if@twocolumn \@tempdima=2\Cwd \else \@tempdima=1\Cwd \fi + \divide\textwidth\@tempdima \multiply\textwidth\@tempdima + \advance\@tempdimb-\textwidth + \advance\oddsidemargin 0.5\@tempdimb + \advance\evensidemargin 0.5\@tempdimb + \fullwidth=\textwidth + \@tempdimb=\textheight + \advance\textheight-\topskip + \divide\textheight\baselineskip \multiply\textheight\baselineskip + \advance\textheight\topskip + \advance\@tempdimb-\textheight + \advance\topmargin0.5\@tempdimb + \@tempdima=\topskip + \advance\headheight\@tempdima + \advance\topmargin-\@tempdima + \setlength\marginparsep{\columnsep} + \setlength\marginparpush{\baselineskip} + \setlength\marginparwidth{\paperwidth-\oddsidemargin-1truein% + -\textwidth-1cm-\marginparsep} + \divide\marginparwidth\Cwd \multiply\marginparwidth\Cwd + \maxdepth=.5\topskip +} +\@onlypreamble\bxjs@revert +\let\bxjs@revert\@empty +\edef\bxjs@tmpa{\the\ht\strutbox} +\ht\strutbox=10\p@? +\g@addto@macro\bxjs@revert{\ht\strutbox=\bxjs@tmpa\relax} +\if x\jsEngine + \ifx\pdfpagewidth\@undefined + \def\bxjs@Gm@driver{dvipdfm} + \else + \def\bxjs@Gm@driver{pdftex} + \ifx\pdfhorigin\@undefined \newdimen\pdfhorigin \fi + \ifx\pdfvorigin\@undefined \newdimen\pdfvorigin \fi + \fi + \let\bxjs@InputIfFileExists\InputIfFileExists + \g@addto@macro\bxjs@revert{\let\InputIfFileExists\bxjs@InputIfFileExists} + \def\InputIfFileExists#1#2#3{% + \bxjs@InputIfFileExists{#1}{#2}{#3}% + \edef\Gm@checkdrivers{\noexpand\Gm@setdriver{\bxjs@Gm@driver}}}% +\fi +\ifbxjs@papersize + \ifx\bxjs@driver@given\bxjs@driver@@dvipdfmx + \PassOptionsToPackage{dvipdfm}{geometry} + \fi + \let\bxPapersizeSpecialDone=t +\else + \PassOptionsToPackage{driver=none}{geometry} +\fi +\edef\bxjs@nxt{% + \noexpand\RequirePackage[\bxjs@layout@paper,\bxjs@layout]{geometry}} +\bxjs@nxt \bxjs@revert +\bxjs@postproc@layout +\def\setpagelayout{\@ifstar + {\bxjs@reset@layout}{\bxjs@modify@layout}} +\def\bxjs@modify@layout#1{% + \edef\bxjs@nxt{\noexpand\geometry{#1,truedimen}}% + \bxjs@nxt\bxjs@postproc@layout} +\def\bxjs@reset@layout#1{% + \edef\bxjs@nxt{\noexpand\geometry{reset,\bxjs@layout@paper,#1,truedimen}}% + \bxjs@nxt\bxjs@postproc@layout} +\footnotesep=11\p@? \footnotesep=0.7\footnotesep +\setlength{\skip\footins}{16\p@? \@plus 5\p@? \@minus 2\p@?} +\setcounter{topnumber}{9} +\renewcommand{\topfraction}{.85} +\setcounter{bottomnumber}{9} +\renewcommand{\bottomfraction}{.8} +\setcounter{totalnumber}{20} +\renewcommand{\textfraction}{.1} +\renewcommand{\floatpagefraction}{.8} +\setcounter{dbltopnumber}{9} +\renewcommand{\dbltopfraction}{.8} +\renewcommand{\dblfloatpagefraction}{.8} +\setlength\floatsep {12\p@? \@plus 2\p@? \@minus 2\p@?} +\setlength\textfloatsep{20\p@? \@plus 2\p@? \@minus 4\p@?} +\setlength\intextsep {12\p@? \@plus 2\p@? \@minus 2\p@?} +\setlength\dblfloatsep {12\p@? \@plus 2\p@? \@minus 2\p@?} +\setlength\dbltextfloatsep{20\p@? \@plus 2\p@? \@minus 4\p@?} +\setlength\@fptop{0\p@? \@plus 1fil} +\setlength\@fpsep{8\p@? \@plus 2fil} +\setlength\@fpbot{0\p@? \@plus 1fil} +\setlength\@dblfptop{0\p@? \@plus 1fil} +\setlength\@dblfpsep{8\p@? \@plus 2fil} +\setlength\@dblfpbot{0\p@? \@plus 1fil} +\def\ps@plainfoot{% + \let\@mkboth\@gobbletwo + \let\@oddhead\@empty + \def\@oddfoot{\normalfont\hfil\thepage\hfil}% + \let\@evenhead\@empty + \let\@evenfoot\@oddfoot} +\def\ps@plainhead{% + \let\@mkboth\@gobbletwo + \let\@oddfoot\@empty + \let\@evenfoot\@empty + \def\@evenhead{% + \if@mparswitch \hss \fi + \hbox to \fullwidth{\textbf{\thepage}\hfil}% + \if@mparswitch\else \hss \fi}% + \def\@oddhead{% + \hbox to \fullwidth{\hfil\textbf{\thepage}}\hss}} +\let\ps@plain\ps@plainfoot +\if@twoside + \def\ps@headings{% + \let\@oddfoot\@empty + \let\@evenfoot\@empty + \def\@evenhead{\if@mparswitch \hss \fi + \underline{\hbox to \fullwidth{\textbf{\thepage}\hfil\leftmark}}% + \if@mparswitch\else \hss \fi}% + \def\@oddhead{% + \underline{% + \hbox to \fullwidth{{\rightmark}\hfil\textbf{\thepage}}}\hss}% + \let\@mkboth\markboth + \def\sectionmark##1{\markboth{% + \ifnum \c@secnumdepth >\z@ \thesection \hskip1\jsZw\fi + ##1}{}}% + \def\subsectionmark##1{\markright{% + \ifnum \c@secnumdepth >\@ne \thesubsection \hskip1\jsZw\fi + ##1}}% + } +\else % if not twoside + \def\ps@headings{% + \let\@oddfoot\@empty + \def\@oddhead{% + \underline{% + \hbox to \fullwidth{{\rightmark}\hfil\textbf{\thepage}}}\hss}% + \let\@mkboth\markboth + \def\sectionmark##1{\markright{% + \ifnum \c@secnumdepth >\z@ \thesection \hskip1\jsZw\fi + ##1}}} +\fi +\def\ps@myheadings{% + \let\@oddfoot\@empty\let\@evenfoot\@empty + \def\@evenhead{% + \if@mparswitch \hss \fi% + \hbox to \fullwidth{\thepage\hfil\leftmark}% + \if@mparswitch\else \hss \fi}% + \def\@oddhead{% + \hbox to \fullwidth{\rightmark\hfil\thepage}\hss}% + \let\@mkboth\@gobbletwo + \let\sectionmark\@gobble + \let\subsectionmark\@gobble +} +\def\plainifnotempty{% + \ifx \@oddhead \@empty + \ifx \@oddfoot \@empty + \else + \thispagestyle{plainfoot}% + \fi + \else + \thispagestyle{plainhead}% + \fi} +\if@titlepage + \newcommand{\maketitle}{% + \begin{titlepage}% + \let\footnotesize\small + \let\footnoterule\relax + \let\footnote\thanks + \null\vfil + \if@slide + {\footnotesize \@date}% + \begin{center} + \mbox{} \\[1\jsZw] + \large + {\maybeblue\hrule height0\p@? depth2\p@?\relax}\par + \smallskip + \@title + \smallskip + {\maybeblue\hrule height0\p@? depth2\p@?\relax}\par + \vfill + {\small \@author}% + \end{center} + \else + \vskip 60\p@? + \begin{center}% + {\LARGE \@title \par}% + \vskip 3em% + {\large + \lineskip .75em + \begin{tabular}[t]{c}% + \@author + \end{tabular}\par}% + \vskip 1.5em + {\large \@date \par}% + \end{center}% + \fi + \par + \@thanks\vfil\null + \end{titlepage}% + \setcounter{footnote}{0}% + \global\let\thanks\relax + \global\let\maketitle\relax + \global\let\@thanks\@empty + \global\let\@author\@empty + \global\let\@date\@empty + \global\let\@title\@empty + \global\let\title\relax + \global\let\author\relax + \global\let\date\relax + \global\let\and\relax + }% +\else + \newcommand{\maketitle}{\par + \begingroup + \renewcommand\thefootnote{\@fnsymbol\c@footnote}% + \def\@makefnmark{\rlap{\@textsuperscript{\normalfont\@thefnmark}}}% + \long\def\@makefntext##1{\advance\leftskip 3\jsZw + \parindent 1\jsZw\noindent + \llap{\@textsuperscript{\normalfont\@thefnmark}\hskip0.3\jsZw}##1}% + \if@twocolumn + \ifnum \col@number=\@ne + \@maketitle + \else + \twocolumn[\@maketitle]% + \fi + \else + \newpage + \global\@topnum\z@ % Prevents figures from going at top of page. + \@maketitle + \fi + \plainifnotempty + \@thanks + \endgroup + \setcounter{footnote}{0}% + \global\let\thanks\relax + \global\let\maketitle\relax + \global\let\@thanks\@empty + \global\let\@author\@empty + \global\let\@date\@empty + \global\let\@title\@empty + \global\let\title\relax + \global\let\author\relax + \global\let\date\relax + \global\let\and\relax + } + \def\@maketitle{% + \newpage\null + \vskip 2em + \begin{center}% + \let\footnote\thanks + {\LARGE \@title \par}% + \vskip 1.5em + {\large + \lineskip .5em + \begin{tabular}[t]{c}% + \@author + \end{tabular}\par}% + \vskip 1em + {\large \@date}% + \end{center}% + \par\vskip 1.5em + \ifvoid\@abstractbox\else\centerline{\box\@abstractbox}\vskip1.5em\fi + } +\fi +\def\@startsection#1#2#3#4#5#6{% + \if@noskipsec \leavevmode \fi + \par + \@tempskipa #4\relax + \if@english \@afterindentfalse \else \@afterindenttrue \fi + \ifdim \@tempskipa <\z@ + \@tempskipa -\@tempskipa \@afterindentfalse + \fi + \if@nobreak + \everypar{}% + \else + \addpenalty\@secpenalty + \ifdim \@tempskipa >\z@ + \if@slide\else + \null + \vspace*{-\baselineskip}% + \fi + \vskip\@tempskipa + \fi + \fi + \noindent + \@ifstar + {\@ssect{#3}{#4}{#5}{#6}}% + {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}} +\def\@sect#1#2#3#4#5#6[#7]#8{% + \ifnum #2>\c@secnumdepth + \let\@svsec\@empty + \else + \refstepcounter{#1}% + \protected@edef\@svsec{\@seccntformat{#1}\relax}% + \fi + \@tempskipa #5\relax + \ifdim \@tempskipa<\z@ + \def\@svsechd{% + #6{\hskip #3\relax + \@svsec #8}% + \csname #1mark\endcsname{#7}% + \addcontentsline{toc}{#1}{% + \ifnum #2>\c@secnumdepth \else + \protect\numberline{\csname the#1\endcsname}% + \fi + #7}}% 目次にフルネームを載せるなら #8 + \else + \begingroup + \interlinepenalty \@M % 下から移動 + #6{% + \@hangfrom{\hskip #3\relax\@svsec}% + #8\@@par}% + \endgroup + \csname #1mark\endcsname{#7}% + \addcontentsline{toc}{#1}{% + \ifnum #2>\c@secnumdepth \else + \protect\numberline{\csname the#1\endcsname}% + \fi + #7}% 目次にフルネームを載せるならここは #8 + \fi + \@xsect{#5}} +\def\@xsect#1{% + \@tempskipa #1\relax + \ifdim \@tempskipa<\z@ + \@nobreakfalse + \global\@noskipsectrue + \everypar{% + \if@noskipsec + \global\@noskipsecfalse + {\setbox\z@\lastbox}% + \clubpenalty\@M + \begingroup \@svsechd \endgroup + \unskip + \@tempskipa #1\relax + \hskip -\@tempskipa + \bxjs@ltj@inhibitglue + \else + \clubpenalty \@clubpenalty + \everypar{\everyparhook}% + \fi\everyparhook}% + \else + \par \nobreak + \vskip \@tempskipa + \@afterheading + \fi + \if@slide + {\vskip-6\p@?\maybeblue\hrule height0\p@? depth1\p@?\vskip7\p@?\relax}% + \fi + \par % 2000-12-18 + \ignorespaces} +\def\@ssect#1#2#3#4#5{% + \@tempskipa #3\relax + \ifdim \@tempskipa<\z@ + \def\@svsechd{#4{\hskip #1\relax #5}}% + \else + \begingroup + #4{% + \@hangfrom{\hskip #1}% + \interlinepenalty \@M #5\@@par}% + \endgroup + \fi + \@xsect{#3}} +\let\bxjs@ltj@inhibitglue\@empty +\newcommand*\chaptermark[1]{} +\setcounter{secnumdepth}{3} +\newcounter{part} +\newcounter{section} +\newcounter{subsection}[section] +\newcounter{subsubsection}[subsection] +\newcounter{paragraph}[subsubsection] +\newcounter{subparagraph}[paragraph] +\renewcommand{\thepart}{\@Roman\c@part} +% \renewcommand{\thesection}{\@arabic\c@section} +\renewcommand{\thesection}{\presectionname\@arabic\c@section\postsectionname} +\renewcommand{\thesubsection}{\@arabic\c@section.\@arabic\c@subsection} +\renewcommand{\thesubsubsection}{% + \thesubsection.\@arabic\c@subsubsection} +\renewcommand{\theparagraph}{% + \thesubsubsection.\@arabic\c@paragraph} +\renewcommand{\thesubparagraph}{% + \theparagraph.\@arabic\c@subparagraph} +\newcommand\part{% + \if@noskipsec \leavevmode \fi + \par + \addvspace{4ex}% + \if@english \@afterindentfalse \else \@afterindenttrue \fi + \secdef\@part\@spart} +\def\@part[#1]#2{% + \ifnum \c@secnumdepth >\m@ne + \refstepcounter{part}% + \addcontentsline{toc}{part}{% + \prepartname\thepart\postpartname\hspace{1\jsZw}#1}% + \else + \addcontentsline{toc}{part}{#1}% + \fi + \markboth{}{}% + {\parindent\z@ + \raggedright + \interlinepenalty \@M + \normalfont + \ifnum \c@secnumdepth >\m@ne + \Large\headfont\prepartname\thepart\postpartname + \par\nobreak + \fi + \huge \headfont #2% + \markboth{}{}\par}% + \nobreak + \vskip 3ex + \@afterheading} +\def\@spart#1{{% + \parindent \z@ \raggedright + \interlinepenalty \@M + \normalfont + \huge \headfont #1\par}% + \nobreak + \vskip 3ex + \@afterheading} +\if@twocolumn + \newcommand{\section}{% + \@startsection{section}{1}{\z@}% + {0.6\Cvs}{0.4\Cvs}% + {\normalfont\large\headfont\raggedright}} +\else + \newcommand{\section}{% + \if@slide\clearpage\fi + \@startsection{section}{1}{\z@}% + {\Cvs \@plus.5\Cdp \@minus.2\Cdp}% 前アキ + {.5\Cvs \@plus.3\Cdp}% 後アキ + {\normalfont\Large\headfont\raggedright}} +\fi +\if@twocolumn + \newcommand{\subsection}{\@startsection{subsection}{2}{\z@}% + {\z@}{\z@}% + {\normalfont\normalsize\headfont}} +\else + \newcommand{\subsection}{\@startsection{subsection}{2}{\z@}% + {\Cvs \@plus.5\Cdp \@minus.2\Cdp}% 前アキ + {.5\Cvs \@plus.3\Cdp}% 後アキ + {\normalfont\large\headfont}} +\fi +\if@twocolumn + \newcommand{\subsubsection}{\@startsection{subsubsection}{3}{\z@}% + {\z@}{\z@}% + {\normalfont\normalsize\headfont}} +\else + \newcommand{\subsubsection}{\@startsection{subsubsection}{3}{\z@}% + {\Cvs \@plus.5\Cdp \@minus.2\Cdp}% + {\z@}% + {\normalfont\normalsize\headfont}} +\fi +\if@twocolumn + \newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}% + {\z@}{-1\jsZw}% 改行せず 1\jsZw のアキ + {\normalfont\normalsize\headfont ■}} +\else + \newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}% + {0.5\Cvs \@plus.5\Cdp \@minus.2\Cdp}% + {-1\jsZw}% 改行せず 1\jsZw のアキ + {\normalfont\normalsize\headfont ■}} +\fi +\newcommand{\subparagraph}{\@startsection{subparagraph}{5}{\z@}% + {\z@}{-1\jsZw}% + {\normalfont\normalsize\headfont}} +\if@slide + \setlength\leftmargini{1\jsZw} +\else + \if@twocolumn + \setlength\leftmargini{2\jsZw} + \else + \setlength\leftmargini{3\jsZw} + \fi +\fi +\if@slide + \setlength\leftmarginii {1\jsZw} + \setlength\leftmarginiii{1\jsZw} + \setlength\leftmarginiv {1\jsZw} + \setlength\leftmarginv {1\jsZw} + \setlength\leftmarginvi {1\jsZw} +\else + \setlength\leftmarginii {2\jsZw} + \setlength\leftmarginiii{2\jsZw} + \setlength\leftmarginiv {2\jsZw} + \setlength\leftmarginv {1\jsZw} + \setlength\leftmarginvi {1\jsZw} +\fi +\setlength \labelsep {0.5\jsZw} % .5em +\setlength \labelwidth{\leftmargini} +\addtolength\labelwidth{-\labelsep} +\setlength\partopsep{\z@} % {2\p@ \@plus 1\p@ \@minus 1\p@} +\@beginparpenalty -\@lowpenalty +\@endparpenalty -\@lowpenalty +\@itempenalty -\@lowpenalty +\def\@listi{\leftmargin\leftmargini + \parsep \z@ + \topsep 0.5\baselineskip + \itemsep \z@ \relax} +\let\@listI\@listi +\@listi +\def\@listii{\leftmargin\leftmarginii + \labelwidth\leftmarginii \advance\labelwidth-\labelsep + \topsep \z@ + \parsep \z@ + \itemsep\parsep} +\def\@listiii{\leftmargin\leftmarginiii + \labelwidth\leftmarginiii \advance\labelwidth-\labelsep + \topsep \z@ + \parsep \z@ + \itemsep\parsep} +\def\@listiv {\leftmargin\leftmarginiv + \labelwidth\leftmarginiv + \advance\labelwidth-\labelsep} +\def\@listv {\leftmargin\leftmarginv + \labelwidth\leftmarginv + \advance\labelwidth-\labelsep} +\def\@listvi {\leftmargin\leftmarginvi + \labelwidth\leftmarginvi + \advance\labelwidth-\labelsep} +\renewcommand{\theenumi}{\@arabic\c@enumi} +\renewcommand{\theenumii}{\@alph\c@enumii} +\renewcommand{\theenumiii}{\@roman\c@enumiii} +\renewcommand{\theenumiv}{\@Alph\c@enumiv} +\newcommand{\labelenumi}{\theenumi.} +\newcommand{\labelenumii}{\jsInhibitGlue(\theenumii)\jsInhibitGlue} +\newcommand{\labelenumiii}{\theenumiii.} +\newcommand{\labelenumiv}{\theenumiv.} +\renewcommand{\p@enumii}{\theenumi} +\renewcommand{\p@enumiii}{\theenumi\jsInhibitGlue(\theenumii)} +\renewcommand{\p@enumiv}{\p@enumiii\theenumiii} +\newcommand\labelitemi{\textbullet} +\newcommand\labelitemii{\normalfont\bfseries \textendash} +\newcommand\labelitemiii{\textasteriskcentered} +\newcommand\labelitemiv{\textperiodcentered} +\newenvironment{description}{% + \list{}{% + \labelwidth=\leftmargin + \labelsep=1\jsZw + \advance \labelwidth by -\labelsep + \let \makelabel=\descriptionlabel}}{\endlist} +\newcommand*\descriptionlabel[1]{\normalfont\headfont #1\hfil} +\newbox\@abstractbox +\if@titlepage + \newenvironment{abstract}{% + \titlepage + \null\vfil + \@beginparpenalty\@lowpenalty + \begin{center}% + \headfont \abstractname + \@endparpenalty\@M + \end{center}}% + {\par\vfil\null\endtitlepage} +\else + \newenvironment{abstract}{% + \if@twocolumn + \ifx\maketitle\relax + \section*{\abstractname}% + \else + \global\setbox\@abstractbox\hbox\bgroup + \begin{minipage}[b]{\textwidth} + \small\parindent1\jsZw + \begin{center}% + {\headfont \abstractname\vspace{-.5em}\vspace{\z@}}% + \end{center}% + \list{}{% + \listparindent\parindent + \itemindent \listparindent + \rightmargin \leftmargin}% + \item\relax + \fi + \else + \small + \begin{center}% + {\headfont \abstractname\vspace{-.5em}\vspace{\z@}}% + \end{center}% + \list{}{% + \listparindent\parindent + \itemindent \listparindent + \rightmargin \leftmargin}% + \item\relax + \fi}{\if@twocolumn + \ifx\maketitle\relax + \else + \endlist\end{minipage}\egroup + \fi + \else + \endlist + \fi} +\fi +\newenvironment{verse}{% + \let \\=\@centercr + \list{}{% + \itemsep \z@ + \itemindent -2\jsZw % 元: -1.5em + \listparindent\itemindent + \rightmargin \z@ + \advance\leftmargin 2\jsZw}% 元: 1.5em + \item\relax}{\endlist} +\newenvironment{quotation}{% + \list{}{% + \listparindent\parindent + \itemindent\listparindent + \rightmargin \z@}% + \item\relax}{\endlist} +\newenvironment{quote}% + {\list{}{\rightmargin\z@}\item\relax}{\endlist} +\def\@begintheorem#1#2{\trivlist\labelsep=1\jsZw + \item[\hskip \labelsep{\headfont #1\ #2}]} +\def\@opargbegintheorem#1#2#3{\trivlist\labelsep=1\jsZw + \item[\hskip \labelsep{\headfont #1\ #2(#3)}]} +\newenvironment{titlepage}{% + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse\newpage + \fi + \thispagestyle{empty}% + \setcounter{page}\@ne + }% + {\if@restonecol\twocolumn \else \newpage \fi + \if@twoside\else + \setcounter{page}\@ne + \fi} +\newcommand{\appendix}{\par + \setcounter{section}{0}% + \setcounter{subsection}{0}% + \gdef\presectionname{\appendixname}% + \gdef\postsectionname{}% + \gdef\thesection{\presectionname\@Alph\c@section\postsectionname}% + \gdef\thesubsection{\@Alph\c@section.\@arabic\c@subsection}} +\setlength\arraycolsep{5\p@?} +\setlength\tabcolsep{6\p@?} +\setlength\arrayrulewidth{.4\p@} +\setlength\doublerulesep{2\p@} +\setlength\tabbingsep{\labelsep} +\skip\@mpfootins = \skip\footins +\setlength\fboxsep{3\p@?} +\setlength\fboxrule{.4\p@} +\renewcommand \theequation {\@arabic\c@equation} +\newcounter{figure} +\renewcommand \thefigure {\@arabic\c@figure} +\def\fps@figure{tbp} +\def\ftype@figure{1} +\def\ext@figure{lof} +\def\fnum@figure{\figurename\nobreak\thefigure} +\newenvironment{figure}% + {\@float{figure}}% + {\end@float} +\newenvironment{figure*}% + {\@dblfloat{figure}}% + {\end@dblfloat} +\newcounter{table} +\renewcommand\thetable{\@arabic\c@table} +\def\fps@table{tbp} +\def\ftype@table{2} +\def\ext@table{lot} +\def\fnum@table{\tablename\nobreak\thetable} +\newenvironment{table}% + {\@float{table}}% + {\end@float} +\newenvironment{table*}% + {\@dblfloat{table}}% + {\end@dblfloat} +\newlength\abovecaptionskip +\newlength\belowcaptionskip +\setlength\abovecaptionskip{5\p@?} % 元: 10\p@ +\setlength\belowcaptionskip{5\p@?} % 元: 0\p@ +\long\def\@makecaption#1#2{{\small + \advance\leftskip .0628\linewidth + \advance\rightskip .0628\linewidth + \vskip\abovecaptionskip + \sbox\@tempboxa{#1\hskip1\jsZw\relax #2}% + \ifdim \wd\@tempboxa <\hsize \centering \fi + #1\hskip1\jsZw\relax #2\par + \vskip\belowcaptionskip}} +\DeclareOldFontCommand{\mc}{\normalfont\mcfamily}{\mathmc} +\DeclareOldFontCommand{\gt}{\normalfont\gtfamily}{\mathgt} +\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm} +\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf} +\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt} +\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf} +\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit} +\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl} +\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc} +\DeclareRobustCommand*{\cal}{\@fontswitch\relax\mathcal} +\DeclareRobustCommand*{\mit}{\@fontswitch\relax\mathnormal} +\newcommand\@pnumwidth{1.55em} +\newcommand\@tocrmarg{2.55em} +\newcommand\@dotsep{4.5} +\setcounter{tocdepth}{2} +\newdimen\js@tocl@width +\newcommand{\tableofcontents}{% + \settowidth\js@tocl@width{\headfont\presectionname\postsectionname}% + \settowidth\@tempdima{\headfont\appendixname}% + \ifdim\js@tocl@width<\@tempdima\relax\setlength\js@tocl@width{\@tempdima}\fi + \ifdim\js@tocl@width<2zw \divide\js@tocl@width by 2 \advance\js@tocl@width 1zw\fi + \section*{\contentsname}% + \@mkboth{\contentsname}{\contentsname}% + \@starttoc{toc}% +} +\newcommand*{\l@part}[2]{% + \ifnum \c@tocdepth >-2\relax + \addpenalty\@secpenalty + \addvspace{2.25em \@plus\p@?}% + \begingroup + \parindent \z@ + \rightskip \@tocrmarg + \parfillskip -\rightskip + {\leavevmode + \large \headfont + \setlength\@lnumwidth{4\jsZw}% + #1\hfil \hb@xt@\@pnumwidth{\hss #2}}\par + \nobreak + \endgroup + \fi} +\newcommand*{\l@section}[2]{% + \ifnum \c@tocdepth >\z@ + \addpenalty{\@secpenalty}% + \addvspace{1.0em \@plus\p@?}% + \begingroup + \parindent\z@ + \rightskip\@tocrmarg + \parfillskip-\rightskip + \leavevmode\headfont + \setlength\@lnumwidth{\js@tocl@width}\advance\@lnumwidth 2\jsZw + \advance\leftskip\@lnumwidth \hskip-\leftskip + #1\nobreak\hfil\nobreak\hbox to\@pnumwidth{\hss#2}\par + \endgroup + \fi} +\newcommand*{\l@subsection}{% + \@tempdima\js@tocl@width \advance\@tempdima -1\jsZw + \@dottedtocline{2}{\@tempdima}{3\jsZw}} +\newcommand*{\l@subsubsection}{% + \@tempdima\js@tocl@width \advance\@tempdima 0\jsZw + \@dottedtocline{3}{\@tempdima}{4\jsZw}} +\newcommand*{\l@paragraph}{% + \@tempdima\js@tocl@width \advance\@tempdima 1\jsZw + \@dottedtocline{4}{\@tempdima}{5\jsZw}} +\newcommand*{\l@subparagraph}{% + \@tempdima\js@tocl@width \advance\@tempdima 2\jsZw + \@dottedtocline{5}{\@tempdima}{6\jsZw}} +\newdimen\@lnumwidth +\def\numberline#1{\hb@xt@\@lnumwidth{#1\hfil}\hspace{0pt}} +\def\@dottedtocline#1#2#3#4#5{\ifnum #1>\c@tocdepth \else + \vskip \z@ \@plus.2\p@? + {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip + \parindent #2\relax\@afterindenttrue + \interlinepenalty\@M + \leavevmode + \@lnumwidth #3\relax + \advance\leftskip \@lnumwidth \null\nobreak\hskip -\leftskip + {#4}\nobreak + \leaders\hbox{$\m@th \mkern \@dotsep mu\hbox{.}\mkern \@dotsep + mu$}\hfill \nobreak\hb@xt@\@pnumwidth{% + \hfil\normalfont \normalcolor #5}\par}\fi} +\newcommand{\listoffigures}{% + \section*{\listfigurename}% + \@mkboth{\listfigurename}{\listfigurename}% + \@starttoc{lof}% +} +\newcommand*{\l@figure}{\@dottedtocline{1}{1\jsZw}{3.683\jsZw}} +\newcommand{\listoftables}{% + \section*{\listtablename}% + \@mkboth{\listtablename}{\listtablename}% + \@starttoc{lot}% +} +\let\l@table\l@figure +\newdimen\bibindent +\setlength\bibindent{2\jsZw} +\newenvironment{thebibliography}[1]{% + \global\let\presectionname\relax + \global\let\postsectionname\relax + \section*{\refname}\@mkboth{\refname}{\refname}% + \list{\@biblabel{\@arabic\c@enumiv}}% + {\settowidth\labelwidth{\@biblabel{#1}}% + \leftmargin\labelwidth + \advance\leftmargin\labelsep + \@openbib@code + \usecounter{enumiv}% + \let\p@enumiv\@empty + \renewcommand\theenumiv{\@arabic\c@enumiv}}% + \sloppy + \clubpenalty4000 + \@clubpenalty\clubpenalty + \widowpenalty4000% + \sfcode`\.\@m} + {\def\@noitemerr + {\@latex@warning{Empty `thebibliography' environment}}% + \endlist} +\newcommand{\newblock}{\hskip .11em\@plus.33em\@minus.07em} +\let\@openbib@code\@empty +\newenvironment{theindex}{% 索引を3段組で出力する環境 + \if@twocolumn + \onecolumn\@restonecolfalse + \else + \clearpage\@restonecoltrue + \fi + \columnseprule.4pt \columnsep 2\jsZw + \ifx\multicols\@undefined + \def\presectionname{}\def\postsectionname{}% + \twocolumn[\section*{\indexname}]% + \else + \ifdim\textwidth<\fullwidth + \setlength{\evensidemargin}{\oddsidemargin} + \setlength{\textwidth}{\fullwidth} + \setlength{\linewidth}{\fullwidth} + \def\presectionname{}\def\postsectionname{}% + \begin{multicols}{3}[\section*{\indexname}]% + \else + \def\presectionname{}\def\postsectionname{}% + \begin{multicols}{2}[\section*{\indexname}]% + \fi + \fi + \@mkboth{\indexname}{\indexname}% + \plainifnotempty % \thispagestyle{plain} + \parindent\z@ + \parskip\z@ \@plus .3\p@?\relax + \let\item\@idxitem + \raggedright + \footnotesize\narrowbaselines + }{ + \ifx\multicols\@undefined + \if@restonecol\onecolumn\fi + \else + \end{multicols} + \fi + \clearpage + } +\newcommand{\@idxitem}{\par\hangindent 4\jsZw} % 元 40pt +\newcommand{\subitem}{\@idxitem \hspace*{2\jsZw}} % 元 20pt +\newcommand{\subsubitem}{\@idxitem \hspace*{3\jsZw}} % 元 30pt +\newcommand{\indexspace}{\par \vskip 10\p@? \@plus5\p@? \@minus3\p@?\relax} +\newcommand\seename{\if@english see\else →\fi} +\newcommand\alsoname{\if@english see also\else →\fi} +\let\footnotes@ve=\footnote +\def\footnote{\jsInhibitGlue\footnotes@ve} +\let\footnotemarks@ve=\footnotemark +\def\footnotemark{\jsInhibitGlue\footnotemarks@ve} +\def\thefootnote{\ifnum\c@footnote>\z@\leavevmode\lower.5ex\hbox{*}\@arabic\c@footnote\fi} +\renewcommand{\footnoterule}{% + \kern-3\p@? + \hrule width .4\columnwidth + \kern 2.6\p@?} +\long\def\@footnotetext{% + \insert\footins\bgroup + \normalfont\footnotesize + \interlinepenalty\interfootnotelinepenalty + \splittopskip\footnotesep + \splitmaxdepth \dp\strutbox \floatingpenalty \@MM + \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark + }% + \color@begingroup + \@makefntext{% + \rule\z@\footnotesep\ignorespaces}% + \futurelet\next\fo@t} +\def\fo@t{\ifcat\bgroup\noexpand\next \let\next\f@@t + \else \let\next\f@t\fi \next} +\def\f@@t{\bgroup\aftergroup\@foot\let\next} +\def\f@t#1{#1\@foot} +\def\@foot{\@finalstrut\strutbox\color@endgroup\egroup} +\newcommand\@makefntext[1]{% + \advance\leftskip 3\jsZw + \parindent 1\jsZw + \noindent + \llap{\@makefnmark\hskip0.3\jsZw}#1} +\let\jsInhibitGlueAtParTop\@empty +\def\everyparhook{\jsInhibitGlueAtParTop} +\AtBeginDocument{\everypar{\everyparhook}} +\def\@inhibitglue{% + \futurelet\@let@token\@@inhibitglue} +\def\@@inhibitglue{% + \ifx\@let@token「% + \jsInhibitGlue + \else + \ifx\@let@token(% + \jsInhibitGlue + \else + \ifx\@let@token『% + \jsInhibitGlue + \else + \ifx\@let@token[% + \jsInhibitGlue + \fi + \fi + \fi + \fi} +\def\@doendpe{% + \@endpetrue + \def\par{% + \@restorepar\everypar{\everyparhook}\par\@endpefalse}% + \everypar{{\setbox\z@\lastbox}\everypar{\everyparhook}\@endpefalse\everyparhook}} +\def\@item[#1]{% + \if@noparitem + \@donoparitem + \else + \if@inlabel + \indent \par + \fi + \ifhmode + \unskip\unskip \par + \fi + \if@newlist + \if@nobreak + \@nbitem + \else + \addpenalty\@beginparpenalty + \addvspace\@topsep + \addvspace{-\parskip}% + \fi + \else + \addpenalty\@itempenalty + \addvspace\itemsep + \fi + \global\@inlabeltrue + \fi + \everypar{% + \@minipagefalse + \global\@newlistfalse + \if@inlabel + \global\@inlabelfalse + {\setbox\z@\lastbox + \ifvoid\z@ + \kern-\itemindent + \fi}% + \box\@labels + \penalty\z@ + \fi + \if@nobreak + \@nobreakfalse + \clubpenalty \@M + \else + \clubpenalty \@clubpenalty + \everypar{\everyparhook}% + \fi + \bxjs@ltj@inhibitglue + \everyparhook}% + \if@noitemarg + \@noitemargfalse + \if@nmbrlist + \refstepcounter\@listctr + \fi + \fi + \sbox\@tempboxa{\makelabel{#1}}% + \global\setbox\@labels\hbox{% + \unhbox\@labels + \hskip \itemindent + \hskip -\labelwidth + \hskip -\labelsep + \ifdim \wd\@tempboxa >\labelwidth + \box\@tempboxa + \else + \hbox to\labelwidth {\unhbox\@tempboxa}% + \fi + \hskip \labelsep}% + \ignorespaces} +\def\@afterheading{% + \@nobreaktrue + \everypar{% + \if@nobreak + \@nobreakfalse + \clubpenalty \@M + \if@afterindent \else + {\setbox\z@\lastbox}% + \fi + \else + \clubpenalty \@clubpenalty + \everypar{\everyparhook}% + \fi\everyparhook}} +\def\@gnewline #1{% + \ifvmode + \@nolnerr + \else + \unskip \reserved@e {\reserved@f#1}\nobreak \hfil \break \null + \jsInhibitGlue \ignorespaces + \fi} +\newcommand{\prepartname}{\if@english Part~\else 第\fi} +\newcommand{\postpartname}{\if@english\else 部\fi} +\newcommand{\presectionname}{}% 第 +\newcommand{\postsectionname}{}% 節 +\newcommand{\contentsname}{\if@english Contents\else 目次\fi} +\newcommand{\listfigurename}{\if@english List of Figures\else 図目次\fi} +\newcommand{\listtablename}{\if@english List of Tables\else 表目次\fi} +\newcommand{\refname}{\if@english References\else 参考文献\fi} +\newcommand{\bibname}{\if@english Bibliography\else 参考文献\fi} +\newcommand{\indexname}{\if@english Index\else 索引\fi} +\newcommand{\figurename}{\if@english Fig.~\else 図\fi} +\newcommand{\tablename}{\if@english Table~\else 表\fi} +\newcommand{\appendixname}{\if@english \else 付録\fi} +\newcommand{\abstractname}{\if@english Abstract\else 概要\fi} +\@tempswafalse +\if p\jsEngine \@tempswatrue \fi +\if n\jsEngine \@tempswatrue \fi +\if@tempswa \expandafter\@firstoftwo +\else \expandafter\@secondoftwo +\fi +{% +\newif\ifjsSeireki \jsSeirekitrue +\def\西暦{\jsSeirekitrue} +\def\和暦{\jsSeirekifalse} +\def\Seireki{\jsSeirekitrue} +\def\Wareki{\jsSeirekifalse} +\def\bxjs@if@use@seireki{% + \ifjsSeireki \expandafter\@firstoftwo + \else \expandafter\@secondoftwo \fi} +}{% +\newif\if西暦 \西暦true +\def\西暦{\西暦true} +\def\和暦{\西暦false} +\def\Seireki{\西暦true} +\def\Wareki{\西暦false} +\def\bxjs@if@use@seireki{% + \if西暦 \expandafter\@firstoftwo + \else \expandafter\@secondoftwo \fi} +} +\let\bxjs@unxp\@firstofone +\bxjs@test@engine\unexpanded{\let\bxjs@unxp\unexpanded} +\if \if p\jsEngine T\else\if n\jsEngine T\else F\fi\fi T + \def\bxjs@iai{\noexpand~} +\else \def\bxjs@iai{} +\fi +\newcount\heisei \heisei\year \advance\heisei-1988\relax +\edef\today{% + \if@english + \ifcase\month\or + January\or February\or March\or April\or May\or June\or + July\or August\or September\or October\or November\or December\fi + \space\number\day, \number\year + \else + \noexpand\bxjs@if@use@seireki{% + \number\year\bxjs@iai\bxjs@unxp{年}% + \bxjs@iai\number\month\bxjs@iai\bxjs@unxp{月}% + \bxjs@iai\number\day\bxjs@iai\bxjs@unxp{日}% + }{% + \bxjs@unxp{平成}\bxjs@iai\number\heisei\bxjs@iai\bxjs@unxp{年}% + \bxjs@iai\number\month\bxjs@iai\bxjs@unxp{月}% + \bxjs@iai\number\day\bxjs@iai\bxjs@unxp{日}% + }% + \fi} +\hyphenation{ado-be post-script ghost-script phe-nom-e-no-log-i-cal man-u-script} +\pagestyle{empty}% +\pagenumbering{arabic} +\if@twocolumn + \twocolumn + \sloppy + \flushbottom +\else + \onecolumn + \raggedbottom +\fi + \renewcommand\familydefault{\sfdefault} + \raggedright +\catcode`\?=12 +\ifx\bxjs@jadriver\relax\else +\input{bxjsja-\bxjs@jadriver.def} +\fi +\bxjs@restore@jltrcc +\endinput +%% +%% End of file `bxjsslide.cls'. |