You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
367 lines
11 KiB
367 lines
11 KiB
%%
|
|
%% This is file `utf8.def',
|
|
%% generated with the docstrip utility.
|
|
%%
|
|
%% The original source files were:
|
|
%%
|
|
%% utf8ienc.dtx (with options: `utf8')
|
|
%%
|
|
%% This is a generated file.
|
|
%%
|
|
%% The source is maintained by the LaTeX Project team and bug
|
|
%% reports for it can be opened at https://latex-project.org/bugs.html
|
|
%% (but please observe conditions on bug reports sent to that address!)
|
|
%%
|
|
%%
|
|
%% Copyright (C) 1993-2020
|
|
%% The LaTeX3 Project and any individual authors listed elsewhere
|
|
%% in this file.
|
|
%%
|
|
%% This file was generated from file(s) of the LaTeX base system.
|
|
%% --------------------------------------------------------------
|
|
%%
|
|
%% It may be distributed and/or modified under the
|
|
%% conditions of the LaTeX Project Public License, either version 1.3c
|
|
%% of this license or (at your option) any later version.
|
|
%% The latest version of this license is in
|
|
%% https://www.latex-project.org/lppl.txt
|
|
%% and version 1.3c or later is part of all distributions of LaTeX
|
|
%% version 2008 or later.
|
|
%%
|
|
%% This file has the LPPL maintenance status "maintained".
|
|
%%
|
|
%% This file may only be distributed together with a copy of the LaTeX
|
|
%% base system. You may however distribute the LaTeX base system without
|
|
%% such generated files.
|
|
%%
|
|
%% The list of all files belonging to the LaTeX base distribution is
|
|
%% given in the file `manifest.txt'. See also `legal.txt' for additional
|
|
%% information.
|
|
%%
|
|
%% The list of derived (unpacked) files belonging to the distribution
|
|
%% and covered by LPPL is defined by the unpacking scripts (with
|
|
%% extension .ins) which are part of the distribution.
|
|
\ProvidesFile{utf8.def}
|
|
[2019/11/14 v1.2k UTF-8 support for inputenc]
|
|
\ifx\ifincsname\@undefined % old e-pTeX or e-upTeX engines
|
|
\input utf8-2018.def
|
|
\expandafter\@firstofone
|
|
\else
|
|
\expandafter\@gobble
|
|
\fi
|
|
\endinput
|
|
\makeatletter
|
|
\catcode`\ \saved@space@catcode
|
|
\long\def\UTFviii@two@octets{%
|
|
\ifincsname
|
|
\expandafter \UTF@two@octets@string
|
|
\else
|
|
\ifx \protect\@typeset@protect \else
|
|
\expandafter\expandafter\expandafter \UTF@two@octets@noexpand
|
|
\fi
|
|
\fi
|
|
\UTFviii@two@octets@combine
|
|
}
|
|
|
|
\long\def\UTFviii@three@octets{%
|
|
\ifincsname
|
|
\expandafter \UTF@three@octets@string
|
|
\else
|
|
\ifx \protect\@typeset@protect \else
|
|
\expandafter\expandafter\expandafter \UTF@three@octets@noexpand
|
|
\fi
|
|
\fi
|
|
\UTFviii@three@octets@combine
|
|
}
|
|
\long\def\UTFviii@four@octets{%
|
|
\ifincsname
|
|
\expandafter \UTF@four@octets@string
|
|
\else
|
|
\ifx \protect\@typeset@protect \else
|
|
\expandafter\expandafter\expandafter \UTF@four@octets@noexpand
|
|
\fi
|
|
\fi
|
|
\UTFviii@four@octets@combine
|
|
}
|
|
\long\def\UTF@two@octets@noexpand#1#2{\noexpand#2\noexpand}
|
|
\long\def\UTF@three@octets@noexpand#1#2#3{\noexpand#2\noexpand#3\noexpand}
|
|
\long\def\UTF@four@octets@noexpand#1#2#3#4{\noexpand#2\noexpand#3\noexpand#4\noexpand}
|
|
|
|
\long\def\UTF@two@octets@string#1#2{\string#2\string}
|
|
\long\def\UTF@three@octets@string#1#2#3{\string#2\string#3\string}
|
|
\long\def\UTF@four@octets@string#1#2#3#4{\string#2\string#3\string#4\string}
|
|
|
|
\long\def\UTFviii@two@octets@combine#1#2{\expandafter
|
|
\UTFviii@defined\csname u8:\string#1\string#2\endcsname}
|
|
\long\def\UTFviii@three@octets@combine#1#2#3{\expandafter
|
|
\UTFviii@defined\csname u8:\string#1\string#2\string#3\endcsname}
|
|
\long\def\UTFviii@four@octets@combine#1#2#3#4{\expandafter
|
|
\UTFviii@defined\csname u8:\string#1\string#2\string#3\string#4\endcsname}
|
|
\def\UTFviii@defined#1{%
|
|
\ifx#1\relax
|
|
\if\relax\expandafter\UTFviii@checkseq\string#1\relax\relax
|
|
\UTFviii@undefined@err{#1}%
|
|
\else
|
|
\PackageError{inputenc}{Invalid UTF-8 byte sequence}%
|
|
\UTFviii@invalid@help
|
|
\fi
|
|
\else\expandafter
|
|
#1%
|
|
\fi
|
|
}
|
|
\def\UTFviii@invalid@err#1{%
|
|
\PackageError{inputenc}{Invalid UTF-8 byte "\UTFviii@hexnumber{`#1}}%
|
|
\UTFviii@invalid@help}
|
|
\def\UTFviii@invalid@help{%
|
|
The document does not appear to be in UTF-8 encoding.\MessageBreak
|
|
Try adding \noexpand\UseRawInputEncoding as the first line of the file\MessageBreak
|
|
or specify an encoding such as \noexpand\usepackage[latin1]{inputenc}\MessageBreak
|
|
in the document preamble.\MessageBreak
|
|
Alternatively, save the file in UTF-8 using your editor or another tool}
|
|
\def\UTFviii@undefined@err#1{%
|
|
\PackageError{inputenc}{Unicode character \expandafter
|
|
\UTFviii@splitcsname\string#1\relax
|
|
\MessageBreak
|
|
not set up for use with LaTeX}%
|
|
{You may provide a definition with\MessageBreak
|
|
\noexpand\DeclareUnicodeCharacter}%
|
|
}
|
|
\def\UTFviii@checkseq#1:#2#3{%
|
|
\ifnum`#2<"80 %
|
|
\ifx\relax#3\else1\fi
|
|
\else
|
|
\ifnum`#2<"C0 %
|
|
1 %
|
|
\else
|
|
\expandafter\expandafter\expandafter\UTFviii@check@continue
|
|
\expandafter\expandafter\expandafter#3%
|
|
\fi
|
|
\fi}
|
|
\def\UTFviii@check@continue#1{%
|
|
\ifx\relax#1%
|
|
\else
|
|
\ifnum`#1<"80 1\else\ifnum`#1>"BF 1\fi\fi
|
|
\expandafter\UTFviii@check@continue
|
|
\fi
|
|
}
|
|
\begingroup
|
|
\catcode`\~13
|
|
\catcode`\"12
|
|
\def\UTFviii@loop{%
|
|
\uccode`\~\count@
|
|
\uppercase\expandafter{\UTFviii@tmp}%
|
|
\advance\count@\@ne
|
|
\ifnum\count@<\@tempcnta
|
|
\expandafter\UTFviii@loop
|
|
\fi}
|
|
\def\UTFviii@tmp{\xdef~{\noexpand\UTFviii@undefined@err{:\string~}}}
|
|
\count@"1
|
|
\@tempcnta9
|
|
\UTFviii@loop
|
|
\count@11
|
|
\@tempcnta12
|
|
\UTFviii@loop
|
|
\count@14
|
|
\@tempcnta32
|
|
\UTFviii@loop
|
|
\count@"80
|
|
\@tempcnta"C2
|
|
\def\UTFviii@tmp{\xdef~{\noexpand\UTFviii@invalid@err\string~}}
|
|
\UTFviii@loop
|
|
\count@"C2
|
|
\@tempcnta"E0
|
|
\def\UTFviii@tmp{\xdef~{\noexpand\UTFviii@two@octets\noexpand~}}
|
|
\UTFviii@loop
|
|
\count@"E0
|
|
\@tempcnta"F0
|
|
\def\UTFviii@tmp{\xdef~{\noexpand\UTFviii@three@octets\noexpand~}}
|
|
\UTFviii@loop
|
|
\count@"F0
|
|
\@tempcnta"F5
|
|
\def\UTFviii@tmp{\xdef~{\noexpand\UTFviii@four@octets\noexpand~}}
|
|
\UTFviii@loop
|
|
\count@"F5
|
|
\@tempcnta"100
|
|
\def\UTFviii@tmp{\xdef~{\noexpand\UTFviii@invalid@err\string~}}
|
|
\UTFviii@loop
|
|
\endgroup
|
|
\@inpenc@test
|
|
\ifx\@begindocumenthook\@undefined
|
|
\makeatother
|
|
\endinput \fi
|
|
\begingroup
|
|
\catcode`\"=12
|
|
\catcode`\<=12
|
|
\catcode`\.=12
|
|
\catcode`\,=12
|
|
\catcode`\;=12
|
|
\catcode`\!=12
|
|
\catcode`\~=13
|
|
\gdef\DeclareUnicodeCharacter#1#2{%
|
|
\count@"#1\relax
|
|
\wlog{ \space\space defining Unicode char U+#1 (decimal \the\count@)}%
|
|
\begingroup
|
|
\parse@XML@charref
|
|
\def\UTFviii@two@octets##1##2{\csname u8:##1\string##2\endcsname}%
|
|
\def\UTFviii@three@octets##1##2##3{\csname u8:##1%
|
|
\string##2\string##3\endcsname}%
|
|
\def\UTFviii@four@octets##1##2##3##4{\csname u8:##1%
|
|
\string##2\string##3\string##4\endcsname}%
|
|
\expandafter\expandafter\expandafter
|
|
\expandafter\expandafter\expandafter
|
|
\expandafter
|
|
\gdef\UTFviii@tmp{\IeC{#2}}%
|
|
\endgroup
|
|
}
|
|
\gdef\parse@XML@charref{%
|
|
\ifnum\count@<"A0\relax
|
|
\ifnum\catcode\count@=13
|
|
\uccode`\~=\count@\uppercase{\def\UTFviii@tmp{\@empty\@empty~}}%
|
|
\else
|
|
\PackageError{inputenc}%
|
|
{Cannot define non-active Unicode char value < 00A0}%
|
|
\@eha
|
|
\def\UTFviii@tmp{\UTFviii@tmp}%
|
|
\fi
|
|
\else\ifnum\count@<"800\relax
|
|
\parse@UTFviii@a,%
|
|
\parse@UTFviii@b C\UTFviii@two@octets.,%
|
|
\else\ifnum\count@<"10000\relax
|
|
\parse@UTFviii@a;%
|
|
\parse@UTFviii@a,%
|
|
\parse@UTFviii@b E\UTFviii@three@octets.{,;}%
|
|
\else
|
|
\ifnum\count@>"10FFFF\relax
|
|
\PackageError{inputenc}%
|
|
{\UTFviii@hexnumber\count@\space too large for Unicode}%
|
|
{Values between 0 and 10FFFF are permitted}%
|
|
\fi
|
|
\parse@UTFviii@a;%
|
|
\parse@UTFviii@a,%
|
|
\parse@UTFviii@a!%
|
|
\parse@UTFviii@b F\UTFviii@four@octets.{!,;}%
|
|
\fi
|
|
\fi
|
|
\fi
|
|
}
|
|
\gdef\parse@UTFviii@a#1{%
|
|
\@tempcnta\count@
|
|
\divide\count@ 64
|
|
\@tempcntb\count@
|
|
\multiply\count@ 64
|
|
\advance\@tempcnta-\count@
|
|
\advance\@tempcnta 128
|
|
\uccode`#1\@tempcnta
|
|
\count@\@tempcntb}
|
|
\gdef\parse@UTFviii@b#1#2#3#4{%
|
|
\advance\count@ "#10\relax
|
|
\uccode`#3\count@
|
|
\uppercase{\gdef\UTFviii@tmp{#2#3#4}}}
|
|
\ifx\numexpr\@undefined
|
|
\gdef\decode@UTFviii#1{0}
|
|
\else
|
|
\gdef\decode@UTFviii#1\relax{%
|
|
\expandafter\UTFviii@cleanup
|
|
\the\numexpr\dec@de@UTFviii#1\relax)))))\@empty}
|
|
\gdef\UTFviii@cleanup#1)#2\@empty{#1}
|
|
\gdef\dec@de@UTFviii#1{%
|
|
\ifx\relax#1%
|
|
\else
|
|
\ifnum`#1>"EF
|
|
((((`#1-"F0)%
|
|
\else
|
|
\ifnum`#1>"DF
|
|
(((`#1-"E0)%
|
|
\else
|
|
\ifnum`#1>"BF
|
|
((`#1-"C0)%
|
|
\else
|
|
\ifnum`#1>"7F
|
|
)*64+(`#1-"80)%
|
|
\else
|
|
+`#1 %
|
|
\fi
|
|
\fi
|
|
\fi
|
|
\fi
|
|
\expandafter\dec@de@UTFviii
|
|
\fi}
|
|
\fi
|
|
\ifx\numexpr\@undefined
|
|
\global\let\UTFviii@hexnumber\@firstofone
|
|
\global\UTFviii@hexdigit\hexnumber@
|
|
\else
|
|
\gdef\UTFviii@hexnumber#1{%
|
|
\ifnum#1>15 %
|
|
\expandafter\UTFviii@hexnumber\expandafter{\the\numexpr(#1-8)/16\relax}%
|
|
\fi
|
|
\UTFviii@hexdigit{\numexpr#1\ifnum#1>0-((#1-8)/16)*16\fi\relax}%
|
|
}
|
|
\gdef\UTFviii@hexdigit#1{\ifcase\numexpr#1\relax
|
|
0\or1\or2\or3\or4\or5\or6\or7\or8\or9\or
|
|
A\or B\or C\or D\or E\or F\fi}
|
|
\fi
|
|
\gdef\UTFviii@hexcodepoint#1{U+%
|
|
\ifnum#1<16 0\fi
|
|
\ifnum#1<256 0\fi
|
|
\ifnum#1<4096 0\fi
|
|
\UTFviii@hexnumber{#1}%
|
|
}%
|
|
\gdef\UTFviii@splitcsname#1:#2\relax{%
|
|
#2 (\expandafter\UTFviii@hexcodepoint\expandafter{%
|
|
\the\numexpr\decode@UTFviii#2\relax})%
|
|
}
|
|
\endgroup
|
|
\@onlypreamble\DeclareUnicodeCharacter
|
|
\@onlypreamble\parse@XML@charref
|
|
\@onlypreamble\parse@UTFviii@a
|
|
\@onlypreamble\parse@UTFviii@b
|
|
\begingroup
|
|
\def\cdp@elt#1#2#3#4{%
|
|
\wlog{Now handling font encoding #1 ...}%
|
|
\lowercase{%
|
|
\InputIfFileExists{#1enc.dfu}}%
|
|
{\wlog{... processing UTF-8 mapping file for font %
|
|
encoding #1}%
|
|
\catcode`\ 9\relax}%
|
|
{\wlog{... no UTF-8 mapping file for font encoding #1}}%
|
|
}
|
|
\cdp@list
|
|
\endgroup
|
|
\def\DeclareFontEncoding@#1#2#3{%
|
|
\expandafter
|
|
\ifx\csname T@#1\endcsname\relax
|
|
\def\cdp@elt{\noexpand\cdp@elt}%
|
|
\xdef\cdp@list{\cdp@list\cdp@elt{#1}%
|
|
{\default@family}{\default@series}%
|
|
{\default@shape}}%
|
|
\expandafter\let\csname#1-cmd\endcsname\@changed@cmd
|
|
\begingroup
|
|
\wlog{Now handling font encoding #1 ...}%
|
|
\lowercase{%
|
|
\InputIfFileExists{#1enc.dfu}}%
|
|
{\wlog{... processing UTF-8 mapping file for font %
|
|
encoding #1}}%
|
|
{\wlog{... no UTF-8 mapping file for font encoding #1}}%
|
|
\endgroup
|
|
\else
|
|
\@font@info{Redeclaring font encoding #1}%
|
|
\fi
|
|
\global\@namedef{T@#1}{#2}%
|
|
\global\@namedef{M@#1}{\default@M#3}%
|
|
\xdef\LastDeclaredEncoding{#1}%
|
|
}
|
|
\DeclareUnicodeCharacter{00A9}{\textcopyright}
|
|
\DeclareUnicodeCharacter{00AA}{\textordfeminine}
|
|
\DeclareUnicodeCharacter{00AE}{\textregistered}
|
|
\DeclareUnicodeCharacter{00BA}{\textordmasculine}
|
|
\DeclareUnicodeCharacter{02C6}{\textasciicircum}
|
|
\DeclareUnicodeCharacter{02DC}{\textasciitilde}
|
|
\DeclareUnicodeCharacter{200C}{\textcompwordmark}
|
|
\DeclareUnicodeCharacter{2026}{\textellipsis}
|
|
\DeclareUnicodeCharacter{2122}{\texttrademark}
|
|
\DeclareUnicodeCharacter{2423}{\textvisiblespace}
|
|
\DeclareUnicodeCharacter{FEFF}{\ifhmode\nobreak\fi}
|
|
\endinput
|
|
%%
|
|
%% End of file `utf8.def'.
|
|
|