From 70aaae3b3c98fb6357c846ad54ce2367e9682f50 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 4 Oct 2019 20:57:14 +0000 Subject: latex2e (4oct19) git-svn-id: svn://tug.org/texlive/trunk@52286 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/latex/base/utf8-2018.def | 321 +++++++++++++++++++++++++ 1 file changed, 321 insertions(+) create mode 100644 Master/texmf-dist/tex/latex/base/utf8-2018.def (limited to 'Master/texmf-dist/tex/latex/base/utf8-2018.def') diff --git a/Master/texmf-dist/tex/latex/base/utf8-2018.def b/Master/texmf-dist/tex/latex/base/utf8-2018.def new file mode 100644 index 00000000000..576ad88d444 --- /dev/null +++ b/Master/texmf-dist/tex/latex/base/utf8-2018.def @@ -0,0 +1,321 @@ +%% +%% This is file `utf8-2018.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% utf8ienc.dtx (with options: `utf8-2018') +%% +%% 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} + [2018/10/05 v1.2f UTF-8 support for inputenc] +\makeatletter +\catcode`\ \saved@space@catcode +\long\def\UTFviii@two@octets#1#2{\expandafter + \UTFviii@defined\csname u8:#1\string#2\endcsname} +\long\def\UTFviii@three@octets#1#2#3{\expandafter + \UTFviii@defined\csname u8:#1\string#2\string#3\endcsname} +\long\def\UTFviii@four@octets#1#2#3#4{\expandafter + \UTFviii@defined\csname u8:#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\string~}} +\UTFviii@loop + \count@"E0 + \@tempcnta"F0 + \def\UTFviii@tmp{\xdef~{\noexpand\UTFviii@three@octets\string~}} +\UTFviii@loop + \count@"F0 + \@tempcnta"F5 + \def\UTFviii@tmp{\xdef~{\noexpand\UTFviii@four@octets\string~}} +\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-2018.def'. -- cgit v1.2.3