%% %% 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-2019 %% 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'.