%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% PlainTeX UTF-8 macro
%% Inspired by texinfo macros.

% Change the current font style to #1, remembering it in \curfontstyle.
% For now, we do not accumulate font styles: @b{@i{foo}} prints foo in
% italics, not bold italics.
%
\def\setfontstyle#1{%
  \def\curfontstyle{#1}% not as a control sequence, because we are \edef'd.
  \csname ten#1\endcsname  % change the current font
}

% Select #1 fonts with the current style.
%
\def\rm{\fam=0 \setfontstyle{rm}}
\def\it{\fam=\itfam \setfontstyle{it}}
\def\sl{\fam=\slfam \setfontstyle{sl}}
\def\bf{\fam=\bffam \setfontstyle{bf}}\def\bfstylename{bf}
\def\tt{\fam=\ttfam \setfontstyle{tt}}


% This macro is used to make a character print one way in \tt
% (where it can probably be output as-is), and another way in other fonts,
% where something hairier probably needs to be done.
%
% #1 is what to print if we are indeed using \tt; #2 is what to print
% otherwise.  Since all the Computer Modern typewriter fonts have zero
% interword stretch (and shrink), and it is reasonable to expect all
% typewriter fonts to have this, we can check that font parameter.
%
\def\ifusingtt#1#2{\ifdim \fontdimen3\font=0pt #1\else #2\fi}

% Same as above, but check for italic font.  Actually this also catches
% non-italic slanted fonts since it is impossible to distinguish them from
% italic fonts.  But since this is only used by $ and it uses \sl anyway
% this is not a problem.
\def\ifusingit#1#2{\ifdim \fontdimen1\font>0pt #1\else #2\fi}

\def\textnominalsize{10pt}

% Fonts for indices, footnotes, small examples (9pt).
\def\smallnominalsize{9pt}

% Fonts for small examples (8pt).
\def\smallernominalsize{8pt}

% Fonts for title page (20.4pt):
\def\titlenominalsize{20pt}

% Chapter fonts (14.4pt).
\def\chapnominalsize{14pt}

% Section fonts (12pt).
\def\secnominalsize{12pt}

% Subsection fonts (10pt).
\def\ssecnominalsize{10pt}

% Reduced fonts for @acro in text (9pt).
\def\reducednominalsize{9pt}

\def\curfontsize{text}

% @euro{} comes from a separate font, depending on the current style.
% We use the free feym* fonts from the eurosym package by Henrik
% Theiling, which support regular, slanted, bold and bold slanted (and
% "outlined" (blackboard board, sort of) versions, which we don't need).
% It is available from http://www.ctan.org/tex-archive/fonts/eurosym.
%
% Although only regular is the truly official Euro symbol, we ignore
% that.  The Euro is designed to be slightly taller than the regular
% font height.
%
% feymr - regular
% feymo - slanted
% feybr - bold
% feybo - bold slanted
%
% There is no good (free) typewriter version, to my knowledge.
% A feymr10 euro is ~7.3pt wide, while a normal cmtt10 char is ~5.25pt wide.
% Hmm.
%
% Also doesn't work in math.  Do we need to do math with euro symbols?
% Hope not.
%
%
\def\euro{{\eurofont e}}
\def\eurofont{%
  % We set the font at each command, rather than predefining it in
  % \textfonts and the other font-switching commands, so that
  % installations which never need the symbol don't have to have the
  % font installed.
  %
  % There is only one designed size (nominal 10pt), so we always scale
  % that to the current nominal size.
  %
  % By the way, simply using "at 1em" works for cmr10 and the like, but
  % does not work for cmbx10 and other extended/shrunken fonts.
  %
  \def\eurosize{\csname\curfontsize nominalsize\endcsname}%
  %
  \ifx\curfontstyle\bfstylename
    % bold:
    \font\thiseurofont = \ifusingit{feybo10}{feybr10} at \eurosize
  \else
    % regular:
    \font\thiseurofont = \ifusingit{feymo10}{feymr10} at \eurosize
  \fi
  \thiseurofont
}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% sometimes characters are active, so we need control sequences.
\chardef\ampChar   = `\&
\chardef\colonChar = `\:
\chardef\commaChar = `\,
\chardef\dashChar  = `\-
\chardef\dotChar   = `\.
\chardef\exclamChar= `\!
\chardef\hashChar  = `\#
\chardef\lquoteChar= `\`
\chardef\questChar = `\?
\chardef\rquoteChar= `\'
\chardef\semiChar  = `\;
\chardef\slashChar = `\/
\chardef\underChar = `\_

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% This macro is called from txi-??.tex files; the first argument is the
% \language name to set (without the "\lang@" prefix), the second and
% third args are \{left,right}hyphenmin.
%
% The language names to pass are determined when the format is built.
% See the etex.log file created at that time, e.g.,
% /usr/local/texlive/2008/texmf-var/web2c/pdftex/etex.log.
%
% With TeX Live 2008, etex now includes hyphenation patterns for all
% available languages.  This means we can support hyphenation in
% Texinfo, at least to some extent.  (This still doesn't solve the
% accented characters problem.)
%
\catcode`@=11
\def\txisetlanguage#1#2#3{%
  % do not set the language if the name is undefined in the current TeX.
  \expandafter\ifx\csname lang@#1\endcsname \relax
    \message{no patterns for #1}%
  \else
    \global\language = \csname lang@#1\endcsname
  \fi
  % but there is no harm in adjusting the hyphenmin values regardless.
  \global\lefthyphenmin = #2\relax
  \global\righthyphenmin = #3\relax
}


% Set sfcode to normal for the chars that usually have another value.
% Can't use plain's \frenchspacing because it uses the `\x notation, and
% sometimes \x has an active definition that messes things up.
%
\catcode`@=11
  \def\plainfrenchspacing{%
    \sfcode\dotChar  =\@m \sfcode\questChar=\@m \sfcode\exclamChar=\@m
    \sfcode\colonChar=\@m \sfcode\semiChar =\@m \sfcode\commaChar =\@m
    \def\endofsentencespacefactor{1000}% for @. and friends
  }
  \def\plainnonfrenchspacing{%
    \sfcode`\.3000\sfcode`\?3000\sfcode`\!3000
    \sfcode`\:2000\sfcode`\;1500\sfcode`\,1250
    \def\endofsentencespacefactor{3000}% for @. and friends
  }
% \catcode`@=\other
% \def\endofsentencespacefactor{3000}% default

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Helpers for encodings.
% Set the catcode of characters 128 through 255 to the specified number.
%
\def\setnonasciicharscatcode#1{%
   \count255=128
   \loop\ifnum\count255<256
      \global\catcode\count255=#1\relax
      \advance\count255 by 1
   \repeat
}

% Take account of \c (plain) vs. \, (Texinfo) difference.
% \def\cedilla#1{\ifx\c\ptexc\c{#1}\else\,{#1}\fi}
\def\cedilla#1{\c{#1}}


% Dotless i and dotless j, used for accents.
\def\imacro{i}
\def\jmacro{j}
\def\dotless#1{%
  \def\temp{#1}%
  \ifx\temp\imacro \ifmmode\imath \else\i \fi
  \else\ifx\temp\jmacro \ifmmode\jmath \else\j \fi
  \else \errmessage{@dotless can be used only with i or j}%
  \fi\fi
}


% \setnonasciicharscatcode\active

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% UTF-8 character definitions.
%
% This code to support UTF-8 is based on LaTeX's utf8.def, with some
% changes for Texinfo conventions.  It is included here under the GPL by
% permission from Frank Mittelbach and the LaTeX team.
%
\newcount\countUTFx
\newcount\countUTFy
\newcount\countUTFz

\gdef\UTFviiiTwoOctets#1#2{\expandafter
   \UTFviiiDefined\csname u8:#1\string #2\endcsname}
%
\gdef\UTFviiiThreeOctets#1#2#3{\expandafter
   \UTFviiiDefined\csname u8:#1\string #2\string #3\endcsname}
%
\gdef\UTFviiiFourOctets#1#2#3#4{\expandafter
   \UTFviiiDefined\csname u8:#1\string #2\string #3\string #4\endcsname}

\gdef\UTFviiiDefined#1{%
  \ifx #1\relax
    \message{\linenumber Unicode char \string #1 not defined for Texinfo}%
  \else
    \expandafter #1%
  \fi
}

\begingroup
  \catcode`\~13
  \catcode`\"12

  \def\UTFviiiLoop{%
    \global\catcode\countUTFx\active
    \uccode`\~\countUTFx
    \uppercase\expandafter{\UTFviiiTmp}%
    \advance\countUTFx by 1
    \ifnum\countUTFx < \countUTFy
      \expandafter\UTFviiiLoop
    \fi}

  \countUTFx = "C2
  \countUTFy = "E0
  \def\UTFviiiTmp{%
    \xdef~{\noexpand\UTFviiiTwoOctets\string~}}
  \UTFviiiLoop

  \countUTFx = "E0
  \countUTFy = "F0
  \def\UTFviiiTmp{%
    \xdef~{\noexpand\UTFviiiThreeOctets\string~}}
  \UTFviiiLoop

  \countUTFx = "F0
  \countUTFy = "F4
  \def\UTFviiiTmp{%
    \xdef~{\noexpand\UTFviiiFourOctets\string~}}
  \UTFviiiLoop
\endgroup

\begingroup
  \catcode`\"=12
  \catcode`\<=12
  \catcode`\.=12
  \catcode`\,=12
  \catcode`\;=12
  \catcode`\!=12
  \catcode`\~=13

  \gdef\DeclareUnicodeCharacter#1#2{%
    \countUTFz = "#1\relax
    %\wlog{\space\space defining Unicode char U+#1 (decimal \the\countUTFz)}%
    \begingroup
      \parseXMLCharref
      \def\UTFviiiTwoOctets##1##2{%
        \csname u8:##1\string ##2\endcsname}%
      \def\UTFviiiThreeOctets##1##2##3{%
        \csname u8:##1\string ##2\string ##3\endcsname}%
      \def\UTFviiiFourOctets##1##2##3##4{%
        \csname u8:##1\string ##2\string ##3\string ##4\endcsname}%
      \expandafter\expandafter\expandafter\expandafter
       \expandafter\expandafter\expandafter
       \gdef\UTFviiiTmp{#2}%
    \endgroup}

  \gdef\parseXMLCharref{%
    \ifnum\countUTFz < "A0\relax
      \errhelp = \EMsimple
      \errmessage{Cannot define Unicode char value < 00A0}%
    \else\ifnum\countUTFz < "800\relax
      \parseUTFviiiA,%
      \parseUTFviiiB C\UTFviiiTwoOctets.,%
    \else\ifnum\countUTFz < "10000\relax
      \parseUTFviiiA;%
      \parseUTFviiiA,%
      \parseUTFviiiB E\UTFviiiThreeOctets.{,;}%
    \else
      \parseUTFviiiA;%
      \parseUTFviiiA,%
      \parseUTFviiiA!%
      \parseUTFviiiB F\UTFviiiFourOctets.{!,;}%
    \fi\fi\fi
  }

  \gdef\parseUTFviiiA#1{%
    \countUTFx = \countUTFz
    \divide\countUTFz by 64
    \countUTFy = \countUTFz
    \multiply\countUTFz by 64
    \advance\countUTFx by -\countUTFz
    \advance\countUTFx by 128
    \uccode `#1\countUTFx
    \countUTFz = \countUTFy}

  \gdef\parseUTFviiiB#1#2#3#4{%
    \advance\countUTFz by "#10\relax
    \uccode `#3\countUTFz
    \uppercase{\gdef\UTFviiiTmp{#2#3#4}}}
\endgroup

\def\utfeightchardefs{%
  \DeclareUnicodeCharacter{00A0}{\tie}
  \DeclareUnicodeCharacter{00A1}{\exclamdown}
  \DeclareUnicodeCharacter{00A3}{\pounds}
  \DeclareUnicodeCharacter{00A8}{\"{ }}
  \DeclareUnicodeCharacter{00A9}{\copyright}
  \DeclareUnicodeCharacter{00AA}{\ordf}
  \DeclareUnicodeCharacter{00AB}{\guillemetleft}
  \DeclareUnicodeCharacter{00AD}{\-}
  \DeclareUnicodeCharacter{00AE}{\registeredsymbol}
  \DeclareUnicodeCharacter{00AF}{\={ }}

  \DeclareUnicodeCharacter{00B0}{\ringaccent{ }}
  \DeclareUnicodeCharacter{00B4}{\'{ }}
  \DeclareUnicodeCharacter{00B8}{\cedilla{ }}
  \DeclareUnicodeCharacter{00BA}{\ordm}
  \DeclareUnicodeCharacter{00BB}{\guillemetright}
  \DeclareUnicodeCharacter{00BF}{\questiondown}

  \DeclareUnicodeCharacter{00C0}{\`A}
  \DeclareUnicodeCharacter{00C1}{\'A}
  \DeclareUnicodeCharacter{00C2}{\^A}
  \DeclareUnicodeCharacter{00C3}{\~A}
  \DeclareUnicodeCharacter{00C4}{\"A}
  \DeclareUnicodeCharacter{00C5}{\AA}
  \DeclareUnicodeCharacter{00C6}{\AE}
  \DeclareUnicodeCharacter{00C7}{\cedilla{C}}
  \DeclareUnicodeCharacter{00C8}{\`E}
  \DeclareUnicodeCharacter{00C9}{\'E}
  \DeclareUnicodeCharacter{00CA}{\^E}
  \DeclareUnicodeCharacter{00CB}{\"E}
  \DeclareUnicodeCharacter{00CC}{\`I}
  \DeclareUnicodeCharacter{00CD}{\'I}
  \DeclareUnicodeCharacter{00CE}{\^I}
  \DeclareUnicodeCharacter{00CF}{\"I}

  \DeclareUnicodeCharacter{00D0}{\DH}
  \DeclareUnicodeCharacter{00D1}{\~N}
  \DeclareUnicodeCharacter{00D2}{\`O}
  \DeclareUnicodeCharacter{00D3}{\'O}
  \DeclareUnicodeCharacter{00D4}{\^O}
  \DeclareUnicodeCharacter{00D5}{\~O}
  \DeclareUnicodeCharacter{00D6}{\"O}
  \DeclareUnicodeCharacter{00D8}{\O}
  \DeclareUnicodeCharacter{00D9}{\`U}
  \DeclareUnicodeCharacter{00DA}{\'U}
  \DeclareUnicodeCharacter{00DB}{\^U}
  \DeclareUnicodeCharacter{00DC}{\"U}
  \DeclareUnicodeCharacter{00DD}{\'Y}
  \DeclareUnicodeCharacter{00DE}{\TH}
  \DeclareUnicodeCharacter{00DF}{\ss}

  \DeclareUnicodeCharacter{00E0}{\`a}
  \DeclareUnicodeCharacter{00E1}{\'a}
  \DeclareUnicodeCharacter{00E2}{\^a}
  \DeclareUnicodeCharacter{00E3}{\~a}
  \DeclareUnicodeCharacter{00E4}{\"a}
  \DeclareUnicodeCharacter{00E5}{\aa}
  \DeclareUnicodeCharacter{00E6}{\ae}
  \DeclareUnicodeCharacter{00E7}{\cedilla{c}}
  \DeclareUnicodeCharacter{00E8}{\`e}
  \DeclareUnicodeCharacter{00E9}{\'e}
  \DeclareUnicodeCharacter{00EA}{\^e}
  \DeclareUnicodeCharacter{00EB}{\"e}
  \DeclareUnicodeCharacter{00EC}{\`{\dotless{i}}}
  \DeclareUnicodeCharacter{00ED}{\'{\dotless{i}}}
  \DeclareUnicodeCharacter{00EE}{\^{\dotless{i}}}
  \DeclareUnicodeCharacter{00EF}{\"{\dotless{i}}}

  \DeclareUnicodeCharacter{00F0}{\dh}
  \DeclareUnicodeCharacter{00F1}{\~n}
  \DeclareUnicodeCharacter{00F2}{\`o}
  \DeclareUnicodeCharacter{00F3}{\'o}
  \DeclareUnicodeCharacter{00F4}{\^o}
  \DeclareUnicodeCharacter{00F5}{\~o}
  \DeclareUnicodeCharacter{00F6}{\"o}
  \DeclareUnicodeCharacter{00F8}{\o}
  \DeclareUnicodeCharacter{00F9}{\`u}
  \DeclareUnicodeCharacter{00FA}{\'u}
  \DeclareUnicodeCharacter{00FB}{\^u}
  \DeclareUnicodeCharacter{00FC}{\"u}
  \DeclareUnicodeCharacter{00FD}{\'y}
  \DeclareUnicodeCharacter{00FE}{\th}
  \DeclareUnicodeCharacter{00FF}{\"y}

  \DeclareUnicodeCharacter{0100}{\=A}
  \DeclareUnicodeCharacter{0101}{\=a}
  \DeclareUnicodeCharacter{0102}{\u{A}}
  \DeclareUnicodeCharacter{0103}{\u{a}}
  \DeclareUnicodeCharacter{0104}{\ogonek{A}}
  \DeclareUnicodeCharacter{0105}{\ogonek{a}}
  \DeclareUnicodeCharacter{0106}{\'C}
  \DeclareUnicodeCharacter{0107}{\'c}
  \DeclareUnicodeCharacter{0108}{\^C}
  \DeclareUnicodeCharacter{0109}{\^c}
  \DeclareUnicodeCharacter{0118}{\ogonek{E}}
  \DeclareUnicodeCharacter{0119}{\ogonek{e}}
  \DeclareUnicodeCharacter{010A}{\dotaccent{C}}
  \DeclareUnicodeCharacter{010B}{\dotaccent{c}}
  \DeclareUnicodeCharacter{010C}{\v{C}}
  \DeclareUnicodeCharacter{010D}{\v{c}}
  \DeclareUnicodeCharacter{010E}{\v{D}}

  \DeclareUnicodeCharacter{0112}{\=E}
  \DeclareUnicodeCharacter{0113}{\=e}
  \DeclareUnicodeCharacter{0114}{\u{E}}
  \DeclareUnicodeCharacter{0115}{\u{e}}
  \DeclareUnicodeCharacter{0116}{\dotaccent{E}}
  \DeclareUnicodeCharacter{0117}{\dotaccent{e}}
  \DeclareUnicodeCharacter{011A}{\v{E}}
  \DeclareUnicodeCharacter{011B}{\v{e}}
  \DeclareUnicodeCharacter{011C}{\^G}
  \DeclareUnicodeCharacter{011D}{\^g}
  \DeclareUnicodeCharacter{011E}{\u{G}}
  \DeclareUnicodeCharacter{011F}{\u{g}}

  \DeclareUnicodeCharacter{0120}{\dotaccent{G}}
  \DeclareUnicodeCharacter{0121}{\dotaccent{g}}
  \DeclareUnicodeCharacter{0124}{\^H}
  \DeclareUnicodeCharacter{0125}{\^h}
  \DeclareUnicodeCharacter{0128}{\~I}
  \DeclareUnicodeCharacter{0129}{\~{\dotless{i}}}
  \DeclareUnicodeCharacter{012A}{\=I}
  \DeclareUnicodeCharacter{012B}{\={\dotless{i}}}
  \DeclareUnicodeCharacter{012C}{\u{I}}
  \DeclareUnicodeCharacter{012D}{\u{\dotless{i}}}

  \DeclareUnicodeCharacter{0130}{\dotaccent{I}}
  \DeclareUnicodeCharacter{0131}{\dotless{i}}
  \DeclareUnicodeCharacter{0132}{IJ}
  \DeclareUnicodeCharacter{0133}{ij}
  \DeclareUnicodeCharacter{0134}{\^J}
  \DeclareUnicodeCharacter{0135}{\^{\dotless{j}}}
  \DeclareUnicodeCharacter{0139}{\'L}
  \DeclareUnicodeCharacter{013A}{\'l}

  \DeclareUnicodeCharacter{0141}{\L}
  \DeclareUnicodeCharacter{0142}{\l}
  \DeclareUnicodeCharacter{0143}{\'N}
  \DeclareUnicodeCharacter{0144}{\'n}
  \DeclareUnicodeCharacter{0147}{\v{N}}
  \DeclareUnicodeCharacter{0148}{\v{n}}
  \DeclareUnicodeCharacter{014C}{\=O}
  \DeclareUnicodeCharacter{014D}{\=o}
  \DeclareUnicodeCharacter{014E}{\u{O}}
  \DeclareUnicodeCharacter{014F}{\u{o}}

  \DeclareUnicodeCharacter{0150}{\H{O}}
  \DeclareUnicodeCharacter{0151}{\H{o}}
  \DeclareUnicodeCharacter{0152}{\OE}
  \DeclareUnicodeCharacter{0153}{\oe}
  \DeclareUnicodeCharacter{0154}{\'R}
  \DeclareUnicodeCharacter{0155}{\'r}
  \DeclareUnicodeCharacter{0158}{\v{R}}
  \DeclareUnicodeCharacter{0159}{\v{r}}
  \DeclareUnicodeCharacter{015A}{\'S}
  \DeclareUnicodeCharacter{015B}{\'s}
  \DeclareUnicodeCharacter{015C}{\^S}
  \DeclareUnicodeCharacter{015D}{\^s}
  \DeclareUnicodeCharacter{015E}{\cedilla{S}}
  \DeclareUnicodeCharacter{015F}{\cedilla{s}}

  \DeclareUnicodeCharacter{0160}{\v{S}}
  \DeclareUnicodeCharacter{0161}{\v{s}}
  \DeclareUnicodeCharacter{0162}{\cedilla{t}}
  \DeclareUnicodeCharacter{0163}{\cedilla{T}}
  \DeclareUnicodeCharacter{0164}{\v{T}}

  \DeclareUnicodeCharacter{0168}{\~U}
  \DeclareUnicodeCharacter{0169}{\~u}
  \DeclareUnicodeCharacter{016A}{\=U}
  \DeclareUnicodeCharacter{016B}{\=u}
  \DeclareUnicodeCharacter{016C}{\u{U}}
  \DeclareUnicodeCharacter{016D}{\u{u}}
  \DeclareUnicodeCharacter{016E}{\ringaccent{U}}
  \DeclareUnicodeCharacter{016F}{\ringaccent{u}}

  \DeclareUnicodeCharacter{0170}{\H{U}}
  \DeclareUnicodeCharacter{0171}{\H{u}}
  \DeclareUnicodeCharacter{0174}{\^W}
  \DeclareUnicodeCharacter{0175}{\^w}
  \DeclareUnicodeCharacter{0176}{\^Y}
  \DeclareUnicodeCharacter{0177}{\^y}
  \DeclareUnicodeCharacter{0178}{\"Y}
  \DeclareUnicodeCharacter{0179}{\'Z}
  \DeclareUnicodeCharacter{017A}{\'z}
  \DeclareUnicodeCharacter{017B}{\dotaccent{Z}}
  \DeclareUnicodeCharacter{017C}{\dotaccent{z}}
  \DeclareUnicodeCharacter{017D}{\v{Z}}
  \DeclareUnicodeCharacter{017E}{\v{z}}

  \DeclareUnicodeCharacter{01C4}{D\v{Z}}
  \DeclareUnicodeCharacter{01C5}{D\v{z}}
  \DeclareUnicodeCharacter{01C6}{d\v{z}}
  \DeclareUnicodeCharacter{01C7}{LJ}
  \DeclareUnicodeCharacter{01C8}{Lj}
  \DeclareUnicodeCharacter{01C9}{lj}
  \DeclareUnicodeCharacter{01CA}{NJ}
  \DeclareUnicodeCharacter{01CB}{Nj}
  \DeclareUnicodeCharacter{01CC}{nj}
  \DeclareUnicodeCharacter{01CD}{\v{A}}
  \DeclareUnicodeCharacter{01CE}{\v{a}}
  \DeclareUnicodeCharacter{01CF}{\v{I}}

  \DeclareUnicodeCharacter{01D0}{\v{\dotless{i}}}
  \DeclareUnicodeCharacter{01D1}{\v{O}}
  \DeclareUnicodeCharacter{01D2}{\v{o}}
  \DeclareUnicodeCharacter{01D3}{\v{U}}
  \DeclareUnicodeCharacter{01D4}{\v{u}}

  \DeclareUnicodeCharacter{01E2}{\={\AE}}
  \DeclareUnicodeCharacter{01E3}{\={\ae}}
  \DeclareUnicodeCharacter{01E6}{\v{G}}
  \DeclareUnicodeCharacter{01E7}{\v{g}}
  \DeclareUnicodeCharacter{01E8}{\v{K}}
  \DeclareUnicodeCharacter{01E9}{\v{k}}

  \DeclareUnicodeCharacter{01F0}{\v{\dotless{j}}}
  \DeclareUnicodeCharacter{01F1}{DZ}
  \DeclareUnicodeCharacter{01F2}{Dz}
  \DeclareUnicodeCharacter{01F3}{dz}
  \DeclareUnicodeCharacter{01F4}{\'G}
  \DeclareUnicodeCharacter{01F5}{\'g}
  \DeclareUnicodeCharacter{01F8}{\`N}
  \DeclareUnicodeCharacter{01F9}{\`n}
  \DeclareUnicodeCharacter{01FC}{\'{\AE}}
  \DeclareUnicodeCharacter{01FD}{\'{\ae}}
  \DeclareUnicodeCharacter{01FE}{\'{\O}}
  \DeclareUnicodeCharacter{01FF}{\'{\o}}

  \DeclareUnicodeCharacter{021E}{\v{H}}
  \DeclareUnicodeCharacter{021F}{\v{h}}

  \DeclareUnicodeCharacter{0226}{\dotaccent{A}}
  \DeclareUnicodeCharacter{0227}{\dotaccent{a}}
  \DeclareUnicodeCharacter{0228}{\cedilla{E}}
  \DeclareUnicodeCharacter{0229}{\cedilla{e}}
  \DeclareUnicodeCharacter{022E}{\dotaccent{O}}
  \DeclareUnicodeCharacter{022F}{\dotaccent{o}}

  \DeclareUnicodeCharacter{0232}{\=Y}
  \DeclareUnicodeCharacter{0233}{\=y}
  \DeclareUnicodeCharacter{0237}{\dotless{j}}

  \DeclareUnicodeCharacter{02DB}{\ogonek{ }}

  \DeclareUnicodeCharacter{1E02}{\dotaccent{B}}
  \DeclareUnicodeCharacter{1E03}{\dotaccent{b}}
  \DeclareUnicodeCharacter{1E04}{\udotaccent{B}}
  \DeclareUnicodeCharacter{1E05}{\udotaccent{b}}
  \DeclareUnicodeCharacter{1E06}{\ubaraccent{B}}
  \DeclareUnicodeCharacter{1E07}{\ubaraccent{b}}
  \DeclareUnicodeCharacter{1E0A}{\dotaccent{D}}
  \DeclareUnicodeCharacter{1E0B}{\dotaccent{d}}
  \DeclareUnicodeCharacter{1E0C}{\udotaccent{D}}
  \DeclareUnicodeCharacter{1E0D}{\udotaccent{d}}
  \DeclareUnicodeCharacter{1E0E}{\ubaraccent{D}}
  \DeclareUnicodeCharacter{1E0F}{\ubaraccent{d}}

  \DeclareUnicodeCharacter{1E1E}{\dotaccent{F}}
  \DeclareUnicodeCharacter{1E1F}{\dotaccent{f}}

  \DeclareUnicodeCharacter{1E20}{\=G}
  \DeclareUnicodeCharacter{1E21}{\=g}
  \DeclareUnicodeCharacter{1E22}{\dotaccent{H}}
  \DeclareUnicodeCharacter{1E23}{\dotaccent{h}}
  \DeclareUnicodeCharacter{1E24}{\udotaccent{H}}
  \DeclareUnicodeCharacter{1E25}{\udotaccent{h}}
  \DeclareUnicodeCharacter{1E26}{\"H}
  \DeclareUnicodeCharacter{1E27}{\"h}

  \DeclareUnicodeCharacter{1E30}{\'K}
  \DeclareUnicodeCharacter{1E31}{\'k}
  \DeclareUnicodeCharacter{1E32}{\udotaccent{K}}
  \DeclareUnicodeCharacter{1E33}{\udotaccent{k}}
  \DeclareUnicodeCharacter{1E34}{\ubaraccent{K}}
  \DeclareUnicodeCharacter{1E35}{\ubaraccent{k}}
  \DeclareUnicodeCharacter{1E36}{\udotaccent{L}}
  \DeclareUnicodeCharacter{1E37}{\udotaccent{l}}
  \DeclareUnicodeCharacter{1E3A}{\ubaraccent{L}}
  \DeclareUnicodeCharacter{1E3B}{\ubaraccent{l}}
  \DeclareUnicodeCharacter{1E3E}{\'M}
  \DeclareUnicodeCharacter{1E3F}{\'m}

  \DeclareUnicodeCharacter{1E40}{\dotaccent{M}}
  \DeclareUnicodeCharacter{1E41}{\dotaccent{m}}
  \DeclareUnicodeCharacter{1E42}{\udotaccent{M}}
  \DeclareUnicodeCharacter{1E43}{\udotaccent{m}}
  \DeclareUnicodeCharacter{1E44}{\dotaccent{N}}
  \DeclareUnicodeCharacter{1E45}{\dotaccent{n}}
  \DeclareUnicodeCharacter{1E46}{\udotaccent{N}}
  \DeclareUnicodeCharacter{1E47}{\udotaccent{n}}
  \DeclareUnicodeCharacter{1E48}{\ubaraccent{N}}
  \DeclareUnicodeCharacter{1E49}{\ubaraccent{n}}

  \DeclareUnicodeCharacter{1E54}{\'P}
  \DeclareUnicodeCharacter{1E55}{\'p}
  \DeclareUnicodeCharacter{1E56}{\dotaccent{P}}
  \DeclareUnicodeCharacter{1E57}{\dotaccent{p}}
  \DeclareUnicodeCharacter{1E58}{\dotaccent{R}}
  \DeclareUnicodeCharacter{1E59}{\dotaccent{r}}
  \DeclareUnicodeCharacter{1E5A}{\udotaccent{R}}
  \DeclareUnicodeCharacter{1E5B}{\udotaccent{r}}
  \DeclareUnicodeCharacter{1E5E}{\ubaraccent{R}}
  \DeclareUnicodeCharacter{1E5F}{\ubaraccent{r}}

  \DeclareUnicodeCharacter{1E60}{\dotaccent{S}}
  \DeclareUnicodeCharacter{1E61}{\dotaccent{s}}
  \DeclareUnicodeCharacter{1E62}{\udotaccent{S}}
  \DeclareUnicodeCharacter{1E63}{\udotaccent{s}}
  \DeclareUnicodeCharacter{1E6A}{\dotaccent{T}}
  \DeclareUnicodeCharacter{1E6B}{\dotaccent{t}}
  \DeclareUnicodeCharacter{1E6C}{\udotaccent{T}}
  \DeclareUnicodeCharacter{1E6D}{\udotaccent{t}}
  \DeclareUnicodeCharacter{1E6E}{\ubaraccent{T}}
  \DeclareUnicodeCharacter{1E6F}{\ubaraccent{t}}

  \DeclareUnicodeCharacter{1E7C}{\~V}
  \DeclareUnicodeCharacter{1E7D}{\~v}
  \DeclareUnicodeCharacter{1E7E}{\udotaccent{V}}
  \DeclareUnicodeCharacter{1E7F}{\udotaccent{v}}

  \DeclareUnicodeCharacter{1E80}{\`W}
  \DeclareUnicodeCharacter{1E81}{\`w}
  \DeclareUnicodeCharacter{1E82}{\'W}
  \DeclareUnicodeCharacter{1E83}{\'w}
  \DeclareUnicodeCharacter{1E84}{\"W}
  \DeclareUnicodeCharacter{1E85}{\"w}
  \DeclareUnicodeCharacter{1E86}{\dotaccent{W}}
  \DeclareUnicodeCharacter{1E87}{\dotaccent{w}}
  \DeclareUnicodeCharacter{1E88}{\udotaccent{W}}
  \DeclareUnicodeCharacter{1E89}{\udotaccent{w}}
  \DeclareUnicodeCharacter{1E8A}{\dotaccent{X}}
  \DeclareUnicodeCharacter{1E8B}{\dotaccent{x}}
  \DeclareUnicodeCharacter{1E8C}{\"X}
  \DeclareUnicodeCharacter{1E8D}{\"x}
  \DeclareUnicodeCharacter{1E8E}{\dotaccent{Y}}
  \DeclareUnicodeCharacter{1E8F}{\dotaccent{y}}

  \DeclareUnicodeCharacter{1E90}{\^Z}
  \DeclareUnicodeCharacter{1E91}{\^z}
  \DeclareUnicodeCharacter{1E92}{\udotaccent{Z}}
  \DeclareUnicodeCharacter{1E93}{\udotaccent{z}}
  \DeclareUnicodeCharacter{1E94}{\ubaraccent{Z}}
  \DeclareUnicodeCharacter{1E95}{\ubaraccent{z}}
  \DeclareUnicodeCharacter{1E96}{\ubaraccent{h}}
  \DeclareUnicodeCharacter{1E97}{\"t}
  \DeclareUnicodeCharacter{1E98}{\ringaccent{w}}
  \DeclareUnicodeCharacter{1E99}{\ringaccent{y}}

  \DeclareUnicodeCharacter{1EA0}{\udotaccent{A}}
  \DeclareUnicodeCharacter{1EA1}{\udotaccent{a}}

  \DeclareUnicodeCharacter{1EB8}{\udotaccent{E}}
  \DeclareUnicodeCharacter{1EB9}{\udotaccent{e}}
  \DeclareUnicodeCharacter{1EBC}{\~E}
  \DeclareUnicodeCharacter{1EBD}{\~e}

  \DeclareUnicodeCharacter{1ECA}{\udotaccent{I}}
  \DeclareUnicodeCharacter{1ECB}{\udotaccent{i}}
  \DeclareUnicodeCharacter{1ECC}{\udotaccent{O}}
  \DeclareUnicodeCharacter{1ECD}{\udotaccent{o}}

  \DeclareUnicodeCharacter{1EE4}{\udotaccent{U}}
  \DeclareUnicodeCharacter{1EE5}{\udotaccent{u}}

  \DeclareUnicodeCharacter{1EF2}{\`Y}
  \DeclareUnicodeCharacter{1EF3}{\`y}
  \DeclareUnicodeCharacter{1EF4}{\udotaccent{Y}}

  \DeclareUnicodeCharacter{1EF8}{\~Y}
  \DeclareUnicodeCharacter{1EF9}{\~y}

  \DeclareUnicodeCharacter{2013}{--}
  \DeclareUnicodeCharacter{2014}{---}
  \DeclareUnicodeCharacter{2018}{\quoteleft}
  \DeclareUnicodeCharacter{2019}{\quoteright}
  \DeclareUnicodeCharacter{201A}{\quotesinglbase}
  \DeclareUnicodeCharacter{201C}{\quotedblleft}
  \DeclareUnicodeCharacter{201D}{\quotedblright}
  \DeclareUnicodeCharacter{201E}{\quotedblbase}
  \DeclareUnicodeCharacter{2022}{\bullet}
  \DeclareUnicodeCharacter{2026}{\dots}
  \DeclareUnicodeCharacter{2039}{\guilsinglleft}
  \DeclareUnicodeCharacter{203A}{\guilsinglright}
  \DeclareUnicodeCharacter{20AC}{\euro}

  \DeclareUnicodeCharacter{2192}{\expansion}
  \DeclareUnicodeCharacter{21D2}{\result}

  \DeclareUnicodeCharacter{2212}{\minus}
  \DeclareUnicodeCharacter{2217}{\point}
  \DeclareUnicodeCharacter{2261}{\equiv}
}% end of \utfeightchardefs

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% \setnonasciicharscatcode\active
\utfeightchardefs
