1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227
|
PXbase パッケージバンドル
=========================
LaTeX: 他の PX パッケージのためのサポートライブラリ
本バンドルの主な目的は、作者(ZR)の制作する他の pTeX 用パッケージ(名前
が“PX”で始まる)が依拠するライブラリ機能の提供である。
その他に、本バンドルには以下のユーザ・開発者用パッケージが含まれる。
* pxbabel パッケージ: Babel の機構に基づく CJK 間のフォント切替
* upkcat パッケージ: 文字指定による kcatcode 操作
### 前提環境
* TeX フォーマット: LaTeX
* TeX エンジン: pTeX、upTeX(派生を含む)
* DVI ウェア(DVI 出力時): 不問
※upkcat パッケージについては当該の節を参照。
### 構成物
* `pxbase.sty`: pxbase パッケージ
* `pxbase.def`: サブモジュール(の残骸)
* `pxbabel.sty`: pxbabel パッケージ
* `pxbasenc.def`: サブモジュール
* `pxjsfenc.def`: サブモジュール
* `pxbsjc.def`: pxbase 用の補助ファイル
* `pxbsjc1.def`: pxbase 用の補助ファイル
* `upkcat.sty`: upkcat パッケージ
※種々の事情により複雑になっている(例えば、`pxbsjc.def` は実際には bxbase
パッケージから読まれている、`pxjsfenc.def` は BXbase/PXbase 内のどの
パッケージからも参照されない、など)が、他のパッケージの動作を確保する
ため敢えて 0.5 版のファイル構成を保っている。
### インストール
TDS 1.1 に準拠するシステムの場合、以下のようにファイルを移動する:
- `*.sty`, `*.def` → $TEXMF/tex/platex/PXbase
この後必要に応じて mktexlsr を実行する。
### ライセンス
本パッケージは MIT ライセンスの下で配布される。
pxbase パッケージ ― pTeX 用(旧)基礎ライブラリ
------------------------------------------------
他の PX シリーズのパッケージの下請けの役割も果たしていたが、0.9 版において
[bxbase パッケージ]に統合された。今では、単に bxbase を読むだけである。
[bxbase パッケージ]: https://www.ctan.org/pkg/bxbase
### ユーザ向け機能
※bxbase の方で述べていないものを挙げる。(FIXME:bxbase に移すべき。)
※旧版のドキュメントに載っていたのに、ここにも bxbase の方にも載って
いない機能は、非推奨の扱いになったということ。
* `\infojenc`: 漢字コードの情報を次の形で端末とログに出力する。
Kanji encoding: source=UTF8 internal=SJIS;
* `\safecaret`: 一部の箇所で TeX エスケープ形式(`^^ab`)の解釈が
失敗するのを回避する。詳細は「TeX エスケープ形式(`^^ab`)の処理」
の節を参照。
#### utf8x 入力エンコーディングの fasterror 設定
ucs パッケージ(バンドル)が提供する「utf8x 入力エンコーディング」では、
パッケージで未定義の Unicode 文字が入力された場合エラーになる。その時の
エラーメッセージ中に該当の文字の Unicode 名を出力するが、この際に高位
バイトを含むファイル(テキスト情報をハフマン符号で圧縮したものと思われる)
を用いるので、pTeX では処理に失敗してしまう。そこで本パッケージでは、ucs
パッケージが読み込まれた場合(utf8x が指定された時も含む)に上記の機能を
抑止するオプション `fasterror` を常に有効にする。
### TeX エスケープ形式(`^^ab`)の処理
現在の pTeX では入力漢字コードが UTF-8 の時に JIS X 0208 に含まれない
文字をエスケープ形式(`^^ab`)の UTF-8 バイト列に変換する。通常はこの
形式は該当のバイト列と等価の解釈をされる。ところがここで `^` の catcode
が本来の値 7 から変更されているとこの処理が失敗してしまう。具体的には
次のような場合が該当する。
* Babel の一部の言語(esperanto 等)を使用した場合。
* verbatim や類似の環境の中。
`\safecaret` 命令をプレアンブルで実行した場合、これらの場合でエスケープ
形式の連続する出現をバイト列と解釈するようにする。
### 開発者向け機能
(使用中の漢字コード系の情報表示)
* `\bxInternalJaEncoding`:[暗黙文字トークン] 内部漢字コードを表す。
- `s`: シフトJIS
- `e`: EUC
- `u`: Unicode (upTeX)
* `\bxInputJaEncoding`:[暗黙文字トークン] 入力 TeX ソースの漢字
コードを表す。
- `s`: シフトJIS
- `e`: EUC
- `u`: UTF-8
- `a`: 自動判定が有効
* `\pxUpScale`:[マクロ] 和文の標準フォントに対する和文スケール。
`\Cjascale` が設定済の場合はその値、それ以外で文書クラスが和文標準
または jsclasses のものの場合は、当該クラスの既定のスケール値。
pxbabel パッケージ ― Babel の機構に基づく CJK 間のフォント切替
---------------------------------------------------------------
詳細についてはマニュアル `pxbabel.pdf` を参照されたい。
upkcat パッケージ ― 文字指定による kcatcode 操作
-------------------------------------------------
※ 本パッケージはパッケージ開発者向けのものである。
文字を指定して(それが属するブロックの)kcatcode を操作する場合
\kcatcode`<文字>
の形式を使うことになるが、その際にもしその文字の現在の kcatcode が 15
である場合は文字がバイト列とみなされるので、この形式が使えない。この
パッケージはそのような場合でも使用可能な、kcatcode の参照・変更の命令
を提供する。なお、文書作成者はこちらではなく [pxcjkcat パッケージ]を
用いるべきである。
[pxcjkcat パッケージ]: https://www.ctan.org/pkg/pxcjkcat
### 前提環境
* TeX フォーマット: plain、LaTeX
* TeX エンジン: upTeX(派生を含む)
* DVI ウェア(DVI 出力時): 不問
### パッケージ読込
plain upTeX の場合:
\input upkcat.sty
upLaTeX の場合:
\usepackage{upkcat}
### 機能
* `\getkcatcode{<文字>}`: `<文字>` の現在の kcatcode の値(15~19)
をマクロ `\thekcatcode` に文字列として返す。
* `\setkcatcode{<文字>}{<値>}`: `<文字>` の kcatcode の値を `<値>`
に設定する。
更新履歴
--------
* Version 1.1b 〈2017/07/03〉
- upLaTeX で japanese-otf と併用した場合に対応。
- バグ修正。
* Version 1.1a 〈2017/06/19〉
- バグ修正。
* Version 1.1 〈2017/05/29〉
- 内容の整理。
※バージョンの値は BXbase と合致させて 1.1 版とした。
- 一部の機能を非推奨にした。
* Version 0.5i 〈2017/05/04〉 ― CTAN 公開版
- 0.5 版から ifuptex と pxcjkcat を削除したもの。
※ifptex パッケージバンドルを CTAN に登録するための経過措置。
* Version 0.9b 〈2012/08/19〉
- ifuptex パッケージは「ifptex バンドル」に移動したため削除。
- pxcjkcat パッケージは専用のバンドルに移動したため削除。
* Version 0.5 〈2010/06/15〉
- pxbase: `\JI`/`\KI` を追加。
- pxbase: `\dvipdfmxmapline`/`\dvipdfmxmapfont` を追加。
* Version 0.4a 〈2010/02/07〉
- pxcjkcat: upTeX v0.29 における kcatcode のブロック分割の変更に
対応。それに伴い `ccv1`, `ccv2` オプションを新設。
- pxcjkcat: `\cjkcategory` の第 1 引数に文字そのものを指定できる
ようにした。
- pxcjkcat: なぜかモード設定時の「Enclosed CJK Letters and Months」
(`cjk07`)の kcatcode の設定値が 16 になっていた。upTeX 既定値に
合わせて 18 に修正した。
* Version 0.4 〈2009/07/05〉
- safe caret 機構のコード(`\safecaret` の実装の核心)を pxbase.def
に移動(BXbase と共通に)。
- Babel に加えて verbatim でも safe caret 機構が働くようにする。
ただし「pxbase は単に読み込むだけでは他人のコードを書き換えない」
という指針があるので、`\safecaret` を実行しないと有効にならない。
- pxbabel は中で `\safecaret` を呼ぶので、pxbabel を読み込むと safe
caret は自動的に有効になる。
- pxbabel でエンコーディングを `J20` 等に変えた場合に OTF パッケージ
の `\CID` が動かなくなるのを修正。
* Version 0.3 〈2008/04/06〉
- pxbabel に safe caret 機構を追加。
* Version 0.2b 〈2008/03/28〉
pxbabel に `\UTF` の切替を追加。
* Version 0.2a 〈2008/03/18〉
pxbabel, pxbase のバグ取り。
pxbabel の説明書をまだ書いていないことに気づいた ;-) 慌てて作成。
* Version 0.2 〈2008/03/14〉
最初の公開版。
-------------------------------------------
Takayuki YATO (aka. "ZR")
https://github.com/zr-tex8r
|