summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/expl3
diff options
context:
space:
mode:
authorManuel Pégourié-Gonnard <mpg@elzevir.fr>2009-08-10 20:48:43 +0000
committerManuel Pégourié-Gonnard <mpg@elzevir.fr>2009-08-10 20:48:43 +0000
commitd6948fdf7cc35349aa107a25e8f43884ae30526d (patch)
tree38eea9f9343a2982db5dcf36505acd7009284fa9 /Master/texmf-dist/tex/latex/expl3
parent93bdb97aa1c0104884d2e1b3617014642e6b8c58 (diff)
expl3 update
git-svn-id: svn://tug.org/texlive/trunk@14603 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/expl3')
-rw-r--r--Master/texmf-dist/tex/latex/expl3/expl3.sty3
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3clist.sty11
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3keys.sty494
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3keyval.sty2
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3msg.sty61
5 files changed, 540 insertions, 31 deletions
diff --git a/Master/texmf-dist/tex/latex/expl3/expl3.sty b/Master/texmf-dist/tex/latex/expl3/expl3.sty
index db6b998e867..cd5739205f3 100644
--- a/Master/texmf-dist/tex/latex/expl3/expl3.sty
+++ b/Master/texmf-dist/tex/latex/expl3/expl3.sty
@@ -49,7 +49,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: expl3.dtx 1381 2009-06-01 20:36:02Z joseph $
+\GetIdInfo$Id: expl3.dtx 1439 2009-08-05 19:05:55Z joseph $
{L3 Experimental code bundle wrapper}%
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}
@@ -74,6 +74,7 @@
\RequirePackage{
l3box,
l3keyval,
+ l3keys,
l3precom,
l3calc,
l3xref,
diff --git a/Master/texmf-dist/tex/latex/expl3/l3clist.sty b/Master/texmf-dist/tex/latex/expl3/l3clist.sty
index 33051453762..b9dacde3d00 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3clist.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3clist.sty
@@ -48,7 +48,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3clist.dtx 1362 2009-05-28 20:19:21Z joseph $
+\GetIdInfo$Id: l3clist.dtx 1441 2009-08-05 19:23:23Z joseph $
{L3 Experimental comma separated lists}
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}
@@ -71,6 +71,15 @@
\cs_new_eq:NN \clist_gset_eq:cN \cs_gset_eq:cN
\cs_new_eq:NN \clist_gset_eq:Nc \cs_gset_eq:Nc
\cs_new_eq:NN \clist_gset_eq:cc \cs_gset_eq:cc
+\cs_new:Npn \clist_set_from_seq_aux:NNN #1#2#3 {
+ \cs_set:Npn \seq_elt:w ##1 \seq_elt_end: ##2 {
+ \exp_not:n {##1}
+ \quark_if_nil:NF ##2 { , ##2 }
+ }
+ #1 #2 { #3 \q_nil }
+}
+\cs_new:Npn \clist_set_from_seq:NN { \clist_set_from_seq_aux:NNN \tl_set:Nx }
+\cs_new:Npn \clist_gset_from_seq:NN { \clist_set_from_seq_aux:NNN \tl_gset:Nx }
\prg_new_eq_conditional:NNn \clist_if_empty:N \tl_if_empty:N {p,TF,T,F}
\prg_new_eq_conditional:NNn \clist_if_empty:c \tl_if_empty:c {p,TF,T,F}
\cs_new_nopar:Npn \clist_if_empty_err:N #1 {
diff --git a/Master/texmf-dist/tex/latex/expl3/l3keys.sty b/Master/texmf-dist/tex/latex/expl3/l3keys.sty
new file mode 100644
index 00000000000..7af3a864b83
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/expl3/l3keys.sty
@@ -0,0 +1,494 @@
+%%
+%% This is file `l3keys.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% l3keys.dtx (with options: `package')
+%%
+%%
+%% 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: l3keys.dtx Copyright (C) 2009 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/svnroot/experimental/trunk/
+%%
+%% for those people who are interested.
+%%
+%%%%%%%%%%%
+%% NOTE: %%
+%%%%%%%%%%%
+%%
+%% Snapshots taken from the repository represent work in progress and may
+%% not work or may contain conflicting material! We therefore ask
+%% people _not_ to put them into distributions, archives, etc. without
+%% prior consultation with the LaTeX Project Team.
+%%
+%% -----------------------------------------------------------------------
+\RequirePackage{l3names}
+\GetIdInfo$Id: l3keys.dtx 1441 2009-08-05 19:23:23Z joseph $
+ {L3 Experimental key-value support}
+\ProvidesExplPackage
+ {\filename}{\filedate}{\fileversion}{\filedescription}
+\package_check_loaded_expl:
+\tl_new:Nn \c_keys_root_tl { keys~>~ }
+\tl_new:Nn \c_keys_properties_root_tl { keys_properties }
+\tl_new:Nn \c_keys_value_forbidden_tl { forbidden }
+\tl_new:Nn \c_keys_value_required_tl { required }
+\int_new:N \l_keys_choice_int
+\tl_new:N \l_keys_choice_tl
+\tl_new:N \l_keys_key_tl
+\tl_new:N \l_keys_path_tl
+\tl_new:N \l_keys_property_tl
+\tl_new:N \l_keys_module_tl
+\seq_new:N \l_keys_nesting_seq
+\tl_new:Nn \l_keys_nesting_tl { none }
+\bool_new:N \l_keys_no_value_bool
+\toks_new:N \l_keys_value_toks
+\quark_new:N \q_keys_stop
+\cs_new:Npn \keys_arguments_tidy:w #1 \q_keys_stop { }
+\cs_new_nopar:Nn \keys_bool_set:N {
+ \keys_cmd_set:nNx { \l_keys_path_tl / true } 1 {
+ \exp_not:c { bool_ \keys_variable_get_scope:N #1 set_true:N }
+ \exp_not:N #1
+ }
+ \keys_cmd_set:nNx { \l_keys_path_tl / false } 1 {
+ \exp_not:N \use:c
+ { bool_ \keys_variable_get_scope:N #1 set_false:N }
+ \exp_not:N #1
+ }
+ \keys_bool_set_aux:N #1
+}
+\cs_new_nopar:Nn \keys_bool_set_inverse:N {
+ \keys_cmd_set:nNx { \l_keys_path_tl / true } 1 {
+ \exp_not:c { bool_ \keys_variable_get_scope:N #1 set_false:N }
+ \exp_not:N #1
+ }
+ \keys_cmd_set:nNx { \l_keys_path_tl / false } 1 {
+ \exp_not:c { bool_ \keys_variable_get_scope:N #1 set_true:N }
+ \exp_not:N #1
+ }
+ \keys_bool_set_aux:N #1
+}
+\cs_new_nopar:Nn \keys_bool_set_aux:N {
+ \keys_choice_make:
+ \cs_if_exist:NF #1 {
+ \bool_new:N #1
+ }
+ \keys_default_set:n { true }
+}
+\cs_new_nopar:Nn \keys_choice_find:n {
+ \keys_execute_aux:nn { \l_keys_path_tl / #1 } {
+ \keys_execute_aux:nn { \l_keys_path_tl / unknown } { }
+ }
+}
+\cs_new_nopar:Nn \keys_choice_make: {
+ \keys_cmd_set:nNn { \l_keys_path_tl } 1 {
+ \keys_choice_find:n {##1}
+ }
+ \keys_cmd_set:nNn { \l_keys_path_tl / unknown } 1 {
+ \msg_kernel_error:nxx { key-choice-unknown } { \l_keys_path_tl }
+ {##1}
+ }
+}
+\cs_new:Nn \keys_choices_generate:nx {
+ \keys_choice_make:
+ \int_zero:N \l_keys_choice_int
+ \cs_set_nopar:Nn \keys_choices_generate_aux:n {
+ \int_incr:N \l_keys_choice_int
+ \keys_cmd_set:nNx { \l_keys_path_tl / ##1 } 1 {
+ \exp_not:n { \tl_set:Nn \l_keys_choice_tl } {##1}
+ \exp_not:n { \int_set:Nn \l_keys_choice_int }
+ { \int_use:N \l_keys_choice_int }
+ #2
+ }
+ }
+ \clist_map_function:nN {#1} \keys_choices_generate_aux:n
+}
+\cs_new_nopar:Nn \keys_choices_generate_aux:n { }
+\cs_new:Nn \keys_cmd_set:nNn {
+ \keys_cmd_set_aux:nN {#1} #2
+ \cs_generate_from_arg_count:cNnn { \c_keys_root_tl #1 .cmd:w }
+ \cs_set:Npn #2 { #3 \keys_arguments_tidy:w }
+}
+\cs_new:Nn \keys_cmd_set:nNx {
+ \keys_cmd_set_aux:nN {#1} #2
+ \cs_generate_from_arg_count:cNnn { \c_keys_root_tl #1 .cmd:w }
+ \cs_set:Npx #2 { #3 \exp_not:N \keys_arguments_tidy:w }
+}
+\cs_new_nopar:Nn \keys_cmd_set_aux:nN {
+ \keys_property_undefine:n { #1 .default_tl }
+ \num_set:cn { \c_keys_root_tl #1 .args_num } {#2}
+ \tl_set:cn { \c_keys_root_tl #1 .req_tl } { }
+}
+\cs_new:Nn \keys_default_set:n {
+ \tl_set:cn { \c_keys_root_tl \l_keys_path_tl .default_tl } {#1}
+}
+\cs_generate_variant:Nn \keys_default_set:n { V }
+\cs_new:Nn \keys_define:nn {
+ \tl_set:Nn \l_keys_module_tl {#1}
+ \cs_set_eq:NN \KV_key_no_value_elt:n \keys_define_elt:n
+ \cs_set_eq:NN \KV_key_value_elt:nn \keys_define_elt:nn
+ \seq_push:NV \l_keys_nesting_seq \l_keys_nesting_tl
+ \tl_set:Nn \l_keys_nesting_tl { define }
+ \KV_parse_no_space_removal_no_sanitize:n {#2}
+ \seq_pop:NN \l_keys_nesting_seq \l_keys_nesting_tl
+ \cs_set_eq:Nc \KV_key_no_value_elt:n
+ { keys_ \l_keys_nesting_tl _elt:n }
+ \cs_set_eq:Nc \KV_key_value_elt:nn
+ { keys_ \l_keys_nesting_tl _elt:nn }
+}
+\cs_new_nopar:Nn \keys_define_elt:n {
+ \bool_set_true:N \l_keys_no_value_bool
+ \keys_define_elt_aux:nn {#1} { }
+}
+\cs_new:Nn \keys_define_elt:nn {
+ \bool_set_false:N \l_keys_no_value_bool
+ \keys_define_elt_aux:nn {#1} {#2}
+}
+\cs_new:Nn \keys_define_elt_aux:nn {
+ \keys_property_find:n {#1}
+ \cs_set_eq:Nc \keys_tmp:w
+ { \c_keys_properties_root_tl \l_keys_property_tl }
+ \cs_if_exist:NTF \keys_tmp:w {
+ \keys_define_key:n {#2}
+ }{
+ \msg_kernel_error:nx { key-property-unknown }
+ { \l_keys_property_tl }
+ }
+}
+\cs_new:Nn \keys_define_key:n {
+ \bool_if:NTF \l_keys_no_value_bool {
+ \intexpr_compare:nTF {
+ \exp_args:Nc \cs_get_arg_count_from_signature:N
+ { \l_keys_property_tl } = \c_zero
+ } {
+ \keys_tmp:w \q_keys_stop
+ }{
+ \msg_kernel_error:nx { key-property-value-required }
+ { \l_keys_property_tl }
+ }
+ }{
+ \intexpr_compare:nTF {
+ \exp_args:Nc \cs_get_arg_count_from_signature:N
+ { \l_keys_property_tl } = \c_one
+ } {
+ \keys_tmp:w {#1} \q_keys_stop
+ }{
+ \keys_tmp:w #1 { } { } { } { } { } { } { } { } { } \q_keys_stop
+ }
+ }
+}
+\cs_new_nopar:Nn \keys_execute: {
+ \keys_execute_aux:nn { \l_keys_path_tl } {
+ \keys_execute_unknown:
+ }
+}
+\cs_new_nopar:Nn \keys_execute_unknown: {
+ \keys_execute_aux:nn { \l_keys_module_tl / unknown } {
+ \msg_kernel_error:nx { key-unknown } { \l_keys_path_tl }
+ }
+}
+\cs_new_nopar:Nn \keys_execute_aux:nn {
+ \cs_set_eq:Nc \keys_tmp:w { \c_keys_root_tl #1 .cmd:w }
+ \cs_if_exist:NTF \keys_tmp:w {
+ \intexpr_compare:nTF {
+ \num_use:c { \c_keys_root_tl #1 .args_num } = \c_one
+ } {
+ \exp_args:NV \keys_tmp:w \l_keys_value_toks \q_keys_stop
+ }{
+ \exp_after:wN \keys_tmp:w \toks_use:N \l_keys_value_toks
+ { } { } { } { } { } { } { } { } { } \q_keys_stop
+ }
+ }{
+ #2
+ }
+}
+\cs_new_nopar:Npn \keys_if_value_requirement:nTF #1 {
+ \tl_if_eq:ccTF { c_keys_value_ #1 _tl } {
+ \c_keys_root_tl \l_keys_path_tl .req_tl
+ }
+}
+\cs_new:Nn \keys_initial_value:n {
+ \toks_set:Nn \l_keys_value_toks {#1}
+ \keys_execute_aux:nn { \l_keys_path_tl } {
+ \msg_kernel_error:nx { key-initial-without-code }
+ { \l_keys_path_tl }
+ }
+}
+\cs_generate_variant:Nn \keys_initial_value:n { V }
+\cs_new_nopar:Nn \keys_meta_make:n {
+ \keys_cmd_set:nNx { \l_keys_path_tl } 1 {
+ \exp_not:N \keys_set:nn { \l_keys_module_tl } {#1}
+ }
+}
+\cs_new_nopar:Nn \keys_property_find:n {
+ \tl_set:Nx \l_keys_path_tl { \l_keys_module_tl / }
+ \tl_if_in:nnTF {#1} {.} {
+ \keys_property_find_aux:n {#1}
+ }{
+ \msg_kernel_error:nx { key-no-property } { #1 }
+ }
+}
+\cs_new_nopar:Nn \keys_property_find_aux:n {
+ \keys_property_find_aux:w #1 \q_stop
+}
+\cs_new_nopar:Npn \keys_property_find_aux:w #1 . #2 \q_stop {
+ \tl_if_in:nnTF {#2} {.} {
+ \tl_set:Nx \l_keys_path_tl {
+ \l_keys_path_tl \tl_to_str:n {#1} .
+ }
+ \keys_property_find_aux:w #2 \q_stop
+ }{
+ \tl_set:Nx \l_keys_path_tl { \l_keys_path_tl \tl_to_str:n {#1} }
+ \tl_set:Nn \l_keys_property_tl { . #2 }
+ }
+}
+\cs_new_nopar:Nn \keys_property_new:nn {
+ \cs_new:cn { \c_keys_properties_root_tl #1 }
+ { #2 \keys_arguments_tidy:w }
+}
+\cs_new_nopar:Nn \keys_property_undefine:n {
+ \cs_set_eq:cN { \c_keys_root_tl #1 } \c_undefined
+}
+\cs_new:Nn \keys_set:nn {
+ \tl_set:Nn \l_keys_module_tl {#1}
+ \cs_set_eq:NN \KV_key_no_value_elt:n \keys_set_elt:n
+ \cs_set_eq:NN \KV_key_value_elt:nn \keys_set_elt:nn
+ \seq_push:NV \l_keys_nesting_seq \l_keys_nesting_tl
+ \tl_set:Nn \l_keys_nesting_tl { set }
+ \KV_parse_space_removal_sanitize:n {#2}
+ \seq_pop:NN \l_keys_nesting_seq \l_keys_nesting_tl
+ \cs_set_eq:Nc \KV_key_no_value_elt:n
+ { keys_ \l_keys_nesting_tl _elt:n }
+ \cs_set_eq:Nc \KV_key_value_elt:nn
+ { keys_ \l_keys_nesting_tl _elt:nn }
+}
+\cs_generate_variant:Nn \keys_set:nn { nV, nv }
+\cs_new_nopar:Nn \keys_set_elt:n {
+ \bool_set_true:N \l_keys_no_value_bool
+ \keys_set_elt_aux:nn {#1} { }
+}
+\cs_new:Nn \keys_set_elt:nn {
+ \bool_set_false:N \l_keys_no_value_bool
+ \keys_set_elt_aux:nn {#1} {#2}
+}
+\cs_new:Nn \keys_set_elt_aux:nn {
+ \tl_set:Nx \l_keys_key_tl { \tl_to_str:n {#1} }
+ \tl_set:Nx \l_keys_path_tl { \l_keys_module_tl / \l_keys_key_tl }
+ \keys_value_or_default:n {#2}
+ \keys_if_value_requirement:nTF { required } {
+ \bool_if:NTF \l_keys_no_value_bool {
+ \msg_kernel_error:nx { key~value~required } { \l_keys_path_tl }
+ }{
+ \keys_set_elt_aux:
+ }
+ }{
+ \keys_set_elt_aux:
+ }
+}
+\cs_new_nopar:Nn \keys_set_elt_aux: {
+ \keys_if_value_requirement:nTF { forbidden } {
+ \bool_if:NTF \l_keys_no_value_bool {
+ \keys_execute:
+ }{
+ \msg_kernel_error:nxx { key-value-forbidden } { \l_keys_path_tl }
+ { \toks_use:N \l_keys_value_toks }
+ }
+ }{
+ \keys_execute:
+ }
+}
+\cs_new_nopar:Nn \keys_show:nn {
+ \cs_show:c { \c_keys_root_tl #1 / \tl_to_str:n {#2} .cmd:w }
+}
+\cs_new:Npn \keys_tmp:w {}
+\cs_new:Nn \keys_value_or_default:n {
+ \toks_set:Nn \l_keys_value_toks {#1}
+ \bool_if:NT \l_keys_no_value_bool {
+ \cs_if_exist:cT { \c_keys_root_tl \l_keys_path_tl .default_tl } {
+ \toks_set:Nv \l_keys_value_toks {
+ \c_keys_root_tl \l_keys_path_tl .default_tl
+ }
+ }
+ }
+}
+\cs_new_nopar:Nn \keys_value_requirement:n {
+ \tl_set_eq:cc { \c_keys_root_tl \l_keys_path_tl .req_tl }
+ { c_keys_value_ #1 _tl }
+}
+\group_begin:
+ \char_set_lccode:nn {`\&} {`\g}
+ \char_make_other:N \&
+\tl_to_lowercase:n {
+ \group_end:
+ \cs_new_nopar:Nn \keys_variable_get_scope:N {
+ \exp_last_unbraced:Nf \keys_variable_get_scope_aux:w
+ { \cs_to_str:N #1 \exp_stop_f: \q_nil }
+ }
+ \cs_new_nopar:Npn \keys_variable_get_scope_aux:w #1#2 \q_nil {
+ \token_if_eq_meaning:NNT & #1 {g}
+ }
+}
+\group_begin:
+ \char_set_lccode:nn {`\&} {`\_}
+ \char_make_other:N \&
+\tl_to_lowercase:n {
+ \group_end:
+ \cs_new_nopar:Nn \keys_variable_get_type:N {
+ \exp_after:wN \keys_variable_get_type_aux:w
+ \token_to_str:N #1 & a \q_nil
+ }
+ \cs_new_nopar:Npn \keys_variable_get_type_aux:w #1 & #2#3 \q_nil {
+ \token_if_eq_meaning:NNTF a #2 {
+ #1
+ }{
+ \keys_variable_get_type_aux:w #2#3 \q_nil
+ }
+ }
+}
+\cs_new_nopar:Nn \keys_variable_set:NN {
+ \cs_if_exist:cF {
+ \keys_variable_get_type:N #2 _
+ \keys_variable_get_scope:N #2 set:N #1
+ } {
+ \msg_kernel_error:nxx { key-no-set-function } {
+ \exp_not:c {
+ \keys_variable_get_type:N #2 _
+ \keys_variable_get_scope:N #2 set:N #1
+ }
+ } {#2}
+ }
+ \cs_if_exist:NF #2 {
+ \use:c { \keys_variable_get_type:N #2 _new:N } #2
+ }
+ \keys_cmd_set:nNx { \l_keys_path_tl } 1 {
+ \exp_not:c {
+ \keys_variable_get_type:N #2 _
+ \keys_variable_get_scope:N #2 set:N #1
+ } \exp_not:N #2 {##1}
+ }
+}
+\keys_property_new:nn { .bool:N } {
+ \keys_bool_set:N #1
+}
+\keys_property_new:nn { .choice: } {
+ \keys_choice_make:
+}
+\keys_property_new:nn { .code:n } {
+ \keys_cmd_set:nNn { \l_keys_path_tl } 1 {#1}
+}
+\keys_property_new:nn { .code:Nn } {
+ \keys_cmd_set:nNn { \l_keys_path_tl } #1 {#2}
+}
+\keys_property_new:nn { .code:x } {
+ \keys_cmd_set:nNx { \l_keys_path_tl } 1 {#1}
+}
+\keys_property_new:nn { .code:Nx } {
+ \keys_cmd_set:nNx { \l_keys_path_tl } #1 {#2}
+}
+\keys_property_new:nn { .default:n } {
+ \keys_default_set:n {#1}
+}
+\keys_property_new:nn { .default:V } {
+ \keys_default_set:V #1
+}
+\keys_property_new:nn { .function:N } {
+ \keys_cmd_set:nNn { \l_keys_path_tl } 1 {
+ \cs_set:Nn #1 {##1}
+ }
+ \cs_if_free:NT #1 {
+ \cs_set:Nn #1 { }
+ }
+}
+\keys_property_new:nn { .generate_choices:nn } {
+ \keys_choices_generate:nx {#1} { \exp_not:n {#2} }
+}
+\keys_property_new:nn { .generate_choices:nx } {
+ \keys_choices_generate:nx {#1} {#2}
+}
+\keys_property_new:nn { .initial:n } {
+ \keys_initial_value:n {#1}
+}
+\keys_property_new:nn { .initial:V } {
+ \keys_initial_value:V #1
+}
+\keys_property_new:nn { .meta:n } {
+ \keys_meta_make:n {#1}
+}
+\keys_property_new:nn { .set:N } {
+ \keys_variable_set:NN n #1
+}
+\keys_property_new:nn { .set_x:N } {
+ \keys_variable_set:NN x #1
+}
+\keys_property_new:nn { .value_forbidden: } {
+ \keys_value_requirement:n { forbidden }
+}
+\keys_property_new:nn { .value_required: } {
+ \keys_value_requirement:n { required }
+}
+\msg_kernel_new:nn { key-choice-unknown } {%
+ Choice `#2' unknown for key `#1':\\%
+ the key is being ignored.%
+}
+\msg_kernel_new:nn { key-initial-without-code } {%
+ An initial value cannot be set for key `#1':
+ the key has not yet been created.%
+}
+\msg_kernel_new:nn { key-unknown } {%
+ The key `#1' is unknown and is being ignored.%
+}
+\msg_kernel_new:nn { key-value-forbidden }{%
+ The key `#1' cannot taken a value:\\%
+ the given input `#2' is being ignored.%
+}
+\msg_kernel_new:nn { key~value~required } {%
+ The key `#1' requires a value\\%
+ and is being ignored.%
+}
+\msg_kernel_new:nn { key-no-property } {%
+ No property given in definition of key `#1'.%
+}
+\msg_kernel_new:nnn { key-no-set-function } {%
+ There is no function #1\\%
+ for setting variable \exp_not:N #2.%
+}{%
+ LaTeX can only `set' variables which have a function\\%
+ \exp_not:N \<var>_(g)set:Nn, or in some cases
+ \exp_not:N \<var>_(g)set:Nx.\\%
+ You have asked to `set' some other kind of variable.%
+
+}
+\msg_kernel_new:nn { key-property-unknown } {%
+ The key property `#1' is unknown.%
+}
+\msg_kernel_new:nn { key-property-value-required } {%
+ The property `#1' requires a value\\%
+ and is being ignored.%
+}
+%%
+%%
+%% End of file `l3keys.sty'.
diff --git a/Master/texmf-dist/tex/latex/expl3/l3keyval.sty b/Master/texmf-dist/tex/latex/expl3/l3keyval.sty
index 5ce6a6f8893..f67bfb16daf 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3keyval.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3keyval.sty
@@ -48,7 +48,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3keyval.dtx 1412 2009-06-14 17:55:48Z joseph $
+\GetIdInfo$Id: l3keyval.dtx 1424 2009-07-13 06:05:25Z joseph $
{L3 Experimental keyval processing}
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}
diff --git a/Master/texmf-dist/tex/latex/expl3/l3msg.sty b/Master/texmf-dist/tex/latex/expl3/l3msg.sty
index 6d7cee74366..7f5cc5344f0 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3msg.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3msg.sty
@@ -49,7 +49,7 @@
%% -----------------------------------------------------------------------
%%
\RequirePackage{l3names}
-\GetIdInfo$Id: l3msg.dtx 1362 2009-05-28 20:19:21Z joseph $
+\GetIdInfo$Id: l3msg.dtx 1423 2009-07-12 20:23:53Z joseph $
{L3 Experimental LaTeX Messages module}
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}
@@ -268,20 +268,20 @@
}
\cs_set:Nn \msg_use_loop:n {
\clist_if_in:NnTF \l_msg_redirect_classes_clist {#1} {
- \msg_kernel_error:n { message~loop }
+ \msg_kernel_error:n { message-loop }
}{
\clist_put_right:Nn \l_msg_redirect_classes_clist {#1}
\cs_if_exist:cTF { msg_ ##1 :nnxx } {
\use:c { msg_ ##1 :nnxx } {#3} {#4} {#5} {#6}
}{
- \msg_kernel_error:nx { message~class~unknown } { ##1 }
+ \msg_kernel_error:nx { message-class-unknown } { ##1 }
}
}
}
\cs_if_exist:cTF { \c_msg_text_prefix_tl #3 / #4 :nn } {
\msg_use_aux:nnn {#1} {#3} {#4}
}{
- \msg_kernel_error:nxx { message~unknown } { #3 } { #4 }
+ \msg_kernel_error:nxx { message-unknown } { #3 } { #4 }
}
}
\cs_new_nopar:Nn \msg_use_code: { }
@@ -450,30 +450,35 @@
\msg_info:nnxx { LaTeX }
}
\msg_kernel_classes_new:n { info }
-\msg_kernel_new:nnn
- { coding~bug }
- {This is a LaTeX bug: check coding!\\#1}
- {#2}
-\msg_kernel_new:nnn
- { message~unknown }
- {Unknown message `#2' for module `#1'.}
- {LaTeX was asked to display a message by the `#1' module.\\
- The message was supposed to be called `#2', but I can't\\
- find a message with that name.
- \c_msg_return_text_tl}
-\msg_kernel_new:nnn
- { message~class~unknown }
- {Unknown message class `#1'.}
- {You have asked for a message to be redirected to class `#1'\\
- but this class is unknown.
- \c_msg_return_text_tl}
-\msg_kernel_new:nnn
- { message~loop }
- {Message redirection loop.}
- {You have asked for a message to be redirected,\\
- but the redirection instructions form a loop:\\
- you've lost the message.
- \c_msg_return_text_tl}
+\msg_kernel_new:nnn { coding-bug } {%
+ This is a LaTeX bug: check coding!\\%
+ #1%
+}{%
+ #2%
+}
+\msg_kernel_new:nnn { message-unknown } {%
+ Unknown message `#2' for module `#1'.%
+}{%
+ LaTeX was asked to display a message by the `#1' module.\\%
+ The message was supposed to be called `#2', but I can't\\%
+ find a message with that name.
+ \c_msg_return_text_tl
+}
+\msg_kernel_new:nnn { message-class-unknown } {%
+ Unknown message class `#1'.%
+}{%
+ You have asked for a message to be redirected to class `#1'\\%
+ but this class is unknown.
+ \c_msg_return_text_tl
+}
+\msg_kernel_new:nnn { message-loop } {%
+ Message redirection loop.%
+}{%
+ You have asked for a message to be redirected,\\%
+ but the redirection instructions form a loop:\\%
+ you've lost the message.
+ \c_msg_return_text_tl
+}
\cs_set_protected:Nn \msg_kernel_bug:x {
\msg_direct_interrupt:xxxxn
{ \c_msg_kernel_bug_text_tl }