summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/bxbase
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2017-06-05 23:15:19 +0000
committerKarl Berry <karl@freefriends.org>2017-06-05 23:15:19 +0000
commitcaef61ed4952aee5804397dbdc93deb54f043a98 (patch)
tree1e573ee472800ed59f289b3df677b55760cd333a /Master/texmf-dist/doc/latex/bxbase
parent2709e0f96ccfa1759997b079880998184fc725cf (diff)
bxbase (30may17)
git-svn-id: svn://tug.org/texlive/trunk@44481 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex/bxbase')
-rw-r--r--Master/texmf-dist/doc/latex/bxbase/00README47
-rw-r--r--Master/texmf-dist/doc/latex/bxbase/LICENSE5
-rw-r--r--Master/texmf-dist/doc/latex/bxbase/README472
-rw-r--r--Master/texmf-dist/doc/latex/bxbase/README-ja.md535
-rw-r--r--Master/texmf-dist/doc/latex/bxbase/README.md133
-rw-r--r--Master/texmf-dist/doc/latex/bxbase/bxbase-ja.pdfbin0 -> 76496 bytes
-rw-r--r--Master/texmf-dist/doc/latex/bxbase/bxbase-ja.tex108
7 files changed, 777 insertions, 523 deletions
diff --git a/Master/texmf-dist/doc/latex/bxbase/00README b/Master/texmf-dist/doc/latex/bxbase/00README
deleted file mode 100644
index d1b0c766c2f..00000000000
--- a/Master/texmf-dist/doc/latex/bxbase/00README
+++ /dev/null
@@ -1,47 +0,0 @@
-
-Package bxucs
- bxucs.sty, bxutf8.def
-
-Description:
- Simple Unicode support to use with TrueType fonts
-
-Example with 'Charis SIL'
-
-1. Name the family and font base name.
- - Here I use 'fsch' and 'zfsch'
-2. Setup this family for some ordinary TeX encoding (say T1).
- - (Ex) Generate zfschr8t.tfm by:
- ttf2tfm CharisSILR.ttf zfschr@TeXStd@.tfm
- - Make t1fsch.fd as follows:
-<t1fsch.fd>
-\DeclareFontFamily{T1}{fsch}{}
-\DeclareFontShape{T1}{fsch}{m}{n}{<->zfschr8t}{}
-<EOF>
-3. Setup this family for Unicode-subfont (USF) encoding.
- - Generate USF-encoding TFMs:
- ttf2tfm CharisSILR.ttf zfschr9u-@Unicode@.tfm
- - Note the valid UCS-row range:
- 00-05,1D-1E,20-25,27,2C,A7,F1-F3,FB,FE-FF
- - Make a special FD file for USF-encoding:
-<usffsch.fd>
-\USFDeclareFontShape{fsch}{00-05,1D-1E,20-25,27,2C,A7,F1-F3,FB,FE-FF}{
- \USFShape{m}{n}{<->zfschr9z-#1}{}
-}
-<EOF>
-
-
-bxutf8.def: <utf8> -> \bxus@uc
-bxutf8s.def: <utf8> -> <bxutf8.def> / \bxus@uc
-
-\bxus@uc
-
-
-
-
-
-utf8 - bxucs - otf
-
-
-utf8 - bxucs - otf
-
-
diff --git a/Master/texmf-dist/doc/latex/bxbase/LICENSE b/Master/texmf-dist/doc/latex/bxbase/LICENSE
index 15954156886..8ada757fbc8 100644
--- a/Master/texmf-dist/doc/latex/bxbase/LICENSE
+++ b/Master/texmf-dist/doc/latex/bxbase/LICENSE
@@ -1,9 +1,6 @@
-$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
-
The MIT License
-Copyright (c) 2009 ZR
+Copyright (c) 2017 Takayuki YATO (aka. "ZR")
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/Master/texmf-dist/doc/latex/bxbase/README b/Master/texmf-dist/doc/latex/bxbase/README
deleted file mode 100644
index 09fc3a78597..00000000000
--- a/Master/texmf-dist/doc/latex/bxbase/README
+++ /dev/null
@@ -1,472 +0,0 @@
-==================================================
-== BXbase バンドル v0.5 <2010/06/15> ==
-== by「ZR」(八登 崇之/Takayuki YATO)==
-== <zrbabbler@yahoo.co.jp> ==
-==================================================
-(This file is encoded in UTF-8,)
-
-欧文 LaTeX2e における多言語文書およびそれに関わるマクロパッケージの作成
-を支援する基本的な機能を提供する。
-
- - bxutf8 入力エンコーディング: UTF-8 入力
- - bxutf8x 入力エンコーディング: UTF-8 入力
- - bxbase パッケージ: 基礎ライブラリ
- - bxucs パッケージ: 欧文 Unicode 文字出力
-
-※ 対応環境は各々のパッケージの解説を参照。
-
-■ 本ソフトウェアの一次配布サイト(作者のサイト)
-
- En toi Pythmeni tes TeXnopoleos 〜電脳世界の奥底にて〜
- http://zrbabbler.hp.infoseek.co.jp/
-
- ※ 以下のページに一部機能の使用例を紹介した。
- 「Unicode による文字入力」
- http://zrbabbler.hp.infoseek.co.jp/unichar.html
- 「BXbase パッケージ」
- http://zrbabbler.hp.infoseek.co.jp/bxbase.html
-
-■ インストール
-
- TDS 1.1 に従ったシステムでは、各ファイルを次の場所に移動する。
- ・*.sty, *.def → $TEXMF/tex/latex/BXbase/
- (残りのファイルは不要)
-
- W32TeX を C:\usr\local にインストールした場合の例。
- ・*.sty, *.def → C:\usr\local\share\texmf-local\tex\latex\BXbase
-
---------------------------------------------------
- bxutf8 入力エンコーディング (v0.5) -- UTF-8 入力
---------------------------------------------------
-
-LaTeX2e 標準の utf8 入力エンコーディングを拡張して、utf8 で処理できない
-文字について符号値を含む中間形式に変換する。この中間形式は他のパッケージ
-が処理することが想定されている。
-
-■ 対応環境
-
- 欧文 LaTeX2e / pLaTeX2e / upLaTeX2e
-
-■ 読込
-
- inputenc のオプションとして指定する。
- \usepackage[bxutf8]{inputenc}
-
- inputenc が読み込み済の場合は \inputencoding を使う。
- \inputencoding{bxutf8}
-
- 本文中で他の入力エンコーディングとの間で切り替えることも可能であるが、
- その場合は、一度プレアンブルのどこかで入力エンコーディングを bxutf8
- に切り替えなければならない(bxutf8.def が内部で読み込む utf8.def の
- 仕様による)。本文での切り替えはあまりテストされていないので、バグが
- ある可能性が高い ;-)
-
-■ 機能
-
- bxutf8 は utf8 の拡張である。utf8 は UTF-8 で書かれた文字を次のよう
- に処理する。その文字が出力方法を知っている—つまり読込済のフォント
- エンコーディングに含まれる—文字の場合、それを LaTeX の標準的な内部
- 形式(\"a や \OE 等)に変換して後をフォントエンコーディング(fontenc)
- の処理に任せる。しかし、知らない文字の場合はエラーになる。
-
- bxutf8 は「知らない文字」の場合の処理を変更し、これを \bxUHex{XXXX}
- の形式に変換する。ここで XXXX は該当の文字のコード値の 16 進表現で
- ある。\bxUHex は該当の文字を出力することが想定されているが、これの
- 定義(「ドライバ」と呼ぶことにする)は他のパッケージで与えられる。
- bxutf8 自身のドライバの定義は単にエラーを出すだけである。
-
-■ 注意事項
-
- - UTF-8 のバイト列から \bxUHex の形式までは完全展開可能になっている。
- また、\bxUHex の定義は robust でなければならない。これは他の入力
- エンコーディングと共通の性質である。
- - 0.5 版の改訂で、BMP 外(U+10000 以上)の符号値に対応した。
- - pLaTeX/upLaTeX の場合、入力漢字コードは UTF-8 (-kanji=utf8) である
- 必要がある。この場合、処理系により和文トークンと解釈される文字以外
- が bxutf8 の処理に回る。
- - utf8 が扱える文字については飽くまでも utf8 と全く同じように処理
- されることに注意。例えば、フォントエンコーディングに OT1 と T2A が
- 読み込まれている状態で「Д」が入力されると、utf8 はこれを \CYRD に
- 変換するが、これは現在のフォントエンコーディングが OT1 である時は
- エラーになる(たとえ \bxUHex がフォントエンコーディングに関わらず
- 動作するとしても)。
-
-
----------------------------------------------------
- bxutf8x 入力エンコーディング (v0.3) -- UTF-8 入力
----------------------------------------------------
-
-Unicode パッケージ(ucs パッケージ)が使用する utf8x 入力エンコーディング
-を拡張して、bxutf8 と同様の機能を実現したものである。
-
-■ 対応環境
-
- 欧文 LaTeX2e / pLaTeX2e / upLaTeX2e
-
-■ 読込
-
- inputenc のオプションとして指定する。
- \usepackage[bxutf8]{inputenc}
-
- inputenc が読み込み済の場合は \inputencoding を使う。
- \inputencoding{bxutf8}
-
- 後者の使用については、bxutf8 と同じ制限の他に、utf8x に特有の制限
- がある。
-
-■ 機能
-
- 基本的には bxutf8 と同じなので、相違点を挙げておく。
-
- - utf8x (ucs) のプログラムは utf8 と比して遥かに複雑である。従って
- bxutf8x が正しく実装されているかについてはあまり自信が無い。
- - bxutf8x は \bxUInt という内部命令を用いる。
- - utf8x は実際にフォントエンコーディングが読み込まれているかに関わら
- ず広範な範囲の文字を自分で処理しようとする。結果的に、欧文の文字に
- 関してはほとんど \bxUInt に変換されない。CJK 文字に対しては utf8x
- は既定では処理しないので \bxUInt に変換される。
-
-
---------------------------------------------
- bxbase パッケージ (v0.5) -- 基礎ライブラリ
---------------------------------------------
-
-他の BX シリーズのパッケージの下請けが主な役目である。文書作成者がこの
-パッケージを読み込む場面は少ない。
-
-■ 対応環境
-
- 欧文 LaTeX2e / pLaTeX2e / upLaTeX2e
-
-■ 読込
-
- \usepackage で読み込む。オプションはない。
-
-■ pxbase パッケージとの関係
-
- bxbase パッケージと pxbase パッケージ(PX シリーズ)は大部分の機能を
- 共通にしている。両方読み込んだ場合は、共通する機能については版が
- 新しい方が採用される。過去互換性を崩す更新は行われないので、このこと
- に関して文書作成者が気にする必要はないはずである。
-
- なお、現在の所、bxbase のみに存在する機能はない。
-
-■ 機能
-
- DVI special 出力の命令。
-
- \recordpapersize
- 次の形の papersize special 命令を DVI の先頭に出力する。
- papersize=<幅>,<高さ>
- (幅と高さは現在の \paperwidth と \paperheight の値。)
-
- \dvipdfmxmapline{<テキスト>}
- dvipdfmx のマップ指定を文書中で行う。
- ※次の形の papersize special 命令を DVI の先頭に出力する。
- pdf:mapline <テキスト>
-
- \dvipdfmxmapfile{<ファイル名>}
- dvipdfmx のマップファイル指定を文書中で行う。
- ※次の形の papersize special 命令を DVI の先頭に出力する。
- pdf:mapfile <ファイル名>
-
- 符号値による文字入力のための命令。
-
- \Ux{<コード値>,...}
- \UI{<コード値>,...}
- Unicode コード値による入力を行う。\Ux は欧文用、\UI は和文用(I は
- Ideographic の意味)。コード値は以下の形式で表す。コンマで区切って
- 複数文字入力できる。
- - <16進数>: A72C, 02000B, 1bd 等。
- - +<10進数>: +254, +0937 等。
- - '<8進数>: '376, '1651 等。
- Unicode 文字の出力には次の順番で利用可能な最初の機能を用いる。(\UI
- の場合 3) を飛ばす。)
- 1) zxjatype パッケージ。この場合、その機構に従って出力される。\UI
- は必ず和文フォントで出力し、\Ux は和文/欧文切替の対象となる。
- 2) XeTeX の Unicode 出力。
- 3) [\Ux のみ] bxums パッケージ。
- 4) upTeX の和文 Unicode 出力。
- 5) UTF/OTF/pxotf パッケージ。
- 6) ums/bxsuika パッケージ。
- どれも使えない場合は「16進表現による代替表現」になる。
-
- \AJ{<コード値>,...}
- Adobe-Japan1 のコード値による入力を行う。コード値は 10 進数で指定
- する。出力には次の順番で利用可能な最初の機能を用いる。
- 1) zxotf パッケージ。
- 2) UTF/OTF/pxotf パッケージ。
- どれも使えない場合は代替表現になる。
-
- \JI{<コード値>,...}
- いわゆる「JIS コード」(JIS X 0208 の GL 表現)のコード値による入力
- を行う。コード値指定の方法は \Ux と同じ。出力には (u)pTeX の JIS
- コード和文出力の機能を使う。使えない場合は代替表現になる。
-
- \KI{<コード値>,...}
- いわゆる「区点コード」のコード値による入力を行う。コード値指定は
- 以下のいずれかの方法で指定する。
- - RRCC : RR は区番号、CC は点番号を 10 進 2 桁で表したもの。
- - PRRCC : P は面番号。JIS X 0213 のための指定。
- 出力には (u)pTeX の JIS コード和文出力の機能を使う。使えない場合は
- 代替表現になる。JIS X 0213 の文字を出力したい場合は、現在の和文
- フォントのエンコーディングが JIS X 0213 に対応するものである必要が
- ある。さらに、第 2 面の文字を出力する場合には pTeX の内部漢字コード
- が sjis でなければならない。
-
- \bxUx / \bxUI / \bxAJ / \bxJI / \bxKI
- \Ux 等は非常に短い名前なので他のパッケージと衝突する恐れがあり、
- そこでこのパッケージでは既に同名の命令がある場合は上書きしない
- ようにしている。\bxUx 等はそれぞれ \Ux 等と同じで、先のような場合
- にも常に使える。
-
- 加えて、このパッケージは bxutf8 の為のドライバ \bxUHex および bxutf8x
- の為のドライバを \Ux に相当するものに設定する。
-
- 以下のものは本来は和文用の命令であるが、理由があって bxbase にも含めて
- いる。pxbase と共通なので詳細は PXbase の説明書を参照してほしい。
-
- \safecaret
- TeX エスケープ形式(^^ab)の解釈が失敗するのを回避する。
-
- Bwbel 関係の命令。
-
- \bxcaptionlanguage{<言語名>}
- Babel では、通常言語が切り替わるとキャプションや日付の文字列が切り
- 替わる。この命令を実行すると、文字列は指定された言語のもので固定
- され、Babel の言語切替の命令に追随しなくなる。この命令自体はプレ
- アンブル中で何回でも使用できて最後のものが有効になる。引数には有効
- な言語オプションの名前の他に以下のものが指定できる。
- - main : 基底言語、すなわち Babel で最後に読み込まれた言語だが
- 次に述べる \bxmainlanguage で変更可能。
- - default : 文書クラスで指定されたものをそのまま用いる。日本語
- の文書クラスで Babel を用いる時に便利である。
- この命令の意義については後の「キャプション文字列の切替機能について」
- の節を参照。
-
- \bxmainlanguage{<言語名>}
- 基底言語、すなわち \begin{document} の直後において有効となる言語を
- 設定する。通常は Babel において最後に読み込まれた言語オプションが
- 基底言語になる。
-
-■ キャプション文字列の切替機能について
-
- Babel の機能の 1 つとして、言語の切替に伴って、キャプションの文字列
- (「参考文献」や「図」等)および日付の書式をその言語用のものに切り替え
- るというものがある。これにより、ある言語(例えばスロベニア語)の為の
- 文書クラスがなくても英語用のクラスと Babel の言語切替でスロベニア語
- のキャプションの文書が作成できる(レイアウトがその言語の使用圏で許容
- されるかの問題は残るが)。だがこの目的には、プレアンブルでキャプション
- 言語を 1 回指定できればよく、文書途中での言語切替にまでキャプション
- が追随する利点はあまりなく、場合によっては弊害があると思われる。この
- ような場合は
- \bxcaptionlanguage{main}
- を実行すれば、キャプションは基底言語(\bxmainlanguage の説明参照)で
- 固定され以後は変更されない。また
- \bxcaptionlanguage{spanish}
- のように直接に言語名を指定することもできる。
-
- 日本語の場合はもっと特殊な事情がある。日本語のレイアウトは欧米の言語
- のものとは大きく異なるので、日本語の文書を作成する場合には日本語用の
- 文書クラスが用いられるのが普通であり、そこでは当然キャプションは既に
- 日本語になっている。このような場合は
- \bxcaptionlanguage{default}
- を実行すれば、キャプションは文書クラスで設定されたものに固定され、
- 以後は変更されない。
-
-■ 開発者向け機能
-
- \bxUHex{<コード値16進表記>}
- bxutf8 が構成する内部表現。用いる機能は \Ux と同じ。
- \bxUInt{<整数>}
- bxutf8x が構成する内部表現。用いる機能は \Ux と同じ。
-
- \bxInputDefFIle{<ファイルベース名>}
- 拡張子 .def のファイルを \usepackage と同じ方式で読み込む。
- \bxCheckCPart{<ファイルベース名>}
- 別のファイル(.sty/.def)との版の比較。
- \bxNullify\CS
- マクロ \CS を無効にする。
- \bxDebug{<テキスト>}
- デバッグメッセージの表示。
- \bxCheckMA<テキスト>\bxEndCheckMA
- \edef 中ではこの部分がエラーを出す命令に展開される。
- \bxIfPrimitive\CS{<yes>}{<no>}
- 現在の \CS の定義が(同名の)プリミティブかの判定。
- \bxEngineTypeX [整数定数]
- 1=pTeX拡張; 2=XeTeX拡張; 3=Omega拡張; 0=以上に該当せず
- \bxEngineTypeY [整数定数]
- 1=eTeX拡張; 3=pdfTeX拡張; 0=以上に該当せず
- (upTeX か否かの判定は ifuptex パッケージを用いる)
-
- \bxTrivLangDef{<言語名>}
- 中身が空の Babel 言語オプションを生成する。
-
- \bxToHexTwo{<整数>} [%02X 形式; 0x00〜FF]
- \bxToHexThree{<整数>} [%03X 形式; 0x000〜FFF]
- \bxToHexFour{<整数>} [%04X 形式; 0x0000〜FFFF]
- \bxToHexFive{<整数>} [%05X 形式; 0x00000〜FFFFF]
- \bxToHexFiveX{<整数>} [%05X 形式; 0x00000〜FFFFF ※1]
- \bxToHexEight{<整数>} [%08X 形式; 0x00000000〜7FFFFFFF]
- \bxToHexTiny{<整数>} [%X 形式; 0x0〜FF]
- \bxToHexSmall{<整数>} [%X 形式; 0x0〜7FFF]
- \bxToHexUC{<整数>} [%04X 形式; 0x0000〜10FFFF ※2]
- 16 進表記を \bxHex に返す。UC は 4〜6 桁での表記。
- ※1 0xFFFFF を超える場合は "FFFFF" になる
- ※2 XeTeX/LuaTeX/upTeX の場合、\char が可能な範囲。
-
- \bxCodeValueSeq\CS{<文字列>} [16進]
- \bxCodeValueSeqD\CS{<文字列>} [10進]
- \Ux, \UI が使っている、コード値の列を解釈するルーチン。
-
- \bxAssign<代入文>\relax
- 代入文が完全(ゴミがない)かの判定しスイッチ \ifbxOk に返す。
-
- \bxToLower{<文字列>}
- \bxToUpper{<文字列>}
- 小文字/大文字に変換したものを \bxRes に返す。
-
- \bxDocumentSpecial{<テキスト>}
- \AtBeginDvi を普通に用いて DVI の先頭部に special を出力する。
- \bxDocumentSpecialUrgent{<テキスト>}
- DVI のなるべく先頭(他の special より前)の位置に special を出力。
-
- \bxEnableSafeCaret
- safe caret 機能を使用可能にしておく。すなわち、プレアンブルでこの
- 命令が呼ばれなかった場合、safe caret は使用不可になる。実際にある
- 状況で safe caret を有効にするには、\bx@acr@normcaret を「その状況
- での本来の〈^〉の動作」に定義した上で〈^〉をアクティブにする必要が
- ある。
- ※ ユーザ命令の \safecaret はこの命令を実行するとともに、verbatim
- と babel での適切な safe caret 処理を有効化している。
-
- \bxUseShadowMap\CS{<TFM名>}
- 命令語 \CS を指定の TFM から生成される shadow map として定義する。
- \bxMap\CS
- 整数レジスタ \bxUcv の現在の値に shadow map を適用し、その結果を
- \bxUcv に代入する。
- ※ shadow map とは「16 bit 整数 → 整数」の写像を TFM として表現
- したもの。
-
----------------------------------------------------
- bxucs パッケージ (v0.2) -- 欧文 Unicode 文字出力
----------------------------------------------------
-
-Unicode subfont を利用して、(欧文の) Unicode 処理能力をネイティブには
-もたない LaTeX 処理系で Unicode フォントを最大限活用する為のパッケージ
-である。upLaTeX は和文に関するネイティブな Unicode 処理を行うが、欧文
-として Unicode 文字を扱う場合にはこのパッケージが有効であろう。
-
-■ 対応環境
-
- 欧文 LaTeX2e / pLaTeX2e / upLaTeX2e
-
-■ 読込
-
- \usepackage で読み込む。オプションはない。
- \usepackage{bxucs}
-
-■ フォントの準備
-
- 欧文フォントファミリに対してこのパッケージによる Unicode 出力を可能
- にする為には、次の 2 種類のエンコーディングに対するファミリの NFSS
- に基づくフォント定義が必要である。
- - LaTeX の通常のエンコーディング、最低でも OT1 と T1
- - Unicode subfont エンコーディング(ここでは USF と呼ぶ)
-
- 例えば、次の 2 シェープからなるフォントファミリがあるとする。
- - FOO_R.ttf : regular weight
- - FOO_B.ttf ; bold weight
- これを LaTeX ファミリ名 "foo" で定義することを考える。
-
- 最初に OT1 に関する定義をする。その為には、各シェープに対する TFM の
- 名前を決める必要がある。regular を foo-r-ot1、bold を foo-b-ot1 と
- する(勿論 Berry 命名法に従っても良い)と、OT1 に対するフォント定義
- ファイル ot1foo.fd の内容は次のようになる。
-
- \DeclareFontFamily{T1}{foo}{}
- \DeclareFontShape{T1}{foo}{m}{n}{<->foo-r-ot1}{}
- \DeclareFontShape{T1}{foo}{bx}{n}{<->foo-b-ot1}{}
-
- T1 エンコーディングに対する設定も同様である。
-
- 次に Unicode subfont (USF) に対する定義をする。Unicode subfont とは
- Unicode の BMP 領域を 256 文字毎に分割して複数の TFM に収めたもので
- ある。従って、1 つのシェープに対して TFM は(最大で) 256 個あること
- になり、名前の一部に番号(小文字 16 進表記)を含めて表す。今の場合で
- は例えば Regular のシェープに対する TFM 名は
- foo-r-u?? (?? は 00, 01, …, fe, ff)
- とすることができる。同様に Bold を foo-b-u?? とする。Unicode subfont
- に対するフォント定義ファイルは次の形式で記述される。
-
- \USFDeclareFontShape{<ファミリ>}{<番号列>}{
- \USFShape{<シリーズ>}{<シェープ>}{<TFM定義>}{<初期化>}
- (必要なだけ \USFShape を繰り返す)
- }
-
- Unicode subfont は 256 個全てが揃っているとは限らない。例えば 60 番
- (U+6000〜60FF) は漢字のみを含むので、元のフォントファイルが CJK 対応
- のものでない限り、60 番の subfont は存在しないことになる。<番号列>
- には、存在する番号の範囲の列を記す。ここでは 00, 01, 02, 03, ff が
- 存在するとする。今の例でのフォント定義ファイル usffoo.fd の内容は次
- のようになる。
-
- \USFDeclareFontShape{foo}{00-03,FF}{
- \USFShape{m}{n}{<->foo-r-u#1}{}
- \USFShape{bx}{n}{<->foo-b-u#1}{}
- }
-
- あとは、今の過程で決めた事項に従って、実際に TFM ファイルを生成し
- (TrueType フォントの場合は ttf2tfm を使う)、さらに TFM と実物の
- フォントファイルを関連付けるように DVI ウェアを設定する必要もある。
-
-■ 機能
-
- このパッケージは bxbase の \Ux のインタフェースを利用する。従って、
- \Ux{0425,043E,0440,043E,0448,043E}
- のように \Ux の引数にコード値の 16 進表記の列を書けばよい。ただし
- この時に、現在のフォントファミリは前述の説明で用意した Unicode
- subfont が定義されたものでなければならない。(なお、このパッケージは
- 内部で bxbase を読み込むので別に読み込む必要はない。)
-
- 使用中のフォントに指定されたコードの文字がない場合は、和文用の \UI
- の方に処理を渡す。ただしここで e-TeX 拡張が使えない場合、存在する
- 文字と同じ subfont に属する文字は全て存在すると判断されてしまうと
- いう制限があり、結果として和文フォントには文字があるのに使えない
- という現象が起こりうる。
-
-
--------------------------------------------------------
- zxbase パッケージ (v0.4a) -- XeLaTeX 基礎ライブラリ
-------------------------------------------------------
-
-拙作の XeLaTeX 用パッケージ(ZX シリーズ)で使われる部品的機能を収めた
-パッケージである。今のところ、このパッケージにはユーザ命令は定義されて
-いないので、文書作成者が \usepackage で直接これを読み込むことはない。
-(現在、zxotf がこのパッケージを内部で読み込む。)
-
-----------------------------------------
-
-■ 更新履歴
-
- version 0.5 <2010/06/15>
- - bxbase: \JI/\KI を追加。
- - bxbase: \dvipdfmxmapline/\dvipdfmxmapfont を追加。
- - bxutf8: BMP 外の符号値への対応。
-
- version 0.4a <2009/11/16>
- - bxbase で \UI/\Ux を zxjatype と、\AJ を zxotf と連携させた。
- - zxbase パッケージを追加。
-
- version 0.4 <2009/07/05>
- - PXbase の v0.4 に合わせた改訂。
-
- version 0.3 <2008/04/06>
- - bxutf8x を追加。
- - bxutf8 のバグを修正。
- - bxbase でも pxbase の命令 \recordpapersize を使用可能にした。
-
- version 0.2 <2008/03/28>
- - 最初の公開版。
-
-# EOF
diff --git a/Master/texmf-dist/doc/latex/bxbase/README-ja.md b/Master/texmf-dist/doc/latex/bxbase/README-ja.md
new file mode 100644
index 00000000000..c4489be1f78
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/bxbase/README-ja.md
@@ -0,0 +1,535 @@
+BXbase パッケージバンドル
+=========================
+
+LaTeX: 他の BX パッケージのためのサポートライブラリ
+
+本バンドルの主な目的は、作者(ZR)の制作する他のパッケージ(名前が
+“BX”や“PX”で始まる)が依拠するライブラリ機能の提供である。
+
+ただし bxbase パッケージは少数のユーザレベルのコマンドも含むので
+単体でも有用である。
+
+### 前提環境
+
+ * TeX フォーマット: LaTeX
+ * TeX エンジン: 不問
+ * DVI ウェア(DVI 出力時): 不問
+
+### 構成物
+
+ * `bxbase.sty`: ‘bxbase’パッケージ
+ * `bxbase.def`: ‘bxbase’のサブモジュール
+ * `bxtoolbox.sty`: ‘bxtoolbox’パッケージ
+ * `bxtoolbox.def`: ‘bxtoolbox’のサブモジュール
+ * `bxtoolbox-ext.def`: ‘bxtoolbox’のサブモジュール
+ * `bxtoolbox-ja.def`: ‘bxtoolbox’のサブモジュール
+ * `bxutf8.def`: ‘bxutf8’入力エンコーディング定義
+ * `bxutf8x.def`:‘bxutf8x’入力エンコーディング定義
+ * `zxbase.sty`: ‘zxbase’パッケージ
+ * `bxbase-ja.pdf`: ‘bxbase’のユーザ向け説明書(日本語)
+ * `bxbase-ja.tex`: `bxbase-ja.pdf` のソースファイル
+
+### インストール
+
+TDS 1.1 に準拠するシステムの場合、以下のようにファイルを移動する:
+
+ - `*.sty`, `*.def` → $TEXMF/tex/latex/BXbase
+
+この後必要に応じて mktexlsr を実行する。
+
+### ライセンス
+
+本パッケージは MIT ライセンスの下で配布される。
+
+bxbase パッケージ ― 基礎ライブラリ
+----------------------------------
+
+基本的に、他のパッケージの内部で読み込まれるものであり、作者(ZR)の制作
+する他のパッケージで必要な機能を提供する。
+
+本パッケージは幾つかのユーザ命令も提供していたが、その大部分が 1.1 版に
+おいて非推奨となった。日本語入力に関する少数の機能が残されている。
+
+### ユーザ向け機能
+
+ユーザ向け機能についてはマニュアル `bxbase-ja.pdf` を参照されたい。
+
+### 開発者向け機能
+
+ここでは bxbase パッケージが提供する開発者向け機能について簡単に解説する。
+
+※ bxbase パッケージは内部で bxtoolbox パッケージを読み込むため、bxtoolbox
+の機能も利用できる。
+
+#### 書式記述に関する注意
+
+`<LaTeXマクロ定義記述>` は `\newcommand` 等の LaTeX マクロ定義命令に
+後続する要素列で、以下のものに等しい。
+
+ {<命令>}[<引数個数>][<引数既定値>]{<置換テキスト>}
+
+`<TeXマクロ定義記述>` は `\def` 等の TeX マクロ定義プリミティブに
+後続する要素列で、以下のものに等しい。
+
+ <命令><引数宣言部>{<置換テキスト>}
+
+`<TeXマクロ定義記述*>` は `<TeXマクロ定義記述>` の先頭の `<命令>`
+を除去したもの。
+
+#### プログラミング補助
+
+ * `\bxDebug{<テキスト>}`
+ デバック出力用命令。このパッケージでの定義では何もしない。
+ * `\bxRequireDefinition{<ファイルベース名>}`
+ 拡張子 .def のファイルを `\usepackage` と同じ方式で読み込む。
+ * `\bxNullify\制御綴`
+ `\制御綴` を「何もしない命令」で `\providecommand` により
+ 上書きされないものに再定義する。
+ * `\bxForEachIn<引数1>,<引数2>,...\do{<置換テキスト>}`
+ 各々の引数について、`<置換テキスト>` の `#1` をそれで置き換えた
+ ものを実行する。LaTeX の `\@for` のラッパーで、`\@for` と同じく、
+ `\bxForEachIn` の直後のトークンは予め一度展開される。
+ * `\bxForEachTokenIn<トークン1><トークン2>...\do{<置換テキスト>}`
+ 各々の引数について `<置換テキスト>` の `#1` を置き換えたものを
+ 実行する。LaTeX の `\@tfor` のラッパー。
+ * `\bxWithArgExpd{<引数1>}\do{<置換テキスト>}`
+ * `\bxWithArgsExpd{<引数1>}{<引数2>}...\do{<置換テキスト>}`
+ `<置換テキスト>` 中の `#1`、`#2`… を各々の引数を一回展開した
+ ものに置き換えたものを実行する。`\bxWithArgExpd` は 1 引数用に
+ 最適化したもの。
+ * `\bxWithArgFullExpd{<引数1>}\do{<置換テキスト>}`
+ * `\bxWithArgsFullExpd{<引数1>}{<引数2>}...\do{<置換テキスト>}`
+ `\bxWithArgsExpd` と同様だが、一回展開でなく完全展開する点が
+ 異なる。
+ * `\bxChompComma<命令>`
+ `<命令>` の 置換テキストの先頭が `,` の場合、それを削除したもので
+ 再定義する。
+ * `\bxAssign<代入文>\relax`
+ 代入を行った後、代入文の後ろにゴミがないかを判定しその結果を
+ スイッチ `\ifbxOk` に返す。
+ * `\bxCheckMA<テキスト>\bxEndCheckMA`
+ `\edef` 中ではこの部分がエラーを出す命令に展開される。
+
+#### TeX エンジン判別
+
+ * `\bxEngineTypeX` [整数定数]
+ 1=pTeX拡張; 2=XeTeX拡張; 3=Omega拡張; 0=以上に該当せず
+ * `\bxEngineTypeY` [整数定数]
+ 1=eTeX拡張; 3=pdfTeX拡張; 5=LuaTeX拡張; 0=以上に該当せず
+ ※現在の LuaTeX は X/Y=0/5 となる。
+ ※upTeX か否かの判定は ifptex パッケージを用いる。
+
+#### Babel 関係
+
+ * `\bxAtBeginDocumentBabel{<テキスト>}`
+ Babel 読込時にのみ実行される begin-document 時のフック。
+ * `\bxTrivLangDef{<言語名>}`
+ 中身(キャプション定義等)が空の Babel 言語オプションを生成する。
+
+#### 数値の書式化出力
+
+ * `\bxToHexTwo{<整数>}` [%02X 形式; 0x00~FF]
+ * `\bxToHexThree{<整数>}` [%03X 形式; 0x000~FFF]
+ * `\bxToHexFour{<整数>}` [%04X 形式; 0x0000~FFFF]
+ * `\bxToHexFive{<整数>}` [%05X 形式; 0x00000~FFFFF]
+ * `\bxToHexFiveX{<整数>}` [%05X 形式; 0x00000~FFFFF ※1]
+ * `\bxToHexEight{<整数>}` [%08X 形式; 0x00000000~7FFFFFFF]
+ * `\bxToHexTiny{<整数>}` [%X 形式; 0x0~FF]
+ * `\bxToHexSmall{<整数>}` [%X 形式; 0x0~7FFF]
+ * `\bxToHexUC{<整数>}` [%04X 形式; 0x0000~10FFFF ※2]
+ 16 進表記を `\bxHex` に返す。UC は 4~6 桁での表記。
+ ※1 0xFFFFF を超える場合は `FFFFF` になる
+ ※2 XeTeX/LuaTeX/upTeX の場合、`\char` が可能な範囲。
+ * `\bxToDecFour{<整数>}` [%04d 形式; 0000~9999]
+ * `\bxToDecFive{<整数>}` [%05d 形式; 00000~99999]
+ ゼロ付の 10 進表記を `\bxHex` に返す。
+
+#### 符号値による入力
+
+ * `\bxCodeValueSeq\制御綴{<符号値>,...} [16進]`
+ * `\bxCodeValueSeqD\制御綴{<符号値>,...} [10進]`
+ 各々の `<符号値>` を解釈した結果を `\bxUcv` に代入してマクロ
+ `\制御綴` を呼び出す。解釈方法はそれぞれ `\Ux` と `\AJ` 命令の
+ 解説にある通り。
+ * `\bxUHex{<コード値16進表記>}`
+ bxutf8 が構成する内部表現。用いる機能は `\Ux` と同じ。
+ * `\bxUInt{<整数>}`
+ bxutf8x が構成する内部表現。用いる機能は `\Ux` と同じ。
+
+#### 文字列操作
+
+ * `\bxToLower{<文字列>} [小文字]`
+ * `\bxToUpper{<文字列>} [大文字]`
+ `<文字列>` を小文字/大文字に変換したものを `\bxRes` に返す。
+
+#### Special 出力
+
+ * `\bxDocumentSpecial{<テキスト>}`
+ `\AtBeginDvi` を普通に用いて DVI の先頭部に special を出力する。
+ * `\bxDocumentSpecialUrgent{<テキスト>}`
+ DVI のなるべく先頭(他の special より前)の位置に special を出力。
+
+#### Safe caret 機能
+
+ * `\bxBDHookSafeCaret`
+ safe caret 機能に関する begin-document フック。
+ * `\bxEnableSafeCaret`
+ safe caret 機能を使用可能にしておく。すなわち、プレアンブルでこの
+ 命令が呼ばれなかった場合、safe caret は使用不可になる。実際にある
+ 状況で safe caret を有効にするには、`\bx@acr@normcaret` を「その
+ 状況での本来の `^` の動作」に定義した上で `^` をアクティブにする
+ 必要がある。
+ ※ ユーザ命令の `\safecaret` はこの命令を実行した上で、verbatim
+ と babel での適切な safe caret 処理を有効化している。
+
+#### Shadow map 機能
+
+Shadow map とは「16 ビット整数 → 整数」の写像を TFM として表現
+したもの。
+
+ * `\bxUseShadowMap\制御綴{<TFM名>}`
+ `\制御綴` を指定の TFM から生成される shadow map として定義。
+ * `\bxMap\制御綴`
+ 整数レジスタ `\bxUcv` の現在の値に shadow map を適用し、その結果を
+ `\bxUcv` に代入する。
+
+#### モジュール名
+
+ここでいう「モジュール」とは文書クラス(.cls)・パッケージ(.sty)・
+定義ファイル(.def)の総称。「モジュール読込中に発生するエラーを出力
+するためのマクロ」を別のモジュール内で定義する際に、呼び出した側の
+モジュール名をメッセージ中に出力させるための仕組み。
+
+ * `\bxSetModuleName{<文字列>}`
+ 現在のモジュールに対するモジュール名を設定する。
+ * `\bxModuleName`
+ 現在のモジュールに対するモジュール名に展開される。モジュール名が
+ 設定されていない場合はファイルのベース名を代わりに使う。
+ * `\bxError` [`\PackageError` に対応]
+ * `\bxWarning` [`\PackageWarning` に対応]
+ * `\bxWarningNoLine` [`\PackageWarningNoLine` に対応]
+ * `\bxInfo` [`\PackageInfo` に対応]
+ 現在のモジュール名をパッケージ名として `\PackageError` 等を呼ぶ。
+
+#### keyval の拡張
+
+(xkeyval が普及した今では非推奨かも…)
+
+keyval の `\setkeys` について、「未定義のキーをエラーにせず、代わりに
+未定義のキーのリストを作成する」という変種を提供する。この機能は
+xkeyval で `\setkeys*` として提供されている。しかし xkeyval が利用
+できない環境に対応するために keyval へのパッチとして実現すること
+にする。しかし、xkeyval はこのパッチを無効化してしまう。従って
+xkeyval.sty が存在するかに応じて処理を分けることにした。
+
+ * `\bxPrepareSetKeysSafe`
+ `\bxSetKeysSafe` を使用可能にする。
+ ※ xkeyval.sty が存在するかを判定し、存在すれば読み込む。
+ そして `\bxSetKeysSafe` の実現方法をこの段階で確定させる。
+ * `\bxSetKeysSafe{<ファミリ>}{<テキスト>}`
+ `\setkeys` と同様だが、未定義のキーをエラーとせず、代わりに
+ 未定義のキーからなるコンマ区切りのリストを `\bxRestKeys` に
+ 代入する。
+
+#### ドライバ判別
+
+以下の説明で「先天的な」ドライバとは、TeX 実行時に使用が判定できる
+もの(事実上「TeX エンジンがドライバを兼ねるもの」に等しい)を指し、
+例えば pdfTeX、XeTeX、LuaTeX が該当する。
+
+ * `\bxDriverList`
+ (後天的な)ドライバ名のリスト。
+ ※ 現状では「`dvips,dvipdfmx,dviout`」。
+ * `\bxDriverInherent`
+ 先天的なドライバ名(未定義なら空)に展開される。
+ * `\bxSetDriver[<ファイル名>]{<ドライバ名>}`
+ 指定のファイル名をもつモジュールに対するドライバ名を指定する。
+ `<ファイル名>` がない場合は現在のモジュールに対する設定。
+ * `\bxDriver`
+ 現在のモジュールに対するドライバ名に展開される。未定義ならば
+ `default` を返す。
+ * `\bxDriverSpecifiedFor{<ファイル名>}`
+ `\bxDriver` と同様だが、指定のファイル名をもつモジュールに
+ 対する設定を返す。
+ * `\bxDefineDDProcess{<名前>}{<ドライバ名>}<TeXマクロ定義記述*>`
+ ドライバ依存マクロを定義する。
+ * `\bxDefineDDProcessDefault{<名前>}`
+ `<ドライバ名>` が `default` の `\bxDefineDDProcess`。
+ * `\bxDoDDProcess{<名前>}`
+ ドライバ依存マクロを実行する。
+ * `\bxDeclareDriverOptions`
+ 後天的なドライバ名の各々について、「`\bxSetDriver{ドライバ名}`
+ を呼ぶ」という動作のパッケージ(クラス)オプションを定義する。
+
+bxtoolbox パッケージ ― 非 e-TeX エンジンでの etoolbox の模倣
+-------------------------------------------------------------
+
+本パッケージの主な目的は、etoolbox パッケージの一部の機能を e-TeX 拡張を
+持たないエンジンで利用可能にすることである。(pTeX エンジンの e-TeX 拡張
+が普及し出したのは 2010 年頃である。)
+
+なお、本パッケージを e-TeX 拡張をもつエンジンで読み込んだ場合は、本物の
+etoolbox が読み込まれてその機能が使われる。
+
+### etoolbox 互換命令
+
+ここに挙げる命令は、etoolbox の命令の複製であり、それぞれ、命令名の頭の
+`bx` を取って先頭を小文字に変えた名前(`\bxCsdef`→`\csdef`)の etoolbox
+の命令に対応する。e-TeX 拡張のエンジンで動作する場合は実際に etoolbox を
+読み込んでそれの命令のエイリアスとするが、そうでない場合は自前の実装を
+用いる。
+
+各命令の詳細については etoolbox のマニュアルを参照されたい。etoolbox の
+元の命令と仕様が異なる部分にのみ説明を付している(この説明は e-TeX 非拡張
+のエンジンでの動作時のみ当てはまることに注意)。
+
+(頑強な命令の定義)
+
+ * `\bxNewrobustcmd[*]<LaTeXマクロ定義記述>`
+ * `\bxRenewrobustcmd[*]<LaTeXマクロ定義記述>`
+ * `\bxProviderobustcommand[*]<LaTeXマクロ定義記述>`
+ * `\bxRobustify{<命令>}`
+ e-TeX の \protected の代わりに LaTeX の protect 処理を用いる。結果
+ 的に \DeclareRobustCommand と同じ処理が使われる。
+
+(メイン文書コンパイル時フック)
+
+ * `\AfterPreamble{<テキスト>}`
+ * `\AtEndPreamble{<テキスト>}`
+ * `\AfterEndPreamble{<テキスト>}`
+ * `\AfterEndDocument{<テキスト>}`
+
+(マクロ定義)
+
+ * `\csdef<TeXマクロ定義記述*>`
+ * `\csgdef<TeXマクロ定義記述*>`
+ * `\csedef<TeXマクロ定義記述*>`
+ * `\csxdef<TeXマクロ定義記述*>`
+
+(命令の意味の操作)
+
+ * `\cslet{<命令名1>}{<命令2>}`
+ * `\letcs{<命令1>}{<命令名2>}`
+ * `\csletcs{<命令名1>}{<命令名2>}`
+ * `\bxCsuse{<命令名>}`
+ * `\undef{<命令>}`
+ * `\csundef{<命令名>}`
+ * `\bxCsshow{<命令名>}`
+ `\bxCsuse` と `\bxCsshow` は、LaTeX の protect を施しているが、
+ 動く引数の中で展開されるとエラーになる。
+
+(マクロの追記式定義)
+
+ * `\appto{<命令>}{<テキスト>}`
+ * `\gappto{<命令>}{<テキスト>}`
+ * `\eappto{<命令>}{<テキスト>}`
+ * `\xappto{<命令>}{<テキスト>}`
+ * `\csappto{<命令名>}{<テキスト>}`
+ * `\csgappto{<命令名>}{<テキスト>}`
+ * `\cseappto{<命令名>}{<テキスト>}`
+ * `\csxappto{<命令名>}{<テキスト>}`
+ * `\preto{<命令>}{<テキスト>}`
+ * `\gpreto{<命令>}{<テキスト>}`
+ * `\epreto{<命令>}{<テキスト>}`
+ * `\xpreto{<命令>}{<テキスト>}`
+ * `\cspreto{<命令名>}{<テキスト>}`
+ * `\csgpreto{<命令名>}{<テキスト>}`
+ * `\csepreto{<命令名>}{<テキスト>}`
+ * `\csxpreto{<命令名>}{<テキスト>}`
+
+(真理値変数―bool系)
+
+ * `\newbool{<名前>}`
+ * `\providebool{<名前>}`
+ * `\booltrue{<名前>}`
+ * `\boolfalse{<名前>}`
+ * `\setbool{<名前>}{<値>}`
+ * `\ifbool{<名前>}{<真>}{<偽>}`
+ * `\notbool{<名前>}{<真>}{<偽>}`
+
+(真理値変数―toggle系)
+
+ * `\newtoggle{<名前>}`
+ * `\providetoggle{<名前>}`
+ * `\toggletrue{<名前>}`
+ * `\togglefalse{<名前>}`
+ * `\settoggle{<名前>}{<値>}`
+ * `\iftoggle{<名前>}{<真>}{<偽>}`
+ * `\nottoggle{<名前>}{<真>}{<偽>}`
+
+(定義済判定)
+
+ * `\ifdef{<命令>}{<真>}{<偽>}`
+ * `\ifundef{<命令>}{<真>}{<偽>}`
+ * `\bxIfcsdef{<命令名>}{<真>}{<偽>}`
+ * `\bxIfcsundef{<命令名>}{<真>}{<偽>}`
+ `\bxIfcsdef` と `\bxIfcsdef` は動く引数の中で展開されるとエラーに
+ なる。
+
+### それ以外の命令
+
+種々の事情により、「etoolbox 互換用」以外の機能も含まれている。
+
+(エンジンチェック―ifトークン)
+
+ * `\ifbxineTeX`
+ * `\ifbxinpdfTeX`
+ * `\ifbxinLuaTeX`
+ * `\ifbxinOmega`
+ * `\ifbxinAleph`
+ * `\ifbxinXeTeX`
+ * `\ifbxinpTeX`
+ * `\ifbxinupTeX`
+ エンジンのチェック。これらは TeX の if-トークンである。
+
+(エンジンチェック―LaTeXテスト)
+
+ * `\bxIfineTeX{<真>}{<偽>}`
+ * `\bxIfinpdfTeX{<真>}{<偽>}`
+ * `\bxIfinLuaTeX{<真>}{<偽>}`
+ * `\bxIfinOmega{<真>}{<偽>}`
+ * `\bxIfinAleph{<真>}{<偽>}`
+ * `\bxIfinXeTeX{<真>}{<偽>}`
+ * `\bxIfinpTeX{<真>}{<偽>}`
+ * `\bxIfinupTeX{<真>}{<偽>}`
+ エンジンのチェック。これらは LaTeX 形式のテストである。(完全展開
+ 可能である。)
+
+(プリミティブifトークンのLaTeXテスト版)
+
+ * `\bxIf{<テスト>}{<真>}{<偽>}`
+ * `\bxIfcat{<テスト>}{<真>}{<偽>}`
+ * `\bxIfx{<テスト>}{<真>}{<偽>}`
+ * `\bxIfdim{<テスト>}{<真>}{<偽>}`
+ * `\bxIfnum{<テスト>}{<真>}{<偽>}`
+ TeX のプリミティブなテストを LaTeX 形式のテストにしたもの。例えば
+ 以下のようにして使う。
+ `\bxIfx{\somecs\relax}{\dotrue}{\dofalse}`
+ `\bxIfnum{\count@<3}{\dotrue}{\dofalse}`
+ (これらの命令は完全展開可能である。)
+
+(プリミティブ判定)
+
+ * `\bxIfPrimitive{<命令>}{<真>}{<偽>}`
+ * `\bxIfPrimitiveX{<命令名>}{<真>}{<偽>}`
+ `<命令>` が同名の TeX プリミティブであるかを判定する。機能としては
+ pdfTeX の `\ifpdfprimitive` と同じ。`\bxIfPrimitive` は脆弱である。
+ `\bxIfPrimitiveX` は完全展開可能(従って頑強)であるが、pdfTeX
+ 拡張の `\ifpdfprimitive` が使えない時は処理が非常に重い。
+ * `\bxIfCsPrimitive{<命令名>}{<真>}{<偽>}`
+ 引数が命令名であることを除き `\bxIfPrimitive` と同じ。
+
+(文字列化)
+
+ * `\bxDetokenize{<テキスト>}`
+ e-TeX 拡張の `\detokenize` と同じ機能で、e-TeX 拡張が有効の場合は
+ `\detokenize` のエイリアスになる。無効の場合は自前の実装を使うが、
+ 処理が非常に重い。(完全展開可能である。)
+ * `\bxStringify{<テキスト>}`
+ 完全展開して detokenize した文字列に展開する。現状では全エンジン
+ について自前の実装を使っていて処理が非常に重い。(完全展開可能。)
+
+(トークン列比較)
+
+ * `\bxIfExpToEqual{<テキスト1>}{<テキスト2>}{<真>}{<偽>}`
+ * `\bxIfExpToEqualX{<テキスト1>}{<テキスト2>}{<真>}{<偽>}`
+ 2つのテキストについて、完全展開して detokenize した結果の文字列が
+ 等しいかを判定する。機能としては pdfTeX の `\pdfstrcmp` での等価
+ 判定と同じ。`\bxIfExpToEqual` は脆弱である。`\bxIfExpToEqualX`
+ は完全展開可能だが、`\pdfstrcmp` が使えない時は処理が非常に重い。
+ * `\bxIfstrequalX{<テキスト1>}{<テキスト2>}{<真>}{<偽>}`
+ etoolbox の `\ifstrequal` と同じ機能、すなわち 2 つのテキストに
+ ついて展開せずに detokenize した結果の文字列が等しいかを判定する。
+ 元の `\ifstrequal` と異なり完全展開可能であるが、e-TeX 拡張が無効
+ の時は処理が非常に重い。
+
+(プレアンブル専用命令宣言)
+
+ * `\bxPreamble<TeXマクロ定義命令><TeXマクロ定義記述>`
+ * `\bxPreamble<LaTeXマクロ定義命令>[*]<LaTeXマクロ定義記述>`
+ `\@onlypreamble` を設定してマクロを定義する。
+ ※ 実際の動作は単に `\bxPreamble\制御綴A[*]\制御綴B` を
+ `\@onlypreamble\制御綴B \制御綴A[*]\制御綴B`
+ に置き換えているだけである。
+
+(保護付マクロ定義)
+
+ * `\bxRobustdef<TeXマクロ定義記述>`
+ * `\bxRobustgdef<TeXマクロ定義記述>`
+ * `\bxRobustedef<TeXマクロ定義記述>`
+ * `\bxRobustxdef<TeXマクロ定義記述>`
+ 保護付な命令を定義する。e-TeX 拡張が有効であれば、`\protected` を
+ 有効にし、無効であれば、LaTeX の保護機構を用いる。前に `\long` を
+ 付けられるが `\global` は不可。
+
+(その他)
+
+ * `\bxIfInMovingArg{<真>}{<偽>}`
+ いわゆる動く引数(実行が抑止された環境)であるかのテスト。実行が有効
+ である場合は、<偽> を実行したのと等価になる。実行が抑止されている
+ 場合は「無意味な代入文」の後に <真> を続けたものに展開される。この
+ 命令は、動く引数の中での使用を事前に検査してエラーを出すという目的
+ を想定している。(`\bxCheckForMovingArg` も参照。)
+
+ * `\bxMessageToken{<文字列>}{<テキスト>}`
+ `<テキスト>` の中の `#1` を制御綴 `\<文字列>` に置換したテキスト
+ を実行する。`\<文字列>` の意味は変化しない。`<テキスト>` 中で
+ パラメタ `#1` 等を使う場合は `##1` のように書く必要がある。例えば
+ 以下のように用いる。
+
+ \bxMessageToken{Hello TeX!}{\def\dohello{\do#1}}
+
+ `\dohello` の定義は `\do` の後に制御綴「`\Hello TeX!`」が続いた
+ ものになる。
+
+ * `\bxCheckForMovingArg{<テキスト>}`
+ 動く引数の中であるかの確認。動く引数の中でない場合は `<テキスト>`
+ が実行されるが、ある場合は次のように「未定義命令の形」でエラーが
+ 表示される。ここでは、`\xx@prepare` の中で `\bxCheckForMovingArg`
+ のテストを行っているとする。
+
+ ! Undefined control sequence.
+ <argument> \ ERROR: Use in wrong place!
+ <*> \protected@edef\xx@example{\xx@prepare
+ \xx@tmpa}
+
+ ※ 実行が抑止されている場合は `\errmessage` プリミティブも実行
+ されないので、普通にエラー表示ができないのである。
+ ※ `\bxIfInMovingArg` を利用しているので、そこに述べられている
+ ように、動く引数である場合の展開結果にはゴミが残る。
+
+zxbase パッケージ ― XeTeX 用基礎ライブラリ
+-------------------------------------------
+
+作者(ZR)の制作する他のパッケージで必要な、XeTeX 特有の機能を提供する。
+
+現状では、本パッケージに公開の機能は存在しない。
+
+更新履歴
+--------
+
+ * Version 1.1 〈2017/05/29〉
+ - 内容の整理。
+ - 一部の機能を非推奨にした。
+ * Version 1.0 〈2013/04/29〉
+ - ほぼ全面的な書き直し。
+ * Version 0.5 〈2010/06/15〉
+ - bxbase: `\JI`/`\KI` を追加。
+ - bxbase: `\dvipdfmxmapline`/`\dvipdfmxmapfont` を追加。
+ - bxutf8: BMP 外の符号値への対応。
+ * Version 0.4a 〈2009/11/16〉
+ - bxbase で `\UI`/`\Ux` を zxjatype と、`\AJ` を zxotf
+ と連携させた。
+ - zxbase パッケージを追加。
+ * Version 0.4 〈2009/07/05〉
+ - PXbase の v0.4 に合わせた改訂。
+ * Version 0.3 〈2008/04/06〉
+ - bxutf8x を追加。
+ - bxutf8 のバグを修正。
+ - bxbase でも pxbase の命令 `\recordpapersize` を使用可能にした。
+ * Version 0.2 〈2008/03/28〉
+ - 最初の公開版。
+
+--------------------
+Takayuki YATO (aka. "ZR")
+https://github.com/zr-tex8r
diff --git a/Master/texmf-dist/doc/latex/bxbase/README.md b/Master/texmf-dist/doc/latex/bxbase/README.md
new file mode 100644
index 00000000000..7daab0f13bf
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/bxbase/README.md
@@ -0,0 +1,133 @@
+BXbase Package Bundle
+=====================
+
+LaTeX: Support library for other BX packages
+
+The main purpose of this bundle is to serve as underlying library
+to make work other packages created by the same author (their names
+start with “BX” or “PX”).
+
+However bxbase package contains a few user-level commands and is of
+some use by itself.
+
+### System Requirements
+
+ * TeX format: LaTeX.
+ * TeX engine: Any engine.
+ * DVI-ware (in DVI output): Anything.
+
+### Package content
+
+ * `bxbase.sty`: the ‘bxbase’ package
+ * `bxbase.def`: a submodule of ‘bxbase’
+ * `bxtoolbox.sty`: the ‘bxtoolbox’ package
+ * `bxtoolbox.def`: a submodule of ‘bxtoolbox’
+ * `bxtoolbox-ext.def`: a submodule of ‘bxtoolbox’
+ * `bxtoolbox-ja.def`: a submodule of ‘bxtoolbox’
+ * `bxutf8.def`: the ‘bxutf8’ input encoding definition
+ * `bxutf8x.def`: the ‘bxutf8x’ input encoding definition
+ * `zxbase.sty`: the ‘zxbase’ package
+ * `bxbase-ja.pdf`: the user manual for the ‘bxbase’ (in Japanese)
+ * `bxbase-ja.tex`: the source file of `bxbase-ja.pdf`
+
+### Installation
+
+In a system compliant to TDS 1.1, move the files as follows:
+
+ - `*.sty`, `*.def` → $TEXMF/tex/latex/BXbase
+
+And rehash your TEXMF trees if necessary.
+
+### License
+
+This package is distributed under the MIT License.
+
+bxbase Package ― The base library
+----------------------------------
+
+This package provides many package-level features, which are required by
+other packages created by the same author.
+
+It also contains some user-level commands, but most of such commands have
+been deprecated since v1.1, except a few which are related to inputting
+Japanese text.
+
+Unfortunately the documentation is available only in Japanese. (However,
+those unfamiliar with the Japanese language will probably have no need to
+load this package directly.)
+
+bxtoolbox Package ― To emulate etoolbox on non-e-TeX
+-----------------------------------------------------
+
+The main goal of this package is to provide part of the functions of the
+[etoolbox] package for TeX engines without e-TeX extension. (Note that
+TeX users in Japan have long used the pTeX engine for writing Japanese,
+and e-TeX extention for the engine did not appeared until around 2010.)
+
+[etoolbox]: https://www.ctan.org/pkg/etoolbox
+
+Note that when this package is loaded in e-TeX engines, then it loads
+the real etoolbox and uses the functions of that package.
+
+### e-TeX functions provided by this package
+
+Below is the list:
+
+ \AfterPreamble \AtEndPreamble \AfterEndPreamble
+ \AfterEndDocument
+ \csdef \csgdef \csedef \csxdef
+ \cslet \letcs \csletcs \undef \csundef
+ \appto \gappto \eappto \xappto
+ \csappto \csgappto \cseappto \csxappto
+ \preto \gpreto \epreto \xpreto
+ \cspreto \csgpreto \csepreto \csxpreto
+ \newbool \providebool \booltrue \boolfalse
+ \setbool \ifbool \notbool
+ \newtoggle \providetoggle \toggletrue \togglefalse
+ \settoggle \iftoggle \nottoggle
+ \ifdef \ifundef
+ \ifstrequal \ifstrempty
+
+### “Fakes” provided by this package
+
+These commands have a name of the original command prefixed by “bx”,
+that is, `\bxZzz` instead of `\zzz`. Some come in two versions: `\bxZzz`
+works as `\zzz` but is lack of expandability `\zzz` has, whereas `\bxZzzX`
+is expandable as `\zzz` is but otherwise flawed.
+
+ * `\bxNewrobustcmd`: Uses LaTeX-protect instead of `\protected`.
+ * `\bxRenewrobustcmd`: Ditto.
+ * `\bxProviderobustcmd`: Ditto.
+ * `\bxRobustify`: Ditto.
+ * `\bxCsuse`: Forbidden in moving arguments.
+ * `\bxCsuseX`: Suffering from `\relax`’ifying.
+ * `\bxCsshow`: Forbidden in moving arguments.
+ * `\bxIfcsdef`: Forbidden in moving arguments.
+ * `\bxIfcsundef`: Forbidden in moving arguments.
+ * `\bxIfcsundefX`: Suffering from `\relax`’ifying.
+
+Note: On e-TeX extended engines, these commands are simply aliases to the
+real commands of etoolbox.
+
+zxbase Package ― The base library for XeTeX
+--------------------------------------------
+
+This package provides XeTeX-specific features, which are required by
+other packages created by the same author.
+
+For the present this package contains no public features.
+
+Revision History
+----------------
+
+ * Version 1.1 〈2017/05/29〉
+ * Version 1.0 〈2013/04/29〉
+ * Version 0.5 〈2010/06/15〉
+ * Version 0.4a 〈2009/11/16〉
+ * Version 0.4 〈2009/07/05〉
+ * Version 0.3 〈2008/04/06〉
+ * Version 0.2 〈2008/03/28〉
+
+--------------------
+Takayuki YATO (aka. "ZR")
+https://github.com/zr-tex8r
diff --git a/Master/texmf-dist/doc/latex/bxbase/bxbase-ja.pdf b/Master/texmf-dist/doc/latex/bxbase/bxbase-ja.pdf
new file mode 100644
index 00000000000..8ce551a1522
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/bxbase/bxbase-ja.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/bxbase/bxbase-ja.tex b/Master/texmf-dist/doc/latex/bxbase/bxbase-ja.tex
new file mode 100644
index 00000000000..aac6d387771
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/bxbase/bxbase-ja.tex
@@ -0,0 +1,108 @@
+% 文字コードは UTF-8
+% uplatex で組版する
+\documentclass[a4paper,uplatex]{jsarticle}
+\usepackage{shortvrb}
+\MakeShortVerb{\|}
+\newcommand{\PkgVersion}{1.1}
+\newcommand{\PkgDate}{2017/05/29}
+\newcommand{\Pkg}[1]{\textsf{#1}}
+\newcommand{\Meta}[1]{$\langle$\mbox{}#1\mbox{}$\rangle$}
+\newcommand{\Note}{\par\noindent ※}
+\newcommand{\Means}{~:\quad}
+\providecommand{\pTeX}{p\TeX}
+\providecommand{\upTeX}{u\pTeX}
+\providecommand{\pLaTeX}{p\LaTeX}
+\providecommand{\upLaTeX}{u\pLaTeX}
+%-----------------------------------------------------------
+\begin{document}
+\title{\Pkg{bxbase} パッケージ\\
+(ユーザ命令の解説)}
+\author{八登崇之\ (Takayuki YATO; aka.~``ZR'')}
+\date{v\PkgVersion \quad[\PkgDate]}
+\maketitle
+
+%===========================================================
+\section{パッケージの読込}
+
+|\usepackage| で読み込む。オプションは無い。
+\begin{quote}\small\begin{verbatim}
+\usepackage{bxbase}
+\end{verbatim}\end{quote}
+
+\Note 本パッケージのライブラリとしての機能は特定の
+エンジンやDVIウェアに依存しないが、以下に述べる命令に
+ついては必ずしもそうでないことに注意。
+
+%===========================================================
+\section{機能}
+
+%-------------------
+\subsection{符号値による文字入力}
+
+\begin{itemize}
+\item |\Ux{|\Meta{コード値}|,...}|\\
+ |\UI{|\Meta{<コード値>}|,...}|\Means
+Unicode コード値による入力を行う。
+|\Ux| は欧文用、|\UI| は和文用
+(I は Ideographic の意味)。
+コード値は以下の形式で表す。
+コンマで区切って複数文字入力できる。
+\begin{itemize}
+\item \Meta{16進数}\Means |A72C|, |02000B|, |1bd| 等。
+\item |+|\Meta{10進数}\Means |+254|, |+0937| 等。
+\item |'|\Meta{8進数}\Means |'376|, |'1651| 等。
+\end{itemize}
+
+Unicode 文字の出力には次の順番で利用可能な最初の機能を用いる。
+(|\UI| の場合 3) を飛ばす。)
+\begin{enumerate}
+\item[1)] \Pkg{zxjatype}パッケージ。
+この場合、その機構に従って出力される。
+すなわち |\UI| は必ず和文フォントで出力し、
+|\Ux| は和文/欧文切替の対象となる。
+\item[2)] XeTeXのUnicode出力。
+\item[3)] (|\Ux| のみ)\Pkg{bxucs}パッケージ。
+\item[4)] {\upTeX}の和文Unicode出力。
+\item[5)] \Pkg{UTF}/\Pkg{OTF}パッケージ。
+\item[6)] \Pkg{ums}/\Pkg{bxsuika}パッケージ。
+\end{enumerate}
+どれも使えない場合は「16進表現による代替表現」になる。
+
+\item |\AJ{|\Meta{コード値}|,...}|\Means
+Adobe-Japan1のコード値による入力を行う。
+コード値は10進数で指定する。
+出力には次の順番で利用可能な最初の機能を用いる。
+\begin{enumerate}
+\item[1)] \Pkg{zxotf}パッケージ。
+\item[2)] \Pkg{UTF}/\Pkg{OTF}パッケージ。
+\end{enumerate}
+どれも使えない場合は代替表現になる。
+
+\item |\JI{|\Meta{コード値}|,...}|\Means
+いわゆる「JISコード」(JIS~X~0208のGL表現)
+のコード値による入力を行う。
+コード値指定の方法は |\Ux| と同じ。
+出力には{(u)\pTeX}のJISコード和文出力の機能を使う。
+使えない場合は代替表現になる。
+
+\item |\KI{|\Meta{コード値}|,...}|\Means
+いわゆる「区点コード」のコード値による入力を行う。
+コード値指定は「RRCC」(RRは区番号、CCは点番号を10進2桁で表したもの)
+の形式で指定する。
+出力には{(u)\pTeX}のJISコード和文出力の機能を使う。
+使えない場合は代替表現になる。
+
+\item |\bxUx| / |\bxUI| / |\bxAJ| / |\bxJI| / |\bxKI|\Means
+|\Ux| 等は非常に短い名前なので他のパッケージと衝突する恐れがあり、
+そこでこのパッケージでは既に同名の命令がある場合は上書きしない
+ようにしている。
+|\bxUx| 等はそれぞれ |\Ux| 等と同じで、
+先のような場合にも常に使える。
+
+\end{itemize}
+
+なお、このパッケージは\Pkg{bxutf8}の為のドライバ(|\bxUHex|)
+および\Pkg{bxutf8x}の為のドライバを |\Ux| に相当するものに設定する。
+
+%===========================================================
+\end{document}