From 8b4c4dba6b23ddbfe20886ac64828e1a19fefa43 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 13 Jan 2013 23:06:54 +0000 Subject: bxbase (13jan13) git-svn-id: svn://tug.org/texlive/trunk@28825 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/bxbase/00README | 47 ++ Master/texmf-dist/doc/latex/bxbase/LICENSE | 24 + Master/texmf-dist/doc/latex/bxbase/README | 472 +++++++++++++++ Master/texmf-dist/tex/latex/bxbase/bxbase.def | 791 +++++++++++++++++++++++++ Master/texmf-dist/tex/latex/bxbase/bxbase.sty | 70 +++ Master/texmf-dist/tex/latex/bxbase/bxucs.sty | 109 ++++ Master/texmf-dist/tex/latex/bxbase/bxutf8.def | 168 ++++++ Master/texmf-dist/tex/latex/bxbase/bxutf8x.def | 80 +++ Master/texmf-dist/tex/latex/bxbase/zxbase.sty | 151 +++++ Master/tlpkg/bin/tlpkg-ctan-check | 2 +- Master/tlpkg/tlpsrc/bxbase.tlpsrc | 0 Master/tlpkg/tlpsrc/collection-langcjk.tlpsrc | 1 + 12 files changed, 1914 insertions(+), 1 deletion(-) create mode 100644 Master/texmf-dist/doc/latex/bxbase/00README create mode 100644 Master/texmf-dist/doc/latex/bxbase/LICENSE create mode 100644 Master/texmf-dist/doc/latex/bxbase/README create mode 100644 Master/texmf-dist/tex/latex/bxbase/bxbase.def create mode 100644 Master/texmf-dist/tex/latex/bxbase/bxbase.sty create mode 100644 Master/texmf-dist/tex/latex/bxbase/bxucs.sty create mode 100644 Master/texmf-dist/tex/latex/bxbase/bxutf8.def create mode 100644 Master/texmf-dist/tex/latex/bxbase/bxutf8x.def create mode 100644 Master/texmf-dist/tex/latex/bxbase/zxbase.sty create mode 100644 Master/tlpkg/tlpsrc/bxbase.tlpsrc diff --git a/Master/texmf-dist/doc/latex/bxbase/00README b/Master/texmf-dist/doc/latex/bxbase/00README new file mode 100644 index 00000000000..d1b0c766c2f --- /dev/null +++ b/Master/texmf-dist/doc/latex/bxbase/00README @@ -0,0 +1,47 @@ + +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: + +\DeclareFontFamily{T1}{fsch}{} +\DeclareFontShape{T1}{fsch}{m}{n}{<->zfschr8t}{} + +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: + +\USFDeclareFontShape{fsch}{00-05,1D-1E,20-25,27,2C,A7,F1-F3,FB,FE-FF}{ + \USFShape{m}{n}{<->zfschr9z-#1}{} +} + + + +bxutf8.def: -> \bxus@uc +bxutf8s.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 new file mode 100644 index 00000000000..15954156886 --- /dev/null +++ b/Master/texmf-dist/doc/latex/bxbase/LICENSE @@ -0,0 +1,24 @@ +$BK\%=%U%H%&%'%"$O(B MIT $B%i%$%;%s%9$N2<$GG[I[$5$l$^$9!#Cx:n8"$O:nZ$G$9!#(B + +The MIT License + +Copyright (c) 2009 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 +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: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +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. diff --git a/Master/texmf-dist/doc/latex/bxbase/README b/Master/texmf-dist/doc/latex/bxbase/README new file mode 100644 index 00000000000..09fc3a78597 --- /dev/null +++ b/Master/texmf-dist/doc/latex/bxbase/README @@ -0,0 +1,472 @@ +================================================== +== BXbase バンドル v0.5 <2010/06/15> == +== by「ZR」(八登 崇之/Takayuki YATO)== +== == +================================================== +(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{}{} + 現在の \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{} + 命令語 \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{<シリーズ>}{<シェープ>}{}{<初期化>} + (必要なだけ \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/tex/latex/bxbase/bxbase.def b/Master/texmf-dist/tex/latex/bxbase/bxbase.def new file mode 100644 index 00000000000..1488f6fa1c4 --- /dev/null +++ b/Master/texmf-dist/tex/latex/bxbase/bxbase.def @@ -0,0 +1,791 @@ +% +% bxbase.def +% + +% Note: bxbase.def and pxbase.def provide same set of functionality. +% To avoid version clash, when a version of one of them is loaded, +% load of an older version of the other is aborted. + +%%%% stuffs read when \input'ed +\ifx\bxbaseOk\undefined +\bgroup +\catcode`\@=11 +\gdef\bx@defextension{def} +\gdef\bx@ver@#1{\expandafter\expandafter\expandafter\@parse@version + \csname ver@#1.\@currext\endcsname//00\@nil} + %% \bxInputDefFile{} +\gdef\bxInputDefFile#1{\@onefilewithoptions{#1}[][]\bx@defextension} + %% \bxCheckCPart{} +\gdef\bxCheckCPart#1{% + \@ifl@aded\@currext{#1}{% + \ifnum\bx@ver@{#1}>\bx@ver@\@currname \expandafter\endinput\fi}{}} +\egroup +\let\bxbaseOk=t +\bxInputDefFile{bxbase} %% read this file again +\expandafter\endinput\fi + +%%--------------- folloing stuffs are read by \bxTnext + +%%%% file declaration +\NeedsTeXFormat{LaTeX2e} +\ProvidesFile{bxbase.def}[2010/06/15 v0.5 BX/PX base library] +\bxCheckCPart{pxbase} +%* v0.5.r13 + +%%%% error messages +\def\bx@b@pkgname{BX/PXbase} % bundle name +\def\bx@b@error{\PackageError\bx@b@pkgname} +\def\bx@err@nobbl{\bx@b@error{babel not yet loaded}\@eha} +\def\bx@err@oorng{\bx@b@error{Number out of range}\@eha} +\def\bx@err@nanbc{\bx@b@error{Non-BMP characters not supported}\@eha} +\def\bx@err@ilnfm{\bx@b@error{Illegal number format}\@eha} +\def\bx@err@uddrv#1{\bx@b@error{\string#1 is undefined}\@eha} + +%%%% common stuffs +\ifx\bxUcv\@undefined +\newcount\bxUcv % argument of \bx@Ux +\fi +\newif\ifbxOk % all-purpsoe switch +\let\bxHex\relax % result of \bxToHex... +\let\bxRes\relax % result of \bxToLower +\edef\bx@b@resetcatcodes{% < ! " ' + ^ > + \catcode33=\the\catcode33\catcode34=\the\catcode34% + \catcode39=\the\catcode39\catcode43=\the\catcode43% + \catcode94=\the\catcode94\relax} +\catcode33=12 \catcode34=12 \catcode39=12 \catcode43=12 +\catcode94=6 + +%%------ Programming tools + +%%%% \bxNullify\CS +% Make \CS void and unoverridable by \providecommand. +\def\bxNullify#1{\global\let#1\bx@nullified} +\def\bx@nullified{\@gobble\bx@@nullified} + +%%%% \bxDebug{} +% If \bxUseDebug is defined when bxbase is loaded, this command +% prints debug messages; otherwise it is ignored. +%\let\bx@typeout\typeout +%\ifx\bxUseDebug\@undefined \let\bxDebug\@gobble +%\else \def\bxDebug#1{\bx@typeout{BX debug: #1}}\fi +\providecommand*\bxDebug{\@gobble} + +%%%% \bxCheckMA\CS \bxEndCheckMA +% If this construct appears in moving arguments, it expands to +% an error message command. +\def\bxCheckMA{\let\bx@chkma@a\bx@chkma@a\noexpand} +\let\bxEndCheckMA\@empty \let\bx@chkma@z\relax +\def\bx@chkma@a#1{\bx@chkma@z\relax\bx@chkma@b} +\def\bx@chkma@b#1#2#3\bxEncCheckMA{\noexpand\bx@err@ivfrg#1#2} +\def\bx@err@ivfrg#1{\bx@b@error{Cannot use \string#1 here}\@eha} + +%%------ TeX engine distinction + +%%%% \bxIfPrimitive\CS{}{} +% Checks if \CS is a primitive. +\def\bxIfPrimitive#1{% + \edef\bx@tmpa{\string#1}\edef\bx@tmpb{\meaning#1}% + \ifx\bx@tmpa\bx@tmpb \expandafter\@firstoftwo + \else \expandafter\@secondoftwo \fi} + +%%%% \bxEngineTypeX / \bxEngineTypeY +% Numbers that signify what I am. + % \bxEngineTypeX values +\chardef\bxETTeX=0 % none of those +\chardef\bxETpTeX=1 % pTeX-extended +\chardef\bxETXeTeX=2 % XeTeX-extended +\chardef\bxETOmega=3 % Omega-extended + % \bxEngineTypeY values (plus \bxETTeX) +\chardef\bxETeTeX=1 % e-TeX-extended +\chardef\bxETpdfTeX=3 % pdfTeX-extended + % (here old pdfTeX without e-TeX is ignored) + % +\bxIfPrimitive\kansuji{\let\bxEngineTypeX\bxETpTeX}{% +\bxIfPrimitive\XeTeXversion{\let\bxEngineTypeX\bxETXeTeX}{% +\bxIfPrimitive\Omegaversion{\let\bxEngineTypeX\bxETOmega}{% + \let\bxEngineTypeX\bxETTeX}}} +\bxIfPrimitive\eTeXversion{\let\bxEngineTypeY\bxETeTeX}{% +\bxIfPrimitive\pdftexversion{\let\bxEngineTypeY\bxETpdfTeX}{% + \let\bxEngineTypeY\bxETTeX}} + +%%%% \bx@b@uptex +\bxIfPrimitive\kchar{\chardef\bx@b@uptex\@ne}{\chardef\bx@b@uptex\z@} + +%%------ Babel something + +%%<+> \bxBDHookBabel +% A begindocument-hook about Babel. +\newif\ifbx@bbl@inuse +\def\bx@bbl@bdhook{} +\providecommand\bxBDHookBabel{\bx@bdhook@babel@do} +\def\bx@bdhook@babel@do{% + \AtBeginDocument{% + \@ifpackageloaded{babel}{% + \bx@bbl@inusetrue + \ifx\bx@bbl@captlang\@undefined\else \bx@bbl@do@captlang \fi + \bx@bbl@bdhook + }{}}% + \bxNullify\bxBDHookBabel} +\@onlypreamble\bxBDHookBabel +\@onlypreamble\bx@bdhook@babel@do + +%%<+> \bxAtBeginDocumentBabel{} +% Register a begin-document hook that willl be invoked only when babel +% is loaded. +\def\bxAtBeginDocumentBabel{% + \g@addto@macro\bx@bbl@bdhook} +\@onlypreamble\bxAtBeginDocumentBabel +\@onlypreamble\bx@bbl@bdhook + +%%%% \bx@bbl@patch@sel@lang +% A patch to \select@language that disables automatic switching of +% caption language. +\def\bx@bbl@patch@sel@lang{% this wlll be never invoked twice + \global\let\bx@bbl@org@select@language\select@language + \gdef\select@language##1{% + \bx@bbl@copy{**C}{##1}\bx@bbl@copy{##1}{**Z}% + \bx@bbl@org@select@language{##1}\bx@bbl@copy{##1}{**C}}} +\@onlypreamble\bx@bbl@patch@sel@lang + +%%%% \bx@bbl@do@captlang +\def\bx@bbl@@main{main} +\def\bx@bbl@@default{default} +\def\bx@bbl@do@captlang{% + % set captions + \ifx\bx@bbl@captlang\bx@bbl@@main + \let\bx@bbl@captlang\bbl@main@language \fi + \ifx\bx@bbl@captlang\bx@bbl@@default + \else\expandafter\ifx\csname l@\bx@bbl@captlang\endcsname\relax + \@nolanerr\bx@bbl@captlang + \else \csname date\bx@bbl@captlang\endcsname + \csname captions\bx@bbl@captlang\endcsname + \fi\fi} +\@onlypreamble\bx@bbl@do@captlang + +%%%% \bx@bbl@copy{}{} +% Copies \captions... and \date... for save. +\def\bx@bbl@copy#1#2{% + \bx@bbl@copy@a{#1}{#2}{captions}% + \bx@bbl@copy@a{#1}{#2}{date}} +\def\bx@bbl@copy@a#1#2#3{% + \edef\bx@tmpa{\let\expandafter\noexpand\csname#3#1\endcsname + \expandafter\noexpand\csname#3#2\endcsname}\bx@tmpa} +\@namedef{captions**Z}{\@empty} +\@namedef{date**Z}{\@empty} + +%%<*> \bxcaptionlanguage{} +% Change the caption language manually, with disabling automatic +% switching on it. +\def\bxcaptionlanguage#1{% + \@ifpackageloaded{babel}% + {\ifx\bx@bbl@captlang\@undefined \bx@bbl@patch@sel@lang \fi + \xdef\bx@bbl@captlang{#1}}% + {\bx@err@nobbl}} +\@onlypreamble\bxcaptionlanguage + +%%<*> \bxmainlanguage{} +% Changes the 'main' language (one that is effective at beginning). +\def\bxmainlanguage#1{% + \expandafter\ifx\csname date#1\endcsname\relax + \@nolanerr{#1}\fi + \xdef\bbl@main@language{#1}} +\@onlypreamble\bxmainlanguage + +%%<+> \bxTrivLangDef{} +% Makes a fake language option. +\def\bxTrivLangDef#1{% + \@ifundefined{date#1}{% + \@ifundefined{l@#1}% + {\expandafter\chardef\csname l@#1\endcsname\z@}{}% + \@namedef{date#1}{\relax}% + \@namedef{captions#1}{\relax}% + \@namedef{extras#1}{\relax}% + \@namedef{noextras#1}{\relax}% + \@namedef{date#1}{\relax}% + }{}} +\@onlypreamble\bxTrivLangDef + +%%------ 'Number-to-hex-string' functions +% All public commands put their result in \bxHex. + +%%%% preparation +\newif\ifbx@hx@bigchar +\ifnum\bxEngineTypeX>\@ne \bx@hx@bigchartrue \fi +\ifnum\bx@b@uptex>\z@ \bx@hx@bigchartrue \fi + +%%<+> \bxToHexTiny +% For one-to-two-digit hex strings. +\def\bxToHexTiny#1{% + \chardef\bxHex=#1\relax + \expandafter\bx@hx@tohextiny@a\meaning\bxHex\@nil} +\def\bx@hx@tohextiny@a#1"#2\@nil{\def\bxHex{#2}} + +%%<+> \bxToHexSmall +% For one-to-three-digit hex strings. +\def\bxToHexSmall#1{% + \mathchardef\bxHex=#1\relax + \expandafter\bx@hx@tohexsmall@a\meaning\bxHex\@nil} +\def\bx@hx@tohexsmall@a#1"#2\@nil{\def\bxHex{#2}} + +%%<+> \bxToHexTwo +% For zero-padded two-digit hex strings. +\def\bxToHexTwo#1{% + \chardef\bxHex=#1\relax + \expandafter\bx@hx@tohextwo@a\meaning\bxHex"0\@nil} +\def\bx@hx@tohextwo@a#1"#2#3#4#5\@nil{\bx@hx@tohextwo@b#2#3#4\@nil} +\def\bx@hx@tohextwo@b#1"#2\@nil{\def\bxHex{#2#1}} + +%%<+> \bxToHexThree +% For zero-padded three-digit hex strings. +\def\bxToHexThree#1{% + \mathchardef\bxHex=#1\relax + \expandafter\bx@hx@tohexthree@a\meaning\bxHex"00\@nil} +\def\bx@hx@tohexthree@a#1"#2#3#4#5#6\@nil{\bx@hx@tohexthree@b#2#3#4#5\@nil} +\def\bx@hx@tohexthree@b#1"#2\@nil{\def\bxHex{#2#1}} + +%%<+> \bxToHexFour +% For zero-padded four-digit hex strings. +\ifbx@hx@bigchar %----<*bigchar> +\def\bxToHexFour#1{% + \chardef\bxHex=#1\relax + \expandafter\bx@hx@tohexfour@a\meaning\bxHex"000\@nil} +\def\bx@hx@tohexfour@a#1"#2#3#4#5#6#7\@nil{\bx@hx@tohexfour@b#2#3#4#5#6\@nil} +\def\bx@hx@tohexfour@b#1"#2\@nil{\def\bxHex{#2#1}} +\else %----<*!bigchar> +\mathchardef\bx@hx@fzzz="4000 +\def\bxToHexFour#1{\bgroup + \@tempcnta=#1\relax\@tempcntb\@tempcnta\divide\@tempcntb\bx@hx@fzzz + \ifcase\@tempcntb \advance\@tempcnta\bx@hx@fzzz \or \or + \advance\@tempcnta-\bx@hx@fzzz \or \advance\@tempcnta-"8000 \or + \@tempcnta\z@ \fi + \mathchardef\bx@hx@tmp\@tempcnta + \expandafter\bx@hx@tohexfour@a\meaning\bx@hx@tmp\@nil + \egroup \let\bxHex\bx@hx@gtmp} +\def\bx@hx@tohexfour@a#1"#2#3\@nil{% + \expandafter\let\expandafter\bx@hx@tmp + \csname bxhx@X/\the\@tempcntb#2\endcsname + \ifx\bx@hx@tmp\relax \bx@err@oorng \global\let\bx@hx@gtmp\@empty + \else \xdef\bx@hx@gtmp{\bx@hx@tmp#3}\fi} +\def\bx@hx@nxt#1#2#3{\bgroup\catcode`#3=12 + \global\expandafter\def\csname bxhx@X/#1#2\endcsname{#3}\egroup} +\@for\bx@hx@tmp:={040,051,062,073,144,155,166,177,248,259,26A,27B,% + 34C,35D,36E,37F}\do{\expandafter\bx@hx@nxt\bx@hx@tmp} +\fi %---- + +%%<+> \bxToHexFive +%%<+> \bxToHexFiveX +% For zero-padded five-digit hex strings. +\def\bxToHexFive{\bx@tohexfive@aa\relax} +\def\bxToHexFiveX{\bx@tohexfive@aa + {\ifnum\@tempcnta>\bx@hx@vdmax \@tempcnta=\bx@hx@vdmax\fi}} +\ifbx@hx@bigchar %----<*bigchar> +\chardef\bx@hx@vdmax="FFFFF +\def\bx@tohexfive@aa#1#2{% + {\@tempcnta=#2\relax#1\global\chardef\bx@hx@gtmp=\@tempcnta}% + \expandafter\bx@hx@tohexfivex@a\meaning\bx@hx@gtmp"0000\@nil} +\def\bx@hx@tohexfivex@a#1"#2#3#4#5#6#7#8\@nil{% + \bx@hx@tohexfivex@b#2#3#4#5#6#7\@nil} +\def\bx@hx@tohexfivex@b#1"#2\@nil{\edef\bxHex{#2#1}} +\else %----<*!bigchar> +\edef\bx@hx@vdmax{"FFFFF\space} +\def\bx@tohexfive@aa#1#2{% + \bgroup \@tempcnta=#2\relax#1% + \@tempcntb=\@tempcnta \divide\@tempcnta\bx@hx@m\relax + \bxToHexTwo\@tempcnta \let\bx@hx@tmp\bxHex + \multiply\@tempcnta-\bx@hx@m\advance\@tempcnta\@tempcntb\relax + \bxToHexThree\@tempcnta \xdef\bx@hx@gtmp{\bx@hx@tmp\bxHex}% + \egroup \let\bxHex\bx@hx@gtmp} +\fi %---- + +%%<+> \bxToHexEight +% For zero-padded eight-digit hex strings. +\def\bxToHexEight#1{% + \bgroup \@tempcnta=#1\relax + \@tempcntb=\@tempcnta\divide\@tempcnta\p@\relax + \bxToHexFour\@tempcnta \let\bx@hx@tmp\bxHex + \multiply\@tempcnta-\p@\advance\@tempcnta\@tempcntb\relax + \bxToHexFour\@tempcnta \xdef\bx@hx@gtmp{\bx@hx@tmp\bxHex}% + \egroup \let\bxHex\bx@hx@gtmp} + +%%<+> \bxToHexUC +% For zero-padded four-to-six-digit hex strings. +\ifbx@hx@bigchar %----<*bigchar> +\def\bxToHexUC#1{% + \chardef\bxHex=#1\relax + \expandafter\bx@hx@tohexuc@a\meaning\bxHex"\@empty\@empty000\@nil} +\def\bx@hx@tohexuc@a#1"#2#3#4#5#6#7#8#9\@nil{% + \bx@hx@tohexuc@b#2#3#4#5#6#7#8\@nil} +\def\bx@hx@tohexuc@b#1"#2\@nil{\edef\bxHex{#2#1}} +\else %----<*!bigchar> +\mathchardef\bx@hx@m="1000 +\def\bxToHexUC#1{% + \bgroup \@tempcnta=#1\relax + \@tempcntb=\@tempcnta \divide\@tempcnta\bx@hx@m\relax + \bxToHexSmall\@tempcnta \let\bx@hx@tmp\bxHex + \multiply\@tempcnta-\bx@hx@m\advance\@tempcnta\@tempcntb\relax + \bxToHexThree\@tempcnta \xdef\bx@hx@gtmp{\bx@hx@tmp\bxHex}% + \egroup \let\bxHex\bx@hx@gtmp} +\fi %---- + +%%<+> \bxToDecFour +\def\bxToDecFour#1{% + \expandafter\bx@hx@todecfour@a\number#1"000\@nil} +\def\bx@hx@todecfour@a#1#2#3#4#5#6\@nil{\bx@hx@todecfour@b#1#2#3#4#5\@nil} +\def\bx@hx@todecfour@b#1"#2\@nil{\def\bxHex{#2#1}} + +%%<+> \bxToDecFive +\def\bxToDecFive#1{% + \expandafter\bx@hx@todecfive@a\number#1"0000\@nil} +\def\bx@hx@todecfive@a#1#2#3#4#5#6#7\@nil{\bx@hx@todecfive@b#1#2#3#4#5#6\@nil} +\def\bx@hx@todecfive@b#1"#2\@nil{\def\bxHex{#2#1}} + +%%------ Input through code values + +%%<+> \bxBDHookUnicode +% A begindocument-hook about Unicode (& CID) input. +\providecommand\bxBDHookUnicode{\bx@bdhook@unicode@do} +\def\bx@bdhook@unicode@do{% + \AtBeginDocument{\bx@assign@Ux}% + \bxNullify\bxBDHookUnicode} +\@onlypreamble\bxBDHookUnicode +\@onlypreamble\bx@bdhook@unicode@do + +%%<+> \bxBDHookJisInput +% A begindocument-hook about JIS-code input. +\providecommand\bxBDHookJisInput{\bx@bdhook@jisinput@do} +\def\bx@bdhook@jisinput@do{% + \AtBeginDocument{\bx@assign@JI}% + \bxNullify\bxBDHookJisInput} +\@onlypreamble\bxBDHookJisInput +\@onlypreamble\bx@bdhook@jisinput@do + +%%<+> \bxFallbackSym +\def\bxFallbackSym#1{\leavevmode\bx@fbs@fnt{\dimen@=\bx@junit\relax + \hb@xt@\dimen@{\hss\vrule\@width\z@\@height.88\dimen@\@depth.12\dimen@ + \frame{\lower.04\dimen@\hb@xt@.84\dimen@{\hss\vbox to.84\dimen@{\vss + \hsize=.84\dimen@\baselineskip\z@\lineskip.01\dimen@\parskip\z@skip + \leftskip\@flushglue\rightskip\@flushglue\parfillskip\z@skip + \parindent\z@\let\\\bx@fbs@c\leavevmode\let\sml=\bx@fbs@fs\bx@fbs@f + #1\unskip\par\vss}\hss}}\hss}}} +\edef\bx@junit{\ifnum\bxEngineTypeX=\@ne 1zw\else 1em\fi} +\def\bx@fbs@c{\unskip\par\ignorespaces} +\def\bx@fbs@fnt{\global\let\bx@fbs@fnt\relax + \global\font\bx@fbs@fs=phvr at 2.4pt + \global\font\bx@fbs@f=phvr at 3.6pt} + +%%<+> \bxCodeValueSeq\CS{} +% Dispatcher for code value sequences. +\def\bxCodeValueSeq{% + \let\bx@cvseq@branch\bx@cvseq@branch@hex + \bx@cvseq@a} +\def\bx@cvseq@a#1#2{% + {\catcode33=12% + \xdef\bx@gtmpa{\uppercase{\def\noexpand\bx@tmpa{#2}}}}% + \let\bx@cvseq@do=#1\bx@gtmpa\relax + \expandafter\bx@cvseq@b\bx@tmpa,!\@nil} +\def\bx@cvseq@b{\futurelet\bx@toka\bx@cvseq@branch} +\def\bx@cvseq@branch@hex{% + \if !\bx@toka \let\bx@nxt\bx@cvseq@fin + \else\if "\bx@toka \let\bx@nxt\bx@cvseq@pfx + \else\if '\bx@toka \let\bx@nxt\bx@cvseq@pfx + \else\if +\bx@toka \let\bx@nxt\bx@cvseq@pfx + \else \let\bx@nxt\bx@cvseq@hex \fi\fi\fi\fi + \bx@nxt} +\def\bx@cvseq@pfx{% + \afterassignment\bx@cvseq@post \bxUcv=} +\def\bx@cvseq@hex{% + \afterassignment\bx@cvseq@post \bxUcv="0} +\def\bx@cvseq@post#1{% + \if ,#1\expandafter\bx@cvseq@post@a + \else \bx@err@ilnfm \expandafter\bx@cvseq@fin \fi} +\def\bx@cvseq@post@a{% + \bx@cvseq@do \bx@cvseq@b} +\def\bx@cvseq@fin#1\@nil{} + +%%<+> \bxCodeValueSeqD\CS{} +% Same as \bxCodeValueSeq, except that it defaults to decimal. +\def\bxCodeValueSeqD{% + \let\bx@cvseq@branch\bx@cvseq@branch@dec \bx@cvseq@a} +\def\bx@cvseq@branch@dec{% + \if !\bx@toka \let\bx@nxt\bx@cvseq@fin + \else \let\bx@nxt\bx@cvseq@pfx \fi + \bx@nxt} + +%%<+> \bxUx, \bxUI, \bxAJ, \bxJI, \bxKI +% The prefixed names for \Ux, etc. They are (more likely to be) +% collision-safe. +\let\bxUx\relax +\DeclareRobustCommand*\bxUx{\bxCodeValueSeq\bx@Ux} +\let\bxUI\relax +\DeclareRobustCommand*\bxUI{\bxCodeValueSeq\bx@UI} +\let\bxAJ\relax +\DeclareRobustCommand*\bxAJ{\bxCodeValueSeqD\bx@AJ} +\let\bxJI\relax +\DeclareRobustCommand*\bxJI{\bxCodeValueSeq\bx@JI} +\let\bxKI\relax +\DeclareRobustCommand*\bxKI{\bxCodeValueSeqD\bx@KI} + +%%<+> \bxUHex{}, \bxUInt{} +% Alternative entry points for \Ux. The code value is specified in +% hexadecimal (\bxUHex) / decimal (\bxUInt) numerals. +\def\bxUHex{\protect\bx@Uxh} +\def\bxUqInt{\protect\bx@UInt} +\def\bx@UInt#1{\bxUcv=#1\relax\bx@Ux} + +%% \bx@UIh@fb, \bx@AJ@fb +\def\bx@UIh@fb#1{\bxUcv="#1\relax\bxToHexFive\bxUcv + \expandafter\bx@b@fb@five\bxHex[Ux]} +\def\bx@AJ@fb{\bxToDecFive\bxUcv + \expandafter\bx@b@fb@five\bxHex[AJ]} +\def\bx@JI@fb{\bxToHexFour\bxUcv + \expandafter\bx@b@fb@four\bxHex[JI]} +\def\bx@KI@fb{\bxToDecFive\bxUcv + \expandafter\bx@b@fb@five\bxHex[KI]} +\def\bx@b@fb@five#1#2#3#4#5#6[#7]{% + \bxFallbackSym{{\sml#7}\\\bx@hx@supzero#1#2#3\\#4#5}} +\def\bx@b@fb@four#1#2#3#4#5[#6]{% + \bxFallbackSym{{\sml#6}\\#1#2\\#3#4}} +\def\bx@hx@supzero#1{\ifx0#1\else\expandafter#1\fi} + +%%%% \bx@assign@Ux +% Picks up appropriate drivers \bx@Ux etc. according to current +% load-states of packages. +% [driver] [purpose] [argument] [default] +% \bx@Ux Unicode \bxUcv go to \bx@UI +% \bx@Uxh Unicode #1(hex) go to \bx@UIh +% \bx@UI Unicode-ideo. \bxUcv go to \bx@UIh +% \bx@UIh Unicode-ideo. #1(hex) fallback +% \bx@AJ Adobe-Japan1 \bxUcv fallback +% From the default value it can be said: +% - Implemetations for \bx@Ux(h) must fallback on \bx@UI(h) when +% they cannot be handle the given character, unless such fallback +% is known to be useless. +% - When you implement one of \bx@Ux or \bx@Uxh, then you must also +% implement the other. +% - When you implement \bx@UI, then you must also implement \bx@UIh. +% (But you can implement only \bx@UIh.) + % Initial values +\def\bx@Ux{\bx@UI} % pass to \bx@UI +\def\bx@Uxh{\bx@UIh} % pass to \bx@UIh +\def\bx@UI{\bxToHexUC\bxUcv\bx@UIh\bxHex} % pass to \bx@UIh +\let\bx@UIh\bx@UIh@fb % 'fallback' driver +\let\bx@AJ\bx@AJ@fb % 'fallback' driver + % some helpers + % one more step put so that \UTF could be redefined +\def\bx@UIh@otf{\UTF} + % \UMS with the argument expanded +\def\bx@UIh@ums#1{\expandafter\UMS\expandafter{#1}} + % \CID with \bxUcv +\def\bx@AJ@otf{\CID\bxUcv} +\def\bx@assign@Ux{% + % If I have bxucs, then set \bx@Ux to \bx@Ux@ucs + % (which fallbacks on \bx@UI in failure). + \@ifpackageloaded{bxucs}{% + \let\bx@Ux\bx@Ux@ucs\let\bx@Uxh\bx@Uxh@ucs}{}% + % If I have ums or bxsuika then I use \UMS as \bx@UIh driver. + \@ifpackageloaded{ums}{\bxOktrue}{\bxOkfalse} + \@ifpackageloaded{bxsuika}{\bxOktrue}{} + \ifbxOk \let\bx@UIh\bx@UIh@UMS \fi + % If I have utf or otf then I use \UTF as \bx@UIh driver. + \@ifpackageloaded{utf}{\bxOktrue}{\bxOkfalse} + \@ifpackageloaded{otf}{\bxOktrue}{} + \ifbxOk \let\bx@UIh\bx@UIh@otf \let\bx@AJ\bx@AJ@otf \fi + % pxotf is same as otf, except that it also provides a direct + % way to \bx@UI and \bx@AJ. + \@ifpackageloaded{pxotf}{% + \let\bx@UIh\bxUIh@otf \let\bx@UI\pxUcvUTF \let\bx@AJ\pxUcvCID}{}% + % If I am upTeX I use \kchar. + \ifnum\bx@b@uptex>\z@ + \def\bx@UI{\kchar\bxUcv}\def\bx@UIh##1{\kchar"##1\relax}% + % If I am a Unicode-aware engine, then... + \else\ifnum\bxEngineTypeX>\@ne % + \def\bx@UI{\char\bxUcv}\def\bx@UIh##1{\char"##1\relax}% + \let\bx@Ux\bx@UI \let\bx@Uxh\bx@UIh + % zxjatype provides better handling of \UI & \Ux. + \@ifpackageloaded{zxjatype}{% + \let\bx@UI\zxjt@UI \let\bx@UIh\zxjt@UIh + \let\bx@Ux\zxjt@Ux \let\bx@Uxh\zxjt@Uxh}{}% + % zxotf provides \CID comamnd. + \@ifpackageloaded{zxotf}{% + \def\bx@AJ{\CID\bxUcv}}{}% + \fi\fi + % If \bx@UIh@usr is known I use it. + \ifx\bx@UIh@usr\@undefined\else \let\bx@UIh\bx@UIh@usr \fi + \let\bx@setuidriver@a\bx@setuidriver@b + \ifx\bx@AJ@usr\@undefined\else \let\bx@AJ\bx@AJ@usr \fi + \let\bx@setajdriver@a\bx@setajdriver@b +} +\@onlypreamble\bx@assign@Ux + +%%%% \setUIdriver\CS +\def\setUIdriver#1{% + \ifx#1\@undefined \bx@err@uddrv#1% + \else \bx@setuidriver@a#1\fi} +\def\bx@setuidriver@a#1{\let\bx@UIh@usr#1} +\def\bx@setuidriver@b#1{\let\bx@UIh#1} + +%%%% \setAJdriver\CS +\def\setAJdriver#1{% + \ifx#1\@undefined \bx@err@uddrv#1% + \else \bx@setajdriver@a#1\fi} +\def\bx@setajdriver@a#1{\let\bx@AJ@usr#1} +\def\bx@setajdriver@b#1{\let\bx@AJ#1} + +%%%% \bx@assign@JI +% Picks up appropriate drivers \bx@JI etc. +% [driver] [purpose] [argument] [default] +% \bx@JI JIS-code \bxUcv fallback +% \bx@KI Kuten-code \bxUcv fallback +\def\bx@JI{\bx@JI@fb} +\def\bx@KI{\bx@KI@fb} +\def\bx@assign@JI{% + % \JI & \KI are available only in (u)pTeX + \ifnum\bxEngineTypeX=\@ne + \def\bx@JI{\char\jis\bxUcv\relax}\let\bx@KI\bx@KI@pTeX + \fi +} +\ifnum\bxEngineTypeX=\@ne %----<*pTeX> +%% \bx@KI@pTeX + % \KI{2????} (0213 plane 2) works only when kanji-internal=sjis +\mathchardef\bx@ki@max=\ifnum\jis"2121="8140 30000\else 20000\fi\relax +\mathchardef\bx@ki@myr=10000 +\mathchardef\bx@ki@bas="2020 +\let\bx@ki@char=\char +\ifx\kchar\@undefined\else \let\bx@ki@char=\kchar \fi +\def\bx@KI@pTeX{% + \ifnum\bxUcv<\bx@ki@max\else \bxUcv=\z@ \fi + \ifnum\bxUcv<\bx@ki@myr \advance\bxUcv\bx@ki@myr \fi + \expandafter\bx@ki@ptex@a\the\bxUcv\@nil + \bx@ki@char\jis\bxUcv\relax} +\bgroup \@tempcnta=94 + \@for\bx@tmpa:=01,08,03,04,05,12,13,14,15\do{\advance\@tempcnta\@ne + \expandafter\xdef\csname bx@JSH/\bx@tmpa\endcsname{\the\@tempcnta}} + \@tempcntb=77 \loop + \advance\@tempcnta\@ne \advance\@tempcntb\@ne + \expandafter\xdef\csname bx@JSH/\the\@tempcntb\endcsname + {\the\@tempcnta}% + \ifnum\@tempcntb<94 \repeat +\egroup +\def\bx@ki@ptex@a#1#2#3#4#5#6\@nil{% + \ifnum#1=\@ne \bxUcv=#2#3\relax + \else \bxUcv=0\csname bx@JSH/#2#3\endcsname\relax \fi + \multiply\bxUcv\@cclvi \advance\bxUcv#4#5\relax + \advance\bxUcv\bx@ki@bas} +\fi %---- +\@onlypreamble\bx@assign@JI + +%%------ Assignment check + +%%%% \bxAssign \relax +\def\bxAssign{% + \bxOkfalse\afterassignment\bx@b@assign@a} +\def\bx@b@assign@a#1\relax{% + \def\bx@tmpa{#1}\ifx\bx@tmpa\@empty\bxOktrue\fi} + +%%------ Case conversion + +%%%% \bxToLower{} +% Sets to \bxRes converted to lowercase. +\def\bxToLower#1{% + \edef\bxRes{\lowercase{\def\noexpand\bxRes{#1}}}\bxRes} + +%%%% \bxToUpper{} +\def\bxToUpper#1{% + \edef\bxRes{\uppercase{\def\noexpand\bxRes{#1}}}\bxRes} + +%%------ Document-level specials +% Such specials must come before any typeset commands in DVI. + +%%%% \bxDocumentSpecial{} +% Appends \special{} to the list of 'document-level specials'. +% A simple use of \AtBeginDvi will do in this case. +\def\bxDocumentSpecial#1{% + \AtBeginDvi{\special{#1}}} +\@onlypreamble\bxDocumentSpecial + +%%%% \bxDocumentSpecialUrgent{} +% Similar to the above, but it demands that the given special be +% placed as early as possible. +\def\bxDocumentSpecialUrgent#1{% + \bx@docspec@urgent@init + \bx@prepend@box\bx@dsu@box{\special{#1}}} +\def\bx@prepend@box#1#2{% + \global\setbox#1\vbox{#2\unvbox#1}} +\providecommand\bx@docspec@urgent@init{\bx@docspec@urgent@init@do} +\def\bx@docspec@urgent@init@do{% + \newbox\bx@dsu@box + \AtBeginDocument{% + \ifx\AtBeginShipoutFirst\@undefined + \bx@prepend@box\@begindvibox{\unvbox\bx@dsu@box}% + \else % 'atbegshi' package is in use + {\toks@{\unvbox\bx@dsu@box}% + \toks\tw@\expandafter{\AtBegShi@HookFirst}% + \xdef\AtBegShi@HookFirst{\the\toks@\the\toks\tw@}} + \fi}% + \bxNullify\bx@docspec@urgent@init} +\@onlypreamble\bxDocumentSpecialUrgent +\@onlypreamble\bx@docspec@urgent@init +\@onlypreamble\bx@docspec@urgent@init@do + +%%%% \recordpapersize +\def\recordpapersize{% + \bxDocumentSpecial{papersize=\the\paperwidth,\the\paperheight}% + \bxNullify\recordpapersize} +\@onlypreamble\recordpapersize + +%%<*> \dvipdfmxmapline{} +%%<*> \dvipdfmxmapfile{} +\def\dvipdfmxmapline#1{\bxDocumentSpecial{pdf:mapline #1}} +\@onlypreamble\dvipdfmxmapline +\def\dvipdfmxmapfile#1{\bxDocumentSpecial{pdf:mapfile #1}} +\@onlypreamble\dvipdfmxmapfile + +%%----- "safe-caret" module +\newif\ifbx@acr@ok +\newif\ifbx@acr@needed \bx@acr@neededfalse +\newif\ifbx@safecaret \bx@safecaretfalse +\catcode`\^=13 + +%%%%<*> \safecaret +\def\safecaret{% + \bx@safecarettrue} +\@onlypreamble\safecaret + +%%%% \bxEnableSafeCaret +\def\bxEnableSafeCaret{% + \bx@acr@neededtrue} +\@onlypreamble\bxEnableSafeCaret + +%%%% \bx@acr@defbytes +\def\bx@acr@defbytes{% + \bgroup\@tempcnta128\lccode`\Z=`\B\catcode`\^\active + \@whilenum\@tempcnta<256 \do{% + \lccode`\^\@tempcnta \chardef\bx@acr@tok\@tempcnta + \expandafter\bx@acr@defbytes@do@a\meaning\bx@acr@tok\@nil + \advance\@tempcnta\@ne}\egroup} +\def\bx@acr@defbytes@do@a#1"#2\@nil{% name is bx@acr@B/ab etc. + \lowercase{\expandafter\gdef\csname bx@acr@Z/#2\endcsname{^}}} +\@onlypreamble\bx@acr@defbytes +\@onlypreamble\bx@acr@defbytes@do@a + +%%%% \bx@acr@caret +%% This command should be \let'd to active <^>. +\def\bx@acr@caret{% + \let\bx@acr@out\@empty \bx@acr@caret@a} +\def\bx@acr@caret@a{% + \bx@acr@nextcaret{\bx@acr@caret@b}{\bx@acr@finish{\bx@acr@nxc}}} +\def\bx@acr@caret@b#1{% + \let\bx@acr@hex\@empty + \bx@acr@nexthexdgt{\bx@acr@caret@c}{\bx@acr@finish{\bx@acr@nxdc}}} +\def\bx@acr@caret@c#1{% + \edef\bx@acr@hex{#1}% + \bx@acr@nexthexdgt{\bx@acr@caret@d}{\bx@acr@finish{\bx@acr@nxdc\bx@acr@hex}}} +\def\bx@acr@caret@d#1{% + \edef\bx@acr@hex{\bx@acr@hex#1}% + \expandafter\bx@acr@caret@e\csname bx@acr@B/\bx@acr@hex\endcsname + \bx@acr@ifok{\bx@acr@nextcaret{\bx@acr@caret@g}{\bx@acr@finish{}}}% + {\bx@acr@finish{\bx@acr@nxdc\bx@acr@hex}}} +\def\bx@acr@caret@e#1{% + \ifx#1\relax \bx@acr@okfalse + \else \bx@acr@oktrue \expandafter\bx@acr@caret@f#1\fi} +\def\bx@acr@caret@f#1{% + \expandafter\def\expandafter\bx@acr@out\expandafter{\bx@acr@out#1}} +\def\bx@acr@caret@g#1{\bx@acr@caret@a} +\def\bx@acr@nxc{\noexpand^} +\def\bx@acr@nxdc{\noexpand^\noexpand^} +\def\bx@acr@nextcaret#1#2{% + \def\bx@acr@tmpa{#1}\def\bx@acr@tmpb{#2}% + \futurelet\bx@acr@tok\bx@acr@nextcaret@a} +\def\bx@acr@nextcaret@a{% + \let\bx@acr@nxt\bx@acr@tmpb + \ifx^\bx@acr@tok \let\bx@acr@nxt\bx@acr@tmpa + \fi \bx@acr@nxt} +\def\bx@acr@nexthexdgt#1#2{% + \def\bx@acr@tmpa{#1}\def\bx@acr@tmpb{#2}% + \futurelet\bx@acr@tok\bx@acr@nexthexdgt@a} +\def\bx@acr@nexthexdgt@a{% + \let\bx@acr@nxt\bx@acr@tmpb + \ifcat @\noexpand\bx@acr@tok \let\bx@acr@nxt\bx@acr@tmpa \fi + \ifcat "\noexpand\bx@acr@tok \let\bx@acr@nxt\bx@acr@tmpa \fi + \bx@acr@nxt} +\def\bx@acr@ifok{% + \ifbx@acr@ok \expandafter\@firstoftwo \else \expandafter \@secondoftwo \fi} +\def\bx@acr@finish#1{% + \edef\bx@acr@nxt{#1}% + \ifx\bx@acr@out\@empty \bx@acr@oktrue \else \bx@acr@okfalse \fi + \bx@acr@ifok{\expandafter\bx@acr@finish@a\bx@acr@nxt\@nil}% + {\expandafter\bx@acr@out\bx@acr@nxt}} +\def\bx@acr@finish@a#1#2\@nil{% + % replace first ^ with normal one to avoid loop + \bx@acr@normcaret #2} +\let\bx@acr@normcaret\sp % this does not mean much + +%%%% \bx@acr@initialize +\def\bx@acr@initialize{% + \bx@acr@defbytes} +\@onlypreamble\bx@acr@initialize + +%%%% \bx@acr@annihilate +\def\bx@acr@annihilate{% + \let\bx@acr@caret\relax\let\bx@acr@caret@a\relax + \let\bx@acr@caret@b\relax\let\bx@acr@caret@c\relax + \let\bx@acr@caret@d\relax\let\bx@acr@caret@e\relax + \let\bx@acr@caret@f\relax\let\bx@acr@caret@g\relax + \let\bx@acr@nextcaret\relax\let\bx@acr@nextcaret@a\relax + \let\bx@acr@nexthexdgt\relax\let\bx@acr@nexthexdgt@a\relax + \let\bx@acr@finish\relax\let\bx@acr@finish@a\relax} +\@onlypreamble\bx@acr@annihilate + +%%%% \bx@acr@babel@hookcaret +\def\bx@acr@babel@hookcaret{% + \expandafter\ifx\csname active@char\string^\endcsname\relax\else + \declare@shorthand\system@group{^}{\bx@acr@caret}% + \let\bx@acr@normcaret\bx@acr@babel@normcaret + \bxEnableSafeCaret \fi} +\@onlypreamble\bx@acr@babel@hookcaret +\edef\bx@acr@babel@normcaret{% + \expandafter\noexpand\csname normal@char\string^\endcsname} + +%%%% \bx@acr@verbatim@hookcaret +\def\bx@acr@verbatim@hookcaret{% + \g@addto@macro\@noligs{\catcode`\^\active\let^\bx@acr@caret + \let\bx@acr@normcaret\bx@acr@verb@normcaret}% + \bxEnableSafeCaret} +\begingroup \catcode`\^=12 +\global\let\bx@acr@verb@normcaret=^\endgroup +\@onlypreamble\bx@acr@verbatim@hookcaret + +%%%% begin-document hook +\providecommand*\bxBDHookSafeCaret{\bx@bdhook@safecaret@do} +\def\bx@bdhook@safecaret@do{% + \AtBeginDocument{% + %% function activated by '\safecaret' + \ifbx@safecaret + \@ifpackageloaded{babel}{\bx@acr@babel@hookcaret}{}% + \bx@acr@verbatim@hookcaret + \fi + %% initialize or annihilate... + \ifbx@acr@needed \bx@acr@initialize + \else \bx@acr@annihilate \fi + \let\bxEnableSafeCaret\@undefined}% + \bxNullify\bxBDHookSafeCaret} +\@onlypreamble\bx@bdhook@safecaret@do + +\catcode`\^=6 +%%------ "shadow map" module + +%%%% \bxUseShadowMap\CS{} +\def\bxUseShadowMap#1#2{% + \global\font#1=#2\relax} + +%%%% \bxMap\CS +\mathchardef\bx@m@cc=256 +\def\bxMap#1{\begingroup\count@\bxUcv\divide\count@\bx@m@cc + \chardef\bx@m@hb\count@ \multiply\count@\bx@m@cc + \advance\bxUcv-\count@ \setbox\z@\hbox{#1\bx@m@hb\char\bxUcv}% + \global\bxUcv\wd\z@ \endgroup} + +%%------ all done +\bx@b@resetcatcodes \let\bx@nxt\relax +\endinput +%% EOF diff --git a/Master/texmf-dist/tex/latex/bxbase/bxbase.sty b/Master/texmf-dist/tex/latex/bxbase/bxbase.sty new file mode 100644 index 00000000000..d506fc37a62 --- /dev/null +++ b/Master/texmf-dist/tex/latex/bxbase/bxbase.sty @@ -0,0 +1,70 @@ +% +% bxbase.sty +% + +%%%% package declaration +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{bxbase}[2010/06/15 v0.5 BX base library] + +%%%% include 'bxbase.def' +\input{bxbase.def} +\bxBDHookBabel +\bxBDHookUnicode +\bxBDHookSafeCaret + +%%%% error messages +\def\bx@pkgname{bxbase} +\def\bx@error{\PackageError\bx@pkgname} +\def\bx@alert{\PackageWarningNoLine\bx@pkgname} +\def\bx@warn{\PackageInfo\bx@pkgname} +\def\bx@warn@aecs#1{\px@warn{Command \string#1 already exists}} + +%%------ + +%%<*> \Ux, \UI, \AJ +\ifx\Ux\@undefined \def\Ux{\bxUx}% +\else \px@warn@aecs\Ux \fi +\ifx\UI\@undefined \def\UI{\bxUI}% +\else \px@warn@aecs\UI \fi +\ifx\AJ\@undefined \def\AJ{\bxAJ}% +\else \px@warn@aecs\AJ \fi + +%%<*> \JI, \KI +\ifx\JI\@undefined \def\JI{\bxJI}% +\else \px@warn@aecs\JI \fi +\ifx\KI\@undefined \def\KI{\bxKI}% +\else \px@warn@aecs\KI \fi + +%%%% withnohyph environment +\expandafter\ifx\csname l@nohyphenation\endcsname\relax + \newlanguage\l@nohyphenation \fi +\def\withnohyph{\language\l@nohyphenation} +\let\endwithnohyph\relax + +%%------ all done +\endinput +%% EOF +% +% * bxbase provides: +% - bx@Uxh@fb (terminal) +% - bxUx (passed to bx@Ux) +% - bxUI (passed to bx@UI) +% - bxUHex (passed to bx@Uxh) +% * bxutf8 provides: +% - conversion from UTF8 string to bxUHex +% * bxucs provides: +% - bx@Ux@ucs (fallback to bx@UI) +% - bx@Uxh@ucs (fallback to bx@UIh) +% * utf/otf provides: +% - bx@UIh@p (terminal) +% +% [default] +% bx@Ux bx@Uxh +% v v +% bx@UI > bx@UIh = bx@UIh@fb or bx@UIh@p +% +% [with bxucs] +% bx@Ux = bx@Ux@ucs bx@Uxh = bx@Uxh@ucs +% v v +% bx@UI > bx@UIh = bx@Uxh@fb or bx@UIh@p +% diff --git a/Master/texmf-dist/tex/latex/bxbase/bxucs.sty b/Master/texmf-dist/tex/latex/bxbase/bxucs.sty new file mode 100644 index 00000000000..39d42824f0e --- /dev/null +++ b/Master/texmf-dist/tex/latex/bxbase/bxucs.sty @@ -0,0 +1,109 @@ +% +% bxucs.sty +% + +%%%% package declaration +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{bxucs}[2008/03/28 v0.2 BX Unicode output] + +%%%% preparation +\RequirePackage{bxbase} + +%%%% error messages +\def\bxus@pkgname{bxucs} +\def\bxus@error{\PackageError\bxus@pkgname} +\def\bxus@err@inf#1{\bxus@error + {extra characters after number}% + {I ignore such characters}} +\def\bxus@err@nousf{\bxus@error + {Unicode subfont encoding not declared\MessageBreak + for family '\f@family'}\@ehc} + +%%%% declare encoding 'USF' +% There must be at least one valid font shape in USF encoding and is set +% in \DeclareFontSubstitution properly; otherwise an error will occur at +% the beginning of document. Here we use the value of 'error font' as +% dummy default font of USF encoding. +\DeclareFontEncoding{USF}{}{} +\bgroup \escapechar\m@ne \error@fontshape + \DeclareFontFamily{USF}{\f@family}{} + \global\expandafter\let + \csname USF/\f@family/\f@series/\f@shape\expandafter\endcsname + \csname \f@encoding/\f@family/\f@series/\f@shape\endcsname + \xdef\bx@nxt{\noexpand\DeclareFontSubstitution + {USF}{\f@family}{\f@series}{\f@shape}} +\egroup \bx@nxt + +%%%% \USFDeclareFontShape{}{} +% is a range list of available Unicode-row-numbers. +\def\USFDeclareFontShape#1#2{% + \edef\bx@nxt{\uppercase{\def\noexpand\bxus@dfs@range{#2}}}% + \edef\bxus@dfs@fam{#1}\bx@nxt + \ifx\bxus@dfs@range\@empty \def\bxus@dfs@range{00-FF}\fi + \afterassignment\bxus@decl@fontshape\def\bxus@dfs@body##1} +\def\bxus@decl@fontshape{% + \DeclareFontFamily{USF}{\bxus@dfs@fam}{\relax}% make last arg non-empty + {\let\bxus@do\bxus@dfs@do\bxus@hexrange\bxus@dfs@range}} +\def\bxus@dfs@do{% + \bxToHexTwo\@tempcnta \bxToLower\bxHex\edef\guz{\bxRes}% + \global\expandafter\let + \csname bxus@U/\bxus@dfs@fam/\bxRes\endcsname=t% + \DeclareFontFamily{USF}{\bxus@dfs@fam=U\bxRes}{}% + \bxDebug{font family \bxus@dfs@fam=U\bxRes\space loaded}% + \edef\USFShape{% + \noexpand\DeclareFontShape{USF}{\bxus@dfs@fam=U\bxRes}}% + \bxus@dfs@body\bxRes} + +%%%% \bx@Ux@ucs +\def\bx@Ux@ucs{% code value is given in \bxUcv + \bxus@loadfontdef + \ifnum\bxUcv<\p@% \p@ equals 65536 + \bxToHexFour\bxUcv \expandafter\bxus@uxh@a\bxHex\@nil + \else \expandafter\bx@UI \fi} + +%%%% \bx@Uxh@ucs +\def\bx@Uxh@ucs#1{% + \bxus@loadfontdef\edef\bxHex{#1}% + \expandafter\bxus@uxh@a\bxHex\@nil} +\def\bxus@uxh@a#1#2#3#4\@nil{% + \bxDebug{char "\bxHex}% + \lowercase{\bxus@uxh@b{#1#2}}{#3#4}} +\def\bxus@uxh@b#1#2{% + \bgroup + \expandafter\ifx\csname bxus@U/\f@family/#1\endcsname\relax\else + \fontencoding{USF}\fontfamily{\f@family=U#1}\selectfont + \@tempcnta="#2\relax\bxus@chkchr + \ifbxOk \char\@tempcnta \aftergroup\@gobble \fi + \fi + \egroup \bxus@uxh@x} % this \bxus@uxh@x may be gobbled +\def\bxus@uxh@x{% + \bxDebug{fallback}\bx@UIh\bxHex} + +%%%% \bxus@chkchr +\def\bxus@chkchr{% + \iffontchar\font\@tempcnta \bxOktrue \else \bxOkfalse \fi} +\ifnum\bxEngineTypeY=\z@ +\def\bxus@chkchr{\bxOktrue} +\fi + +%%%% \bxus@loadfontdef +\def\bxus@loadfontdef{% + \expandafter\ifx\csname USF+\f@family\endcsname\relax + \begingroup \let\typeout\@font@info \escapechar\m@ne + \def\f@encoding{USF}\try@load@fontshape + \endgroup\fi + \expandafter\ifx\csname USF+\f@family\endcsname\@empty + \bxus@err@nousf \expandafter\bxus@skiptonil\fi} +\def\bxus@skiptonil#1\@nil{} + +%%%% \bxus@hexrange{} +\def\bxus@hexrange#1{% + \@for\bxus@u:=#1\do{\expandafter\bxus@hexrange@a\bxus@u--\@nil}} +\def\bxus@hexrange@a#1-#2-#3\@nil{% + \if-#2-\@tempcnta"#1\relax\bxus@do + \else\@tempcnta"#1\@tempcntb"#2\relax\expandafter\bxus@hexrange@b\fi} +\def\bxus@hexrange@b{% + \@whilenum\@tempcnta<\@tempcntb\do{\bxus@do\advance\@tempcnta\@ne}% + \bxus@do} + +%% EOF diff --git a/Master/texmf-dist/tex/latex/bxbase/bxutf8.def b/Master/texmf-dist/tex/latex/bxbase/bxutf8.def new file mode 100644 index 00000000000..1422552e095 --- /dev/null +++ b/Master/texmf-dist/tex/latex/bxbase/bxutf8.def @@ -0,0 +1,168 @@ +% +% bxutf8.def +% +%%%% package declarations +\ProvidesFile{bxutf8.def}[2010/05/05 v0.5 BX UTF-8 input encoding] +% +% Note: All definitions in this file should be local. +% +%%%% preparation +% Here spaces are set back to valid. So great care must be taken +% so spaces should not be spilt out (in horizontal mode). +\catcode32=10\relax +\expandafter\edef\csname bx@b@resetcatcodes\endcsname{% " . : @ + \catcode34=\the\catcode34\catcode46=\the\catcode46% + \catcode58=\the\catcode39\catcode64=\the\catcode64\relax}% +\catcode34=12 \catcode46=12 \catcode58=12 \catcode64=11 % +% abort when this is first loaded after \begin{document} +\def\bxus@i@error{\PackageError{inputenc}}% +\ifx\@nodocument\relax + \ifx\bxus@bxutf@loaded\@undefined + \bxus@i@error{cannot load `bxutf8' after \string\begin{document}}% + \@eha \bx@b@resetcatcodes\endinput\fi\fi +% +%%%% load 'utf8' encoding +\InputIfFileExists{utf8.def}{}% + {\bxus@i@error{input encoding `utf8' unavailable}% + \@eha \bx@b@resetcatcodes\endinput}% +\makeatletter +%\@inpenc@test % This is done in utf8.def +% +%%%% attach the hook +\def\UTFviii@two@octets#1#2{\expandafter\bxus@choice + \csname u8:#1\string#2\endcsname#1#2.@}% +\def\UTFviii@three@octets#1#2#3{\expandafter\bxus@choice + \csname u8:#1\string#2\string#3\endcsname#1#2#3@}% +\def\UTFviii@four@octets#1#2#3#4{\expandafter\bxus@choice@four + \csname u8:#1\string#2\string#3\string#4\endcsname#1#2#3#4@}% +% +%%%% attach the hook (old version) +% * This hook was found to fail in pTeX. +% Here #1 is a control word of form \u8:. If it is +% defined in standard way of utf8.def, then it is dispatched; +% otherwise it is passed to \bxus@preproc. +%\def\UTFviii@defined#1{% +% \ifx#1\relax \bxus@preproc#1% +% \else\expandafter#1\fi}% +%%%% \bxus@preproc\CS +%\def\bxus@preproc#1{% +% \expandafter\bxus@preproc@a\string#1..\@nil}% +%\def\bxus@preproc@a#1:#2#3#4#5#6\@nil{% +% \if.#5\bxus@proc#2#3#4\else\bxus@err@uknbc\fi}% +% +% When this file is reloaded, the 'static' part will be skipped. +\ifx\bxus@bxutf@loaded\@undefined\else + \bx@b@resetcatcodes\endinput \fi +\let\bxus@bxutf@loaded=t% +% +%%---------- Beginning of static part +% +%%%% error messages +\def\bxus@err@uknbc{\bxus@i@error{Unknown non-BMP character found}% + {bxutf8 cannot handle non-BMP characters.}}% +\def\bxus@err@nodrv{\bxus@i@error{Unicode driver not found}\@ehb}% +% +%%%% make tables +\def\bxus@fornbl{% + \bxus@fornbl@a00001102203310411512613720821922A23B30C31D32E33FXXX}% +\def\bxus@fornbl@a#1#2#3{% + \if X#1\else + \@namedef{bxus@*#1#2}{#3}% + \bxus@defchr{F#3}{0#1#2}\bxus@defchr{E#3}{#1#2}% + \bxus@defchr{C#3}{000#1#2}\bxus@defchr{D#3}{001#1#2}% + \bxus@defchr{8#3}{0#1#2}\bxus@defchr{9#3}{1#1#2}% + \bxus@defchr{A#3}{2#1#2}\bxus@defchr{B#3}{3#1#2}% + \expandafter\bxus@fornbl@a\fi}% +\def\bxus@defchr#1#2{% + {\lccode`\!="#1% + \lowercase{\expandafter\gdef\csname bxus@@!\endcsname{#2}}}}% +\bxus@fornbl \@namedef{bxus@@.}{}% +% +%%%% \bxcs@choice +%% Called in the form +%% \bxus@choice[\u8:??]??.@ (2-byte) or +%% \bxus@choice[\u8:???]???@ (3-byte) +%% where ?? is a (TF-8 byte string and [\u8:...] denotes a single +%% control word. This macro expands to the control word if it is +%% defined; otherwise expands to \bxus@proc. +\def\bxus@choice#1#2@{% + \ifx#1\relax \bxus@proc#2% + \else\expandafter#1\fi}% +% +%%%% \bxus@choice@four +\def\bxus@choice@four#1#2@{% + \ifx#1\relax \bxus@prociv#2% + \else\expandafter#1\fi}% +% +%%%% \bxus@proc +%% When ??? is the UTF-8 string of U+XXXX (padded to length 3 with +%% a dot), then \bxus@proc@a??? fully expands to \bxUHex{XXXX}. +%% (\bxUHex should be robust.) +\def\bxus@proc#1#2#3{% + \expandafter\bxus@proc@b\csname bxus@@\string#1\expandafter\endcsname + \csname bxus@@\string#2\expandafter\endcsname + \csname bxus@@\string#3\endcsname}% +\def\bxus@proc@b#1#2#3{% + \expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\bxus@proc@c + \expandafter\expandafter\expandafter#1% + \expandafter#2#3}% +\def\bxus@proc@c#1#2#3#4#5#6#7#8{% + \expandafter\bxus@proc@d\csname bxus@*#1#2\expandafter\endcsname + \csname bxus@*#3#4\expandafter\endcsname + \csname bxus@*#5#6\expandafter\endcsname + \csname bxus@*#7#8\endcsname}% +\def\bxus@proc@d#1#2{% + \expandafter\expandafter\expandafter\bxus@proc@e + \expandafter#1#2\@nil}% +\def\bxus@proc@e#1\@nil#2#3{% + \bxus@proc@f#2#3#1\@nil}% +\def\bxus@proc@f#1#2{% + \expandafter\expandafter\expandafter\bxus@proc@g + \expandafter#1#2\@nil}% +\def\bxus@proc@g#1\@nil#2\@nil{% + \bxUHex{#2#1}}% +% +\def\bxus@prociv#1#2#3#4{% + \expandafter\bxus@prociv@a\csname bxus@@\string#1\expandafter\endcsname + \csname bxus@@\string#2\expandafter\endcsname + \csname bxus@@\string#3\expandafter\endcsname + \csname bxus@@\string#4\endcsname}% +\def\bxus@prociv@a#1#2#3#4{% + \expandafter\expandafter\expandafter\bxus@prociv@b + \expandafter#3#4@#1#2} +\def\bxus@prociv@b#1@#2#3{% + \expandafter\expandafter\expandafter\bxus@prociv@c + \expandafter#2#3#1@@} +\def\bxus@prociv@c#1#2#3#4{% + \expandafter\bxus@prociv@d\csname bxus@*#1#2\expandafter\endcsname + \csname bxus@*#3#4\endcsname} +\def\bxus@prociv@d#1#2{% + \expandafter\expandafter\expandafter\bxus@prociv@e + \expandafter#1#2} +\def\bxus@prociv@e#1#2#3@#4@{\bxus@prociv@f#3@#4#1#2@} +\def\bxus@prociv@f#1#2#3#4{% + \expandafter\bxus@prociv@g\csname bxus@*#1#2\expandafter\endcsname + \csname bxus@*#3#4\endcsname} +\def\bxus@prociv@g#1#2{% + \expandafter\expandafter\expandafter\bxus@prociv@h + \expandafter#1#2} +\def\bxus@prociv@h#1#2#3@#4@{\bxus@prociv@i#3@#4#1#2@} +\def\bxus@prociv@i#1#2#3#4{% + \expandafter\bxus@prociv@j\csname bxus@*#1#2\expandafter\endcsname + \csname bxus@*#3#4\endcsname} +\def\bxus@prociv@j#1#2{% + \expandafter\expandafter\expandafter\bxus@prociv@k + \expandafter#1#2} +\def\bxus@prociv@k#1#2@#3@{\bxUHex{#3#1#2}} + + + + +%%%% default (useless) Unicode driver +\providecommand*\bxUHex[1]{?\protect\bxus@err@nodrv}% +% +%%%% all done +\bx@b@resetcatcodes +\endinput +%% EOF diff --git a/Master/texmf-dist/tex/latex/bxbase/bxutf8x.def b/Master/texmf-dist/tex/latex/bxbase/bxutf8x.def new file mode 100644 index 00000000000..a703d5bfe94 --- /dev/null +++ b/Master/texmf-dist/tex/latex/bxbase/bxutf8x.def @@ -0,0 +1,80 @@ +% +% bxutf8x.def +% +%%%% package declarations +\ProvidesFile{bxutf8x.def}[2008/04/06 v0.3 + BX UTF-8 input encoding (ucs ver.)] +% +% Note: All definitions in this file should be local. +% +%%%% preparation +\catcode32=10\relax +\expandafter\edef\csname bx@b@resetcatcodes\endcsname{% " . : @ + \catcode34=\the\catcode34\catcode46=\the\catcode46% + \catcode58=\the\catcode39\catcode64=\the\catcode64\relax}% +\catcode34=12 \catcode46=12 \catcode58=12 \catcode64=11 % +\def\bxus@i@error{\PackageError{inputenc}}% +\ifx\@nodocument\relax + \ifx\bxus@bxutfx@loaded\@undefined + \bxus@i@error{cannot load `bxutf8x' after \string\begin{document}}% + \@eha \bx@b@resetcatcodes\endinput\fi\fi +% +%%%% load 'utf8x' encoding +\InputIfFileExists{utf8x.def}{}% + {\PackageError{inputenc}{input encoding `utf8x' unavailable}% + {You must install `unicode' package to use it.}% + \bx@b@resetcatcodes\endinput}% +%\@inpenc@test % This is done in utf8.def +% +% When this file is reloaded, the 'static' part will be skipped. +\ifx\bxus@bxutfx@loaded\@undefined\else + \bx@b@resetcatcodes \endinput \fi +\let\bxus@bxutfx@loaded=t% +% +%%---------- Beginning of static part +% +%%%% error messages +\def\bxus@err@nodrv{\bxus@i@error{Unicode driver not found}\@ehb}% +% +%%%% \bxus@uc@char@notloaded +% Hooked version of \uc@char@notloaded +\def\bxus@uc@char@notloaded#1{% + \count@=#1\divide\count@256% + \edef\uc@temp@a{uni-\number\count@.def}% + \expandafter\ifx\csname\uc@temp@a\endcsname\relax\else + \uc@secondtry#1\relax\fi + \ifnum\uc@secondtry=#1\relax % all trial of utf8x failed + \bxUInt{#1}% + \else + \begingroup + \ifUnicodeOptionsavemem\else + \global\expandafter\let\csname\uc@temp@a\endcsname\@ne \fi + \def\uc@got{#1}\uni@resetcatcodes + \expandafter\InputIfFileExists\expandafter{\uc@temp@a}{% + \global\let\uni@dataloaded1}{}% + \endgroup + \uc@secondtry#1\relax\uni@char{#1}% + \fi}% +\def\bxus@uc@notloaderr#1#2#3{% + \bxUInt{#1}}% \bxUInt should be robust +% +%%%% attach the hook +% Note that ucs.sty could be loaded after utf8x.def. +\AtBeginDocument{% + \let\uc@notloaderr\bxus@uc@notloaderr + \let\uc@char@notloaded\bxus@uc@char@notloaded}% +% +%%%% force ucs 'fasterrors' option switched on +% Heavy 'uninames' decoding process is of no use in presence of the hook, +% and it causes unexpected result in use of pTeX. +\AtBeginDocument{% + \let\UnicodeOptionfasterrorsfalse\UnicodeOptionfasterrorstrue + \UnicodeOptionfasterrorstrue}% +% +%%%% default (useless) Unicode driver +\providecommand*\bxUInt[1]{?\protect\bxus@err@nodrv}% +% +%%%% all done +\bx@b@resetcatcodes +\endinput +%% EOF diff --git a/Master/texmf-dist/tex/latex/bxbase/zxbase.sty b/Master/texmf-dist/tex/latex/bxbase/zxbase.sty new file mode 100644 index 00000000000..be7e5189fcf --- /dev/null +++ b/Master/texmf-dist/tex/latex/bxbase/zxbase.sty @@ -0,0 +1,151 @@ +% +% zxbase.sty +% +%%%% package declaration +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{zxbase}[2009/11/16] +\RequirePackage{ifxetex} +\RequireXeTeX + +%%%% preparations +\RequirePackage{bxbase} +\def\zx@pkgname{zxbase} +\def\zx@error{\PackageError\zx@pkgname} +\def\zx@warn{\PackageWarningNoLine\zx@pkgname} + +%%------ generic family detection + +%%%% constants \zxSpecFamily, \zxRMFamily, etc. +% These values can be considered as fixed, so you can say i.e. +% "\ifnum\zxGFFlag<\zxSFFamily \else \fi" +\chardef\zxSpecFamily=0 +\chardef\zxRMFamily=1 +\chardef\zxSFFamily=2 +\chardef\zxTTFamily=3 + +%%%% \zx@set@genfamflag +% A patch to be inserted to \selectfont. This makes \selectfont +% set a right \zx..Family constant to \zxGFFlag. +\def\zx@set@genfamflag{% + \zx@set@gff@get\zx@curfam\f@family + \let\zxGFFlag\zxSpecFamily + \zx@set@gff@match\ttdefault\zxTTFamily + \zx@set@gff@match\sfdefault\zxSFFamily + \zx@set@gff@match\rmdefault\zxRMFamily} +\def\zx@set@gff@get#1#2{% + \expandafter\let\expandafter#1\csname + zf@family@fontname#2\endcsname + \ifx#1\relax \edef#1{#2}\fi} +\def\zx@set@gff@match#1#2{% + \zx@set@gff@get\zx@genfam#1% + \ifx\zx@genfam\zx@curfam \let\zxGFFlag#2\fi} + +%%%% \zxBDHookGenFamFlag +\def\zxBDHookGenFamFlag{\zx@bdhook@genfamflag@do} +\@onlypreamble\zx@bdhook@genfamflag@do +\def\zx@bdhook@genfamflag@do{% + \expandafter\zx@bdhook@genfamflag@a\csname selectfont \endcsname + \let\zx@bdhook@genfamflag@do\relax} +\@onlypreamble\zx@bdhook@genfamflag@a +\def\zx@bdhook@genfamflag@a#1{% + \expandafter\def\expandafter#1\expandafter{% + \expandafter\zx@set@genfamflag#1}} + +%%------ Forging pTeX direction primitives + +\def\zxBDHookForgepTeXDir{\zx@bdhook@forgeptexdir@do} +\@onlypreamble\zx@bdhook@forgeptexdir@do +\def\zx@bdhook@forgeptexdir@do{% + \zx@letconstif{ydir}{true}\zx@letconstif{tdir}{false}% + \ifx\yoko\@undefined \let\yoko\relax \fi + \ifx\tate\@undefined \let\tate\relax \fi +} +\def\zx@letconstif#1#2{% + \ifcsname if#1\endcsname\else + \expandafter\let\csname if#1\expandafter\endcsname + \csname if#2\endcsname \fi} + +%%------ Forcing to read pLaTeX packages + +\newif\ifzxPPInUTFEight +\newif\ifzx@jisenc +\def\zx@err@ukenc#1{\zx@error{File '#1' is in unknown encoding}% +{The file must be encoded in ISO-2022-JP or UTF-8.}} + +%%%% \zxRequirepLaTeXPackage +\@onlypreamble\zxRequirepLaTeXPackage +\def\zxRequirepLaTeXPackage#1{% + \ifzxPPInUTFEight \zx@jisencfalse + \else \zx@checkjisorutfeight{#1.\@pkgextension}% + \ifcase\zx@joru \zx@err@ukenc{#1.\@pkgextension}\or + \zx@jisenctrue \else \zx@jisencfalse \fi + \fi + \let\NeedsTeXFormat\zx@mute@NeedsTeXFormat + \ifzx@jisenc \XeTeXdefaultencoding ISO-2022-JP\relax \fi + \RequirePackage{#1}% + \ifzx@jisenc \XeTeXdefaultencoding auto\relax \fi + \let\NeedsTeXFormat\zx@org@NeedsTeXFormat +} + +%%%% \zx@mute@NeedsTeXFormat +\def\zx@mute@NeedsTeXFormat#1{\@ifnextchar[{\zx@mute@ntf@a}{\relax}} +\def\zx@mute@ntf@a[#1]{\relax} +\let\zx@org@NeedsTeXFormat\NeedsTeXFormat + +%%%% \zx@checkjisorutfeight{} +% Decides whether is encoded in JIS or UTF-8 and sets to \zx@joru. +% 0:binary; 1:JIS; 2:UTF-8; 3:US-ASCII +\def\zx@checkjisorutfeight#1{% + \begingroup + \XeTeXdefaultencoding bytes\relax + \let\zx@c@ctl=f\def\zx@found@ctl{\let\zx@c@ctl=t}% + \let\zx@c@esc=f\def\zx@found@esc{\let\zx@c@esc=t}% + \let\zx@c@high=f\def\zx@found@high{\let\zx@c@high=t}% + \zx@make@activelet{0}{32}\zx@found@ctl + \zx@make@ignorable{32}{127}% + \zx@make@activelet{127}{128}\zx@found@ctl + \zx@make@activelet{128}{256}\zx@found@high + \zx@make@activelet{27}{28}\zx@found@esc + \catcode13=5 \catcode32=10 \catcode9=10 \catcode`\~=9 + \@@input"#1"\relax + \if t\zx@c@ctl \global\chardef\zx@g@joru0 + \else\if t\zx@c@esc \global\chardef\zx@g@joru1 + \else\if t\zx@c@high \global\chardef\zx@g@joru2 + \else \global\chardef\zx@g@joru3 \fi\fi\fi + \XeTeXdefaultencoding auto\relax + \endgroup + \let\zx@joru\zx@g@joru} +\def\zx@make@activelet#1#2#3{% + \catcode`\~=\active \let\zx@tmpx=#3\relax + \@tempcnta#1\relax\loop + \catcode\@tempcnta\active \lccode`\~=\@tempcnta + \lowercase{\let~\zx@tmpx}% + \advance\@tempcnta\@ne \ifnum\@tempcnta<#2 \repeat} +\def\zx@make@ignorable#1#2{% + \@tempcnta#1\relax\loop \catcode\@tempcnta9 + \advance\@tempcnta\@ne \ifnum\@tempcnta<#2 \repeat} + +%%<*> \platexpackagesinunicode +\@onlypreamble\platexpackagesinunicode +\let\platexpackagesinunicode\zxPPInUTFEight + +%%------ trashed stuff + +%\def\zxRemoveFSSuffix#1{% +% \edef\zx@tmpx{#1}\bxOkfalse +% \let\bxRes\@empty \let\zx@chunk\@gobble +% \expandafter\zx@rem@fssfx@a\zx@tmpx(@\@nil} +%\def\zx@rem@fssfx@a#1(#2#3\@nil{% +% \ifx @#2\edef\bxRes{\bxRes\zx@chunk\@empty}% +% \def\zx@nxt{\zx@rem@fssfx@b#1@)@\@nil}% +% \else \edef\bxRes{\bxRes\zx@chunk(}\def\zx@chunk{#1}% +% \def\zx@nxt{\zx@rem@fssfx@a#2#3\@nil}% +% \fi \zx@nxt} +%\def\zx@rem@fssfx@b#1)@#2\@nil{% +% \ifx\bxRes\@empty\else +% \ifx @#2@\else \bxAssign\@tempcnta0#1\relax \fi \fi +% \ifbxOk\else \let\bxRes\zx@tmpx \fi} + +%%------ all done +\endinput +%% EOF diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check index d1958573359..b0a782d2dd5 100755 --- a/Master/tlpkg/bin/tlpkg-ctan-check +++ b/Master/tlpkg/bin/tlpkg-ctan-check @@ -78,7 +78,7 @@ my @TLP_working = qw( borceux bosisio boxedminipage boxhandler bpchem bpolynomial bracketkey braids braille braket breakcites breakurl bropd brushscr - bullcntr bundledoc burmese bussproofs bytefield + bullcntr bundledoc burmese bussproofs bxbase bytefield c-pascal cabin cachepic calcage calctab calculator calligra calligra-type1 calrsfs cals calxxxx-yyyy cancel canoniclayout cantarell diff --git a/Master/tlpkg/tlpsrc/bxbase.tlpsrc b/Master/tlpkg/tlpsrc/bxbase.tlpsrc new file mode 100644 index 00000000000..e69de29bb2d diff --git a/Master/tlpkg/tlpsrc/collection-langcjk.tlpsrc b/Master/tlpkg/tlpsrc/collection-langcjk.tlpsrc index 852e13387c9..0fa762831a0 100644 --- a/Master/tlpkg/tlpsrc/collection-langcjk.tlpsrc +++ b/Master/tlpkg/tlpsrc/collection-langcjk.tlpsrc @@ -8,6 +8,7 @@ depend collection-documentation-chinese # depend adobemapping depend arphic +depend bxbase depend c90 depend cjk depend cjkpunct -- cgit v1.2.3