summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/bxbase/bxutf8x.def
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/bxutf8x.def
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/bxutf8x.def')
-rw-r--r--Master/texmf-dist/tex/latex/bxbase/bxutf8x.def80
1 files changed, 80 insertions, 0 deletions
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