summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2016-01-26 23:00:51 +0000
committerKarl Berry <karl@freefriends.org>2016-01-26 23:00:51 +0000
commit54371d50fc6a5abc2b07e926553d7ca9cccdff74 (patch)
tree86eac8cd76591209c5d5748b423edeff3fa69013 /Master/texmf-dist/tex
parent43fbca5d01e622dd7c348d42b222bb87496d0bdc (diff)
l3
git-svn-id: svn://tug.org/texlive/trunk@39491 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex')
-rw-r--r--Master/texmf-dist/tex/latex/l3build/l3build.lua88
-rw-r--r--Master/texmf-dist/tex/latex/l3build/regression-test.tex2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex1063
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex6
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3.sty6
-rw-r--r--Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty10
-rw-r--r--Master/texmf-dist/tex/latex/l3packages/xfrac/xfrac.sty10
-rw-r--r--Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty10
-rw-r--r--Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty10
9 files changed, 604 insertions, 601 deletions
diff --git a/Master/texmf-dist/tex/latex/l3build/l3build.lua b/Master/texmf-dist/tex/latex/l3build/l3build.lua
index aac3a20ca20..e6766737673 100644
--- a/Master/texmf-dist/tex/latex/l3build/l3build.lua
+++ b/Master/texmf-dist/tex/latex/l3build/l3build.lua
@@ -1,6 +1,6 @@
--[[
- File l3build.lua (C) Copyright 2014-2015 The LaTeX3 Project
+ File l3build.lua (C) Copyright 2014-2016 The LaTeX3 Project
It may be distributed and/or modified under the conditions of the
LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -17,8 +17,8 @@
--]]
-- Version information: should be identical to that in l3build.dtx
-release_date = "2015/12/20"
-release_ver = "6326"
+release_date = "2016/01/19"
+release_ver = "6377"
-- "module" is a deprecated function in Lua 5.2: as we want the name
-- for other purposes, and it should eventually be 'free', simply
@@ -149,6 +149,7 @@ makeindexopts = makeindexopts or ""
-- Other required settings
asciiengines = asciiengines or {"pdftex"}
checkruns = checkruns or 1
+maxprintline = maxprintline or 79
packtdszip = packtdszip or false -- Not actually needed but clearer
scriptname = scriptname or "build.lua" -- Script used in each directory
typesetcmds = typesetcmds or ""
@@ -189,11 +190,11 @@ function argparse()
}
local option_args =
{
- date = true ,
- engine = true ,
- halt = false,
- help = false,
- quiet = false,
+ date = true ,
+ engine = true ,
+ halt = false,
+ help = false,
+ quiet = false,
version = true
}
-- arg[1] is a special case: must be a command or "-h"/"--help"
@@ -213,7 +214,6 @@ function argparse()
end
-- An auxiliary to grab all file names into a table
local function remainder(num)
- local i
local files = { }
for i = num, #arg do
table.insert(files, arg[i])
@@ -382,9 +382,6 @@ end
-- operations 'natively'.
-- Detect the operating system in use
--- See http://www.lua.org/manual/5.2/manual.html#pdf-package.config for details
--- of the string used here to pick up the operating system (Windows or
--- 'not-Windows'
-- Support items are defined here for cases where a single string can cover
-- both Windows and Unix cases: more complex situations are handled inside
-- the support functions
@@ -564,7 +561,7 @@ function rmdir(dir)
-- First, make sure it exists to avoid any errors
mkdir(dir)
if os_windows then
- return os.execute("rmdir /s /q " .. unix_to_win(dir) )
+ return os.execute("rmdir /s /q " .. unix_to_win(dir))
else
return os.execute("rm -r " .. dir)
end
@@ -577,8 +574,7 @@ end
-- Deal with the fact that Windows and Unix use different path separators
function unix_to_win(path)
- local path = string.gsub(path, "/", "\\")
- return path
+ return string.gsub(path, "/", "\\")
end
--
@@ -731,6 +727,10 @@ end
-- Convert the raw log file into one for comparison/storage: keeps only
-- the 'business' part from the tests and removes system-dependent stuff
function formatlog(logfile, newfile, engine)
+ local maxprintline = maxprintline
+ if engine == "luatex" or engine == "luajittex" then
+ maxprintline = maxprintline + 1 -- Deal with an out-by-one error
+ end
local function killcheck(line)
-- Skip lines containing file dates
if string.match(line, "[^<]%d%d%d%d/%d%d/%d%d") then
@@ -747,9 +747,14 @@ function formatlog(logfile, newfile, engine)
return false
end
-- Substitutions to remove some non-useful changes
- local function normalize(line, maxprintline)
+ local function normalize(line)
+ -- Zap line numbers from \show, \showbox, \box_show and the like:
+ -- do this before wrapping lines
+ line = string.gsub(line, "^l%.%d+ ", "l. ...")
-- Allow for wrapped lines: preserve the content and wrap
- if (string.len(line) == maxprintline) then
+ -- Skip lines that have an explicit marker for truncation
+ if string.len(line) == maxprintline and
+ not string.match(line, "%.%.%.$") then
lastline = (lastline or "") .. line
return ""
end
@@ -776,6 +781,8 @@ function formatlog(logfile, newfile, engine)
end
-- Zap map loading of map
line = string.gsub(line, "%{%w?:?[%w/%-]*/pdftex%.map%}", "")
+ -- Deal with the fact that "(.aux)" may have still a leading space
+ line = string.gsub(line, "^ %(%.aux%)", "(.aux)")
-- Merge all of .fd data into one line so will be removed later
if string.match(line, "^ *%([%.%/%w]+%.fd[^%)]*$") then
lastline = (lastline or "") .. line
@@ -796,17 +803,6 @@ function formatlog(logfile, newfile, engine)
for i = 0, 31 do
line = string.gsub(line, string.char(i), "^^" .. string.char(64 + i))
end
- -- Zap line numbers from \show, \showbox, \box_show and the like
- -- Two stages as line wrapping alters some of them and restore the break
- line = string.gsub(line, "^l%.%d+ ", "l. ...")
- line = string.gsub(
- line,
- "%.%.%.l%.%d+ ( *)%}$",
- "..." .. os_newline .. "l. ...%1}"
- )
- -- Remove spaces at the start of lines: deals with the fact that LuaTeX
- -- uses a different number to the other engines
- line = string.gsub(line, "^%s+", "")
-- Remove 'normal' direction information on boxes with (u)pTeX
line = string.gsub(line, ",? yoko direction,?", "")
-- A tidy-up to keep LuaTeX and other engines in sync
@@ -821,12 +817,6 @@ function formatlog(logfile, newfile, engine)
end
return line
end
- local kpse = require("kpse")
- kpse.set_program_name(engine)
- local maxprintline = tonumber(kpse.expand_var("$max_print_line"))
- if engine == "luatex" or engine == "luajittex" then
- maxprintline = maxprintline + 1 -- Deal with an out-by-one error
- end
local lastline = ""
local newlog = ""
local prestart = true
@@ -841,7 +831,7 @@ function formatlog(logfile, newfile, engine)
elseif line == "TIMO" then
skipping = false
elseif not prestart and not skipping then
- line = normalize(line, maxprintline)
+ line = normalize(line)
if not string.match(line, "^ *$") and not killcheck(line) then
newlog = newlog .. line .. os_newline
end
@@ -987,12 +977,9 @@ function formatlualog(logfile, newfile)
-- Wrap some cases that can be picked out
-- In some places LuaTeX does use max_print_line, then we
-- get into issues with different wrapping approaches
- local kpse = require("kpse")
- kpse.set_program_name("luatex")
- local maxprintline = tonumber(kpse.expand_var("$max_print_line"))
- if (string.len(line) == maxprintline) then
- return "", line
- elseif (string.len(lastline) == maxprintline) then
+ if string.len(line) == maxprintline then
+ return "", lastline .. line
+ elseif string.len(lastline) == maxprintline then
if string.match(line, "\\ETC%.%}$") then
-- If the line wrapped at \ETC we might have lost a space
return lastline
@@ -1003,8 +990,13 @@ function formatlualog(logfile, newfile)
else
return lastline .. os_newline .. line, ""
end
+ -- Return all of the text for a wrapped (multi)line
+ elseif string.len(lastline) > maxprintline then
+ return lastline .. line, ""
end
- return line, ""
+ -- Remove spaces at the start of lines: deals with the fact that LuaTeX
+ -- uses a different number to the other engines
+ return string.gsub(line, "^%s+", ""), ""
end
local newlog = ""
local lastline = ""
@@ -1097,7 +1089,7 @@ function runcheck(name, hide)
-- Do additional log formatting if the engine is LuaTeX, there is no
-- LuaTeX-specific .tlg file and the default engine is not LuaTeX
if enginename == "luatex"
- and tlgfile ~= name .. ".luatex" .. tlgext
+ and not string.match(tlgfile, "%.luatex" .. "%" .. tlgext)
and stdengine ~= "luatex"
and stdengine ~= "luajittex" then
local luatlgfile = testdir .. "/" .. name .. ".luatex" .. tlgext
@@ -1181,6 +1173,9 @@ function runtest(name, engine, hide, ext)
-- Avoid spurious output from (u)pTeX
os_setenv .. " GUESS_INPUT_KANJI_ENCODING=0"
.. os_concat ..
+ -- Ensure lines are of a known length
+ os_setenv .. " max_print_line=" .. maxprintline
+ .. os_concat ..
realengine .. format .. " "
.. checkopts .. " " .. asciiopt .. lvtfile
.. (hide and (" > " .. os_null) or "")
@@ -1376,7 +1371,6 @@ function check(names)
if names and next(names) then
hide = false
end
- local i
names = names or { }
-- No names passed: find all test files
if not next(names) then
@@ -1394,7 +1388,6 @@ function check(names)
end
-- Actually run the tests
print("Running checks on")
- local name
for _,name in ipairs(names) do
print(" " .. name)
local errlevel = runcheck(name, hide)
@@ -1621,7 +1614,6 @@ function doc(files)
-- Allow for command line selection of files
local typeset = true
if files and next(files) then
- local k
typeset = false
for _,k in ipairs(files) do
if k == stripext(j) then
@@ -1666,7 +1658,6 @@ end
function save(names)
checkinit()
local engines = optengines or {stdengine}
- local name
for _,name in pairs(names) do
local engine
for _,engine in pairs(engines) do
@@ -1703,7 +1694,6 @@ end
if versionform ~= "" and not setversion_update_line then
if versionform == "ProvidesPackage" then
function setversion_update_line(line, date, version)
- local i
-- No real regex so do it one type at a time
for _,i in pairs({"Class", "File", "Package"}) do
if string.match(
@@ -1722,7 +1712,6 @@ if versionform ~= "" and not setversion_update_line then
end
elseif versionform == "ProvidesExplPackage" then
function setversion_update_line(line, date, version)
- local i
-- No real regex so do it one type at a time
for _,i in pairs({"Class", "File", "Package"}) do
if string.match(
@@ -1804,7 +1793,6 @@ function setversion()
if optversion then
version = optversion[1] or version
end
- local i, j
for _,i in pairs(versionfiles) do
for _,j in pairs(filelist(".", i)) do
rewrite(j, date, version)
diff --git a/Master/texmf-dist/tex/latex/l3build/regression-test.tex b/Master/texmf-dist/tex/latex/l3build/regression-test.tex
index 40bddaeee44..96dc4320a58 100644
--- a/Master/texmf-dist/tex/latex/l3build/regression-test.tex
+++ b/Master/texmf-dist/tex/latex/l3build/regression-test.tex
@@ -14,7 +14,7 @@
%% Do not distribute a modified version of this file.
%%
%%
-%% File l3build.dtx (C) Copyright 2014-2015 The LaTeX3 Project
+%% File l3build.dtx (C) Copyright 2014-2016 The LaTeX3 Project
%%
%% It may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
index 3b89b6f6fd1..048905cce52 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
@@ -37,8 +37,8 @@
%% l3box.dtx (with options: `package')
%% l3coffins.dtx (with options: `package')
%% l3color.dtx (with options: `package')
-%% l3candidates.dtx (with options: `package')
%% l3sys.dtx (with options: `package')
+%% l3candidates.dtx (with options: `package')
%% l3luatex.dtx (with options: `package,tex')
%%
%% EXPERIMENTAL CODE
@@ -48,7 +48,7 @@
%%
%% Do not distribute a modified version of this file.
%%
-%% File: expl3.dtx Copyright (C) 1990-2015 The LaTeX3 Project
+%% File: expl3.dtx Copyright (C) 1990-2016 The LaTeX3 Project
%%
%% It may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -82,8 +82,8 @@
%% -----------------------------------------------------------------------
\def\ExplFileName{expl3}%
\def\ExplFileDescription{L3 programming layer}%
-\def\ExplFileDate{2016/01/03}%
-\def\ExplFileVersion{6358}%
+\def\ExplFileDate{2016/01/19}%
+\def\ExplFileVersion{6377}%
\begingroup
\def\next{\endgroup}%
\expandafter\ifx\csname PackageError\endcsname\relax
@@ -4789,7 +4789,7 @@
\seq_new:N \l_tmpb_seq
\seq_new:N \g_tmpa_seq
\seq_new:N \g_tmpb_seq
-%% File: l3int.dtx Copyright (C) 1990-2015 The LaTeX3 Project
+%% File: l3int.dtx Copyright (C) 1990-2016 The LaTeX3 Project
%%
%% It may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -4821,7 +4821,7 @@
%% prior consultation with the LaTeX3 Project.
%%
%% -----------------------------------------------------------------------
-\GetIdInfo$Id: l3int.dtx 6089 2015-09-25 13:29:50Z mittelba $
+\GetIdInfo$Id: l3int.dtx 6366 2016-01-05 22:18:59Z joseph $
{L3 Integers}
\cs_new_eq:NN \__int_value:w \tex_number:D
\cs_new_eq:NN \__int_eval:w \etex_numexpr:D
@@ -5611,12 +5611,6 @@
\int_new:N \l_tmpb_int
\int_new:N \g_tmpa_int
\int_new:N \g_tmpb_int
-\cs_new_eq:NN \int_to_binary:n \int_to_bin:n
-\cs_new_eq:NN \int_to_hexadecimal:n \int_to_Hex:n
-\cs_new_eq:NN \int_to_octal:n \int_to_oct:n
-\cs_new_eq:NN \int_from_binary:n \int_from_bin:n
-\cs_new_eq:NN \int_from_hexadecimal:n \int_from_hex:n
-\cs_new_eq:NN \int_from_octal:n \int_from_oct:n
%% File: l3quark.dtx Copyright (C) 1990-2015 The LaTeX3 Project
%%
%% It may be distributed and/or modified under the conditions of the
@@ -7266,7 +7260,7 @@
}
{ \scan_stop: }
}
-%% File: l3prop.dtx Copyright (C) 1990-2015 The LaTeX3 Project
+%% File: l3prop.dtx Copyright (C) 1990-2016 The LaTeX3 Project
%%
%% It may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -7298,7 +7292,7 @@
%% prior consultation with the LaTeX3 Project.
%%
%% -----------------------------------------------------------------------
-\GetIdInfo$Id: l3prop.dtx 5777 2015-08-05 02:32:21Z bruno $
+\GetIdInfo$Id: l3prop.dtx 6366 2016-01-05 22:18:59Z joseph $
{L3 Property lists}
\__scan_new:N \s__prop
\cs_new:Npn \__prop_pair:wn #1 \s__prop #2
@@ -7569,8 +7563,6 @@
{ \prop_map_function:NN #1 \__msg_show_item:nn }
}
\cs_generate_variant:Nn \prop_show:N { c }
-\cs_new_eq:NN \prop_get:Nn \prop_item:Nn
-\cs_new_eq:NN \prop_get:cn \prop_item:cn
%% File: l3msg.dtx Copyright (C) 2009-2015 The LaTeX3 Project
%%
%% It may be distributed and/or modified under the conditions of the
@@ -8987,7 +8979,7 @@
\__msg_kernel_new:nnn { kernel } { indent-outside-wrapping-code }
{ Only~\iow_wrap:nnnN~(arg~1)~allows~\iow_indent:n }
%% File: l3skip.dtx Copyright (C) 2004-2011 Frank Mittelbach, The LaTeX3 Project
-%% (C) 2012-2015 The LaTeX3 Project
+%% (C) 2012-2016 The LaTeX3 Project
%%
%% It may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -9019,7 +9011,7 @@
%% prior consultation with the LaTeX3 Project.
%%
%% -----------------------------------------------------------------------
-\GetIdInfo$Id: l3skip.dtx 6089 2015-09-25 13:29:50Z mittelba $
+\GetIdInfo$Id: l3skip.dtx 6366 2016-01-05 22:18:59Z joseph $
{L3 Dimensions and skips}
\cs_new_eq:NN \if_dim:w \tex_ifdim:D
\cs_new_eq:NN \__dim_eval:w \etex_dimexpr:D
@@ -9425,8 +9417,6 @@
\muskip_new:N \l_tmpb_muskip
\muskip_new:N \g_tmpa_muskip
\muskip_new:N \g_tmpb_muskip
-\cs_new_eq:NN \__dim_strip_bp:n \dim_to_decimal_in_bp:n
-\cs_new_eq:NN \__dim_strip_pt:n \dim_to_decimal:n
%% File: l3keys.dtx Copyright (C) 2006-2015 The LaTeX3 Project
%%
%% It may be distributed and/or modified under the conditions of the
@@ -16981,7 +16971,151 @@
}
}
}
-%% File: l3candidates.dtx Copyright(C) 2012-2015 The LaTeX3 Project
+%% File: l3sys.dtx Copyright (C) 2015 The LaTeX3 Project
+%%
+%% It may be distributed and/or modified under the conditions of the
+%% LaTeX Project Public License (LPPL), either version 1.3c of this
+%% license or (at your option) any later version. The latest version
+%% of this license is in the file
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% This file is part of the "l3kernel bundle" (The Work in LPPL)
+%% and all files in that bundle must be distributed together.
+%%
+%% The released version of this bundle is available from CTAN.
+%%
+%% -----------------------------------------------------------------------
+%%
+%% The development version of the bundle can be found at
+%%
+%% http://www.latex-project.org/svnroot/experimental/trunk/
+%%
+%% for those people who are interested.
+%%
+%%%%%%%%%%%
+%% NOTE: %%
+%%%%%%%%%%%
+%%
+%% Snapshots taken from the repository represent work in progress and may
+%% not work or may contain conflicting material! We therefore ask
+%% people _not_ to put them into distributions, archives, etc. without
+%% prior consultation with the LaTeX3 Project.
+%%
+%% -----------------------------------------------------------------------
+\GetIdInfo$Id: l3sys.dtx 6087 2015-09-25 10:29:53Z joseph $
+ {L3 Experimental system/runtime functions}
+\str_const:Nx \c_sys_jobname_str { \tex_jobname:D }
+\int_const:Nn \c_sys_minute_int
+ { \int_mod:nn { \tex_time:D } { 60 } }
+\int_const:Nn \c_sys_hour_int
+ { \int_div_truncate:nn { \tex_time:D } { 60 } }
+\int_const:Nn \c_sys_day_int { \tex_day:D }
+\int_const:Nn \c_sys_month_int { \tex_month:D }
+\int_const:Nn \c_sys_year_int { \tex_year:D }
+\clist_map_inline:nn { lua , pdf , p , up , xe }
+ {
+ \cs_new_eq:cN { sys_if_engine_ #1 tex:T } \use_none:n
+ \cs_new_eq:cN { sys_if_engine_ #1 tex:F } \use:n
+ \cs_new_eq:cN { sys_if_engine_ #1 tex:TF } \use_ii:nn
+ \cs_new_eq:cN { sys_if_engine_ #1 tex_p: } \c_false_bool
+ }
+\cs_if_exist:NT \luatex_luatexversion:D
+ {
+ \cs_gset_eq:NN \sys_if_engine_luatex:T \use:n
+ \cs_gset_eq:NN \sys_if_engine_luatex:F \use_none:n
+ \cs_gset_eq:NN \sys_if_engine_luatex:TF \use_i:nn
+ \cs_gset_eq:NN \sys_if_engine_luatex_p: \c_true_bool
+ \str_const:Nn \c_sys_engine_str { luatex }
+ }
+\cs_if_exist:NT \pdftex_pdftexversion:D
+ {
+ \cs_gset_eq:NN \sys_if_engine_pdftex:T \use:n
+ \cs_gset_eq:NN \sys_if_engine_pdftex:F \use_none:n
+ \cs_gset_eq:NN \sys_if_engine_pdftex:TF \use_i:nn
+ \cs_gset_eq:NN \sys_if_engine_pdftex_p: \c_true_bool
+ \str_const:Nn \c_sys_engine_str { pdftex }
+ }
+\cs_if_exist:NT \ptex_kanjiskip:D
+ {
+ \bool_if:nTF
+ {
+ \cs_if_exist_p:N \uptex_disablecjktoken:D &&
+ \int_compare_p:nNn { \ptex_jis:D "2121 } = { "3000 }
+ }
+ {
+ \cs_gset_eq:NN \sys_if_engine_uptex:T \use:n
+ \cs_gset_eq:NN \sys_if_engine_uptex:F \use_none:n
+ \cs_gset_eq:NN \sys_if_engine_uptex:TF \use_i:nn
+ \cs_gset_eq:NN \sys_if_engine_uptex_p: \c_true_bool
+ \str_const:Nn \c_sys_engine_str { uptex }
+ }
+ {
+ \cs_gset_eq:NN \sys_if_engine_ptex:T \use:n
+ \cs_gset_eq:NN \sys_if_engine_ptex:F \use_none:n
+ \cs_gset_eq:NN \sys_if_engine_ptex:TF \use_i:nn
+ \cs_gset_eq:NN \sys_if_engine_ptex_p: \c_true_bool
+ \str_const:Nn \c_sys_engine_str { ptex }
+ }
+ }
+\cs_if_exist:NT \xetex_XeTeXversion:D
+ {
+ \cs_gset_eq:NN \sys_if_engine_xetex:T \use:n
+ \cs_gset_eq:NN \sys_if_engine_xetex:F \use_none:n
+ \cs_gset_eq:NN \sys_if_engine_xetex:TF \use_i:nn
+ \cs_gset_eq:NN \sys_if_engine_xetex_p: \c_true_bool
+ \str_const:Nn \c_sys_engine_str { xetex }
+ }
+\bool_if:nTF
+ {
+ \cs_if_exist_p:N \pdftex_pdfoutput:D
+ && \int_compare_p:nNn \pdftex_pdfoutput:D > \c_zero
+ }
+ {
+ \cs_new_eq:NN \sys_if_output_dvi:T \use_none:n
+ \cs_new_eq:NN \sys_if_output_dvi:F \use:n
+ \cs_new_eq:NN \sys_if_output_dvi:TF \use_ii:nn
+ \cs_new_eq:NN \sys_if_output_dvi_p: \c_false_bool
+ \cs_new_eq:NN \sys_if_output_pdf:T \use:n
+ \cs_new_eq:NN \sys_if_output_pdf:F \use_none:n
+ \cs_new_eq:NN \sys_if_output_pdf:TF \use_i:nn
+ \cs_new_eq:NN \sys_if_output_pdf_p: \c_true_bool
+ \str_const:Nn \c_sys_output_str { pdf }
+ }
+ {
+ \cs_new_eq:NN \sys_if_output_dvi:T \use:n
+ \cs_new_eq:NN \sys_if_output_dvi:F \use_none:n
+ \cs_new_eq:NN \sys_if_output_dvi:TF \use_i:nn
+ \cs_new_eq:NN \sys_if_output_dvi_p: \c_true_bool
+ \cs_new_eq:NN \sys_if_output_pdf:T \use_none:n
+ \cs_new_eq:NN \sys_if_output_pdf:F \use:n
+ \cs_new_eq:NN \sys_if_output_pdf:TF \use_ii:nn
+ \cs_new_eq:NN \sys_if_output_pdf_p: \c_false_bool
+ \str_const:Nn \c_sys_output_str { dvi }
+ }
+\prg_new_eq_conditional:NNn \luatex_if_engine: \sys_if_engine_luatex:
+ { T , F , TF , p }
+\prg_new_eq_conditional:NNn \xetex_if_engine: \sys_if_engine_xetex:
+ { T , F , TF , p }
+\bool_if:nTF
+ {
+ \sys_if_engine_luatex_p: ||
+ \sys_if_engine_xetex_p:
+ }
+ {
+ \cs_new_eq:NN \pdftex_if_engine:T \use_none:n
+ \cs_new_eq:NN \pdftex_if_engine:F \use:n
+ \cs_new_eq:NN \pdftex_if_engine:TF \use_ii:nn
+ \cs_new_eq:NN \pdftex_if_engine_p: \c_false_bool
+ }
+ {
+ \cs_new_eq:NN \pdftex_if_engine:T \use:n
+ \cs_new_eq:NN \pdftex_if_engine:F \use_none:n
+ \cs_new_eq:NN \pdftex_if_engine:TF \use_i:nn
+ \cs_new_eq:NN \pdftex_if_engine_p: \c_true_bool
+ }
+\cs_set_eq:NN \c_job_name_tl \c_sys_jobname_str
+%% File: l3candidates.dtx Copyright(C) 2012-2016 The LaTeX3 Project
%%
%% It may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -17014,7 +17148,7 @@
%%
%% -----------------------------------------------------------------------
%%
-\GetIdInfo$Id: l3candidates.dtx 6325 2015-12-20 18:07:35Z joseph $
+\GetIdInfo$Id: l3candidates.dtx 6376 2016-01-14 08:36:20Z joseph $
{L3 Experimental additions to l3kernel}
\cs_new_protected_nopar:Npn \cs_log:N
{ \__msg_log_next: \cs_show:N }
@@ -17999,7 +18133,7 @@
}
\cs_new:Npn \__tl_change_case_output:nwn #1#2 \__tl_change_case_result:n #3
{ #2 \__tl_change_case_result:n { #3 #1 } }
-\cs_generate_variant:Nn \__tl_change_case_output:nwn { V , o , f }
+\cs_generate_variant:Nn \__tl_change_case_output:nwn { V , o , v , f }
\cs_new:Npn \__tl_change_case_end:wn #1 \__tl_change_case_result:n #2
{
\group_align_safe_end:
@@ -18086,11 +18220,7 @@
\cs_new:Npn \__tl_change_case_N_type:Nnnn #1#2#3#4
{
\token_if_cs:NTF #1
- {
- \__tl_change_case_cs:Nnnn #1 {#3}
- { }
- { \__tl_change_case_cs:N #1 }
- }
+ { \__tl_change_case_cs_letterlike:Nnn #1 {#3} { } }
{ \__tl_change_case_char:Nnn #1 {#3} {#4} }
\__tl_change_case_loop:wnn #2 \q_recursion_stop {#3} {#4}
}
@@ -18104,18 +18234,38 @@
{ \__tl_change_case_char:nN {#2} #1 }
}
}
-\cs_new:Npn \__tl_change_case_char:nN #1#2
+\cs_if_exist:NTF \utex_char:D
+ {
+ \cs_new:Npn \__tl_change_case_char:nN #1#2
+ { \__tl_change_case_char_auxi:nN {#1} #2 }
+ }
+ {
+ \cs_new:Npn \__tl_change_case_char:nN #1#2
+ {
+ \int_compare:nNnTF { `#2 } > { "80 }
+ {
+ \int_compare:nNnTF { `#2 } < { "E0 }
+ { \__tl_change_case_char_UTFiix:nNNN {#1} #2 }
+ {
+ \int_compare:nNnTF { `#2 } < { "F0 }
+ { \__tl_change_case_char_UTFiix:nNNNN {#1} #2 }
+ { \__tl_change_case_char_UTFiix:nNNNNN {#1} #2 }
+ }
+ }
+ { \__tl_change_case_char_auxi:nN {#1} #2 }
+ }
+ }
+\cs_new:Npn \__tl_change_case_char_auxi:nN #1#2
{
\__tl_change_case_output:fwn
{
- \cs_if_exist:cTF { c__unicode_ #1 _ #2 _tl }
- { \tl_use:c { c__unicode_ #1 _ #2 _tl } }
- { \__tl_change_case_char_aux:nN {#1} #2 }
+ \cs_if_exist_use:cF { c__unicode_ #1 _ \token_to_str:N #2 _tl }
+ { \__tl_change_case_char_auxii:nN {#1} #2 }
}
}
\cs_if_exist:NTF \utex_char:D
{
- \cs_new:Npn \__tl_change_case_char_aux:nN #1#2
+ \cs_new:Npn \__tl_change_case_char_auxii:nN #1#2
{
\int_compare:nNnTF { \use:c { __tl_lookup_ #1 :N } #2 } = { 0 }
{ \exp_stop_f: #2 }
@@ -18128,73 +18278,60 @@
\cs_new_eq:NN \__tl_lookup_title:N \__tl_lookup_upper:N
}
{
- \cs_new:Npn \__tl_change_case_char_aux:nN #1#2 { \exp_stop_f: #2 }
- }
-\cs_new:Npn \__tl_change_case_cs:Nnnn #1#2
- {
- \exp_args:Nf \__tl_change_case_cs:nNnnn
- { \cs_to_str:N #1 } #1 {#2}
- }
-\cs_new:Npn \__tl_change_case_cs:nNnnn #1#2#3
- {
- \tl_if_head_eq_catcode:oNTF { \use_none:nnn #1 a a a a } a
- { \__tl_change_case_cs_type:Nnnnn #2 { latin } {#3} }
+ \cs_new:Npn \__tl_change_case_char_auxii:nN #1#2 { \exp_stop_f: #2 }
+ \cs_new:Npn \__tl_change_case_char_UTFiix:nNNN #1#2#3#4
+ { \__tl_change_case_char_UTFiix:nnN {#1} {#2#4} #3 }
+ \cs_new:Npn \__tl_change_case_char_UTFiix:nNNNN #1#2#3#4#5
+ { \__tl_change_case_char_UTFiix:nnN {#1} {#2#4#5} #3 }
+ \cs_new:Npn \__tl_change_case_char_UTFiix:nNNNNN #1#2#3#4#5#6
+ { \__tl_change_case_char_UTFiix:nnN {#1} {#2#4#5#6} #3 }
+ \cs_new:Npn \__tl_change_case_char_UTFiix:nnN #1#2#3
{
- \str_if_eq_x:nnTF
- { \__tl_change_case_cs_three:NNNw #1 \q_nil }
- { \str_if_eq:nnTF {#3} { lower } { CYR } { cyr } }
- { \__tl_change_case_cs_cyr:NnNNNNw #2 {#3} #1 \q_stop }
+ \cs_if_exist:cTF { c__unicode_ #1 _ \tl_to_str:n {#2} _tl }
{
- \str_if_eq_x:nnTF
- { \__tl_change_case_cs_three:NNNw #1 \q_nil }
- { acc }
- { \__tl_change_case_cs_type:Nnnnn #2 { acc } {#3} }
- {
- \str_if_eq_x:nnTF
- { \__tl_change_case_cs_four:NNNNw #1 \q_nil }
- { text }
- { \__tl_change_case_cs_type:Nnnnn #2 { greek } {#3} }
- { \__tl_change_case_cs_type:Nnnnn #2 { misc } {#3} }
- }
+ \__tl_change_case_output:vwn
+ { c__unicode_ #1 _ \tl_to_str:n {#2} _tl }
}
+ { \__tl_change_case_output:nwn {#2} }
+ #3
}
}
-\cs_new:Npn \__tl_change_case_cs_three:NNNw #1#2#3#4 \q_nil { #1#2#3 }
-\cs_new:Npn \__tl_change_case_cs_four:NNNNw #1#2#3#4#5 \q_nil { #1#2#3#4 }
-\cs_new:Npn \__tl_change_case_cs_cyr:NnNNNNw #1#2#3#4#5#6#7 \q_stop
+\cs_new:Npn \__tl_change_case_cs_letterlike:Nnn #1#2#3
{
- \__tl_change_case_cs_type:Nnnnn #1
- { cyrillic }
+ \cs_if_exist:cTF { c__tl_change_case_ #2 _ \token_to_str:N #1 _tl }
{
- #2 _
- \int_to_roman:n
- {
- 1 +
- \int_div_truncate:nn
- {
- `#6 - \str_if_eq:nnTF {#2} { lower } { `A } { `a }
- }
- { 7 }
- }
+ \__tl_change_case_output:vwn
+ { c__tl_change_case_ #2 _ \token_to_str:N #1 _tl }
+ #3
}
- }
-\cs_new:Npn \__tl_change_case_cs_type:Nnnnn #1#2#3
- {
- \exp_args:Nf \__tl_change_case_cs_type:nnn
{
- \str_case:nvF #1
- { c__tl_change_case_ #2 _ #3 _ tl }
- { \exp_stop_f: }
+ \cs_if_exist:cTF
+ {
+ c__tl_change_case_
+ \str_if_eq:nnTF {#2} { lower } { upper } { lower }
+ _ \token_to_str:N #1 _tl
+ }
+ {
+ \__tl_change_case_output:nwn {#1}
+ #3
+ }
+ {
+ \exp_after:wN \__tl_change_case_cs_accents:NN
+ \exp_after:wN #1 \l_tl_case_change_accents_tl
+ \q_recursion_tail \q_recursion_stop
+ }
}
}
-\cs_new:Npn \__tl_change_case_cs_type:nnn #1#2#3
+\cs_new:Npn \__tl_change_case_cs_accents:NN #1#2
{
- \tl_if_blank:nTF {#1}
- {#3}
+ \quark_if_recursion_tail_stop_do:Nn #2
+ { \__tl_change_case_cs:N #1 }
+ \str_if_eq:nnTF {#1} {#2}
{
- \__tl_change_case_output:nwn {#1}
- #2
+ \use_i_delimit_by_q_recursion_stop:nw
+ { \__tl_change_case_output:nwn {#1} }
}
+ { \__tl_change_case_cs_accents:NN #1 }
}
\cs_new:Npn \__tl_change_case_cs:N #1
{
@@ -18274,40 +18411,67 @@
}
}
\cs_new_eq:NN \__tl_change_case_upper_sigma:Nnw \use_ii:nn
-\cs_new:Npn \__tl_change_case_lower_tr:Nnw #1#2
+\cs_if_exist:NTF \utex_char:D
{
- \int_compare:nNnTF { `#1 } = { "0049 }
- { \__tl_change_case_lower_tr_auxi:Nw }
+ \cs_new:Npn \__tl_change_case_lower_tr:Nnw #1#2
{
- \int_compare:nNnTF { `#1 } = { "0130 }
- { \__tl_change_case_output:nwn { i } }
- {#2}
+ \int_compare:nNnTF { `#1 } = { "0049 }
+ { \__tl_change_case_lower_tr_auxi:Nw }
+ {
+ \int_compare:nNnTF { `#1 } = { "0130 }
+ { \__tl_change_case_output:nwn { i } }
+ {#2}
+ }
}
- }
-\cs_new:Npn \__tl_change_case_lower_tr_auxi:Nw #1#2 \q_recursion_stop
- {
- \tl_if_head_is_N_type:nTF {#2}
- { \__tl_change_case_lower_tr_auxii:Nw #2 \q_recursion_stop }
- { \__tl_change_case_output:Vwn \c__unicode_dotless_i_tl }
- #1 #2 \q_recursion_stop
- }
-\cs_new:Npn \__tl_change_case_lower_tr_auxii:Nw #1#2 \q_recursion_stop
- {
- \__tl_change_case_if_expandable:NTF #1
+ \cs_new:Npn \__tl_change_case_lower_tr_auxi:Nw #1#2 \q_recursion_stop
{
- \exp_after:wN \__tl_change_case_lower_tr_auxi:Nw #1
- #2 \q_recursion_stop
+ \tl_if_head_is_N_type:nTF {#2}
+ { \__tl_change_case_lower_tr_auxii:Nw #2 \q_recursion_stop }
+ { \__tl_change_case_output:Vwn \c__unicode_dotless_i_tl }
+ #1 #2 \q_recursion_stop
}
+ \cs_new:Npn \__tl_change_case_lower_tr_auxii:Nw #1#2 \q_recursion_stop
{
- \bool_if:nTF
+ \__tl_change_case_if_expandable:NTF #1
{
- \token_if_cs_p:N #1
- || ! ( \int_compare_p:nNn { `#1 } = { "0307 } )
+ \exp_after:wN \__tl_change_case_lower_tr_auxi:Nw #1
+ #2 \q_recursion_stop
+ }
+ {
+ \bool_if:nTF
+ {
+ \token_if_cs_p:N #1
+ || ! ( \int_compare_p:nNn { `#1 } = { "0307 } )
+ }
+ { \__tl_change_case_output:Vwn \c__unicode_dotless_i_tl }
+ {
+ \__tl_change_case_output:nwn { i }
+ \use_i:nn
+ }
}
+ }
+ }
+ {
+ \cs_new:Npn \__tl_change_case_lower_tr:Nnw #1#2
+ {
+ \int_compare:nNnTF { `#1 } = { "0049 }
{ \__tl_change_case_output:Vwn \c__unicode_dotless_i_tl }
{
+ \int_compare:nNnTF { `#1 } = { 196 }
+ { \__tl_change_case_lower_tr_auxi:Nw #1 {#2} }
+ {#2}
+ }
+ }
+ \cs_new:Npn \__tl_change_case_lower_tr_auxi:Nw #1#2#3#4
+ {
+ \int_compare:nNnTF { `#4 } = { 176 }
+ {
\__tl_change_case_output:nwn { i }
- \use_i:nn
+ #3
+ }
+ {
+ #2
+ #3 #4
}
}
}
@@ -18434,6 +18598,45 @@
{ \__tl_change_case_output:Vwn \c__unicode_upper_Eszett_tl }
{#2}
}
+\cs_new:Npn \__unicode_codepoint_to_UTFiix:n #1
+ {
+ \exp_args:Nf \__unicode_codepoint_to_UTFiix_auxi:n
+ { \int_eval:n {#1} }
+ }
+\cs_new:Npn \__unicode_codepoint_to_UTFiix_auxi:n #1
+ {
+ \if_int_compare:w #1 > "80 ~
+ \if_int_compare:w #1 < "800 ~
+ 2
+ \__unicode_codepoint_to_UTFiix_auxii:Nnn C {#1} { 64 }
+ \__unicode_codepoint_to_UTFiix_auxiii:n {#1}
+ \else:
+ \if_int_compare:w #1 < "10000 ~
+ 3
+ \__unicode_codepoint_to_UTFiix_auxii:Nnn E {#1} { 64 * 64 }
+ \__unicode_codepoint_to_UTFiix_auxiii:n {#1}
+ \__unicode_codepoint_to_UTFiix_auxiii:n
+ { \int_div_truncate:nn {#1} { 64 } }
+ \else:
+ 4
+ \__unicode_codepoint_to_UTFiix_auxii:Nnn F
+ {#1} { 64 * 64 * 64 }
+ \__unicode_codepoint_to_UTFiix_auxiii:n
+ { \int_div_truncate:nn {#1} { 64 * 64 } }
+ \__unicode_codepoint_to_UTFiix_auxiii:n
+ { \int_div_truncate:nn {#1} { 64 } }
+ \__unicode_codepoint_to_UTFiix_auxiii:n {#1}
+
+ \fi:
+ \fi:
+ \else:
+ 1 {#1}
+ \fi:
+ }
+\cs_new:Npn \__unicode_codepoint_to_UTFiix_auxii:Nnn #1#2#3
+ { { \int_eval:n { "#10 + \int_div_truncate:nn {#2} {#3} } } }
+\cs_new:Npn \__unicode_codepoint_to_UTFiix_auxiii:n #1
+ { { \int_eval:n { \int_mod:nn {#1} { 64 } + 128 } } }
\cs_if_exist:NTF \utex_char:D
{
\tl_const:Nx \c__unicode_std_sigma_tl { \utex_char:D "03C3 ~ }
@@ -18448,23 +18651,232 @@
{ \utex_char:D "0069 ~ \utex_char:D "0307 ~ \utex_char:D "0303 ~ }
}
\tl_const:Nx \c__unicode_dot_above_tl { \utex_char:D "0307 ~ }
- \tl_const:Nx \c__unicode_dotless_i_tl { \utex_char:D "0131 ~ }
- \tl_const:Nx \c__unicode_dotted_I_tl { \utex_char:D "0130 ~ }
- \tl_const:Nx \c__unicode_i_ogonek_tl { \utex_char:D "012F ~ }
- \tl_const:Nx \c__unicode_I_ogonek_tl { \utex_char:D "012E ~ }
\tl_const:Nx \c__unicode_upper_Eszett_tl { \utex_char:D "1E9E ~}
}
{
- \tl_const:Nn \c__unicode_std_sigma_tl { }
- \tl_const:Nn \c__unicode_final_sigma_tl { }
- \tl_const:Nn \c__unicode_accents_lt_tl { }
- \tl_const:Nn \c__unicode_dot_above_tl { }
- \tl_const:Nn \c__unicode_dotless_i_tl { I }
- \tl_const:Nn \c__unicode_dotted_I_tl { i }
- \tl_const:Nn \c__unicode_i_ogonek_tl { }
- \tl_const:Nn \c__unicode_I_ogonek_tl { }
- \tl_const:Nn \c__unicode_upper_Eszett_tl { }
+ \tl_const:Nn \c__unicode_std_sigma_tl { }
+ \tl_const:Nn \c__unicode_final_sigma_tl { }
+ \tl_const:Nn \c__unicode_accents_lt_tl { }
+ \tl_const:Nn \c__unicode_dot_above_tl { }
+ \tl_const:Nn \c__unicode_upper_Eszett_tl { }
}
+\group_begin:
+ \cs_if_exist:NTF \utex_char:D
+ {
+ \cs_set_protected:Npn \__tl_tmp:w #1#2
+ { \tl_const:Nx #1 { \utex_char:D "#2 ~ } }
+ }
+ {
+ \char_set_catcode_active:N .
+ \char_set_catcode_active:N !
+ \cs_set_protected:Npn \__tl_tmp:w #1#2
+ {
+ \group_begin:
+ \cs_set_protected:Npn \__tl_tmp:w ##1##2##3
+ {
+ \char_set_lccode:nn { `\. } {##2}
+ \char_set_lccode:nn { `\! } {##3}
+ \tex_lowercase:D
+ { \tl_const:Nn #1 { . ! } }
+ }
+ \tl_set:Nx \l__tl_internal_a_tl
+ { \__unicode_codepoint_to_UTFiix:n {"#2} }
+ \exp_after:wN \__tl_tmp:w \l__tl_internal_a_tl
+ \group_end:
+ }
+ }
+ \__tl_tmp:w \c__unicode_dotless_i_tl { 0131 }
+ \__tl_tmp:w \c__unicode_dotted_I_tl { 0130 }
+ \__tl_tmp:w \c__unicode_i_ogonek_tl { 012F }
+ \__tl_tmp:w \c__unicode_I_ogonek_tl { 012E }
+\group_end:
+\group_begin:
+ \char_set_catcode_active:N .
+ \char_set_catcode_active:N !
+ \char_set_catcode_active:N ;
+ \char_set_catcode_active:N ,
+ \bool_if:nT
+ {
+ \sys_if_engine_pdftex_p: || \sys_if_engine_uptex_p:
+ }
+ {
+ \cs_set_protected:Npn \__tl_loop:nn #1#2
+ {
+ \quark_if_recursion_tail_stop:n {#1}
+ \tl_set:Nx \l__tl_internal_a_tl
+ {
+ \__unicode_codepoint_to_UTFiix:n {"#1}
+ \__unicode_codepoint_to_UTFiix:n {"#2}
+ }
+ \exp_after:wN \__tl_tmp:w \l__tl_internal_a_tl
+ \__tl_loop:nn
+ }
+ \cs_set_protected:Npn \__tl_tmp:w #1#2#3#4#5#6
+ {
+ \char_set_lccode:nn { `\. } {#2}
+ \char_set_lccode:nn { `\! } {#3}
+ \char_set_lccode:nn { `\; } {#5}
+ \char_set_lccode:nn { `\, } {#6}
+ \tex_lowercase:D
+ {
+ \tl_const:cn { c__unicode_lower_ \tl_to_str:n { . ! } _tl }
+ { ; , }
+ \tl_const:cn { c__unicode_upper_ \tl_to_str:n { ; , } _tl }
+ { . ! }
+ }
+ }
+ \__tl_loop:nn
+ { 00C0 } { 00E0 }
+ { 00C2 } { 00E2 }
+ { 00C3 } { 00E3 }
+ { 00C4 } { 00E4 }
+ { 00C5 } { 00E5 }
+ { 00C6 } { 00E6 }
+ { 00C7 } { 00E7 }
+ { 00C8 } { 00E8 }
+ { 00C9 } { 00E9 }
+ { 00CA } { 00EA }
+ { 00CB } { 00EB }
+ { 00CC } { 00EC }
+ { 00CD } { 00ED }
+ { 00CE } { 00EE }
+ { 00CF } { 00EF }
+ { 00D0 } { 00F0 }
+ { 00D1 } { 00F1 }
+ { 00D2 } { 00F2 }
+ { 00D3 } { 00F3 }
+ { 00D4 } { 00F4 }
+ { 00D5 } { 00F5 }
+ { 00D6 } { 00F6 }
+ { 00D8 } { 00F8 }
+ { 00D9 } { 00F9 }
+ { 00DA } { 00FA }
+ { 00DB } { 00FB }
+ { 00DC } { 00FC }
+ { 00DD } { 00FD }
+ { 00DE } { 00FE }
+ { 0100 } { 0101 }
+ { 0102 } { 0103 }
+ { 0104 } { 0105 }
+ { 0106 } { 0107 }
+ { 0108 } { 0109 }
+ { 010A } { 010B }
+ { 010C } { 010D }
+ { 010E } { 010F }
+ { 0110 } { 0111 }
+ { 0112 } { 0113 }
+ { 0114 } { 0115 }
+ { 0116 } { 0117 }
+ { 0118 } { 0119 }
+ { 011A } { 011B }
+ { 011C } { 011D }
+ { 011E } { 011F }
+ { 0120 } { 0121 }
+ { 0122 } { 0123 }
+ { 0124 } { 0125 }
+ { 0128 } { 0129 }
+ { 012A } { 012B }
+ { 012C } { 012D }
+ { 012E } { 012F }
+ { 0132 } { 0133 }
+ { 0134 } { 0135 }
+ { 0136 } { 0137 }
+ { 0139 } { 013A }
+ { 013B } { 013C }
+ { 013E } { 013F }
+ { 0141 } { 0142 }
+ { 0143 } { 0144 }
+ { 0145 } { 0146 }
+ { 0147 } { 0148 }
+ { 014A } { 014B }
+ { 014C } { 014D }
+ { 014E } { 014F }
+ { 0150 } { 0151 }
+ { 0152 } { 0153 }
+ { 0154 } { 0155 }
+ { 0156 } { 0157 }
+ { 0158 } { 0159 }
+ { 015A } { 015B }
+ { 015C } { 015D }
+ { 015E } { 015F }
+ { 0160 } { 0161 }
+ { 0162 } { 0163 }
+ { 0164 } { 0165 }
+ { 0168 } { 0169 }
+ { 016A } { 016B }
+ { 016C } { 016D }
+ { 016E } { 016F }
+ { 0170 } { 0171 }
+ { 0172 } { 0173 }
+ { 0174 } { 0175 }
+ { 0176 } { 0177 }
+ { 0178 } { 00FF }
+ { 0179 } { 017A }
+ { 017B } { 017C }
+ { 017D } { 017E }
+ { 01CD } { 01CE }
+ { 01CF } { 01D0 }
+ { 01D1 } { 01D2 }
+ { 01D3 } { 01D4 }
+ { 01E2 } { 01E3 }
+ { 01E6 } { 01E7 }
+ { 01E8 } { 01E9 }
+ { 01EA } { 01EB }
+ { 01F4 } { 01F5 }
+ { 0218 } { 0219 }
+ { 021A } { 021B }
+ \q_recursion_tail ?
+ \q_recursion_stop
+ \cs_set_protected:Npn \__tl_tmp:w #1#2#3
+ {
+ \group_begin:
+ \cs_set_protected:Npn \__tl_tmp:w ##1##2##3
+ {
+ \char_set_lccode:nn { `\. } {##2}
+ \char_set_lccode:nn { `\! } {##3}
+ \tex_lowercase:D
+ {
+ \tl_const:cn
+ { c__unicode_ #3 _ \tl_to_str:n { . ! } _tl }
+ }
+ { #2 }
+ }
+ \tl_set:Nx \l__tl_internal_a_tl
+ { \__unicode_codepoint_to_UTFiix:n { "#1 } }
+ \exp_after:wN \__tl_tmp:w \l__tl_internal_a_tl
+ \group_end:
+ }
+ \__tl_tmp:w { 00DF } { SS } { upper }
+ \__tl_tmp:w { 00DF } { Ss } { title }
+ \__tl_tmp:w { 0131 } { I } { upper }
+ }
+ \group_end:
+\group_begin:
+ \cs_set_protected:Npn \__tl_change_case_setup:NN #1#2
+ {
+ \quark_if_recursion_tail_stop:N #1
+ \tl_const:cn { c__tl_change_case_lower_ \token_to_str:N #1 _tl } { #2 }
+ \tl_const:cn { c__tl_change_case_upper_ \token_to_str:N #2 _tl } { #1 }
+ \__tl_change_case_setup:NN
+ }
+ \__tl_change_case_setup:NN
+ \AA \aa
+ \AE \ae
+ \DH \dh
+ \DJ \dj
+ \L \l
+ \NG \ng
+ \O \o
+ \OE \oe
+ \SS \ss
+ \TH \th
+ \q_recursion_tail ?
+ \q_recursion_stop
+ \tl_const:cn { c__tl_change_case_upper_ \token_to_str:N \i _tl } { I }
+ \tl_const:cn { c__tl_change_case_upper_ \token_to_str:N \j _tl } { J }
+\group_end:
+\tl_new:N \l_tl_case_change_accents_tl
+\tl_set:Nn \l_tl_case_change_accents_tl { \" \^ \' \` \. \c \u \~ \H \v }
\cs_new:Npn \__tl_mixed_case:nn #1#2
{
\etex_unexpanded:D \exp_after:wN
@@ -18534,21 +18946,17 @@
{
\token_if_cs:NTF #1
{
- \__tl_change_case_cs:Nnnn #1 { upper }
- {
- \__tl_change_case_loop:wnn
- #2 \q_recursion_stop { lower } {#3}
- }
- {
- \__tl_change_case_cs:N #1
- \__tl_mixed_case_loop:wn #2 \q_recursion_stop {#3}
- }
+ \__tl_change_case_cs_letterlike:Nnn #1 { upper }
+ { \__tl_mixed_case_letterlike:Nw }
+ \__tl_mixed_case_loop:wn #2 \q_recursion_stop {#3}
}
{
\__tl_mixed_case_char:Nn #1 {#3}
\__tl_change_case_loop:wnn #2 \q_recursion_stop { lower } {#3}
}
}
+\cs_new:Npn \__tl_mixed_case_letterlike:Nw #1#2 \q_recursion_stop
+ { \__tl_change_case_loop:wnn #2 \q_recursion_stop { lower } }
\cs_new:Npn \__tl_mixed_case_char:Nn #1#2
{
\cs_if_exist_use:cF { __tl_change_case_mixed_ #2 :Nnw }
@@ -18650,255 +19058,6 @@
`
-
}
-\group_begin:
- \cs_set_protected:Npn \__tl_change_case_setup:nnnn #1#2#3#4
- {
- \tl_const:cx { c__tl_change_case_ #1 _upper #2 _tl }
- {
- \__tl_change_case_map:NN
- #3 \q_recursion_tail ? \q_recursion_stop
- }
- \tl_const:cx { c__tl_change_case_ #1 _lower #2 _tl }
- {
- \__tl_change_case_map:NNN #4
- #3 \q_recursion_tail ? \q_recursion_stop
- }
- }
- \cs_set:Npn \__tl_change_case_map:NN #1#2
- {
- \quark_if_recursion_tail_stop:N #1
- \exp_not:N #1 \exp_not:n { { \exp_stop_f: #2 } }
- \__tl_change_case_map:NN
- }
- \cs_set:Npn \__tl_change_case_map:NNN #1#2#3
- {
- \str_if_eq:nnT {#1} {#2}
- { \use_none_delimit_by_q_recursion_stop:w }
- \exp_not:N #3 \exp_not:n { { \exp_stop_f: #2 } }
- \__tl_change_case_map:NNN #1
- }
- \__tl_change_case_setup:nnnn
- { latin }
- { }
- {
- \aa \AA
- \ae \AE
- \dh \DH
- \dj \DJ
- \l \L
- \ng \NG
- \o \O
- \oe \OE
- \ss \SS
- \th \TH
- \i I
- \j J
- }
- { \i }
- \__tl_change_case_setup:nnnn
- { cyrillic }
- { _i }
- {
- \cyra \CYRA
- \cyrabhch \CYRABHCH
- \cyrabhchdsc \CYRABHCHDSC
- \cyrabhdze \CYRABHDZE
- \cyrabhha \CYRABHHA
- \cyrae \CYRAE
- \cyrb \CYRB
- \cyrbyus \CYRBYUS
- \cyrc \CYRC
- \cyrch \CYRCH
- \cyrchldsc \CYRCHLDSC
- \cyrchrdsc \CYRCHRDSC
- \cyrchvcrs \CYRCHVCRS
- \cyrd \CYRD
- \cyrdelta \CYRDELTA
- \cyrdje \CYRDJE
- \cyrdze \CYRDZE
- \cyrdzhe \CYRDZHE
- \cyre \CYRE
- \cyreps \CYREPS
- \cyrerev \CYREREV
- \cyrery \CYRERY
- \cyrf \CYRF
- \cyrfita \CYRFITA
- \cyrg \CYRG
- \cyrgdsc \CYRGDSC
- \cyrgdschcrs \CYRGDSCHCRS
- \cyrghcrs \CYRGHCRS
- \cyrghk \CYRGHK
- \cyrgup \CYRGUP
- }
- { \q_recursion_tail }
- \__tl_change_case_setup:nnnn
- { cyrillic }
- { _ii }
- {
- \cyrh \CYRH
- \cyrhdsc \CYRHDSC
- \cyrhhcrs \CYRHHCRS
- \cyrhhk \CYRHHK
- \cyrhrdsn \CYRHRDSN
- \cyri \CYRI
- \cyrie \CYRIE
- \cyrii \CYRII
- \cyrishrt \CYRISHRT
- \cyrishrtdsc \CYRISHRTDSC
- \cyrizh \CYRIZH
- \cyrje \CYRJE
- \cyrk \CYRK
- \cyrkbeak \CYRKBEAK
- \cyrkdsc \CYRKDSC
- \cyrkhcrs \CYRKHCRS
- \cyrkhk \CYRKHK
- \cyrkvcrs \CYRKVCRS
- \cyrl \CYRL
- \cyrldsc \CYRLDSC
- \cyrlhk \CYRLHK
- \cyrlje \CYRLJE
- \cyrm \CYRM
- \cyrmdsc \CYRMDSC
- \cyrmhk \CYRMHK
- \cyrn \CYRN
- \cyrndsc \CYRNDSC
- \cyrng \CYRNG
- \cyrnhk \CYRNHK
- \cyrnje \CYRNJE
- \cyrnlhk \CYRNLHK
- }
- { \q_recursion_tail }
- \__tl_change_case_setup:nnnn
- { cyrillic }
- { _iii }
- {
- \cyro \CYRO
- \cyrotld \CYROTLD
- \cyrp \CYRP
- \cyrphk \CYRPHK
- \cyrq \CYRQ
- \cyrr \CYRR
- \cyrrdsc \CYRRDSC
- \cyrrhk \CYRRHK
- \cyrrtick \CYRRTICK
- \cyrs \CYRS
- \cyrsacrs \CYRSACRS
- \cyrschwa \CYRSCHWA
- \cyrsdsc \CYRSDSC
- \cyrsemisftsn \CYRSEMISFTSN
- \cyrsftsn \CYRSFTSN
- \cyrsh \CYRSH
- \cyrshch \CYRSHCH
- \cyrshha \CYRSHHA
- \cyrt \CYRT
- \cyrtdsc \CYRTDSC
- \cyrtetse \CYRTETSE
- \cyrtshe \CYRTSHE
- \cyru \CYRU
- \cyrushrt \CYRUSHRT
- }
- { \q_recursion_tail }
- \__tl_change_case_setup:nnnn
- { cyrillic }
- { _iv }
- {
- \cyrv \CYRV
- \cyrw \CYRW
- \cyry \CYRY
- \cyrya \CYRYA
- \cyryat \CYRYAT
- \cyryhcrs \CYRYHCRS
- \cyryi \CYRYI
- \cyryo \CYRYO
- \cyryu \CYRYU
- \cyrz \CYRZ
- \cyrzdsc \CYRZDSC
- \cyrzh \CYRZH
- \cyrzhdsc \CYRZHDSC
- }
- { \q_recursion_tail }
- \__tl_change_case_setup:nnnn
- { greek }
- { }
- {
- \textalpha \textAlpha
- \textbeta \textBeta
- \textchi \textChi
- \textdelta \textDelta
- \textdigamma \textDigamma
- \texteta \textEta
- \textepsilon \textEpsilon
- \textgamma \textGamma
- \textiota \textIota
- \textkappa \textKappa
- \textlambda \textLambda
- \textmu \textMu
- \textnu \textNu
- \textomega \textOmega
- \textomicron \textOmicron
- \textphi \textPhi
- \textpi \textPi
- \textpsi \textPsi
- \textqoppa \textQoppa
- \textrho \textRho
- \textsampi \textSampi
- \textautosigma \textSigma
- \textstigma \textStigma
- \texttheta \textTheta
- \texttau \textTau
- \textupsilon \textUpsilon
- \textxi \textXi
- \textzeta \textZeta
- \textsigma \textSigma
- \textvarsigma \textSigma
- \textvarstigma \textStigma
- }
- { \textsigma }
- \tl_const:Nn \c__tl_change_case_acc_upper_tl
- {
- \accdasia { \exp_stop_f: \LGR@accdropped }
- \accdasiaoxia { \exp_stop_f: \LGR@hiatus }
- \accdasiavaria { \exp_stop_f: \LGR@accdropped }
- \accdasiaperispomeni { \exp_stop_f: \LGR@accdropped }
- \accpsili { \exp_stop_f: \LGR@hiatus }
- \accpsilioxia { \exp_stop_f: \LGR@hiatus }
- \accpsilivaria { \exp_stop_f: \LGR@hiatus }
- \accpsiliperispomeni { \exp_stop_f: \LGR@accdropped }
- \acctonos { \exp_stop_f: \LGR@hiatus }
- \accvaria { \exp_stop_f: \LGR@accdropped }
- \accdialytikatonos { \exp_stop_f: \LGR@accDialytika }
- \accdialytikavaria { \exp_stop_f: \LGR@accDialytika }
- \accdialytikaperispomeni { \exp_stop_f: \LGR@accDialytika }
- \accperispomeni { \exp_stop_f: \LGR@accdropped }
- }
- \tl_const:Nn \c__tl_change_case_acc_lower_tl { }
- \tl_const:Nn \c__tl_change_case_misc_upper_tl
- {
- \ypogegrammeni { \exp_stop_f: \prosgegrammeni }
- \abreve { \exp_stop_f: \Abreve }
- \acircumflex { \exp_stop_f: \Acircumflex }
- \ecircumflex { \exp_stop_f: \Ecircumflex }
- \ocircumflex { \exp_stop_f: \Ocircumflex }
- \ohorn { \exp_stop_f: \Ohorn }
- \uhorn { \exp_stop_f: \Uhorn }
- }
- \tl_const:Nn \c__tl_change_case_misc_lower_tl
- {
- \prosgegrammeni { \exp_stop_f: \ypogegrammeni }
- \Abreve { \exp_stop_f: \abreve }
- \Acircumflex { \exp_stop_f: \acircumflex }
- \Ecircumflex { \exp_stop_f: \ecircumflex }
- \Ocircumflex { \exp_stop_f: \ocircumflex }
- \Ohorn { \exp_stop_f: \ohorn }
- \Uhorn { \exp_stop_f: \uhorn }
- \ABREVE { \exp_stop_f: \abreve }
- \ACIRCUMFLEX { \exp_stop_f: \acircumflex }
- \ECIRCUMFLEX { \exp_stop_f: \ecircumflex }
- \OCIRCUMFLEX { \exp_stop_f: \ocircumflex }
- \OHORN { \exp_stop_f: \ohorn }
- \UHORN { \exp_stop_f: \uhorn }
- }
-\group_end:
\cs_new_protected_nopar:Npn \tl_log:N
{ \__msg_log_next: \tl_show:N }
\cs_generate_variant:Nn \tl_log:N { c }
@@ -19096,150 +19255,6 @@
{ \__peek_token_generic:NNT \__peek_execute_branches_N_type: \scan_stop: }
\cs_new_protected_nopar:Npn \peek_N_type:F
{ \__peek_token_generic:NNF \__peek_execute_branches_N_type: \scan_stop: }
-%% File: l3sys.dtx Copyright (C) 2015 The LaTeX3 Project
-%%
-%% It may be distributed and/or modified under the conditions of the
-%% LaTeX Project Public License (LPPL), either version 1.3c of this
-%% license or (at your option) any later version. The latest version
-%% of this license is in the file
-%%
-%% http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%% http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%% Snapshots taken from the repository represent work in progress and may
-%% not work or may contain conflicting material! We therefore ask
-%% people _not_ to put them into distributions, archives, etc. without
-%% prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
-\GetIdInfo$Id: l3sys.dtx 6087 2015-09-25 10:29:53Z joseph $
- {L3 Experimental system/runtime functions}
-\str_const:Nx \c_sys_jobname_str { \tex_jobname:D }
-\int_const:Nn \c_sys_minute_int
- { \int_mod:nn { \tex_time:D } { 60 } }
-\int_const:Nn \c_sys_hour_int
- { \int_div_truncate:nn { \tex_time:D } { 60 } }
-\int_const:Nn \c_sys_day_int { \tex_day:D }
-\int_const:Nn \c_sys_month_int { \tex_month:D }
-\int_const:Nn \c_sys_year_int { \tex_year:D }
-\clist_map_inline:nn { lua , pdf , p , up , xe }
- {
- \cs_new_eq:cN { sys_if_engine_ #1 tex:T } \use_none:n
- \cs_new_eq:cN { sys_if_engine_ #1 tex:F } \use:n
- \cs_new_eq:cN { sys_if_engine_ #1 tex:TF } \use_ii:nn
- \cs_new_eq:cN { sys_if_engine_ #1 tex_p: } \c_false_bool
- }
-\cs_if_exist:NT \luatex_luatexversion:D
- {
- \cs_gset_eq:NN \sys_if_engine_luatex:T \use:n
- \cs_gset_eq:NN \sys_if_engine_luatex:F \use_none:n
- \cs_gset_eq:NN \sys_if_engine_luatex:TF \use_i:nn
- \cs_gset_eq:NN \sys_if_engine_luatex_p: \c_true_bool
- \str_const:Nn \c_sys_engine_str { luatex }
- }
-\cs_if_exist:NT \pdftex_pdftexversion:D
- {
- \cs_gset_eq:NN \sys_if_engine_pdftex:T \use:n
- \cs_gset_eq:NN \sys_if_engine_pdftex:F \use_none:n
- \cs_gset_eq:NN \sys_if_engine_pdftex:TF \use_i:nn
- \cs_gset_eq:NN \sys_if_engine_pdftex_p: \c_true_bool
- \str_const:Nn \c_sys_engine_str { pdftex }
- }
-\cs_if_exist:NT \ptex_kanjiskip:D
- {
- \bool_if:nTF
- {
- \cs_if_exist_p:N \uptex_disablecjktoken:D &&
- \int_compare_p:nNn { \ptex_jis:D "2121 } = { "3000 }
- }
- {
- \cs_gset_eq:NN \sys_if_engine_uptex:T \use:n
- \cs_gset_eq:NN \sys_if_engine_uptex:F \use_none:n
- \cs_gset_eq:NN \sys_if_engine_uptex:TF \use_i:nn
- \cs_gset_eq:NN \sys_if_engine_uptex_p: \c_true_bool
- \str_const:Nn \c_sys_engine_str { uptex }
- }
- {
- \cs_gset_eq:NN \sys_if_engine_ptex:T \use:n
- \cs_gset_eq:NN \sys_if_engine_ptex:F \use_none:n
- \cs_gset_eq:NN \sys_if_engine_ptex:TF \use_i:nn
- \cs_gset_eq:NN \sys_if_engine_ptex_p: \c_true_bool
- \str_const:Nn \c_sys_engine_str { ptex }
- }
- }
-\cs_if_exist:NT \xetex_XeTeXversion:D
- {
- \cs_gset_eq:NN \sys_if_engine_xetex:T \use:n
- \cs_gset_eq:NN \sys_if_engine_xetex:F \use_none:n
- \cs_gset_eq:NN \sys_if_engine_xetex:TF \use_i:nn
- \cs_gset_eq:NN \sys_if_engine_xetex_p: \c_true_bool
- \str_const:Nn \c_sys_engine_str { xetex }
- }
-\bool_if:nTF
- {
- \cs_if_exist_p:N \pdftex_pdfoutput:D
- && \int_compare_p:nNn \pdftex_pdfoutput:D > \c_zero
- }
- {
- \cs_new_eq:NN \sys_if_output_dvi:T \use_none:n
- \cs_new_eq:NN \sys_if_output_dvi:F \use:n
- \cs_new_eq:NN \sys_if_output_dvi:TF \use_ii:nn
- \cs_new_eq:NN \sys_if_output_dvi_p: \c_false_bool
- \cs_new_eq:NN \sys_if_output_pdf:T \use:n
- \cs_new_eq:NN \sys_if_output_pdf:F \use_none:n
- \cs_new_eq:NN \sys_if_output_pdf:TF \use_i:nn
- \cs_new_eq:NN \sys_if_output_pdf_p: \c_true_bool
- \str_const:Nn \c_sys_output_str { pdf }
- }
- {
- \cs_new_eq:NN \sys_if_output_dvi:T \use:n
- \cs_new_eq:NN \sys_if_output_dvi:F \use_none:n
- \cs_new_eq:NN \sys_if_output_dvi:TF \use_i:nn
- \cs_new_eq:NN \sys_if_output_dvi_p: \c_true_bool
- \cs_new_eq:NN \sys_if_output_pdf:T \use_none:n
- \cs_new_eq:NN \sys_if_output_pdf:F \use:n
- \cs_new_eq:NN \sys_if_output_pdf:TF \use_ii:nn
- \cs_new_eq:NN \sys_if_output_pdf_p: \c_false_bool
- \str_const:Nn \c_sys_output_str { dvi }
- }
-\prg_new_eq_conditional:NNn \luatex_if_engine: \sys_if_engine_luatex:
- { T , F , TF , p }
-\prg_new_eq_conditional:NNn \xetex_if_engine: \sys_if_engine_xetex:
- { T , F , TF , p }
-\bool_if:nTF
- {
- \sys_if_engine_luatex_p: ||
- \sys_if_engine_xetex_p:
- }
- {
- \cs_new_eq:NN \pdftex_if_engine:T \use_none:n
- \cs_new_eq:NN \pdftex_if_engine:F \use:n
- \cs_new_eq:NN \pdftex_if_engine:TF \use_ii:nn
- \cs_new_eq:NN \pdftex_if_engine_p: \c_false_bool
- }
- {
- \cs_new_eq:NN \pdftex_if_engine:T \use:n
- \cs_new_eq:NN \pdftex_if_engine:F \use_none:n
- \cs_new_eq:NN \pdftex_if_engine:TF \use_i:nn
- \cs_new_eq:NN \pdftex_if_engine_p: \c_true_bool
- }
-\cs_set_eq:NN \c_job_name_tl \c_sys_jobname_str
%% File: l3luatex.dtx Copyright (C) 2010-2015 The LaTeX3 Project
%%
%% It may be distributed and/or modified under the conditions of the
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
index 7227ae2dc85..ebc170e2f19 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
@@ -13,7 +13,7 @@
%%
%% Do not distribute a modified version of this file.
%%
-%% File: expl3.dtx Copyright (C) 1990-2015 The LaTeX3 Project
+%% File: expl3.dtx Copyright (C) 1990-2016 The LaTeX3 Project
%%
%% It may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -47,8 +47,8 @@
%% -----------------------------------------------------------------------
\def\ExplFileName{expl3}%
\def\ExplFileDescription{L3 programming layer}%
-\def\ExplFileDate{2016/01/03}%
-\def\ExplFileVersion{6358}%
+\def\ExplFileDate{2016/01/19}%
+\def\ExplFileVersion{6377}%
\let\ExplLoaderFileVersion\ExplFileVersion
\begingroup
\def\tempa{LaTeX2e}%
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
index cb9e99bb02c..843acbfeca7 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
@@ -13,7 +13,7 @@
%%
%% Do not distribute a modified version of this file.
%%
-%% File: expl3.dtx Copyright (C) 1990-2015 The LaTeX3 Project
+%% File: expl3.dtx Copyright (C) 1990-2016 The LaTeX3 Project
%%
%% It may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -47,8 +47,8 @@
%% -----------------------------------------------------------------------
\def\ExplFileName{expl3}%
\def\ExplFileDescription{L3 programming layer}%
-\def\ExplFileDate{2016/01/03}%
-\def\ExplFileVersion{6358}%
+\def\ExplFileDate{2016/01/19}%
+\def\ExplFileVersion{6377}%
\let\ExplLoaderFileVersion\ExplFileVersion
\ProvidesPackage{\ExplFileName}
[%
diff --git a/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty b/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty
index d80a6bf71ea..7a73a3992b0 100644
--- a/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty
+++ b/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty
@@ -13,7 +13,7 @@
%%
%% Do not distribute a modified version of this file.
%%
-%% File: l3keys2e.dtx (C) Copyright 2009,2011-2015 The LaTeX3 Project
+%% File: l3keys2e.dtx (C) Copyright 2009,2011-2016 The LaTeX3 Project
%%
%% It may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -46,8 +46,8 @@
%%
%% -----------------------------------------------------------------------
%%
-\RequirePackage{expl3}[2015/12/20]
-\@ifpackagelater{expl3}{2015/12/20}
+\RequirePackage{expl3}[2016/01/19]
+\@ifpackagelater{expl3}{2016/01/19}
{}
{%
\PackageError{l3keys2e}{Support package l3kernel too old}
@@ -61,8 +61,8 @@
}
\def\ExplFileName{l3keys2e}
\def\ExplFileDescription{LaTeX2e option processing using LaTeX3 keys}
-\def\ExplFileDate{2015/12/20}
-\def\ExplFileVersion{6326}
+\def\ExplFileDate{2016/01/19}
+\def\ExplFileVersion{6377}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
\cs_generate_variant:Nn \clist_put_right:Nn { Nv }
diff --git a/Master/texmf-dist/tex/latex/l3packages/xfrac/xfrac.sty b/Master/texmf-dist/tex/latex/l3packages/xfrac/xfrac.sty
index 55c4141728d..46caf08faf1 100644
--- a/Master/texmf-dist/tex/latex/l3packages/xfrac/xfrac.sty
+++ b/Master/texmf-dist/tex/latex/l3packages/xfrac/xfrac.sty
@@ -14,7 +14,7 @@
%% Do not distribute a modified version of this file.
%%
%% File: xfrac.dtx Copyright (C) 2004, 2008-2010 Morten Hoegholm
-%% (C) 2011,2012,2014,2015 The LaTeX3 Project
+%% (C) 2011,2012,2014-2016 The LaTeX3 Project
%%
%% It may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -47,8 +47,8 @@
%%
%% -----------------------------------------------------------------------
%%
-\RequirePackage{expl3}[2015/12/20]
-\@ifpackagelater{expl3}{2015/12/20}
+\RequirePackage{expl3}[2016/01/19]
+\@ifpackagelater{expl3}{2016/01/19}
{}
{%
\PackageError{xfrac}{Support package l3kernel too old}
@@ -63,8 +63,8 @@
\RequirePackage{amstext,graphicx,l3keys2e,textcomp,xparse,xtemplate}
\def\ExplFileName{xfrac}
\def\ExplFileDescription{L3 Experimental split-level fractions}
-\def\ExplFileDate{2015/12/20}
-\def\ExplFileVersion{6326}
+\def\ExplFileDate{2016/01/19}
+\def\ExplFileVersion{6377}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
\keys_define:nn { xfrac }
diff --git a/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty b/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
index db91163ba0c..01b6243fff0 100644
--- a/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
+++ b/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
@@ -17,7 +17,7 @@
%% David Carlisle
%% (C) Copyright 2004-2008 Frank Mittelbach,
%% The LaTeX3 Project
-%% (C) Copyright 2009-2015 The LaTeX3 Project
+%% (C) Copyright 2009-2016 The LaTeX3 Project
%%
%% It may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -50,8 +50,8 @@
%%
%% -----------------------------------------------------------------------
%%
-\RequirePackage{expl3}[2015/12/20]
-\@ifpackagelater{expl3}{2015/12/20}
+\RequirePackage{expl3}[2016/01/19]
+\@ifpackagelater{expl3}{2016/01/19}
{}
{%
\PackageError{xparse}{Support package l3kernel too old}
@@ -65,8 +65,8 @@
}
\def\ExplFileName{xparse}
\def\ExplFileDescription{L3 Experimental document command parser}
-\def\ExplFileDate{2015/12/20}
-\def\ExplFileVersion{6326}
+\def\ExplFileDate{2016/01/19}
+\def\ExplFileVersion{6377}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
\tl_const:Nx \c__xparse_no_value_tl
diff --git a/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty b/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty
index 653fa0e2249..00e7c3e19b1 100644
--- a/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty
+++ b/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty
@@ -17,7 +17,7 @@
%% David Carlisle
%% (C) Copyright 2004-2010 Frank Mittelbach,
%% The LaTeX3 Project
-%% (C) Copyright 2011-2015 The LaTeX3 Project
+%% (C) Copyright 2011-2016 The LaTeX3 Project
%%
%% It may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -50,8 +50,8 @@
%%
%% -----------------------------------------------------------------------
%%
-\RequirePackage{expl3}[2015/12/20]
-\@ifpackagelater{expl3}{2015/12/20}
+\RequirePackage{expl3}[2016/01/19]
+\@ifpackagelater{expl3}{2016/01/19}
{}
{%
\PackageError{xtemplate}{Support package l3kernel too old}
@@ -65,8 +65,8 @@
}
\def\ExplFileName{xtemplate}
\def\ExplFileDescription{L3 Experimental prototype document functions}
-\def\ExplFileDate{2015/12/20}
-\def\ExplFileVersion{6326}
+\def\ExplFileDate{2016/01/19}
+\def\ExplFileVersion{6377}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
\tl_const:Nn \c__xtemplate_code_root_tl { template~code~>~ }