2 %% This is file `ucsutils.sty',
3 %% generated with the docstrip utility.
5 %% The original source files were:
7 %% ucs.dtx (with options: `ucsutils.sty')
9 %% Copyright 2001 Dominique Unruh <dominique@unruh.de>
11 %% This program is provided under the terms of the LaTeX Project Public
12 %% License with some modifications.
13 %% See the file LICENSE (http://www.unruh.de/DniQ/latex/unicode/content/LICENSE)
16 \ifx\DeclareOption\undefined\else
17 \ProvidesPackage{ucsutils}[2002/04/23 UCS: Auxiliary macros]%
19 \ifx\@ucsutils\undefined\let\@ucsutils\empty\fi
21 \edef\uc@temp@a{\csname\CurrentOption\endcsname}%
22 \expandafter\g@addto@macro\expandafter\@ucsutils\expandafter
23 {\expandafter\\\uc@temp@a}}%
26 {\def\\#1{\ifx#1\relax\global\let#11\fi}\@ucsutils}%
27 \def\@ucsutils@section#1{\ifx#11\catcode2=9\else\catcode2=14\fi\relax}%
28 \@ucsutils@section\UnicodeEmbedFont
29 ^^B\RequirePackage{keyval}%
30 ^^B\def\UnicodeEmbedFont#1{%
31 ^^B \ifx\KV@ucembedfont@start\undefined
32 ^^B \define@key{ucembedfont}{encoding}{\def\uc@embedfont@enc{##1}}%
33 ^^B \define@key{ucembedfont}{start}{\def\uc@embedfont@start{##1}}%
34 ^^B \define@key{ucembedfont}{fontstart}%
35 ^^B {\def\uc@embedfont@fontstart{##1}}%
36 ^^B \define@key{ucembedfont}{num}{\def\uc@embedfont@fontstart{##1}}%
37 ^^B \define@key{ucembedfont}{option}{\def\uc@embedfont@option{##1}}%
39 ^^B \let\uc@embedfont@enc\undefined % Ignored
40 ^^B \let\uc@embedfont@start\undefined
41 ^^B \def\uc@embedfont@fontstart{0}%
42 ^^B \let\uc@embedfont@num\undefined
43 ^^B \def\uc@embedfont@option{document}%
44 ^^B \setkeys{ucembedfont}{#1}%
45 ^^B \ifx\uc@embedfont@start\undefined
46 ^^B \uc@errormsg{\string\UnicodeEmbedFont\space
47 ^^B needs argument start=...}{}\fi
48 ^^B \edef\uc@embedfont@fontstart{\number\uc@embedfont@fontstart}%
49 ^^B \edef\uc@embedfont@start{\number\uc@embedfont@start}%
50 ^^B \ifx\uc@embedfont@num\undefined
51 ^^B \@tempcnta-\uc@embedfont@fontstart
52 ^^B \advance\@tempcnta by256
53 ^^B \edef\uc@embedfont@num{\number\@tempcnta}%
56 ^^B \@tempcntb\uc@embedfont@fontstart
57 ^^B \loop\ifnum\@tempcnta<\uc@embedfont@num
58 ^^B \advance\@tempcnta by\uc@embedfont@start
60 ^^B \noexpand\char\number\@tempcntb\space}%
61 ^^B \expandafter\DeclareUnicodeCharacterAsOptional
62 ^^B \expandafter{\expandafter\@tempcnta\expandafter}%
63 ^^B \expandafter{\expandafter\uc@embedfont@option\expandafter}%
64 ^^B \expandafter{\uc@temp@a}%
65 ^^B \advance\@tempcnta by-\uc@embedfont@start
66 ^^B \advance\@tempcntb by1
67 ^^B \advance\@tempcnta by1
70 \@ucsutils@section\univerb
71 ^^B\def\uc@vbsetchar#1#2{%
73 ^^B \begingroup\uccode`\~#1\uppercase{\endgroup\edef~}{#2}}
74 ^^B\DeclareRobustCommand\univerb[1][]{\ifx\@nil#1\@nil\else\PackageError{ucs}{%
75 ^^B \string\univerb\space has optional argument}{%
76 ^^B \string\univerb[...] is not supported}\fi%
79 ^^B \loop\ifnum\@tempcnta<128\relax
80 ^^B \uc@vbsetchar\@tempcnta{\noexpand\unichar{\number\@tempcnta}}%
81 ^^B \advance\@tempcnta by\@ne
83 ^^B \uc@vbsetchar{32}{\noexpand\unicodecombine\noexpand\unichar{32}}%
84 ^^B \uc@vbsetchar{13}{\noexpand\unicodecombine\noexpand\leavevmode\noexpand\\%
85 ^^B \noexpand\leavevmode}%
86 ^^B \def\verb@egroup{%
87 ^^B \SetUnicodeOption{nocombine}%
88 ^^B \global\let\verb@balance@group\@empty\egroup}%
89 ^^B \SetUnicodeOption{combine}%
91 \@ucsutils@section\unistring
92 ^^B\def\uc@spacechar{\futurelet\uc@spacechar\empty}\expandafter\uc@spacechar\uc@spc
93 ^^B\def\@unistring#1{%
94 ^^B \ifx\uc@temp@a\uc@spacechar
95 ^^B \@temptokena\expandafter{\the\@temptokena\unicodecombine\unichar{32}}%
100 ^^B \@temptokena\expandafter{\the\@temptokena\unichar{`#1}}%
102 ^^B \@temptokena\expandafter{\the\@temptokena#1}%
105 ^^B \expandafter\futurelet\expandafter\uc@temp@a\expandafter\@unistring
108 ^^B\DeclareRobustCommand\unistring[1]{%
109 ^^B \let\uc@temp@a\undefined
111 ^^B \@unistring\@ne#1\tw@
112 ^^B {\SetUnicodeOption{combine}%
114 ^^B \SetUnicodeOption{nocombine}}}
117 \uc@errormsg{Can't load \string#1}{You have given the option
118 \expandafter\@gobble\string#1 to ucsutils,\MessageBreak but
119 there is no command called \string#1 in ucsutils.sty.}%
120 \global\let#1\undefined
123 \let\@ucsutils\undefined
124 \let\@ucsutils@section\undefined