]> matita.cs.unibo.it Git - helm.git/blob - helm/software/share/texmf/unicode/ucsutils.sty
Preparing for 0.5.9 release.
[helm.git] / helm / software / share / texmf / unicode / ucsutils.sty
1 %%
2 %% This is file `ucsutils.sty',
3 %% generated with the docstrip utility.
4 %%
5 %% The original source files were:
6 %%
7 %% ucs.dtx  (with options: `ucsutils.sty')
8 %% 
9 %% Copyright 2001 Dominique Unruh <dominique@unruh.de>
10 %% 
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)
14 %% for information.
15 %% 
16 \ifx\DeclareOption\undefined\else
17 \ProvidesPackage{ucsutils}[2002/04/23 UCS: Auxiliary macros]%
18 \RequirePackage{ucs}%
19 \ifx\@ucsutils\undefined\let\@ucsutils\empty\fi
20 \DeclareOption*{%
21   \edef\uc@temp@a{\csname\CurrentOption\endcsname}%
22   \expandafter\g@addto@macro\expandafter\@ucsutils\expandafter
23   {\expandafter\\\uc@temp@a}}%
24 \ProcessOptions*%
25 \fi
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}}%
38 ^^B  \fi
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}%
54 ^^B  \fi
55 ^^B  \@tempcnta0
56 ^^B  \@tempcntb\uc@embedfont@fontstart
57 ^^B  \loop\ifnum\@tempcnta<\uc@embedfont@num
58 ^^B    \advance\@tempcnta by\uc@embedfont@start
59 ^^B    \edef\uc@temp@a{%
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
68 ^^B  \repeat
69 ^^B}
70 \@ucsutils@section\univerb
71 ^^B\def\uc@vbsetchar#1#2{%
72 ^^B  \catcode#1\active
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%
77 ^^B  \bgroup
78 ^^B  \@tempcnta\@ne
79 ^^B  \loop\ifnum\@tempcnta<128\relax
80 ^^B    \uc@vbsetchar\@tempcnta{\noexpand\unichar{\number\@tempcnta}}%
81 ^^B    \advance\@tempcnta by\@ne
82 ^^B  \repeat
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}%
90 ^^B  \@sverb}
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}}%
96 ^^B  \fi
97 ^^B  \ifx\tw@#1\else
98 ^^B    \ifx\@ne#1\else
99 ^^B      \ifnum`#1<128
100 ^^B        \@temptokena\expandafter{\the\@temptokena\unichar{`#1}}%
101 ^^B      \else
102 ^^B        \@temptokena\expandafter{\the\@temptokena#1}%
103 ^^B      \fi
104 ^^B    \fi%
105 ^^B    \expandafter\futurelet\expandafter\uc@temp@a\expandafter\@unistring
106 ^^B  \fi
107 ^^B}
108 ^^B\DeclareRobustCommand\unistring[1]{%
109 ^^B  \let\uc@temp@a\undefined
110 ^^B  \@temptokena{}%
111 ^^B  \@unistring\@ne#1\tw@
112 ^^B  {\SetUnicodeOption{combine}%
113 ^^B  \the\@temptokena
114 ^^B  \SetUnicodeOption{nocombine}}}
115 {\def\\#1{%
116     \ifx#11%
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
121     \fi}
122   \@ucsutils}%
123 \let\@ucsutils\undefined
124 \let\@ucsutils@section\undefined
125 \catcode2=15