[latex3-commits] [git/LaTeX3-latex3-latex3] main: Revert "Expand pre-composed accent commands in \text_expand:n" (c071f31ab)

Joseph Wright joseph.wright at morningstar2.co.uk
Mon Feb 6 20:07:35 CET 2023


Repository : https://github.com/latex3/latex3
On branch  : main
Link       : https://github.com/latex3/latex3/commit/c071f31abe17750c08a8f8ca0e84aea5352dae5d

>---------------------------------------------------------------

commit c071f31abe17750c08a8f8ca0e84aea5352dae5d
Author: Joseph Wright <joseph.wright at morningstar2.co.uk>
Date:   Sun Feb 5 12:02:18 2023 +0000

    Revert "Expand pre-composed accent commands in \text_expand:n"
    
    This reverts commit c250fd483f8806b5986a0dcc838250c452ca5ddd.


>---------------------------------------------------------------

c071f31abe17750c08a8f8ca0e84aea5352dae5d
 l3kernel/CHANGELOG.md                   |   8 +-
 l3kernel/doc/l3obsolete.txt             |   1 -
 l3kernel/l3text-purify.dtx              | 240 ++++++++++++++++++++++++-
 l3kernel/l3text.dtx                     | 301 +++++---------------------------
 l3kernel/testfiles/m3text001.luatex.tlg |   2 +-
 l3kernel/testfiles/m3text001.tlg        |   2 +-
 l3kernel/testfiles/m3text001.xetex.tlg  |   2 +-
 l3kernel/testfiles/m3text002.luatex.tlg |   8 +-
 l3kernel/testfiles/m3text002.tlg        |   8 +-
 l3kernel/testfiles/m3text002.xetex.tlg  |   8 +-
 10 files changed, 299 insertions(+), 281 deletions(-)

diff --git a/l3kernel/CHANGELOG.md b/l3kernel/CHANGELOG.md
index e69c6aa16..c1b2d4e0e 100644
--- a/l3kernel/CHANGELOG.md
+++ b/l3kernel/CHANGELOG.md
@@ -8,10 +8,10 @@ this project uses date-based 'snapshot' version identifiers.
 ## [Unreleased]
 
 ### Changed
-- `\text_expand:n` now converts letter-like commands, e.g. `\ae`, and
-  pre-composed accents, e.g. `\'{e}`, to the UTF-8 equivalent: breaking
-  change also removes a`\l_text_accents_tl` and `\l_text_letterlike_tl`
-  (unused outside of the `expl3` kernel in TeX Live)
+- `\text_expand:n` now converts letter-like commands,
+  e.g. `\ae`, to the UTF-8 equivalent: breaking change
+  also removes `\l_text_letterlike_tl` (unused outside of
+  the `expl3` kernel in TeX Live)
 - Swap meaning of `el` and `el-x-iota` when case changing
   Greek: match traditional LaTeX approach
 
diff --git a/l3kernel/doc/l3obsolete.txt b/l3kernel/doc/l3obsolete.txt
index 3c89489c9..b1a258a4d 100644
--- a/l3kernel/doc/l3obsolete.txt
+++ b/l3kernel/doc/l3obsolete.txt
@@ -342,7 +342,6 @@ Function                                      Date removed
 \KV_process_space_removal_sanitize:NNn          2011-09-08
 \l_iow_line_length_int                          2013-01-08
 \l_last_box                                     2012-05-11
-\l_text_accents_tl                              2023-02-05
 \l_text_letterlike_tl                           2023-02-05
 \l_tl_replace_toks                              2011-09-08
 \l_tmpa_toks                                    2011-09-08
diff --git a/l3kernel/l3text-purify.dtx b/l3kernel/l3text-purify.dtx
index c547cd14b..a086dc060 100644
--- a/l3kernel/l3text-purify.dtx
+++ b/l3kernel/l3text-purify.dtx
@@ -455,11 +455,10 @@
 % \subsection{Accent and letter-like data for purifying text}
 %
 % \begin{macro}[rEXP]{\@@_purify_accent:NN}
-%   During expansion we cannot deal with accents that are not pre-composed:
-%   the $8$-bit engines need these leaving as commands for typesetting.
-%   However, we now need to make those into real Unicode codepoints: they
-%   come after the letter, so there is a shuffle as well as a change of
-%   data.
+%   Accent \textsc{licr} handling is a little more complex. Accents may exist
+%   as pre-composed codepoints or as independent glyphs. The former are all
+%   saved as single token lists, whilst for the latter the combining accent
+%   needs to be re-ordered compared to the character it applies to.
 %    \begin{macrocode}
 \cs_new:Npn \@@_purify_accent:NN #1#2
   {
@@ -474,8 +473,11 @@
         \exp_not:v { c_@@_purify_ \token_to_str:N #1 _tl }
       }
   }
-\tl_map_inline:nn { \` \' \^ \~ \= \u \. \" \r \H \v \d \c \k \b \t }
+\tl_map_inline:Nn \l_text_accents_tl
   { \text_declare_purify_equivalent:Nn #1 { \@@_purify_accent:NN #1 } }
+%    \end{macrocode}
+%   First set up the combining accents.
+%    \begin{macrocode}
 \group_begin:
   \cs_set_protected:Npn \@@_loop:Nn #1#2
     {
@@ -503,6 +505,232 @@
     \t { 0361 }
     \q_recursion_tail { }
     \q_recursion_stop
+%    \end{macrocode}
+%   Now we handle the pre-composed accents: the list here is taken from
+%   \texttt{puenc.def}. All of the precomposed cases take a single letter
+%   as their second argument. We do not try to cover the case where an accent
+%   is added to a \enquote{real} dotless-i or -j, or a \ae/\AE. Rather, we
+%   assume that if the \textsc{utf}-8 character is used, it will have the
+%   real accent character too.
+%    \begin{macrocode}
+  \cs_set_protected:Npn \@@_loop:NNn #1#2#3
+    {
+      \quark_if_recursion_tail_stop:N #1
+      \tl_const:cx
+        { c_@@_purify_ \token_to_str:N #1 _ \token_to_str:N #2 _tl }
+        { \codepoint_generate:nn {"#3} { \char_value_catcode:n { "#3 } } }
+      \@@_loop:NNn
+    }
+  \@@_loop:NNn
+    \` A   { 00C0 }
+    \' A   { 00C1 }
+    \^ A   { 00C2 }
+    \~ A   { 00C3 }
+    \" A   { 00C4 }
+    \r A   { 00C5 }
+    \c C   { 00C7 }
+    \` E   { 00C8 }
+    \' E   { 00C9 }
+    \^ E   { 00CA }
+    \" E   { 00CB }
+    \` I   { 00CC }
+    \' I   { 00CD }
+    \^ I   { 00CE }
+    \" I   { 00CF }
+    \~ N   { 00D1 }
+    \` O   { 00D2 }
+    \' O   { 00D3 }
+    \^ O   { 00D4 }
+    \~ O   { 00D5 }
+    \" O   { 00D6 }
+    \` U   { 00D9 }
+    \' U   { 00DA }
+    \^ U   { 00DB }
+    \" U   { 00DC }
+    \' Y   { 00DD }
+    \` a   { 00E0 }
+    \' a   { 00E1 }
+    \^ a   { 00E2 }
+    \~ a   { 00E3 }
+    \" a   { 00E4 }
+    \r a   { 00E5 }
+    \c c   { 00E7 }
+    \` e   { 00E8 }
+    \' e   { 00E9 }
+    \^ e   { 00EA }
+    \" e   { 00EB }
+    \` i   { 00EC }
+    \` \i  { 00EC }
+    \' i   { 00ED }
+    \' \i  { 00ED }
+    \^ i   { 00EE }
+    \^ \i  { 00EE }
+    \" i   { 00EF }
+    \" \i  { 00EF }
+    \~ n   { 00F1 }
+    \` o   { 00F2 }
+    \' o   { 00F3 }
+    \^ o   { 00F4 }
+    \~ o   { 00F5 }
+    \" o   { 00F6 }
+    \` u   { 00F9 }
+    \' u   { 00FA }
+    \^ u   { 00FB }
+    \" u   { 00FC }
+    \' y   { 00FD }
+    \" y   { 00FF }
+    \= A   { 0100 }
+    \= a   { 0101 }
+    \u A   { 0102 }
+    \u a   { 0103 }
+    \k A   { 0104 }
+    \k a   { 0105 }
+    \' C   { 0106 }
+    \' c   { 0107 }
+    \^ C   { 0108 }
+    \^ c   { 0109 }
+    \. C   { 010A }
+    \. c   { 010B }
+    \v C   { 010C }
+    \v c   { 010D }
+    \v D   { 010E }
+    \v d   { 010F }
+    \= E   { 0112 }
+    \= e   { 0113 }
+    \u E   { 0114 }
+    \u e   { 0115 }
+    \. E   { 0116 }
+    \. e   { 0117 }
+    \k E   { 0118 }
+    \k e   { 0119 }
+    \v E   { 011A }
+    \v e   { 011B }
+    \^ G   { 011C }
+    \^ g   { 011D }
+    \u G   { 011E }
+    \u g   { 011F }
+    \. G   { 0120 }
+    \. g   { 0121 }
+    \c G   { 0122 }
+    \c g   { 0123 }
+    \^ H   { 0124 }
+    \^ h   { 0125 }
+    \~ I   { 0128 }
+    \~ i   { 0129 }
+    \~ \i  { 0129 }
+    \= I   { 012A }
+    \= i   { 012B }
+    \= \i  { 012B }
+    \u I   { 012C }
+    \u i   { 012D }
+    \u \i  { 012D }
+    \k I   { 012E }
+    \k i   { 012F }
+    \k \i  { 012F }
+    \. I   { 0130 }
+    \^ J   { 0134 }
+    \^ j   { 0135 }
+    \^ \j  { 0135 }
+    \c K   { 0136 }
+    \c k   { 0137 }
+    \' L   { 0139 }
+    \' l   { 013A }
+    \c L   { 013B }
+    \c l   { 013C }
+    \v L   { 013D }
+    \v l   { 013E }
+    \. L   { 013F }
+    \. l   { 0140 }
+    \' N   { 0143 }
+    \' n   { 0144 }
+    \c N   { 0145 }
+    \c n   { 0146 }
+    \v N   { 0147 }
+    \v n   { 0148 }
+    \= O   { 014C }
+    \= o   { 014D }
+    \u O   { 014E }
+    \u o   { 014F }
+    \H O   { 0150 }
+    \H o   { 0151 }
+    \' R   { 0154 }
+    \' r   { 0155 }
+    \c R   { 0156 }
+    \c r   { 0157 }
+    \v R   { 0158 }
+    \v r   { 0159 }
+    \' S   { 015A }
+    \' s   { 015B }
+    \^ S   { 015C }
+    \^ s   { 015D }
+    \c S   { 015E }
+    \c s   { 015F }
+    \v S   { 0160 }
+    \v s   { 0161 }
+    \c T   { 0162 }
+    \c t   { 0163 }
+    \v T   { 0164 }
+    \v t   { 0165 }
+    \~ U   { 0168 }
+    \~ u   { 0169 }
+    \= U   { 016A }
+    \= u   { 016B }
+    \u U   { 016C }
+    \u u   { 016D }
+    \r U   { 016E }
+    \r u   { 016F }
+    \H U   { 0170 }
+    \H u   { 0171 }
+    \k U   { 0172 }
+    \k u   { 0173 }
+    \^ W   { 0174 }
+    \^ w   { 0175 }
+    \^ Y   { 0176 }
+    \^ y   { 0177 }
+    \" Y   { 0178 }
+    \' Z   { 0179 }
+    \' z   { 017A }
+    \. Z   { 017B }
+    \. z   { 017C }
+    \v Z   { 017D }
+    \v z   { 017E }
+    \v A   { 01CD }
+    \v a   { 01CE }
+    \v I   { 01CF }
+    \v \i  { 01D0 }
+    \v i   { 01D0 }
+    \v O   { 01D1 }
+    \v o   { 01D2 }
+    \v U   { 01D3 }
+    \v u   { 01D4 }
+    \v G   { 01E6 }
+    \v g   { 01E7 }
+    \v K   { 01E8 }
+    \v k   { 01E9 }
+    \k O   { 01EA }
+    \k o   { 01EB }
+    \v \j  { 01F0 }
+    \v j   { 01F0 }
+    \' G   { 01F4 }
+    \' g   { 01F5 }
+    \` N   { 01F8 }
+    \` n   { 01F9 }
+    \' \AE { 01FC }
+    \' \ae { 01FD }
+    \' \O  { 01FE }
+    \' \o  { 01FF }
+    \v H   { 021E }
+    \v h   { 021F }
+    \. A   { 0226 }
+    \. a   { 0227 }
+    \c E   { 0228 }
+    \c e   { 0229 }
+    \. O   { 022E }
+    \. o   { 022F }
+    \= Y   { 0232 }
+    \= y   { 0233 }
+    \q_recursion_tail ? { }
+    \q_recursion_stop
 \group_end:
 %    \end{macrocode}
 % \end{macro}
diff --git a/l3kernel/l3text.dtx b/l3kernel/l3text.dtx
index 4d7d2f2a1..c111068bc 100644
--- a/l3kernel/l3text.dtx
+++ b/l3kernel/l3text.dtx
@@ -70,9 +70,9 @@
 %   \cs{l_text_math_delims_tl} or as the argument to commands listed
 %   in \cs{l_text_math_arg_tl}). Commands which are neither engine-
 %   nor \LaTeX{} protected are expanded exhaustively.
-%   Any commands listed in \cs{l_text_expand_exclude_tl} are excluded from
-%   expansion. Letter-like commands, e.g.~\cs{ae}, and accent commands creating
-%   pre-composed UTF-8 codepoints are converted to the UTF-8 equivalents.
+%   Any commands listed in \cs{l_text_expand_exclude_tl} and
+%   \cs{l_text_accents_tl} are excluded from expansion. Letter-like
+%   commands, e.g.~\cs{ae}, are converted to the UTF-8 equivalent.
 % \end{function}
 %
 % \begin{function}[added = 2020-01-22, updated = 2023-02-05]
@@ -259,6 +259,11 @@
 %
 % \section{Control variables}
 %
+% \begin{variable}{\l_text_accents_tl}
+%   Lists commands which represent accents, and which are left unchanged
+%   by expansion. (Defined only for the \LaTeXe{} package.)
+% \end{variable}
+%
 % \begin{variable}{\l_text_math_arg_tl}
 %   Lists commands present in the \meta{text} where the argument of the
 %   command should be treated as math mode material. The treatment here is
@@ -787,6 +792,16 @@
 %
 % \subsection{Configuration variables}
 %
+% \begin{variable}{\l_text_accents_tl}
+%   Special cases for accents and letter-like symbols, which in some cases will
+%   need to be converted further.
+%    \begin{macrocode}
+\tl_new:N \l_text_accents_tl
+\tl_set:Nn \l_text_accents_tl
+  { \` \' \^ \~ \= \u \. \" \r \H \v \d \c \k \b \t }
+%    \end{macrocode}
+% \end{variable}
+%
 % \begin{variable}{\l_text_case_exclude_arg_tl}
 %   Non-text arguments, including covering the case of \tn{protected at edef}
 %   applied to \cs{cite}.
@@ -919,6 +934,8 @@
 % \begin{macro}[EXP]{\@@_expand_exclude:NN}
 % \begin{macro}[EXP]{\@@_expand_exclude:Nw}
 % \begin{macro}[EXP]{\@@_expand_exclude:Nnn}
+% \begin{macro}[EXP]{\@@_expand_accent:N}
+% \begin{macro}[EXP]{\@@_expand_accent:NN}
 % \begin{macro}[EXP]{\@@_expand_cs:N}
 % \begin{macro}[EXP]{\@@_expand_protect:w}
 % \begin{macro}[EXP]{\@@_expand_protect:N}
@@ -1203,7 +1220,7 @@
 \cs_new:Npn \@@_expand_exclude:NN #1#2
   {
     \@@_if_q_recursion_tail_stop_do:Nn #2
-      { \@@_expand_cs:N #1 }
+      { \@@_expand_accent:N #1 }
     \str_if_eq:nnTF {#1} {#2}
       {
         \@@_use_i_delimit_by_q_recursion_stop:nw
@@ -1219,6 +1236,29 @@
     \@@_expand_loop:w
   }
 %    \end{macrocode}
+%   Accents.
+%    \begin{macrocode}
+\cs_new:Npn \@@_expand_accent:N #1
+  {
+    \exp_after:wN \@@_expand_accent:NN \exp_after:wN
+      #1 \l_text_accents_tl
+      \q_@@_recursion_tail \q_@@_recursion_stop
+  }
+\cs_new:Npn \@@_expand_accent:NN #1#2
+  {
+    \@@_if_q_recursion_tail_stop_do:Nn #2
+      { \@@_expand_cs:N #1 }
+    \cs_if_eq:NNTF #2 #1
+      {
+        \@@_use_i_delimit_by_q_recursion_stop:nw
+          {
+            \@@_expand_store:n {#1}
+            \@@_expand_loop:w
+          }
+      }
+      { \@@_expand_accent:NN #1 }
+  }
+%    \end{macrocode}
 %   \LaTeXe{}'s \cs{protect} makes life interesting. Where possible, we
 %   simply remove it and replace with the \enquote{parent} command; of course,
 %   the \cs{protect} might be explicit, in which case we need to leave it alone.
@@ -1410,6 +1450,8 @@
 % \end{macro}
 % \end{macro}
 % \end{macro}
+% \end{macro}
+% \end{macro}
 %
 % \begin{macro}
 %   {
@@ -1432,257 +1474,6 @@
 %
 % \subsection{Accent and letter-like data for expandsion}
 %
-% \begin{macro}[rEXP]{\@@_expand_accent:NN}
-%   Accent \textsc{licr} handling is a little more complex. Accents may exist
-%   as pre-composed codepoints or as independent glyphs. At the expansion
-%   stage, only pre-composed glyphs can be processed: for \emph{ad hoc} accents,
-%   we have to retain the command version for $8$-bit typesetting. So at this
-%   stage we do not remove everything (see the purification code for the
-%   action once we are definitely past typesetting).
-%    \begin{macrocode}
-\cs_new:Npn \@@_expand_accent:NN #1#2
-  {
-    \cs_if_exist:cTF
-      { c_@@_expand_ \token_to_str:N #1 _ \token_to_str:N #2 _tl }
-      {
-        \exp_not:v
-          { c_@@_expand_ \token_to_str:N #1 _ \token_to_str:N #2 _tl }
-      }
-      { \exp_not:n {#1} {#2} }
-  }
-\tl_map_inline:nn { \` \' \^ \~ \= \u \. \" \r \H \v \d \c \k \b \t }
-  { \text_declare_expand_equivalent:Nn #1 { \@@_expand_accent:NN #1 } }
-%    \end{macrocode}
-%   The list of pre-composed accent characters here is taken from
-%   \texttt{puenc.def}. All of the pre-composed cases take a single letter
-%   as their second argument. We do not try to cover the case where an accent
-%   is added to a \enquote{real} dotless-i or -j, or a \ae/\AE. Rather, we
-%   assume that if the \textsc{utf}-8 character is used, it will have the
-%   real accent character too.
-%    \begin{macrocode}
-\group_begin:
-  \cs_set_protected:Npn \@@_loop:NNn #1#2#3
-    {
-      \quark_if_recursion_tail_stop:N #1
-      \tl_const:cx
-        { c_@@_expand_ \token_to_str:N #1 _ \token_to_str:N #2 _tl }
-        { \codepoint_generate:nn {"#3} { \char_value_catcode:n { "#3 } } }
-      \@@_loop:NNn
-    }
-  \@@_loop:NNn
-    \` A   { 00C0 }
-    \' A   { 00C1 }
-    \^ A   { 00C2 }
-    \~ A   { 00C3 }
-    \" A   { 00C4 }
-    \r A   { 00C5 }
-    \c C   { 00C7 }
-    \` E   { 00C8 }
-    \' E   { 00C9 }
-    \^ E   { 00CA }
-    \" E   { 00CB }
-    \` I   { 00CC }
-    \' I   { 00CD }
-    \^ I   { 00CE }
-    \" I   { 00CF }
-    \~ N   { 00D1 }
-    \` O   { 00D2 }
-    \' O   { 00D3 }
-    \^ O   { 00D4 }
-    \~ O   { 00D5 }
-    \" O   { 00D6 }
-    \` U   { 00D9 }
-    \' U   { 00DA }
-    \^ U   { 00DB }
-    \" U   { 00DC }
-    \' Y   { 00DD }
-    \` a   { 00E0 }
-    \' a   { 00E1 }
-    \^ a   { 00E2 }
-    \~ a   { 00E3 }
-    \" a   { 00E4 }
-    \r a   { 00E5 }
-    \c c   { 00E7 }
-    \` e   { 00E8 }
-    \' e   { 00E9 }
-    \^ e   { 00EA }
-    \" e   { 00EB }
-    \` i   { 00EC }
-    \` \i  { 00EC }
-    \' i   { 00ED }
-    \' \i  { 00ED }
-    \^ i   { 00EE }
-    \^ \i  { 00EE }
-    \" i   { 00EF }
-    \" \i  { 00EF }
-    \~ n   { 00F1 }
-    \` o   { 00F2 }
-    \' o   { 00F3 }
-    \^ o   { 00F4 }
-    \~ o   { 00F5 }
-    \" o   { 00F6 }
-    \` u   { 00F9 }
-    \' u   { 00FA }
-    \^ u   { 00FB }
-    \" u   { 00FC }
-    \' y   { 00FD }
-    \" y   { 00FF }
-    \= A   { 0100 }
-    \= a   { 0101 }
-    \u A   { 0102 }
-    \u a   { 0103 }
-    \k A   { 0104 }
-    \k a   { 0105 }
-    \' C   { 0106 }
-    \' c   { 0107 }
-    \^ C   { 0108 }
-    \^ c   { 0109 }
-    \. C   { 010A }
-    \. c   { 010B }
-    \v C   { 010C }
-    \v c   { 010D }
-    \v D   { 010E }
-    \v d   { 010F }
-    \= E   { 0112 }
-    \= e   { 0113 }
-    \u E   { 0114 }
-    \u e   { 0115 }
-    \. E   { 0116 }
-    \. e   { 0117 }
-    \k E   { 0118 }
-    \k e   { 0119 }
-    \v E   { 011A }
-    \v e   { 011B }
-    \^ G   { 011C }
-    \^ g   { 011D }
-    \u G   { 011E }
-    \u g   { 011F }
-    \. G   { 0120 }
-    \. g   { 0121 }
-    \c G   { 0122 }
-    \c g   { 0123 }
-    \^ H   { 0124 }
-    \^ h   { 0125 }
-    \~ I   { 0128 }
-    \~ i   { 0129 }
-    \~ \i  { 0129 }
-    \= I   { 012A }
-    \= i   { 012B }
-    \= \i  { 012B }
-    \u I   { 012C }
-    \u i   { 012D }
-    \u \i  { 012D }
-    \k I   { 012E }
-    \k i   { 012F }
-    \k \i  { 012F }
-    \. I   { 0130 }
-    \^ J   { 0134 }
-    \^ j   { 0135 }
-    \^ \j  { 0135 }
-    \c K   { 0136 }
-    \c k   { 0137 }
-    \' L   { 0139 }
-    \' l   { 013A }
-    \c L   { 013B }
-    \c l   { 013C }
-    \v L   { 013D }
-    \v l   { 013E }
-    \. L   { 013F }
-    \. l   { 0140 }
-    \' N   { 0143 }
-    \' n   { 0144 }
-    \c N   { 0145 }
-    \c n   { 0146 }
-    \v N   { 0147 }
-    \v n   { 0148 }
-    \= O   { 014C }
-    \= o   { 014D }
-    \u O   { 014E }
-    \u o   { 014F }
-    \H O   { 0150 }
-    \H o   { 0151 }
-    \' R   { 0154 }
-    \' r   { 0155 }
-    \c R   { 0156 }
-    \c r   { 0157 }
-    \v R   { 0158 }
-    \v r   { 0159 }
-    \' S   { 015A }
-    \' s   { 015B }
-    \^ S   { 015C }
-    \^ s   { 015D }
-    \c S   { 015E }
-    \c s   { 015F }
-    \v S   { 0160 }
-    \v s   { 0161 }
-    \c T   { 0162 }
-    \c t   { 0163 }
-    \v T   { 0164 }
-    \v t   { 0165 }
-    \~ U   { 0168 }
-    \~ u   { 0169 }
-    \= U   { 016A }
-    \= u   { 016B }
-    \u U   { 016C }
-    \u u   { 016D }
-    \r U   { 016E }
-    \r u   { 016F }
-    \H U   { 0170 }
-    \H u   { 0171 }
-    \k U   { 0172 }
-    \k u   { 0173 }
-    \^ W   { 0174 }
-    \^ w   { 0175 }
-    \^ Y   { 0176 }
-    \^ y   { 0177 }
-    \" Y   { 0178 }
-    \' Z   { 0179 }
-    \' z   { 017A }
-    \. Z   { 017B }
-    \. z   { 017C }
-    \v Z   { 017D }
-    \v z   { 017E }
-    \v A   { 01CD }
-    \v a   { 01CE }
-    \v I   { 01CF }
-    \v \i  { 01D0 }
-    \v i   { 01D0 }
-    \v O   { 01D1 }
-    \v o   { 01D2 }
-    \v U   { 01D3 }
-    \v u   { 01D4 }
-    \v G   { 01E6 }
-    \v g   { 01E7 }
-    \v K   { 01E8 }
-    \v k   { 01E9 }
-    \k O   { 01EA }
-    \k o   { 01EB }
-    \v \j  { 01F0 }
-    \v j   { 01F0 }
-    \' G   { 01F4 }
-    \' g   { 01F5 }
-    \` N   { 01F8 }
-    \` n   { 01F9 }
-    \' \AE { 01FC }
-    \' \ae { 01FD }
-    \' \O  { 01FE }
-    \' \o  { 01FF }
-    \v H   { 021E }
-    \v h   { 021F }
-    \. A   { 0226 }
-    \. a   { 0227 }
-    \c E   { 0228 }
-    \c e   { 0229 }
-    \. O   { 022E }
-    \. o   { 022F }
-    \= Y   { 0232 }
-    \= y   { 0233 }
-    \q_recursion_tail ? { }
-    \q_recursion_stop
-\group_end:
-%    \end{macrocode}
-% \end{macro}
-%
 % For the letter-like commands, life is relatively easy: they are all
 % simply added as standard exceptions. The only oddity is \tn{SS}, which
 % gets converted to two letters.
diff --git a/l3kernel/testfiles/m3text001.luatex.tlg b/l3kernel/testfiles/m3text001.luatex.tlg
index aa4607de4..a33ebe093 100644
--- a/l3kernel/testfiles/m3text001.luatex.tlg
+++ b/l3kernel/testfiles/m3text001.luatex.tlg
@@ -30,7 +30,7 @@ TEST 4: Letter-like commands
 ============================================================
 TEST 5: Accents
 ============================================================
-^^e4ĕ\H {i}ǒ\.{u}
+\"{a}\u {e}\H {i}\v {o}\.{u}
 ============================================================
 ============================================================
 TEST 6: Implicit tokens
diff --git a/l3kernel/testfiles/m3text001.tlg b/l3kernel/testfiles/m3text001.tlg
index 81a16135a..0077f55ca 100644
--- a/l3kernel/testfiles/m3text001.tlg
+++ b/l3kernel/testfiles/m3text001.tlg
@@ -30,7 +30,7 @@ TEST 4: Letter-like commands
 ============================================================
 TEST 5: Accents
 ============================================================
-^^c3^^a4^^c4^^95\H {i}^^c7^^92\.{u}
+\"{a}\u {e}\H {i}\v {o}\.{u}
 ============================================================
 ============================================================
 TEST 6: Implicit tokens
diff --git a/l3kernel/testfiles/m3text001.xetex.tlg b/l3kernel/testfiles/m3text001.xetex.tlg
index aa4607de4..a33ebe093 100644
--- a/l3kernel/testfiles/m3text001.xetex.tlg
+++ b/l3kernel/testfiles/m3text001.xetex.tlg
@@ -30,7 +30,7 @@ TEST 4: Letter-like commands
 ============================================================
 TEST 5: Accents
 ============================================================
-^^e4ĕ\H {i}ǒ\.{u}
+\"{a}\u {e}\H {i}\v {o}\.{u}
 ============================================================
 ============================================================
 TEST 6: Implicit tokens
diff --git a/l3kernel/testfiles/m3text002.luatex.tlg b/l3kernel/testfiles/m3text002.luatex.tlg
index 10708fb9b..b026ee684 100644
--- a/l3kernel/testfiles/m3text002.luatex.tlg
+++ b/l3kernel/testfiles/m3text002.luatex.tlg
@@ -347,10 +347,10 @@ TEST 27: Letter-like commands
 ============================================================
 TEST 28: Accents
 ============================================================
-^^e4ĕ\H {i}ǒ\.{u}
-^^c4Ĕ\H {I}Ǒ\.{U}
-^^c4Ĕ\H {I}ǒ\.{u}
-^^c4Ĕ\H {I}ǒ\.{u}
+\"{a}\u {e}\H {i}\v {o}\.{u}
+\"{A}\u {E}\H {I}\v {O}\.{U}
+\"{A}\u {e}\H {i}\v {o}\.{u}
+\"{A}\u {e}\H {i}\v {o}\.{u}
 ============================================================
 ============================================================
 TEST 29: Active chars
diff --git a/l3kernel/testfiles/m3text002.tlg b/l3kernel/testfiles/m3text002.tlg
index 4a83569f7..5cbe50b00 100644
--- a/l3kernel/testfiles/m3text002.tlg
+++ b/l3kernel/testfiles/m3text002.tlg
@@ -347,10 +347,10 @@ TEST 27: Letter-like commands
 ============================================================
 TEST 28: Accents
 ============================================================
-^^c3^^a4^^c4^^95\H {i}^^c7^^92\.{u}
-^^c3^^84^^c4^^94\H {I}^^c7^^91\.{U}
-^^c3^^84^^c4^^95\H {i}^^c7^^92\.{u}
-^^c3^^84^^c4^^95\H {i}^^c7^^92\.{u}
+\"{a}\u {e}\H {i}\v {o}\.{u}
+\"{A}\u {E}\H {I}\v {O}\.{U}
+\"{A}\u {e}\H {i}\v {o}\.{u}
+\"{A}\u {e}\H {i}\v {o}\.{u}
 ============================================================
 ============================================================
 TEST 29: Active chars
diff --git a/l3kernel/testfiles/m3text002.xetex.tlg b/l3kernel/testfiles/m3text002.xetex.tlg
index 10708fb9b..b026ee684 100644
--- a/l3kernel/testfiles/m3text002.xetex.tlg
+++ b/l3kernel/testfiles/m3text002.xetex.tlg
@@ -347,10 +347,10 @@ TEST 27: Letter-like commands
 ============================================================
 TEST 28: Accents
 ============================================================
-^^e4ĕ\H {i}ǒ\.{u}
-^^c4Ĕ\H {I}Ǒ\.{U}
-^^c4Ĕ\H {I}ǒ\.{u}
-^^c4Ĕ\H {I}ǒ\.{u}
+\"{a}\u {e}\H {i}\v {o}\.{u}
+\"{A}\u {E}\H {I}\v {O}\.{U}
+\"{A}\u {e}\H {i}\v {o}\.{u}
+\"{A}\u {e}\H {i}\v {o}\.{u}
 ============================================================
 ============================================================
 TEST 29: Active chars





More information about the latex3-commits mailing list.