summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/ucs/utf8x.def
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/ucs/utf8x.def
Initial commit
Diffstat (limited to 'macros/latex/contrib/ucs/utf8x.def')
-rw-r--r--macros/latex/contrib/ucs/utf8x.def204
1 files changed, 204 insertions, 0 deletions
diff --git a/macros/latex/contrib/ucs/utf8x.def b/macros/latex/contrib/ucs/utf8x.def
new file mode 100644
index 0000000000..6970ac297c
--- /dev/null
+++ b/macros/latex/contrib/ucs/utf8x.def
@@ -0,0 +1,204 @@
+%%
+%% This is file `utf8x.def',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% ucs.dtx (with options: `utf8x.def')
+%%
+%% Copyright 2001 Dominique Unruh <unruh@ut.ee>
+%% Copyright 2013 Wolfgang Jeltsch <wolfgang@cs.ioc.ee>
+%%
+%% This program is provided under the terms of the LaTeX Project Public License with some
+%% modifications. See the file LICENSE for information.
+%%
+\ifx\ProvidesFile\undefined\else
+\ProvidesFile{utf8x.def}[2004/10/17 UCS: Input encoding UTF-8]%
+\fi
+\expandafter\ifx\csname restore@utf@viii@actives\endcsname\relax\else
+ \csname restore@utf@viii@actives\endcsname\expandafter\endinput\fi
+\count255=\catcode`\@\catcode`\@11 %SPACE
+\ifx\@gobble\undefined\def\@gobble#1{}\fi
+\ifx\@gobbletwo\undefined\def\@gobbletwo#1#2{}\fi
+\ifx\AtBeginDocument\undefined\else
+ \ifx\@nodocument\relax\else\expandafter\AtBeginDocument\fi
+ {\ifx\unichar\undefined{\PackageError{utf8x}{%
+ Please use \protect\usepackage{ucs} to support encoding utf8x}{}}\fi}%
+\fi
+\ifx\AtEndOfPackage\undefined\else
+\ifx\@nodocument\relax\else\AtEndOfPackage{\RequirePackage{ucs}}\fi%
+\fi
+\def\utf@viii@err#1{%
+ \PackageError{utf8x}{Character \number#1 \uc@spc appeared alone}{%
+ Characters 128-191 are only allowed as arguments to characters 194-244}}
+\def\utf@viii@xnum#1#2\utf@viii@err#3#4\@nil{%
+ \ifx\empty#3%
+ \count#1=-1\relax
+ \PackageError{utf8x}{Malformed UTF-8 sequence}{%
+ If the character is an argument, put it in {}}\else
+ \count#1=#3\fi}
+\def\utf@viii@undef#1#2#3#4{%
+ \begingroup
+ \count0=#1\relax
+ \ifx#3\@nil % Two-byte sequences
+ \expandafter\utf@viii@xnum\expandafter1#2\empty\empty\empty\empty\empty\empty\empty\empty\empty\utf@viii@err\empty\@nil
+ \ifnum\count1=-1 \count0=192\count1="1007D\fi
+ \multiply\count0by64\relax
+ \advance\count0by\count1\relax
+ \advance\count0by-12416\relax
+ \else
+ \ifx#4\@nil % Three-byte sequences
+ \expandafter\utf@viii@xnum\expandafter1#2\empty\empty\empty\empty\empty\empty\empty\empty\empty\utf@viii@err\empty\@nil
+ \expandafter\utf@viii@xnum\expandafter2#3\empty\empty\empty\empty\empty\empty\empty\empty\empty\utf@viii@err\empty\@nil
+ \ifnum\count1=-1 \count0=224\count1=128\count2="1007D\fi
+ \ifnum\count2=-1 \count0=224\count1=128\count2="1007D\fi
+ \multiply\count0by64\relax
+ \advance\count0by\count1\relax
+ \multiply\count0by64\relax
+ \advance\count0by\count2\relax
+ \advance\count0by-925824\relax
+ \else % Four-byte sequences
+ \expandafter\utf@viii@xnum\expandafter1#2\empty\empty\empty\empty\empty\empty\empty\empty\empty\utf@viii@err\empty\@nil
+ \expandafter\utf@viii@xnum\expandafter2#3\empty\empty\empty\empty\empty\empty\empty\empty\empty\utf@viii@err\empty\@nil
+ \expandafter\utf@viii@xnum\expandafter3#4\empty\empty\empty\empty\empty\empty\empty\empty\empty\utf@viii@err\empty\@nil
+ \ifnum\count1=-1 \count0=240\count1=128\count2=128\count3="1007D\fi
+ \ifnum\count2=-1 \count0=240\count1=128\count2=128\count3="1007D\fi
+ \ifnum\count3=-1 \count0=240\count1=128\count2=128\count3="1007D\fi
+ \multiply\count0by64%
+ \advance\count0by\count1%
+ \multiply\count0by64%
+ \advance\count0by\count2%
+ \multiply\count0by64%
+ \advance\count0by\count3%
+ \advance\count0by-"3C82080\relax
+ \fi\fi
+ \begingroup\expandafter\utf@viii@map\expandafter{\number\count0}\endgroup
+ \expandafter\endgroup
+ \expandafter\unichar\expandafter{\number\count0}}%
+\def\utf@viii@make#1#2#3#4#5#6{%
+ \count255=#1\relax
+ \loop\ifnum\count255<#2\relax
+ \catcode\count255\active
+ \begingroup
+ \uccode`\~\count255%
+ \uccode`\u`\u%
+ \uppercase{%
+ \endgroup
+ \edef~%
+ #3{\noexpand\expandafter\noexpand\ifx\noexpand\csname u8-\number\count255-#4\noexpand\endcsname\relax
+ \begingroup
+ \let\noexpand\utf@viii@undeferr
+ \noexpand\@gobble\noexpand\empty\noexpand\empty
+ \noexpand\empty\noexpand\empty\noexpand\@gobbletwo\relax\relax
+ % ===
+ \noexpand\expandafter\endgroup
+ % If \let not executed: \utf@viii@undeferr is called
+ % otherwise: \utf@viii@undef.
+ \noexpand\utf@viii@undeferr{\noexpand\string\noexpand~\noexpand\string#6}%
+ \noexpand\utf@viii@undef{\number\count255}#5%
+ \noexpand\else
+ \noexpand\expandafter\noexpand\unichar\noexpand\expandafter{%
+ \noexpand\csname u8-\number\count255-#4\noexpand\endcsname}\noexpand\fi}}%
+ \advance\count255by1\relax
+ \repeat}%
+\def\restore@utf@viii@actives{%
+ \let\@inpenc@test\relax
+ \utf@viii@make{194}{224}{####1}{\noexpand\string####1}{{####1}\noexpand\@nil\noexpand\@nil}{####1}%
+ \utf@viii@make{224}{240}{####1####2}{\noexpand\string####1\noexpand\string####2}{{####1}{####2}\noexpand\@nil}{####1\noexpand\string####2}%
+ \utf@viii@make{240}{245}{####1####2####3}{\noexpand\string####1\noexpand\string####2\noexpand\string####3}{{####1}{####2}{####3}}{####1\noexpand\string####2\noexpand\string####3}%
+ \count255=128\relax
+ \loop\ifnum\count255<192\relax
+ \catcode\count255\active
+ \begingroup
+ \uccode`\~\count255 %SPACE
+ \uppercase{%
+ \endgroup
+ \edef~}%
+ {\noexpand\utf@viii@err{\number\count255}}%
+ \advance\count255by1\relax
+ \repeat}%
+\def\utf@viii@map#1{%
+ \begingroup
+ \count0=#1\divide\count0by64\relax
+ \ifnum#1<"80\relax
+ % ASCII is not handled by utf8x.def
+ \else\ifnum#1<"800\relax
+ \count1=-\count0\multiply\count1by64\advance\count1by#1\relax
+ \advance\count0by192\advance\count1by128\relax
+ \begingroup
+ \lccode`\B=\count1 %SPACE
+ \lowercase{%
+ \endgroup
+ \expandafter\gdef\csname u8-\number\count0-B\endcsname}{#1}%
+ \else\ifnum#1<"10000\relax
+ \count2=-\count0\multiply\count2by64\advance\count2by#1\relax
+ \divide\count0by64 %SPACE
+ \count1=-\count0\multiply\count1by4096\advance\count1by#1%
+ \divide\count1by64%
+ \advance\count0by224\advance\count1by128\advance\count2by128 %SPACE
+ \begingroup
+ \lccode`\B=\count1 %SPACE
+ \lccode`\C=\count2 %SPACE
+ \lowercase{%
+ \endgroup
+ \expandafter\gdef\csname u8-\number\count0-BC\endcsname}{#1}%
+ \else\ifnum#1<"110000 %SPACE
+ \count3=-\count0\multiply\count3by64\advance\count3by#1\relax
+ \divide\count0by64 %SPACE
+ \count2=-\count0\multiply\count2by4096\advance\count2by#1%
+ \divide\count2by64%
+ \divide\count0by64 %SPACE
+ \count1=-\count0\multiply\count1by262144\advance\count1by#1%
+ \divide\count1by4096 %SPACE
+ \advance\count0by240\advance\count1by128%
+ \advance\count2by128\advance\count3by128 %SPACE
+ \begingroup
+ \lccode`\B=\count1 %SPACE
+ \lccode`\C=\count2 %SPACE
+ \lccode`\D=\count3 %SPACE
+ \lowercase{%
+ \endgroup
+ \expandafter\gdef\csname u8-\number\count0-BCD\endcsname}{#1}%
+ \else
+ \PackageWarning{utf8x}{Invalid code position \number#1 \uc@spc
+ defined,\MessageBreak unrepresentable in UTF-8}%
+ \fi\fi\fi\fi
+ \endgroup
+}
+\begingroup
+ \lccode`\A=`\{\lccode`\B=`\}\lccode`\C=`\\%
+ \lccode`\P=`\P\lccode`\U=`\U%
+ \lowercase{%
+\endgroup
+ \def\utf@viii@undeferr#1#2#3#4#5#6{%
+ \ifx\@gobble#1\else[Please insert CPrerenderUnicodeA#1B into preamble]\fi}}
+\ifx\AtBeginDocument\undefined\else
+ \ifx\@nodocument\relax\else
+ \AtBeginDocument{%
+ \begingroup
+ \expandafter\def\expandafter\temp@a\expandafter#\expandafter1%
+ \string\utf@viii@#2\@nil{%
+ \ifx\@nil#2\@nil\count2\count0\else\count1\count0\fi}%
+ \count0=128 \count1=0 \count2=0 %SPACE
+ \loop\ifnum\count0<245 %SPACE
+ \ifnum\count0=192 \advance\count0by2 \fi
+ \lccode`\~\count0 %SPACE
+ \ifnum\catcode\count0=13 %SPACE
+ \lowercase{%
+ \expandafter\expandafter\expandafter\temp@a\expandafter\meaning\expandafter~%
+ \string\utf@viii@\@nil}%
+ \else
+ \count2\count0\fi
+ \advance\count0by1 %SPACE
+ \repeat
+ \ifnum\count1=0 \else\ifnum\count2=0 \else
+ \PackageWarning{utf8x.def}{Character(s) \number\count2\space\space
+ etc. got redefined somewhere.\MessageBreak
+ Restoring to its utf8x-meaning}%
+ \aftergroup\restore@utf@viii@actives
+ \fi\fi
+ \endgroup}%
+ \fi
+\fi
+\catcode`\@=\count255\relax
+\csname restore@utf@viii@actives\endcsname