summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/bxbase/zxbase.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2013-01-13 23:06:54 +0000
committerKarl Berry <karl@freefriends.org>2013-01-13 23:06:54 +0000
commit8b4c4dba6b23ddbfe20886ac64828e1a19fefa43 (patch)
tree9f37fbdc2c85b946690c7f9449b902cd10243071 /Master/texmf-dist/tex/latex/bxbase/zxbase.sty
parentf242908d5fddb009640260a320bb9e406a88b448 (diff)
bxbase (13jan13)
git-svn-id: svn://tug.org/texlive/trunk@28825 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/bxbase/zxbase.sty')
-rw-r--r--Master/texmf-dist/tex/latex/bxbase/zxbase.sty151
1 files changed, 151 insertions, 0 deletions
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 <non-sans> \else <sans> \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{<file>}
+% Decides whether <file> 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