[latex3-commits] [git/LaTeX3-latex3-latex3] main: Drop accents in uppercase Greek with 8-bit engines (2b91cfa67)

Joseph Wright joseph.wright at morningstar2.co.uk
Mon Aug 1 19:43:43 CEST 2022


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

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

commit 2b91cfa676bf2a99fbfab63537b9e0bdcb612880
Author: Joseph Wright <joseph.wright at morningstar2.co.uk>
Date:   Mon Aug 1 18:43:43 2022 +0100

    Drop accents in uppercase Greek with 8-bit engines


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

2b91cfa676bf2a99fbfab63537b9e0bdcb612880
 l3kernel/CHANGELOG.md                  |   1 +
 l3kernel/l3text-case.dtx               | 410 ++++++++++++++++++++++++++++++++-
 l3kernel/l3text.dtx                    |   7 +-
 l3kernel/testfiles/m3text002.tlg       |  38 +--
 l3kernel/testfiles/m3text002.uptex.tlg |  42 ++--
 5 files changed, 454 insertions(+), 44 deletions(-)

diff --git a/l3kernel/CHANGELOG.md b/l3kernel/CHANGELOG.md
index 42531294c..07c940580 100644
--- a/l3kernel/CHANGELOG.md
+++ b/l3kernel/CHANGELOG.md
@@ -9,6 +9,7 @@ this project uses date-based 'snapshot' version identifiers.
 
 ### Added
 - Support for case changing Croatian diagraph with 8-bit engines
+- Support accent removal when uppercasing Greek with 8-bit engines
 - Function `\sys_ensure_backend:`
 
 ## [2022-07-21]
diff --git a/l3kernel/l3text-case.dtx b/l3kernel/l3text-case.dtx
index 556a93c06..a94620e1a 100644
--- a/l3kernel/l3text-case.dtx
+++ b/l3kernel/l3text-case.dtx
@@ -910,6 +910,9 @@
 % \begin{macro}[EXP]{\@@_change_case_upper_el_hiatus:nnN}
 % \begin{macro}[EXP]{\@@_change_case_upper_el_gobble:nnw}
 % \begin{macro}[EXP]{\@@_change_case_upper_el_gobble:nnN}
+% \begin{macro}[EXP]{\@@_change_case_upper_el:nnnNN}
+% \begin{macro}[EXP]{\@@_change_case_upper_el:nnnNNN}
+% \begin{macro}[EXP]{\@@_change_case_upper_el:nnnn}
 % \begin{macro}[EXP,TF]{\@@_change_case_if_greek:n}
 % \begin{macro}[EXP,pTF]{\@@_change_case_if_greek:n}
 % \begin{macro}[EXP,pTF]{\@@_change_case_if_greek_accent:n}
@@ -927,7 +930,7 @@
 %   \emph{ypogegrammeni} is filtered out here as it is not actually in the
 %   Greek range, so gets lost if we leave until later.
 %    \begin{macrocode}
-\bool_lazy_or:nnT
+\bool_lazy_or:nnTF
   { \sys_if_engine_luatex_p: }
   { \sys_if_engine_xetex_p: }
   {
@@ -1130,6 +1133,43 @@
       }
   }
 %    \end{macrocode}
+%   For $8$-bit engines we use a simplified approach: covers the common
+%   requirements. This is basically how \pkg{xgreek} works but done by
+%   expansion: use fixed mappings from accented to accent-free letters.
+%   Only the two- and three-byte ranges can be involved.
+%    \begin{macrocode}
+  {
+    \cs_new:Npn \@@_change_case_upper_el:nnnN #1#2#3#4
+      {
+        \int_compare:nNnTF { `#4 } > { "80 }
+          {
+            \int_compare:nNnTF { `#4 } < { "E0 }
+              { \@@_change_case_upper_el:nnnNN }
+              {
+                 \int_compare:nNnTF { `#4 } < { "F0 }
+                  { \@@_change_case_upper_el:nnnNNN }
+                  { \@@_change_case_char:nnnN }
+              }
+          }
+          { \@@_change_case_char:nnnN }
+             {#1} {#2} {#3} #4
+      }
+    \cs_new:Npn \@@_change_case_upper_el:nnnNN #1#2#3#4#5
+      { \@@_change_case_upper_el:nnnn {#1} {#2} {#3} {#4#5} }
+    \cs_new:Npn \@@_change_case_upper_el:nnnNNN #1#2#3#4#5#6
+      { \@@_change_case_upper_el:nnnn {#1} {#2} {#3} {#4#5#6} }
+    \cs_new:Npn \@@_change_case_upper_el:nnnn #1#2#3#4
+      {
+        \cs_if_exist:cTF { c_@@_uppercase_el_ \tl_to_str:n {#4} _tl }
+          {
+            \@@_change_case_store:v
+              { c_@@_uppercase_el_ \tl_to_str:n {#4} _tl }
+            \@@_change_case_loop:nnw {#1} {#3}
+          }
+          { \@@_change_case_char:nnnN {#1} {#2} {#3} #4 }
+      }
+  }
+%    \end{macrocode}
 %   Luckily the Greek range is limited and clear.
 %    \begin{macrocode}
 \prg_new_conditional:Npnn \@@_change_case_if_greek:n #1 { TF }
@@ -1268,6 +1308,9 @@
 % \end{macro}
 % \end{macro}
 % \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
 % \begin{macro}[EXP]{\@@_change_case_boundary_upper_el:Nnnw}
 % \begin{macro}[EXP]{\@@_change_case_boundary_upper_el:nnN}
 % \begin{macro}[EXP]{\@@_change_case_boundary_upper_el:nnNw}
@@ -2333,6 +2376,371 @@
           \group_end:
         }
     \@@_tmp:w { 1FBE } { 0399 } { upper }
+%    \end{macrocode}
+% Greek accent suppression for uppercasing.
+%    \begin{macrocode}
+      \cs_set_protected:Npn \@@_tmp:w #1#2#3#4#5#6#7#8
+        {
+          \tl_const:cx
+            {
+              c_@@_uppercase_el_
+              \char_generate:nn {#1} { 12 }
+              \char_generate:nn {#2} { 12 }
+              _tl
+            }
+            {
+              \exp_after:wN \exp_after:wN \exp_after:wN
+                \exp_not:N \char_generate:nn {#5} { 13 }
+              \exp_after:wN \exp_after:wN \exp_after:wN
+                \exp_not:N \char_generate:nn {#6} { 13 }
+            }
+        }
+      \@@_loop:nn
+        { 0370 } { 0370 }
+        { 0371 } { 0370 }
+        { 0372 } { 0372 }
+        { 0373 } { 0372 }
+        { 0376 } { 0376 }
+        { 0377 } { 0376 }
+        { 03FD } { 03FD }
+        { 037B } { 03FD }
+        { 03FE } { 03FE }
+        { 037C } { 03FE }
+        { 03FF } { 03FF }
+        { 037D } { 03FF }
+        { 0386 } { 0391 }
+        { 0388 } { 0395 }
+        { 0389 } { 0397 }
+        { 038A } { 0399 }
+        { 038C } { 039F }
+        { 038E } { 03A5 }
+        { 038F } { 03A9 }
+        { 0390 } { 03AA }
+        { 0391 } { 0391 }
+        { 0392 } { 0392 }
+        { 0393 } { 0393 }
+        { 0394 } { 0394 }
+        { 0395 } { 0395 }
+        { 0396 } { 0396 }
+        { 0397 } { 0397 }
+        { 0398 } { 0398 }
+        { 0399 } { 0399 }
+        { 039A } { 039A }
+        { 039B } { 039B }
+        { 039C } { 039C }
+        { 039D } { 039D }
+        { 039E } { 039E }
+        { 039F } { 039F }
+        { 03A0 } { 03A0 }
+        { 03A1 } { 03A1 }
+        { 03A3 } { 03A3 }
+        { 03A4 } { 03A4 }
+        { 03A5 } { 03A5 }
+        { 03A6 } { 03A6 }
+        { 03A7 } { 03A7 }
+        { 03A8 } { 03A8 }
+        { 03A9 } { 03A9 }
+        { 03AA } { 03AA }
+        { 03AB } { 03AB }
+        { 03AC } { 0391 }
+        { 03AD } { 0395 }
+        { 03AE } { 0397 }
+        { 03AF } { 0399 }
+        { 03B0 } { 03AB }
+        { 03B1 } { 0391 }
+        { 03B2 } { 0392 }
+        { 03B3 } { 0393 }
+        { 03B4 } { 0394 }
+        { 03B5 } { 0395 }
+        { 03B6 } { 0396 }
+        { 03B7 } { 0397 }
+        { 03B8 } { 0398 }
+        { 03B9 } { 0399 }
+        { 03BA } { 039A }
+        { 03BB } { 039B }
+        { 03BC } { 039C }
+        { 03BD } { 039D }
+        { 03BE } { 039E }
+        { 03BF } { 039F }
+        { 03C0 } { 03A0 }
+        { 03C1 } { 03A1 }
+        { 03C2 } { 03A3 }
+        { 03C3 } { 03A3 }
+        { 03C4 } { 03A4 }
+        { 03C5 } { 03A5 }
+        { 03C6 } { 03A6 }
+        { 03C7 } { 03A7 }
+        { 03C8 } { 03A8 }
+        { 03C9 } { 03A9 }
+        { 03CA } { 03AA }
+        { 03CB } { 03AB }
+        { 03CC } { 039F }
+        { 03CD } { 03A5 }
+        { 03CE } { 03A9 }
+        { 03D0 } { 0392 }
+        { 03D1 } { 0398 }
+        { 03D2 } { 03A5 }
+        { 03D3 } { 03A5 }
+        { 03D4 } { 03AB }
+        { 03D5 } { 03A6 }
+        { 03D6 } { 03A0 }
+        { 03DA } { 03DA }
+        { 03DB } { 03DA }
+        { 03DC } { 03DC }
+        { 03DD } { 03DC }
+        { 03DE } { 03DE }
+        { 03DF } { 03DE }
+        { 03E0 } { 03E0 }
+        { 03E1 } { 03E0 }
+        { 03F0 } { 039A }
+        { 03F1 } { 03A1 }
+        { 03F2 } { 03F9 }
+        { 03F9 } { 03F9 }
+        \q_recursion_tail ?
+        \q_recursion_stop
+      \cs_set_protected:Npn \@@_tmp:w #1#2#3#4#5#6#7#8
+        {
+          \tl_const:cx
+            {
+              c_@@_uppercase_el_
+              \char_generate:nn {#1} { 12 }
+              \char_generate:nn {#2} { 12 }
+              \char_generate:nn {#3} { 12 }
+              _tl
+            }
+            {
+              \exp_after:wN \exp_after:wN \exp_after:wN
+                \exp_not:N \char_generate:nn {#5} { 13 }
+              \exp_after:wN \exp_after:wN \exp_after:wN
+                \exp_not:N \char_generate:nn {#6} { 13 }
+              \tl_if_blank:nF {#7}
+                {
+                  \exp_after:wN \exp_after:wN \exp_after:wN
+                    \exp_not:N \char_generate:nn {#7} { 13 }
+                }
+            }
+        }
+      \@@_loop:nn
+        { 1F00 } { 0391 }
+        { 1F01 } { 0391 }
+        { 1F02 } { 0391 }
+        { 1F03 } { 0391 }
+        { 1F04 } { 0391 }
+        { 1F05 } { 0391 }
+        { 1F06 } { 0391 }
+        { 1F07 } { 0391 }
+        { 1F08 } { 0391 }
+        { 1F09 } { 0391 }
+        { 1F0A } { 0391 }
+        { 1F0B } { 0391 }
+        { 1F0C } { 0391 }
+        { 1F0D } { 0391 }
+        { 1F0E } { 0391 }
+        { 1F0F } { 0391 }
+        { 1F10 } { 0395 }
+        { 1F11 } { 0395 }
+        { 1F12 } { 0395 }
+        { 1F13 } { 0395 }
+        { 1F14 } { 0395 }
+        { 1F15 } { 0395 }
+        { 1F18 } { 0395 }
+        { 1F19 } { 0395 }
+        { 1F1A } { 0395 }
+        { 1F1B } { 0395 }
+        { 1F1C } { 0395 }
+        { 1F1D } { 0395 }
+        { 1F20 } { 0397 }
+        { 1F21 } { 0397 }
+        { 1F22 } { 0397 }
+        { 1F23 } { 0397 }
+        { 1F24 } { 0397 }
+        { 1F25 } { 0397 }
+        { 1F26 } { 0397 }
+        { 1F27 } { 0397 }
+        { 1F28 } { 0397 }
+        { 1F29 } { 0397 }
+        { 1F2A } { 0397 }
+        { 1F2B } { 0397 }
+        { 1F2C } { 0397 }
+        { 1F2D } { 0397 }
+        { 1F2E } { 0397 }
+        { 1F2F } { 0397 }
+        { 1F30 } { 0399 }
+        { 1F31 } { 0399 }
+        { 1F32 } { 0399 }
+        { 1F33 } { 0399 }
+        { 1F34 } { 0399 }
+        { 1F35 } { 0399 }
+        { 1F36 } { 0399 }
+        { 1F37 } { 0399 }
+        { 1F38 } { 0399 }
+        { 1F39 } { 0399 }
+        { 1F3A } { 0399 }
+        { 1F3B } { 0399 }
+        { 1F3C } { 0399 }
+        { 1F3D } { 0399 }
+        { 1F3E } { 0399 }
+        { 1F3F } { 0399 }
+        { 1F40 } { 039F }
+        { 1F41 } { 039F }
+        { 1F42 } { 039F }
+        { 1F43 } { 039F }
+        { 1F44 } { 039F }
+        { 1F45 } { 039F }
+        { 1F48 } { 039F }
+        { 1F49 } { 039F }
+        { 1F4A } { 039F }
+        { 1F4B } { 039F }
+        { 1F4C } { 039F }
+        { 1F4D } { 039F }
+        { 1F50 } { 03A5 }
+        { 1F51 } { 03A5 }
+        { 1F52 } { 03A5 }
+        { 1F53 } { 03A5 }
+        { 1F54 } { 03A5 }
+        { 1F55 } { 03A5 }
+        { 1F56 } { 03A5 }
+        { 1F57 } { 03A5 }
+        { 1F59 } { 03A5 }
+        { 1F5B } { 03A5 }
+        { 1F5D } { 03A5 }
+        { 1F5F } { 03A5 }
+        { 1F60 } { 03A9 }
+        { 1F61 } { 03A9 }
+        { 1F62 } { 03A9 }
+        { 1F63 } { 03A9 }
+        { 1F64 } { 03A9 }
+        { 1F65 } { 03A9 }
+        { 1F66 } { 03A9 }
+        { 1F67 } { 03A9 }
+        { 1F68 } { 03A9 }
+        { 1F69 } { 03A9 }
+        { 1F6A } { 03A9 }
+        { 1F6B } { 03A9 }
+        { 1F6C } { 03A9 }
+        { 1F6D } { 03A9 }
+        { 1F6E } { 03A9 }
+        { 1F6F } { 03A9 }
+        { 1F70 } { 0391 }
+        { 1F71 } { 0391 }
+        { 1F72 } { 0395 }
+        { 1F73 } { 0395 }
+        { 1F74 } { 0397 }
+        { 1F75 } { 0397 }
+        { 1F76 } { 0399 }
+        { 1F77 } { 0399 }
+        { 1F78 } { 039F }
+        { 1F79 } { 039F }
+        { 1F7A } { 03A5 }
+        { 1F7B } { 03A5 }
+        { 1F7C } { 03A9 }
+        { 1F7D } { 03A9 }
+        { 1F80 } { 1FBC }
+        { 1F81 } { 1FBC }
+        { 1F82 } { 1FBC }
+        { 1F83 } { 1FBC }
+        { 1F84 } { 1FBC }
+        { 1F85 } { 1FBC }
+        { 1F86 } { 1FBC }
+        { 1F87 } { 1FBC }
+        { 1F88 } { 1FBC }
+        { 1F89 } { 1FBC }
+        { 1F8A } { 1FBC }
+        { 1F8B } { 1FBC }
+        { 1F8C } { 1FBC }
+        { 1F8D } { 1FBC }
+        { 1F8E } { 1FBC }
+        { 1F8F } { 1FBC }
+        { 1F90 } { 1FCC }
+        { 1F91 } { 1FCC }
+        { 1F92 } { 1FCC }
+        { 1F93 } { 1FCC }
+        { 1F94 } { 1FCC }
+        { 1F95 } { 1FCC }
+        { 1F96 } { 1FCC }
+        { 1F97 } { 1FCC }
+        { 1F98 } { 1FCC }
+        { 1F99 } { 1FCC }
+        { 1F9A } { 1FCC }
+        { 1F9B } { 1FCC }
+        { 1F9C } { 1FCC }
+        { 1F9D } { 1FCC }
+        { 1F9E } { 1FCC }
+        { 1F9F } { 1FCC }
+        { 1FA0 } { 1FFC }
+        { 1FA1 } { 1FFC }
+        { 1FA2 } { 1FFC }
+        { 1FA3 } { 1FFC }
+        { 1FA4 } { 1FFC }
+        { 1FA5 } { 1FFC }
+        { 1FA6 } { 1FFC }
+        { 1FA7 } { 1FFC }
+        { 1FA8 } { 1FFC }
+        { 1FA9 } { 1FFC }
+        { 1FAA } { 1FFC }
+        { 1FAB } { 1FFC }
+        { 1FAC } { 1FFC }
+        { 1FAD } { 1FFC }
+        { 1FAE } { 1FFC }
+        { 1FAF } { 1FFC }
+        { 1FB0 } { 1FB8 }
+        { 1FB1 } { 1FB9 }
+        { 1FB2 } { 1FBC }
+        { 1FB3 } { 1FBC }
+        { 1FB4 } { 1FBC }
+        { 1FB6 } { 0391 }
+        { 1FB7 } { 1FBC }
+        { 1FB8 } { 1FB8 }
+        { 1FB9 } { 1FB9 }
+        { 1FBA } { 0391 }
+        { 1FBB } { 0391 }
+        { 1FBC } { 1FBC }
+        { 1FBD } { 1FBD }
+        { 1FC2 } { 1FCC }
+        { 1FC3 } { 1FCC }
+        { 1FC4 } { 1FCC }
+        { 1FC6 } { 0397 }
+        { 1FC7 } { 1FCC }
+        { 1FC8 } { 0395 }
+        { 1FC9 } { 0395 }
+        { 1FCA } { 0397 }
+        { 1FCB } { 0397 }
+        { 1FCC } { 1FCC }
+        { 1FD0 } { 1FD8 }
+        { 1FD1 } { 1FD9 }
+        { 1FD2 } { 03AA }
+        { 1FD3 } { 03AA }
+        { 1FD6 } { 0399 }
+        { 1FD7 } { 03AA }
+        { 1FD8 } { 1FD8 }
+        { 1FD9 } { 1FD9 }
+        { 1FDA } { 0399 }
+        { 1FDB } { 0399 }
+        { 1FE0 } { 1FE8 }
+        { 1FE1 } { 1FE9 }
+        { 1FE2 } { 03AB }
+        { 1FE3 } { 03AB }
+        { 1FE4 } { 03A1 }
+        { 1FE5 } { 03A1 }
+        { 1FE6 } { 03A5 }
+        { 1FE7 } { 03AB }
+        { 1FE8 } { 1FE8 }
+        { 1FE9 } { 1FE9 }
+        { 1FEA } { 03A5 }
+        { 1FEB } { 03A5 }
+        { 1FEC } { 1FEC }
+        { 1FF2 } { 1FFC }
+        { 1FF3 } { 1FFC }
+        { 1FF4 } { 1FFC }
+        { 1FF6 } { 03A9 }
+        { 1FF7 } { 1FFC }
+        { 1FF8 } { 039F }
+        { 1FF9 } { 039F }
+        { 1FFA } { 03A9 }
+        { 1FFB } { 03A9 }
+        { 1FFC } { 1FFC }
+        \q_recursion_tail ?
+        \q_recursion_stop
   }
 \group_end:
 %    \end{macrocode}
diff --git a/l3kernel/l3text.dtx b/l3kernel/l3text.dtx
index 7615cf396..a98eb3cae 100644
--- a/l3kernel/l3text.dtx
+++ b/l3kernel/l3text.dtx
@@ -170,11 +170,12 @@
 %       Unicode \TeX{} engines.
 %     \item Greek (\texttt{el}).
 %       Removes accents from Greek letters when uppercasing; titlecasing
-%       leaves accents in place. (At present this is implemented only
-%       for Unicode engines.) A variant \texttt{el-x-iota} is available
+%       leaves accents in place. A variant \texttt{el-x-iota} is available
 %       which retains the \textit{ypogegrammeni} (subscript muted iota)
 %       when uppercasing: the standard version converts these to a following
-%       capital iota.
+%       capital iota. For $8$-bit engines a simplified approach is taken
+%       which will remove accents when uppercasing but without full
+%       context analysis.
 %     \item Lithuanian (\texttt{lt}).
 %       The lowercase letters i and j should retain a dot above when the
 %       accents grave, acute or tilde are present. This is implemented for
diff --git a/l3kernel/testfiles/m3text002.tlg b/l3kernel/testfiles/m3text002.tlg
index 950bd0e03..0aab0a612 100644
--- a/l3kernel/testfiles/m3text002.tlg
+++ b/l3kernel/testfiles/m3text002.tlg
@@ -151,44 +151,44 @@ FU^^e1^^ba^^9eBALL
 TEST 16: Greek
 ============================================================
 ^^ce^^86^^ce^^94^^ce^^99^^ce^^9a^^ce^^9f^^ce^^a3, ^^ce^^9a^^ce^^95^^ce^^8a^^ce^^9c^^ce^^95^^ce^^9d^^ce^^9f, ^^ce^^8a^^ce^^a1^^ce^^99^^ce^^94^^ce^^91
-^^ce^^86^^ce^^94^^ce^^99^^ce^^9a^^ce^^9f^^ce^^a3, ^^ce^^9a^^ce^^95^^ce^^8a^^ce^^9c^^ce^^95^^ce^^9d^^ce^^9f, ^^ce^^8a^^ce^^a1^^ce^^99^^ce^^94^^ce^^91
-^^ce^^a0^^ce^^91^^ce^^a4^^ce^^86^^ce^^a4^^ce^^91
+^^ce^^91^^ce^^94^^ce^^99^^ce^^9a^^ce^^9f^^ce^^a3, ^^ce^^9a^^ce^^95^^ce^^99^^ce^^9c^^ce^^95^^ce^^9d^^ce^^9f, ^^ce^^99^^ce^^a1^^ce^^99^^ce^^94^^ce^^91
 ^^ce^^a0^^ce^^91^^ce^^a4^^ce^^86^^ce^^a4^^ce^^91
+^^ce^^a0^^ce^^91^^ce^^a4^^ce^^91^^ce^^a4^^ce^^91
 ^^ce^^91^^ce^^88^^ce^^a1^^ce^^91^^ce^^a3, ^^ce^^9c^^ce^^a5^^ce^^a3^^ce^^a4^^ce^^89^^ce^^a1^^ce^^99^^ce^^9f, ^^ce^^a9^^ce^^a1^^ce^^91^^ce^^8a^^ce^^9f
-^^ce^^91^^ce^^88^^ce^^a1^^ce^^91^^ce^^a3, ^^ce^^9c^^ce^^a5^^ce^^a3^^ce^^a4^^ce^^89^^ce^^a1^^ce^^99^^ce^^9f, ^^ce^^a9^^ce^^a1^^ce^^91^^ce^^8a^^ce^^9f
+^^ce^^91^^ce^^95^^ce^^a1^^ce^^91^^ce^^a3, ^^ce^^9c^^ce^^a5^^ce^^a3^^ce^^a4^^ce^^97^^ce^^a1^^ce^^99^^ce^^9f, ^^ce^^a9^^ce^^a1^^ce^^91^^ce^^99^^ce^^9f
 ^^ce^^9c^^ce^^91^^ce^^90^^ce^^9f^^ce^^a5, ^^ce^^a0^^ce^^8c^^ce^^a1^^ce^^9f^^ce^^a3, ^^ce^^a1^^ce^^8e^^ce^^98^^ce^^9c^^ce^^99^^ce^^a3^^ce^^97
-^^ce^^9c^^ce^^91^^ce^^90^^ce^^9f^^ce^^a5, ^^ce^^a0^^ce^^8c^^ce^^a1^^ce^^9f^^ce^^a3, ^^ce^^a1^^ce^^8e^^ce^^98^^ce^^9c^^ce^^99^^ce^^a3^^ce^^97
-^^ce^^b0, ^^ce^^a4^^ce^^97^^ce^^a1^^ce^^8f, ^^ce^^9c^^ce^^86^^ce^^99^^ce^^9f^^ce^^a3
+^^ce^^9c^^ce^^91^^ce^^aa^^ce^^9f^^ce^^a5, ^^ce^^a0^^ce^^9f^^ce^^a1^^ce^^9f^^ce^^a3, ^^ce^^a1^^ce^^a5^^ce^^98^^ce^^9c^^ce^^99^^ce^^a3^^ce^^97
 ^^ce^^b0, ^^ce^^a4^^ce^^97^^ce^^a1^^ce^^8f, ^^ce^^9c^^ce^^86^^ce^^99^^ce^^9f^^ce^^a3
+^^ce^^ab, ^^ce^^a4^^ce^^97^^ce^^a1^^ce^^a9, ^^ce^^9c^^ce^^91^^ce^^99^^ce^^9f^^ce^^a3
 ^^ce^^86^^ce^^a5^^ce^^9b^^ce^^9f^^ce^^a3
-^^ce^^86^^ce^^a5^^ce^^9b^^ce^^9f^^ce^^a3
+^^ce^^91^^ce^^a5^^ce^^9b^^ce^^9f^^ce^^a3
 ^^ce^^91^^ce^^ab^^ce^^9b^^ce^^9f^^ce^^a3
 ^^ce^^91^^ce^^ab^^ce^^9b^^ce^^9f^^ce^^a3
 ^^ce^^86^^ce^^9a^^ce^^9b^^ce^^99^^ce^^a4^^ce^^91 ^^ce^^a1^^ce^^89^^ce^^9c^^ce^^91^^ce^^a4^^ce^^91 ^^ce^^89 ^^ce^^86^^ce^^9a^^ce^^9b^^ce^^99^^ce^^a4^^ce^^95^^ce^^a3 ^^ce^^9c^^ce^^95^^ce^^a4^^ce^^9f^^ce^^a7^^ce^^88^^ce^^a3
-^^ce^^86^^ce^^9a^^ce^^9b^^ce^^99^^ce^^a4^^ce^^91 ^^ce^^a1^^ce^^89^^ce^^9c^^ce^^91^^ce^^a4^^ce^^91 ^^ce^^89 ^^ce^^86^^ce^^9a^^ce^^9b^^ce^^99^^ce^^a4^^ce^^95^^ce^^a3 ^^ce^^9c^^ce^^95^^ce^^a4^^ce^^9f^^ce^^a7^^ce^^88^^ce^^a3
-^^ce^^95^^ce^^a0^^ce^^95^^ce^^99^^ce^^94^^ce^^89 ^^ce^^97 ^^ce^^91^^ce^^9d^^ce^^91^^ce^^93^^ce^^9d^^ce^^8f^^ce^^a1^^ce^^99^^ce^^a3^^ce^^97 ^^ce^^a4^^ce^^97^^ce^^a3 ^^ce^^91^^ce^^9e^^ce^^99^^ce^^9f^^ce^^a0^^ce^^a1^^ce^^88^^ce^^a0^^ce^^95^^ce^^99^^ce^^91^^ce^^a3
+^^ce^^91^^ce^^9a^^ce^^9b^^ce^^99^^ce^^a4^^ce^^91 ^^ce^^a1^^ce^^97^^ce^^9c^^ce^^91^^ce^^a4^^ce^^91 ^^ce^^97 ^^ce^^91^^ce^^9a^^ce^^9b^^ce^^99^^ce^^a4^^ce^^95^^ce^^a3 ^^ce^^9c^^ce^^95^^ce^^a4^^ce^^9f^^ce^^a7^^ce^^95^^ce^^a3
 ^^ce^^95^^ce^^a0^^ce^^95^^ce^^99^^ce^^94^^ce^^89 ^^ce^^97 ^^ce^^91^^ce^^9d^^ce^^91^^ce^^93^^ce^^9d^^ce^^8f^^ce^^a1^^ce^^99^^ce^^a3^^ce^^97 ^^ce^^a4^^ce^^97^^ce^^a3 ^^ce^^91^^ce^^9e^^ce^^99^^ce^^9f^^ce^^a0^^ce^^a1^^ce^^88^^ce^^a0^^ce^^95^^ce^^99^^ce^^91^^ce^^a3
+^^ce^^95^^ce^^a0^^ce^^95^^ce^^99^^ce^^94^^ce^^97 ^^ce^^97 ^^ce^^91^^ce^^9d^^ce^^91^^ce^^93^^ce^^9d^^ce^^a9^^ce^^a1^^ce^^99^^ce^^a3^^ce^^97 ^^ce^^a4^^ce^^97^^ce^^a3 ^^ce^^91^^ce^^9e^^ce^^99^^ce^^9f^^ce^^a0^^ce^^a1^^ce^^95^^ce^^a0^^ce^^95^^ce^^99^^ce^^91^^ce^^a3
 ^^ce^^9d^^ce^^9f^^ce^^9c^^ce^^99^^ce^^9a^^ce^^9f^^ce^^8e ^^ce^^89 ^^ce^^94^^ce^^99^^ce^^95^^ce^^98^^ce^^9d^^ce^^9f^^ce^^8e^^ce^^a3
-^^ce^^9d^^ce^^9f^^ce^^9c^^ce^^99^^ce^^9a^^ce^^9f^^ce^^8e ^^ce^^89 ^^ce^^94^^ce^^99^^ce^^95^^ce^^98^^ce^^9d^^ce^^9f^^ce^^8e^^ce^^a3
-^^e1^^bc^^98^^ce^^a0^^ce^^95^^ce^^99^^ce^^94^^e1^^bf^^8a ^^e1^^bc^^a9 ^^e1^^bc^^88^^ce^^9d^^ce^^91^^ce^^93^^ce^^9d^^ce^^8f^^ce^^a1^^ce^^99^^ce^^a3^^ce^^97
+^^ce^^9d^^ce^^9f^^ce^^9c^^ce^^99^^ce^^9a^^ce^^9f^^ce^^a5 ^^ce^^97 ^^ce^^94^^ce^^99^^ce^^95^^ce^^98^^ce^^9d^^ce^^9f^^ce^^a5^^ce^^a3
 ^^e1^^bc^^98^^ce^^a0^^ce^^95^^ce^^99^^ce^^94^^e1^^bf^^8a ^^e1^^bc^^a9 ^^e1^^bc^^88^^ce^^9d^^ce^^91^^ce^^93^^ce^^9d^^ce^^8f^^ce^^a1^^ce^^99^^ce^^a3^^ce^^97
+^^ce^^95^^ce^^a0^^ce^^95^^ce^^99^^ce^^94^^ce^^97 ^^ce^^97 ^^ce^^91^^ce^^9d^^ce^^91^^ce^^93^^ce^^9d^^ce^^a9^^ce^^a1^^ce^^99^^ce^^a3^^ce^^97
 ^^ce^^9d^^ce^^9f^^ce^^9c^^ce^^99^^ce^^9a^^ce^^9f^^e1^^bf^^a6 ^^e1^^bc^^aa ^^ce^^94^^ce^^99^^ce^^95^^ce^^98^^ce^^9d^^ce^^9f^^e1^^bf^^a6^^ce^^a3
-^^ce^^9d^^ce^^9f^^ce^^9c^^ce^^99^^ce^^9a^^ce^^9f^^e1^^bf^^a6 ^^e1^^bc^^aa ^^ce^^94^^ce^^99^^ce^^95^^ce^^98^^ce^^9d^^ce^^9f^^e1^^bf^^a6^^ce^^a3
-^^ce^^9d^^ce^^88^^ce^^9f, ^^ce^^94^^ce^^97^^ce^^9c^^ce^^99^^ce^^9f^^ce^^a5^^ce^^a1^^ce^^93^^ce^^8a^^ce^^91
+^^ce^^9d^^ce^^9f^^ce^^9c^^ce^^99^^ce^^9a^^ce^^9f^^ce^^a5 ^^ce^^97 ^^ce^^94^^ce^^99^^ce^^95^^ce^^98^^ce^^9d^^ce^^9f^^ce^^a5^^ce^^a3
 ^^ce^^9d^^ce^^88^^ce^^9f, ^^ce^^94^^ce^^97^^ce^^9c^^ce^^99^^ce^^9f^^ce^^a5^^ce^^a1^^ce^^93^^ce^^8a^^ce^^91
+^^ce^^9d^^ce^^95^^ce^^9f, ^^ce^^94^^ce^^97^^ce^^9c^^ce^^99^^ce^^9f^^ce^^a5^^ce^^a1^^ce^^93^^ce^^99^^ce^^91
 ^^ce^^95^^ce^^9b^^ce^^86^^ce^^a4^^ce^^95 ^^ce^^9d^^ce^^91 ^^ce^^a6^^ce^^86^^ce^^a4^^ce^^95 ^^ce^^a4^^ce^^91 ^^ce^^9a^^ce^^91^^ce^^9b^^ce^^8e^^ce^^a4^^ce^^95^^ce^^a1^^ce^^91 ^^ce^^a0^^ce^^91^^ce^^aa^^ce^^94^^ce^^86^^ce^^9a^^ce^^99^^ce^^91!
-^^ce^^95^^ce^^9b^^ce^^86^^ce^^a4^^ce^^95 ^^ce^^9d^^ce^^91 ^^ce^^a6^^ce^^86^^ce^^a4^^ce^^95 ^^ce^^a4^^ce^^91 ^^ce^^9a^^ce^^91^^ce^^9b^^ce^^8e^^ce^^a4^^ce^^95^^ce^^a1^^ce^^91 ^^ce^^a0^^ce^^91^^ce^^aa^^ce^^94^^ce^^86^^ce^^9a^^ce^^99^^ce^^91!
+^^ce^^95^^ce^^9b^^ce^^91^^ce^^a4^^ce^^95 ^^ce^^9d^^ce^^91 ^^ce^^a6^^ce^^91^^ce^^a4^^ce^^95 ^^ce^^a4^^ce^^91 ^^ce^^9a^^ce^^91^^ce^^9b^^ce^^a5^^ce^^a4^^ce^^95^^ce^^a1^^ce^^91 ^^ce^^a0^^ce^^91^^ce^^aa^^ce^^94^^ce^^91^^ce^^9a^^ce^^99^^ce^^91!
 ^^ce^^9c^^ce^^91^^ce^^90^^ce^^9f^^ce^^a5, ^^ce^^a4^^ce^^a1^^ce^^8c^^ce^^9b^^ce^^95^^ce^^aa
-^^ce^^9c^^ce^^91^^ce^^90^^ce^^9f^^ce^^a5, ^^ce^^a4^^ce^^a1^^ce^^8c^^ce^^9b^^ce^^95^^ce^^aa
-^^ce^^a4^^ce^^9f ^^ce^^88^^ce^^9d^^ce^^91 ^^ce^^89 ^^ce^^a4^^ce^^9f ^^ce^^86^^ce^^9b^^ce^^9b^^ce^^9f.
+^^ce^^9c^^ce^^91^^ce^^aa^^ce^^9f^^ce^^a5, ^^ce^^a4^^ce^^a1^^ce^^9f^^ce^^9b^^ce^^95^^ce^^aa
 ^^ce^^a4^^ce^^9f ^^ce^^88^^ce^^9d^^ce^^91 ^^ce^^89 ^^ce^^a4^^ce^^9f ^^ce^^86^^ce^^9b^^ce^^9b^^ce^^9f.
+^^ce^^a4^^ce^^9f ^^ce^^95^^ce^^9d^^ce^^91 ^^ce^^97 ^^ce^^a4^^ce^^9f ^^ce^^91^^ce^^9b^^ce^^9b^^ce^^9f.
 ^^ce^^a1^^ce^^a9^^ce^^9c^^ce^^88^^ce^^99^^ce^^9a^^ce^^91
-^^ce^^a1^^ce^^a9^^ce^^9c^^ce^^88^^ce^^99^^ce^^9a^^ce^^91
-^^e1^^bd^^88^^ce^^b4^^cf^^85^^cf^^83^^cf^^83^^ce^^b5^^cf^^8d^^cf^^82
+^^ce^^a1^^ce^^a9^^ce^^9c^^ce^^95^^ce^^99^^ce^^9a^^ce^^91
 ^^e1^^bd^^88^^ce^^b4^^cf^^85^^cf^^83^^cf^^83^^ce^^b5^^cf^^8d^^cf^^82
+^^ce^^9f^^ce^^94^^ce^^a5^^ce^^a3^^ce^^a3^^ce^^95^^ce^^a5^^ce^^a3
 ^^e1^^bf^^84
-^^e1^^bf^^84
-^^e1^^bf^^84
+^^e1^^bf^^8c
+^^e1^^bf^^8c
 ^^e1^^bf^^8c^^cc^^81
 ^^e1^^bf^^8c^^cc^^81
 ^^e1^^bf^^8c^^cc^^81
diff --git a/l3kernel/testfiles/m3text002.uptex.tlg b/l3kernel/testfiles/m3text002.uptex.tlg
index 86a5f054c..0c52fd590 100644
--- a/l3kernel/testfiles/m3text002.uptex.tlg
+++ b/l3kernel/testfiles/m3text002.uptex.tlg
@@ -151,47 +151,47 @@ FU^^e1^^ba^^9eBALL
 TEST 16: Greek
 ============================================================
 ^^ce^^86^^ce^^94^^ce^^99^^ce^^9a^^ce^^9f^^ce^^a3, ^^ce^^9a^^ce^^95^^ce^^8a^^ce^^9c^^ce^^95^^ce^^9d^^ce^^9f, ^^ce^^8a^^ce^^a1^^ce^^99^^ce^^94^^ce^^91
-^^ce^^86^^ce^^94^^ce^^99^^ce^^9a^^ce^^9f^^ce^^a3, ^^ce^^9a^^ce^^95^^ce^^8a^^ce^^9c^^ce^^95^^ce^^9d^^ce^^9f, ^^ce^^8a^^ce^^a1^^ce^^99^^ce^^94^^ce^^91
-^^ce^^a0^^ce^^91^^ce^^a4^^ce^^86^^ce^^a4^^ce^^91
+^^ce^^91^^ce^^94^^ce^^99^^ce^^9a^^ce^^9f^^ce^^a3, ^^ce^^9a^^ce^^95^^ce^^99^^ce^^9c^^ce^^95^^ce^^9d^^ce^^9f, ^^ce^^99^^ce^^a1^^ce^^99^^ce^^94^^ce^^91
 ^^ce^^a0^^ce^^91^^ce^^a4^^ce^^86^^ce^^a4^^ce^^91
+^^ce^^a0^^ce^^91^^ce^^a4^^ce^^91^^ce^^a4^^ce^^91
 ^^ce^^91^^ce^^88^^ce^^a1^^ce^^91^^ce^^a3, ^^ce^^9c^^ce^^a5^^ce^^a3^^ce^^a4^^ce^^89^^ce^^a1^^ce^^99^^ce^^9f, ^^ce^^a9^^ce^^a1^^ce^^91^^ce^^8a^^ce^^9f
-^^ce^^91^^ce^^88^^ce^^a1^^ce^^91^^ce^^a3, ^^ce^^9c^^ce^^a5^^ce^^a3^^ce^^a4^^ce^^89^^ce^^a1^^ce^^99^^ce^^9f, ^^ce^^a9^^ce^^a1^^ce^^91^^ce^^8a^^ce^^9f
+^^ce^^91^^ce^^95^^ce^^a1^^ce^^91^^ce^^a3, ^^ce^^9c^^ce^^a5^^ce^^a3^^ce^^a4^^ce^^97^^ce^^a1^^ce^^99^^ce^^9f, ^^ce^^a9^^ce^^a1^^ce^^91^^ce^^99^^ce^^9f
 ^^ce^^9c^^ce^^91^^ce^^90^^ce^^9f^^ce^^a5, ^^ce^^a0^^ce^^8c^^ce^^a1^^ce^^9f^^ce^^a3, ^^ce^^a1^^ce^^8e^^ce^^98^^ce^^9c^^ce^^99^^ce^^a3^^ce^^97
-^^ce^^9c^^ce^^91^^ce^^90^^ce^^9f^^ce^^a5, ^^ce^^a0^^ce^^8c^^ce^^a1^^ce^^9f^^ce^^a3, ^^ce^^a1^^ce^^8e^^ce^^98^^ce^^9c^^ce^^99^^ce^^a3^^ce^^97
-^^ce^^b0, ^^ce^^a4^^ce^^97^^ce^^a1^^ce^^8f, ^^ce^^9c^^ce^^86^^ce^^99^^ce^^9f^^ce^^a3
+^^ce^^9c^^ce^^91^^ce^^aa^^ce^^9f^^ce^^a5, ^^ce^^a0^^ce^^9f^^ce^^a1^^ce^^9f^^ce^^a3, ^^ce^^a1^^ce^^a5^^ce^^98^^ce^^9c^^ce^^99^^ce^^a3^^ce^^97
 ^^ce^^b0, ^^ce^^a4^^ce^^97^^ce^^a1^^ce^^8f, ^^ce^^9c^^ce^^86^^ce^^99^^ce^^9f^^ce^^a3
+^^ce^^ab, ^^ce^^a4^^ce^^97^^ce^^a1^^ce^^a9, ^^ce^^9c^^ce^^91^^ce^^99^^ce^^9f^^ce^^a3
 ^^ce^^86^^ce^^a5^^ce^^9b^^ce^^9f^^ce^^a3
-^^ce^^86^^ce^^a5^^ce^^9b^^ce^^9f^^ce^^a3
+^^ce^^91^^ce^^a5^^ce^^9b^^ce^^9f^^ce^^a3
 ^^ce^^91^^ce^^ab^^ce^^9b^^ce^^9f^^ce^^a3
 ^^ce^^91^^ce^^ab^^ce^^9b^^ce^^9f^^ce^^a3
 ^^ce^^86^^ce^^9a^^ce^^9b^^ce^^99^^ce^^a4^^ce^^91 ^^ce^^a1^^ce^^89^^ce^^9c^^ce^^91^^ce^^a4^^ce^^91 ^^ce^^89 ^^ce^^86^^ce^^9a^^ce^^9b^^ce^^99^^ce^^a4^^ce^^95^^ce^^a3 ^^ce^^9c^^ce^^95^^ce^^a4^^ce^^9f^^ce^^a7^^ce^^88^^ce^^a3
-^^ce^^86^^ce^^9a^^ce^^9b^^ce^^99^^ce^^a4^^ce^^91 ^^ce^^a1^^ce^^89^^ce^^9c^^ce^^91^^ce^^a4^^ce^^91 ^^ce^^89 ^^ce^^86^^ce^^9a^^ce^^9b^^ce^^99^^ce^^a4^^ce^^95^^ce^^a3 ^^ce^^9c^^ce^^95^^ce^^a4^^ce^^9f^^ce^^a7^^ce^^88^^ce^^a3
-^^ce^^95^^ce^^a0^^ce^^95^^ce^^99^^ce^^94^^ce^^89 ^^ce^^97 ^^ce^^91^^ce^^9d^^ce^^91^^ce^^93^^ce^^9d^^ce^^8f^^ce^^a1^^ce^^99^^ce^^a3^^ce^^97 ^^ce^^a4^^ce^^97^^ce^^a3 ^^ce^^91^^ce^^9e^^ce^^99^^ce^^9f^^ce^^a0^^ce^^a1^^ce^^88^^ce^^a0^^ce^^95^^ce^^99^^ce^^91^^ce^^a3
+^^ce^^91^^ce^^9a^^ce^^9b^^ce^^99^^ce^^a4^^ce^^91 ^^ce^^a1^^ce^^97^^ce^^9c^^ce^^91^^ce^^a4^^ce^^91 ^^ce^^97 ^^ce^^91^^ce^^9a^^ce^^9b^^ce^^99^^ce^^a4^^ce^^95^^ce^^a3 ^^ce^^9c^^ce^^95^^ce^^a4^^ce^^9f^^ce^^a7^^ce^^95^^ce^^a3
 ^^ce^^95^^ce^^a0^^ce^^95^^ce^^99^^ce^^94^^ce^^89 ^^ce^^97 ^^ce^^91^^ce^^9d^^ce^^91^^ce^^93^^ce^^9d^^ce^^8f^^ce^^a1^^ce^^99^^ce^^a3^^ce^^97 ^^ce^^a4^^ce^^97^^ce^^a3 ^^ce^^91^^ce^^9e^^ce^^99^^ce^^9f^^ce^^a0^^ce^^a1^^ce^^88^^ce^^a0^^ce^^95^^ce^^99^^ce^^91^^ce^^a3
+^^ce^^95^^ce^^a0^^ce^^95^^ce^^99^^ce^^94^^ce^^97 ^^ce^^97 ^^ce^^91^^ce^^9d^^ce^^91^^ce^^93^^ce^^9d^^ce^^a9^^ce^^a1^^ce^^99^^ce^^a3^^ce^^97 ^^ce^^a4^^ce^^97^^ce^^a3 ^^ce^^91^^ce^^9e^^ce^^99^^ce^^9f^^ce^^a0^^ce^^a1^^ce^^95^^ce^^a0^^ce^^95^^ce^^99^^ce^^91^^ce^^a3
 ^^ce^^9d^^ce^^9f^^ce^^9c^^ce^^99^^ce^^9a^^ce^^9f^^ce^^8e ^^ce^^89 ^^ce^^94^^ce^^99^^ce^^95^^ce^^98^^ce^^9d^^ce^^9f^^ce^^8e^^ce^^a3
-^^ce^^9d^^ce^^9f^^ce^^9c^^ce^^99^^ce^^9a^^ce^^9f^^ce^^8e ^^ce^^89 ^^ce^^94^^ce^^99^^ce^^95^^ce^^98^^ce^^9d^^ce^^9f^^ce^^8e^^ce^^a3
+^^ce^^9d^^ce^^9f^^ce^^9c^^ce^^99^^ce^^9a^^ce^^9f^^ce^^a5 ^^ce^^97 ^^ce^^94^^ce^^99^^ce^^95^^ce^^98^^ce^^9d^^ce^^9f^^ce^^a5^^ce^^a3
 ^^e1^^bc^^98^^ce^^a0^^ce^^95^^ce^^99^^ce^^94^^e1^^bd^^b4 ^^e1^^bc^^a1 ^^e1^^bc^^80^^ce^^9d^^ce^^91^^ce^^93^^ce^^9d^^ce^^8f^^ce^^a1^^ce^^99^^ce^^a3^^ce^^97
-^^e1^^bc^^98^^ce^^a0^^ce^^95^^ce^^99^^ce^^94^^e1^^bd^^b4 ^^e1^^bc^^a1 ^^e1^^bc^^80^^ce^^9d^^ce^^91^^ce^^93^^ce^^9d^^ce^^8f^^ce^^a1^^ce^^99^^ce^^a3^^ce^^97
-^^ce^^9d^^ce^^9f^^ce^^9c^^ce^^99^^ce^^9a^^ce^^9f^^e1^^bf^^a6 ^^e1^^bc^^a2 ^^ce^^94^^ce^^99^^ce^^95^^ce^^98^^ce^^9d^^ce^^9f^^e1^^bf^^a6^^ce^^a3
+^^ce^^95^^ce^^a0^^ce^^95^^ce^^99^^ce^^94^^ce^^97 ^^ce^^97 ^^ce^^91^^ce^^9d^^ce^^91^^ce^^93^^ce^^9d^^ce^^a9^^ce^^a1^^ce^^99^^ce^^a3^^ce^^97
 ^^ce^^9d^^ce^^9f^^ce^^9c^^ce^^99^^ce^^9a^^ce^^9f^^e1^^bf^^a6 ^^e1^^bc^^a2 ^^ce^^94^^ce^^99^^ce^^95^^ce^^98^^ce^^9d^^ce^^9f^^e1^^bf^^a6^^ce^^a3
+^^ce^^9d^^ce^^9f^^ce^^9c^^ce^^99^^ce^^9a^^ce^^9f^^ce^^a5 ^^ce^^97 ^^ce^^94^^ce^^99^^ce^^95^^ce^^98^^ce^^9d^^ce^^9f^^ce^^a5^^ce^^a3
 ^^ce^^9d^^ce^^88^^ce^^9f, ^^ce^^94^^ce^^97^^ce^^9c^^ce^^99^^ce^^9f^^ce^^a5^^ce^^a1^^ce^^93^^ce^^8a^^ce^^91
-^^ce^^9d^^ce^^88^^ce^^9f, ^^ce^^94^^ce^^97^^ce^^9c^^ce^^99^^ce^^9f^^ce^^a5^^ce^^a1^^ce^^93^^ce^^8a^^ce^^91
-^^ce^^95^^ce^^9b^^ce^^86^^ce^^a4^^ce^^95 ^^ce^^9d^^ce^^91 ^^ce^^a6^^ce^^86^^ce^^a4^^ce^^95 ^^ce^^a4^^ce^^91 ^^ce^^9a^^ce^^91^^ce^^9b^^ce^^8e^^ce^^a4^^ce^^95^^ce^^a1^^ce^^91 ^^ce^^a0^^ce^^91^^ce^^aa^^ce^^94^^ce^^86^^ce^^9a^^ce^^99^^ce^^91!
+^^ce^^9d^^ce^^95^^ce^^9f, ^^ce^^94^^ce^^97^^ce^^9c^^ce^^99^^ce^^9f^^ce^^a5^^ce^^a1^^ce^^93^^ce^^99^^ce^^91
 ^^ce^^95^^ce^^9b^^ce^^86^^ce^^a4^^ce^^95 ^^ce^^9d^^ce^^91 ^^ce^^a6^^ce^^86^^ce^^a4^^ce^^95 ^^ce^^a4^^ce^^91 ^^ce^^9a^^ce^^91^^ce^^9b^^ce^^8e^^ce^^a4^^ce^^95^^ce^^a1^^ce^^91 ^^ce^^a0^^ce^^91^^ce^^aa^^ce^^94^^ce^^86^^ce^^9a^^ce^^99^^ce^^91!
+^^ce^^95^^ce^^9b^^ce^^91^^ce^^a4^^ce^^95 ^^ce^^9d^^ce^^91 ^^ce^^a6^^ce^^91^^ce^^a4^^ce^^95 ^^ce^^a4^^ce^^91 ^^ce^^9a^^ce^^91^^ce^^9b^^ce^^a5^^ce^^a4^^ce^^95^^ce^^a1^^ce^^91 ^^ce^^a0^^ce^^91^^ce^^aa^^ce^^94^^ce^^91^^ce^^9a^^ce^^99^^ce^^91!
 ^^ce^^9c^^ce^^91^^ce^^90^^ce^^9f^^ce^^a5, ^^ce^^a4^^ce^^a1^^ce^^8c^^ce^^9b^^ce^^95^^ce^^aa
-^^ce^^9c^^ce^^91^^ce^^90^^ce^^9f^^ce^^a5, ^^ce^^a4^^ce^^a1^^ce^^8c^^ce^^9b^^ce^^95^^ce^^aa
+^^ce^^9c^^ce^^91^^ce^^aa^^ce^^9f^^ce^^a5, ^^ce^^a4^^ce^^a1^^ce^^9f^^ce^^9b^^ce^^95^^ce^^aa
 ^^ce^^a4^^ce^^9f ^^ce^^88^^ce^^9d^^ce^^91 ^^ce^^89 ^^ce^^a4^^ce^^9f ^^ce^^86^^ce^^9b^^ce^^9b^^ce^^9f.
-^^ce^^a4^^ce^^9f ^^ce^^88^^ce^^9d^^ce^^91 ^^ce^^89 ^^ce^^a4^^ce^^9f ^^ce^^86^^ce^^9b^^ce^^9b^^ce^^9f.
-^^ce^^a1^^ce^^a9^^ce^^9c^^ce^^88^^ce^^99^^ce^^9a^^ce^^91
+^^ce^^a4^^ce^^9f ^^ce^^95^^ce^^9d^^ce^^91 ^^ce^^97 ^^ce^^a4^^ce^^9f ^^ce^^91^^ce^^9b^^ce^^9b^^ce^^9f.
 ^^ce^^a1^^ce^^a9^^ce^^9c^^ce^^88^^ce^^99^^ce^^9a^^ce^^91
+^^ce^^a1^^ce^^a9^^ce^^9c^^ce^^95^^ce^^99^^ce^^9a^^ce^^91
 ^^e1^^bd^^88^^ce^^b4^^cf^^85^^cf^^83^^cf^^83^^ce^^b5^^cf^^8d^^cf^^82
-^^e1^^bd^^88^^ce^^b4^^cf^^85^^cf^^83^^cf^^83^^ce^^b5^^cf^^8d^^cf^^82
-^^e1^^bf^^84
-^^e1^^bf^^84
+^^ce^^9f^^ce^^94^^ce^^a5^^ce^^a3^^ce^^a3^^ce^^95^^ce^^a5^^ce^^a3
 ^^e1^^bf^^84
+^^e1^^bf^^8c
+^^e1^^bf^^8c
 ^^e1^^bf^^83^^cc^^81
-^^e1^^bf^^83^^cc^^81
-^^e1^^bf^^83^^cc^^81
+^^e1^^bf^^8c^^cc^^81
+^^e1^^bf^^8c^^cc^^81
 ============================================================
 ============================================================
 TEST 17: Turkish/Azeri





More information about the latex3-commits mailing list.