summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/expl3
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/expl3')
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3basics.sty13
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3box.sty25
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3calc.sty175
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3chk.sty4
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3clist.sty25
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3doc.cls9
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3expan.sty109
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3int.sty49
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3io.sty4
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3keyval.sty4
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3messages.sty43
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3names.sty167
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3num.sty15
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3precom.sty4
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3prg.sty102
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3prop.sty202
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3quark.sty46
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3seq.sty4
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3skip.sty15
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3tlp.sty140
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3token.sty24
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3toks.sty10
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3xref.sty4
-rw-r--r--Master/texmf-dist/tex/latex/expl3/lbase.ini65
-rw-r--r--Master/texmf-dist/tex/latex/expl3/lbase.ltx921
25 files changed, 1484 insertions, 695 deletions
diff --git a/Master/texmf-dist/tex/latex/expl3/l3basics.sty b/Master/texmf-dist/tex/latex/expl3/l3basics.sty
index 161ac199227..d4e9c2abe9e 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3basics.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3basics.sty
@@ -48,8 +48,10 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3basics.dtx 583 2006-12-12 17:26:44Z morten $
+\GetIdInfo$Id: l3basics.dtx 702 2007-11-27 14:21:49Z morten $
{L3 Experimental basic definitions}
+\ProvidesExplPackage
+ {\filename}{\filedate}{\fileversion}{\filedescription}
\tex_let:D \let:NwN \tex_let:D
\let:NwN \if_true: \tex_iftrue:D
\let:NwN \if_false: \tex_iffalse:D
@@ -417,6 +419,8 @@
\def_long_new:Npn \def_test_function_aux:Nnnn #1#2#3#4{
#1 {#2TF} #3 {#4
\exp_after:NN\use_arg_i:nn\else:\exp_after:NN\use_arg_ii:nn\fi:}
+ #1 {#2FT} #3 {#4
+ \exp_after:NN\use_arg_ii:nn\else:\exp_after:NN\use_arg_i:nn\fi:}
#1 {#2T} #3 {#4
\else:\exp_after:NN\use_none:nn\fi:\use_arg_i:n}
#1 {#2F} #3 {#4
@@ -424,6 +428,8 @@
\def_long_new:Npn \def_test_function_aux:Nnnx #1#2#3#4{
#1 {#2TF} #3 {#4
\exp_not:n{\exp_after:NN\use_arg_i:nn\else:\exp_after:NN\use_arg_ii:nn\fi:}}
+ #1 {#2FT} #3 {#4
+ \exp_not:n{\exp_after:NN\use_arg_ii:nn\else:\exp_after:NN\use_arg_i:nn\fi:}}
#1 {#2T} #3 {#4
\exp_not:n{\else:\exp_after:NN\use_none:nn\fi:\use_arg_i:n}}
#1 {#2F} #3 {#4
@@ -473,7 +479,7 @@
\def_long_test_function_new:npn {cs_if_really_exist:c}#1{
\if_cs_exist:w #1\cs_end:}
\def_new:Npn \cs_gundefine:N #1{\glet:NN #1\c_undefined}
-\def_test_function_new:npn {engine_aleph:}{\if_cs_exist:N \aleph_textdir:D}
+\def_test_function_new:npn {engine_if_aleph:}{\if_cs_exist:N \aleph_textdir:D}
\def_new:Npn \use:c #1{\cs:w #1\cs_end:}
\def_new:Npn \cs_use:c #1 { \cs:w#1\cs_end: }
\def_new:Npn \use:cc #1#2
@@ -494,7 +500,8 @@
\def_long_new:Npn \use_arg_i_delimit_by_q_stop:nw #1#2\q_stop{#1}
\def_long_new:Npn \use_arg_i_after_fi:nw #1\fi:{\fi: #1}
\def_long_new:Npn \use_arg_i_after_else:nw #1\else:#2\fi:{\fi: #1}
-\def_long_new:Npn \use_arg_i_after_or:nw #1\or: #2\fi: {\or:\fi:#1}
+\def_long_new:Npn \use_arg_i_after_or:nw #1\or: #2\fi: {\fi:#1}
+\def_long_new:Npn \use_arg_i_after_orelse:nw #1 #2#3\fi: {\fi:#1}
\def_long_new:NNn \use_none:nn 2{}
\def_long_new:NNn \use_none:nnn 3{}
\def_long_new:NNn \use_none:nnnn 4{}
diff --git a/Master/texmf-dist/tex/latex/expl3/l3box.sty b/Master/texmf-dist/tex/latex/expl3/l3box.sty
index e155345519f..be463eacf81 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3box.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3box.sty
@@ -15,7 +15,7 @@
%% Do not distribute a modified version of this file.
%%
%%
-%% File: l3box.dtx Copyright (C) 2005-2006 LaTeX3 project
+%% File: l3box.dtx Copyright (C) 2005-2007 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
@@ -48,14 +48,19 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3box.dtx 573 2006-08-21 20:59:37Z morten $
+\GetIdInfo$Id: l3box.dtx 718 2007-12-16 22:59:58Z morten $
{L3 Experimental Box module}
-\RequirePackage{l3prg}\par
+\ProvidesExplPackage
+ {\filename}{\filedate}{\fileversion}{\filedescription}
+\RequirePackage{l3prg,l3token}\par
\let_new:NN \box_new:N \newbox
\def_new:Npn \box_new:c {\exp_args:Nc \box_new:N}
\let_new:NN \if_hbox:N \tex_ifhbox:D
\let_new:NN \if_vbox:N \tex_ifvbox:D
\let_new:NN \if_box_empty:N \tex_ifvoid:D
+\def_new:Npn \box_if_empty_p:N #1{
+ \if_box_empty:N #1 \c_true \else: \c_false \fi:}
+\def_new:Npn \box_if_empty_p:c {\exp_args:Nc \box_if_empty_p:N}
\def_test_function_new:npn {box_if_empty:N}#1{\if_box_empty:N #1}
\def_new:Npn \box_if_empty:cTF {\exp_args:Nc \box_if_empty:NTF}
\def_new:Npn \box_if_empty:cT {\exp_args:Nc \box_if_empty:NT}
@@ -68,11 +73,11 @@
\def_new:Npn \box_gset_eq:cN {\exp_args:Nc \box_gset_eq:NN}
\def_new:Npn \box_gset_eq:Nc {\exp_args:NNc \box_gset_eq:NN}
\def_new:Npn \box_gset_eq:cc {\exp_args:Ncc \box_gset_eq:NN}
-\let_new:NN \R_previous_box \tex_lastbox:D
-\def_new:Npn \box_set_to_previous:N #1{\tex_setbox:D#1\R_previous_box}
-\def_new:Npn \box_set_to_previous:c {\exp_args:Nc \box_set_to_previous:N}
-\def_new:Npn \box_gset_to_previous:N {\pref_global:D \box_set_to_previous:N}
-\def_new:Npn \box_gset_to_previous:c {\exp_args:Nc \box_gset_to_previous:N}
+\let_new:NN \R_last_box \tex_lastbox:D
+\def_new:Npn \box_set_to_last:N #1{\tex_setbox:D#1\R_last_box}
+\def_new:Npn \box_set_to_last:c {\exp_args:Nc \box_set_to_last:N}
+\def_new:Npn \box_gset_to_last:N {\pref_global:D \box_set_to_last:N}
+\def_new:Npn \box_gset_to_last:c {\exp_args:Nc \box_gset_to_last:N}
\def_long_new:Npn \box_move_left:nn #1#2{\tex_moveleft:D\dim_eval:n{#1}{#2}}
\def_long_new:Npn \box_move_right:nn #1#2{\tex_moveright:D\dim_eval:n{#1}{#2}}
\def_long_new:Npn \box_move_up:nn #1#2{\tex_raise:D\dim_eval:n{#1}{#2}}
@@ -134,9 +139,13 @@
\def_new:Npn \hbox_gset_to_wd:cnn{\exp_args:Nc \hbox_gset_to_wd:Nnn }
\def_new:Npn \hbox_set_inline_begin:N #1 {
\tex_setbox:D #1 \tex_hbox:D \c_group_begin_token }
+\def:Npn \hbox_set_inline_begin:c {\exp_args:Nc
+ \hbox_set_inline_begin:N}
\let_new:NN \hbox_set_inline_end: \c_group_end_token
\def_new:Npn \hbox_gset_inline_begin:N {
\pref_global:D \hbox_set_inline_begin:N }
+\def:Npn \hbox_gset_inline_begin:c {\exp_args:Nc
+ \hbox_gset_inline_begin:N }
\let_new:NN \hbox_gset_inline_end: \c_group_end_token
\def_long_new:Npn \hbox_to_wd:nn #1#2 {\tex_hbox:D to #1 {#2}}
\def_long_new:Npn \hbox_to_zero:n #1 {\tex_hbox:D to \c_zero_skip {#1}}
diff --git a/Master/texmf-dist/tex/latex/expl3/l3calc.sty b/Master/texmf-dist/tex/latex/expl3/l3calc.sty
index d3d2ef07937..6d6239ac0b6 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3calc.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3calc.sty
@@ -48,8 +48,10 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3calc.dtx 573 2006-08-21 20:59:37Z morten $
+\GetIdInfo$Id: l3calc.dtx 621 2007-09-01 20:14:19Z morten $
{L3 Experimental calc module}
+\ProvidesExplPackage
+ {\filename}{\filedate}{\fileversion}{\filedescription}
\RequirePackage{l3int}
\RequirePackage{l3skip}
\RequirePackage{l3box}
@@ -69,86 +71,98 @@
\muskip_new:N \g_calc_A_muskip
\muskip_new:N \l_calc_B_muskip
\muskip_new:N \l_calc_C_muskip
-\def_long_new:Npn \calc_assign_generic:NNNNNn#1#2#3#4#5#6{
- \let:NN\g_calc_A_register#2\let:NN\l_calc_B_register#3
+\def_long_new:Npn \calc_assign_generic:NNNNnn#1#2#3#4#5#6{
+ \let:NN\g_calc_A_register#2
+ \let:NN\l_calc_B_register#3
\int_set:Nn \l_calc_current_type_int {#1}
- \tlp_set:Nx\l_calc_expression_tlp{#6}
- \exp_after:NN\calc_open:w\exp_after:NN(\l_calc_expression_tlp!
+ \group_begin:
+ \let:NN \real \calc_real:n
+ \let:NN \ratio\calc_ratio:nn
+ \tlp_set:Nx\l_calc_expression_tlp{#6}
+ \exp_after:NN
+ \group_end:
+ \exp_after:NN\calc_open:w\exp_after:NN(\l_calc_expression_tlp !
\pref_global:D\g_calc_A_register\l_calc_B_register
\group_end:
- #4#5\l_calc_B_register
+ #4{#5}\l_calc_B_register
}
\def_new:Npn\calc_int_set:Nn{
- \calc_assign_generic:NNNNNn\c_zero\g_calc_A_int\l_calc_B_int\int_set:Nn
+ \calc_assign_generic:NNNNnn\c_zero\g_calc_A_int\l_calc_B_int\int_set:Nn
}
\def_new:Npn\calc_int_gset:Nn{
- \calc_assign_generic:NNNNNn\c_zero\g_calc_A_int\l_calc_B_int\int_gset:Nn
+ \calc_assign_generic:NNNNnn\c_zero\g_calc_A_int\l_calc_B_int\int_gset:Nn
}
\def_new:Npn\calc_int_add:Nn{
- \calc_assign_generic:NNNNNn\c_zero\g_calc_A_int\l_calc_B_int\int_add:Nn
+ \calc_assign_generic:NNNNnn\c_zero\g_calc_A_int\l_calc_B_int\int_add:Nn
}
\def_new:Npn\calc_int_gadd:Nn{
- \calc_assign_generic:NNNNNn\c_zero\g_calc_A_int\l_calc_B_int\int_gadd:Nn
+ \calc_assign_generic:NNNNnn\c_zero\g_calc_A_int\l_calc_B_int\int_gadd:Nn
}
\def_new:Npn\calc_int_sub:Nn{
- \calc_assign_generic:NNNNNn\c_zero\g_calc_A_int\l_calc_B_int\int_sub:Nn
+ \calc_assign_generic:NNNNnn\c_zero\g_calc_A_int\l_calc_B_int\int_sub:Nn
}
\def_new:Npn\calc_int_gsub:Nn{
- \calc_assign_generic:NNNNNn\c_zero\g_calc_A_int\l_calc_B_int\int_gsub:Nn
+ \calc_assign_generic:NNNNnn\c_zero\g_calc_A_int\l_calc_B_int\int_gsub:Nn
}
\def_new:Npn\calc_dim_set:Nn{
- \calc_assign_generic:NNNNNn\c_one\g_calc_A_dim\l_calc_B_dim\dim_set:Nn
+ \calc_assign_generic:NNNNnn\c_one\g_calc_A_dim\l_calc_B_dim\dim_set:Nn
}
\def_new:Npn\calc_dim_gset:Nn{
- \calc_assign_generic:NNNNNn\c_one\g_calc_A_dim\l_calc_B_dim\dim_gset:Nn
+ \calc_assign_generic:NNNNnn\c_one\g_calc_A_dim\l_calc_B_dim\dim_gset:Nn
}
\def_new:Npn\calc_dim_add:Nn{
- \calc_assign_generic:NNNNNn\c_one\g_calc_A_dim\l_calc_B_dim\dim_add:Nn
+ \calc_assign_generic:NNNNnn\c_one\g_calc_A_dim\l_calc_B_dim\dim_add:Nn
}
\def_new:Npn\calc_dim_gadd:Nn{
- \calc_assign_generic:NNNNNn\c_one\g_calc_A_dim\l_calc_B_dim\dim_gadd:Nn
+ \calc_assign_generic:NNNNnn\c_one\g_calc_A_dim\l_calc_B_dim\dim_gadd:Nn
}
\def_new:Npn\calc_dim_sub:Nn{
- \calc_assign_generic:NNNNNn\c_one\g_calc_A_int\l_calc_B_int\dim_sub:Nn
+ \calc_assign_generic:NNNNnn\c_one\g_calc_A_int\l_calc_B_int\dim_sub:Nn
}
\def_new:Npn\calc_dim_gsub:Nn{
- \calc_assign_generic:NNNNNn\c_one\g_calc_A_int\l_calc_B_int\dim_gsub:Nn
+ \calc_assign_generic:NNNNnn\c_one\g_calc_A_int\l_calc_B_int\dim_gsub:Nn
}
\def_new:Npn\calc_skip_set:Nn{
- \calc_assign_generic:NNNNNn\c_two\g_calc_A_dim\l_calc_B_dim\skip_set:Nn
+ \calc_assign_generic:NNNNnn\c_two\g_calc_A_skip\l_calc_B_skip\skip_set:Nn
}
\def_new:Npn\calc_skip_gset:Nn{
- \calc_assign_generic:NNNNNn\c_two\g_calc_A_dim\l_calc_B_dim\skip_gset:Nn
+ \calc_assign_generic:NNNNnn\c_two\g_calc_A_skip\l_calc_B_skip\skip_gset:Nn
}
\def_new:Npn\calc_skip_add:Nn{
- \calc_assign_generic:NNNNNn\c_two\g_calc_A_dim\l_calc_B_dim\skip_add:Nn
+ \calc_assign_generic:NNNNnn\c_two\g_calc_A_skip\l_calc_B_skip\skip_add:Nn
}
\def_new:Npn\calc_skip_gadd:Nn{
- \calc_assign_generic:NNNNNn\c_two\g_calc_A_dim\l_calc_B_dim\skip_gadd:Nn
+ \calc_assign_generic:NNNNnn\c_two\g_calc_A_skip\l_calc_B_skip\skip_gadd:Nn
}
\def_new:Npn\calc_skip_sub:Nn{
- \calc_assign_generic:NNNNNn\c_two\g_calc_A_dim\l_calc_B_dim\skip_sub:Nn
+ \calc_assign_generic:NNNNnn\c_two\g_calc_A_skip\l_calc_B_skip\skip_sub:Nn
}
\def_new:Npn\calc_skip_gsub:Nn{
- \calc_assign_generic:NNNNNn\c_two\g_calc_A_dim\l_calc_B_dim\skip_gsub:Nn
+ \calc_assign_generic:NNNNnn\c_two\g_calc_A_skip\l_calc_B_skip\skip_gsub:Nn
}
\def_new:Npn\calc_muskip_set:Nn{
- \calc_assign_generic:NNNNNn\c_three\g_calc_A_dim\l_calc_B_dim\muskip_set:Nn
+ \calc_assign_generic:NNNNnn\c_three\g_calc_A_muskip\l_calc_B_muskip
+ \muskip_set:Nn
}
\def_new:Npn\calc_muskip_gset:Nn{
- \calc_assign_generic:NNNNNn\c_three\g_calc_A_dim\l_calc_B_dim\muskip_gset:Nn
+ \calc_assign_generic:NNNNnn\c_three\g_calc_A_muskip\l_calc_B_muskip
+ \muskip_gset:Nn
}
\def_new:Npn\calc_muskip_add:Nn{
- \calc_assign_generic:NNNNNn\c_three\g_calc_A_dim\l_calc_B_dim\muskip_add:Nn
+ \calc_assign_generic:NNNNnn\c_three\g_calc_A_muskip\l_calc_B_muskip
+ \muskip_add:Nn
}
\def_new:Npn\calc_muskip_gadd:Nn{
- \calc_assign_generic:NNNNNn\c_three\g_calc_A_dim\l_calc_B_dim\muskip_gadd:Nn
+ \calc_assign_generic:NNNNnn\c_three\g_calc_A_muskip\l_calc_B_muskip
+ \muskip_gadd:Nn
}
\def_new:Npn\calc_muskip_sub:Nn{
- \calc_assign_generic:NNNNNn\c_three\g_calc_A_dim\l_calc_B_dim\muskip_add:Nn
+ \calc_assign_generic:NNNNnn\c_three\g_calc_A_muskip\l_calc_B_muskip
+ \muskip_add:Nn
}
\def_new:Npn\calc_muskip_gsub:Nn{
- \calc_assign_generic:NNNNNn\c_three\g_calc_A_dim\l_calc_B_dim\muskip_gadd:Nn
+ \calc_assign_generic:NNNNnn\c_three\g_calc_A_muskip\l_calc_B_muskip
+ \muskip_gadd:Nn
}
\def_new:Npn \calc_pre_scan:N #1{
\if_meaning:NN(#1
@@ -184,8 +198,11 @@
\if_meaning:NN#1*\let:NN\calc_next:w\calc_multiply:N \else:
\if_meaning:NN#1/\let:NN\calc_next:w\calc_divide:N \else:
\if_meaning:NN#1)\let:NN\calc_next:w\calc_close: \else:
- \let:NN \calc_next:w \scan_stop:
- \calc_error:N#1
+ \if_meaning:NN#1\scan_stop:\let:NN\calc_next:w\calc_post_scan:N
+ \else:
+ \let:NN \calc_next:w \use_noop:
+ \calc_error:N#1
+ \fi:
\fi:
\fi:
\fi:
@@ -257,6 +274,7 @@
\group_begin:
\let:NN\g_calc_A_register\g_calc_A_int
\let:NN\l_calc_B_register\l_calc_B_int
+ \int_zero:N \l_calc_current_type_int
\group_execute_after:N#1\calc_pre_scan:N
}
\def_new:Npn\calc_multiply_B_by_A:{
@@ -288,17 +306,17 @@
\def:Npn \calc_calculate_box_size_aux:n#1{ + #1\l_tmpa_box}
\def_protected_long:Npn \calc_textsize:Nn#1#2{
\group_begin:
- \let:NN\widthof\box_wd:N
- \let:NN\heightof\box_ht:N
- \let:NN\depthof\box_dp:N
- \def:Npn\totalheightof{\box_ht:N\box_dp:N}
+ \let:NN\calc_widthof_aux:n\box_wd:N
+ \let:NN\calc_heightof_aux:n\box_ht:N
+ \let:NN\calc_depthof_aux:n\box_dp:N
+ \def:Npn\calc_totalheightof_aux:n{\box_ht:N\box_dp:N}
\exp_args:No\calc_calculate_box_size:nnn{#1}
{\dim_gset:Nn\g_calc_A_register}
{
- \let:NN \depthof\calc_depthof:n
- \let:NN \widthof\calc_widthof:n
- \let:NN \heightof\calc_heightof:n
- \let:NN \totalheightof\calc_totalheightof:n
+ \let:NN \calc_depthof_aux:n \calc_depthof_auxi:n
+ \let:NN \calc_widthof_aux:n \calc_widthof_auxi:n
+ \let:NN \calc_heightof_aux:n \calc_heightof_auxi:n
+ \let:NN \calc_totalheightof_aux:n \calc_totalheightof_auxi:n
#2
}
\group_end:
@@ -403,29 +421,84 @@
\def_long_new:Npn \calc_minof:nn#1#2{
\calc_maxmin_operation:Nnn < \exp_not:n{{#1}{#2}}
}
-\let_new:NN \maxof \calc_maxof:nn
-\let_new:NN \minof \calc_minof:nn
+\let:NN \maxof \calc_maxof:nn
+\let:NN \minof \calc_minof:nn
\def_long_new:Npn \calc_widthof:n#1{
- \calc_textsize:Nn \exp_not:N\widthof\exp_not:n{{#1}}
+ \calc_textsize:Nn \exp_not:N\calc_widthof_aux:n\exp_not:n{{#1}}
}
\def_long_new:Npn \calc_heightof:n#1{
- \calc_textsize:Nn \exp_not:N\heightof\exp_not:n{{#1}}
+ \calc_textsize:Nn \exp_not:N\calc_heightof_aux:n\exp_not:n{{#1}}
}
\def_long_new:Npn \calc_depthof:n#1{
- \calc_textsize:Nn \exp_not:N\depthof\exp_not:n{{#1}}
+ \calc_textsize:Nn \exp_not:N\calc_depthof_aux:n\exp_not:n{{#1}}
}
\def_long_new:Npn \calc_totalheightof:n#1{
- \calc_textsize:Nn \exp_not:N\totalheightof\exp_not:n{{#1}}
+ \calc_textsize:Nn \exp_not:N\calc_totalheightof_aux:n \exp_not:n{{#1}}
+}
+\def_long_new:Npn \calc_widthof_aux:n #1{
+ \exp_not:N\calc_widthof_aux:n\exp_not:n{{#1}}
+}
+\let_new:NN \calc_widthof_auxi:n \calc_widthof_aux:n
+\def_long_new:Npn \calc_depthof_aux:n #1{
+ \exp_not:N\calc_depthof_aux:n\exp_not:n{{#1}}
+}
+\let_new:NN \calc_depthof_auxi:n \calc_depthof_aux:n
+\def_long_new:Npn \calc_heightof_aux:n #1{
+ \exp_not:N\calc_heightof_aux:n\exp_not:n{{#1}}
}
+\let_new:NN \calc_heightof_auxi:n \calc_heightof_aux:n
+\def_long_new:Npn \calc_totalheightof_aux:n #1{
+ \exp_not:N\calc_totalheightof_aux:n\exp_not:n{{#1}}
+}
+\let_new:NN \calc_totalheightof_auxi:n \calc_totalheightof_aux:n
+\def_long_new:Npn \calc_ratio:nn#1#2{
+ \calc_ratio_multiply:nn\exp_not:n{{#1}{#2}}}
+\def_new:Npn \calc_real:n {\calc_real_evaluate:nn}
\let:NN \depthof\calc_depthof:n
\let:NN \widthof\calc_widthof:n
\let:NN \heightof\calc_heightof:n
\let:NN \totalheightof\calc_totalheightof:n
-\def_long_new:Npn \calc_ratio:nn#1#2{
- \calc_ratio_multiply:nn\exp_not:n{{#1}{#2}}}
-\let_new:NN \calc_real:n \calc_real_evaluate:nn
-\let_new:NN \ratio\calc_ratio:nn
-\let_new:NN \real\calc_real:n
+%%\let:NN \ratio\calc_ratio:nn
+%%\let:NN \real\calc_real:n
+\def_protected:Npn \setlength{\calc_skip_set:Nn}
+\def_protected:Npn \gsetlength{\calc_skip_gset:Nn}
+\def_protected:Npn \addtolength{\calc_skip_add:Nn}
+\def_protected:Npn \gaddtolength{\calc_skip_gadd:Nn}
+\newif\iffirstchoice@ \firstchoice@true
+\def_protected:Npn \calc_setcounter:nn#1#2{
+ \calc_chk_document_counter:nn{#1}{
+ \exp_args:Nc\calc_int_gset:Nn {c@#1}{#2}
+ }
+}
+\def_protected:Npn \calc_addtocounter:nn#1#2{
+ \iffirstchoice@
+ \calc_chk_document_counter:nn{#1}{
+ \exp_args:Nc\calc_int_gadd:Nn {c@#1}{#2}
+ }
+ \fi:
+}
+\def_protected:Npn \calc_stepcounter:n#1{
+ \iffirstchoice@
+ \calc_chk_document_counter:nn{#1}{
+ \int_gincr:c {c@#1}
+ \group_begin:
+ \let:NN \@elt\@stpelt \cs_use:c{cl@#1}
+ \group_end:
+ }
+ \fi:
+}
+\def_new:Npn \calc_chk_document_counter:nn#1{
+ \cs_if_free:cTF{c@#1}{\@nocounterr {#1}}
+}
+\let:NN \setcounter \calc_setcounter:nn
+\let:NN \addtocounter \calc_addtocounter:nn
+\let:NN \stepcounter \calc_stepcounter:n
+\AtBeginDocument{
+ \let:NN \setcounter \calc_setcounter:nn
+ \let:NN \addtocounter \calc_addtocounter:nn
+ \let:NN \stepcounter \calc_stepcounter:n
+}
+\def:cpn{ver@calc.sty}{2005/08/06}
%%
%%
%% End of file `l3calc.sty'.
diff --git a/Master/texmf-dist/tex/latex/expl3/l3chk.sty b/Master/texmf-dist/tex/latex/expl3/l3chk.sty
index 1c2a8319d85..7900e8409d0 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3chk.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3chk.sty
@@ -49,8 +49,10 @@
%% -----------------------------------------------------------------------
%%
\RequirePackage{l3names}
-\GetIdInfo$Id: l3chk.dtx 573 2006-08-21 20:59:37Z morten $
+\GetIdInfo$Id: l3chk.dtx 621 2007-09-01 20:14:19Z morten $
{L3 Experimental check module}
+\ProvidesExplPackage
+ {\filename}{\filedate}{\fileversion}{\filedescription}
\RequirePackage{l3basics}
\RequirePackage{l3int,l3prg}
\def_new:Npn \chk_local:N #1{
diff --git a/Master/texmf-dist/tex/latex/expl3/l3clist.sty b/Master/texmf-dist/tex/latex/expl3/l3clist.sty
index 5d66009175a..313e4ab79c7 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3clist.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3clist.sty
@@ -48,8 +48,10 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3clist.dtx 573 2006-08-21 20:59:37Z morten $
+\GetIdInfo$Id: l3clist.dtx 725 2007-12-22 21:25:00Z mittelba $
{L3 Experimental comma separated lists}
+\ProvidesExplPackage
+ {\filename}{\filedate}{\fileversion}{\filedescription}
\NeedsTeXFormat{LaTeX2e}
\RequirePackage{l3prg,l3quark}
\def_new:Npn \clist_new:N #1{\tlp_new:Nn #1{}}
@@ -110,7 +112,7 @@
\def_new:Npn \clist_put_right:No {\exp_args:Nno\clist_put_right:Nn}
\def_new:Npn \clist_put_right:Nx {\exp_args:Nnx\clist_put_right:Nn}
\def_new:Npn \clist_gput_right:Nn {
- \clist_put_aux:NNnnNn \tlp_set:Nn \tlp_put_right:Nn , {}
+ \clist_put_aux:NNnnNn \tlp_gset:Nn \tlp_gput_right:Nn , {}
}
\def_new:Npn \clist_gput_right:No {\exp_args:NNo \clist_gput_right:Nn}
\def_new:Npn \clist_gput_right:cn {\exp_args:Nc \clist_gput_right:Nn}
@@ -121,20 +123,20 @@
\clist_if_empty:NF #1
{
\exp_after:NN \clist_map_function_aux:Nw
- \exp_after:NN #2 #1 , \q_nil , \q_stop
+ \exp_after:NN #2 #1 , \q_recursion_tail , \q_recursion_stop
}
}
\def_new:Npn \clist_map_function:cN{\exp_args:Nc\clist_map_function:NN}
\def_new:Npn \clist_map_function:nN #1#2{
- \tlist_if_empty:nF {#1}
- { \clist_map_function_aux:Nw #2 #1 , \q_nil , \q_stop }
+ \tlist_if_blank:nF {#1}
+ { \clist_map_function_aux:Nw #2 #1 , \q_recursion_tail , \q_recursion_stop }
}
\def_new:Npn \clist_map_function_aux:Nw #1#2,{
- \quark_if_nil:nT{#2} \clist_map_break:w
+ \quark_if_recursion_tail_stop:n{#2}
#1{#2}
\clist_map_function_aux:Nw #1
}
-\let_new:NN \clist_map_break:w \use_none_delimit_by_q_stop:w
+\let_new:NN \clist_map_break:w \use_none_delimit_by_q_recursion_stop:w
\int_new:N \l_clist_inline_level_int
\def_new:Npn \clist_map_inline:Nn #1#2{
\clist_if_empty:NF #1
@@ -144,7 +146,7 @@
##1{#2}
\exp_args:NcE \clist_map_function_aux:Nw
{clist_map_inline_ \int_use:N \l_clist_inline_level_int :n}
- #1 , \q_nil , \q_stop
+ #1 , \q_recursion_tail , \q_recursion_stop
\int_decr:N \l_clist_inline_level_int
}
}
@@ -157,21 +159,22 @@
##1{#2}
\exp_args:Nc \clist_map_function_aux:Nw
{clist_map_inline_ \int_use:N \l_clist_inline_level_int :n}
- #1 , \q_nil , \q_stop
+ #1 , \q_recursion_tail , \q_recursion_stop
\int_decr:N \l_clist_inline_level_int
}
}
\def_new:Npn \clist_map_variable:nNn #1#2#3{
\tlist_if_empty:nF{#1}
{
- \clist_map_variable_aux:Nnw #2 {#3} #1 , \q_nil , \q_stop
+ \clist_map_variable_aux:Nnw #2 {#3} #1
+ , \q_recursion_tail , \q_recursion_stop
}
}
\def_new:Npn \clist_map_variable:NNn {\exp_args:No \clist_map_variable:nNn}
\def_new:Npn \clist_map_variable:cNn {\exp_args:Nc \clist_map_variable:NNn}
\def_new:Npn \clist_map_variable_aux:Nnw #1#2#3,{
\def:Npn #1{#3}
- \quark_if_nil:NT #1 \clist_map_break:w
+ \quark_if_recursion_tail_stop:N #1
#2 \clist_map_variable_aux:Nnw #1{#2}
}
\def_new:Npn \clist_concat_aux:NNNN #1#2#3#4{
diff --git a/Master/texmf-dist/tex/latex/expl3/l3doc.cls b/Master/texmf-dist/tex/latex/expl3/l3doc.cls
index ebe379a580a..59c7a7c971d 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3doc.cls
+++ b/Master/texmf-dist/tex/latex/expl3/l3doc.cls
@@ -37,7 +37,7 @@
%<*class>
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{l3doc}
- [2006/01/17 v0.0h class for documenting experimental stuff]
+ [2007/09/08 v0.0j class for documenting experimental stuff]
%
\NeedsTeXFormat{LaTeX2e}
%</class>
@@ -53,7 +53,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\DeclareOption*{\PassOptionstoClass{\CurrentOption}{article}}
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
% \end{macrocode}
%
% \section{Option Processing}
@@ -77,6 +77,7 @@
% \end{macrocode}
%
% \begin{macrocode}
+\RequirePackage{l3names,trace}
\RequirePackage{doc}
\renewcommand\MakePrivateLetters{\makeatletter
\catcode`\_=11\relax
@@ -110,7 +111,7 @@
\catcode`\_=11
-
+\AtBeginDocument{\catcode`\_=11\relax}
% \end{macrocode}
%
% Make \verb+|+ and \verb+"+ be `short verb' characters, but not in
@@ -181,7 +182,7 @@
\let\patchdate=\@empty
\begingroup
%%\def\ProvidesFile#1\fmtversion#2{\date{#2}\endinput}
- \def\ProvidesFile#1[#2 #3]{\date{#2}\endinput}
+ \def\ProvidesFile#1[#2#3]{\date{#2}\endinput}
\input{l3vers.dtx}
\global\let\X@date=\@date
diff --git a/Master/texmf-dist/tex/latex/expl3/l3expan.sty b/Master/texmf-dist/tex/latex/expl3/l3expan.sty
index f6e65f0ade6..4e8ee86603e 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3expan.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3expan.sty
@@ -48,38 +48,50 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3expan.dtx 573 2006-08-21 20:59:37Z morten $
+\GetIdInfo$Id: l3expan.dtx 735 2008-01-14 22:31:02Z morten $
{L3 Experimental Argument Expansion module}
+\ProvidesExplPackage
+ {\filename}{\filedate}{\fileversion}{\filedescription}
\RequirePackage{l3tlp}
\tlp_new:Nn\l_exp_tlp{}
-\def_new:Npn\exp_arg_next:nnn#1#2#3{
+\def_long_new:Npn\exp_arg_next:nnn#1#2#3{
#2\:::{#3#1}
}
-\def_new:Npn\::n#1\:::#2#3{
+\def_long_new:Npn\::n#1\:::#2#3{
#1\:::{#2{#3}}
}
-\def_new:Npn\::N#1\:::#2#3{
+\def_long_new:Npn\::N#1\:::#2#3{
#1\:::{#2#3}
}
-\def_new:Npn\::c#1\:::#2#3{
+\def_long_new:Npn\::c#1\:::#2#3{
\exp_after:NN\exp_arg_next:nnn\cs:w #3\cs_end:{#1}{#2}
}
-\def_new:Npn\::o#1\:::#2#3{
+\def_long_new:Npn\::o#1\:::#2#3{
\exp_after:NN\exp_arg_next:nnn\exp_after:NN{\exp_after:NN{#3}}{#1}{#2}
}
-\def_new:Npn\::f#1\:::#2#3{
+\def_long_new:Npn\::f#1\:::#2#3{
\exp_after:NN\exp_arg_next:nnn
\exp_after:NN{\exp_after:NN{\int_to_roman:w -`0 #3}}
{#1}{#2}
}
-\def_new:Npn\::x#1\:::#2#3{
- \tlp_set:Nx\l_exp_tlp{{{#3}}}
- \exp_after:NN\exp_arg_next:nnn\l_exp_tlp{#1}{#2}}
-\def_new:Npn\:::#1{#1}
-\def_new:Npn\::C#1\:::#2#3{
+\def_new:Npn \exp_stop_f: {~}
+\let_new:NN \exp_arg:x \expanded % Move eventually.
+\cs_if_free:NTF\exp_arg:x{
+ \def_long_new:Npn\::x#1\:::#2#3{
+ % \tlp_set:Nx\l_exp_tlp{{{#3}}}
+ \def:Npx \l_exp_tlp{{{#3}}}
+ \exp_after:NN\exp_arg_next:nnn\l_exp_tlp{#1}{#2}}
+}
+{
+ \def_long_new:Npn\::x#1\:::#2#3{
+ \exp_after:NN\exp_arg_next:nnn
+ \exp_after:NN{\exp_arg:x{{#3}}}{#1}{#2}
+ }
+}
+\def_long_new:Npn\:::#1{#1}
+\def_long_new:Npn\::C#1\:::#2#3{
\exp_after:NN\exp_C_aux:nnn\cs:w #3\cs_end:{#1}{#2}}
-\def_new:Npn\exp_C_aux:nnn #1
- {
+\def_long_new:Npn\exp_C_aux:nnn #1{
\exp_after:NN
\exp_arg_next:nnn
\exp_after:NN
@@ -87,14 +99,14 @@
\exp_after:NN
{#1}
}
- }
-\def:Npn\::E#1\:::#2#3{
+}
+\def_long_new:Npn\::E#1\:::#2#3{
\exp_after:NN\exp_arg_next:nnn \exp_after:NN{#3}{#1}{#2}
}
-\def:Npn\::e#1\:::#2#3{
+\def_long_new:Npn\::e#1\:::#2#3{
\exp_after:NN\exp_arg_next:nnn \exp_after:NN{#3}{#1}{#2}
}
-\def:Npn\::d#1\:::#2#3{
+\def_long_new:Npn\::d#1\:::#2#3{
\exp_after:NN\exp_after:NN\exp_after:NN\exp_arg_next:nnn
\exp_after:NN\exp_after:NN\exp_after:NN{
\exp_after:NN\exp_after:NN\exp_after:NN{#3}}{#1}{#2}
@@ -106,26 +118,31 @@
\def:Npn \exp_args:NcE #1#2{\exp_after:NN #1\cs:w #2\exp_after:NN\cs_end:}
\def:Npn \exp_args:Nd {\::d\:::}
\def:Npn \exp_args:NNd {\::N\::d\:::}
+
\def:Npn \exp_args:NC {\::C\:::}
-\def:Npn \exp_args:Ncx {\::c\::x\:::}
-\def:Npn \exp_args:Ncco {\::c\::c\::o\:::}
-\def:Npn \exp_args:Nccx {\::c\::c\::x\:::}
-\def:Npn \exp_args:Ncnx {\::c\::n\::x\:::}
+\def:Npn \exp_args:NNC {\::N\::C\:::}
+\def:Npn \exp_args:NNf {\::N\::f\:::}
+\def:Npn \exp_args:NNno {\::N\::n\::o\:::}
+\def:Npn \exp_args:NNnx {\::N\::n\::x\:::} % new
+\def:Npn \exp_args:NNoo {\::N\::o\::o\:::} % new
+\def:Npn \exp_args:NNox {\::N\::o\::x\:::} % new
+\def:Npn \exp_args:NNx {\::N\::x\:::}
\def:Npn \exp_args:NcNc {\::c\::N\::c\:::}
\def:Npn \exp_args:NcNo {\::c\::N\::o\:::}
\def:Npn \exp_args:Ncco {\::c\::c\::o\:::}
+\def:Npn \exp_args:Ncco {\::c\::c\::o\:::}
+\def:Npn \exp_args:Nccx {\::c\::c\::x\:::}
+\def:Npn \exp_args:Ncnx {\::c\::n\::x\:::}
+\def:Npn \exp_args:Ncx {\::c\::x\:::}
\def:Npn \exp_args:Nf {\::f\:::}
-\def:Npn \exp_args:NNf {\::N\::f\:::}
\def:Npn \exp_args:Nfo{\::f\::o\:::}
\def:Npn \exp_args:Nnf {\::n\::f\:::}
-\def:Npn \exp_args:NNno {\::N\::n\::o\:::}
-%% Strange one this next one...
-\def:Npn \exp_args:NnnN {\::n\::n\::N\:::}
+\def:Npn \exp_args:NnnN {\::n\::n\::N\:::} %% Strange one this one...
+\def:Npn \exp_args:Nnnc {\::n\::n\::c\:::}
\def:Npn \exp_args:Nnno {\::n\::n\::o\:::}
\def:Npn \exp_args:Nnnx {\::n\::n\::x\:::}
\def:Npn \exp_args:Nno {\::n\::o\:::}
\def:Npn \exp_args:Nnox {\::n\::o\::x\:::}
-\def:Npn \exp_args:NNx {\::N\::x\:::}
\def:Npn \exp_args:Nnx {\::n\::x\:::}
\def:Npn \exp_args:Noo {\::o\::o\:::}
\def:Npn \exp_args:Noox {\::o\::o\::x\:::}
@@ -133,35 +150,39 @@
\def:Npn \exp_args:Nx {\::x\:::}
\def:Npn \exp_args:Nxo {\::x\::o\:::}
\def:Npn \exp_args:Nxx {\::x\::x\:::}
-\def:Npn \exp_args:NNC {\::N\::C\:::}
-\def:Npn \exp_args:Nnnc {\::n\::n\::c\:::}
-\def_new:Npn\exp_not:o#1{\exp_not:n\exp_after:NN{#1}}
+\def_long_new:Npn\exp_not:o#1{\exp_not:n\exp_after:NN{#1}}
+\def_long_new:Npn\exp_not:d#1{
+ \exp_not:n\exp_after:NN\exp_after:NN\exp_after:NN{#1}
+}
+\def_long_new:Npn\exp_not:f#1{
+ \exp_not:n\exp_after:NN{\int_to_roman:w -`0 #1}
+}
\def_new:Npn\exp_not:E{\exp_after:NN\exp_not:N}
-\def_new:Npn\exp_not:c#1{\exp_after:NN\exp_not:N\cs:w#1\cs_end:}
-\def_new:Npn \exp_args:No #1#2{\exp_after:NN#1\exp_after:NN{#2}}
-\def_new:Npn \exp_args:NOo #1#2#3{\exp_after:NN\exp_args:No \exp_after:NN#1
+\def_long_new:Npn\exp_not:c#1{\exp_after:NN\exp_not:N\cs:w#1\cs_end:}
+\def_long_new:Npn \exp_args:No #1#2{\exp_after:NN#1\exp_after:NN{#2}}
+\def_long_new:Npn \exp_args:NOo #1#2#3{\exp_after:NN\exp_args:No \exp_after:NN#1
\exp_after:NN#2\exp_after:NN{#3}}
-\def_new:Npn \exp_args:NOOo #1#2#3#4{\exp_after:NN\exp_args:NOo
+\def_long_new:Npn \exp_args:NOOo #1#2#3#4{\exp_after:NN\exp_args:NOo
\exp_after:NN#1\exp_after:NN#2\exp_after:NN#3\exp_after:NN{#4}}
-\def_new:Npn \exp_args:NNo #1#2#3{\exp_after:NN#1\exp_after:NN#2
+\def_long_new:Npn \exp_args:NNo #1#2#3{\exp_after:NN#1\exp_after:NN#2
\exp_after:NN{#3}}
-\def_new:Npn \exp_args:NNO #1#2#3 {\exp_after:NN#1
+\def_long_new:Npn \exp_args:NNO #1#2#3 {\exp_after:NN#1
\exp_after:NN#2 #3}
-\def_new:Npn \exp_args:NNOo #1#2#3#4{\exp_after:NN\exp_args:NNo
+\def_long_new:Npn \exp_args:NNOo #1#2#3#4{\exp_after:NN\exp_args:NNo
\exp_after:NN#1\exp_after:NN#2\exp_after:NN#3\exp_after:NN{#4}}
-\def_new:Npn \exp_args:NNNo #1#2#3#4{\exp_after:NN#1\exp_after:NN#2
+\def_long_new:Npn \exp_args:NNNo #1#2#3#4{\exp_after:NN#1\exp_after:NN#2
\exp_after:NN#3\exp_after:NN{#4}}
-\def_new:Npn \exp_args:Nc #1#2{\exp_after:NN#1\cs:w#2\cs_end:}
-\def_new:Npn \exp_args:NNc #1#2#3{\exp_after:NN#1\exp_after:NN#2
+\def_long_new:Npn \exp_args:Nc #1#2{\exp_after:NN#1\cs:w#2\cs_end:}
+\def_long_new:Npn \exp_args:NNc #1#2#3{\exp_after:NN#1\exp_after:NN#2
\cs:w#3\cs_end:}
-\def_new:Npn \exp_args:NOc#1#2#3{\exp_after:NN\exp_args:No\exp_after:NN
+\def_long_new:Npn \exp_args:NOc#1#2#3{\exp_after:NN\exp_args:No\exp_after:NN
#1\exp_after:NN#2\cs:w#3\cs_end:}
-\def_new:Npn \exp_args:Ncc #1#2#3{\exp_after:NN#1
+\def_long_new:Npn \exp_args:Ncc #1#2#3{\exp_after:NN#1
\cs:w#2\exp_after:NN\cs_end:\cs:w#3\cs_end:}
-\def_new:Npn \exp_args:Nccc #1#2#3#4{\exp_after:NN#1
+\def_long_new:Npn \exp_args:Nccc #1#2#3#4{\exp_after:NN#1
\cs:w#2\exp_after:NN\cs_end:\cs:w#3\exp_after:NN
\cs_end:\cs:w #4\cs_end:}
-\def_new:Npn \exp_args:Nco #1#2#3{\exp_after:NN#1\cs:w#2\exp_after:NN
+\def_long_new:Npn \exp_args:Nco #1#2#3{\exp_after:NN#1\cs:w#2\exp_after:NN
\cs_end:\exp_after:NN{#3}}
\def:Npn\exp_def_form:nnn#1#2#3{
\exp_after:NN
diff --git a/Master/texmf-dist/tex/latex/expl3/l3int.sty b/Master/texmf-dist/tex/latex/expl3/l3int.sty
index cbbfa2e9590..b329688b3eb 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3int.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3int.sty
@@ -48,9 +48,11 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3int.dtx 573 2006-08-21 20:59:37Z morten $
+\GetIdInfo$Id: l3int.dtx 702 2007-11-27 14:21:49Z morten $
{L3 Experimental Integer module}
+\ProvidesExplPackage
+ {\filename}{\filedate}{\fileversion}{\filedescription}
\RequirePackage{l3num}
\let_new:NN \int_to_roman:w \tex_romannumeral:D
\let_new:NN \int_to_number:w \tex_number:D
@@ -69,6 +71,10 @@
\def:Npn \int_decr:N #1{\int_add:Nn#1\c_minus_one}
\def:Npn \int_gincr:N #1{\int_gadd:Nn#1\c_one}
\def:Npn \int_gdecr:N #1{\int_gadd:Nn#1\c_minus_one}
+\def:Npn \int_incr:c {\exp_args:Nc\int_incr:N}
+\def:Npn \int_decr:c {\exp_args:Nc\int_decr:N}
+\def:Npn \int_gincr:c {\exp_args:Nc\int_gincr:N}
+\def:Npn \int_gdecr:c {\exp_args:Nc\int_gdecr:N}
\let:NN \int_new:N \newcount% allocation better nick the LaTeX one...
\def_new:Npn \int_new:c {\exp_args:Nc \int_new:N}
\def_new:Npn \int_set:Nn #1#2{#1 \int_eval:w #2\scan_stop:
@@ -95,10 +101,11 @@
\def_new:Npn \int_gsub:Nn {
\pref_global:D
\int_sub:Nn }
+\def_new:Npn \int_gadd:cn{\exp_args:Nc\int_gadd:Nn}
+\def_new:Npn \int_sub:cn{\exp_args:Nc\int_sub:Nn}
+\def_new:Npn \int_gsub:cn{\exp_args:Nc\int_gsub:Nn}
\let_new:NN \int_use:N \tex_the:D
\def_new:Npn \int_use:c #1{\int_use:N \cs:w#1\cs_end:}
-\def_new:Npn \int_gincr:c {\exp_args:Nc \int_gincr:N}
-\def_new:Npn \int_gdecr:c {\exp_args:Nc \int_gdecr:N}
\def_new:Npn \int_to_arabic:n #1{\int_to_number:w \int_eval:n{#1}}
\def_new:Npn \int_roman_lcuc_mapping:Nnn #1#2#3{
\def:cpn {int_to_lc_roman_#1:}{#2}
@@ -161,7 +168,7 @@
\int_Alph_default_conversion_rule:n
}
\def_new:Npn \int_to_symbol:n #1{
- \mode_math:TF
+ \mode_if_math:TF
{
\int_convert_number_with_rule:nnN {#1}{9}
\int_symbol_math_conversion_rule:n
@@ -214,7 +221,28 @@
\int_pre_eval_two_args:Nnn\int_div_truncate_raw:nn
}
\def_new:Npn \int_div_truncate_raw:nn #1#2 {
- \int_eval:n{ (2*#1 - #2) / (2* #2) }
+ \int_eval:w
+ \if_num:w \int_eval:w#1 = \c_zero
+ 0
+ \else:
+ (#1
+ \if_num:w \int_eval:w #1 < \c_zero
+ \if_num:w \int_eval:w#2 < \c_zero
+ -( #2 +
+ \else:
+ +( #2 -
+ \fi:
+ \else:
+ \if_num:w \int_eval:w #2 < \c_zero
+ +( #2 +
+ \else:
+ -( #2 -
+ \fi:
+ \fi:
+ 1)/2)
+ \fi:
+ /(#2)
+ \scan_stop:
}
\def_new:Npn \int_div_round:nn {
\int_pre_eval_two_args:Nnn\int_div_round_raw:nn
@@ -227,6 +255,9 @@
\let_new:NN \int_compare:nNnTF \num_compare:nNnTF
\let_new:NN \int_compare:nNnT \num_compare:nNnT
\let_new:NN \int_compare:nNnF \num_compare:nNnF
+\let_new:NN \int_max_of:nn \num_max_of:nn
+\let_new:NN \int_min_of:nn \num_min_of:nn
+\let_new:NN \int_abs:nn \num_abs:nn
\let_new:NN \int_compare_p:nNn \num_compare_p:nNn
\def_new:Npn \int_if_odd_p:n #1 {
\if_num_odd:w \int_eval:n{#1}
@@ -236,16 +267,16 @@
\fi:
}
\def_test_function_new:npn {int_if_odd:n}#1{\if_num_odd:w \int_eval:n{#1}}
-\def_new:Npn \int_whiledo:nNnT #1#2#3#4{
+\def_long_new:Npn \int_whiledo:nNnT #1#2#3#4{
\int_compare:nNnT {#1}#2{#3}{#4 \int_whiledo:nNnT {#1}#2{#3}{#4}}
}
-\def_new:Npn \int_whiledo:nNnF #1#2#3#4{
+\def_long_new:Npn \int_whiledo:nNnF #1#2#3#4{
\int_compare:nNnF {#1}#2{#3}{#4 \int_whiledo:nNnF {#1}#2{#3}{#4}}
}
-\def_new:Npn \int_dowhile:nNnT #1#2#3#4{
+\def_long_new:Npn \int_dowhile:nNnT #1#2#3#4{
#4 \int_compare:nNnT {#1}#2{#3}{\int_dowhile:nNnT {#1}#2{#3}{#4}}
}
-\def_new:Npn \int_dowhile:nNnF #1#2#3#4{
+\def_long_new:Npn \int_dowhile:nNnF #1#2#3#4{
#4 \int_compare:nNnF {#1}#2{#3}{\int_dowhile:nNnF {#1}#2{#3}{#4}}
}
\def_new:Npn \int_get_sign_and_digits:n #1{
diff --git a/Master/texmf-dist/tex/latex/expl3/l3io.sty b/Master/texmf-dist/tex/latex/expl3/l3io.sty
index d20b5d05f85..608c6b7c624 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3io.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3io.sty
@@ -48,8 +48,10 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3io.dtx 573 2006-08-21 20:59:37Z morten $
+\GetIdInfo$Id: l3io.dtx 621 2007-09-01 20:14:19Z morten $
{L3 Experimental i/o module}
+\ProvidesExplPackage
+ {\filename}{\filedate}{\fileversion}{\filedescription}
\RequirePackage{l3toks}\par
\let:NN \iow_new:N \newwrite
\def_new:Npn \iow_new:c {\exp_args:Nc \iow_new:N}
diff --git a/Master/texmf-dist/tex/latex/expl3/l3keyval.sty b/Master/texmf-dist/tex/latex/expl3/l3keyval.sty
index d5612e7e120..683d121e3aa 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3keyval.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3keyval.sty
@@ -48,8 +48,10 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3keyval.dtx 573 2006-08-21 20:59:37Z morten $
+\GetIdInfo$Id: l3keyval.dtx 621 2007-09-01 20:14:19Z morten $
{L3 Experimental keyval processing}
+\ProvidesExplPackage
+ {\filename}{\filedate}{\fileversion}{\filedescription}
\RequirePackage{l3quark}
\RequirePackage{l3toks}
\RequirePackage{l3int}
diff --git a/Master/texmf-dist/tex/latex/expl3/l3messages.sty b/Master/texmf-dist/tex/latex/expl3/l3messages.sty
index aead4018e11..eee8eab7c8b 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3messages.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3messages.sty
@@ -15,7 +15,7 @@
%% Do not distribute a modified version of this file.
%%
%%
-%% File: l3messages.dtx Copyright (C) 1990-2006 LaTeX3 project
+%% File: l3messages.dtx Copyright (C) 1990-2007 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
@@ -48,6 +48,10 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
+\GetIdInfo$Id: l3messages.dtx 673 2007-09-28 20:50:33Z mittelba $
+ {L3 Experimental LaTeX Messages module}
+\ProvidesExplPackage
+ {\filename}{\filedate}{\fileversion}{\filedescription}
\RequirePackage{l3basics}
\RequirePackage{l3tlp}
\RequirePackage{l3expan}
@@ -55,8 +59,7 @@
\RequirePackage{l3io}
\RequirePackage{l3int}
\RequirePackage{l3toks}
-\GetIdInfo$Id: l3messages.dtx 573 2006-08-21 20:59:37Z morten $
- {L3 Experimental LaTeX Messages module}
+\RequirePackage{l3token}
\tlp_new:Nn \g_file_curr_name_tlp {no~file}
\let_new:NN \err_message:x \tex_errmessage:D
\def_new:Npn \text_put_sp: {~}
@@ -83,16 +86,16 @@
\def_new:Npn \l_err_label_token {}
\int_set:Nn\tex_errorcontextlines:D\c_minus_one
\def_new:Npn \err_info:nn #1#2{
- \def:Npn\err_newline:{\iow_newline#2}
+ \def:Npn\err_newline:{\iow_newline:#2}
\io_put_log:x {#1~\io_show_file_lineno:}}
\def_new:Npn \err_warn:nn #1#2{
- \def:Npn\err_newline:{\iow_newline#2}
+ \def:Npn\err_newline:{\iow_newline:#2}
\io_put_term:x {#1~\io_show_file_lineno:}}
\def_new:Npn \err_info_noline:nn #1#2{
- \def:Npn\err_newline:{\iow_newline#2}
+ \def:Npn\err_newline:{\iow_newline:#2}
\io_put_log:x {#1}}
\def_new:Npn \err_warn_noline:nn #1#2{
- \def:Npn\err_newline:{\iow_newline#2}
+ \def:Npn\err_newline:{\iow_newline:#2}
\io_put_term:x {#1}}
\def_new:Npn \err_interrupt:NNw #1#2{\let:NwN \l_err_label_token #2
\group_begin:
@@ -102,12 +105,12 @@
%\clearshortrefmaps
\tex_input:D #1~\err_display_aux:w}
\def_new:Npn \err_fatal:nn #1#2{
- \def:Npn\err_newline:{\iow_newline#2}
+ \def:Npn\err_newline:{\iow_newline:#2}
\io_put_term:x {#1~\io_show_file_lineno:}
\tex_end:D
}
\def_new:Npn \err_fatal_noline:nn #1#2{
- \def:Npn\err_newline:{\iow_newline#2}
+ \def:Npn\err_newline:{\iow_newline:#2}
\io_put_term:x {#1}
\tex_end:D
}
@@ -126,9 +129,9 @@
{\err_latex_bug:x{You~closed~the~wrong~error~file~`#1'.~
Open~is~`\g_err_curr_fname'.}}
\iow_long_unexpanded:Nn \c_iow_err_stream {\err_latex_bug:x{Didn't~find~the~
- correct~error~message~to~show.\iow_newline
+ correct~error~message~to~show.\iow_newline:
Was~searching~for~a~function~
- with~the~following~meaning:\iow_newline
+ with~the~following~meaning:\iow_newline:
\token_to_string:N\token_to_meaning:N
\token_to_string:N\l_err_label_token}
\group_end:}
@@ -137,7 +140,7 @@
\tlp_gset_eq:NN\g_err_curr_fname\c_empty_tlp
}
\def_new:Npn \err_interrupt_new:NNNnnn #1{
- \group_begin: \tex_catcode:D`\#\c_other_char_code
+ \group_begin: \char_set_catcode:nn{`\#}{12}
\if_meaning:NN#1\g_err_curr_fname
\else:
\err_latex_bug:x{Error~text~goes~to~wrong~err~file:~
@@ -154,9 +157,9 @@
\cmd_declare:Nnn\err_display_aux:w [#2]{
\group_end:
\toks_gset:Nx\g_err_help_toks{#4}
- \io_put_term:x{LaTeX~error~\io_show_file_lineno:.\iow_newline
+ \io_put_term:x{LaTeX~error~\io_show_file_lineno:.\iow_newline:
\text_put_sp:\text_put_four_sp: \text_put_sp:
- See~LaTeX~manual~for~explanation.\iow_newline
+ See~LaTeX~manual~for~explanation.\iow_newline:
\text_put_sp:\text_put_four_sp: \text_put_sp:
Type~\text_put_sp: H~<return>~\text_put_sp: for~
immediate~help.}
@@ -198,9 +201,9 @@
}
\err_file_new:Nn \c_kernel_err_tlp {l3in2e.err}
\def:Npn\err_help_ignored: {
- Your~command~was~ignored.\iow_newline
+ Your~command~was~ignored.\iow_newline:
Type \text_put_sp: I~<command>~<return>
- \text_put_sp: to~replace~it~with~another~command,\iow_newline
+ \text_put_sp: to~replace~it~with~another~command,\iow_newline:
or~\text_put_sp: <return> \text_put_sp: to~continue~without~it.}
\def:Npn\err_help_textlost: {
@@ -208,7 +211,7 @@
\def:Npn\err_help_return_or_X: {
Try~typing\text_put_sp: <return>
- \text_put_sp: to~proceed.\iow_newline
+ \text_put_sp: to~proceed.\iow_newline:
If~that~doesn't~work,~type
\text_put_sp: X~<return>\text_put_sp: to~quit.}
@@ -219,10 +222,10 @@
\err_kernel_interrupt_new:NNnnn\cs_free_p:N{1}
{Command~name~`\tex_string:D#1'~already~used}
{You~tried~to~define~a~command~which~already~has~
- a~meaning.\iow_newline
+ a~meaning.\iow_newline:
If~you~really~want~to~redefine~it~try~
\token_to_string:N\cmd_declare:Nnn\text_put_sp:
- next~time.\iow_newline
+ next~time.\iow_newline:
For~this~run~I~will~ignore~your~definition.}
{}
@@ -235,7 +238,7 @@
\err_kernel_interrupt_new:NNnnn\newcnt{0}
{No~such~counter}
{The~counter~name~mentioned~in~the~operation~is~not~
- known~to~me.\iow_newline
+ known~to~me.\iow_newline:
Check~the~spelling.}
{}
diff --git a/Master/texmf-dist/tex/latex/expl3/l3names.sty b/Master/texmf-dist/tex/latex/expl3/l3names.sty
index e14b70f41cb..485ad03e134 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3names.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3names.sty
@@ -47,19 +47,38 @@
%% prior consultation with the LaTeX Project Team.
%%
%% -----------------------------------------------------------------------
-\def\GetIdInfo$Id: #1.dtx #2 #3-#4-#5 #6 #7$#8{%
- \def\fileversion{#2}%
- \def\filedate{#3/#4/#5}%
- \ProvidesPackage{#1}[#3/#4/#5 v#2 #8]%
+\begingroup
+\def\GetIdInfo$#1 #2.#3 #4 #5 #6 #7${%
+ \GetIdInfoAux #5\relax{#2}#5\relax{#4}%
}
-\GetIdInfo$Id: l3names.dtx 577 2006-11-21 18:10:26Z morten $
+\def\GetIdInfoAux #1#2#3#4#5#6\relax{%
+ \ifx#5/%
+ \expandafter\GetIdInfoAuxCVS
+ \else
+ \expandafter\GetIdInfoAuxSVN
+ \fi
+}
+\def\GetIdInfoAuxCVS #1#2\relax#3#4{%
+ \gdef\fileversion{#3}%
+ \gdef\filedate{#2}%
+ \gdef\filedescription{#4}%
+ \ProvidesPackage{#1}[#2 v#3 #4]%
+}
+\def\GetIdInfoAuxSVN #1#2-#3-#4\relax#5#6{%
+ \gdef\fileversion{#5}%
+ \gdef\filedate{#2/#3/#4}%
+ \gdef\filedescription{#6}%
+ \ProvidesPackage{#1}[#2/#3/#4 v#5 #6]
+}
+\GetIdInfo$Id: l3names.dtx 621 2007-09-01 20:14:19Z morten $
{L3 Experimental Naming Scheme for TeX Primitives}
-\catcode`\ =9\relax
-\catcode`\^^I=9\relax
-\catcode`\^^M=9\relax
-\catcode`\~=10\relax
-\catcode`\_=11\relax\catcode`\:=11\relax
-\catcode`\@=11\relax % as long as we use old LaTeX stuff.
+\endgroup
+\catcode126=10\relax % tilde is a space char.
+\catcode32=9\relax % space is ignored
+\catcode9=9\relax % tab also ignored
+\endlinechar=32\relax % endline is space
+\catcode95=11\relax % underscore letter
+\catcode58=11\relax % colon letter
\let\tex_let:D\let
\DeclareOption{removeoldnames}{
\long\def\name_undefine:N#1{
@@ -565,37 +584,96 @@
\name_primitive:NN \pdfsetrandomseed \pdf_setrandomseed:D
\name_primitive:NN \pdfnoligatures \pdf_noligatures:D
\name_primitive:NN \textdir \aleph_textdir:D
-\tex_def:D\CodeStart{%
- \tex_catcode:D `\ =9\tex_relax:D
- \tex_catcode:D `\^^M=9\tex_relax:D
- \tex_catcode:D `\^^I=9\tex_relax:D
- \tex_catcode:D `\~=10\tex_relax:D
- \tex_catcode:D `\@=11\tex_relax:D % For LaTeX2e
- \tex_catcode:D `\_=11\tex_relax:D
- \tex_catcode:D `\:=11\tex_relax:D}
-\tex_def:D\CodeStop{
- \tex_catcode:D `\ =10\tex_relax:D
- \tex_catcode:D `\^^M=5\tex_relax:D
- \tex_catcode:D `\^^I=10\tex_relax:D
- \tex_catcode:D `\~=13\tex_relax:D
- \tex_catcode:D `\@=12\tex_relax:D % For LaTeX2e
- \tex_catcode:D `\_=8\tex_relax:D
- \tex_catcode:D `\:=12\tex_relax:D}
+\tex_def:D\ExplSyntaxOn{
+ \tex_def:D\ExplSyntaxStatus{00}
+ \tex_catcode:D 126=10 \tex_relax:D % tilde is a space char.
+ \tex_catcode:D 32=9 \tex_relax:D % space is ignored
+ \tex_catcode:D 9=9 \tex_relax:D % tab also ignored
+ \tex_endlinechar:D =32 \tex_relax:D % endline is space
+ \tex_catcode:D 95=11 \tex_relax:D % underscore letter
+ \tex_catcode:D 58=11 \tex_relax:D % colon letter
+}
+\tex_def:D\ExplSyntaxOff{
+ \tex_def:D\ExplSyntaxStatus{01}
+ \tex_catcode:D 126=13 \tex_relax:D
+ \tex_catcode:D 32=10 \tex_relax:D
+ \tex_catcode:D 9=10 \tex_relax:D
+ \tex_endlinechar:D =13 \tex_relax:D
+ \tex_catcode:D 95=8 \tex_relax:D
+ \tex_catcode:D 58=12 \tex_relax:D
+}
+\tex_let:D \CodeStart \ExplSyntaxOn
+\tex_let:D \CodeStop \ExplSyntaxOff
\tex_def:D \NamesStart{
- \tex_catcode:D `\_=11\scan_stop:
- \tex_catcode:D `\:=11\scan_stop:
- }
+ \tex_catcode:D `\_=11\tex_relax:D
+ \tex_catcode:D `\:=11\tex_relax:D
+}
\tex_def:D \NamesStop{
- \tex_catcode:D `\_=8\scan_stop:
- \tex_catcode:D `\:=12\scan_stop:
- }
-\tex_def:D\GetIdInfo{\CodeStop\GetIdInfoAux}
-\tex_def:D\GetIdInfoAux$#1~#2.dtx~#3~#4-#5-#6~#7~#8$#9{%
- \tex_def:D \fileversion{#3}%
- \tex_def:D \filedate{#4/#5/#6}%
- \ProvidesPackage{#2}[#4/#5/#6~ v#3~ #9]%
- \CodeStart
+ \tex_catcode:D `\_=8\tex_relax:D
+ \tex_catcode:D `\:=12\tex_relax:D
+}
+\tex_def:D\GetIdInfo{
+ \tex_begingroup:D
+ \tex_catcode:D 32=10 \tex_relax:D % needed? Probably for now.
+ \GetIdInfoAuxi:w
+}
+\tex_def:D\GetIdInfoAuxi:w$#1~#2.#3~#4~#5~#6~#7~#8$#9{
+ \tex_endgroup:D
+ \tex_def:D\filename{#2}
+ \tex_def:D\fileversion{#4}
+ \tex_def:D\filedescription{#9}
+ \tex_def:D\fileauthor{#7}
+ \GetIdInfoAuxii:w #5\tex_relax:D
+ #3\tex_relax:D#5\tex_relax:D#6\tex_relax:D
}
+\tex_def:D\GetIdInfoAuxii:w #1#2#3#4#5#6\tex_relax:D{
+ \tex_ifx:D#5/
+ \tex_expandafter:D\GetIdInfoAuxCVS:w
+ \tex_else:D
+ \tex_expandafter:D\GetIdInfoAuxSVN:w
+ \tex_fi:D
+}
+\tex_def:D\GetIdInfoAuxCVS:w #1,v\tex_relax:D
+ #2\tex_relax:D#3\tex_relax:D{
+ \tex_def:D\filedate{#2}
+ \tex_def:D\filenameext{#1}
+ \tex_def:D\filetimestamp{#3}
+}
+\tex_def:D\GetIdInfoAuxSVN:w #1\tex_relax:D#2-#3-#4
+ \tex_relax:D#5Z\tex_relax:D{
+ \tex_def:D\filenameext{#1}
+ \tex_def:D\filedate{#2/#3/#4}
+ \tex_def:D\filetimestamp{#5}
+}
+\tex_def:D \ProvidesExplPackage#1#2#3#4{
+ \ProvidesPackage{#1}[#2~v#3~#4]
+ \ExplSyntaxOn
+}
+\tex_def:D \ProvidesExplClass#1#2#3#4{
+ \ProvidesClass{#1}[#2~v#3~#4]
+ \ExplSyntaxOn
+}
+\tex_let:D \org@onefilewithoptions\@onefilewithoptions
+\tex_def:D \@onefilewithoptions#1[#2][#3]#4{
+ \tex_edef:D \ExplSyntaxStack{ \ExplSyntaxStatus\ExplSyntaxStack }
+ \ExplSyntaxOff
+ \org@onefilewithoptions{#1}[{#2}][{#3}]{#4}
+ \tex_expandafter:D\ExplSyntaxPopStack\ExplSyntaxStack\tex_relax:D
+}
+\g@addto@macro\@popfilename{%
+ \tex_ifnum:D\tex_the:D\tex_catcode:D`\@=12\tex_relax:D
+ \ExplSyntaxOff
+ \tex_fi:D
+}
+\tex_def:D\ExplSyntaxPopStack#1#2#3\tex_relax:D{
+ \tex_def:D\ExplSyntaxStack{#3}
+ \tex_if:D#1#2
+ \ExplSyntaxOn
+ \tex_else:D
+ \ExplSyntaxOff
+ \tex_fi:D
+}
+\tex_def:D\ExplSyntaxStack{}
\tex_let:D\tex_input:D \@@input
\tex_let:D\tex_underline:D \@@underline
\tex_let:D\tex_end:D \@@end
@@ -605,15 +683,12 @@
\tex_let:D\tex_hyphen:D \@@hyph
\tex_let:D\par \tex_par:D
\tex_ifx:D\name_undefine:N\@gobble
+ \AtEndOfPackage{\ExplSyntaxOff}
\tex_def:D\name_pop_stack:w{}
- \g@addto@macro\@popfilename{%
- \tex_ifnum:D12=\tex_the:D\tex_catcode:D`@
- \CodeStop
- \tex_fi:D}
\tex_else:D
\tex_def:D\ProvidesPackage{
\tex_begingroup:D
- \CodeStop
+ \ExplSyntaxOff
\package_provides:w}
\tex_def:D\package_provides:w#1#2[#3]{
\tex_endgroup:D
@@ -621,7 +696,7 @@
\tex_expandafter:D\tex_xdef:D
\tex_csname:D ver@#1.sty\tex_endcsname:D{#1}}
\tex_def:D\name_pop_stack:w#1\relax{%
- \CodeStop
+ \ExplSyntaxOff
\tex_expandafter:D\@p@pfilename\@currnamestack\@nil
\tex_let:D\default@ds\@unknownoptionerror
\tex_global:D\tex_let:D\ds@\@empty
@@ -635,7 +710,7 @@
\tex_def:D\RequirePackage#1{
\tex_expandafter:D\tex_ifx:D
\tex_csname:D ver@#1.sty\tex_endcsname:D\tex_relax:D
- \CodeStart
+ \ExplSyntaxOn
\tex_input:D#1.sty\tex_relax:D
\tex_fi:D}
\tex_fi:D
diff --git a/Master/texmf-dist/tex/latex/expl3/l3num.sty b/Master/texmf-dist/tex/latex/expl3/l3num.sty
index 3392ecd86f2..89c12cdb625 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3num.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3num.sty
@@ -48,9 +48,13 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3num.dtx 573 2006-08-21 20:59:37Z morten $
+\GetIdInfo$Id: l3num.dtx 702 2007-11-27 14:21:49Z morten $
{L3 Experimental token numbers}
+
+\ProvidesExplPackage
+ {\filename}{\filedate}{\fileversion}{\filedescription}
\RequirePackage{l3expan}\par
+\let_new:NN \num_value:w \tex_number:D
\let_new:NN \num_eval:w \etex_numexpr:D
\let_new:NN \if_num:w \tex_ifnum:D
\let_new:NN \if_num_odd:w \tex_ifodd:D
@@ -89,7 +93,9 @@
\def_new:Npn \num_gset_eq:Nc {\exp_args:NNc \num_gset_eq:NN}
\def_new:Npn \num_gset_eq:cc {\exp_args:Ncc \num_gset_eq:NN}
\def_new:Npn \num_add:Nn #1#2 {\num_set:Nn #1{#1+#2}}
+\def_new:Npn \num_add:cn {\exp_args:Nc\num_add:Nn}
\def_new:Npn \num_gadd:Nn {\pref_global:D \num_add:Nn}
+\def_new:Npn \num_gadd:cn {\exp_args:Nc\num_gadd:Nn}
\let_new:NN\num_use:N \use_arg_i:n
\let_new:NN\num_use:c \cs_use:c
\def_test_function_new:npn {num_compare:nNn}#1#2#3{
@@ -103,12 +109,17 @@
\c_false
\fi:
}
+\def_new:Npn \num_abs:n#1{
+ \if_num:w \num_eval:n{#1}<\c_zero \exp_after:NN -\fi: #1
+}
+\def_new:Npn \num_max_of:nn#1#2{\num_compare:nNnTF {#1}>{#2}{#1}{#2}}
+\def_new:Npn \num_min_of:nn#1#2{\num_compare:nNnTF {#1}<{#2}{#1}{#2}}
\num_new:N \l_tmpa_num
\num_new:N \l_tmpb_num
\num_new:N \l_tmpc_num
\num_new:N \g_tmpa_num
\num_new:N \g_tmpb_num
-\engine_aleph:TF
+\engine_if_aleph:TF
{
\let_new:NN \const_new_aux:Nw \tex_chardef:D
\const_new_aux:Nw \c_max_register_num = 65535 \scan_stop:
diff --git a/Master/texmf-dist/tex/latex/expl3/l3precom.sty b/Master/texmf-dist/tex/latex/expl3/l3precom.sty
index 9f67483781a..39bf566c3f8 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3precom.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3precom.sty
@@ -48,8 +48,10 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3precom.dtx 573 2006-08-21 20:59:37Z morten $
+\GetIdInfo$Id: l3precom.dtx 621 2007-09-01 20:14:19Z morten $
{L3 Experimental precompilation module}
+\ProvidesExplPackage
+ {\filename}{\filedate}{\fileversion}{\filedescription}
\RequirePackage{l3num}
\RequirePackage{l3io}
\RequirePackage{l3seq}
diff --git a/Master/texmf-dist/tex/latex/expl3/l3prg.sty b/Master/texmf-dist/tex/latex/expl3/l3prg.sty
index fad727278da..ccb7657e076 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3prg.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3prg.sty
@@ -48,24 +48,27 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3prg.dtx 574 2006-08-21 23:30:10Z morten $
+\GetIdInfo$Id: l3prg.dtx 697 2007-11-27 14:14:54Z morten $
{L3 Experimental control structures}
+\ProvidesExplPackage
+ {\filename}{\filedate}{\fileversion}{\filedescription}
\RequirePackage{l3quark}
\RequirePackage{l3toks}
\RequirePackage{l3int}
-\def_new:Npn \mode_vertical_p: {
+\def_new:Npn \mode_if_vertical_p: {
\if_mode_vertical: \c_true \else: \c_false\fi:}
-\def_test_function_new:npn{mode_vertical:}{\if_mode_vertical:}
-\def_new:Npn \mode_horizontal_p: {
+\def_test_function_new:npn{mode_if_vertical:}{\if_mode_vertical:}
+\def_new:Npn \mode_if_horizontal_p: {
\if_mode_horizontal: \c_true \else: \c_false\fi:}
-\def_test_function_new:npn{mode_horizontal:}{\if_mode_horizontal:}
-\def_new:Npn \mode_inner_p: {
+\def_test_function_new:npn{mode_if_horizontal:}{\if_mode_horizontal:}
+\def_new:Npn \mode_if_inner_p: {
\if_mode_inner: \c_true \else: \c_false\fi:}
-\def_test_function_new:npn{mode_inner:}{\if_mode_inner:}
-\def_test_function_new:npn{mode_math:} {
+\def_test_function_new:npn{mode_if_inner:}{\if_mode_inner:}
+\def_test_function_new:npn{mode_if_math:} {
\scan_align_safe_stop: \if_mode_math: }
-\def_new:Npn \group_align_safe_begin: {\if_false:{\fi:\if_num:w0=`}\fi:}
-\def_new:Npn \group_align_safe_end: {\if_num:w0=`{\fi:\if_false:}\fi:}
+\def_new:Npn \group_align_safe_begin: {
+ \if_false:{\fi:\if_num:w`}=\c_zero\fi:}
+\def_new:Npn \group_align_safe_end: {\if_num:w`{=\c_zero}\fi:}
\def_new:Npn \scan_align_safe_stop: {
\num_compare:nNnT \etex_currentgrouptype:D = \c_six
{
@@ -190,15 +193,15 @@
}
}
\def_new:Npn \bool_new:N #1 { \let_new:NN #1 \c_false }
-\def_new:Npn \bool_new:c #1 { \let_new:cN #1 \c_false }
+\def_new:Npn \bool_new:c #1 { \let_new:cN {#1} \c_false }
\def_new:Npn \bool_set_true:N #1 { \let:NN #1 \c_true }
-\def_new:Npn \bool_set_true:c #1 { \let:cN #1 \c_true }
+\def_new:Npn \bool_set_true:c #1 { \let:cN {#1} \c_true }
\def_new:Npn \bool_set_false:N #1 { \let:NN #1 \c_false }
-\def_new:Npn \bool_set_false:c #1 { \let:cN #1 \c_false }
+\def_new:Npn \bool_set_false:c #1 { \let:cN {#1} \c_false }
\def_new:Npn \bool_gset_true:N #1 { \glet:NN #1 \c_true }
-\def_new:Npn \bool_gset_true:c #1 { \glet:cN #1 \c_true }
+\def_new:Npn \bool_gset_true:c #1 { \glet:cN {#1} \c_true }
\def_new:Npn \bool_gset_false:N #1 { \glet:NN #1 \c_false }
-\def_new:Npn \bool_gset_false:c #1 { \glet:cN #1 \c_false }
+\def_new:Npn \bool_gset_false:c #1 { \glet:cN {#1} \c_false }
\let_new:NN \bool_set_eq:NN \let:NN
\let_new:NN \bool_set_eq:Nc \let:Nc
\let_new:NN \bool_set_eq:cN \let:cN
@@ -261,55 +264,36 @@
\def_long_new:Npn \prg_dowhile:nF #1#2{
#2 #1 {\prg_dowhile:nF {#1}{#2}}
}
-\let_new:NN \prg_if_predicate:nTF \bool_if:NTF
-\let_new:NN \prg_if_predicate:nT \bool_if:NT
-\let_new:NN \prg_if_predicate:nF \bool_if:NF
-\def_new:Npn \prg_if_predicate_or_p:nn #1#2{
- \if_num:w #1#2<\c_hundred_one
- \c_true
- \else:
- \c_false
- \fi:
-}
-\def_new:Npn \prg_if_predicate_and_p:nn #1#2{
- \if_case:w #1#2 ~
- \c_true
- \else:
- \c_false
- \fi:
+\def_long_new:Npn \predicate_p:n #1{
+ \group_align_safe_begin:
+ \exp_after:NN \predicate_auxi:NN
+ \int_to_roman:w-`\q #1 02\scan_stop:
}
-\def_new:Npn \prg_if_predicate_not_p:n #1{
- \if_case:w #1 ~
- \c_false
- \or:
- \c_true
- \fi:
+\def_long_test_function_new:npn {predicate:n}#1{
+ \group_align_safe_begin:
+ \if:w \exp_after:NN \predicate_auxi:NN
+ \int_to_roman:w-`\q #1 02\scan_stop:
}
-\def_long_new:Npn \prg_if_predicate_ands_p:n #1{
- \exp_after:NN \prg_if_predicate_andor_aux:NNN \exp_after:NN \c_true
- \int_to_roman:w -`0 #1 \scan_stop: \scan_stop:
+\def_new:Npn \predicate_auxi:NN 0 #1{
+ \exp_after:NN \predicate_auxii:NNN \exp_after:NN #1
+ \int_to_roman:w-`\q
}
-\def_long_new:Npn \prg_if_predicate_ors_p:n #1{
- \exp_after:NN \prg_if_predicate_andor_aux:NNN \exp_after:NN \c_false
- \int_to_roman:w -`0 #1 \scan_stop: \scan_stop:
+\def_new:Npn \predicate_auxii:NNN #1#2#3{
+ \cs_use:c{predicate_#2#3_#1:w} }
+\def_new:cpn{predicate_&&_0:w}{
+ \exp_after:NN \predicate_auxi:NN\int_to_roman:w-`\q
}
-\def_new:Npn \prg_if_predicate_andor_aux:NNN #1#2#3{
- \token_if_eq_meaning:NNTF \scan_stop: #2
- { #1 }
- {
- \int_compare:nNnTF #3 = #1
- { \exp_after:NN \prg_if_predicate_andor_aux:NNN }
- { \exp_after:NN \prg_if_predicate_andor_break:NNN }
- \exp_after:NN #1 \int_to_roman:w -`0
- }
+\def_long_new:cpn{predicate_&&_1:w} #1 02\scan_stop:{
+ \group_align_safe_end: 01}
+\def_long_new:cpn{predicate_||_0:w} #1 02\scan_stop:{
+ \group_align_safe_end: 00}
+\def_new:cpn{predicate_||_1:w}{
+ \exp_after:NN \predicate_auxi:NN\int_to_roman:w-`\q
}
-\def_new:Npn \prg_if_predicate_andor_break:NNN #1#2#3{
- \token_if_eq_meaning:NNTF \scan_stop: #2
- { \if:w #1\c_false\else:\c_true\fi: }
- {
- \exp_after:NN \prg_if_predicate_andor_break:NNN \exp_after:NN #1
- \int_to_roman:w -`0
- }
+\def_new:cpn{predicate_02_0:w}\scan_stop:{ \group_align_safe_end: 00 }
+\def_new:cpn{predicate_02_1:w}\scan_stop:{ \group_align_safe_end: 01 }
+\def_long_new:Npn \predicate_not_p:n #1{
+ \if:w \predicate_p:n{#1} \c_false \else: \c_true \fi:
}
\def_new:NNn \prg_define_quicksort:nnn 3 {
\def_long:cNx{#1_quicksort:n}1{
diff --git a/Master/texmf-dist/tex/latex/expl3/l3prop.sty b/Master/texmf-dist/tex/latex/expl3/l3prop.sty
index fe956efcdab..67c2efc2d3a 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3prop.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3prop.sty
@@ -48,86 +48,98 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3prop.dtx 581 2006-12-12 12:28:27Z morten $
+\GetIdInfo$Id: l3prop.dtx 668 2007-09-27 15:54:23Z mittelba $
{L3 Experimental Property Lists}
+\ProvidesExplPackage
+ {\filename}{\filedate}{\fileversion}{\filedescription}
\RequirePackage{l3toks}\par
+\RequirePackage{l3quark}\par
+\quark_new:N\q_prop
+
\def_new:Npn \prop_new:N #1{\toks_new:N #1}
\def_new:Npn \prop_new:c {\exp_args:Nc \prop_new:N}
\let_new:NN \prop_clear:N \toks_clear:N
\def_new:Npn \prop_clear:c {\exp_args:Nc\prop_clear:N}
\let_new:NN \prop_gclear:N \toks_gclear:N
\def_new:Npn \prop_gclear:c {\exp_args:Nc\prop_gclear:N}
-\let_new:NN \prop_use:N \toks_use:N
-\def_long_new:Npn \prop_split_aux:NNn #1#2#3{
- \def:Npn \tmp:w ##1#2##2##3\q_stop {#3{##1}{##2}{##3}}
- \exp_after:NN\tmp:w \prop_use:N#1#2\q_no_value \q_stop}
-\def_long_new:NNn \prop_get:NNN 2{
- \prop_split_aux:NNn #1#2\prop_get_aux:w}
-\def_long_new:NNn \prop_get_aux:w 4{\toks_set:Nn#4{#2}}
-\def_new:Npn \prop_get:cNN { \exp_args:Nc \prop_get:NNN }
-\def_long_new:NNn \prop_gget:NNN 2{
- \prop_split_aux:NNn #1#2\prop_gget_aux:w}
-\def_new:Npn \prop_gget:NcN {\exp_args:NNc \prop_gget:NNN}
-\def_new:Npn \prop_gget:cNN {\exp_args:Nc \prop_gget:NNN}
-\def_long_new:NNn \prop_gget_aux:w 4{\toks_gset:Nn#4{#2}}
-\def_long_new:NNn \prop_get_gdel:NNN 3{
- \prop_split_aux:NNn #1#2{\prop_get_del_aux:w #3{\toks_gset:Nn #1}#2}}
+\def_long_new:Npn \prop_split_aux:Nnn #1#2#3{
+ \def:Npn \tmp:w ##1\q_prop#2\q_prop##2##3\q_stop {#3{##1}{##2}{##3}}
+ \exp_after:NN\tmp:w \toks_use:N#1\q_prop#2\q_prop\q_no_value \q_stop
+}
+\def_long_new:NNn \prop_get:NnN 2{
+ \prop_split_aux:Nnn #1{#2}\prop_get_aux:w}
+\def_long_new:NNn \prop_get_aux:w 4{\tlp_set:Nx#4{\exp_not:n{#2}}}
+\def_new:Npn \prop_get:cnN { \exp_args:Nc \prop_get:NnN }
+\def_long_new:NNn \prop_gget:NnN 2{
+ \prop_split_aux:Nnn #1{#2}\prop_gget_aux:w}
+\def_new:Npn \prop_gget:NcN {\exp_args:NNc \prop_gget:NnN}
+\def_new:Npn \prop_gget:cnN {\exp_args:Nc \prop_gget:NnN}
+\def_long_new:NNn \prop_gget_aux:w 4{\tlp_gset:Nx#4{\exp_not:n{#2}}}
+\def_long_new:NNn \prop_get_gdel:NnN 3{
+ \prop_split_aux:Nnn #1{#2}{\prop_get_del_aux:w #3{\toks_gset:Nn #1}{#2}}}
\def_long_new:NNn \prop_get_del_aux:w 6{
- \quark_if_no_value:nF{#5} {
- \def:Npn \tmp:w ##1#3\q_no_value {#2{#4##1}}
+ \tlp_set:Nx #1{\exp_not:n{#5}}
+ \quark_if_no_value:NF #1 {
+ \def:Npn \tmp:w ##1\q_prop#3\q_prop\q_no_value {#2{#4##1}}
\tmp:w #6}
}
-\def_long_new:NNn \prop_put:NNn 2{
- \prop_split_aux:NNn #1#2{
- \toks_clear:N #1
- \prop_put_aux:w {\toks_put_right:Nn #1}#2}
+\def_long_new:NNn \prop_put:Nnn 2{
+ \prop_split_aux:Nnn #1{#2}{
+ \prop_clear:N #1
+ \prop_put_aux:w {\toks_put_right:Nn #1}{#2}}
}
-\def_new:Npn \prop_put:ccn {\exp_args:Ncc \prop_put:NNn }
-\def_long_new:NNn \prop_gput:NNn 2{
- \prop_split_aux:NNn #1#2{
- \toks_gclear:N #1
- \prop_put_aux:w {\toks_gput_right:Nn #1}#2}
+\def_new:Npn \prop_put:ccn {\exp_args:Ncc \prop_put:Nnn }
+
+\def_long_new:NNn \prop_gput:Nnn 2{
+ \prop_split_aux:Nnn #1{#2}{
+ \prop_gclear:N #1
+ \prop_put_aux:w {\toks_gput_right:Nn #1}{#2}}
}
-\def_new:Npn \prop_gput:NNo {\exp_args:NNNo \prop_gput:NNn}
-\def_new:Npn \prop_gput:NNx {\exp_args:Nnnx \prop_gput:NNn}
-\def_new:Npn \prop_gput:NOx {\exp_args:Nnox \prop_gput:NNn}
-\def_new:Npn \prop_gput:NOo {\exp_args:NNOo \prop_gput:NNn}
-\def_new:Npn \prop_gput:Ncn {\exp_args:NNc \prop_gput:NNn }
-\def_new:Npn \prop_gput:OOo {\exp_args:NOOo \prop_gput:NNn}
-\def_new:Npn \prop_gput:cNn {\exp_args:Nc \prop_gput:NNn}
-\def_new:Npn \prop_gput:ccn {\exp_args:Ncc \prop_gput:NNn}
-\def_new:Npn \prop_gput:cco {\exp_args:Ncco \prop_gput:NNn}
-\def_new:Npn \prop_gput:ccx {\exp_args:Nccx \prop_gput:NNn}
+
\def_long_new:NNn \prop_put_aux:w 6{
- #1{#2{#6}#3}
- \quark_if_no_value:nF {#4}
+ #1{\q_prop#2\q_prop{#6}#3}
+ \tlist_if_empty:nF{#5}
{
- \def:Npn \tmp:w ##1#2\q_no_value {#1{##1}}
+ \def:Npn \tmp:w ##1\q_prop#2\q_prop\q_no_value {#1{##1}}
\tmp:w #5
}
}
-\def_long_new:NNn \prop_del:NN 2{
- \prop_split_aux:NNn #1#2{\prop_del_aux:w {\toks_set:Nn #1}#2}}
-\def_long_new:NNn \prop_gdel:NN 2{
- \prop_split_aux:NNn #1#2{\prop_del_aux:w {\toks_gset:Nn #1}#2}}
-\def_long_new:NNn \prop_del_aux:w 5{\quark_if_no_value:nF {#4}
- {\def:Npn \tmp:w ##1#2\q_no_value {#1{#3##1}}\tmp:w #5}}
-\def_new:NNn \prop_if_in:NNTF 2{
- \prop_split_aux:NNn #1#2\prop_if_in_aux:w}
-\def_new:Npn \prop_if_in:NOTF {\exp_args:Nno \prop_if_in:NNTF}
-\def_new:Npn \prop_if_in:ccTF {\exp_args:Ncc \prop_if_in:NNTF}
+\def_new:Npn \prop_gput:Nno {\exp_args:NNno \prop_gput:Nnn}
+\def_new:Npn \prop_gput:Nnx {\exp_args:NNnx \prop_gput:Nnn}
+\def_new:Npn \prop_gput:Nox {\exp_args:NNox \prop_gput:Nnn}
+\def_new:Npn \prop_gput:Noo {\exp_args:NNoo \prop_gput:Nnn}
+\def_new:Npn \prop_gput:Ncn {\exp_args:NNc \prop_gput:Nnn}
+\def_new:Npn \prop_gput:Ooo {\exp_args:NOoo \prop_gput:Nnn}
+\def_new:Npn \prop_gput:cnn {\exp_args:Nc \prop_gput:Nnn}
+\def_new:Npn \prop_gput:ccn {\exp_args:Ncc \prop_gput:Nnn}
+\def_new:Npn \prop_gput:cco {\exp_args:Ncco \prop_gput:Nnn}
+\def_new:Npn \prop_gput:ccx {\exp_args:Nccx \prop_gput:Nnn}
+\def_long_new:NNn \prop_del:Nn 2{
+ \prop_split_aux:Nnn #1{#2}{\prop_del_aux:w {\toks_set:Nn #1}{#2}}}
+\def_long_new:NNn \prop_gdel:Nn 2{
+ \prop_split_aux:Nnn #1{#2}{\prop_del_aux:w {\toks_gset:Nn #1}{#2}}}
+\def_long_new:NNn \prop_del_aux:w 5{
+ \def:Npn \tmp:w {#4}
+ \quark_if_no_value:NF \tmp:w
+ {\def:Npn \tmp:w ##1\q_prop#2\q_prop\q_no_value {#1{#3##1}}
+ \tmp:w #5}}
+\def_new:NNn \prop_if_in:NnTF 2{
+ \prop_split_aux:Nnn #1{#2}\prop_if_in_aux:w}
\def_new:NNn \prop_if_in_aux:w 3{\quark_if_no_value:nFT {#2}}
-\def_long_new:NNn \prop_gput_if_new:NNn 2{
- \prop_split_aux:NNn #1#2{\prop_put_if_new_aux:w #1#2}}
+
+\def_new:Npn \prop_if_in:NoTF {\exp_args:NNo \prop_if_in:NnTF}
+\def_new:Npn \prop_if_in:ccTF {\exp_args:Ncc \prop_if_in:NnTF}
+\def_long_new:NNn \prop_gput_if_new:Nnn 2{
+ \prop_split_aux:Nnn #1{#2}{\prop_put_if_new_aux:w #1{#2}}}
\def_long_new:NNn \prop_put_if_new_aux:w 6{
- \quark_if_no_value:nT {#4}{#1{#2{#6}#3}}}
+ \tlist_if_empty:nT {#5}{#1{\q_prop#2\q_prop{#6}#3}}}
\let_new:NN \prop_set_eq:NN \toks_set_eq:NN
-\let_new:NN \prop_set_eq:Nc \toks_set_eq:Nc
+\let_new:NN \prop_set_eq:Nc \toks_set_eq:Nc
\let_new:NN \prop_set_eq:cN \toks_set_eq:cN
-\let_new:NN \prop_set_eq:cc \toks_set_eq:cc
-\let_new:NN \prop_gset_eq:NN \toks_gset_eq:NN
+\let_new:NN \prop_set_eq:cc \toks_set_eq:cc
+\let_new:NN \prop_gset_eq:NN \toks_gset_eq:NN
\let_new:NN \prop_gset_eq:Nc \toks_gset_eq:Nc
-\let_new:NN \prop_gset_eq:cN \toks_gset_eq:cN
+\let_new:NN \prop_gset_eq:cN \toks_gset_eq:cN
\let_new:NN \prop_gset_eq:cc \toks_gset_eq:cc
\let_new:NN \prop_if_empty_p:N \toks_if_empty_p:N
\let_new:NN \prop_if_empty_p:c \toks_if_empty_p:c
@@ -138,13 +150,13 @@
\let_new:NN \prop_if_empty:cT \toks_if_empty:cTF
\let_new:NN \prop_if_empty:cF \toks_if_empty:cF
\def_new:NNn \prop_if_eq:NNTF 2 {
- \tlist_if_eq:xxTF{\prop_use:N #1}{\prop_use:N #2}
+ \tlist_if_eq:xxTF{\toks_use:N #1}{\toks_use:N #2}
}
\def_new:NNn \prop_if_eq:NNT 2 {
- \tlist_if_eq:xxT{\prop_use:N #1}{\prop_use:N #2}
+ \tlist_if_eq:xxT{\toks_use:N #1}{\toks_use:N #2}
}
\def_new:NNn \prop_if_eq:NNF 2 {
- \tlist_if_eq:xxF{\prop_use:N #1}{\prop_use:N #2}
+ \tlist_if_eq:xxF{\toks_use:N #1}{\toks_use:N #2}
}
\def_new:Npn \prop_if_eq:NcTF {\exp_args:NNc \prop_if_eq:NNTF}
\def_new:Npn \prop_if_eq:NcT {\exp_args:NNc \prop_if_eq:NNT}
@@ -156,32 +168,82 @@
\def_new:Npn \prop_if_eq:ccT {\exp_args:Ncc \prop_if_eq:NNT}
\def_new:Npn \prop_if_eq:ccF {\exp_args:Ncc \prop_if_eq:NNF}
\def_new:Npn \prop_map_function:NN #1#2{
- \exp_after:NN \prop_map_function_aux:NNn
- \exp_after:NN #2 \prop_use:N #1 \q_nil \q_no_value \q_stop
+ \exp_after:NN \prop_map_function_aux:w
+ \exp_after:NN #2 \toks_use:N #1 \q_prop{}\q_prop \q_no_value \q_stop
+}
+\def_new:Npn \prop_map_function_aux:w #1\q_prop#2\q_prop#3{
+ \if:w \tlist_if_empty_p:n{#2}
+ \exp_after:NN \prop_map_break:w
+ \fi:
+ #1{#2}{#3}
+ \prop_map_function_aux:w #1
}
-\def_new:Npn \prop_map_function_aux:NNn #1#2#3{
- \if_meaning:NN \q_nil #1
+
+\def:Npn \prop_map_function:NN #1#2{
+ \exp_after:NN \prop_map_function_aux:w
+ \exp_after:NN #2 \toks_use:N #1 \q_prop \q_no_value \q_prop \q_no_value
+}
+\def:Npn \prop_map_function_aux:w #1\q_prop#2\q_prop#3{
+ \quark_if_no_value:nF{#2}
+ {
+ #1{#2}{#3}
+ \prop_map_function_aux:w #1
+ }
+}
+
+\def:Npn \prop_map_function:NN #1#2{
+ \exp_after:NN \prop_map_function_aux:w
+ \exp_after:NN #2 \toks_use:N #1 \q_prop \q_nil \q_prop \q_no_value \q_stop
+}
+\def:Npn \prop_map_function_aux:w #1\q_prop#2\q_prop#3{
+ \if_meaning:NN \q_nil #2
\exp_after:NN \prop_map_break:w
\fi:
- #1#2{#3}
- \prop_map_function_aux:NNn #1
+ #1{#2}{#3}
+ \prop_map_function_aux:w #1
}
+
+
\def_new:Npn \prop_map_function:cN {\exp_args:Nc \prop_map_function:NN }
+\def_new:Npn \prop_map_function:Nc {\exp_args:NNc \prop_map_function:NN }
\def_new:Npn \prop_map_function:cc {\exp_args:Ncc \prop_map_function:NN}
\num_new:N \l_prop_inline_level_num
\def_new:Npn \prop_map_inline:Nn #1#2 {
\num_incr:N \l_prop_inline_level_num
\def_long:cpn {prop_map_inline_ \num_use:N \l_prop_inline_level_num :n}
##1##2{#2}
- \exp_args:NcE \prop_map_function:N
+ \prop_map_function:Nc #1
{prop_map_inline_ \num_use:N \l_prop_inline_level_num :n}
- \prop_use:N #1
- \q_nil \q_no_value \q_stop
\num_decr:N \l_prop_inline_level_num
}
\def_new:Npn \prop_map_inline:cN { \exp_args:Nc \prop_map_inline:NN }
-
\let_new:NN \prop_map_break:w \use_none_delimit_by_q_stop:w
+\def:Npn \prop_put:NNn {\typeout{Warning:~name~
+ changed~ to~ \string\prop_put:Nnn}\prop_put:Nnn}
+\def:Npn \prop_gput:NNn {\typeout{Warning:~name~
+ changed~ to~ \string\prop_gput:Nnn }\prop_gput:Nnn }
+\def:Npn \prop_gput:NNo {\typeout{Warning:~name~
+ changed~ to~ \string\prop_gput:Nno }\prop_gput:Nno }
+\def:Npn \prop_gput:cNn {\typeout{Warning:~name~
+ changed~ to~ \string\prop_gput:cnn }\prop_gput:cnn }
+\def:Npn \prop_gput_if_new:NNn {\typeout{Warning:~name~
+ changed~ to~ \string\prop_gput_if_new:Nnn }\prop_gput_if_new:Nnn }
+\def:Npn \prop_get:NNN {\typeout{Warning:~name~
+ changed~ to~ \string\prop_get:NnN }\prop_get:NnN }
+\def:Npn \prop_get:cNN {\typeout{Warning:~name~
+ changed~ to~ \string\prop_get:cnN }\prop_get:cnN }
+\def:Npn \prop_gget:NNN {\typeout{Warning:~name~
+ changed~ to~ \string\prop_gget:NnN }\prop_gget:NnN }
+\def:Npn \prop_gget:cNN {\typeout{Warning:~name~
+ changed~ to~ \string\prop_gget:cnN }\prop_gget:cnN }
+\def:Npn \prop_get_gdel:NNN {\typeout{Warning:~name~
+ changed~ to~ \string\prop_get_gdel:NnN }\prop_get_gdel:NnN }
+\def:Npn \prop_del:NN {\typeout{Warning:~name~
+ changed~ to~ \string\prop_del:Nn }\prop_del:Nn }
+\def:Npn \prop_gdel:NN {\typeout{Warning:~name~
+ changed~ to~ \string\prop_gdel:Nn }\prop_gdel:Nn }
+\def:Npn \prop_if_in:NNTF {\typeout{Warning:~name~
+ changed~ to~ \string\prop_if_in:NnTF }\prop_if_in:NnTF }
%%
%%
%% End of file `l3prop.sty'.
diff --git a/Master/texmf-dist/tex/latex/expl3/l3quark.sty b/Master/texmf-dist/tex/latex/expl3/l3quark.sty
index fd88bfa9cfa..c766400bcbb 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3quark.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3quark.sty
@@ -48,8 +48,10 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3quark.dtx 573 2006-08-21 20:59:37Z morten $
+\GetIdInfo$Id: l3quark.dtx 705 2007-12-02 22:14:25Z morten $
{L3 Experimental Quark Commands}
+\ProvidesExplPackage
+ {\filename}{\filedate}{\fileversion}{\filedescription}
\RequirePackage{l3expan}\par
\def_new:Npn \quark_new:N #1{\tlp_new:Nn #1{#1}}
\quark_new:N \q_stop
@@ -57,6 +59,48 @@
\quark_new:N \q_nil
\quark_new:N\q_error
\quark_new:N\q_mark
+\quark_new:N\q_recursion_tail
+\quark_new:N\q_recursion_stop
+\def_long_new:Npn \quark_if_recursion_tail_stop:n #1 {
+ \exp_after:NN\if_meaning:NN
+ \quark_if_recursion_tail_aux:w #1?\q_nil\q_recursion_tail\q_recursion_tail
+ \exp_after:NN \use_none_delimit_by_q_recursion_stop:w
+ \fi:
+}
+\def_long_new:Npn \quark_if_recursion_tail_stop:N #1 {
+ \if_meaning:NN#1\q_recursion_tail
+ \exp_after:NN \use_none_delimit_by_q_recursion_stop:w
+ \fi:
+}
+\def_new:Npn \quark_if_recursion_tail_stop:o{
+ \exp_args:No\quark_if_recursion_tail_stop:n
+}
+\def_long_new:Npn \quark_if_recursion_tail_stop_do:nn #1#2 {
+ \exp_after:NN\if_meaning:NN
+ \quark_if_recursion_tail_aux:w #1?\q_nil\q_recursion_tail
+ \exp_after:NN \use_arg_i_delimit_by_q_recursion_stop:nw
+ \else:
+ \exp_after:NN\use_none:n
+ \fi:
+ {#2}
+}
+\def_long_new:Npn \quark_if_recursion_tail_stop_do:Nn #1#2 {
+ \if_meaning:NN #1\q_recursion_tail
+ \exp_after:NN \use_arg_i_delimit_by_q_recursion_stop:nw
+ \else:
+ \exp_after:NN\use_none:n
+ \fi:
+ {#2}
+}
+\def_new:Npn \quark_if_recursion_tail_stop_do:on{
+ \exp_args:No\quark_if_recursion_tail_stop_do:nn
+}
+\def_long_new:Npn \quark_if_recursion_tail_aux:w
+ #1#2\q_nil\q_recursion_tail{#1}
+\def_long_new:Npn\use_none_delimit_by_q_recursion_stop:w
+ #1\q_recursion_stop {}
+\def_long_new:Npn\use_arg_i_delimit_by_q_recursion_stop:nw
+ #1#2\q_recursion_stop {#1}
\def_long_test_function_new:npn {quark_if_no_value:N} #1 {
\if_meaning:NN\q_no_value#1}
\def_long_new:Npn \quark_if_no_value_p:N #1{
diff --git a/Master/texmf-dist/tex/latex/expl3/l3seq.sty b/Master/texmf-dist/tex/latex/expl3/l3seq.sty
index 096b825697f..c4ebb497c03 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3seq.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3seq.sty
@@ -48,8 +48,10 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3seq.dtx 573 2006-08-21 20:59:37Z morten $
+\GetIdInfo$Id: l3seq.dtx 621 2007-09-01 20:14:19Z morten $
{L3 Experimental sequences and stacks}
+\ProvidesExplPackage
+ {\filename}{\filedate}{\fileversion}{\filedescription}
\RequirePackage{l3quark}
\RequirePackage{l3tlp}
\RequirePackage{l3expan}
diff --git a/Master/texmf-dist/tex/latex/expl3/l3skip.sty b/Master/texmf-dist/tex/latex/expl3/l3skip.sty
index 8e24a01271b..588bcb9f88b 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3skip.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3skip.sty
@@ -15,7 +15,7 @@
%% Do not distribute a modified version of this file.
%%
%%
-%% File: l3skip.dtx Copyright (C) 2005-2006 Frank Mittelbach, LaTeX3 project
+%% File: l3skip.dtx Copyright (C) 2005-2007 Frank Mittelbach, 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
@@ -48,8 +48,10 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3skip.dtx 573 2006-08-21 20:59:37Z morten $
+\GetIdInfo$Id: l3skip.dtx 666 2007-09-27 15:53:26Z mittelba $
{L3 Experimental skip registers}
+\ProvidesExplPackage
+ {\filename}{\filedate}{\fileversion}{\filedescription}
\RequirePackage{l3int}
\RequirePackage{l3prg}
\let:NN \skip_new:N \newskip
@@ -100,10 +102,9 @@
\let:NN \c_zero_skip \z@
\let:NN \c_max_skip \maxdimen
\def_new:Npn \skip_infinite_glue:nTF #1{
- \prg_logic_test:nTF {
- \prg_logic_or_p:nn
- { \int_compare_p:nNn {\etex_gluestretchorder:D #1 } > \c_zero }
- { \int_compare_p:nNn {\etex_glueshrinkorder:D #1 } > \c_zero }
+ \predicate:nTF {
+ \int_compare_p:nNn {\etex_gluestretchorder:D #1 } > \c_zero ||
+ \int_compare_p:nNn {\etex_glueshrinkorder:D #1 } > \c_zero
}
}
\def_new:Npn \skip_split_finite_else_action:nnNN #1#2#3#4{
@@ -137,10 +138,12 @@
\def_new:Npn\dim_add:cn{\exp_args:Nc\dim_add:Nn}
\def_new:Npn\dim_add:Nc{\exp_args:NNc\dim_add:Nn}
\def_new:Npn \dim_gadd:Nn { \pref_global:D \dim_add:Nn }
+\def_new:Npn\dim_gadd:cn{\exp_args:Nc\dim_gadd:Nn}
\def_new:Npn \dim_sub:Nn #1#2{\tex_advance:D#1-#2\scan_stop:}
\def_new:Npn\dim_sub:cn{\exp_args:Nc\dim_sub:Nn}
\def_new:Npn\dim_sub:Nc{\exp_args:NNc\dim_sub:Nn}
\def_new:Npn \dim_gsub:Nn {\pref_global:D \dim_sub:Nn }
+\def_new:Npn\dim_gsub:cn{\exp_args:Nc\dim_gsub:Nn}
\let_new:NN \dim_use:N \tex_the:D
\def_new:Npn \dim_use:c {\exp_args:Nc\dim_use:N}
\dim_new:N \l_tmpa_dim
diff --git a/Master/texmf-dist/tex/latex/expl3/l3tlp.sty b/Master/texmf-dist/tex/latex/expl3/l3tlp.sty
index e80ea876717..2b911f20523 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3tlp.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3tlp.sty
@@ -15,7 +15,7 @@
%% Do not distribute a modified version of this file.
%%
%%
-%% File: l3tlp.dtx Copyright (C) 1990-2006 LaTeX3 project
+%% File: l3tlp.dtx Copyright (C) 1990-2007 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
@@ -48,8 +48,10 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3tlp.dtx 581 2006-12-12 12:28:27Z morten $
+\GetIdInfo$Id: l3tlp.dtx 735 2008-01-14 22:31:02Z morten $
{L3 Experimental Token List Pointers}
+\ProvidesExplPackage
+ {\filename}{\filedate}{\fileversion}{\filedescription}
\RequirePackage{l3basics}
\def_long_new:Npn \tlp_new:Nn #1#2{
\chk_new_cs:N #1
@@ -60,6 +62,8 @@
\chk_new_cs:N #1
\gdef:Npx #1{#2}
}
+\def_new:Npn \tlp_new:N #1{\tlp_new:Nn #1{}}
+\def_new:Npn \tlp_new:c #1{\tlp_new:cn {#1}{}}
\def_new:Npn \tlp_use:N #1 {
\if_meaning:NN #1 \scan_stop:
\err_latex_bug:x {Token~list~pointer~ `\token_to_string:N #1'~
@@ -74,11 +78,13 @@
\def_long_new:Npn\tlp_gset:Nn#1#2{\gdef:Npn#1{#2}}
\def_long_new:Npn\tlp_gset:Nx#1#2{\gdef:Npx#1{#2}}
\def_new:Npn \tlp_set:No {\exp_args:NNo \tlp_set:Nn}
+\def_new:Npn \tlp_set:Nd {\exp_args:NNd \tlp_set:Nn}
\def_new:Npn \tlp_set:Nf {\exp_args:NNf \tlp_set:Nn}
\def_new:Npn \tlp_set:cn {\exp_args:Nc \tlp_set:Nn}
\def_new:Npn \tlp_set:co {\exp_args:Nco \tlp_set:Nn}
\def_new:Npn \tlp_set:cx {\exp_args:Nc \tlp_set:Nx}
\def_new:Npn \tlp_gset:No {\exp_args:NNo \tlp_gset:Nn}
+\def_new:Npn \tlp_gset:Nd {\exp_args:NNd \tlp_gset:Nn}
\def_new:Npn \tlp_gset:cn {\exp_args:Nc \tlp_gset:Nn}
\def_new:Npn \tlp_gset:cx {\exp_args:Nc \tlp_gset:Nx}
\let_new:NN \tlp_set_eq:NN \let:NN
@@ -97,26 +103,59 @@
\def_new:Npn \tlp_clear_new:c {\exp_args:Nc \tlp_clear_new:N}
\let_new:NN \tlp_gclear_new:N \tlp_gclear:N
\def_new:Npn \tlp_gclear_new:c {\exp_args:Nc \tlp_gclear_new:N}
-\def_new:Npn \tlp_put_left:Nn #1{
- \exp_args:No \tlp_put_left_aux:w {#1}#1}
-\def_new:Npn\tlp_put_left:No{\exp_args:NNo\tlp_put_left:Nn}
-\def_new:Npn \tlp_gput_left:Nn {
- \pref_global:D
- \tlp_put_left:Nn
+\def_long_new:Npn \tlp_put_left:Nn #1#2{
+ \tlp_set:Nn \l_exp_tlp{#2}
+ \tlp_set:Nx #1{\exp_not:o{\l_exp_tlp}\exp_not:o{#1}}
+}
+\def_long_new:Npn \tlp_put_left:No #1#2{
+ \tlp_set:Nn \l_exp_tlp{#2}
+ \tlp_set:Nx #1{\exp_not:d{\l_exp_tlp}\exp_not:o{#1}}
+}
+\def_long_new:Npn \tlp_put_left:Nx #1#2{
+ \tlp_set:Nx #1{#2\exp_not:o{#1}}
+}
+\def_long_new:Npn \tlp_gput_left:Nn #1#2{
+ \tlp_set:Nn \l_exp_tlp{#2}
+ \tlp_gset:Nx #1{\exp_not:o{\l_exp_tlp}\exp_not:o{#1}}
+}
+\def_long_new:Npn \tlp_gput_left:No #1#2{
+ \tlp_set:Nn \l_exp_tlp{#2}
+ \tlp_gset:Nx #1{\exp_not:d{\l_exp_tlp}\exp_not:o{#1}}
+}
+\def_long_new:Npn \tlp_gput_left:Nx #1#2{
+ \tlp_gset:Nx #1{#2\exp_not:o{#1}}
+}
+\def_long_new:Npn \tlp_put_left:cn{\exp_args:Nc\tlp_put_left:Nn}
+\def_long_new:Npn \tlp_put_left:co{\exp_args:Nc\tlp_put_left:No}
+\def_long_new:Npn \tlp_put_left:cx{\exp_args:Nc\tlp_put_left:Nx}
+\def_long_new:Npn \tlp_gput_left:cn{\exp_args:Nc\tlp_gput_left:Nn}
+\def_long_new:Npn \tlp_gput_left:co{\exp_args:Nc\tlp_gput_left:No}
+\def_long_new:Npn \tlp_gput_left:cx{\exp_args:Nc\tlp_gput_left:Nx}
+\def_long_new:Npn \tlp_put_right:Nn #1#2{
+ \tlp_set:Nn \l_exp_tlp{#2}
+ \tlp_set:Nx #1{\exp_not:o{#1}\exp_not:o{\l_exp_tlp}}
+}
+\def_long_new:Npn \tlp_gput_right:Nn #1#2{
+ \tlp_set:Nn \l_exp_tlp{#2}
+ \tlp_gset:Nx #1{\exp_not:o{#1}\exp_not:o{\l_exp_tlp}}
+}
+\def_long_new:Npn \tlp_put_right:No #1#2{
+ \tlp_set:Nn \l_exp_tlp{#2}
+ \tlp_set:Nx #1{\exp_not:o{#1}\exp_not:d{\l_exp_tlp}}
}
-\def_new:Npn\tlp_gput_left:No{\exp_args:NNo\tlp_gput_left:Nn}
-\def_new:Npn\tlp_gput_left:Nx{\exp_args:NNx\tlp_gput_left:Nn}
-\def_long_new:Npn \tlp_put_left_aux:w #1#2#3{\tlp_set:Nn #2{#3#1}
+\def_long_new:Npn \tlp_gput_right:No #1#2{
+ \tlp_set:Nn \l_exp_tlp{#2}
+ \tlp_gset:Nx #1{\exp_not:o{#1}\exp_not:d{\l_exp_tlp}}
+}
+\def_long:Npn \tlp_put_right:Nx #1#2{
+ \tlp_set:Nx #1{\exp_not:o{#1}#2}
+}
+\def_long:Npn \tlp_gput_right:Nx #1#2{
+ \tlp_gset:Nx #1{\exp_not:o{#1}#2}
}
-\def_long_new:Npn \tlp_put_right:Nn #1#2{\tlp_set:No #1{#1#2}}
-\def_long_new:Npn \tlp_gput_right:Nn #1#2{\tlp_gset:No #1{#1#2}}
-\def_new:Npn \tlp_gput_right:No {\exp_args:NNo \tlp_gput_right:Nn}
-\def_new:Npn \tlp_gput_right:Nx {\exp_args:NNx \tlp_gput_right:Nn}
\def_new:Npn \tlp_gput_right:cn {\exp_args:Nc \tlp_gput_right:Nn}
-\def_new:Npn \tlp_gput_right:co {\exp_args:Nco \tlp_gput_right:Nn}
+\def_new:Npn \tlp_gput_right:co {\exp_args:Nc \tlp_gput_right:No}
\def_new:Npn \tlp_put_right:cc {\exp_args:Ncc \tlp_put_right:Nn}
-\def_new:Npn \tlp_put_right:No {\exp_args:NNo \tlp_put_right:Nn}
-\def_new:Npn \tlp_put_right:Nx {\exp_args:Nnx \tlp_put_right:Nn}
\def_new:Npn \tlp_gset:Nc {
\pref_global:D
\tlp_set:Nc}
@@ -184,14 +223,14 @@
\let_new:NN \tlist_to_uppercase:n \tex_uppercase:D
\let_new:NN \tlist_to_str:n \etex_detokenize:D
\def_long_new:Npn \tlist_map_function:nN #1#2{
- \tlist_map_function_aux:Nn #2 #1 \q_nil \q_stop
+ \tlist_map_function_aux:Nn #2 #1 \q_recursion_tail \q_recursion_stop
}
\def_new:Npn \tlp_map_function:NN #1#2{
\exp_after:NN \tlist_map_function_aux:Nn
- \exp_after:NN #2 #1 \q_nil \q_stop
+ \exp_after:NN #2 #1 \q_recursion_tail \q_recursion_stop
}
\def_long_new:Npn \tlist_map_function_aux:Nn #1#2{
- \quark_if_nil:nT{#2} \tlist_map_break:w
+ \quark_if_recursion_tail_stop:n{#2}
#1{#2} \tlist_map_function_aux:Nn #1
}
\def_new:Npn\tlp_map_function:cN{\exp_args:Nc\tlp_map_function:NN}
@@ -201,7 +240,7 @@
##1{#2}
\exp_args:Nc \tlist_map_function_aux:Nn
{tlist_map_inline_ \num_use:N \l_tlp_inline_level_num :n}
- #1 \q_nil\q_stop
+ #1 \q_recursion_tail\q_recursion_stop
\num_decr:N \l_tlp_inline_level_num
}
\def_long_new:Npn \tlp_map_inline:Nn #1#2{
@@ -210,22 +249,22 @@
##1{#2}
\exp_args:NcE \tlist_map_function_aux:Nn
{tlist_map_inline_ \num_use:N \l_tlp_inline_level_num :n}
- #1 \q_nil\q_stop
+ #1 \q_recursion_tail\q_recursion_stop
\num_decr:N \l_tlp_inline_level_num
}
\def_new:Npn\tlp_map_inline:cN{\exp_args:Nc\tlp_map_inline:NN}
\tlp_new:Nn \l_tlp_inline_level_num{0}
\def_long_new:Npn \tlist_map_variable:nNn #1#2#3{
- \tlist_map_variable_aux:Nnn #2 {#3} #1 \q_nil \q_stop
+ \tlist_map_variable_aux:Nnn #2 {#3} #1 \q_recursion_tail \q_recursion_stop
}
\def_new:Npn \tlp_map_variable:NNn {\exp_args:No \tlist_map_variable:nNn}
\def_new:Npn \tlp_map_variable:cNn {\exp_args:Nc \tlp_map_variable:NNn}
\def_long_new:Npn \tlist_map_variable_aux:Nnn #1#2#3{
\tlp_set:Nn #1{#3}
- \quark_if_nil:NT #1 \tlist_map_break:w
+ \quark_if_recursion_tail_stop:N #1
#2 \tlist_map_variable_aux:Nnn #1{#2}
}
-\let_new:NN \tlist_map_break:w \use_none_delimit_by_q_stop:w
+\let_new:NN \tlist_map_break:w \use_none_delimit_by_q_recursion_stop:w
\let_new:NN \tlp_map_break:w \tlist_map_break:w
\let_new:NN \tlist_compare:xx \pdfstrcmp
\def_long_new:NNn \tlist_compare:nn 2{
@@ -272,12 +311,46 @@
\tlp_set:Nx \l_testb_tlp {\exp_not:n{#2}}
\if_meaning:NN\l_testa_tlp \l_testb_tlp
}
+ \def_long_test_function:npn{tlist_if_eq:no}#1#2{
+ \tlp_set:Nx \l_testa_tlp {\exp_not:n{#1}}
+ \tlp_set:Nx \l_testb_tlp {\exp_not:o{#2}}
+ \if_meaning:NN\l_testa_tlp \l_testb_tlp
+ }
+ \def_long_test_function:npn{tlist_if_eq:nx}#1#2{
+ \tlp_set:Nx \l_testa_tlp {\exp_not:n{#1}}
+ \tlp_set:Nx \l_testb_tlp {#2}
+ \if_meaning:NN\l_testa_tlp \l_testb_tlp
+ }
+ \def_long_test_function:npn{tlist_if_eq:on}#1#2{
+ \tlp_set:Nx \l_testa_tlp {\exp_not:o{#1}}
+ \tlp_set:Nx \l_testb_tlp {\exp_not:n{#2}}
+ \if_meaning:NN\l_testa_tlp \l_testb_tlp
+ }
\def_long_test_function:npn{tlist_if_eq:oo}#1#2{
\tlp_set:Nx \l_testa_tlp {\exp_not:o{#1}}
\tlp_set:Nx \l_testb_tlp {\exp_not:o{#2}}
\if_meaning:NN\l_testa_tlp \l_testb_tlp
}
- \def_long:Npn\tlist_compare:xx #1#2{\ERROR}
+ \def_long_test_function:npn{tlist_if_eq:ox}#1#2{
+ \tlp_set:Nx \l_testa_tlp {\exp_not:o{#1}}
+ \tlp_set:Nx \l_testb_tlp {#2}
+ \if_meaning:NN\l_testa_tlp \l_testb_tlp
+ }
+ \def_long_test_function:npn{tlist_if_eq:xn}#1#2{
+ \tlp_set:Nx \l_testa_tlp {#1}
+ \tlp_set:Nx \l_testb_tlp {\exp_not:n{#2}}
+ \if_meaning:NN\l_testa_tlp \l_testb_tlp
+ }
+ \def_long_test_function:npn{tlist_if_eq:xo}#1#2{
+ \tlp_set:Nx \l_testa_tlp {#1}
+ \tlp_set:Nx \l_testb_tlp {\exp_not:o{#2}}
+ \if_meaning:NN\l_testa_tlp \l_testb_tlp
+ }
+ \def_long_test_function:npn{tlist_if_eq:xx}#1#2{
+ \tlp_set:Nx \l_testa_tlp {#1}
+ \tlp_set:Nx \l_testb_tlp {#2}
+ \if_meaning:NN\l_testa_tlp \l_testb_tlp
+ }
}
\def_long:Npn \tlp_if_in:NnTF #1#2{
\def_long:Npn\tmp:w ##1 #2 ##2\q_stop{
@@ -288,7 +361,7 @@
\def_new:Npn \tlp_if_in:cnTF {\exp_args:Nc\tlp_if_in:NnTF}
\def_long:Npn \tlp_if_in:NnT #1#2{
\def_long:Npn\tmp:w ##1 #2 ##2\q_stop{
- \quark_if_no_value:nFT{##2}
+ \quark_if_no_value:nF{##2}
}
\exp_after:NN \tmp:w #1 #2 \q_no_value \q_stop
}
@@ -309,11 +382,11 @@
\def_new:Npn \tlist_if_in:onTF {\exp_args:No\tlist_if_in:nnTF}
\tlp_new:Nn\l_tlp_replace_tlp{}
\def_long_new:NNn \tlp_replace_in_aux:NNnn 4{
- \def:Npn \tmp:w ##1#3##2\q_stop{
+ \def_long:Npn \tmp:w ##1#3##2\q_stop{
\quark_if_no_value:nF{##2}
{
\tlp_set:Nx\l_tlp_replace_tlp{\exp_not:o{\use_none:n##1#4}}
- \def:Npn \tmp:w ####1#3\q_no_value{
+ \def_long:Npn \tmp:w ####1#3\q_no_value{
\tlp_put_right:Nx \l_tlp_replace_tlp {\exp_not:o{\use_none:n ####1}}
}
\tmp:w \q_mark ##2
@@ -329,7 +402,7 @@
\def_new:Npn \tlp_greplace_in:cnn{\exp_args:Nc\tlp_greplace_in:Nnn}
\def_long:NNn \tlp_replace_all_in_aux:NNnn 4{
\tlp_clear:N \l_tlp_replace_tlp
- \def:Npn \tmp:w ##1#3##2\q_stop{
+ \def_long:Npn \tmp:w ##1#3##2\q_stop{
\quark_if_no_value:nTF{##2}
{
\tlp_put_right:Nx \l_tlp_replace_tlp {\exp_not:o{\use_none:n##1}}
@@ -409,11 +482,10 @@
\def_long_test_function_new:npn {tlist_if_head_eq_catcode:nN}#1#2{
\if:w\tlist_if_head_eq_catcode_p:nN{#1}#2}
\def_long_new:Npn \tlist_reverse:n #1{
- \tlist_reverse_aux:nN {} #1 \q_nil\q_stop
+ \tlist_reverse_aux:nN {} #1 \q_recursion_tail\q_stop
}
\def_long_new:Npn \tlist_reverse_aux:nN #1#2{
- \quark_if_nil:NT #2
- { \use_arg_i_delimit_by_q_stop:nw {#1} }
+ \quark_if_recursion_tail_stop_do:nn {#2}{ #1 }
\tlist_reverse_aux:nN {#2#1}
}
\RequirePackage{l3expan}
diff --git a/Master/texmf-dist/tex/latex/expl3/l3token.sty b/Master/texmf-dist/tex/latex/expl3/l3token.sty
index ffdfc4caae9..b9f43418038 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3token.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3token.sty
@@ -48,8 +48,10 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3token.dtx 578 2006-11-21 18:13:24Z morten $
+\GetIdInfo$Id: l3token.dtx 701 2007-11-27 14:21:05Z morten $
{L3 Experimental token investigation and manipulation}
+\ProvidesExplPackage
+ {\filename}{\filedate}{\fileversion}{\filedescription}
\RequirePackage{l3prg}
\RequirePackage{l3int}
\let_new:NN \char_set_catcode:w \tex_catcode:D
@@ -61,6 +63,19 @@
\def_new:Npn \char_show_value_catcode:w {\tex_showthe:D\tex_catcode:D}
\def_new:Npn \char_show_value_catcode:n #1{
\char_show_value_catcode:w \int_eval:n{#1}}
+\let_new:NN \char_set_mathcode:w \tex_mathcode:D
+\def_new:Npn \char_set_mathcode:nn #1#2{
+ \char_set_mathcode:w #1 = \int_eval:n{#2}
+}
+\def_protected_new:Npn \char_gset_mathcode:w {\pref_global:D\tex_mathcode:D}
+\def_new:Npn \char_gset_mathcode:nn #1#2{
+ \char_gset_mathcode:w #1 = \int_eval:n{#2}
+}
+\def_new:Npn \char_value_mathcode:w {\int_use:N\tex_mathcode:D}
+\def_new:Npn \char_value_mathcode:n #1{\char_value_mathcode:w \int_eval:n{#1}}
+\def_new:Npn \char_show_value_mathcode:w {\tex_showthe:D\tex_mathcode:D}
+\def_new:Npn \char_show_value_mathcode:n #1{
+ \char_show_value_mathcode:w \int_eval:n{#1}}
\let_new:NN \char_set_lccode:w \tex_lccode:D
\def_new:Npn \char_set_lccode:nn #1#2{
\char_set_lccode:w #1 = \int_eval:n{#2}
@@ -478,10 +493,9 @@
\fi:
}
\def_new:Npn \peek_execute_branches_charcode: {
- \prg_if_predicate:nTF {
- \prg_if_predicate_or_p:nn
- {\token_if_eq_catcode_p:NN \l_peek_token \c_group_begin_token}
- {\token_if_eq_meaning_p:NN \l_peek_token \c_space_token}
+ \predicate:nTF {
+ \token_if_eq_catcode_p:NN \l_peek_token \c_group_begin_token ||
+ \token_if_eq_meaning_p:NN \l_peek_token \c_space_token
}
{ \l_peek_false_tlp }
{ \exp_after:NN \peek_execute_branches_charcode_aux:NN \l_peek_search_tlp }
diff --git a/Master/texmf-dist/tex/latex/expl3/l3toks.sty b/Master/texmf-dist/tex/latex/expl3/l3toks.sty
index d950644fa85..ea18f851ee0 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3toks.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3toks.sty
@@ -48,8 +48,10 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3toks.dtx 580 2006-11-26 15:56:47Z morten $
+\GetIdInfo$Id: l3toks.dtx 728 2008-01-01 16:11:58Z morten $
{L3 Experimental Token Registers}
+\ProvidesExplPackage
+ {\filename}{\filedate}{\fileversion}{\filedescription}
\RequirePackage{l3expan}\par
\let:NN \toks_new:N \newtoks % nick from LaTeX for the moment
\def_new:Npn \toks_new:c {\exp_args:Nc\toks_new:N}
@@ -149,6 +151,12 @@
\def_new:Npn \toks_if_eq:ccTF {\exp_args:Ncc \toks_if_eq:NNTF}
\def_new:Npn \toks_if_eq:ccT {\exp_args:Ncc \toks_if_eq:NNT}
\def_new:Npn \toks_if_eq:ccF {\exp_args:Ncc \toks_if_eq:NNF}
+\def_new:NNn \toks_if_eq_p:NN 2 {
+ \tlist_if_eq_p:xx {\toks_use:N #1} {\toks_use:N #2}
+}
+\def_new:Npn \toks_if_eq_p:cN {\exp_args:Nc \toks_if_eq_p:NN}
+\def_new:Npn \toks_if_eq_p:Nc {\exp_args:NNc \toks_if_eq_p:NN}
+\def_new:Npn \toks_if_eq_p:cc {\exp_args:Ncc \toks_if_eq_p:NN}
\tex_toksdef:D \l_tmpa_toks = 255
\toks_new:N \l_tmpb_toks
\toks_new:N \l_tmpc_toks
diff --git a/Master/texmf-dist/tex/latex/expl3/l3xref.sty b/Master/texmf-dist/tex/latex/expl3/l3xref.sty
index a99ac7bf196..4635b63f382 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3xref.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3xref.sty
@@ -48,8 +48,10 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3xref.dtx 579 2006-11-25 23:38:03Z morten $
+\GetIdInfo$Id: l3xref.dtx 621 2007-09-01 20:14:19Z morten $
{L3 Experimental cross referencing}
+\ProvidesExplPackage
+ {\filename}{\filedate}{\fileversion}{\filedescription}
\RequirePackage{l3quark}
\RequirePackage{l3toks}
\RequirePackage{l3io}
diff --git a/Master/texmf-dist/tex/latex/expl3/lbase.ini b/Master/texmf-dist/tex/latex/expl3/lbase.ini
new file mode 100644
index 00000000000..9d21274ebb4
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/expl3/lbase.ini
@@ -0,0 +1,65 @@
+%%
+%% This is file `lbase.ini',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% l3final.dtx (with options: `ini')
+%%
+%%
+%% EXPERIMENTAL CODE
+%%
+%% Do not distribute this file without also distributing the
+%% source files specified above.
+%%
+%% Do not distribute a modified version of this file.
+%%
+%%
+%% File: l3final.dtx Copyright (C) 1990-2006 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 ``expl3 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/cgi-bin/cvsweb.cgi/
+%%
+%% 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 LaTeX Project Team.
+%%
+%% -----------------------------------------------------------------------
+%% Derived from a file by Thomas Esser
+
+\ifx\pdfoutput\undefined \else
+ \ifx\pdfoutput\relax \else
+ % We're building the latex format with the pdfetex engine (started 2004).
+ % See this file for details.
+ \input pdftex-dvi.tex
+ \fi
+\fi
+
+%% the usual format initialization.
+%%\scrollmode
+\input lbase.ltx
+%%
+%%
+%% End of file `lbase.ini'.
diff --git a/Master/texmf-dist/tex/latex/expl3/lbase.ltx b/Master/texmf-dist/tex/latex/expl3/lbase.ltx
index 3029de6c78f..a1e6967f6f5 100644
--- a/Master/texmf-dist/tex/latex/expl3/lbase.ltx
+++ b/Master/texmf-dist/tex/latex/expl3/lbase.ltx
@@ -74,22 +74,35 @@
\catcode`\#=6 % hash mark is macro parameter character
\catcode`\^=7 %
\catcode`\^^I=10 % ascii tab is a blank space
-\def\GetIdInfo$Id: #1.dtx #2 #3-#4-#5 #6 #7$#8{%
- \immediate\write-1{#1; v#2, #3/#4/#5; #8}%
+\def\GetIdInfo$#1 #2.#3 #4 #5 #6 #7${%
+ \GetIdInfoAux #5\relax{#2}#5\relax{#4}%
}
-\GetIdInfo$Id: l3names.dtx 577 2006-11-21 18:10:26Z morten $
+\def\GetIdInfoAux #1#2#3#4#5#6\relax{%
+ \ifx#5/%
+ \expandafter\GetIdInfoAuxCVS
+ \else
+ \expandafter\GetIdInfoAuxSVN
+ \fi
+}
+\def\GetIdInfoAuxCVS #1#2\relax#3#4{%
+ \immediate\write-1{#1; v#2, #3; #4}%
+}
+\def\GetIdInfoAuxSVN #1#2-#3-#4\relax#5#6{%
+ \immediate\write-1{#1; #2/#3/#4 v#5 #6}%
+}
+\GetIdInfo$Id: l3names.dtx 621 2007-09-01 20:14:19Z morten $
{L3 Experimental Naming Scheme for TeX Primitives}
\catcode`\{=1 % left brace is begin-group character
\catcode`\}=2 % right brace is end-group character
\catcode`\#=6 % hash mark is macro parameter character
\catcode`\^=7 %
\catcode`\^^I=10 % ascii tab is a blank space
-\catcode`\ =9\relax
-\catcode`\^^I=9\relax
-\catcode`\^^M=9\relax
-\catcode`\~=10\relax
-\catcode`\_=11\relax\catcode`\:=11\relax
-\catcode`\@=11\relax % as long as we use old LaTeX stuff.
+\catcode126=10\relax % tilde is a space char.
+\catcode32=9\relax % space is ignored
+\catcode9=9\relax % tab also ignored
+\endlinechar=32\relax % endline is space
+\catcode95=11\relax % underscore letter
+\catcode58=11\relax % colon letter
\let\tex_let:D\let
\long\def\name_undefine:N#1{
\tex_let:D#1\c_undefined}
@@ -590,32 +603,70 @@
\name_primitive:NN \pdfsetrandomseed \pdf_setrandomseed:D
\name_primitive:NN \pdfnoligatures \pdf_noligatures:D
\name_primitive:NN \textdir \aleph_textdir:D
-\tex_def:D\CodeStart{%
- \tex_catcode:D `\ =9\tex_relax:D
- \tex_catcode:D `\^^M=9\tex_relax:D
- \tex_catcode:D `\^^I=9\tex_relax:D
- \tex_catcode:D `\~=10\tex_relax:D
- \tex_catcode:D `\_=11\tex_relax:D
- \tex_catcode:D `\:=11\tex_relax:D}
-\tex_def:D\CodeStop{
- \tex_catcode:D `\ =10\tex_relax:D
- \tex_catcode:D `\^^M=5\tex_relax:D
- \tex_catcode:D `\^^I=10\tex_relax:D
- \tex_catcode:D `\~=13\tex_relax:D
- \tex_catcode:D `\_=8\tex_relax:D
- \tex_catcode:D `\:=12\tex_relax:D}
+\tex_def:D\ExplSyntaxOn{
+ \tex_def:D\ExplSyntaxStatus{00}
+ \tex_catcode:D 126=10 \tex_relax:D % tilde is a space char.
+ \tex_catcode:D 32=9 \tex_relax:D % space is ignored
+ \tex_catcode:D 9=9 \tex_relax:D % tab also ignored
+ \tex_endlinechar:D =32 \tex_relax:D % endline is space
+ \tex_catcode:D 95=11 \tex_relax:D % underscore letter
+ \tex_catcode:D 58=11 \tex_relax:D % colon letter
+}
+\tex_def:D\ExplSyntaxOff{
+ \tex_def:D\ExplSyntaxStatus{01}
+ \tex_catcode:D 126=13 \tex_relax:D
+ \tex_catcode:D 32=10 \tex_relax:D
+ \tex_catcode:D 9=10 \tex_relax:D
+ \tex_endlinechar:D =13 \tex_relax:D
+ \tex_catcode:D 95=8 \tex_relax:D
+ \tex_catcode:D 58=12 \tex_relax:D
+}
+\tex_let:D \CodeStart \ExplSyntaxOn
+\tex_let:D \CodeStop \ExplSyntaxOff
\tex_def:D \NamesStart{
- \tex_catcode:D `\_=11\scan_stop:
- \tex_catcode:D `\:=11\scan_stop:
- }
+ \tex_catcode:D `\_=11\tex_relax:D
+ \tex_catcode:D `\:=11\tex_relax:D
+}
\tex_def:D \NamesStop{
- \tex_catcode:D `\_=8\scan_stop:
- \tex_catcode:D `\:=12\scan_stop:
- }
-\tex_def:D\GetIdInfo{\CodeStop\GetIdInfoAux}
-\tex_def:D\GetIdInfoAux$#1~#2.dtx~#3~#4-#5-#6~#7~#8$#9{%
- \tex_immediate:D\tex_write:D-1{#2;~v#3,~#4/#5/#6;~#9}%
- \CodeStart
+ \tex_catcode:D `\_=8\tex_relax:D
+ \tex_catcode:D `\:=12\tex_relax:D
+}
+\tex_def:D\GetIdInfo{
+ \tex_begingroup:D
+ \tex_catcode:D 32=10 \tex_relax:D % needed? Probably for now.
+ \GetIdInfoAuxi:w
+}
+\tex_def:D\GetIdInfoAuxi:w$#1~#2.#3~#4~#5~#6~#7~#8$#9{
+ \tex_endgroup:D
+ \tex_def:D\filename{#2}
+ \tex_def:D\fileversion{#4}
+ \tex_def:D\filedescription{#9}
+ \tex_def:D\fileauthor{#7}
+ \GetIdInfoAuxii:w #5\tex_relax:D
+ #3\tex_relax:D#5\tex_relax:D#6\tex_relax:D
+}
+\tex_def:D\GetIdInfoAuxii:w #1#2#3#4#5#6\tex_relax:D{
+ \tex_ifx:D#5/
+ \tex_expandafter:D\GetIdInfoAuxCVS:w
+ \tex_else:D
+ \tex_expandafter:D\GetIdInfoAuxSVN:w
+ \tex_fi:D
+}
+\tex_def:D\GetIdInfoAuxCVS:w #1,v\tex_relax:D
+ #2\tex_relax:D#3\tex_relax:D{
+ \tex_def:D\filedate{#2}
+ \tex_def:D\filenameext{#1}
+ \tex_def:D\filetimestamp{#3}
+\tex_immediate:D\tex_write:D-1
+ {\filename;~ v\fileversion,~\filedate;~\filedescription}
+}
+\tex_def:D\GetIdInfoAuxSVN:w #1\tex_relax:D#2-#3-#4
+ \tex_relax:D#5Z\tex_relax:D{
+ \tex_def:D\filenameext{#1}
+ \tex_def:D\filedate{#2/#3/#4}
+ \tex_def:D\filetimestamp{#5}
+\tex_immediate:D\tex_write:D-1
+ {\filename;~ v\fileversion,~\filedate;~\filedescription}
}
%% File: l3basics.dtx Copyright (C) 1990-2006 LaTeX3 project
%%
@@ -649,7 +700,7 @@
%% prior consultation with the LaTeX Project Team.
%%
%% -----------------------------------------------------------------------
-\GetIdInfo$Id: l3basics.dtx 583 2006-12-12 17:26:44Z morten $
+\GetIdInfo$Id: l3basics.dtx 702 2007-11-27 14:21:49Z morten $
{L3 Experimental basic definitions}
\tex_let:D \let:NwN \tex_let:D
\let:NwN \if_true: \tex_iftrue:D
@@ -1015,6 +1066,8 @@
\def_long_new:Npn \def_test_function_aux:Nnnn #1#2#3#4{
#1 {#2TF} #3 {#4
\exp_after:NN\use_arg_i:nn\else:\exp_after:NN\use_arg_ii:nn\fi:}
+ #1 {#2FT} #3 {#4
+ \exp_after:NN\use_arg_ii:nn\else:\exp_after:NN\use_arg_i:nn\fi:}
#1 {#2T} #3 {#4
\else:\exp_after:NN\use_none:nn\fi:\use_arg_i:n}
#1 {#2F} #3 {#4
@@ -1022,6 +1075,8 @@
\def_long_new:Npn \def_test_function_aux:Nnnx #1#2#3#4{
#1 {#2TF} #3 {#4
\exp_not:n{\exp_after:NN\use_arg_i:nn\else:\exp_after:NN\use_arg_ii:nn\fi:}}
+ #1 {#2FT} #3 {#4
+ \exp_not:n{\exp_after:NN\use_arg_ii:nn\else:\exp_after:NN\use_arg_i:nn\fi:}}
#1 {#2T} #3 {#4
\exp_not:n{\else:\exp_after:NN\use_none:nn\fi:\use_arg_i:n}}
#1 {#2F} #3 {#4
@@ -1071,7 +1126,7 @@
\def_long_test_function_new:npn {cs_if_really_exist:c}#1{
\if_cs_exist:w #1\cs_end:}
\def_new:Npn \cs_gundefine:N #1{\glet:NN #1\c_undefined}
-\def_test_function_new:npn {engine_aleph:}{\if_cs_exist:N \aleph_textdir:D}
+\def_test_function_new:npn {engine_if_aleph:}{\if_cs_exist:N \aleph_textdir:D}
\def_new:Npn \use:c #1{\cs:w #1\cs_end:}
\def_new:Npn \cs_use:c #1 { \cs:w#1\cs_end: }
\def_new:Npn \use:cc #1#2
@@ -1092,7 +1147,8 @@
\def_long_new:Npn \use_arg_i_delimit_by_q_stop:nw #1#2\q_stop{#1}
\def_long_new:Npn \use_arg_i_after_fi:nw #1\fi:{\fi: #1}
\def_long_new:Npn \use_arg_i_after_else:nw #1\else:#2\fi:{\fi: #1}
-\def_long_new:Npn \use_arg_i_after_or:nw #1\or: #2\fi: {\or:\fi:#1}
+\def_long_new:Npn \use_arg_i_after_or:nw #1\or: #2\fi: {\fi:#1}
+\def_long_new:Npn \use_arg_i_after_orelse:nw #1 #2#3\fi: {\fi:#1}
\def_long_new:NNn \use_none:nn 2{}
\def_long_new:NNn \use_none:nnn 3{}
\def_long_new:NNn \use_none:nnnn 4{}
@@ -1149,7 +1205,7 @@
%%
%% -----------------------------------------------------------------------
%%
-\GetIdInfo$Id: l3chk.dtx 573 2006-08-21 20:59:37Z morten $
+\GetIdInfo$Id: l3chk.dtx 621 2007-09-01 20:14:19Z morten $
{L3 Experimental check module}
\def_new:Npn \chk_local:N #1{
\exp_after:NN \chk_local_aux:w \token_to_string:N#1\q_stop}
@@ -1242,7 +1298,7 @@
}
\let_new:NN\traceon\use_none:n
\let_new:NN\traceoff\use_none:n
-%% File: l3tlp.dtx Copyright (C) 1990-2006 LaTeX3 project
+%% File: l3tlp.dtx Copyright (C) 1990-2007 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
@@ -1274,7 +1330,7 @@
%% prior consultation with the LaTeX Project Team.
%%
%% -----------------------------------------------------------------------
-\GetIdInfo$Id: l3tlp.dtx 581 2006-12-12 12:28:27Z morten $
+\GetIdInfo$Id: l3tlp.dtx 735 2008-01-14 22:31:02Z morten $
{L3 Experimental Token List Pointers}
\def_long_new:Npn \tlp_new:Nn #1#2{
\chk_new_cs:N #1
@@ -1285,6 +1341,8 @@
\chk_new_cs:N #1
\gdef:Npx #1{#2}
}
+\def_new:Npn \tlp_new:N #1{\tlp_new:Nn #1{}}
+\def_new:Npn \tlp_new:c #1{\tlp_new:cn {#1}{}}
\def_new:Npn \tlp_use:N #1 {
\if_meaning:NN #1 \scan_stop:
\err_latex_bug:x {Token~list~pointer~ `\token_to_string:N #1'~
@@ -1299,11 +1357,13 @@
\def_long_new:Npn\tlp_gset:Nn#1#2{\gdef:Npn#1{#2}}
\def_long_new:Npn\tlp_gset:Nx#1#2{\gdef:Npx#1{#2}}
\def_new:Npn \tlp_set:No {\exp_args:NNo \tlp_set:Nn}
+\def_new:Npn \tlp_set:Nd {\exp_args:NNd \tlp_set:Nn}
\def_new:Npn \tlp_set:Nf {\exp_args:NNf \tlp_set:Nn}
\def_new:Npn \tlp_set:cn {\exp_args:Nc \tlp_set:Nn}
\def_new:Npn \tlp_set:co {\exp_args:Nco \tlp_set:Nn}
\def_new:Npn \tlp_set:cx {\exp_args:Nc \tlp_set:Nx}
\def_new:Npn \tlp_gset:No {\exp_args:NNo \tlp_gset:Nn}
+\def_new:Npn \tlp_gset:Nd {\exp_args:NNd \tlp_gset:Nn}
\def_new:Npn \tlp_gset:cn {\exp_args:Nc \tlp_gset:Nn}
\def_new:Npn \tlp_gset:cx {\exp_args:Nc \tlp_gset:Nx}
\let_new:NN \tlp_set_eq:NN \let:NN
@@ -1322,26 +1382,59 @@
\def_new:Npn \tlp_clear_new:c {\exp_args:Nc \tlp_clear_new:N}
\let_new:NN \tlp_gclear_new:N \tlp_gclear:N
\def_new:Npn \tlp_gclear_new:c {\exp_args:Nc \tlp_gclear_new:N}
-\def_new:Npn \tlp_put_left:Nn #1{
- \exp_args:No \tlp_put_left_aux:w {#1}#1}
-\def_new:Npn\tlp_put_left:No{\exp_args:NNo\tlp_put_left:Nn}
-\def_new:Npn \tlp_gput_left:Nn {
- \pref_global:D
- \tlp_put_left:Nn
+\def_long_new:Npn \tlp_put_left:Nn #1#2{
+ \tlp_set:Nn \l_exp_tlp{#2}
+ \tlp_set:Nx #1{\exp_not:o{\l_exp_tlp}\exp_not:o{#1}}
+}
+\def_long_new:Npn \tlp_put_left:No #1#2{
+ \tlp_set:Nn \l_exp_tlp{#2}
+ \tlp_set:Nx #1{\exp_not:d{\l_exp_tlp}\exp_not:o{#1}}
+}
+\def_long_new:Npn \tlp_put_left:Nx #1#2{
+ \tlp_set:Nx #1{#2\exp_not:o{#1}}
}
-\def_new:Npn\tlp_gput_left:No{\exp_args:NNo\tlp_gput_left:Nn}
-\def_new:Npn\tlp_gput_left:Nx{\exp_args:NNx\tlp_gput_left:Nn}
-\def_long_new:Npn \tlp_put_left_aux:w #1#2#3{\tlp_set:Nn #2{#3#1}
+\def_long_new:Npn \tlp_gput_left:Nn #1#2{
+ \tlp_set:Nn \l_exp_tlp{#2}
+ \tlp_gset:Nx #1{\exp_not:o{\l_exp_tlp}\exp_not:o{#1}}
+}
+\def_long_new:Npn \tlp_gput_left:No #1#2{
+ \tlp_set:Nn \l_exp_tlp{#2}
+ \tlp_gset:Nx #1{\exp_not:d{\l_exp_tlp}\exp_not:o{#1}}
+}
+\def_long_new:Npn \tlp_gput_left:Nx #1#2{
+ \tlp_gset:Nx #1{#2\exp_not:o{#1}}
+}
+\def_long_new:Npn \tlp_put_left:cn{\exp_args:Nc\tlp_put_left:Nn}
+\def_long_new:Npn \tlp_put_left:co{\exp_args:Nc\tlp_put_left:No}
+\def_long_new:Npn \tlp_put_left:cx{\exp_args:Nc\tlp_put_left:Nx}
+\def_long_new:Npn \tlp_gput_left:cn{\exp_args:Nc\tlp_gput_left:Nn}
+\def_long_new:Npn \tlp_gput_left:co{\exp_args:Nc\tlp_gput_left:No}
+\def_long_new:Npn \tlp_gput_left:cx{\exp_args:Nc\tlp_gput_left:Nx}
+\def_long_new:Npn \tlp_put_right:Nn #1#2{
+ \tlp_set:Nn \l_exp_tlp{#2}
+ \tlp_set:Nx #1{\exp_not:o{#1}\exp_not:o{\l_exp_tlp}}
+}
+\def_long_new:Npn \tlp_gput_right:Nn #1#2{
+ \tlp_set:Nn \l_exp_tlp{#2}
+ \tlp_gset:Nx #1{\exp_not:o{#1}\exp_not:o{\l_exp_tlp}}
+}
+\def_long_new:Npn \tlp_put_right:No #1#2{
+ \tlp_set:Nn \l_exp_tlp{#2}
+ \tlp_set:Nx #1{\exp_not:o{#1}\exp_not:d{\l_exp_tlp}}
+}
+\def_long_new:Npn \tlp_gput_right:No #1#2{
+ \tlp_set:Nn \l_exp_tlp{#2}
+ \tlp_gset:Nx #1{\exp_not:o{#1}\exp_not:d{\l_exp_tlp}}
+}
+\def_long:Npn \tlp_put_right:Nx #1#2{
+ \tlp_set:Nx #1{\exp_not:o{#1}#2}
+}
+\def_long:Npn \tlp_gput_right:Nx #1#2{
+ \tlp_gset:Nx #1{\exp_not:o{#1}#2}
}
-\def_long_new:Npn \tlp_put_right:Nn #1#2{\tlp_set:No #1{#1#2}}
-\def_long_new:Npn \tlp_gput_right:Nn #1#2{\tlp_gset:No #1{#1#2}}
-\def_new:Npn \tlp_gput_right:No {\exp_args:NNo \tlp_gput_right:Nn}
-\def_new:Npn \tlp_gput_right:Nx {\exp_args:NNx \tlp_gput_right:Nn}
\def_new:Npn \tlp_gput_right:cn {\exp_args:Nc \tlp_gput_right:Nn}
-\def_new:Npn \tlp_gput_right:co {\exp_args:Nco \tlp_gput_right:Nn}
+\def_new:Npn \tlp_gput_right:co {\exp_args:Nc \tlp_gput_right:No}
\def_new:Npn \tlp_put_right:cc {\exp_args:Ncc \tlp_put_right:Nn}
-\def_new:Npn \tlp_put_right:No {\exp_args:NNo \tlp_put_right:Nn}
-\def_new:Npn \tlp_put_right:Nx {\exp_args:Nnx \tlp_put_right:Nn}
\def_new:Npn \tlp_gset:Nc {
\pref_global:D
\tlp_set:Nc}
@@ -1409,14 +1502,14 @@
\let_new:NN \tlist_to_uppercase:n \tex_uppercase:D
\let_new:NN \tlist_to_str:n \etex_detokenize:D
\def_long_new:Npn \tlist_map_function:nN #1#2{
- \tlist_map_function_aux:Nn #2 #1 \q_nil \q_stop
+ \tlist_map_function_aux:Nn #2 #1 \q_recursion_tail \q_recursion_stop
}
\def_new:Npn \tlp_map_function:NN #1#2{
\exp_after:NN \tlist_map_function_aux:Nn
- \exp_after:NN #2 #1 \q_nil \q_stop
+ \exp_after:NN #2 #1 \q_recursion_tail \q_recursion_stop
}
\def_long_new:Npn \tlist_map_function_aux:Nn #1#2{
- \quark_if_nil:nT{#2} \tlist_map_break:w
+ \quark_if_recursion_tail_stop:n{#2}
#1{#2} \tlist_map_function_aux:Nn #1
}
\def_new:Npn\tlp_map_function:cN{\exp_args:Nc\tlp_map_function:NN}
@@ -1426,7 +1519,7 @@
##1{#2}
\exp_args:Nc \tlist_map_function_aux:Nn
{tlist_map_inline_ \num_use:N \l_tlp_inline_level_num :n}
- #1 \q_nil\q_stop
+ #1 \q_recursion_tail\q_recursion_stop
\num_decr:N \l_tlp_inline_level_num
}
\def_long_new:Npn \tlp_map_inline:Nn #1#2{
@@ -1435,22 +1528,22 @@
##1{#2}
\exp_args:NcE \tlist_map_function_aux:Nn
{tlist_map_inline_ \num_use:N \l_tlp_inline_level_num :n}
- #1 \q_nil\q_stop
+ #1 \q_recursion_tail\q_recursion_stop
\num_decr:N \l_tlp_inline_level_num
}
\def_new:Npn\tlp_map_inline:cN{\exp_args:Nc\tlp_map_inline:NN}
\tlp_new:Nn \l_tlp_inline_level_num{0}
\def_long_new:Npn \tlist_map_variable:nNn #1#2#3{
- \tlist_map_variable_aux:Nnn #2 {#3} #1 \q_nil \q_stop
+ \tlist_map_variable_aux:Nnn #2 {#3} #1 \q_recursion_tail \q_recursion_stop
}
\def_new:Npn \tlp_map_variable:NNn {\exp_args:No \tlist_map_variable:nNn}
\def_new:Npn \tlp_map_variable:cNn {\exp_args:Nc \tlp_map_variable:NNn}
\def_long_new:Npn \tlist_map_variable_aux:Nnn #1#2#3{
\tlp_set:Nn #1{#3}
- \quark_if_nil:NT #1 \tlist_map_break:w
+ \quark_if_recursion_tail_stop:N #1
#2 \tlist_map_variable_aux:Nnn #1{#2}
}
-\let_new:NN \tlist_map_break:w \use_none_delimit_by_q_stop:w
+\let_new:NN \tlist_map_break:w \use_none_delimit_by_q_recursion_stop:w
\let_new:NN \tlp_map_break:w \tlist_map_break:w
\let_new:NN \tlist_compare:xx \pdfstrcmp
\def_long_new:NNn \tlist_compare:nn 2{
@@ -1497,12 +1590,46 @@
\tlp_set:Nx \l_testb_tlp {\exp_not:n{#2}}
\if_meaning:NN\l_testa_tlp \l_testb_tlp
}
+ \def_long_test_function:npn{tlist_if_eq:no}#1#2{
+ \tlp_set:Nx \l_testa_tlp {\exp_not:n{#1}}
+ \tlp_set:Nx \l_testb_tlp {\exp_not:o{#2}}
+ \if_meaning:NN\l_testa_tlp \l_testb_tlp
+ }
+ \def_long_test_function:npn{tlist_if_eq:nx}#1#2{
+ \tlp_set:Nx \l_testa_tlp {\exp_not:n{#1}}
+ \tlp_set:Nx \l_testb_tlp {#2}
+ \if_meaning:NN\l_testa_tlp \l_testb_tlp
+ }
+ \def_long_test_function:npn{tlist_if_eq:on}#1#2{
+ \tlp_set:Nx \l_testa_tlp {\exp_not:o{#1}}
+ \tlp_set:Nx \l_testb_tlp {\exp_not:n{#2}}
+ \if_meaning:NN\l_testa_tlp \l_testb_tlp
+ }
\def_long_test_function:npn{tlist_if_eq:oo}#1#2{
\tlp_set:Nx \l_testa_tlp {\exp_not:o{#1}}
\tlp_set:Nx \l_testb_tlp {\exp_not:o{#2}}
\if_meaning:NN\l_testa_tlp \l_testb_tlp
}
- \def_long:Npn\tlist_compare:xx #1#2{\ERROR}
+ \def_long_test_function:npn{tlist_if_eq:ox}#1#2{
+ \tlp_set:Nx \l_testa_tlp {\exp_not:o{#1}}
+ \tlp_set:Nx \l_testb_tlp {#2}
+ \if_meaning:NN\l_testa_tlp \l_testb_tlp
+ }
+ \def_long_test_function:npn{tlist_if_eq:xn}#1#2{
+ \tlp_set:Nx \l_testa_tlp {#1}
+ \tlp_set:Nx \l_testb_tlp {\exp_not:n{#2}}
+ \if_meaning:NN\l_testa_tlp \l_testb_tlp
+ }
+ \def_long_test_function:npn{tlist_if_eq:xo}#1#2{
+ \tlp_set:Nx \l_testa_tlp {#1}
+ \tlp_set:Nx \l_testb_tlp {\exp_not:o{#2}}
+ \if_meaning:NN\l_testa_tlp \l_testb_tlp
+ }
+ \def_long_test_function:npn{tlist_if_eq:xx}#1#2{
+ \tlp_set:Nx \l_testa_tlp {#1}
+ \tlp_set:Nx \l_testb_tlp {#2}
+ \if_meaning:NN\l_testa_tlp \l_testb_tlp
+ }
}
\def_long:Npn \tlp_if_in:NnTF #1#2{
\def_long:Npn\tmp:w ##1 #2 ##2\q_stop{
@@ -1513,7 +1640,7 @@
\def_new:Npn \tlp_if_in:cnTF {\exp_args:Nc\tlp_if_in:NnTF}
\def_long:Npn \tlp_if_in:NnT #1#2{
\def_long:Npn\tmp:w ##1 #2 ##2\q_stop{
- \quark_if_no_value:nFT{##2}
+ \quark_if_no_value:nF{##2}
}
\exp_after:NN \tmp:w #1 #2 \q_no_value \q_stop
}
@@ -1534,11 +1661,11 @@
\def_new:Npn \tlist_if_in:onTF {\exp_args:No\tlist_if_in:nnTF}
\tlp_new:Nn\l_tlp_replace_tlp{}
\def_long_new:NNn \tlp_replace_in_aux:NNnn 4{
- \def:Npn \tmp:w ##1#3##2\q_stop{
+ \def_long:Npn \tmp:w ##1#3##2\q_stop{
\quark_if_no_value:nF{##2}
{
\tlp_set:Nx\l_tlp_replace_tlp{\exp_not:o{\use_none:n##1#4}}
- \def:Npn \tmp:w ####1#3\q_no_value{
+ \def_long:Npn \tmp:w ####1#3\q_no_value{
\tlp_put_right:Nx \l_tlp_replace_tlp {\exp_not:o{\use_none:n ####1}}
}
\tmp:w \q_mark ##2
@@ -1554,7 +1681,7 @@
\def_new:Npn \tlp_greplace_in:cnn{\exp_args:Nc\tlp_greplace_in:Nnn}
\def_long:NNn \tlp_replace_all_in_aux:NNnn 4{
\tlp_clear:N \l_tlp_replace_tlp
- \def:Npn \tmp:w ##1#3##2\q_stop{
+ \def_long:Npn \tmp:w ##1#3##2\q_stop{
\quark_if_no_value:nTF{##2}
{
\tlp_put_right:Nx \l_tlp_replace_tlp {\exp_not:o{\use_none:n##1}}
@@ -1634,11 +1761,10 @@
\def_long_test_function_new:npn {tlist_if_head_eq_catcode:nN}#1#2{
\if:w\tlist_if_head_eq_catcode_p:nN{#1}#2}
\def_long_new:Npn \tlist_reverse:n #1{
- \tlist_reverse_aux:nN {} #1 \q_nil\q_stop
+ \tlist_reverse_aux:nN {} #1 \q_recursion_tail\q_stop
}
\def_long_new:Npn \tlist_reverse_aux:nN #1#2{
- \quark_if_nil:NT #2
- { \use_arg_i_delimit_by_q_stop:nw {#1} }
+ \quark_if_recursion_tail_stop_do:nn {#2}{ #1 }
\tlist_reverse_aux:nN {#2#1}
}
%% File: l3expan.dtx Copyright (C) 1990-2006 LaTeX3 project
@@ -1673,37 +1799,47 @@
%% prior consultation with the LaTeX Project Team.
%%
%% -----------------------------------------------------------------------
-\GetIdInfo$Id: l3expan.dtx 573 2006-08-21 20:59:37Z morten $
+\GetIdInfo$Id: l3expan.dtx 735 2008-01-14 22:31:02Z morten $
{L3 Experimental Argument Expansion module}
\tlp_new:Nn\l_exp_tlp{}
-\def_new:Npn\exp_arg_next:nnn#1#2#3{
+\def_long_new:Npn\exp_arg_next:nnn#1#2#3{
#2\:::{#3#1}
}
-\def_new:Npn\::n#1\:::#2#3{
+\def_long_new:Npn\::n#1\:::#2#3{
#1\:::{#2{#3}}
}
-\def_new:Npn\::N#1\:::#2#3{
+\def_long_new:Npn\::N#1\:::#2#3{
#1\:::{#2#3}
}
-\def_new:Npn\::c#1\:::#2#3{
+\def_long_new:Npn\::c#1\:::#2#3{
\exp_after:NN\exp_arg_next:nnn\cs:w #3\cs_end:{#1}{#2}
}
-\def_new:Npn\::o#1\:::#2#3{
+\def_long_new:Npn\::o#1\:::#2#3{
\exp_after:NN\exp_arg_next:nnn\exp_after:NN{\exp_after:NN{#3}}{#1}{#2}
}
-\def_new:Npn\::f#1\:::#2#3{
+\def_long_new:Npn\::f#1\:::#2#3{
\exp_after:NN\exp_arg_next:nnn
\exp_after:NN{\exp_after:NN{\int_to_roman:w -`0 #3}}
{#1}{#2}
}
-\def_new:Npn\::x#1\:::#2#3{
- \tlp_set:Nx\l_exp_tlp{{{#3}}}
- \exp_after:NN\exp_arg_next:nnn\l_exp_tlp{#1}{#2}}
-\def_new:Npn\:::#1{#1}
-\def_new:Npn\::C#1\:::#2#3{
+\def_new:Npn \exp_stop_f: {~}
+\let_new:NN \exp_arg:x \expanded % Move eventually.
+\cs_if_free:NTF\exp_arg:x{
+ \def_long_new:Npn\::x#1\:::#2#3{
+ % \tlp_set:Nx\l_exp_tlp{{{#3}}}
+ \def:Npx \l_exp_tlp{{{#3}}}
+ \exp_after:NN\exp_arg_next:nnn\l_exp_tlp{#1}{#2}}
+}
+{
+ \def_long_new:Npn\::x#1\:::#2#3{
+ \exp_after:NN\exp_arg_next:nnn
+ \exp_after:NN{\exp_arg:x{{#3}}}{#1}{#2}
+ }
+}
+\def_long_new:Npn\:::#1{#1}
+\def_long_new:Npn\::C#1\:::#2#3{
\exp_after:NN\exp_C_aux:nnn\cs:w #3\cs_end:{#1}{#2}}
-\def_new:Npn\exp_C_aux:nnn #1
- {
+\def_long_new:Npn\exp_C_aux:nnn #1{
\exp_after:NN
\exp_arg_next:nnn
\exp_after:NN
@@ -1711,14 +1847,14 @@
\exp_after:NN
{#1}
}
- }
-\def:Npn\::E#1\:::#2#3{
+}
+\def_long_new:Npn\::E#1\:::#2#3{
\exp_after:NN\exp_arg_next:nnn \exp_after:NN{#3}{#1}{#2}
}
-\def:Npn\::e#1\:::#2#3{
+\def_long_new:Npn\::e#1\:::#2#3{
\exp_after:NN\exp_arg_next:nnn \exp_after:NN{#3}{#1}{#2}
}
-\def:Npn\::d#1\:::#2#3{
+\def_long_new:Npn\::d#1\:::#2#3{
\exp_after:NN\exp_after:NN\exp_after:NN\exp_arg_next:nnn
\exp_after:NN\exp_after:NN\exp_after:NN{
\exp_after:NN\exp_after:NN\exp_after:NN{#3}}{#1}{#2}
@@ -1730,26 +1866,31 @@
\def:Npn \exp_args:NcE #1#2{\exp_after:NN #1\cs:w #2\exp_after:NN\cs_end:}
\def:Npn \exp_args:Nd {\::d\:::}
\def:Npn \exp_args:NNd {\::N\::d\:::}
+
\def:Npn \exp_args:NC {\::C\:::}
-\def:Npn \exp_args:Ncx {\::c\::x\:::}
-\def:Npn \exp_args:Ncco {\::c\::c\::o\:::}
-\def:Npn \exp_args:Nccx {\::c\::c\::x\:::}
-\def:Npn \exp_args:Ncnx {\::c\::n\::x\:::}
+\def:Npn \exp_args:NNC {\::N\::C\:::}
+\def:Npn \exp_args:NNf {\::N\::f\:::}
+\def:Npn \exp_args:NNno {\::N\::n\::o\:::}
+\def:Npn \exp_args:NNnx {\::N\::n\::x\:::} % new
+\def:Npn \exp_args:NNoo {\::N\::o\::o\:::} % new
+\def:Npn \exp_args:NNox {\::N\::o\::x\:::} % new
+\def:Npn \exp_args:NNx {\::N\::x\:::}
\def:Npn \exp_args:NcNc {\::c\::N\::c\:::}
\def:Npn \exp_args:NcNo {\::c\::N\::o\:::}
\def:Npn \exp_args:Ncco {\::c\::c\::o\:::}
+\def:Npn \exp_args:Ncco {\::c\::c\::o\:::}
+\def:Npn \exp_args:Nccx {\::c\::c\::x\:::}
+\def:Npn \exp_args:Ncnx {\::c\::n\::x\:::}
+\def:Npn \exp_args:Ncx {\::c\::x\:::}
\def:Npn \exp_args:Nf {\::f\:::}
-\def:Npn \exp_args:NNf {\::N\::f\:::}
\def:Npn \exp_args:Nfo{\::f\::o\:::}
\def:Npn \exp_args:Nnf {\::n\::f\:::}
-\def:Npn \exp_args:NNno {\::N\::n\::o\:::}
-%% Strange one this next one...
-\def:Npn \exp_args:NnnN {\::n\::n\::N\:::}
+\def:Npn \exp_args:NnnN {\::n\::n\::N\:::} %% Strange one this one...
+\def:Npn \exp_args:Nnnc {\::n\::n\::c\:::}
\def:Npn \exp_args:Nnno {\::n\::n\::o\:::}
\def:Npn \exp_args:Nnnx {\::n\::n\::x\:::}
\def:Npn \exp_args:Nno {\::n\::o\:::}
\def:Npn \exp_args:Nnox {\::n\::o\::x\:::}
-\def:Npn \exp_args:NNx {\::N\::x\:::}
\def:Npn \exp_args:Nnx {\::n\::x\:::}
\def:Npn \exp_args:Noo {\::o\::o\:::}
\def:Npn \exp_args:Noox {\::o\::o\::x\:::}
@@ -1757,35 +1898,39 @@
\def:Npn \exp_args:Nx {\::x\:::}
\def:Npn \exp_args:Nxo {\::x\::o\:::}
\def:Npn \exp_args:Nxx {\::x\::x\:::}
-\def:Npn \exp_args:NNC {\::N\::C\:::}
-\def:Npn \exp_args:Nnnc {\::n\::n\::c\:::}
-\def_new:Npn\exp_not:o#1{\exp_not:n\exp_after:NN{#1}}
+\def_long_new:Npn\exp_not:o#1{\exp_not:n\exp_after:NN{#1}}
+\def_long_new:Npn\exp_not:d#1{
+ \exp_not:n\exp_after:NN\exp_after:NN\exp_after:NN{#1}
+}
+\def_long_new:Npn\exp_not:f#1{
+ \exp_not:n\exp_after:NN{\int_to_roman:w -`0 #1}
+}
\def_new:Npn\exp_not:E{\exp_after:NN\exp_not:N}
-\def_new:Npn\exp_not:c#1{\exp_after:NN\exp_not:N\cs:w#1\cs_end:}
-\def_new:Npn \exp_args:No #1#2{\exp_after:NN#1\exp_after:NN{#2}}
-\def_new:Npn \exp_args:NOo #1#2#3{\exp_after:NN\exp_args:No \exp_after:NN#1
+\def_long_new:Npn\exp_not:c#1{\exp_after:NN\exp_not:N\cs:w#1\cs_end:}
+\def_long_new:Npn \exp_args:No #1#2{\exp_after:NN#1\exp_after:NN{#2}}
+\def_long_new:Npn \exp_args:NOo #1#2#3{\exp_after:NN\exp_args:No \exp_after:NN#1
\exp_after:NN#2\exp_after:NN{#3}}
-\def_new:Npn \exp_args:NOOo #1#2#3#4{\exp_after:NN\exp_args:NOo
+\def_long_new:Npn \exp_args:NOOo #1#2#3#4{\exp_after:NN\exp_args:NOo
\exp_after:NN#1\exp_after:NN#2\exp_after:NN#3\exp_after:NN{#4}}
-\def_new:Npn \exp_args:NNo #1#2#3{\exp_after:NN#1\exp_after:NN#2
+\def_long_new:Npn \exp_args:NNo #1#2#3{\exp_after:NN#1\exp_after:NN#2
\exp_after:NN{#3}}
-\def_new:Npn \exp_args:NNO #1#2#3 {\exp_after:NN#1
+\def_long_new:Npn \exp_args:NNO #1#2#3 {\exp_after:NN#1
\exp_after:NN#2 #3}
-\def_new:Npn \exp_args:NNOo #1#2#3#4{\exp_after:NN\exp_args:NNo
+\def_long_new:Npn \exp_args:NNOo #1#2#3#4{\exp_after:NN\exp_args:NNo
\exp_after:NN#1\exp_after:NN#2\exp_after:NN#3\exp_after:NN{#4}}
-\def_new:Npn \exp_args:NNNo #1#2#3#4{\exp_after:NN#1\exp_after:NN#2
+\def_long_new:Npn \exp_args:NNNo #1#2#3#4{\exp_after:NN#1\exp_after:NN#2
\exp_after:NN#3\exp_after:NN{#4}}
-\def_new:Npn \exp_args:Nc #1#2{\exp_after:NN#1\cs:w#2\cs_end:}
-\def_new:Npn \exp_args:NNc #1#2#3{\exp_after:NN#1\exp_after:NN#2
+\def_long_new:Npn \exp_args:Nc #1#2{\exp_after:NN#1\cs:w#2\cs_end:}
+\def_long_new:Npn \exp_args:NNc #1#2#3{\exp_after:NN#1\exp_after:NN#2
\cs:w#3\cs_end:}
-\def_new:Npn \exp_args:NOc#1#2#3{\exp_after:NN\exp_args:No\exp_after:NN
+\def_long_new:Npn \exp_args:NOc#1#2#3{\exp_after:NN\exp_args:No\exp_after:NN
#1\exp_after:NN#2\cs:w#3\cs_end:}
-\def_new:Npn \exp_args:Ncc #1#2#3{\exp_after:NN#1
+\def_long_new:Npn \exp_args:Ncc #1#2#3{\exp_after:NN#1
\cs:w#2\exp_after:NN\cs_end:\cs:w#3\cs_end:}
-\def_new:Npn \exp_args:Nccc #1#2#3#4{\exp_after:NN#1
+\def_long_new:Npn \exp_args:Nccc #1#2#3#4{\exp_after:NN#1
\cs:w#2\exp_after:NN\cs_end:\cs:w#3\exp_after:NN
\cs_end:\cs:w #4\cs_end:}
-\def_new:Npn \exp_args:Nco #1#2#3{\exp_after:NN#1\cs:w#2\exp_after:NN
+\def_long_new:Npn \exp_args:Nco #1#2#3{\exp_after:NN#1\cs:w#2\exp_after:NN
\cs_end:\exp_after:NN{#3}}
\def:Npn\exp_def_form:nnn#1#2#3{
\exp_after:NN
@@ -1848,7 +1993,7 @@
%% prior consultation with the LaTeX Project Team.
%%
%% -----------------------------------------------------------------------
-\GetIdInfo$Id: l3quark.dtx 573 2006-08-21 20:59:37Z morten $
+\GetIdInfo$Id: l3quark.dtx 705 2007-12-02 22:14:25Z morten $
{L3 Experimental Quark Commands}
\def_new:Npn \quark_new:N #1{\tlp_new:Nn #1{#1}}
\quark_new:N \q_stop
@@ -1856,6 +2001,48 @@
\quark_new:N \q_nil
\quark_new:N\q_error
\quark_new:N\q_mark
+\quark_new:N\q_recursion_tail
+\quark_new:N\q_recursion_stop
+\def_long_new:Npn \quark_if_recursion_tail_stop:n #1 {
+ \exp_after:NN\if_meaning:NN
+ \quark_if_recursion_tail_aux:w #1?\q_nil\q_recursion_tail\q_recursion_tail
+ \exp_after:NN \use_none_delimit_by_q_recursion_stop:w
+ \fi:
+}
+\def_long_new:Npn \quark_if_recursion_tail_stop:N #1 {
+ \if_meaning:NN#1\q_recursion_tail
+ \exp_after:NN \use_none_delimit_by_q_recursion_stop:w
+ \fi:
+}
+\def_new:Npn \quark_if_recursion_tail_stop:o{
+ \exp_args:No\quark_if_recursion_tail_stop:n
+}
+\def_long_new:Npn \quark_if_recursion_tail_stop_do:nn #1#2 {
+ \exp_after:NN\if_meaning:NN
+ \quark_if_recursion_tail_aux:w #1?\q_nil\q_recursion_tail
+ \exp_after:NN \use_arg_i_delimit_by_q_recursion_stop:nw
+ \else:
+ \exp_after:NN\use_none:n
+ \fi:
+ {#2}
+}
+\def_long_new:Npn \quark_if_recursion_tail_stop_do:Nn #1#2 {
+ \if_meaning:NN #1\q_recursion_tail
+ \exp_after:NN \use_arg_i_delimit_by_q_recursion_stop:nw
+ \else:
+ \exp_after:NN\use_none:n
+ \fi:
+ {#2}
+}
+\def_new:Npn \quark_if_recursion_tail_stop_do:on{
+ \exp_args:No\quark_if_recursion_tail_stop_do:nn
+}
+\def_long_new:Npn \quark_if_recursion_tail_aux:w
+ #1#2\q_nil\q_recursion_tail{#1}
+\def_long_new:Npn\use_none_delimit_by_q_recursion_stop:w
+ #1\q_recursion_stop {}
+\def_long_new:Npn\use_arg_i_delimit_by_q_recursion_stop:nw
+ #1#2\q_recursion_stop {#1}
\def_long_test_function_new:npn {quark_if_no_value:N} #1 {
\if_meaning:NN\q_no_value#1}
\def_long_new:Npn \quark_if_no_value_p:N #1{
@@ -1951,8 +2138,10 @@
%% prior consultation with the LaTeX Project Team.
%%
%% -----------------------------------------------------------------------
-\GetIdInfo$Id: l3num.dtx 573 2006-08-21 20:59:37Z morten $
+\GetIdInfo$Id: l3num.dtx 702 2007-11-27 14:21:49Z morten $
{L3 Experimental token numbers}
+
+\let_new:NN \num_value:w \tex_number:D
\let_new:NN \num_eval:w \etex_numexpr:D
\let_new:NN \if_num:w \tex_ifnum:D
\let_new:NN \if_num_odd:w \tex_ifodd:D
@@ -1991,7 +2180,9 @@
\def_new:Npn \num_gset_eq:Nc {\exp_args:NNc \num_gset_eq:NN}
\def_new:Npn \num_gset_eq:cc {\exp_args:Ncc \num_gset_eq:NN}
\def_new:Npn \num_add:Nn #1#2 {\num_set:Nn #1{#1+#2}}
+\def_new:Npn \num_add:cn {\exp_args:Nc\num_add:Nn}
\def_new:Npn \num_gadd:Nn {\pref_global:D \num_add:Nn}
+\def_new:Npn \num_gadd:cn {\exp_args:Nc\num_gadd:Nn}
\let_new:NN\num_use:N \use_arg_i:n
\let_new:NN\num_use:c \cs_use:c
\def_test_function_new:npn {num_compare:nNn}#1#2#3{
@@ -2005,12 +2196,17 @@
\c_false
\fi:
}
+\def_new:Npn \num_abs:n#1{
+ \if_num:w \num_eval:n{#1}<\c_zero \exp_after:NN -\fi: #1
+}
+\def_new:Npn \num_max_of:nn#1#2{\num_compare:nNnTF {#1}>{#2}{#1}{#2}}
+\def_new:Npn \num_min_of:nn#1#2{\num_compare:nNnTF {#1}<{#2}{#1}{#2}}
\num_new:N \l_tmpa_num
\num_new:N \l_tmpb_num
\num_new:N \l_tmpc_num
\num_new:N \g_tmpa_num
\num_new:N \g_tmpb_num
-\engine_aleph:TF
+\engine_if_aleph:TF
{
\let_new:NN \const_new_aux:Nw \tex_chardef:D
\const_new_aux:Nw \c_max_register_num = 65535 \scan_stop:
@@ -2084,7 +2280,7 @@
%% prior consultation with the LaTeX Project Team.
%%
%% -----------------------------------------------------------------------
-\GetIdInfo$Id: l3seq.dtx 573 2006-08-21 20:59:37Z morten $
+\GetIdInfo$Id: l3seq.dtx 621 2007-09-01 20:14:19Z morten $
{L3 Experimental sequences and stacks}
\let_new:NN \seq_elt:w \ERROR
\let_new:NN \seq_elt_end: \ERROR
@@ -2233,7 +2429,7 @@
%% prior consultation with the LaTeX Project Team.
%%
%% -----------------------------------------------------------------------
-\GetIdInfo$Id: l3alloc.dtx 581 2006-12-12 12:28:27Z morten $
+\GetIdInfo$Id: l3alloc.dtx 621 2007-09-01 20:14:19Z morten $
{L3 Experimental register allocation}%
\def_new:Npn \alloc_setup_type:nnn #1 #2 #3{
\num_new:c {g_ #1 _allocation_num}
@@ -2309,7 +2505,7 @@
%% prior consultation with the LaTeX Project Team.
%%
%% -----------------------------------------------------------------------
-\GetIdInfo$Id: l3io.dtx 573 2006-08-21 20:59:37Z morten $
+\GetIdInfo$Id: l3io.dtx 621 2007-09-01 20:14:19Z morten $
{L3 Experimental i/o module}
\alloc_setup_type:nnn {iow} \c_zero \c_sixteen
\def_new:Npn \iow_new:N #1 {\alloc_reg:NnNN g {iow} \tex_chardef:D #1}
@@ -2393,7 +2589,7 @@
%% prior consultation with the LaTeX Project Team.
%%
%% -----------------------------------------------------------------------
-\GetIdInfo$Id: l3int.dtx 573 2006-08-21 20:59:37Z morten $
+\GetIdInfo$Id: l3int.dtx 702 2007-11-27 14:21:49Z morten $
{L3 Experimental Integer module}
\let_new:NN \int_to_roman:w \tex_romannumeral:D
@@ -2413,6 +2609,10 @@
\def:Npn \int_decr:N #1{\int_add:Nn#1\c_minus_one}
\def:Npn \int_gincr:N #1{\int_gadd:Nn#1\c_one}
\def:Npn \int_gdecr:N #1{\int_gadd:Nn#1\c_minus_one}
+\def:Npn \int_incr:c {\exp_args:Nc\int_incr:N}
+\def:Npn \int_decr:c {\exp_args:Nc\int_decr:N}
+\def:Npn \int_gincr:c {\exp_args:Nc\int_gincr:N}
+\def:Npn \int_gdecr:c {\exp_args:Nc\int_gdecr:N}
\alloc_setup_type:nnn {int} \c_eleven \c_max_register_num
\def_new:Npn \int_new:N #1 {\alloc_reg:NnNN g {int} \tex_countdef:D#1}
\def_new:Npn \int_new_l:N #1 {\alloc_reg:NnNN l {int} \tex_countdef:D#1}
@@ -2441,10 +2641,11 @@
\def_new:Npn \int_gsub:Nn {
\pref_global:D
\int_sub:Nn }
+\def_new:Npn \int_gadd:cn{\exp_args:Nc\int_gadd:Nn}
+\def_new:Npn \int_sub:cn{\exp_args:Nc\int_sub:Nn}
+\def_new:Npn \int_gsub:cn{\exp_args:Nc\int_gsub:Nn}
\let_new:NN \int_use:N \tex_the:D
\def_new:Npn \int_use:c #1{\int_use:N \cs:w#1\cs_end:}
-\def_new:Npn \int_gincr:c {\exp_args:Nc \int_gincr:N}
-\def_new:Npn \int_gdecr:c {\exp_args:Nc \int_gdecr:N}
\def_new:Npn \int_to_arabic:n #1{\int_to_number:w \int_eval:n{#1}}
\def_new:Npn \int_roman_lcuc_mapping:Nnn #1#2#3{
\def:cpn {int_to_lc_roman_#1:}{#2}
@@ -2507,7 +2708,7 @@
\int_Alph_default_conversion_rule:n
}
\def_new:Npn \int_to_symbol:n #1{
- \mode_math:TF
+ \mode_if_math:TF
{
\int_convert_number_with_rule:nnN {#1}{9}
\int_symbol_math_conversion_rule:n
@@ -2560,7 +2761,28 @@
\int_pre_eval_two_args:Nnn\int_div_truncate_raw:nn
}
\def_new:Npn \int_div_truncate_raw:nn #1#2 {
- \int_eval:n{ (2*#1 - #2) / (2* #2) }
+ \int_eval:w
+ \if_num:w \int_eval:w#1 = \c_zero
+ 0
+ \else:
+ (#1
+ \if_num:w \int_eval:w #1 < \c_zero
+ \if_num:w \int_eval:w#2 < \c_zero
+ -( #2 +
+ \else:
+ +( #2 -
+ \fi:
+ \else:
+ \if_num:w \int_eval:w #2 < \c_zero
+ +( #2 +
+ \else:
+ -( #2 -
+ \fi:
+ \fi:
+ 1)/2)
+ \fi:
+ /(#2)
+ \scan_stop:
}
\def_new:Npn \int_div_round:nn {
\int_pre_eval_two_args:Nnn\int_div_round_raw:nn
@@ -2573,6 +2795,9 @@
\let_new:NN \int_compare:nNnTF \num_compare:nNnTF
\let_new:NN \int_compare:nNnT \num_compare:nNnT
\let_new:NN \int_compare:nNnF \num_compare:nNnF
+\let_new:NN \int_max_of:nn \num_max_of:nn
+\let_new:NN \int_min_of:nn \num_min_of:nn
+\let_new:NN \int_abs:nn \num_abs:nn
\let_new:NN \int_compare_p:nNn \num_compare_p:nNn
\def_new:Npn \int_if_odd_p:n #1 {
\if_num_odd:w \int_eval:n{#1}
@@ -2582,16 +2807,16 @@
\fi:
}
\def_test_function_new:npn {int_if_odd:n}#1{\if_num_odd:w \int_eval:n{#1}}
-\def_new:Npn \int_whiledo:nNnT #1#2#3#4{
+\def_long_new:Npn \int_whiledo:nNnT #1#2#3#4{
\int_compare:nNnT {#1}#2{#3}{#4 \int_whiledo:nNnT {#1}#2{#3}{#4}}
}
-\def_new:Npn \int_whiledo:nNnF #1#2#3#4{
+\def_long_new:Npn \int_whiledo:nNnF #1#2#3#4{
\int_compare:nNnF {#1}#2{#3}{#4 \int_whiledo:nNnF {#1}#2{#3}{#4}}
}
-\def_new:Npn \int_dowhile:nNnT #1#2#3#4{
+\def_long_new:Npn \int_dowhile:nNnT #1#2#3#4{
#4 \int_compare:nNnT {#1}#2{#3}{\int_dowhile:nNnT {#1}#2{#3}{#4}}
}
-\def_new:Npn \int_dowhile:nNnF #1#2#3#4{
+\def_long_new:Npn \int_dowhile:nNnF #1#2#3#4{
#4 \int_compare:nNnF {#1}#2{#3}{\int_dowhile:nNnF {#1}#2{#3}{#4}}
}
\def_new:Npn \int_get_sign_and_digits:n #1{
@@ -2727,7 +2952,7 @@
%% prior consultation with the LaTeX Project Team.
%%
%% -----------------------------------------------------------------------
-\GetIdInfo$Id: l3clist.dtx 573 2006-08-21 20:59:37Z morten $
+\GetIdInfo$Id: l3clist.dtx 725 2007-12-22 21:25:00Z mittelba $
{L3 Experimental comma separated lists}
\def_new:Npn \clist_new:N #1{\tlp_new:Nn #1{}}
\def_new:Npn \clist_new:c {\exp_args:Nc \clist_new:N}
@@ -2787,7 +3012,7 @@
\def_new:Npn \clist_put_right:No {\exp_args:Nno\clist_put_right:Nn}
\def_new:Npn \clist_put_right:Nx {\exp_args:Nnx\clist_put_right:Nn}
\def_new:Npn \clist_gput_right:Nn {
- \clist_put_aux:NNnnNn \tlp_set:Nn \tlp_put_right:Nn , {}
+ \clist_put_aux:NNnnNn \tlp_gset:Nn \tlp_gput_right:Nn , {}
}
\def_new:Npn \clist_gput_right:No {\exp_args:NNo \clist_gput_right:Nn}
\def_new:Npn \clist_gput_right:cn {\exp_args:Nc \clist_gput_right:Nn}
@@ -2798,20 +3023,20 @@
\clist_if_empty:NF #1
{
\exp_after:NN \clist_map_function_aux:Nw
- \exp_after:NN #2 #1 , \q_nil , \q_stop
+ \exp_after:NN #2 #1 , \q_recursion_tail , \q_recursion_stop
}
}
\def_new:Npn \clist_map_function:cN{\exp_args:Nc\clist_map_function:NN}
\def_new:Npn \clist_map_function:nN #1#2{
- \tlist_if_empty:nF {#1}
- { \clist_map_function_aux:Nw #2 #1 , \q_nil , \q_stop }
+ \tlist_if_blank:nF {#1}
+ { \clist_map_function_aux:Nw #2 #1 , \q_recursion_tail , \q_recursion_stop }
}
\def_new:Npn \clist_map_function_aux:Nw #1#2,{
- \quark_if_nil:nT{#2} \clist_map_break:w
+ \quark_if_recursion_tail_stop:n{#2}
#1{#2}
\clist_map_function_aux:Nw #1
}
-\let_new:NN \clist_map_break:w \use_none_delimit_by_q_stop:w
+\let_new:NN \clist_map_break:w \use_none_delimit_by_q_recursion_stop:w
\int_new:N \l_clist_inline_level_int
\def_new:Npn \clist_map_inline:Nn #1#2{
\clist_if_empty:NF #1
@@ -2821,7 +3046,7 @@
##1{#2}
\exp_args:NcE \clist_map_function_aux:Nw
{clist_map_inline_ \int_use:N \l_clist_inline_level_int :n}
- #1 , \q_nil , \q_stop
+ #1 , \q_recursion_tail , \q_recursion_stop
\int_decr:N \l_clist_inline_level_int
}
}
@@ -2834,21 +3059,22 @@
##1{#2}
\exp_args:Nc \clist_map_function_aux:Nw
{clist_map_inline_ \int_use:N \l_clist_inline_level_int :n}
- #1 , \q_nil , \q_stop
+ #1 , \q_recursion_tail , \q_recursion_stop
\int_decr:N \l_clist_inline_level_int
}
}
\def_new:Npn \clist_map_variable:nNn #1#2#3{
\tlist_if_empty:nF{#1}
{
- \clist_map_variable_aux:Nnw #2 {#3} #1 , \q_nil , \q_stop
+ \clist_map_variable_aux:Nnw #2 {#3} #1
+ , \q_recursion_tail , \q_recursion_stop
}
}
\def_new:Npn \clist_map_variable:NNn {\exp_args:No \clist_map_variable:nNn}
\def_new:Npn \clist_map_variable:cNn {\exp_args:Nc \clist_map_variable:NNn}
\def_new:Npn \clist_map_variable_aux:Nnw #1#2#3,{
\def:Npn #1{#3}
- \quark_if_nil:NT #1 \clist_map_break:w
+ \quark_if_recursion_tail_stop:N #1
#2 \clist_map_variable_aux:Nnw #1{#2}
}
\def_new:Npn \clist_concat_aux:NNNN #1#2#3#4{
@@ -2947,85 +3173,94 @@
%% prior consultation with the LaTeX Project Team.
%%
%% -----------------------------------------------------------------------
-\GetIdInfo$Id: l3prop.dtx 581 2006-12-12 12:28:27Z morten $
+\GetIdInfo$Id: l3prop.dtx 668 2007-09-27 15:54:23Z mittelba $
{L3 Experimental Property Lists}
+\quark_new:N\q_prop
+
\def_new:Npn \prop_new:N #1{\toks_new:N #1}
\def_new:Npn \prop_new:c {\exp_args:Nc \prop_new:N}
\let_new:NN \prop_clear:N \toks_clear:N
\def_new:Npn \prop_clear:c {\exp_args:Nc\prop_clear:N}
\let_new:NN \prop_gclear:N \toks_gclear:N
\def_new:Npn \prop_gclear:c {\exp_args:Nc\prop_gclear:N}
-\let_new:NN \prop_use:N \toks_use:N
-\def_long_new:Npn \prop_split_aux:NNn #1#2#3{
- \def:Npn \tmp:w ##1#2##2##3\q_stop {#3{##1}{##2}{##3}}
- \exp_after:NN\tmp:w \prop_use:N#1#2\q_no_value \q_stop}
-\def_long_new:NNn \prop_get:NNN 2{
- \prop_split_aux:NNn #1#2\prop_get_aux:w}
-\def_long_new:NNn \prop_get_aux:w 4{\toks_set:Nn#4{#2}}
-\def_new:Npn \prop_get:cNN { \exp_args:Nc \prop_get:NNN }
-\def_long_new:NNn \prop_gget:NNN 2{
- \prop_split_aux:NNn #1#2\prop_gget_aux:w}
-\def_new:Npn \prop_gget:NcN {\exp_args:NNc \prop_gget:NNN}
-\def_new:Npn \prop_gget:cNN {\exp_args:Nc \prop_gget:NNN}
-\def_long_new:NNn \prop_gget_aux:w 4{\toks_gset:Nn#4{#2}}
-\def_long_new:NNn \prop_get_gdel:NNN 3{
- \prop_split_aux:NNn #1#2{\prop_get_del_aux:w #3{\toks_gset:Nn #1}#2}}
+\def_long_new:Npn \prop_split_aux:Nnn #1#2#3{
+ \def:Npn \tmp:w ##1\q_prop#2\q_prop##2##3\q_stop {#3{##1}{##2}{##3}}
+ \exp_after:NN\tmp:w \toks_use:N#1\q_prop#2\q_prop\q_no_value \q_stop
+}
+\def_long_new:NNn \prop_get:NnN 2{
+ \prop_split_aux:Nnn #1{#2}\prop_get_aux:w}
+\def_long_new:NNn \prop_get_aux:w 4{\tlp_set:Nx#4{\exp_not:n{#2}}}
+\def_new:Npn \prop_get:cnN { \exp_args:Nc \prop_get:NnN }
+\def_long_new:NNn \prop_gget:NnN 2{
+ \prop_split_aux:Nnn #1{#2}\prop_gget_aux:w}
+\def_new:Npn \prop_gget:NcN {\exp_args:NNc \prop_gget:NnN}
+\def_new:Npn \prop_gget:cnN {\exp_args:Nc \prop_gget:NnN}
+\def_long_new:NNn \prop_gget_aux:w 4{\tlp_gset:Nx#4{\exp_not:n{#2}}}
+\def_long_new:NNn \prop_get_gdel:NnN 3{
+ \prop_split_aux:Nnn #1{#2}{\prop_get_del_aux:w #3{\toks_gset:Nn #1}{#2}}}
\def_long_new:NNn \prop_get_del_aux:w 6{
- \quark_if_no_value:nF{#5} {
- \def:Npn \tmp:w ##1#3\q_no_value {#2{#4##1}}
+ \tlp_set:Nx #1{\exp_not:n{#5}}
+ \quark_if_no_value:NF #1 {
+ \def:Npn \tmp:w ##1\q_prop#3\q_prop\q_no_value {#2{#4##1}}
\tmp:w #6}
}
-\def_long_new:NNn \prop_put:NNn 2{
- \prop_split_aux:NNn #1#2{
- \toks_clear:N #1
- \prop_put_aux:w {\toks_put_right:Nn #1}#2}
-}
-\def_new:Npn \prop_put:ccn {\exp_args:Ncc \prop_put:NNn }
-\def_long_new:NNn \prop_gput:NNn 2{
- \prop_split_aux:NNn #1#2{
- \toks_gclear:N #1
- \prop_put_aux:w {\toks_gput_right:Nn #1}#2}
-}
-\def_new:Npn \prop_gput:NNo {\exp_args:NNNo \prop_gput:NNn}
-\def_new:Npn \prop_gput:NNx {\exp_args:Nnnx \prop_gput:NNn}
-\def_new:Npn \prop_gput:NOx {\exp_args:Nnox \prop_gput:NNn}
-\def_new:Npn \prop_gput:NOo {\exp_args:NNOo \prop_gput:NNn}
-\def_new:Npn \prop_gput:Ncn {\exp_args:NNc \prop_gput:NNn }
-\def_new:Npn \prop_gput:OOo {\exp_args:NOOo \prop_gput:NNn}
-\def_new:Npn \prop_gput:cNn {\exp_args:Nc \prop_gput:NNn}
-\def_new:Npn \prop_gput:ccn {\exp_args:Ncc \prop_gput:NNn}
-\def_new:Npn \prop_gput:cco {\exp_args:Ncco \prop_gput:NNn}
-\def_new:Npn \prop_gput:ccx {\exp_args:Nccx \prop_gput:NNn}
+\def_long_new:NNn \prop_put:Nnn 2{
+ \prop_split_aux:Nnn #1{#2}{
+ \prop_clear:N #1
+ \prop_put_aux:w {\toks_put_right:Nn #1}{#2}}
+}
+\def_new:Npn \prop_put:ccn {\exp_args:Ncc \prop_put:Nnn }
+
+\def_long_new:NNn \prop_gput:Nnn 2{
+ \prop_split_aux:Nnn #1{#2}{
+ \prop_gclear:N #1
+ \prop_put_aux:w {\toks_gput_right:Nn #1}{#2}}
+}
+
\def_long_new:NNn \prop_put_aux:w 6{
- #1{#2{#6}#3}
- \quark_if_no_value:nF {#4}
+ #1{\q_prop#2\q_prop{#6}#3}
+ \tlist_if_empty:nF{#5}
{
- \def:Npn \tmp:w ##1#2\q_no_value {#1{##1}}
+ \def:Npn \tmp:w ##1\q_prop#2\q_prop\q_no_value {#1{##1}}
\tmp:w #5
}
}
-\def_long_new:NNn \prop_del:NN 2{
- \prop_split_aux:NNn #1#2{\prop_del_aux:w {\toks_set:Nn #1}#2}}
-\def_long_new:NNn \prop_gdel:NN 2{
- \prop_split_aux:NNn #1#2{\prop_del_aux:w {\toks_gset:Nn #1}#2}}
-\def_long_new:NNn \prop_del_aux:w 5{\quark_if_no_value:nF {#4}
- {\def:Npn \tmp:w ##1#2\q_no_value {#1{#3##1}}\tmp:w #5}}
-\def_new:NNn \prop_if_in:NNTF 2{
- \prop_split_aux:NNn #1#2\prop_if_in_aux:w}
-\def_new:Npn \prop_if_in:NOTF {\exp_args:Nno \prop_if_in:NNTF}
-\def_new:Npn \prop_if_in:ccTF {\exp_args:Ncc \prop_if_in:NNTF}
+\def_new:Npn \prop_gput:Nno {\exp_args:NNno \prop_gput:Nnn}
+\def_new:Npn \prop_gput:Nnx {\exp_args:NNnx \prop_gput:Nnn}
+\def_new:Npn \prop_gput:Nox {\exp_args:NNox \prop_gput:Nnn}
+\def_new:Npn \prop_gput:Noo {\exp_args:NNoo \prop_gput:Nnn}
+\def_new:Npn \prop_gput:Ncn {\exp_args:NNc \prop_gput:Nnn}
+\def_new:Npn \prop_gput:Ooo {\exp_args:NOoo \prop_gput:Nnn}
+\def_new:Npn \prop_gput:cnn {\exp_args:Nc \prop_gput:Nnn}
+\def_new:Npn \prop_gput:ccn {\exp_args:Ncc \prop_gput:Nnn}
+\def_new:Npn \prop_gput:cco {\exp_args:Ncco \prop_gput:Nnn}
+\def_new:Npn \prop_gput:ccx {\exp_args:Nccx \prop_gput:Nnn}
+\def_long_new:NNn \prop_del:Nn 2{
+ \prop_split_aux:Nnn #1{#2}{\prop_del_aux:w {\toks_set:Nn #1}{#2}}}
+\def_long_new:NNn \prop_gdel:Nn 2{
+ \prop_split_aux:Nnn #1{#2}{\prop_del_aux:w {\toks_gset:Nn #1}{#2}}}
+\def_long_new:NNn \prop_del_aux:w 5{
+ \def:Npn \tmp:w {#4}
+ \quark_if_no_value:NF \tmp:w
+ {\def:Npn \tmp:w ##1\q_prop#2\q_prop\q_no_value {#1{#3##1}}
+ \tmp:w #5}}
+\def_new:NNn \prop_if_in:NnTF 2{
+ \prop_split_aux:Nnn #1{#2}\prop_if_in_aux:w}
\def_new:NNn \prop_if_in_aux:w 3{\quark_if_no_value:nFT {#2}}
-\def_long_new:NNn \prop_gput_if_new:NNn 2{
- \prop_split_aux:NNn #1#2{\prop_put_if_new_aux:w #1#2}}
+
+\def_new:Npn \prop_if_in:NoTF {\exp_args:NNo \prop_if_in:NnTF}
+\def_new:Npn \prop_if_in:ccTF {\exp_args:Ncc \prop_if_in:NnTF}
+\def_long_new:NNn \prop_gput_if_new:Nnn 2{
+ \prop_split_aux:Nnn #1{#2}{\prop_put_if_new_aux:w #1{#2}}}
\def_long_new:NNn \prop_put_if_new_aux:w 6{
- \quark_if_no_value:nT {#4}{#1{#2{#6}#3}}}
+ \tlist_if_empty:nT {#5}{#1{\q_prop#2\q_prop{#6}#3}}}
\let_new:NN \prop_set_eq:NN \toks_set_eq:NN
-\let_new:NN \prop_set_eq:Nc \toks_set_eq:Nc
+\let_new:NN \prop_set_eq:Nc \toks_set_eq:Nc
\let_new:NN \prop_set_eq:cN \toks_set_eq:cN
-\let_new:NN \prop_set_eq:cc \toks_set_eq:cc
-\let_new:NN \prop_gset_eq:NN \toks_gset_eq:NN
+\let_new:NN \prop_set_eq:cc \toks_set_eq:cc
+\let_new:NN \prop_gset_eq:NN \toks_gset_eq:NN
\let_new:NN \prop_gset_eq:Nc \toks_gset_eq:Nc
-\let_new:NN \prop_gset_eq:cN \toks_gset_eq:cN
+\let_new:NN \prop_gset_eq:cN \toks_gset_eq:cN
\let_new:NN \prop_gset_eq:cc \toks_gset_eq:cc
\let_new:NN \prop_if_empty_p:N \toks_if_empty_p:N
\let_new:NN \prop_if_empty_p:c \toks_if_empty_p:c
@@ -3036,13 +3271,13 @@
\let_new:NN \prop_if_empty:cT \toks_if_empty:cTF
\let_new:NN \prop_if_empty:cF \toks_if_empty:cF
\def_new:NNn \prop_if_eq:NNTF 2 {
- \tlist_if_eq:xxTF{\prop_use:N #1}{\prop_use:N #2}
+ \tlist_if_eq:xxTF{\toks_use:N #1}{\toks_use:N #2}
}
\def_new:NNn \prop_if_eq:NNT 2 {
- \tlist_if_eq:xxT{\prop_use:N #1}{\prop_use:N #2}
+ \tlist_if_eq:xxT{\toks_use:N #1}{\toks_use:N #2}
}
\def_new:NNn \prop_if_eq:NNF 2 {
- \tlist_if_eq:xxF{\prop_use:N #1}{\prop_use:N #2}
+ \tlist_if_eq:xxF{\toks_use:N #1}{\toks_use:N #2}
}
\def_new:Npn \prop_if_eq:NcTF {\exp_args:NNc \prop_if_eq:NNTF}
\def_new:Npn \prop_if_eq:NcT {\exp_args:NNc \prop_if_eq:NNT}
@@ -3054,32 +3289,82 @@
\def_new:Npn \prop_if_eq:ccT {\exp_args:Ncc \prop_if_eq:NNT}
\def_new:Npn \prop_if_eq:ccF {\exp_args:Ncc \prop_if_eq:NNF}
\def_new:Npn \prop_map_function:NN #1#2{
- \exp_after:NN \prop_map_function_aux:NNn
- \exp_after:NN #2 \prop_use:N #1 \q_nil \q_no_value \q_stop
+ \exp_after:NN \prop_map_function_aux:w
+ \exp_after:NN #2 \toks_use:N #1 \q_prop{}\q_prop \q_no_value \q_stop
}
-\def_new:Npn \prop_map_function_aux:NNn #1#2#3{
- \if_meaning:NN \q_nil #1
+\def_new:Npn \prop_map_function_aux:w #1\q_prop#2\q_prop#3{
+ \if:w \tlist_if_empty_p:n{#2}
\exp_after:NN \prop_map_break:w
\fi:
- #1#2{#3}
- \prop_map_function_aux:NNn #1
+ #1{#2}{#3}
+ \prop_map_function_aux:w #1
+}
+
+\def:Npn \prop_map_function:NN #1#2{
+ \exp_after:NN \prop_map_function_aux:w
+ \exp_after:NN #2 \toks_use:N #1 \q_prop \q_no_value \q_prop \q_no_value
}
+\def:Npn \prop_map_function_aux:w #1\q_prop#2\q_prop#3{
+ \quark_if_no_value:nF{#2}
+ {
+ #1{#2}{#3}
+ \prop_map_function_aux:w #1
+ }
+}
+
+\def:Npn \prop_map_function:NN #1#2{
+ \exp_after:NN \prop_map_function_aux:w
+ \exp_after:NN #2 \toks_use:N #1 \q_prop \q_nil \q_prop \q_no_value \q_stop
+}
+\def:Npn \prop_map_function_aux:w #1\q_prop#2\q_prop#3{
+ \if_meaning:NN \q_nil #2
+ \exp_after:NN \prop_map_break:w
+ \fi:
+ #1{#2}{#3}
+ \prop_map_function_aux:w #1
+}
+
+
\def_new:Npn \prop_map_function:cN {\exp_args:Nc \prop_map_function:NN }
+\def_new:Npn \prop_map_function:Nc {\exp_args:NNc \prop_map_function:NN }
\def_new:Npn \prop_map_function:cc {\exp_args:Ncc \prop_map_function:NN}
\num_new:N \l_prop_inline_level_num
\def_new:Npn \prop_map_inline:Nn #1#2 {
\num_incr:N \l_prop_inline_level_num
\def_long:cpn {prop_map_inline_ \num_use:N \l_prop_inline_level_num :n}
##1##2{#2}
- \exp_args:NcE \prop_map_function:N
+ \prop_map_function:Nc #1
{prop_map_inline_ \num_use:N \l_prop_inline_level_num :n}
- \prop_use:N #1
- \q_nil \q_no_value \q_stop
\num_decr:N \l_prop_inline_level_num
}
\def_new:Npn \prop_map_inline:cN { \exp_args:Nc \prop_map_inline:NN }
-
\let_new:NN \prop_map_break:w \use_none_delimit_by_q_stop:w
+\def:Npn \prop_put:NNn {\typeout{Warning:~name~
+ changed~ to~ \string\prop_put:Nnn}\prop_put:Nnn}
+\def:Npn \prop_gput:NNn {\typeout{Warning:~name~
+ changed~ to~ \string\prop_gput:Nnn }\prop_gput:Nnn }
+\def:Npn \prop_gput:NNo {\typeout{Warning:~name~
+ changed~ to~ \string\prop_gput:Nno }\prop_gput:Nno }
+\def:Npn \prop_gput:cNn {\typeout{Warning:~name~
+ changed~ to~ \string\prop_gput:cnn }\prop_gput:cnn }
+\def:Npn \prop_gput_if_new:NNn {\typeout{Warning:~name~
+ changed~ to~ \string\prop_gput_if_new:Nnn }\prop_gput_if_new:Nnn }
+\def:Npn \prop_get:NNN {\typeout{Warning:~name~
+ changed~ to~ \string\prop_get:NnN }\prop_get:NnN }
+\def:Npn \prop_get:cNN {\typeout{Warning:~name~
+ changed~ to~ \string\prop_get:cnN }\prop_get:cnN }
+\def:Npn \prop_gget:NNN {\typeout{Warning:~name~
+ changed~ to~ \string\prop_gget:NnN }\prop_gget:NnN }
+\def:Npn \prop_gget:cNN {\typeout{Warning:~name~
+ changed~ to~ \string\prop_gget:cnN }\prop_gget:cnN }
+\def:Npn \prop_get_gdel:NNN {\typeout{Warning:~name~
+ changed~ to~ \string\prop_get_gdel:NnN }\prop_get_gdel:NnN }
+\def:Npn \prop_del:NN {\typeout{Warning:~name~
+ changed~ to~ \string\prop_del:Nn }\prop_del:Nn }
+\def:Npn \prop_gdel:NN {\typeout{Warning:~name~
+ changed~ to~ \string\prop_gdel:Nn }\prop_gdel:Nn }
+\def:Npn \prop_if_in:NNTF {\typeout{Warning:~name~
+ changed~ to~ \string\prop_if_in:NnTF }\prop_if_in:NnTF }
%% File: l3token.dtx Copyright (C) 2005-2006 LaTeX3 project
%%
%% It may be distributed and/or modified under the conditions of the
@@ -3112,7 +3397,7 @@
%% prior consultation with the LaTeX Project Team.
%%
%% -----------------------------------------------------------------------
-\GetIdInfo$Id: l3token.dtx 578 2006-11-21 18:13:24Z morten $
+\GetIdInfo$Id: l3token.dtx 701 2007-11-27 14:21:05Z morten $
{L3 Experimental token investigation and manipulation}
\let_new:NN \char_set_catcode:w \tex_catcode:D
\def_new:Npn \char_set_catcode:nn #1#2{
@@ -3123,6 +3408,19 @@
\def_new:Npn \char_show_value_catcode:w {\tex_showthe:D\tex_catcode:D}
\def_new:Npn \char_show_value_catcode:n #1{
\char_show_value_catcode:w \int_eval:n{#1}}
+\let_new:NN \char_set_mathcode:w \tex_mathcode:D
+\def_new:Npn \char_set_mathcode:nn #1#2{
+ \char_set_mathcode:w #1 = \int_eval:n{#2}
+}
+\def_protected_new:Npn \char_gset_mathcode:w {\pref_global:D\tex_mathcode:D}
+\def_new:Npn \char_gset_mathcode:nn #1#2{
+ \char_gset_mathcode:w #1 = \int_eval:n{#2}
+}
+\def_new:Npn \char_value_mathcode:w {\int_use:N\tex_mathcode:D}
+\def_new:Npn \char_value_mathcode:n #1{\char_value_mathcode:w \int_eval:n{#1}}
+\def_new:Npn \char_show_value_mathcode:w {\tex_showthe:D\tex_mathcode:D}
+\def_new:Npn \char_show_value_mathcode:n #1{
+ \char_show_value_mathcode:w \int_eval:n{#1}}
\let_new:NN \char_set_lccode:w \tex_lccode:D
\def_new:Npn \char_set_lccode:nn #1#2{
\char_set_lccode:w #1 = \int_eval:n{#2}
@@ -3540,10 +3838,9 @@
\fi:
}
\def_new:Npn \peek_execute_branches_charcode: {
- \prg_if_predicate:nTF {
- \prg_if_predicate_or_p:nn
- {\token_if_eq_catcode_p:NN \l_peek_token \c_group_begin_token}
- {\token_if_eq_meaning_p:NN \l_peek_token \c_space_token}
+ \predicate:nTF {
+ \token_if_eq_catcode_p:NN \l_peek_token \c_group_begin_token ||
+ \token_if_eq_meaning_p:NN \l_peek_token \c_space_token
}
{ \l_peek_false_tlp }
{ \exp_after:NN \peek_execute_branches_charcode_aux:NN \l_peek_search_tlp }
@@ -3641,10 +3938,10 @@
%% prior consultation with the LaTeX Project Team.
%%
%% -----------------------------------------------------------------------
-\GetIdInfo$Id: l3vers.dtx 573 2006-08-21 20:59:37Z morten $
+\GetIdInfo$Id: l3vers.dtx 621 2007-09-01 20:14:19Z morten $
{L3 Experimental LaTeX format version}
\def:Npn\c_format_name{Experimental~ LaTeX3}
-\def:Npn\c_format_date{2005/12/25}
+\def:Npn\c_format_date{2007/09/01}
\const_new:Nn \c_fmt_too_old{12}
\def:Npn\chk_format_age:w #1/#2/#3\q_stop{
\num_compare:nNnT{(\tex_year:D-#1)*12+\tex_month:D-#2}>\c_fmt_too_old
@@ -3652,7 +3949,7 @@
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!^^J
!~~You~are~attempting~to~make~an~experimental~LaTeX3~format~from^^J
!~~source~files~that~are~more~than~
- \num_use:N\num_eval:n{\c_fmt_too_old}~months~old.^^J
+ \num_value:w\num_eval:n{\c_fmt_too_old}~months~old.^^J
!^^J
!~~If~you~enter~<return>~to~scroll~past~this~message~then~the~format^^J
!~~will~be~built,~but~please~consider~obtaining~newer~source~files^^J
@@ -3670,7 +3967,7 @@
\cs_gundefine:N \chk_format_age:w
\tex_everyjob:D{\io_put_term:x{\c_format_name,~<\c_format_date>}}
\io_put_term:x{\c_format_name,~<\c_format_date>}
-%% File: l3skip.dtx Copyright (C) 2005-2006 Frank Mittelbach, LaTeX3 project
+%% File: l3skip.dtx Copyright (C) 2005-2007 Frank Mittelbach, 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
@@ -3702,7 +3999,7 @@
%% prior consultation with the LaTeX Project Team.
%%
%% -----------------------------------------------------------------------
-\GetIdInfo$Id: l3skip.dtx 573 2006-08-21 20:59:37Z morten $
+\GetIdInfo$Id: l3skip.dtx 666 2007-09-27 15:53:26Z mittelba $
{L3 Experimental skip registers}
\alloc_setup_type:nnn {skip} \c_zero \c_max_register_num
\def_new:Npn\skip_new:N #1 {\alloc_reg:NnNN g {skip} \tex_skipdef:D #1 }
@@ -3756,10 +4053,9 @@
\skip_new:N \c_max_skip
\skip_set:Nn \c_max_skip {16383.99999pt}
\def_new:Npn \skip_infinite_glue:nTF #1{
- \prg_logic_test:nTF {
- \prg_logic_or_p:nn
- { \int_compare_p:nNn {\etex_gluestretchorder:D #1 } > \c_zero }
- { \int_compare_p:nNn {\etex_glueshrinkorder:D #1 } > \c_zero }
+ \predicate:nTF {
+ \int_compare_p:nNn {\etex_gluestretchorder:D #1 } > \c_zero ||
+ \int_compare_p:nNn {\etex_glueshrinkorder:D #1 } > \c_zero
}
}
\def_new:Npn \skip_split_finite_else_action:nnNN #1#2#3#4{
@@ -3795,10 +4091,12 @@
\def_new:Npn\dim_add:cn{\exp_args:Nc\dim_add:Nn}
\def_new:Npn\dim_add:Nc{\exp_args:NNc\dim_add:Nn}
\def_new:Npn \dim_gadd:Nn { \pref_global:D \dim_add:Nn }
+\def_new:Npn\dim_gadd:cn{\exp_args:Nc\dim_gadd:Nn}
\def_new:Npn \dim_sub:Nn #1#2{\tex_advance:D#1-#2\scan_stop:}
\def_new:Npn\dim_sub:cn{\exp_args:Nc\dim_sub:Nn}
\def_new:Npn\dim_sub:Nc{\exp_args:NNc\dim_sub:Nn}
\def_new:Npn \dim_gsub:Nn {\pref_global:D \dim_sub:Nn }
+\def_new:Npn\dim_gsub:cn{\exp_args:Nc\dim_gsub:Nn}
\let_new:NN \dim_use:N \tex_the:D
\def_new:Npn \dim_use:c {\exp_args:Nc\dim_use:N}
\dim_new:N \l_tmpa_dim
@@ -3891,7 +4189,7 @@
%% prior consultation with the LaTeX Project Team.
%%
%% -----------------------------------------------------------------------
-\GetIdInfo$Id: l3toks.dtx 580 2006-11-26 15:56:47Z morten $
+\GetIdInfo$Id: l3toks.dtx 728 2008-01-01 16:11:58Z morten $
{L3 Experimental Token Registers}
\alloc_setup_type:nnn {toks} \c_zero \c_max_register_num
\def_new:Npn \toks_new:N #1{\alloc_reg:NnNN g {toks} \tex_toksdef:D #1}
@@ -3993,6 +4291,12 @@
\def_new:Npn \toks_if_eq:ccTF {\exp_args:Ncc \toks_if_eq:NNTF}
\def_new:Npn \toks_if_eq:ccT {\exp_args:Ncc \toks_if_eq:NNT}
\def_new:Npn \toks_if_eq:ccF {\exp_args:Ncc \toks_if_eq:NNF}
+\def_new:NNn \toks_if_eq_p:NN 2 {
+ \tlist_if_eq_p:xx {\toks_use:N #1} {\toks_use:N #2}
+}
+\def_new:Npn \toks_if_eq_p:cN {\exp_args:Nc \toks_if_eq_p:NN}
+\def_new:Npn \toks_if_eq_p:Nc {\exp_args:NNc \toks_if_eq_p:NN}
+\def_new:Npn \toks_if_eq_p:cc {\exp_args:Ncc \toks_if_eq_p:NN}
\tex_toksdef:D \l_tmpa_toks = 255
\seq_put_right:Nn \g_toks_allocation_seq {255}
\toks_new:N \l_tmpb_toks
@@ -4007,7 +4311,7 @@
\toks_use:N#1\q_nil
}
\def_long_new:Npn\toks_remove_extra_brace_group_aux:NNw #1#2#3\q_nil{#1#2{#3}}
-%% File: l3messages.dtx Copyright (C) 1990-2006 LaTeX3 project
+%% File: l3messages.dtx Copyright (C) 1990-2007 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
@@ -4039,7 +4343,7 @@
%% prior consultation with the LaTeX Project Team.
%%
%% -----------------------------------------------------------------------
-\GetIdInfo$Id: l3messages.dtx 573 2006-08-21 20:59:37Z morten $
+\GetIdInfo$Id: l3messages.dtx 673 2007-09-28 20:50:33Z mittelba $
{L3 Experimental LaTeX Messages module}
\tlp_new:Nn \g_file_curr_name_tlp {no~file}
\let_new:NN \err_message:x \tex_errmessage:D
@@ -4067,16 +4371,16 @@
\def_new:Npn \l_err_label_token {}
\int_set:Nn\tex_errorcontextlines:D\c_minus_one
\def_new:Npn \err_info:nn #1#2{
- \def:Npn\err_newline:{\iow_newline#2}
+ \def:Npn\err_newline:{\iow_newline:#2}
\io_put_log:x {#1~\io_show_file_lineno:}}
\def_new:Npn \err_warn:nn #1#2{
- \def:Npn\err_newline:{\iow_newline#2}
+ \def:Npn\err_newline:{\iow_newline:#2}
\io_put_term:x {#1~\io_show_file_lineno:}}
\def_new:Npn \err_info_noline:nn #1#2{
- \def:Npn\err_newline:{\iow_newline#2}
+ \def:Npn\err_newline:{\iow_newline:#2}
\io_put_log:x {#1}}
\def_new:Npn \err_warn_noline:nn #1#2{
- \def:Npn\err_newline:{\iow_newline#2}
+ \def:Npn\err_newline:{\iow_newline:#2}
\io_put_term:x {#1}}
\def_new:Npn \err_interrupt:NNw #1#2{\let:NwN \l_err_label_token #2
\group_begin:
@@ -4086,12 +4390,12 @@
%\clearshortrefmaps
\tex_input:D #1~\err_display_aux:w}
\def_new:Npn \err_fatal:nn #1#2{
- \def:Npn\err_newline:{\iow_newline#2}
+ \def:Npn\err_newline:{\iow_newline:#2}
\io_put_term:x {#1~\io_show_file_lineno:}
\tex_end:D
}
\def_new:Npn \err_fatal_noline:nn #1#2{
- \def:Npn\err_newline:{\iow_newline#2}
+ \def:Npn\err_newline:{\iow_newline:#2}
\io_put_term:x {#1}
\tex_end:D
}
@@ -4110,9 +4414,9 @@
{\err_latex_bug:x{You~closed~the~wrong~error~file~`#1'.~
Open~is~`\g_err_curr_fname'.}}
\iow_long_unexpanded:Nn \c_iow_err_stream {\err_latex_bug:x{Didn't~find~the~
- correct~error~message~to~show.\iow_newline
+ correct~error~message~to~show.\iow_newline:
Was~searching~for~a~function~
- with~the~following~meaning:\iow_newline
+ with~the~following~meaning:\iow_newline:
\token_to_string:N\token_to_meaning:N
\token_to_string:N\l_err_label_token}
\group_end:}
@@ -4121,7 +4425,7 @@
\tlp_gset_eq:NN\g_err_curr_fname\c_empty_tlp
}
\def_new:Npn \err_interrupt_new:NNNnnn #1{
- \group_begin: \tex_catcode:D`\#\c_other_char_code
+ \group_begin: \char_set_catcode:nn{`\#}{12}
\if_meaning:NN#1\g_err_curr_fname
\else:
\err_latex_bug:x{Error~text~goes~to~wrong~err~file:~
@@ -4138,9 +4442,9 @@
\cmd_declare:Nnn\err_display_aux:w [#2]{
\group_end:
\toks_gset:Nx\g_err_help_toks{#4}
- \io_put_term:x{LaTeX~error~\io_show_file_lineno:.\iow_newline
+ \io_put_term:x{LaTeX~error~\io_show_file_lineno:.\iow_newline:
\text_put_sp:\text_put_four_sp: \text_put_sp:
- See~LaTeX~manual~for~explanation.\iow_newline
+ See~LaTeX~manual~for~explanation.\iow_newline:
\text_put_sp:\text_put_four_sp: \text_put_sp:
Type~\text_put_sp: H~<return>~\text_put_sp: for~
immediate~help.}
@@ -4181,7 +4485,7 @@
\text_put_four_sp:\text_put_four_sp:\text_put_four_sp:}
}
\err_file_new:Nn \c_kernel_err_tlp {ltxkernel.err}
-%% File: l3box.dtx Copyright (C) 2005-2006 LaTeX3 project
+%% File: l3box.dtx Copyright (C) 2005-2007 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
@@ -4213,7 +4517,7 @@
%% prior consultation with the LaTeX Project Team.
%%
%% -----------------------------------------------------------------------
-\GetIdInfo$Id: l3box.dtx 573 2006-08-21 20:59:37Z morten $
+\GetIdInfo$Id: l3box.dtx 718 2007-12-16 22:59:58Z morten $
{L3 Experimental Box module}
\alloc_setup_type:nnn {box} \c_zero \c_max_register_num
\seq_put_right:Nn \g_box_allocation_seq {255}
@@ -4223,6 +4527,9 @@
\let_new:NN \if_hbox:N \tex_ifhbox:D
\let_new:NN \if_vbox:N \tex_ifvbox:D
\let_new:NN \if_box_empty:N \tex_ifvoid:D
+\def_new:Npn \box_if_empty_p:N #1{
+ \if_box_empty:N #1 \c_true \else: \c_false \fi:}
+\def_new:Npn \box_if_empty_p:c {\exp_args:Nc \box_if_empty_p:N}
\def_test_function_new:npn {box_if_empty:N}#1{\if_box_empty:N #1}
\def_new:Npn \box_if_empty:cTF {\exp_args:Nc \box_if_empty:NTF}
\def_new:Npn \box_if_empty:cT {\exp_args:Nc \box_if_empty:NT}
@@ -4235,11 +4542,11 @@
\def_new:Npn \box_gset_eq:cN {\exp_args:Nc \box_gset_eq:NN}
\def_new:Npn \box_gset_eq:Nc {\exp_args:NNc \box_gset_eq:NN}
\def_new:Npn \box_gset_eq:cc {\exp_args:Ncc \box_gset_eq:NN}
-\let_new:NN \R_previous_box \tex_lastbox:D
-\def_new:Npn \box_set_to_previous:N #1{\tex_setbox:D#1\R_previous_box}
-\def_new:Npn \box_set_to_previous:c {\exp_args:Nc \box_set_to_previous:N}
-\def_new:Npn \box_gset_to_previous:N {\pref_global:D \box_set_to_previous:N}
-\def_new:Npn \box_gset_to_previous:c {\exp_args:Nc \box_gset_to_previous:N}
+\let_new:NN \R_last_box \tex_lastbox:D
+\def_new:Npn \box_set_to_last:N #1{\tex_setbox:D#1\R_last_box}
+\def_new:Npn \box_set_to_last:c {\exp_args:Nc \box_set_to_last:N}
+\def_new:Npn \box_gset_to_last:N {\pref_global:D \box_set_to_last:N}
+\def_new:Npn \box_gset_to_last:c {\exp_args:Nc \box_gset_to_last:N}
\def_long_new:Npn \box_move_left:nn #1#2{\tex_moveleft:D\dim_eval:n{#1}{#2}}
\def_long_new:Npn \box_move_right:nn #1#2{\tex_moveright:D\dim_eval:n{#1}{#2}}
\def_long_new:Npn \box_move_up:nn #1#2{\tex_raise:D\dim_eval:n{#1}{#2}}
@@ -4301,9 +4608,13 @@
\def_new:Npn \hbox_gset_to_wd:cnn{\exp_args:Nc \hbox_gset_to_wd:Nnn }
\def_new:Npn \hbox_set_inline_begin:N #1 {
\tex_setbox:D #1 \tex_hbox:D \c_group_begin_token }
+\def:Npn \hbox_set_inline_begin:c {\exp_args:Nc
+ \hbox_set_inline_begin:N}
\let_new:NN \hbox_set_inline_end: \c_group_end_token
\def_new:Npn \hbox_gset_inline_begin:N {
\pref_global:D \hbox_set_inline_begin:N }
+\def:Npn \hbox_gset_inline_begin:c {\exp_args:Nc
+ \hbox_gset_inline_begin:N }
\let_new:NN \hbox_gset_inline_end: \c_group_end_token
\def_long_new:Npn \hbox_to_wd:nn #1#2 {\tex_hbox:D to #1 {#2}}
\def_long_new:Npn \hbox_to_zero:n #1 {\tex_hbox:D to \c_zero_skip {#1}}
@@ -4343,7 +4654,7 @@
%% prior consultation with the LaTeX Project Team.
%%
%% -----------------------------------------------------------------------
-\GetIdInfo$Id: l3precom.dtx 573 2006-08-21 20:59:37Z morten $
+\GetIdInfo$Id: l3precom.dtx 621 2007-09-01 20:14:19Z morten $
{L3 Experimental precompilation module}
\iow_new:N\c_cs_dump_stream
\tlp_new:Nn\g_cs_dump_name_tlp{}
@@ -4428,21 +4739,22 @@
%% prior consultation with the LaTeX Project Team.
%%
%% -----------------------------------------------------------------------
-\GetIdInfo$Id: l3prg.dtx 574 2006-08-21 23:30:10Z morten $
+\GetIdInfo$Id: l3prg.dtx 697 2007-11-27 14:14:54Z morten $
{L3 Experimental control structures}
-\def_new:Npn \mode_vertical_p: {
+\def_new:Npn \mode_if_vertical_p: {
\if_mode_vertical: \c_true \else: \c_false\fi:}
-\def_test_function_new:npn{mode_vertical:}{\if_mode_vertical:}
-\def_new:Npn \mode_horizontal_p: {
+\def_test_function_new:npn{mode_if_vertical:}{\if_mode_vertical:}
+\def_new:Npn \mode_if_horizontal_p: {
\if_mode_horizontal: \c_true \else: \c_false\fi:}
-\def_test_function_new:npn{mode_horizontal:}{\if_mode_horizontal:}
-\def_new:Npn \mode_inner_p: {
+\def_test_function_new:npn{mode_if_horizontal:}{\if_mode_horizontal:}
+\def_new:Npn \mode_if_inner_p: {
\if_mode_inner: \c_true \else: \c_false\fi:}
-\def_test_function_new:npn{mode_inner:}{\if_mode_inner:}
-\def_test_function_new:npn{mode_math:} {
+\def_test_function_new:npn{mode_if_inner:}{\if_mode_inner:}
+\def_test_function_new:npn{mode_if_math:} {
\scan_align_safe_stop: \if_mode_math: }
-\def_new:Npn \group_align_safe_begin: {\if_false:{\fi:\if_num:w0=`}\fi:}
-\def_new:Npn \group_align_safe_end: {\if_num:w0=`{\fi:\if_false:}\fi:}
+\def_new:Npn \group_align_safe_begin: {
+ \if_false:{\fi:\if_num:w`}=\c_zero\fi:}
+\def_new:Npn \group_align_safe_end: {\if_num:w`{=\c_zero}\fi:}
\def_new:Npn \scan_align_safe_stop: {
\num_compare:nNnT \etex_currentgrouptype:D = \c_six
{
@@ -4567,15 +4879,15 @@
}
}
\def_new:Npn \bool_new:N #1 { \let_new:NN #1 \c_false }
-\def_new:Npn \bool_new:c #1 { \let_new:cN #1 \c_false }
+\def_new:Npn \bool_new:c #1 { \let_new:cN {#1} \c_false }
\def_new:Npn \bool_set_true:N #1 { \let:NN #1 \c_true }
-\def_new:Npn \bool_set_true:c #1 { \let:cN #1 \c_true }
+\def_new:Npn \bool_set_true:c #1 { \let:cN {#1} \c_true }
\def_new:Npn \bool_set_false:N #1 { \let:NN #1 \c_false }
-\def_new:Npn \bool_set_false:c #1 { \let:cN #1 \c_false }
+\def_new:Npn \bool_set_false:c #1 { \let:cN {#1} \c_false }
\def_new:Npn \bool_gset_true:N #1 { \glet:NN #1 \c_true }
-\def_new:Npn \bool_gset_true:c #1 { \glet:cN #1 \c_true }
+\def_new:Npn \bool_gset_true:c #1 { \glet:cN {#1} \c_true }
\def_new:Npn \bool_gset_false:N #1 { \glet:NN #1 \c_false }
-\def_new:Npn \bool_gset_false:c #1 { \glet:cN #1 \c_false }
+\def_new:Npn \bool_gset_false:c #1 { \glet:cN {#1} \c_false }
\let_new:NN \bool_set_eq:NN \let:NN
\let_new:NN \bool_set_eq:Nc \let:Nc
\let_new:NN \bool_set_eq:cN \let:cN
@@ -4638,55 +4950,36 @@
\def_long_new:Npn \prg_dowhile:nF #1#2{
#2 #1 {\prg_dowhile:nF {#1}{#2}}
}
-\let_new:NN \prg_if_predicate:nTF \bool_if:NTF
-\let_new:NN \prg_if_predicate:nT \bool_if:NT
-\let_new:NN \prg_if_predicate:nF \bool_if:NF
-\def_new:Npn \prg_if_predicate_or_p:nn #1#2{
- \if_num:w #1#2<\c_hundred_one
- \c_true
- \else:
- \c_false
- \fi:
-}
-\def_new:Npn \prg_if_predicate_and_p:nn #1#2{
- \if_case:w #1#2 ~
- \c_true
- \else:
- \c_false
- \fi:
-}
-\def_new:Npn \prg_if_predicate_not_p:n #1{
- \if_case:w #1 ~
- \c_false
- \or:
- \c_true
- \fi:
-}
-\def_long_new:Npn \prg_if_predicate_ands_p:n #1{
- \exp_after:NN \prg_if_predicate_andor_aux:NNN \exp_after:NN \c_true
- \int_to_roman:w -`0 #1 \scan_stop: \scan_stop:
-}
-\def_long_new:Npn \prg_if_predicate_ors_p:n #1{
- \exp_after:NN \prg_if_predicate_andor_aux:NNN \exp_after:NN \c_false
- \int_to_roman:w -`0 #1 \scan_stop: \scan_stop:
-}
-\def_new:Npn \prg_if_predicate_andor_aux:NNN #1#2#3{
- \token_if_eq_meaning:NNTF \scan_stop: #2
- { #1 }
- {
- \int_compare:nNnTF #3 = #1
- { \exp_after:NN \prg_if_predicate_andor_aux:NNN }
- { \exp_after:NN \prg_if_predicate_andor_break:NNN }
- \exp_after:NN #1 \int_to_roman:w -`0
- }
+\def_long_new:Npn \predicate_p:n #1{
+ \group_align_safe_begin:
+ \exp_after:NN \predicate_auxi:NN
+ \int_to_roman:w-`\q #1 02\scan_stop:
}
-\def_new:Npn \prg_if_predicate_andor_break:NNN #1#2#3{
- \token_if_eq_meaning:NNTF \scan_stop: #2
- { \if:w #1\c_false\else:\c_true\fi: }
- {
- \exp_after:NN \prg_if_predicate_andor_break:NNN \exp_after:NN #1
- \int_to_roman:w -`0
- }
+\def_long_test_function_new:npn {predicate:n}#1{
+ \group_align_safe_begin:
+ \if:w \exp_after:NN \predicate_auxi:NN
+ \int_to_roman:w-`\q #1 02\scan_stop:
+}
+\def_new:Npn \predicate_auxi:NN 0 #1{
+ \exp_after:NN \predicate_auxii:NNN \exp_after:NN #1
+ \int_to_roman:w-`\q
+}
+\def_new:Npn \predicate_auxii:NNN #1#2#3{
+ \cs_use:c{predicate_#2#3_#1:w} }
+\def_new:cpn{predicate_&&_0:w}{
+ \exp_after:NN \predicate_auxi:NN\int_to_roman:w-`\q
+}
+\def_long_new:cpn{predicate_&&_1:w} #1 02\scan_stop:{
+ \group_align_safe_end: 01}
+\def_long_new:cpn{predicate_||_0:w} #1 02\scan_stop:{
+ \group_align_safe_end: 00}
+\def_new:cpn{predicate_||_1:w}{
+ \exp_after:NN \predicate_auxi:NN\int_to_roman:w-`\q
+}
+\def_new:cpn{predicate_02_0:w}\scan_stop:{ \group_align_safe_end: 00 }
+\def_new:cpn{predicate_02_1:w}\scan_stop:{ \group_align_safe_end: 01 }
+\def_long_new:Npn \predicate_not_p:n #1{
+ \if:w \predicate_p:n{#1} \c_false \else: \c_true \fi:
}
\def_new:NNn \prg_define_quicksort:nnn 3 {
\def_long:cNx{#1_quicksort:n}1{
@@ -4798,7 +5091,7 @@
%% prior consultation with the LaTeX Project Team.
%%
%% -----------------------------------------------------------------------
-\GetIdInfo$Id: l3xref.dtx 579 2006-11-25 23:38:03Z morten $
+\GetIdInfo$Id: l3xref.dtx 621 2007-09-01 20:14:19Z morten $
{L3 Experimental cross referencing}
\prop_new:N \g_xref_all_curr_immediate_fields_plist
\prop_new:N \g_xref_all_curr_deferred_fields_plist
@@ -4882,8 +5175,6 @@
%% prior consultation with the LaTeX Project Team.
%%
%% -----------------------------------------------------------------------
-\GetIdInfo$Id: l3final.dtx 573 2006-08-21 20:59:37Z morten $
- {L3 Experimental final module}
\err_file_close:N\c_kernel_err_tlp
\tex_dump:D
%%