summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex')
-rw-r--r--Master/texmf-dist/source/latex/l3build/l3build.dtx8
-rw-r--r--Master/texmf-dist/source/latex/l3build/l3build.lua8
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3sort/l3sort.dtx6
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3str/l3flag.dtx6
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3str/l3regex.dtx6
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3str/l3str-expl.dtx6
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/expl3.dtx4
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx14
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3drivers.dtx17
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3tl.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3unicode-data.def181
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3unicode-data.dtx230
-rw-r--r--Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e.dtx6
-rw-r--r--Master/texmf-dist/source/latex/l3packages/xparse/xparse.dtx10
-rw-r--r--Master/texmf-dist/source/latex/l3packages/xtemplate/xtemplate.dtx6
16 files changed, 312 insertions, 200 deletions
diff --git a/Master/texmf-dist/source/latex/l3build/l3build.dtx b/Master/texmf-dist/source/latex/l3build/l3build.dtx
index 71746aa523d..990788d6dbc 100644
--- a/Master/texmf-dist/source/latex/l3build/l3build.dtx
+++ b/Master/texmf-dist/source/latex/l3build/l3build.dtx
@@ -39,8 +39,8 @@
\RequirePackage{expl3}
\def\ExplFileName{l3build}
\def\ExplFileDescription{L3 Regression test suite}
-\def\ExplFileDate{2014/09/15}
-\def\ExplFileVersion{5423}
+\def\ExplFileDate{2014/11/25}
+\def\ExplFileVersion{5471}
\documentclass[full]{l3doc}
\renewcommand\partname{Part}
\usepackage{multicol,needspace}
@@ -580,6 +580,8 @@
% Modifications made in lines are:
% \begin{itemize}
% \item Removal of the name of the test file itself.
+% \item Removal of the |pdftex.map| load information given during
+% first page shipout.
% \item Removal spaces at the start of lines (deals with some issues
% with \LuaTeX{} using a different amount of indentation to other engines).
% \item Removal of |./| at start of file names.
@@ -593,6 +595,8 @@
% to allow flexibility in changes to test files.
% \item Restriction of glue set in boxes to four decimal places (\LuaTeX{}
% may vary in the last digit from the \pdfTeX{} values).
+% \item Removal of the \texttt{display} added by \TeX{} versions other than
+% \LuaTeX{} to display math boxes.
% \item Removal of the Omega-like \texttt{direction TLT} added by
% \LuaTeX{} to boxes running in the \enquote{normal} way.
% \item Conversion of low chars ($1$ to $31$) to |^^| notation (\LuaTeX{}
diff --git a/Master/texmf-dist/source/latex/l3build/l3build.lua b/Master/texmf-dist/source/latex/l3build/l3build.lua
index 2b20e41474e..e965353d2ea 100644
--- a/Master/texmf-dist/source/latex/l3build/l3build.lua
+++ b/Master/texmf-dist/source/latex/l3build/l3build.lua
@@ -17,8 +17,8 @@
--]]
-- Version information: should be identical to that in l3build.dtx
-release_date = "2014/11/21"
-release_ver = "5462"
+release_date = "2014/11/25"
+release_ver = "5471"
-- "module" is a deprecated function in Lua 5.2: as we want the name
-- for other purposes, and it should eventually be 'free', simply
@@ -488,6 +488,8 @@ function formatlog (logfile, newfile)
if checksearch then
line = string.gsub (line, "%(.*/([%w-]+%.[%w-]+)%s*$", "(../%1")
end
+ -- Zap map loading on first page output
+ line = string.gsub (line, "%[1{[%w/%-]*/pdftex%.map}%]", "[1]")
-- XeTeX knows only the smaller set of dimension units
line = string.gsub (
line, "cm, mm, dd, cc, bp, or sp", "cm, mm, dd, cc, nd, nc, bp, or sp"
@@ -508,6 +510,8 @@ function formatlog (logfile, newfile)
line = string.gsub (
line, "glue set (%d+.%d%d%d%d)%dfil", "glue set %1fil"
)
+ -- Remove 'display' at end of display math boxes: LuaTeX omits this
+ line = string.gsub (line, "(\\hbox%(.*), display$", "%1")
-- Remove 'normal' direction information on boxes in LuaTeX:
-- any bidi/vertical stuff will still show
line = string.gsub (line, ", direction TLT", "")
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3sort/l3sort.dtx b/Master/texmf-dist/source/latex/l3experimental/l3sort/l3sort.dtx
index 073b580e598..142fd3b5502 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3sort/l3sort.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3sort/l3sort.dtx
@@ -37,8 +37,8 @@
%<*driver|package>
% The version of expl3 required is tested as early as possible, as
% some really old versions do not define \ProvidesExplPackage.
-\RequirePackage{expl3}[2014/09/15]
-%<package>\@ifpackagelater{expl3}{2014/09/15}
+\RequirePackage{expl3}[2014/11/25]
+%<package>\@ifpackagelater{expl3}{2014/11/25}
%<package> {}
%<package> {%
%<package> \PackageError{l3sort}{Support package l3kernel too old}
@@ -50,7 +50,7 @@
%<package> }%
%<package> \endinput
%<package> }
-\GetIdInfo$Id: l3sort.dtx 5423 2014-09-15 10:48:14Z joseph $
+\GetIdInfo$Id: l3sort.dtx 5471 2014-11-25 20:11:29Z joseph $
{L3 Experimental sorting functions}
%</driver|package>
%<*driver>
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3str/l3flag.dtx b/Master/texmf-dist/source/latex/l3experimental/l3str/l3flag.dtx
index fb868a326f7..6c2ee148cd4 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3str/l3flag.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3str/l3flag.dtx
@@ -36,8 +36,8 @@
%<*driver|package>
% The version of expl3 required is tested as early as possible, as
% some really old versions do not define \ProvidesExplPackage.
-\RequirePackage{expl3}[2014/09/15]
-%<package>\@ifpackagelater{expl3}{2014/09/15}
+\RequirePackage{expl3}[2014/11/25]
+%<package>\@ifpackagelater{expl3}{2014/11/25}
%<package> {}
%<package> {%
%<package> \PackageError{l3flag}{Support package l3kernel too old}
@@ -49,7 +49,7 @@
%<package> }%
%<package> \endinput
%<package> }
-\GetIdInfo$Id: l3flag.dtx 5423 2014-09-15 10:48:14Z joseph $
+\GetIdInfo$Id: l3flag.dtx 5471 2014-11-25 20:11:29Z joseph $
{L3 Experimental flags}
%</driver|package>
%<*driver>
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3str/l3regex.dtx b/Master/texmf-dist/source/latex/l3experimental/l3str/l3regex.dtx
index 89ca8f80578..37225d80243 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3str/l3regex.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3str/l3regex.dtx
@@ -36,8 +36,8 @@
%<*driver|package>
% The version of expl3 required is tested as early as possible, as
% some really old versions do not define \ProvidesExplPackage.
-\RequirePackage{expl3}[2014/09/15]
-%<package>\@ifpackagelater{expl3}{2014/09/15}
+\RequirePackage{expl3}[2014/11/25]
+%<package>\@ifpackagelater{expl3}{2014/11/25}
%<package> {}
%<package> {%
%<package> \PackageError{l3regex}{Support package l3kernel too old}
@@ -49,7 +49,7 @@
%<package> }%
%<package> \endinput
%<package> }
-\GetIdInfo$Id: l3regex.dtx 5423 2014-09-15 10:48:14Z joseph $
+\GetIdInfo$Id: l3regex.dtx 5471 2014-11-25 20:11:29Z joseph $
{L3 Experimental regular expressions}
%</driver|package>
%<*driver>
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-expl.dtx b/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-expl.dtx
index 2bce0b00e88..cb8060eb0ea 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-expl.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-expl.dtx
@@ -36,8 +36,8 @@
%<*driver|package>
% The version of expl3 required is tested as early as possible, as
% some really old versions do not define \ProvidesExplPackage.
-\RequirePackage{expl3}[2014/09/15]
-%<package>\@ifpackagelater{expl3}{2014/09/15}
+\RequirePackage{expl3}[2014/11/25]
+%<package>\@ifpackagelater{expl3}{2014/11/25}
%<package> {}
%<package> {%
%<package> \PackageError{l3str}{Support package l3kernel too old}
@@ -49,7 +49,7 @@
%<package> }%
%<package> \endinput
%<package> }
-\GetIdInfo$Id: l3str-expl.dtx 5423 2014-09-15 10:48:14Z joseph $
+\GetIdInfo$Id: l3str-expl.dtx 5471 2014-11-25 20:11:29Z joseph $
{L3 Experimental strings}
\def\ExplFileName{l3str}
%</driver|package>
diff --git a/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx b/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx
index 2a47769ad34..9ebc2fbc7dc 100644
--- a/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx
@@ -51,7 +51,7 @@
%<package> }%
%<package> \endinput
%<package> }
-\GetIdInfo$Id: l3galley.dtx 5423 2014-09-15 10:48:14Z joseph $
+\GetIdInfo$Id: l3galley.dtx 5437 2014-10-17 12:24:43Z joseph $
{L3 Experimental galley code}
%</driver|package>
%<*driver>
diff --git a/Master/texmf-dist/source/latex/l3kernel/expl3.dtx b/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
index d5248ec5e5e..4f602f7daca 100644
--- a/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
@@ -36,8 +36,8 @@
%<*driver|generic|package>
\def\ExplFileName{expl3}
\def\ExplFileDescription{L3 programming layer}
-\def\ExplFileDate{2014/09/15}
-\def\ExplFileVersion{5423}
+\def\ExplFileDate{2014/11/25}
+\def\ExplFileVersion{5471}
%</driver|generic|package>
%<*driver>
\documentclass[full]{l3doc}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx b/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx
index 38558ff9325..eb1fa9c4b29 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx
@@ -38,7 +38,7 @@
\documentclass[full]{l3doc}
%</driver>
%<*driver|package>
-\GetIdInfo$Id: l3candidates.dtx 5366 2014-08-24 21:35:03Z bruno $
+\GetIdInfo$Id: l3candidates.dtx 5466 2014-11-23 12:37:29Z joseph $
{L3 Experimental additions to l3kernel}
%</driver|package>
%<*driver>
@@ -857,7 +857,7 @@
% level concept needed for both `title' and `sentence' casing of text.)
%
% As is generally true for \pkg{expl3}, these functions are designed to
-% work with engine-native input only. As such, when used with \pdfTeX{}
+% work with Unicode input only. As such, when used with \pdfTeX{}
% \emph{only} the characters \texttt{a}--\texttt{zA}--\texttt{Z} are
% modified. When used with \XeTeX{} or \LuaTeX{} a full range of Unicode
% transformations are enabled. Specifically, the standard mappings here
@@ -3109,12 +3109,18 @@
% assumption is made that in real text the end of a word will be indicated by
% a small number of chars. As this may have to be extended over time to other
% cases, the easiest handling is offered by using the numerical values for
-% these chars.
+% these chars. Notice that if the next token is a control sequence there is
+% a need to make sure it's not the end-of-loop, as that will happen if
+% the word in question is at the end of the current list.
% \begin{macrocode}
\cs_new:Npn \@@_change_case_lower_sigma:Nw #1#2 \q_recursion_stop
{
\token_if_cs:NTF #1
- { \c_@@_std_sigma_tl }
+ {
+ \token_if_eq_meaning:NNTF #1 \q_recursion_tail
+ { \c_@@_final_sigma_tl }
+ { \c_@@_std_sigma_tl }
+ }
{
\exp_after:wN \@@_change_case_lower_sigma_loop:Nw
\exp_after:wN #1 \c_@@_after_final_sigma_clist
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3drivers.dtx b/Master/texmf-dist/source/latex/l3kernel/l3drivers.dtx
index b3efcd434c9..747d2c33cb4 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3drivers.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3drivers.dtx
@@ -38,7 +38,7 @@
\documentclass[full]{l3doc}
%</driver>
%<*driver|package>
-\GetIdInfo$Id: l3drivers.dtx 5308 2014-08-20 01:22:39Z bruno $
+\GetIdInfo$Id: l3drivers.dtx 5435 2014-10-16 21:27:50Z joseph $
{L3 Experimental drivers}
%</driver|package>
%<*driver>
@@ -388,7 +388,7 @@
0~
\dim_to_decimal_in_bp:n { \box_dp:N #1 } ~
\dim_to_decimal_in_bp:n { \box_wd:N #1 } ~
- \dim_to_decimal_in_bp:n { - \box_ht:N #1 - \box_dp:N #1 } ~
+ \dim_to_decimal_in_bp:n { -\box_ht:N #1 - \box_dp:N #1 } ~
rectclip
}
}
@@ -397,7 +397,7 @@
\@@_literal:n
{
0~
- \dim_to_decimal_in_bp:n { - \box_dp:N #1 } ~
+ \dim_to_decimal_in_bp:n { -\box_dp:N #1 } ~
\dim_to_decimal_in_bp:n { \box_wd:N #1 } ~
\dim_to_decimal_in_bp:n { \box_ht:N #1 + \box_dp:N #1 } ~
re~W~n
@@ -461,7 +461,7 @@
{
\fp_compare:nNnTF \l__box_angle_fp = \c_zero_fp
{ 0 }
- { \fp_eval:n { - \l__box_angle_fp } }
+ { \fp_eval:n { -\l__box_angle_fp } }
\c_space_tl
rotate
}
@@ -511,12 +511,9 @@
% is stored varies.
% \begin{macrocode}
\tl_new:N \l_@@_current_color_tl
-%<*dvipdfmx|xdvipdfmx>
+%<*dvipdfmx|dvips|xdvipdfmx>
\tl_set:Nn \l_@@_current_color_tl { gray~0 }
-%</dvipdfmx|xdvipdfmx>
-%<*dvips>
-\tl_set:Nn \l_@@_current_color_tl { Black }
-%</dvips>
+%</dvipdfmx|dvips|xdvipdfmx>
%<*pdfmode>
\tl_set:Nn \l_@@_current_color_tl { 0~g~0~G }
%</pdfmode>
@@ -562,7 +559,7 @@
\group_insert_after:N \@@_color_reset:
}
\cs_new_protected_nopar:Npn \@@_color_reset:
- { \pdftex_pdfcolorstack:D \l_@@_color_stack_int pop }
+ { \pdftex_pdfcolorstack:D \l_@@_color_stack_int pop \scan_stop: }
}
{
\cs_new_protected_nopar:Npn \@@_color_ensure_current:
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx b/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx
index e23d2436807..59e49c70cd7 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx
@@ -37,7 +37,7 @@
\documentclass[full]{l3doc}
%</driver>
%<*driver|package>
-\GetIdInfo$Id: l3tl.dtx 5359 2014-08-24 09:20:32Z bruno $
+\GetIdInfo$Id: l3tl.dtx 5460 2014-11-19 10:09:42Z joseph $
{L3 Token lists}
%</driver|package>
%<*driver>
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3unicode-data.def b/Master/texmf-dist/source/latex/l3kernel/l3unicode-data.def
index 203ab7da3c4..c2629626578 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3unicode-data.def
+++ b/Master/texmf-dist/source/latex/l3kernel/l3unicode-data.def
@@ -1,4 +1,15 @@
-\ProvidesExplFile {l3unicode-data.def} {2014/08/12} {5276} {L3 Unicode data}
+%% This is the file l3unicode-data.def
+%% generated using the script l3unicode-data.dtx.
+%%
+%% The data here are derived from the files
+%% - UnicodeData.txt
+%% - SpecialCasing.txt
+%% - CaseFolding.txt
+%% which are maintained by the Unicode Consortium.
+%%
+%% Generated on 2014-11-23.
+%%
+\ProvidesExplFile {l3unicode-data.def} {2014/11/23} {5465} {L3 Unicode data}
\clist_const:Nn \c__tl_after_final_sigma_clist
{ 0021 , 0022 , 0029 , 002C , 002E , 003A , 003B , 003F , 005D , 007D }
\clist_const:Nn \c__tl_mixed_skip_clist
@@ -57,102 +68,102 @@
\tl_const:cn { c__tl_upper_0_X_1_tl } { eEĭĬǵǴəƏϩϨэЭұҰԕԔչՉḕḔṹṸờỜὁὉᾥ{ὭΙ}ⲉⲈꙩꙨ𐐩𐐁𑣝𑢽 }
\tl_const:cn { c__tl_upper_0_X_2_tl } { fFƒƑюЮպՊὂὊᾦ{ὮΙ}ⳮⳭ𐐪𐐂𑣞𑢾 }
\tl_const:cn { c__tl_upper_0_X_3_tl } { gGįĮɛƐϫϪяЯҳҲԗԖջՋḗḖṻṺởỞὃὋᾧ{ὯΙ}ⲋⲊꙫꙪꜳꜲꞗꞖ𐐫𐐃𑣟𑢿 }
-\tl_const:cn { c__tl_upper_0_X_4_tl } { hHɜꞫѐЀռՌὄὌ𐐬𐐄 }
-\tl_const:cn { c__tl_upper_0_X_5_tl } { iIıIƕǶǹǸϭϬёЁҵҴԙԘսՍḙḘṽṼỡỠὅὍⲍⲌꙭꙬꜵꜴꞙꞘ𐐭𐐅 }
-\tl_const:cn { c__tl_upper_0_X_6_tl } { jJђЂվՎ𐐮𐐆 }
-\tl_const:cn { c__tl_upper_0_X_7_tl } { kK{ij}{IJ}ǻǺϯϮѓЃҷҶԛԚտՏḛḚṿṾợỢⲏⲎⳳⳲꜷꜶꞛꞚ𐐯𐐇 }
-\tl_const:cn { c__tl_upper_0_X_8_tl } { lLɠƓϰΚєЄրՐ𐐰𐐈 }
-\tl_const:cn { c__tl_upper_0_X_9_tl } { mMĵĴƙƘǽǼɡꞬϱΡѕЅҹҸԝԜցՑḝḜẁẀụỤⲑⲐꜹꜸꞝꞜ𐐱𐐉 }
-\tl_const:cn { c__tl_upper_1_X_0_tl } { nNƚȽϲϹіІւՒ𐐲𐐊 }
-\tl_const:cn { c__tl_upper_1_X_1_tl } { oOķĶǿǾɣƔϳͿїЇһҺԟԞփՓḟḞẃẂủỦⲓⲒꜻꜺꞟꞞ𐐳𐐋 }
-\tl_const:cn { c__tl_upper_1_X_2_tl } { pPјЈքՔᾰᾸⰰⰀ𐐴𐐌 }
+\tl_const:cn { c__tl_upper_0_X_4_tl } { hHɜꞫѐЀռՌὄὌᾨ{ὨΙ}𐐬𐐄 }
+\tl_const:cn { c__tl_upper_0_X_5_tl } { iIıIƕǶǹǸϭϬёЁҵҴԙԘսՍḙḘṽṼỡỠὅὍᾩ{ὩΙ}ⲍⲌꙭꙬꜵꜴꞙꞘ𐐭𐐅 }
+\tl_const:cn { c__tl_upper_0_X_6_tl } { jJђЂվՎᾪ{ὪΙ}𐐮𐐆 }
+\tl_const:cn { c__tl_upper_0_X_7_tl } { kK{ij}{IJ}ǻǺϯϮѓЃҷҶԛԚտՏḛḚṿṾợỢᾫ{ὫΙ}ⲏⲎⳳⳲꜷꜶꞛꞚ𐐯𐐇 }
+\tl_const:cn { c__tl_upper_0_X_8_tl } { lLɠƓϰΚєЄրՐᾬ{ὬΙ}𐐰𐐈 }
+\tl_const:cn { c__tl_upper_0_X_9_tl } { mMĵĴƙƘǽǼɡꞬϱΡѕЅҹҸԝԜցՑḝḜẁẀụỤᾭ{ὭΙ}ⲑⲐꜹꜸꞝꞜ𐐱𐐉 }
+\tl_const:cn { c__tl_upper_1_X_0_tl } { nNƚȽϲϹіІւՒᾮ{ὮΙ}𐐲𐐊 }
+\tl_const:cn { c__tl_upper_1_X_1_tl } { oOķĶǿǾɣƔϳͿїЇһҺԟԞփՓḟḞẃẂủỦᾯ{ὯΙ}ⲓⲒꜻꜺꞟꞞ𐐳𐐋 }
+\tl_const:cn { c__tl_upper_1_X_2_tl } { pPΐ{Ϊ́}јЈքՔᾰᾸⰰⰀ𐐴𐐌 }
\tl_const:cn { c__tl_upper_1_X_3_tl } { qQȁȀɥꞍϵΕљЉҽҼԡԠօՕḡḠẅẄứỨᾱᾹⰱⰁⲕⲔꜽꜼꞡꞠ𐐵𐐍 }
-\tl_const:cn { c__tl_upper_1_X_4_tl } { rRĺĹƞȠɦꞪњЊֆՖⰲⰂ𐐶𐐎 }
-\tl_const:cn { c__tl_upper_1_X_5_tl } { sSȃȂћЋҿҾԣԢḣḢẇẆừỪᾳ{ΑΙ}ⰳⰃⲗⲖꜿꜾꞣꞢ𐐷𐐏 }
-\tl_const:cn { c__tl_upper_1_X_6_tl } { tTļĻɨƗϸϷќЌⰴⰄ𐐸𐐐 }
+\tl_const:cn { c__tl_upper_1_X_4_tl } { rRĺĹƞȠɦꞪњЊֆՖᾲ{ᾺΙ}ⰲⰂ𐐶𐐎 }
+\tl_const:cn { c__tl_upper_1_X_5_tl } { sSȃȂћЋҿҾԣԢ{և}{{ԵՒ}}ḣḢẇẆừỪᾳ{ΑΙ}ⰳⰃⲗⲖꜿꜾꞣꞢ𐐷𐐏 }
+\tl_const:cn { c__tl_upper_1_X_6_tl } { tTļĻɨƗϸϷќЌὐ{Υ̓}ᾴ{ΆΙ}ⰴⰄ𐐸𐐐 }
\tl_const:cn { c__tl_upper_1_X_7_tl } { uUơƠȅȄɩƖѝЍԥԤḥḤẉẈửỬὑὙⰵⰅⲙⲘꝁꝀꞥꞤ𐐹𐐑 }
-\tl_const:cn { c__tl_upper_1_X_8_tl } { vVľĽўЎӂӁⰶⰆ𐐺𐐒 }
-\tl_const:cn { c__tl_upper_1_X_9_tl } { wWƣƢȇȆɫⱢϻϺџЏԧԦḧḦẋẊữỮὓὛⰷⰇⲛⲚꝃꝂꞧꞦ𐐻𐐓 }
-\tl_const:cn { c__tl_upper_2_X_0_tl } { xX{ŀ}{Ŀ}ɬꞭӄӃⰸⰈⴀႠ𐐼𐐔 }
+\tl_const:cn { c__tl_upper_1_X_8_tl } { vVľĽўЎӂӁὒ{Υ̓̀}ᾶ{Α͂}ⰶⰆ𐐺𐐒 }
+\tl_const:cn { c__tl_upper_1_X_9_tl } { wWƣƢȇȆɫⱢϻϺџЏԧԦḧḦẋẊữỮὓὛᾷ{Α͂Ι}ⰷⰇⲛⲚꝃꝂꞧꞦ𐐻𐐓 }
+\tl_const:cn { c__tl_upper_2_X_0_tl } { xX{ŀ}{Ŀ}ɬꞭӄӃὔ{Υ̓́}ⰸⰈⴀႠ𐐼𐐔 }
\tl_const:cn { c__tl_upper_2_X_1_tl } { yYƥƤȉȈѡѠԩԨḩḨẍẌựỰὕὝⰹⰉⲝⲜⴁႡꝅꝄꞩꞨ𐐽𐐕 }
-\tl_const:cn { c__tl_upper_2_X_2_tl } { zZłŁӆӅⰺⰊⴂႢ𐐾𐐖 }
-\tl_const:cn { c__tl_upper_2_X_3_tl } { ȋȊɯƜѣѢԫԪḫḪẏẎỳỲὗὟⰻⰋⲟⲞⴃႣꝇꝆ𐐿𐐗 }
-\tl_const:cn { c__tl_upper_2_X_4_tl } { àÀńŃƨƧӈӇⓐⒶⰼⰌⴄႤ𐑀𐐘 }
+\tl_const:cn { c__tl_upper_2_X_2_tl } { zZłŁӆӅὖ{Υ̓͂}ⰺⰊⴂႢ𐐾𐐖 }
+\tl_const:cn { c__tl_upper_2_X_3_tl } { ß{SS}ȋȊɯƜѣѢԫԪḫḪẏẎỳỲὗὟⰻⰋⲟⲞⴃႣꝇꝆ𐐿𐐗 }
+\tl_const:cn { c__tl_upper_2_X_4_tl } { àÀńŃƨƧӈӇᾼ{ΑΙ}ⓐⒶⰼⰌⴄႤ𐑀𐐘 }
\tl_const:cn { c__tl_upper_2_X_5_tl } { áÁȍȌɱⱮѥѤԭԬḭḬẑẐỵỴⓑⒷⰽⰍⲡⲠⴅႥꚁꚀꝉꝈ𐑁𐐙 }
\tl_const:cn { c__tl_upper_2_X_6_tl } { âÂņŅɲƝӊӉιΙⅎℲⓒⒸⰾⰎⴆႦ𐑂𐐚 }
\tl_const:cn { c__tl_upper_2_X_7_tl } { ãÃȏȎѧѦԯԮḯḮẓẒỷỶⓓⒹⰿⰏⲣⲢⴇႧꚃꚂꝋꝊ𐑃𐐛 }
\tl_const:cn { c__tl_upper_2_X_8_tl } { äÄňŇӌӋⓔⒺⱀⰐⴈႨ𐑄𐐜 }
-\tl_const:cn { c__tl_upper_2_X_9_tl } { åÅƭƬȑȐɵƟѩѨḱḰẕẔỹỸⓕⒻⱁⰑⲥⲤⴉႩꚅꚄꝍꝌ𐑅𐐝 }
-\tl_const:cn { c__tl_upper_3_X_0_tl } { æÆӎӍⓖⒼⱂⰒⴊႪ𐑆𐐞 }
-\tl_const:cn { c__tl_upper_3_X_1_tl } { çÇŋŊȓȒѫѪӏӀḳḲỻỺῃ{ΗΙ}ⓗⒽⱃⰓⲧⲦⴋႫꚇꚆꝏꝎ𐑇𐐟 }
-\tl_const:cn { c__tl_upper_3_X_2_tl } { èÈưƯὠὨⓘⒾⱄⰔⴌႬ𐑈𐐠 }
-\tl_const:cn { c__tl_upper_3_X_3_tl } { éÉōŌȕȔѭѬӑӐḵḴỽỼὡὩⓙⒿⱅⰕⲩⲨⴍႭꚉꚈꝑꝐ𐑉𐐡 }
-\tl_const:cn { c__tl_upper_3_X_4_tl } { êÊὢὪⓚⓀⱆⰖⴎႮ𐑊𐐢 }
-\tl_const:cn { c__tl_upper_3_X_5_tl } { ëËŏŎȗȖѯѮӓӒḷḶẛṠỿỾὣὫⓛⓁⱇⰗⲫⲪⴏႯꚋꚊꝓꝒ𐑋𐐣 }
+\tl_const:cn { c__tl_upper_2_X_9_tl } { åÅ{ʼn}{{ʼN}}ƭƬȑȐɵƟѩѨḱḰẕẔỹỸⓕⒻⱁⰑⲥⲤⴉႩꚅꚄꝍꝌ𐑅𐐝 }
+\tl_const:cn { c__tl_upper_3_X_0_tl } { æÆӎӍẖ{H̱}ῂ{ῊΙ}ⓖⒼⱂⰒⴊႪ𐑆𐐞 }
+\tl_const:cn { c__tl_upper_3_X_1_tl } { çÇŋŊȓȒѫѪӏӀḳḲẗ{T̈}ỻỺῃ{ΗΙ}ⓗⒽⱃⰓⲧⲦⴋႫꚇꚆꝏꝎ𐑇𐐟 }
+\tl_const:cn { c__tl_upper_3_X_2_tl } { èÈưƯẘ{W̊}ὠὨῄ{ΉΙ}ⓘⒾⱄⰔⴌႬ𐑈𐐠 }
+\tl_const:cn { c__tl_upper_3_X_3_tl } { éÉōŌȕȔѭѬӑӐḵḴẙ{Y̊}ỽỼὡὩⓙⒿⱅⰕⲩⲨⴍႭꚉꚈꝑꝐ𐑉𐐡 }
+\tl_const:cn { c__tl_upper_3_X_4_tl } { êÊẚ{Aʾ}ὢὪῆ{Η͂}ⓚⓀⱆⰖⴎႮ𐑊𐐢 }
+\tl_const:cn { c__tl_upper_3_X_5_tl } { ëËŏŎȗȖѯѮӓӒḷḶẛṠỿỾὣὫῇ{Η͂Ι}ⓛⓁⱇⰗⲫⲪⴏႯꚋꚊꝓꝒ𐑋𐐣 }
\tl_const:cn { c__tl_upper_3_X_6_tl } { ìÌƴƳἀἈὤὬⓜⓂⱈⰘⴐႰ𐑌𐐤 }
\tl_const:cn { c__tl_upper_3_X_7_tl } { íÍőŐșȘɽⱤͅΙѱѰӕӔḹḸἁἉὥὭⓝⓃⱉⰙⲭⲬⴑႱꚍꚌꝕꝔ𐑍𐐥 }
\tl_const:cn { c__tl_upper_3_X_8_tl } { îÎƶƵἂἊὦὮⓞⓄⱊⰚⴒႲ𐑎𐐦 }
\tl_const:cn { c__tl_upper_3_X_9_tl } { ïÏœŒțȚѳѲӗӖḻḺἃἋὧὯⓟⓅⱋⰛⲯⲮⴓႳꚏꚎꝗꝖ𐑏𐐧 }
-\tl_const:cn { c__tl_upper_4_X_0_tl } { ðÐʀƦάΆἄἌⓠⓆⱌⰜⴔႴ }
+\tl_const:cn { c__tl_upper_4_X_0_tl } { ðÐʀƦάΆἄἌῌ{ΗΙ}ⓠⓆⱌⰜⴔႴ }
\tl_const:cn { c__tl_upper_4_X_1_tl } { ñÑŕŔƹƸȝȜέΈѵѴәӘḽḼạẠἅἍⓡⓇⱍⰝⲱⲰⴕႵꚑꚐꝙꝘ }
\tl_const:cn { c__tl_upper_4_X_2_tl } { òÒήΉἆἎⓢⓈⱎⰞⴖႶ }
\tl_const:cn { c__tl_upper_4_X_3_tl } { óÓŗŖȟȞʃƩίΊѷѶӛӚḿḾảẢἇἏⓣⓉⱏⰟⲳⲲⴗႷꚓꚒꝛꝚ }
-\tl_const:cn { c__tl_upper_4_X_4_tl } { ôÔῐῘⓤⓊⱐⰠⴘႸ }
+\tl_const:cn { c__tl_upper_4_X_4_tl } { ôÔΰ{Ϋ́}ῐῘⓤⓊⱐⰠⴘႸ }
\tl_const:cn { c__tl_upper_4_X_5_tl } { õÕřŘƽƼαΑѹѸӝӜᵹꝽṁṀấẤῑῙⓥⓋⱑⰡⲵⲴⴙႹꚕꚔꝝꝜaA }
-\tl_const:cn { c__tl_upper_4_X_6_tl } { öÖβΒⓦⓌⱒⰢⴚႺbB }
-\tl_const:cn { c__tl_upper_4_X_7_tl } { śŚƿǷȣȢʇꞱγΓѻѺӟӞṃṂầẦⓧⓍⱓⰣⲷⲶⴛႻꚗꚖꝟꝞcC }
+\tl_const:cn { c__tl_upper_4_X_6_tl } { öÖβΒῒ{Ϊ̀}ⓦⓌⱒⰢⴚႺbB }
+\tl_const:cn { c__tl_upper_4_X_7_tl } { śŚƿǷȣȢʇꞱγΓѻѺӟӞṃṂầẦΐ{Ϊ́}ⓧⓍⱓⰣⲷⲶⴛႻꚗꚖꝟꝞcC }
\tl_const:cn { c__tl_upper_4_X_8_tl } { øØʈƮδΔὰᾺⓨⓎⱔⰤⴜႼdD }
\tl_const:cn { c__tl_upper_4_X_9_tl } { ùÙŝŜȥȤʉɄεΕѽѼӡӠᵽⱣṅṄẩẨάΆⓩⓏⱕⰥⲹⲸⴝႽꚙꚘꝡꝠeE }
-\tl_const:cn { c__tl_upper_5_X_0_tl } { úÚʊƱζΖὲῈⱖⰦⴞႾfF }
-\tl_const:cn { c__tl_upper_5_X_1_tl } { ûÛşŞȧȦʋƲηΗѿѾӣӢṇṆẫẪέΈⱗⰧⲻⲺⴟႿꚛꚚꝣꝢgG }
+\tl_const:cn { c__tl_upper_5_X_0_tl } { úÚʊƱζΖὲῈῖ{Ι͂}ⱖⰦⴞႾfF }
+\tl_const:cn { c__tl_upper_5_X_1_tl } { ûÛşŞȧȦʋƲηΗѿѾӣӢṇṆẫẪέΈῗ{Ϊ͂}ⱗⰧⲻⲺⴟႿꚛꚚꝣꝢgG }
\tl_const:cn { c__tl_upper_5_X_2_tl } { üÜʌɅθΘἐἘὴῊⱘⰨⴠჀhH }
-\tl_const:cn { c__tl_upper_5_X_3_tl } { ýÝšŠ{Dž}{DŽ}ȩȨιΙҁҀӥӤṉṈậẬἑἙήΉⱙⰩⲽⲼⴡჁꝥꝤiI }
-\tl_const:cn { c__tl_upper_5_X_4_tl } { þÞ{dž}{DŽ}κΚἒἚὶῚⱚⰪⴢჂjJ }
+\tl_const:cn { c__tl_upper_5_X_3_tl } { ýÝšŠDžDŽȩȨιΙҁҀӥӤṉṈậẬἑἙήΉⱙⰩⲽⲼⴡჁꝥꝤiI }
+\tl_const:cn { c__tl_upper_5_X_4_tl } { þÞdžDŽκΚἒἚὶῚⱚⰪⴢჂjJ }
\tl_const:cn { c__tl_upper_5_X_5_tl } { ÿŸţŢȫȪλΛӧӦṋṊắẮἓἛίΊⱛⰫⲿⲾⴣჃꝧꝦkK }
-\tl_const:cn { c__tl_upper_5_X_6_tl } { {Lj}{LJ}μΜἔἜὸῸⱜⰬⴤჄlL }
-\tl_const:cn { c__tl_upper_5_X_7_tl } { āĀťŤ{lj}{LJ}ȭȬνΝөӨṍṌằẰἕἝόΌⱝⰭⳁⳀⴥჅꝩꝨmM }
-\tl_const:cn { c__tl_upper_5_X_8_tl } { ʒƷξΞὺῪⱞⰮnN }
-\tl_const:cn { c__tl_upper_5_X_9_tl } { ăĂŧŦ{Nj}{NJ}ȯȮοΟӫӪṏṎẳẲύΎⳃⳂⴧჇꝫꝪoO }
-\tl_const:cn { c__tl_upper_6_X_0_tl } { {nj}{NJ}πΠὼῺῠῨⅰⅠpP }
-\tl_const:cn { c__tl_upper_6_X_1_tl } { ąĄũŨȱȰρΡӭӬṑṐẵẴώΏῡῩ{ⅱ}{Ⅱ}ⱡⱠⳅⳄꙁꙀꝭꝬqQ }
-\tl_const:cn { c__tl_upper_6_X_2_tl } { ǎǍςΣ{ⅲ}{Ⅲ}rR }
-\tl_const:cn { c__tl_upper_6_X_3_tl } { ćĆūŪȳȲσΣҋҊӯӮṓṒặẶ{ⅳ}{Ⅳ}ⳇⳆꙃꙂꝯꝮsS }
-\tl_const:cn { c__tl_upper_6_X_4_tl } { ǐǏτΤᾀ{ἈΙ}ⅴⅤtT }
+\tl_const:cn { c__tl_upper_5_X_6_tl } { LjLJμΜἔἜὸῸⱜⰬⴤჄff{FF}lL }
+\tl_const:cn { c__tl_upper_5_X_7_tl } { āĀťŤljLJȭȬνΝөӨṍṌằẰἕἝόΌⱝⰭⳁⳀⴥჅꝩꝨfi{FI}mM }
+\tl_const:cn { c__tl_upper_5_X_8_tl } { ʒƷξΞὺῪⱞⰮfl{FL}nN }
+\tl_const:cn { c__tl_upper_5_X_9_tl } { ăĂŧŦNjNJȯȮοΟӫӪṏṎẳẲύΎⳃⳂⴧჇꝫꝪffi{FFI}oO }
+\tl_const:cn { c__tl_upper_6_X_0_tl } { njNJπΠὼῺῠῨⅰⅠffl{FFL}pP }
+\tl_const:cn { c__tl_upper_6_X_1_tl } { ąĄũŨȱȰρΡӭӬṑṐẵẴώΏῡῩ{ⅱ}{Ⅱ}ⱡⱠⳅⳄꙁꙀꝭꝬſt{ST}qQ }
+\tl_const:cn { c__tl_upper_6_X_2_tl } { ǎǍςΣῢ{Ϋ̀}{ⅲ}{Ⅲ}st{ST}rR }
+\tl_const:cn { c__tl_upper_6_X_3_tl } { ćĆūŪȳȲσΣҋҊӯӮṓṒặẶΰ{Ϋ́}{ⅳ}{Ⅳ}ⳇⳆꙃꙂꝯꝮsS }
+\tl_const:cn { c__tl_upper_6_X_4_tl } { ǐǏτΤᾀ{ἈΙ}ῤ{Ρ̓}ⅴⅤtT }
\tl_const:cn { c__tl_upper_6_X_5_tl } { ĉĈŭŬυΥҍҌӱӰṕṔẹẸᾁ{ἉΙ}ῥῬ{ⅵ}{Ⅵ}ⱥȺⳉⳈⴭჍꙅꙄuU }
-\tl_const:cn { c__tl_upper_6_X_6_tl } { ǒǑφΦᾂ{ἊΙ}{ⅶ}{Ⅶ}ⱦȾvV }
-\tl_const:cn { c__tl_upper_6_X_7_tl } { ċĊůŮχΧҏҎӳӲṗṖẻẺᾃ{ἋΙ}{ⅷ}{Ⅷ}ⳋⳊꙇꙆwW }
+\tl_const:cn { c__tl_upper_6_X_6_tl } { ǒǑφΦᾂ{ἊΙ}ῦ{Υ͂}{ⅶ}{Ⅶ}ⱦȾvV }
+\tl_const:cn { c__tl_upper_6_X_7_tl } { ċĊůŮχΧҏҎӳӲṗṖẻẺᾃ{ἋΙ}ῧ{Ϋ͂}{ⅷ}{Ⅷ}ⳋⳊꙇꙆwW }
\tl_const:cn { c__tl_upper_6_X_8_tl } { ǔǓψΨἠἨᾄ{ἌΙ}{ⅸ}{Ⅸ}ⱨⱧxX }
\tl_const:cn { c__tl_upper_6_X_9_tl } { čČűŰωΩґҐӵӴṙṘẽẼἡἩᾅ{ἍΙ}ⅹⅩⳍⳌꙉꙈyY }
-\tl_const:cn { c__tl_upper_7_X_0_tl } { ǖǕʞꞰϊΪἢἪᾆ{ἎΙ}{ⅺ}{Ⅺ}ⱪⱩzZ }
-\tl_const:cn { c__tl_upper_7_X_1_tl } { ďĎųŲϋΫғҒӷӶṛṚếẾἣἫᾇ{ἏΙ}{ⅻ}{Ⅻ}ⳏⳎꙋꙊ }
-\tl_const:cn { c__tl_upper_7_X_2_tl } { ǘǗȼȻόΌаАἤἬⅼⅬⱬⱫ𑣀𑢠 }
-\tl_const:cn { c__tl_upper_7_X_3_tl } { đĐŵŴύΎбБҕҔӹӸṝṜềỀἥἭⅽⅭⳑⳐꙍꙌ𑣁𑢡 }
-\tl_const:cn { c__tl_upper_7_X_4_tl } { ǚǙώΏвВἦἮⅾⅮꝺꝹ𑣂𑢢 }
-\tl_const:cn { c__tl_upper_7_X_5_tl } { ēĒŷŶȿⱾгГҗҖӻӺṟṞểỂἧἯⅿⅯⳓⳒꙏꙎ𑣃𑢣 }
-\tl_const:cn { c__tl_upper_7_X_6_tl } { ǜǛɀⱿϐΒдДꝼꝻ𑣄𑢤 }
-\tl_const:cn { c__tl_upper_7_X_7_tl } { ĕĔǝƎϑΘеЕҙҘӽӼաԱṡṠễỄⳕⳔꙑꙐ𑣅𑢥 }
-\tl_const:cn { c__tl_upper_7_X_8_tl } { źŹɂɁжЖբԲ𑣆𑢦 }
-\tl_const:cn { c__tl_upper_7_X_9_tl } { ėĖǟǞзЗқҚӿӾգԳṣṢệỆῳ{ΩΙ}ⱳⱲⳗⳖꙓꙒꝿꝾ𑣇𑢧 }
-\tl_const:cn { c__tl_upper_8_X_0_tl } { żŻиИդԴᾐ{ἨΙ}ↄↃ𑣈𑢨 }
+\tl_const:cn { c__tl_upper_7_X_0_tl } { ǖǕʞꞰϊΪἢἪᾆ{ἎΙ}ⅺⅪⱪⱩzZ }
+\tl_const:cn { c__tl_upper_7_X_1_tl } { ďĎųŲϋΫғҒӷӶṛṚếẾἣἫᾇ{ἏΙ}ⅻⅫⳏⳎꙋꙊ }
+\tl_const:cn { c__tl_upper_7_X_2_tl } { ǘǗȼȻόΌаАἤἬᾈ{ἈΙ}ⅼⅬⱬⱫ𑣀𑢠 }
+\tl_const:cn { c__tl_upper_7_X_3_tl } { đĐŵŴύΎбБҕҔӹӸṝṜềỀἥἭᾉ{ἉΙ}ⅽⅭⳑⳐꙍꙌ𑣁𑢡 }
+\tl_const:cn { c__tl_upper_7_X_4_tl } { ǚǙώΏвВἦἮᾊ{ἊΙ}ⅾⅮꝺꝹ𑣂𑢢 }
+\tl_const:cn { c__tl_upper_7_X_5_tl } { ēĒŷŶȿⱾгГҗҖӻӺṟṞểỂἧἯᾋ{ἋΙ}ⅿⅯⳓⳒꙏꙎﬓ{ՄՆ}𑣃𑢣 }
+\tl_const:cn { c__tl_upper_7_X_6_tl } { ǜǛɀⱿϐΒдДᾌ{ἌΙ}ꝼꝻﬔ{ՄԵ}𑣄𑢤 }
+\tl_const:cn { c__tl_upper_7_X_7_tl } { ĕĔǝƎϑΘеЕҙҘӽӼաԱṡṠễỄᾍ{ἍΙ}ⳕⳔꙑꙐﬕ{ՄԻ}𑣅𑢥 }
+\tl_const:cn { c__tl_upper_7_X_8_tl } { źŹɂɁжЖբԲᾎ{ἎΙ}ῲ{ῺΙ}ﬖ{ՎՆ}𑣆𑢦 }
+\tl_const:cn { c__tl_upper_7_X_9_tl } { ėĖǟǞзЗқҚӿӾգԳṣṢệỆᾏ{ἏΙ}ῳ{ΩΙ}ⱳⱲⳗⳖꙓꙒꝿꝾﬗ{ՄԽ}𑣇𑢧 }
+\tl_const:cn { c__tl_upper_8_X_0_tl } { żŻиИդԴᾐ{ἨΙ}ῴ{ΏΙ}ↄↃ𑣈𑢨 }
\tl_const:cn { c__tl_upper_8_X_1_tl } { µΜęĘǡǠͱͰϕΦйЙҝҜԁԀեԵḁḀṥṤỉỈᾑ{ἩΙ}ⳙⳘꙕꙔꞁꞀ𑣉𑢩 }
-\tl_const:cn { c__tl_upper_8_X_2_tl } { žŽϖΠкКզԶᾒ{ἪΙ}ⱶⱵ𑣊𑢪 }
-\tl_const:cn { c__tl_upper_8_X_3_tl } { ěĚſSǣǢɇɆͳͲϗϏлЛҟҞԃԂէԷḃḂṧṦịỊᾓ{ἫΙ}ⳛⳚꙗꙖꞃꞂ𑣋𑢫 }
+\tl_const:cn { c__tl_upper_8_X_2_tl } { žŽϖΠкКզԶᾒ{ἪΙ}ῶ{Ω͂}ⱶⱵ𑣊𑢪 }
+\tl_const:cn { c__tl_upper_8_X_3_tl } { ěĚſSǣǢɇɆͳͲϗϏлЛҟҞԃԂէԷḃḂṧṦịỊᾓ{ἫΙ}ῷ{Ω͂Ι}ⳛⳚꙗꙖꞃꞂ𑣋𑢫 }
\tl_const:cn { c__tl_upper_8_X_4_tl } { ƀɃмМըԸἰἸᾔ{ἬΙ}𑣌𑢬 }
\tl_const:cn { c__tl_upper_8_X_5_tl } { ĝĜǥǤɉɈϙϘнНҡҠԅԄթԹḅḄṩṨọỌἱἹᾕ{ἭΙ}ⳝⳜꙙꙘꞅꞄ𑣍𑢭 }
\tl_const:cn { c__tl_upper_8_X_6_tl } { оОժԺἲἺᾖ{ἮΙ}𑣎𑢮 }
\tl_const:cn { c__tl_upper_8_X_7_tl } { ğĞƃƂǧǦɋɊͷͶϛϚпПңҢԇԆիԻḇḆṫṪỏỎἳἻᾗ{ἯΙ}ⳟⳞꙛꙚꜣꜢꞇꞆ𑣏𑢯 }
-\tl_const:cn { c__tl_upper_8_X_8_tl } { рРլԼἴἼ𑣐𑢰 }
-\tl_const:cn { c__tl_upper_8_X_9_tl } { ġĠƅƄǩǨɍɌϝϜсСҥҤԉԈխԽḉḈṭṬốỐἵἽⳡⳠꙝꙜꜥꜤ𑣑𑢱 }
-\tl_const:cn { c__tl_upper_9_X_0_tl } { тТծԾἶἾ𑣒𑢲 }
-\tl_const:cn { c__tl_upper_9_X_1_tl } { ģĢǫǪɏɎͻϽϟϞуУҧҦԋԊկԿḋḊṯṮồỒἷἿⳣⳢꙟꙞꜧꜦ𑣓𑢳 }
-\tl_const:cn { c__tl_upper_9_X_2_tl } { ƈƇɐⱯͼϾфФհՀꞌꞋ𑣔𑢴 }
-\tl_const:cn { c__tl_upper_9_X_3_tl } { ĥĤǭǬɑⱭͽϿϡϠхХҩҨԍԌձՁḍḌṱṰổỔⲁⲀꙡꙠꜩꜨ𑣕𑢵 }
-\tl_const:cn { c__tl_upper_9_X_4_tl } { ɒⱰцЦղՂ𑣖𑢶 }
-\tl_const:cn { c__tl_upper_9_X_5_tl } { ħĦǯǮɓƁϣϢчЧҫҪԏԎճՃḏḎṳṲỗỖⲃⲂꙣꙢꜫꜪ𑣗𑢷 }
-\tl_const:cn { c__tl_upper_9_X_6_tl } { ƌƋɔƆшШմՄᾠ{ὨΙ}𑣘𑢸 }
+\tl_const:cn { c__tl_upper_8_X_8_tl } { рРլԼἴἼᾘ{ἨΙ}ῼ{ΩΙ}𑣐𑢰 }
+\tl_const:cn { c__tl_upper_8_X_9_tl } { ġĠƅƄǩǨɍɌϝϜсСҥҤԉԈխԽḉḈṭṬốỐἵἽᾙ{ἩΙ}ⳡⳠꙝꙜꜥꜤ𑣑𑢱 }
+\tl_const:cn { c__tl_upper_9_X_0_tl } { тТծԾἶἾᾚ{ἪΙ}𑣒𑢲 }
+\tl_const:cn { c__tl_upper_9_X_1_tl } { ģĢǫǪɏɎͻϽϟϞуУҧҦԋԊկԿḋḊṯṮồỒἷἿᾛ{ἫΙ}ⳣⳢꙟꙞꜧꜦ𑣓𑢳 }
+\tl_const:cn { c__tl_upper_9_X_2_tl } { ƈƇɐⱯͼϾфФհՀᾜ{ἬΙ}ꞌꞋ𑣔𑢴 }
+\tl_const:cn { c__tl_upper_9_X_3_tl } { ĥĤǭǬɑⱭͽϿϡϠхХҩҨԍԌձՁḍḌṱṰổỔᾝ{ἭΙ}ⲁⲀꙡꙠꜩꜨ𑣕𑢵 }
+\tl_const:cn { c__tl_upper_9_X_4_tl } { ɒⱰцЦղՂᾞ{ἮΙ}𑣖𑢶 }
+\tl_const:cn { c__tl_upper_9_X_5_tl } { ħĦǯǮɓƁϣϢчЧҫҪԏԎճՃḏḎṳṲỗỖᾟ{ἯΙ}ⲃⲂꙣꙢꜫꜪ𑣗𑢷 }
+\tl_const:cn { c__tl_upper_9_X_6_tl } { ƌƋǰ{J̌}ɔƆшШմՄᾠ{ὨΙ}𑣘𑢸 }
\tl_const:cn { c__tl_upper_9_X_7_tl } { aAĩĨϥϤщЩҭҬԑԐյՅḑḐṵṴộỘᾡ{ὩΙ}ⲅⲄꙥꙤꜭꜬꞑꞐ𑣙𑢹 }
-\tl_const:cn { c__tl_upper_9_X_8_tl } { bB{Dz}{DZ}ɖƉъЪնՆᾢ{ὪΙ}𑣚𑢺 }
-\tl_const:cn { c__tl_upper_9_X_9_tl } { cCīĪ{dz}{DZ}ɗƊϧϦыЫүҮԓԒշՇḓḒṷṶớỚᾣ{ὫΙ}ⲇⲆꙧꙦꜯꜮꞓꞒ𑣛𑢻 }
+\tl_const:cn { c__tl_upper_9_X_8_tl } { bBDzDZɖƉъЪնՆᾢ{ὪΙ}𑣚𑢺 }
+\tl_const:cn { c__tl_upper_9_X_9_tl } { cCīĪdzDZɗƊϧϦыЫүҮԓԒշՇḓḒṷṶớỚᾣ{ὫΙ}ⲇⲆꙧꙦꜯꜮꞓꞒ𑣛𑢻 }
\tl_const:cn { c__tl_lower_0_X_0_tl } { ÈèĬĭƐɛǴǵϨϩҰұԔԕḔḕṸṹỜờⒸⓒⰤⱔⲈⲉꙨꙩ }
\tl_const:cn { c__tl_lower_0_X_1_tl } { ÉéƑƒჍⴭⒹⓓⰥⱕⳭⳮ }
\tl_const:cn { c__tl_lower_0_X_2_tl } { ÊêĮįǶƕΆάϪϫҲҳԖԗḖḗṺṻỞởⒺⓔⰦⱖⲊⲋꙪꙫꜲꜳꞖꞗ }
@@ -172,7 +183,7 @@
\tl_const:cn { c__tl_lower_1_X_6_tl } { ØøƠơȄȅΔδӀӏԤԥḤḥẈẉỬửⓈⓢⲘⲙꝀꝁꞤꞥDd }
\tl_const:cn { c__tl_lower_1_X_7_tl } { ÙùĽľΕεϹϲӁӂⓉⓣEe }
\tl_const:cn { c__tl_lower_1_X_8_tl } { ÚúƢƣȆȇΖζϺϻԦԧḦḧẊẋỮữⓊⓤⲚⲛꝂꝃꞦꞧFf }
-\tl_const:cn { c__tl_lower_1_X_9_tl } { Ûû{Ŀ}{ŀ}ΗηӃӄⓋⓥGg }
+\tl_const:cn { c__tl_lower_1_X_9_tl } { ÛûĿŀΗηӃӄⓋⓥGg }
\tl_const:cn { c__tl_lower_2_X_0_tl } { ÜüƤƥȈȉΘθѠѡԨԩḨḩẌẍỰựᾸᾰⓌⓦⲜⲝꝄꝅꞨꞩHh }
\tl_const:cn { c__tl_lower_2_X_1_tl } { ÝýŁłΙιϽͻӅӆᾹᾱⓍⓧIi }
\tl_const:cn { c__tl_lower_2_X_2_tl } { ÞþƦʀȊȋΚκϾͼѢѣԪԫḪḫẎẏỲỳᾺὰⓎⓨⲞⲟꝆꝇꞪɦJj }
@@ -205,14 +216,14 @@
\tl_const:cn { c__tl_lower_4_X_9_tl } { ЙйՅյἍἅ{Ⅵ}{ⅵ}𑢩𑣉 }
\tl_const:cn { c__tl_lower_5_X_0_tl } { ŞşȦȧКкѾѿӢӣՆնṆṇẪẫἎἆ{Ⅶ}{ⅶ}ⲺⲻꚚꚛꝢꝣ𑢪𑣊 }
\tl_const:cn { c__tl_lower_5_X_1_tl } { ЛлՇշἏἇ{Ⅷ}{ⅷ}𑢫𑣋 }
-\tl_const:cn { c__tl_lower_5_X_2_tl } { Šš{DŽ}{dž}ȨȩМмҀҁӤӥՈոṈṉẬậῘῐ{Ⅸ}{ⅸ}ⲼⲽꝤꝥ𑢬𑣌 }
-\tl_const:cn { c__tl_lower_5_X_3_tl } { {Dž}{dž}НнՉչῙῑⅩⅹ𑢭𑣍 }
-\tl_const:cn { c__tl_lower_5_X_4_tl } { ŢţȪȫОоӦӧՊպṊṋẮắῚὶ{Ⅺ}{ⅺ}ⲾⲿꝦꝧ𑢮𑣎 }
-\tl_const:cn { c__tl_lower_5_X_5_tl } { {LJ}{lj}ПпՋջΊί{Ⅻ}{ⅻ}𑢯𑣏 }
-\tl_const:cn { c__tl_lower_5_X_6_tl } { ĀāŤť{Lj}{lj}ȬȭРрӨөՌռႠⴀṌṍẰằⅬⅼⳀⳁꝨꝩ𑢰𑣐 }
+\tl_const:cn { c__tl_lower_5_X_2_tl } { ŠšDŽdžȨȩМмҀҁӤӥՈոṈṉẬậῘῐ{Ⅸ}{ⅸ}ⲼⲽꝤꝥ𑢬𑣌 }
+\tl_const:cn { c__tl_lower_5_X_3_tl } { DždžНнՉչῙῑⅩⅹ𑢭𑣍 }
+\tl_const:cn { c__tl_lower_5_X_4_tl } { ŢţȪȫОоӦӧՊպṊṋẮắῚὶⅪⅺⲾⲿꝦꝧ𑢮𑣎 }
+\tl_const:cn { c__tl_lower_5_X_5_tl } { LJljПпՋջΊίⅫⅻ𑢯𑣏 }
+\tl_const:cn { c__tl_lower_5_X_6_tl } { ĀāŤťLjljȬȭРрӨөՌռႠⴀṌṍẰằⅬⅼⳀⳁꝨꝩ𑢰𑣐 }
\tl_const:cn { c__tl_lower_5_X_7_tl } { СсՍսႡⴁⅭⅽ𑢱𑣑 }
-\tl_const:cn { c__tl_lower_5_X_8_tl } { ĂăŦŧ{NJ}{nj}ȮȯТтӪӫՎվႢⴂṎṏẲẳⅮⅾⳂⳃꝪꝫ𑢲𑣒 }
-\tl_const:cn { c__tl_lower_5_X_9_tl } { {Nj}{nj}УуՏտႣⴃⅯⅿ𑢳𑣓 }
+\tl_const:cn { c__tl_lower_5_X_8_tl } { ĂăŦŧNJnjȮȯТтӪӫՎվႢⴂṎṏẲẳⅮⅾⳂⳃꝪꝫ𑢲𑣒 }
+\tl_const:cn { c__tl_lower_5_X_9_tl } { NjnjУуՏտႣⴃⅯⅿ𑢳𑣓 }
\tl_const:cn { c__tl_lower_6_X_0_tl } { ĄąŨũȰȱФфӬӭՐրႤⴄṐṑẴẵἘἐⱠⱡⳄⳅꙀꙁꝬꝭ𐐀𐐨𑢴𑣔 }
\tl_const:cn { c__tl_lower_6_X_1_tl } { ǍǎХхՑցႥⴅἙἑ𐐁𐐩𑢵𑣕 }
\tl_const:cn { c__tl_lower_6_X_2_tl } { ĆćŪūȲȳЦцҊҋӮӯՒւႦⴆṒṓẶặἚἒⱢɫⳆⳇꙂꙃꝮꝯ𐐂𐐪𑢶𑣖 }
@@ -250,15 +261,15 @@
\tl_const:cn { c__tl_lower_9_X_4_tl } { ÂâĦħƊɗǮǯϢϣҪҫԎԏḎḏṲṳỖỗἺἲᾞᾖⰞⱎⲂⲃꙢꙣꜪꜫ𐐢𐑊 }
\tl_const:cn { c__tl_lower_9_X_5_tl } { ÃãƋƌͿϳჇⴧἻἳᾟᾗⰟⱏ𐐣𐑋 }
\tl_const:cn { c__tl_lower_9_X_6_tl } { ÄäĨĩϤϥҬҭԐԑḐḑṴṵỘộἼἴⰠⱐⲄⲅꙤꙥꜬꜭꞐꞑ𐐤𐑌 }
-\tl_const:cn { c__tl_lower_9_X_7_tl } { Åå{DZ}{dz}ἽἵⰡⱑ𐐥𐑍 }
-\tl_const:cn { c__tl_lower_9_X_8_tl } { ÆæĪīƎǝ{Dz}{dz}ϦϧҮүԒԓḒḓṶṷỚớἾἶℲⅎⒶⓐⰢⱒⲆⲇꙦꙧꜮꜯꞒꞓ𐐦𐑎 }
+\tl_const:cn { c__tl_lower_9_X_7_tl } { ÅåDZdzἽἵⰡⱑ𐐥𐑍 }
+\tl_const:cn { c__tl_lower_9_X_8_tl } { ÆæĪīƎǝDzdzϦϧҮүԒԓḒḓṶṷỚớἾἶℲⅎⒶⓐⰢⱒⲆⲇꙦꙧꜮꜯꞒꞓ𐐦𐑎 }
\tl_const:cn { c__tl_lower_9_X_9_tl } { ÇçƏəἿἷⒷⓑⰣⱓⳫⳬ𐐧𐑏 }
-\tl_const:Nn \c__tl_mixed_exceptions_tl { {ß}{Ss}{ff}{Ff}{fi}{Fi}{fl}{Fl}{ffi}{Ffi}{ffl}{Ffl}{ſt}{St}{st}{St}{և}{Եւ}{ﬓ}{Մն}{ﬔ}{Մե}{ﬕ}{Մի}{ﬖ}{Վն}{ﬗ}{Մխ}{ᾲ}{Ὰͅ}{ᾴ}{Άͅ}{ῂ}{Ὴͅ}{ῄ}{Ήͅ}{ῲ}{Ὼͅ}{ῴ}{Ώͅ}{ᾷ}{ᾼ͂}{ῇ}{ῌ͂}{ῷ}{ῼ͂}DžDždžDžLjLjljLjNjNjnjNjDzDzdzDz }
-\tl_const:Nn \c__tl_std_sigma_tl {σ}
-\tl_const:Nn \c__tl_final_sigma_tl {ς}
-\tl_const:Nn \c__tl_dotless_i_tl {ı}
-\tl_const:Nn \c__tl_dot_above_tl {̇}
-\tl_const:Nn \c__tl_dotted_I_tl {İ}
+\tl_const:Nn \c__tl_mixed_exceptions_tl { {ß}{Ss}{ff}{Ff}{fi}{Fi}{fl}{Fl}{ffi}{Ffi}{ffl}{Ffl}{ſt}{St}{st}{St}{և}{Եւ}{ﬓ}{Մն}{ﬔ}{Մե}{ﬕ}{Մի}{ﬖ}{Վն}{ﬗ}{Մխ}{ᾲ}{Ὰͅ}{ᾴ}{Άͅ}{ῂ}{Ὴͅ}{ῄ}{Ήͅ}{ῲ}{Ὼͅ}{ῴ}{Ώͅ}{ᾷ}{ᾼ͂}{ῇ}{ῌ͂}{ῷ}{ῼ͂}{Dž}{Dž}{dž}{Dž}{Lj}{Lj}{lj}{Lj}{Nj}{Nj}{nj}{Nj}{Dz}{Dz}{dz}{Dz} }
+\tl_const:Nn \c__tl_std_sigma_tl { σ }
+\tl_const:Nn \c__tl_final_sigma_tl { ς }
+\tl_const:Nn \c__tl_dotless_i_tl { ı }
+\tl_const:Nn \c__tl_dot_above_tl { ̇ }
+\tl_const:Nn \c__tl_dotted_I_tl { İ }
\tl_const:Nn \c__tl_accents_lt_tl {Ì{i̇̀}Í{i̇́}Ĩ{i̇̃}}
\group_begin:
\cs_set_protected:Npn \__str_tmp:NNn #1#2#3
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3unicode-data.dtx b/Master/texmf-dist/source/latex/l3kernel/l3unicode-data.dtx
index ff9b5ee304c..7bd9025cd1c 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3unicode-data.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3unicode-data.dtx
@@ -38,7 +38,7 @@
% plain \TeX{}, set up in generic mode.
%<*driver|script>
\input expl3-generic\relax
-\GetIdInfo$Id: l3unicode-data.dtx 5283 2014-08-17 00:52:45Z bruno $
+\GetIdInfo$Id: l3unicode-data.dtx 5465 2014-11-23 11:42:34Z joseph $
{L3 Case data script}
%</driver|script>
%
@@ -105,9 +105,9 @@
%
% This file provides a script which will read the raw Unicode files
% and convert the material to a form which can be used by \pkg{expl3}.
-% As the conversions here cover the entire UTF-8 range, this cannot
-% be carried out by pdf\TeX{}: at present, the script works only
-% with Lua\TeX{}.
+% As the conversions here cover the entire Unicode range, this cannot
+% be carried out by \pdfTeX{}: at present, the script works only
+% with \LuaTeX{}.
%
% Note that this file is designed such that running \LaTeX{} will typeset
% the documentation using any engine: the script will be run if the file
@@ -138,12 +138,22 @@
%
% \subsection{Setup}
%
-% \begin{macro}{\str_case_x:nvF}
+% \begin{macro}{\str_case:nv}
+% \begin{macro}{\str_case:nvF}
% One handy variant.
% \begin{macrocode}
-\cs_generate_variant:Nn \str_case_x:nnF { nv }
+\cs_generate_variant:Nn \str_case:nn { nv }
+\cs_generate_variant:Nn \str_case:nnF { nv }
% \end{macrocode}
% \end{macro}
+% \end{macro}
+%
+% \begin{variable}{\l__unicode_tmp_tl}
+% Scratch space.
+% \begin{macrocode}
+\tl_new:N \l__unicode_tmp_tl
+% \end{macrocode}
+% \end{variable}
%
% The first step is to generate a series of temporary variables to
% contain the data as it's extracted. This requires a nested loop
@@ -184,17 +194,6 @@
\iow_open:Nn \g__unicode_result_iow { l3unicode-data.def }
% \end{macrocode}
%
-% Write an identification line to the file: the file data here can't be set
-% automatically and so will need to be edited by hand. As such, the data here
-% the standard SVN filler.
-% \begin{macrocode}
-\iow_now:Nx \g__unicode_result_iow
- {
- \exp_not:N \ProvidesExplFile
- { l3unicode-data.def } ~ { 0000/00/00 } ~ { -1 } ~ { L3~Unicode~data }
- }
-% \end{macrocode}
-%
% \subsection{Verbatim copying}
%
% \begin{macro}[int]{\__unicode_verb:}
@@ -241,8 +240,60 @@
%
% \subsection{Shared data}
%
+% \end{macrocode}
+% There are various lines that now need to go at the start of the file.
+% First, there is some header information.
+% \begin{macrocode}
+\__unicode_verb:
+%% This is the file l3unicode-data.def
+%% generated using the script l3unicode-data.dtx.
+%%
+%% The data here are derived from the files
+%% - UnicodeData.txt
+%% - SpecialCasing.txt
+%% - CaseFolding.txt
+%% which are maintained by the Unicode Consortium.
+%%
+\__unicode_verb_end:
+% \end{macrocode}
+% Automatically include the current date.
+% \begin{macrocode}
+\iow_now:Nx \g__unicode_result_iow
+ {
+ \iow_char:N \%
+ \iow_char:N \%
+ \c_space_tl
+ Generated~on~
+ \int_use:N \tex_year:D -
+ \int_use:N \tex_month:D -
+ \int_use:N \tex_day:D .
+ }
+\iow_now:Nx \g__unicode_result_iow
+ {
+ \iow_char:N \%
+ \iow_char:N \%
+ }
+% \end{macrocode}
+% Write an identification line to the file: the file data here can't be set
+% automatically and so will need to be edited by hand. As such, the data here
+% the standard SVN filler.
+% \begin{macrocode}
+\iow_now:Nx \g__unicode_result_iow
+ {
+ \exp_not:N \ProvidesExplFile
+ { l3unicode-data.def } ~
+ {
+ \int_use:N \tex_year:D /
+ \int_use:N \tex_month:D /
+ \int_use:N \tex_day:D
+ } ~
+ { -1 } ~
+ { L3~Unicode~data }
+ }
+% \end{macrocode}
+%
% There are some data items which can be stored as numbers rather than as
-% literal UTF-8 chars. These could go into the main source files, but as they
+% literal Unicode chars. These could go into the main source files, but as they
% conceptually go with everything else here this makes more sense. They are
% safe for use with \pdfTeX{} so are given first.
% \begin{macrocode}
@@ -256,7 +307,7 @@
%
% \subsection{\pdfTeX{} support}
%
-% As \pdfTeX{} does not support UTF-8 input natively, most of the data
+% As \pdfTeX{} does not support Unicode input natively, most of the data
% here will not be useful. Rather than use two separate mechanisms for
% each function depending on the engine, the system is designed such that
% \enquote{truncated} data structures are provided for \pdfTeX{}. These
@@ -334,7 +385,7 @@
% single data structure. There are therefore two parts to this process: first
% to read the exceptions, then to read the main data and combine it.
%
-% \begin{macro}^^A
+% \begin{variable}^^A
% {
% \l__unicode_lower_exceptions_tl,
% \l__unicode_title_exceptions_tl,
@@ -351,7 +402,7 @@
\tl_new:N \l__unicode_title_exceptions_tl
\tl_new:N \l__unicode_upper_exceptions_tl
% \end{macrocode}
-% \end{macro}
+% \end{variable}
%
% \begin{macro}{\__unicode_parse_line:w}
% \begin{macro}[aux]{\__unicode_parse_line_auxii:w}
@@ -408,7 +459,7 @@
{
\tl_put_right:cx { l__unicode_ #5 _exceptions_tl }
{
- { \luatex_Uchar:D "#1 \c_space_tl }
+ { #1 }
{
\__unicode_brace:n
{
@@ -452,14 +503,14 @@
% \begin{macro}[aux]{\__unicode_parse_line_auxiv:nnNn}
% \begin{macro}[aux]{\__unicode_parse_line_auxv:wnnNn}
% \begin{macro}[aux]{\__unicode_parse_line_auxvi:nnNNNn}
-% For parsing |UnicodeData.txt| there is no need to worry about funny lines:
-% the file has no comments or blank lines. Each line also contains a
-% one-to-one mapping for the case mappings, so they are easy to deal with.
-% The slight complication here is that the lines are rather long, so a
-% multi-part approach is needed to grab the correct parts of the line as
-% arguments. Of the first set of arguments, the two that needed are |#1|
-% (the code point) and |#6| (details about the code point which may include
-% the fact it's a compatibility char).
+% For parsing |UnicodeData.txt| there is no need to worry about funny lines:
+% the file has no comments or blank lines. Each line also contains a
+% one-to-one mapping for the case mappings, so they are easy to deal with.
+% The slight complication here is that the lines are rather long, so a
+% multi-part approach is needed to grab the correct parts of the line as
+% arguments. Of the first set of arguments, the two that needed are |#1|
+% (the code point) and |#6| (details about the code point which may include
+% the fact it's a compatibility char).
% \begin{macrocode}
\cs_set_protected:Npn \__unicode_parse_line:w
#1 ; #2 ; #3 ; #4 ; #5 ; #6 ; #7 ; #8 ; #9 ;
@@ -478,7 +529,9 @@
% added to the existing list of exceptions we've already started. Note
% that there is a space at the end of |#8| as we are reading the data in
% with spaces not ignored: that has to be allowed for to get the equality
-% test right.
+% test right. The `business end' of the code here is inside a rescan block
+% so the later parts of the code do not need to be concerned with string
+% \emph{versus} standard category codes.
% \begin{macrocode}
\cs_new_protected:Npn \__unicode_parse_line_auxi:w
#1 ; #2 ; #3 ; #4 ; #5 ; #6 ; #7 ; #8 \q_stop
@@ -488,20 +541,23 @@
\__unicode_parse_line_auxii:nw {#1} #2 \tl_to_str:n { <compat> }
\c_space_tl \exp_not:N \q_stop
}
- \tl_if_empty:nF {#6}
+ \tl_rescan:nn { }
{
\__unicode_parse_line_auxiv:nnNn {#1} {#6} a { upper }
- \str_if_eq:nnF {#6} {#8}
+ \__unicode_parse_line_auxiv:nnNn {#1} {#7} b { lower }
+ \bool_if:nF
+ {
+ \tl_if_empty_p:n {#6}
+ || \str_if_eq_p:nn {#6} {#8}
+ }
{
\tl_put_right:Nx \l__unicode_title_exceptions_tl
{
- \luatex_Uchar:D "#1 \c_space_tl
- \luatex_Uchar:D "#8 \c_space_tl
+ {#1}
+ { \luatex_Uchar:D "#8 \c_space_tl }
}
}
}
- \tl_if_empty:nF {#7}
- { \__unicode_parse_line_auxiv:nnNn {#1} {#7} b { lower } }
}
% \end{macrocode}
% Compatibility chars have information as the marker |<compat>| then a list
@@ -541,31 +597,40 @@
#1#2#3#4#5#6#7 \q_stop #8#9
{ \__unicode_parse_line_auxvi:nnNNNn {#8} {#9} #6 #7 }
% \end{macrocode}
-% There are two final tests. First, for entries in the the compatibility list
-% there is a need to add braces around the chars in case there is any
-% normalisation during file reading. Second, any special cases have to be
-% allowed for: these are checked in the exception list built up earlier.
-% Entries in the latter are always braced, so there is no need to add another
-% one.
+% For entries in the the compatibility list there is a need to add braces
+% around the chars in case there is any normalisation during file reading.
+% After that check, there is is question of whether the current code point
+% is on the list of exceptions. If it is, that mapping is stored. Otherwise,
+% the standard mapping is stored if there is one, otherwise the code point
+% is simply skipped.
% \begin{macrocode}
\cs_new_protected:Npn \__unicode_parse_line_auxvi:nnNNNn #1#2#3#4#5#6
{
\seq_if_in:NnTF \l__unicode_compat_seq {#1}
{ \cs_set:Npn \__unicode_brace:n ##1 { { ##1 } } }
{ \cs_set_eq:NN \__unicode_brace:n \use:n }
- \tl_rescan:nn
- { }
+ \tl_set:Nx \l__unicode_tmp_tl
+ { \str_case:nv {#1} { l__unicode_ #6 _exceptions_tl } }
+ \tl_if_empty:NTF \l__unicode_tmp_tl
+ {
+ \tl_if_empty:nF {#2}
+ {
+ \tl_put_right:cx { l__unicode_ #5 _ #3 _ #4 _tl }
+ {
+ \__unicode_brace:n
+ { \luatex_Uchar:D "#1 \c_space_tl }
+ \__unicode_brace:n { \luatex_Uchar:D "#2 \c_space_tl }
+ }
+ }
+ }
{
\tl_put_right:cx { l__unicode_ #5 _ #3 _ #4 _tl }
{
\__unicode_brace:n
{ \luatex_Uchar:D "#1 \c_space_tl }
- \str_case_x:nvF
- { \luatex_Uchar:D "#1 \c_space_tl }
- { l__unicode_ #6 _exceptions_tl }
- { \__unicode_brace:n { \luatex_Uchar:D "#2 \c_space_tl } }
+ \__unicode_brace:n { \tl_use:N \l__unicode_tmp_tl }
}
- }
+ }
}
% \end{macrocode}
% \end{macro}
@@ -574,6 +639,7 @@
% \end{macro}
% \end{macro}
% \end{macro}
+% \end{macro}
%
% Everything is set up and so the read loop can take place.
% \begin{macrocode}
@@ -586,7 +652,7 @@
% Saving the data uses a single file, with the upper case array
% followed by the lower case one and finally the title case exceptions.
% The saved data in the \texttt{a} storage array is also cleared to save a
-% second loop later on when dealing with case folding.
+% second loop later on when dealing with case folding.
% \begin{macrocode}
\tl_map_inline:nn { 0123456789 }
{
@@ -613,13 +679,40 @@
}
}
}
+% \end{macrocode}
+%
+% \begin{macro}[EXP]{\unicode_title_exceptions:N}
+% \begin{macro}[EXP, aux]{\__unicode_title_exceptions:nn}
+% The exceptions list for title case conversion needs to be converted from
+% using numbers to chars for the lookup part. Everything will already have
+% the correct category codes, so it's just a case of an expansion-based
+% loop.
+% \begin{macrocode}
+\cs_new:Npn \unicode_title_exceptions:N #1
+ {
+ \exp_after:wN \__unicode_title_exceptions:nn #1
+ \q_recursion_tail ? \q_recursion_stop
+ }
+\cs_new:Npn \__unicode_title_exceptions:nn #1#2
+ {
+ \quark_if_recursion_tail_stop:n {#1}
+ { \luatex_Uchar:D "#1 \c_space_tl }
+ { #2 }
+ \__unicode_title_exceptions:nn
+ }
\iow_now:Nx \g__unicode_result_iow
{
\tl_const:Nn
- \exp_not:N \c__tl_mixed_exceptions_tl \c_space_tl
- { ~ \exp_not:V \l__unicode_title_exceptions_tl \c_space_tl }
+ \exp_not:N \c__tl_mixed_exceptions_tl
+ {
+ \c_space_tl
+ \unicode_title_exceptions:N \l__unicode_title_exceptions_tl
+ \c_space_tl
+ }
}
% \end{macrocode}
+% \end{macro}
+% \end{macro}
%
% Data for the special cases is now stored. This is mainly a series of simple
% token lists with appropriate names and content, but there is also one place
@@ -630,7 +723,8 @@
\quark_if_recursion_tail_stop:n {#1}
\iow_now:Nx \g__unicode_result_iow
{
- \tl_const:Nn \exp_not:c { c__tl_ #1 _tl } { \luatex_Uchar:D "#2 }
+ \tl_const:Nn \exp_not:c { c__tl_ #1 _tl }
+ { ~ \luatex_Uchar:D "#2 \c_space_tl \c_space_tl }
}
\__unicode_special_case:nn
}
@@ -775,20 +869,18 @@
\ior_close:N \g__unicode_data_ior
% \end{macrocode}
%
-% \begin{macro}[aux]{\__str_tmp:NNn}
-% \begin{macro}[aux, EXP]{\__str_tmp:Nw}
-% To ensure that the output of the case-folding function is a string, all of
-% the stored results need to be detokenized. That is done by including a loop
-% in the |.def| file which will do the necessary change. To set that up, a
-% slightly complicated bit of secondary work: write the functions which do
-% the job into the |.def| file itself, using a group to trap the temporary
-% code. There is also a test in the following so that the result only has
-% braces around items which need it: this is a slight performance tweak when
-% the code actually gets used. Notice that everything in the token list is
-% detokenized except for the |{| and |}| chars needed for grouping: if the
-% search part of the list is not detokenized there are issues with \XeTeX{}
-% and chars beyond $0\mathrm{xFFFF}$ (probably a bug, but can be worked
-% around!).
+% To ensure that the output of the case-folding function is a string, all of
+% the stored results need to be detokenized. That is done by including a loop
+% in the |.def| file which will do the necessary change. To set that up, a
+% slightly complicated bit of secondary work: write the functions which do
+% the job into the |.def| file itself, using a group to trap the temporary
+% code. There is also a test in the following so that the result only has
+% braces around items which need it: this is a slight performance tweak when
+% the code actually gets used. Notice that everything in the token list is
+% detokenized except for the |{| and |}| chars needed for grouping: if the
+% search part of the list is not detokenized there are issues with \XeTeX{}
+% and chars beyond $0\mathrm{xFFFF}$ (probably a bug, but can be worked
+% around!).
% \begin{macrocode}
\__unicode_verb:
\group_begin:
@@ -808,8 +900,6 @@
}
\__unicode_verb_end:
% \end{macrocode}
-% \end{macro}
-% \end{macro}
%
% The write loop is simple: map over the array and write everything to the
% output. The group used for the temporary stuff in the
diff --git a/Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e.dtx b/Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e.dtx
index c9f97b05af6..4dfce684b9c 100644
--- a/Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e.dtx
+++ b/Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e.dtx
@@ -37,8 +37,8 @@
%<*driver|package>
% The version of expl3 required is tested as early as possible, as
% some really old versions do not define \ProvidesExplPackage.
-\RequirePackage{expl3}[2014/09/15]
-%<package>\@ifpackagelater{expl3}{2014/09/15}
+\RequirePackage{expl3}[2014/11/25]
+%<package>\@ifpackagelater{expl3}{2014/11/25}
%<package> {}
%<package> {%
%<package> \PackageError{l3keys2e}{Support package l3kernel too old}
@@ -50,7 +50,7 @@
%<package> }%
%<package> \endinput
%<package> }
-\GetIdInfo$Id: l3keys2e.dtx 5423 2014-09-15 10:48:14Z joseph $
+\GetIdInfo$Id: l3keys2e.dtx 5471 2014-11-25 20:11:29Z joseph $
{LaTeX2e option processing using LaTeX3 keys}
%</driver|package>
%<*driver>
diff --git a/Master/texmf-dist/source/latex/l3packages/xparse/xparse.dtx b/Master/texmf-dist/source/latex/l3packages/xparse/xparse.dtx
index 6342bb959ba..36a13537312 100644
--- a/Master/texmf-dist/source/latex/l3packages/xparse/xparse.dtx
+++ b/Master/texmf-dist/source/latex/l3packages/xparse/xparse.dtx
@@ -41,8 +41,8 @@
%<*driver|package>
% The version of expl3 required is tested as early as possible, as
% some really old versions do not define \ProvidesExplPackage.
-\RequirePackage{expl3}[2014/09/15]
-%<package>\@ifpackagelater{expl3}{2014/09/15}
+\RequirePackage{expl3}[2014/11/25]
+%<package>\@ifpackagelater{expl3}{2014/11/25}
%<package> {}
%<package> {%
%<package> \PackageError{xparse}{Support package l3kernel too old}
@@ -54,7 +54,7 @@
%<package> }%
%<package> \endinput
%<package> }
-\GetIdInfo$Id: xparse.dtx 5423 2014-09-15 10:48:14Z joseph $
+\GetIdInfo$Id: xparse.dtx 5471 2014-11-25 20:11:29Z joseph $
{L3 Experimental document command parser}
%</driver|package>
%<*driver>
@@ -161,7 +161,7 @@
% character and its next occurrence, in a way similar to the argument
% of the \LaTeXe{} command \cs{verb}. Thus a \texttt{v}-type argument
% is read between two matching tokens, which cannot be any of |%|, |\|,
-% |#|, |{|, |}|, |^| or \verb*| |.
+% |#|, |{|, |}| or \verb*| |.
% The verbatim argument can also be enclosed between braces, |{| and |}|.
% A command with a verbatim
% argument will not work when it appears within an argument of
@@ -584,7 +584,7 @@
% declaring a function
% \begin{verbatim}
% \DeclareDocumentCommand \foo
-% { > { \TrimSpaces } }
+% { > { \TrimSpaces } m }
% { \showtokens {#1} }
% \end{verbatim}
% and using it in a document as
diff --git a/Master/texmf-dist/source/latex/l3packages/xtemplate/xtemplate.dtx b/Master/texmf-dist/source/latex/l3packages/xtemplate/xtemplate.dtx
index c762ea22d75..47ad1f1c74b 100644
--- a/Master/texmf-dist/source/latex/l3packages/xtemplate/xtemplate.dtx
+++ b/Master/texmf-dist/source/latex/l3packages/xtemplate/xtemplate.dtx
@@ -41,8 +41,8 @@
%<*driver|package>
% The version of expl3 required is tested as early as possible, as
% some really old versions do not define \ProvidesExplPackage.
-\RequirePackage{expl3}[2014/09/15]
-%<package>\@ifpackagelater{expl3}{2014/09/15}
+\RequirePackage{expl3}[2014/11/25]
+%<package>\@ifpackagelater{expl3}{2014/11/25}
%<package> {}
%<package> {%
%<package> \PackageError{xtemplate}{Support package l3kernel too old}
@@ -54,7 +54,7 @@
%<package> }%
%<package> \endinput
%<package> }
-\GetIdInfo$Id: xtemplate.dtx 5423 2014-09-15 10:48:14Z joseph $
+\GetIdInfo$Id: xtemplate.dtx 5471 2014-11-25 20:11:29Z joseph $
{L3 Experimental prototype document functions}
%</driver|package>
%<*driver>