diff options
author | Karl Berry <karl@freefriends.org> | 2014-06-17 22:32:09 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2014-06-17 22:32:09 +0000 |
commit | 3c2f50b92407533aabaef1823006032eedd6ef90 (patch) | |
tree | eb67245dd952c951b95c485a5eb66f9539ac83df /Master/texmf-dist/tex | |
parent | 4aa0b8110f2fdb3044d8b26d54e12cbb49a9a3dc (diff) |
l3
git-svn-id: svn://tug.org/texlive/trunk@34268 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex')
15 files changed, 637 insertions, 872 deletions
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3flag.sty b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3flag.sty index a7249a188cb..242a465ed60 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3flag.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3flag.sty @@ -46,7 +46,7 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{expl3} -\GetIdInfo$Id: l3flag.dtx 3039 2011-12-08 09:22:35Z bruno $ +\GetIdInfo$Id: l3flag.dtx 4745 2014-05-06 10:41:27Z joseph $ {L3 Experimental flags} \ProvidesExplPackage {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3regex-trace.sty b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3regex-trace.sty index 3d1224dfd80..ec8dc8bce52 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3regex-trace.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3regex-trace.sty @@ -46,7 +46,7 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{expl3} -\GetIdInfo$Id: l3regex.dtx 4623 2013-12-14 13:53:40Z bruno $ +\GetIdInfo$Id: l3regex.dtx 5067 2014-06-06 16:51:35Z bruno $ {L3 Experimental regular expressions} \ProvidesExplPackage {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} @@ -268,7 +268,7 @@ } \cs_new_protected:Npn \__regex_escape_use:nnnn #1#2#3#4 { - \trace_push:nnn { regex } { 1 } { @@_escape_use:nnnn } + \trace_push:nnn { regex } { 1 } { __regex_escape_use:nnnn } \__tl_build:Nw \l__regex_internal_a_tl \cs_set_nopar:Npn \__regex_escape_unescaped:N ##1 { #1 } \cs_set_nopar:Npn \__regex_escape_escaped:N ##1 { #2 } @@ -282,7 +282,7 @@ } \__tl_build_one:o \l__regex_internal_b_tl \__tl_build_end: - \trace_pop:nnn { regex } { 1 } { @@_escape_use:nnnn } + \trace_pop:nnn { regex } { 1 } { __regex_escape_use:nnnn } \l__regex_internal_a_tl } \cs_new:Npn \__regex_escape_loop:N #1 @@ -365,12 +365,12 @@ \if_charcode:w \c_space_token #1 \exp_after:wN \__regex_escape_x_test:N \else: - \exp_after:wN \__regex_escape_x_test_two:N + \exp_after:wN \__regex_escape_x_testii:N \exp_after:wN #1 \fi: } } -\cs_new:Npn \__regex_escape_x_test_two:N #1 +\cs_new:Npn \__regex_escape_x_testii:N #1 { \if_charcode:w \c_left_brace_str #1 \exp_after:wN \__regex_escape_x_loop:N @@ -391,25 +391,32 @@ } \cs_new:Npn \__regex_escape_x_loop:N #1 { - \__str_hexadecimal_use:NTF #1 - { \__regex_escape_x_loop:N } + \str_if_eq_x:nnTF {#1} { break } + { ; \__regex_escape_x_loop_error:n { } {#1} } { - \token_if_eq_charcode:NNTF \c_space_token #1 + \__str_hexadecimal_use:NTF #1 { \__regex_escape_x_loop:N } { - ; - \exp_after:wN \token_if_eq_charcode:NNTF \c_right_brace_str #1 - { \__regex_escape_loop:N } + \token_if_eq_charcode:NNTF \c_space_token #1 + { \__regex_escape_x_loop:N } { - \if_false: { \fi: } - \__tl_build_one:o \l__regex_internal_b_tl - \__msg_kernel_error:nn { regex } { x-missing-rbrace } {#1} - \tl_set:Nx \l__regex_internal_b_tl - { \if_false: } \fi: \__regex_escape_loop:N #1 + ; + \exp_after:wN + \token_if_eq_charcode:NNTF \c_right_brace_str #1 + { \__regex_escape_loop:N } + { \__regex_escape_x_loop_error:n {#1} } } } } } +\cs_new:Npn \__regex_escape_x_loop_error:n #1 + { + \if_false: { \fi: } + \__tl_build_one:o \l__regex_internal_b_tl + \__msg_kernel_error:nnx { regex } { x-missing-rbrace } {#1} + \tl_set:Nx \l__regex_internal_b_tl + { \if_false: } \fi: \__regex_escape_loop:N #1 + } \prg_new_conditional:Npnn \__regex_char_if_special:N #1 { TF } { \if_int_compare:w `#1 < \c_ninety_one @@ -614,6 +621,8 @@ { #1 } \prg_do_nothing: \prg_do_nothing: \prg_do_nothing: \prg_do_nothing: + \int_compare:nNnT \l__regex_mode_int = \c_two + { \__msg_kernel_error:nn { regex } { c-trailing } } \int_compare:nNnT \l__regex_mode_int < \c_zero { \__msg_kernel_error:nn { regex } { c-missing-rbrace } @@ -1067,7 +1076,7 @@ { __regex_compile_special_group_\token_to_str:N #4 :w } { \__msg_kernel_warning:nnx { regex } { special-group-unknown } - { (? \token_to_str:N #4 } + { (? #4 } \__regex_compile_group_begin:N \__regex_group:nnnN \__regex_compile_raw:N ? #3 #4 } @@ -1456,7 +1465,7 @@ } \cs_new_protected:Npn \__regex_build:N #1 { - \trace_push:nnn { regex } { 1 } { @@_build } + \trace_push:nnn { regex } { 1 } { __regex_build } \int_set:Nn \tex_escapechar:D { 92 } \int_zero:N \l__regex_capturing_group_int \int_set_eq:NN \l__regex_max_state_int \l__regex_min_state_int @@ -1467,12 +1476,12 @@ \__regex_group:nnnN {#1} { 1 } { 0 } \c_false_bool \__regex_toks_put_right:Nn \l__regex_right_state_int { \__regex_action_success: } - \@@_trace_states:n { 2 } - \trace_pop:nnn { regex } { 1 } { @@_build } + \__regex_trace_states:n { 2 } + \trace_pop:nnn { regex } { 1 } { __regex_build } } \cs_new_protected:Npn \__regex_build_for_cs:n #1 { - \trace_push:nnn { regex } { 1 } { @@_build_for_cs } + \trace_push:nnn { regex } { 1 } { __regex_build_for_cs } \int_set_eq:NN \l__regex_max_state_int \l__regex_min_state_int \__regex_build_new_state: \__regex_build_new_state: @@ -1485,8 +1494,8 @@ \exp_after:wN \__regex_action_success: \fi: } - \@@_trace_states:n { 2 } - \trace_pop:nnn { regex } { 1 } { @@_build_for_cs } + \__regex_trace_states:n { 2 } + \trace_pop:nnn { regex } { 1 } { __regex_build_for_cs } } \cs_new_protected_nopar:Npn \__regex_push_lr_states: { @@ -1602,7 +1611,7 @@ } \cs_new_protected:Npn \__regex_group_aux:nnnnN #1#2#3#4#5 { - \trace_push:nnn { regex } { 1 } { @@_group } + \trace_push:nnn { regex } { 1 } { __regex_group } \if_int_compare:w #3 = \c_zero \__regex_build_new_state: \__regex_build_transition_right:nNn \__regex_action_free_group:n @@ -1617,7 +1626,7 @@ \or: \__regex_group_repeat:nnN {#1} {#3} #5 \else: \__regex_group_repeat:nnnN {#1} {#3} {#4} #5 \fi: - \trace_pop:nnn { regex } { 1 } { @@_group } + \trace_pop:nnn { regex } { 1 } { __regex_group } } \cs_new_protected:Npn \__regex_group:nnnN #1 { @@ -1653,7 +1662,7 @@ } \cs_new_protected:Npn \__regex_branch:n #1 { - \trace_push:nnn { regex } { 1 } { @@_branch } + \trace_push:nnn { regex } { 1 } { __regex_branch } \__regex_build_new_state: \seq_get:NN \l__regex_left_state_seq \l__regex_internal_a_tl \int_set:Nn \l__regex_left_state_int \l__regex_internal_a_tl @@ -1663,7 +1672,7 @@ \seq_get:NN \l__regex_right_state_seq \l__regex_internal_a_tl \__regex_build_transition_right:nNn \__regex_action_free:n \l__regex_right_state_int \l__regex_internal_a_tl - \trace_pop:nnn { regex } { 1 } { @@_branch } + \trace_pop:nnn { regex } { 1 } { __regex_branch } } \cs_new_protected:Npn \__regex_group_repeat:nn #1#2 { @@ -1842,7 +1851,7 @@ \bool_new:N \l__regex_match_success_bool \cs_new_protected:Npn \__regex_match:n #1 { - \trace_push:nnx { regex } { 1 } { @@_match } + \trace_push:nnx { regex } { 1 } { __regex_match } \trace:nnx { regex } { 1 } { analyzing~query~token~list } \int_zero:N \l__regex_balance_int \int_set:Nn \l__regex_current_pos_int { \c_two * \l__regex_max_state_int } @@ -1864,7 +1873,7 @@ { \c_two * \l__regex_max_state_int } \bool_set_false:N \l__regex_empty_success_bool \__regex_match_once: - \trace_pop:nnx { regex } { 1 } { @@_match } + \trace_pop:nnx { regex } { 1 } { __regex_match } } \cs_new_protected_nopar:Npn \__regex_match_once: { @@ -2083,7 +2092,7 @@ } \cs_new_protected:Npn \__regex_replacement:n #1 { - \trace_push:nnn { regex } { 1 } { @@_replacement:n } + \trace_push:nnn { regex } { 1 } { __regex_replacement:n } \__tl_build:Nw \l__regex_internal_a_tl \int_zero:N \l__regex_balance_int \tl_clear:N \l__regex_balance_tl @@ -2110,7 +2119,7 @@ } \__tl_build_end: \exp_args:No \__regex_replacement_aux:n \l__regex_internal_a_tl - \trace_pop:nnn { regex } { 1 } { @@_replacement:n } + \trace_pop:nnn { regex } { 1 } { __regex_replacement:n } } \cs_new_protected:Npn \__regex_replacement_aux:n #1 { @@ -2589,47 +2598,48 @@ } } \__msg_kernel_new:nnnn { regex } { trailing-backslash } - { Trailing~escape~character~\iow_char:N\\. } + { Trailing~escape~character~`\iow_char:N\\'. } { A~regular~expression~or~its~replacement~text~ends~with~ - the~escape~character~\iow_char:N\\.~It~will~be~ignored. + the~escape~character~`\iow_char:N\\'.~It~will~be~ignored. } \__msg_kernel_new:nnnn { regex } { x-missing-rbrace } - { Missing~closing~brace~in~\iow_char:N\\x~hexadecimal~sequence. } + { Missing~closing~brace~in~`\iow_char:N\\x'~hexadecimal~sequence. } { You~wrote~something~like~ - `\iow_char:N\\x\{\int_to_hexadecimal:n{#1}'.~ + `\iow_char:N\\x\{...#1'.~ The~closing~brace~is~missing. } \__msg_kernel_new:nnnn { regex } { x-overflow } - { Character~code~'#1'~too~large~in~\iow_char:N\\x~hexadecimal~sequence. } + { Character~code~`#1'~too~large~in~`\iow_char:N\\x'~hexadecimal~sequence. } { You~wrote~something~like~ `\iow_char:N\\x\{\int_to_hexadecimal:n{#1}\}'.~ - The~character~code~'#1'~is~larger~than~\int_use:N \c_max_char_int. + The~character~code~#1~is~larger~than~ + the~maximum~value~\int_use:N \c_max_char_int. } \__msg_kernel_new:nnnn { regex } { invalid-quantifier } - { Braced~quantifier~'#1'~may~not~be~followed~by~'#2'. } + { Braced~quantifier~`#1'~may~not~be~followed~by~`#2'. } { - The~character~'#2'~is~invalid~in~the~braced~quantifier~'#1'.~ - The~only~valid~quantifiers~are~'*',~'?',~'+',~'{<int>}',~ - '{<min>,}'~and~'{<min>,<max>}',~followed~or~not~by~'?'. + The~character~`#2'~is~invalid~in~the~braced~quantifier~`#1'.~ + The~only~valid~quantifiers~are~`*',~`?',~`+',~`{<int>}',~ + `{<min>,}'~and~`{<min>,<max>}',~optionally~followed~by~`?'. } \__msg_kernel_new:nnnn { regex } { missing-rbrack } { Missing~right~bracket~inserted~in~regular~expression. } { LaTeX~was~given~a~regular~expression~where~a~character~class~ - was~started~with~'[',~but~the~matching~']'~is~missing. + was~started~with~`[',~but~the~matching~`]'~is~missing. } \__msg_kernel_new:nnnn { regex } { missing-rparen } { - Missing~right~parenthes\int_compare:nTF{#1=1}{i}{e}s~ + Missing~right~ + \int_compare:nTF { #1 = 1 } { parenthesis } { parentheses } ~ inserted~in~regular~expression. } { - LaTeX~was~given~a~regular~expression~with~\int_eval:n{#1}~ - more~left~parenthes\int_compare:nTF{#1=1}{i}{e}s~than~right~ - parenthes\int_compare:nTF{#1=1}{i}{e}s. + LaTeX~was~given~a~regular~expression~with~\int_eval:n {#1} ~ + more~left~parentheses~than~right~parentheses. } \__msg_kernel_new:nnnn { regex } { extra-rparen } { Extra~right~parenthesis~ignored~in~regular~expression. } @@ -2639,7 +2649,7 @@ } \__msg_kernel_new:nnnn { regex } { bad-escape } { - Invalid~escape~\c_backslash_str #1~ + Invalid~escape~`\iow_char:N\\#1'~ \__regex_if_in_cs:TF { within~a~control~sequence. } { \__regex_if_in_class:TF @@ -2648,96 +2658,102 @@ } } { - The~escape~sequence~\iow_char:N\\#1~may~not~appear~ + The~escape~sequence~`\iow_char:N\\#1'~may~not~appear~ \__regex_if_in_cs:TF { within~a~control~sequence~test~introduced~by~ - \iow_char:N\\c\iow_char:N\{. + `\iow_char:N\\c\iow_char:N\{'. } { \__regex_if_in_class:TF { within~a~character~class~ } - { following~a~category~test~such~as~\iow_char:N\\cL~ } + { following~a~category~test~such~as~`\iow_char:N\\cL'~ } because~it~does~not~match~exactly~one~character. } } \__msg_kernel_new:nnnn { regex } { range-missing-end } - { Invalid~end-point~for~range~'#1-#2'~in~character~class. } + { Invalid~end-point~for~range~`#1-#2'~in~character~class. } { - The~end-point~'#2'~of~the~range~'#1-#2'~may~not~serve~as~an~ + The~end-point~`#2'~of~the~range~`#1-#2'~may~not~serve~as~an~ end-point~for~a~range:~alphanumeric~characters~should~not~be~ escaped,~and~non-alphanumeric~characters~should~be~escaped. } \__msg_kernel_new:nnnn { regex } { range-backwards } - { Range~[#1-#2]~out~of~order~in~character~class. } + { Range~`[#1-#2]'~out~of~order~in~character~class. } { - In~ranges~of~characters~[x-y]~appearing~in~character~classes,~ + In~ranges~of~characters~`[x-y]'~appearing~in~character~classes,~ the~first~character~code~must~not~be~larger~than~the~second.~ - Here,~#1~has~character~code~\int_eval:n {`#1},~while~#2~has~ - character~code~\int_eval:n {`#2}. + Here,~`#1'~has~character~code~\int_eval:n {`#1},~while~ + `#2'~has~character~code~\int_eval:n {`#2}. } \__msg_kernel_new:nnnn { regex } { c-bad-mode } - { Invalid~nested~\iow_char:N\\c~escape~in~regular~expression. } + { Invalid~nested~`\iow_char:N\\c'~escape~in~regular~expression. } { - The~\iow_char:N\\c~escape~cannot~be~used~within~ - a~control~sequence~test~'\iow_char:N\\c{...}'.~ - To~combine~several~category~tests,~use~'\iow_char:N\\c[...]'. + The~`\iow_char:N\\c'~escape~cannot~be~used~within~ + a~control~sequence~test~`\iow_char:N\\c{...}'.~ + To~combine~several~category~tests,~use~`\iow_char:N\\c[...]'. } \__msg_kernel_new:nnnn { regex } { c-missing-rbrace } - { Missing~right~brace~inserted~for~\iow_char:N\\c~escape. } + { Missing~right~brace~inserted~for~`\iow_char:N\\c'~escape. } { LaTeX~was~given~a~regular~expression~where~a~ - '\iow_char:N\\c\iow_char:N\{...'~construction~was~not~ended~ - with~a~closing~brace~'\iow_char:N\}'. + `\iow_char:N\\c\iow_char:N\{...'~construction~was~not~ended~ + with~a~closing~brace~`\iow_char:N\}'. } \__msg_kernel_new:nnnn { regex } { c-missing-rbrack } - { Missing~right~bracket~inserted~for~\iow_char:N\\c~escape. } + { Missing~right~bracket~inserted~for~`\iow_char:N\\c'~escape. } { - A~construction~'\iow_char:N\\c[...'~appears~in~a~ - regular~expression,~but~the~closing~']'~is~not~present. + A~construction~`\iow_char:N\\c[...'~appears~in~a~ + regular~expression,~but~the~closing~`]'~is~not~present. } \__msg_kernel_new:nnnn { regex } { c-missing-category } - { Invalid~character~'#1'~following~\iow_char:N\\c~escape. } + { Invalid~character~`#1'~following~`\iow_char:N\\c'~escape. } { - In~regular~expressions,~the~\iow_char:N\\c~escape~sequence~ + In~regular~expressions,~the~`\iow_char:N\\c'~escape~sequence~ may~only~be~followed~by~a~left~brace,~a~left~bracket,~or~a~ capital~letter~representing~a~character~category,~namely~ - one~of~ABCDELMOPSTU. + one~of~`ABCDELMOPSTU'. + } +\__msg_kernel_new:nnnn { regex } { c-trailing } + { Trailing~category~code~escape~`\iow_char:N\\c'... } + { + A~regular~expression~ends~with~`\iow_char:N\\c'~followed~ + by~a~letter.~It~will~be~ignored. } \__msg_kernel_new:nnnn { regex } { u-missing-lbrace } - { Missing~left~brace~following~\iow_char:N\\u~escape. } + { Missing~left~brace~following~`\iow_char:N\\u'~escape. } { - The~\iow_char:N\\u~escape~sequence~must~be~followed~by~ + The~`\iow_char:N\\u'~escape~sequence~must~be~followed~by~ a~brace~group~with~the~name~of~the~variable~to~use. } \__msg_kernel_new:nnnn { regex } { u-missing-rbrace } - { Missing~right~brace~inserted~for~\iow_char:N\\u~escape. } + { Missing~right~brace~inserted~for~`\iow_char:N\\u'~escape. } { LaTeX~ \str_if_eq_x:nnTF { } {#2} { reached~the~end~of~the~string~ } - { encountered~an~escaped~alphanumeric~character '\iow_char:N\\#2'~ } - when~parsing~the~argument~of~an~'\iow_char:N\\u\iow_char:N\{...\}'~escape. + { encountered~an~escaped~alphanumeric~character `\iow_char:N\\#2'~ } + when~parsing~the~argument~of~an~`\iow_char:N\\u\iow_char:N\{...\}'~escape. } \__msg_kernel_new:nnnn { regex } { posix-unsupported } - { POSIX~collating~element~'[#1 ~ #1]'~not~supported. } + { POSIX~collating~element~`[#1 ~ #1]'~not~supported. } { - The~[.foo.]~and~[=bar=]~syntaxes~have~a~special~meaning~in~POSIX~ - regular~expressions.~This~is~not~supported~by~LaTeX.~Maybe~you~ - forgot~to~escape~a~left~bracket~in~a~character~class? + The~`[.foo.]'~and~`[=bar=]'~syntaxes~have~a~special~meaning~ + in~POSIX~regular~expressions.~This~is~not~supported~by~LaTeX.~ + Maybe~you~forgot~to~escape~a~left~bracket~in~a~character~class? } \__msg_kernel_new:nnnn { regex } { posix-unknown } - { POSIX~class~[:#1:]~unknown. } + { POSIX~class~`[:#1:]'~unknown. } { - [:#1:]~is~not~among~the~known~POSIX~classes~ - [:alnum:],~[:alpha:],~[:ascii:],~[:blank:],~ - [:cntrl:],~[:digit:],~[:graph:],~[:lower:],~ - [:print:],~[:punct:],~[:space:],~[:upper:],~ - [:word:],~and~[:xdigit:]. + `[:#1:]'~is~not~among~the~known~POSIX~classes~ + `[:alnum:]',~`[:alpha:]',~`[:ascii:]',~`[:blank:]',~ + `[:cntrl:]',~`[:digit:]',~`[:graph:]',~`[:lower:]',~ + `[:print:]',~`[:punct:]',~`[:space:]',~`[:upper:]',~ + `[:word:]',~and~`[:xdigit:]'. } \__msg_kernel_new:nnnn { regex } { posix-missing-close } - { Missing~closing~':]'~for~POSIX~class. } - { The~POSIX~syntax~'#1'~must~be~followed~by~':]',~not~'#2'. } + { Missing~closing~`:]'~for~POSIX~class. } + { The~POSIX~syntax~`#1'~must~be~followed~by~`:]',~not~`#2'. } \__msg_kernel_new:nnnn { regex } { result-unbalanced } { Missing~brace~inserted~when~#1. } { @@ -2749,55 +2765,64 @@ \__msg_kernel_new:nnnn { regex } { unknown-option } { Unknown~option~`#1'~for~regular~expressions. } { - The~only~available~option~is~'case-insensitive',~toggled~by~ - '(?i)'~and~'(?-i)'. + The~only~available~option~is~`case-insensitive',~toggled~by~ + `(?i)'~and~`(?-i)'. + } +\__msg_kernel_new:nnnn { regex } { special-group-unknown } + { Unknown~special~group~`#1~...'~in~a~regular~expression. } + { + The~only~valid~constructions~starting~with~`(?'~are~ + `(?:~...~)',~`(?|~...~)',~`(?i)',~and~`(?-i)'. } \__msg_kernel_new:nnnn { regex } { replacement-c } - { Misused~\iow_char:N\\c~command~in~a~replacement~text. } + { Misused~`\iow_char:N\\c'~command~in~a~replacement~text. } { - In~a~replacement~text,~the~\iow_char:N\\c~escape~sequence~ - can~be~followed~by~one~of~the~letters~ABCDELMOPSTU~ - or~a~brace~group,~not~by~'#1'. + In~a~replacement~text,~the~`\iow_char:N\\c'~escape~sequence~ + can~be~followed~by~one~of~the~letters~`ABCDELMOPSTU'~ + or~a~brace~group,~not~by~`#1'. } \__msg_kernel_new:nnnn { regex } { replacement-u } - { Misused~\iow_char:N\\u~command~in~a~replacement~text. } + { Misused~`\iow_char:N\\u'~command~in~a~replacement~text. } { - In~a~replacement~text,~the~\iow_char:N\\u~escape~sequence~ + In~a~replacement~text,~the~`\iow_char:N\\u'~escape~sequence~ must~be~~followed~by~a~brace~group~holding~the~name~of~the~ variable~to~use. } \__msg_kernel_new:nnnn { regex } { replacement-g } - { Missing~brace~for~the~\iow_char:N\\g~construction~in~a~replacement~text. } + { + Missing~brace~for~the~`\iow_char:N\\g'~construction~ + in~a~replacement~text. + } { In~the~replacement~text~for~a~regular~expression~search,~ - submatches~are~represented~either~as~\iow_char:N \\g{dd..d},~ - or~\\d,~where~`d'~are~single~digits.~Here,~a~brace~is~missing. + submatches~are~represented~either~as~`\iow_char:N \\g{dd..d}',~ + or~`\\d',~where~`d'~are~single~digits.~Here,~a~brace~is~missing. } \__msg_kernel_new:nnnn { regex } { replacement-catcode-end } { - Missing~character~for~the~\iow_char:N\\c<category><character>~ + Missing~character~for~the~`\iow_char:N\\c<category><character>'~ construction~in~a~replacement~text. } { - In~a~replacement~text,~the~\iow_char:N\\c~escape~sequence~ - can~be~followed~by~one~of~the~letters~ABCDELMOPSTU~representing~ + In~a~replacement~text,~the~`\iow_char:N\\c'~escape~sequence~ + can~be~followed~by~one~of~the~letters~`ABCDELMOPSTU'~representing~ the~character~category.~Then,~a~character~must~follow.~LaTeX~ reached~the~end~of~the~replacement~when~looking~for~that. } \__msg_kernel_new:nnnn { regex } { replacement-null-space } { TeX~cannot~build~a~space~token~with~character~code~0. } { - You~asked~for~a~character~token~with~category~'space',~ + You~asked~for~a~character~token~with~category~space,~ and~character~code~0,~for~instance~through~ - '\iow_char:N\\cS\iow_char:N\\x00'.~ + `\iow_char:N\\cS\iow_char:N\\x00'.~ This~specific~case~is~impossible~and~will~be~replaced~ by~a~normal~space. } \__msg_kernel_new:nnnn { regex } { replacement-missing-rbrace } { Missing~right~brace~inserted~in~replacement~text. } { - There~were~\int_use:N \l__regex_replacement_csnames_int \ - missing~right~braces. + There~ \int_compare:nTF { #1 = 1 } { was } { were } ~ #1~ + missing~right~\int_compare:nTF { #1 = 1 } { brace } { braces } . } \cs_new:Npn \__regex_msg_repeated:nnN #1#2#3 { diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3regex.sty b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3regex.sty index 12774db5615..55bd0e1464c 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3regex.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3regex.sty @@ -46,7 +46,7 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{expl3} -\GetIdInfo$Id: l3regex.dtx 4623 2013-12-14 13:53:40Z bruno $ +\GetIdInfo$Id: l3regex.dtx 5067 2014-06-06 16:51:35Z bruno $ {L3 Experimental regular expressions} \ProvidesExplPackage {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} @@ -363,12 +363,12 @@ \if_charcode:w \c_space_token #1 \exp_after:wN \__regex_escape_x_test:N \else: - \exp_after:wN \__regex_escape_x_test_two:N + \exp_after:wN \__regex_escape_x_testii:N \exp_after:wN #1 \fi: } } -\cs_new:Npn \__regex_escape_x_test_two:N #1 +\cs_new:Npn \__regex_escape_x_testii:N #1 { \if_charcode:w \c_left_brace_str #1 \exp_after:wN \__regex_escape_x_loop:N @@ -389,25 +389,32 @@ } \cs_new:Npn \__regex_escape_x_loop:N #1 { - \__str_hexadecimal_use:NTF #1 - { \__regex_escape_x_loop:N } + \str_if_eq_x:nnTF {#1} { break } + { ; \__regex_escape_x_loop_error:n { } {#1} } { - \token_if_eq_charcode:NNTF \c_space_token #1 + \__str_hexadecimal_use:NTF #1 { \__regex_escape_x_loop:N } { - ; - \exp_after:wN \token_if_eq_charcode:NNTF \c_right_brace_str #1 - { \__regex_escape_loop:N } + \token_if_eq_charcode:NNTF \c_space_token #1 + { \__regex_escape_x_loop:N } { - \if_false: { \fi: } - \__tl_build_one:o \l__regex_internal_b_tl - \__msg_kernel_error:nn { regex } { x-missing-rbrace } {#1} - \tl_set:Nx \l__regex_internal_b_tl - { \if_false: } \fi: \__regex_escape_loop:N #1 + ; + \exp_after:wN + \token_if_eq_charcode:NNTF \c_right_brace_str #1 + { \__regex_escape_loop:N } + { \__regex_escape_x_loop_error:n {#1} } } } } } +\cs_new:Npn \__regex_escape_x_loop_error:n #1 + { + \if_false: { \fi: } + \__tl_build_one:o \l__regex_internal_b_tl + \__msg_kernel_error:nnx { regex } { x-missing-rbrace } {#1} + \tl_set:Nx \l__regex_internal_b_tl + { \if_false: } \fi: \__regex_escape_loop:N #1 + } \prg_new_conditional:Npnn \__regex_char_if_special:N #1 { TF } { \if_int_compare:w `#1 < \c_ninety_one @@ -612,6 +619,8 @@ { #1 } \prg_do_nothing: \prg_do_nothing: \prg_do_nothing: \prg_do_nothing: + \int_compare:nNnT \l__regex_mode_int = \c_two + { \__msg_kernel_error:nn { regex } { c-trailing } } \int_compare:nNnT \l__regex_mode_int < \c_zero { \__msg_kernel_error:nn { regex } { c-missing-rbrace } @@ -1065,7 +1074,7 @@ { __regex_compile_special_group_\token_to_str:N #4 :w } { \__msg_kernel_warning:nnx { regex } { special-group-unknown } - { (? \token_to_str:N #4 } + { (? #4 } \__regex_compile_group_begin:N \__regex_group:nnnN \__regex_compile_raw:N ? #3 #4 } @@ -2562,47 +2571,48 @@ } } \__msg_kernel_new:nnnn { regex } { trailing-backslash } - { Trailing~escape~character~\iow_char:N\\. } + { Trailing~escape~character~`\iow_char:N\\'. } { A~regular~expression~or~its~replacement~text~ends~with~ - the~escape~character~\iow_char:N\\.~It~will~be~ignored. + the~escape~character~`\iow_char:N\\'.~It~will~be~ignored. } \__msg_kernel_new:nnnn { regex } { x-missing-rbrace } - { Missing~closing~brace~in~\iow_char:N\\x~hexadecimal~sequence. } + { Missing~closing~brace~in~`\iow_char:N\\x'~hexadecimal~sequence. } { You~wrote~something~like~ - `\iow_char:N\\x\{\int_to_hexadecimal:n{#1}'.~ + `\iow_char:N\\x\{...#1'.~ The~closing~brace~is~missing. } \__msg_kernel_new:nnnn { regex } { x-overflow } - { Character~code~'#1'~too~large~in~\iow_char:N\\x~hexadecimal~sequence. } + { Character~code~`#1'~too~large~in~`\iow_char:N\\x'~hexadecimal~sequence. } { You~wrote~something~like~ `\iow_char:N\\x\{\int_to_hexadecimal:n{#1}\}'.~ - The~character~code~'#1'~is~larger~than~\int_use:N \c_max_char_int. + The~character~code~#1~is~larger~than~ + the~maximum~value~\int_use:N \c_max_char_int. } \__msg_kernel_new:nnnn { regex } { invalid-quantifier } - { Braced~quantifier~'#1'~may~not~be~followed~by~'#2'. } + { Braced~quantifier~`#1'~may~not~be~followed~by~`#2'. } { - The~character~'#2'~is~invalid~in~the~braced~quantifier~'#1'.~ - The~only~valid~quantifiers~are~'*',~'?',~'+',~'{<int>}',~ - '{<min>,}'~and~'{<min>,<max>}',~followed~or~not~by~'?'. + The~character~`#2'~is~invalid~in~the~braced~quantifier~`#1'.~ + The~only~valid~quantifiers~are~`*',~`?',~`+',~`{<int>}',~ + `{<min>,}'~and~`{<min>,<max>}',~optionally~followed~by~`?'. } \__msg_kernel_new:nnnn { regex } { missing-rbrack } { Missing~right~bracket~inserted~in~regular~expression. } { LaTeX~was~given~a~regular~expression~where~a~character~class~ - was~started~with~'[',~but~the~matching~']'~is~missing. + was~started~with~`[',~but~the~matching~`]'~is~missing. } \__msg_kernel_new:nnnn { regex } { missing-rparen } { - Missing~right~parenthes\int_compare:nTF{#1=1}{i}{e}s~ + Missing~right~ + \int_compare:nTF { #1 = 1 } { parenthesis } { parentheses } ~ inserted~in~regular~expression. } { - LaTeX~was~given~a~regular~expression~with~\int_eval:n{#1}~ - more~left~parenthes\int_compare:nTF{#1=1}{i}{e}s~than~right~ - parenthes\int_compare:nTF{#1=1}{i}{e}s. + LaTeX~was~given~a~regular~expression~with~\int_eval:n {#1} ~ + more~left~parentheses~than~right~parentheses. } \__msg_kernel_new:nnnn { regex } { extra-rparen } { Extra~right~parenthesis~ignored~in~regular~expression. } @@ -2612,7 +2622,7 @@ } \__msg_kernel_new:nnnn { regex } { bad-escape } { - Invalid~escape~\c_backslash_str #1~ + Invalid~escape~`\iow_char:N\\#1'~ \__regex_if_in_cs:TF { within~a~control~sequence. } { \__regex_if_in_class:TF @@ -2621,96 +2631,102 @@ } } { - The~escape~sequence~\iow_char:N\\#1~may~not~appear~ + The~escape~sequence~`\iow_char:N\\#1'~may~not~appear~ \__regex_if_in_cs:TF { within~a~control~sequence~test~introduced~by~ - \iow_char:N\\c\iow_char:N\{. + `\iow_char:N\\c\iow_char:N\{'. } { \__regex_if_in_class:TF { within~a~character~class~ } - { following~a~category~test~such~as~\iow_char:N\\cL~ } + { following~a~category~test~such~as~`\iow_char:N\\cL'~ } because~it~does~not~match~exactly~one~character. } } \__msg_kernel_new:nnnn { regex } { range-missing-end } - { Invalid~end-point~for~range~'#1-#2'~in~character~class. } + { Invalid~end-point~for~range~`#1-#2'~in~character~class. } { - The~end-point~'#2'~of~the~range~'#1-#2'~may~not~serve~as~an~ + The~end-point~`#2'~of~the~range~`#1-#2'~may~not~serve~as~an~ end-point~for~a~range:~alphanumeric~characters~should~not~be~ escaped,~and~non-alphanumeric~characters~should~be~escaped. } \__msg_kernel_new:nnnn { regex } { range-backwards } - { Range~[#1-#2]~out~of~order~in~character~class. } + { Range~`[#1-#2]'~out~of~order~in~character~class. } { - In~ranges~of~characters~[x-y]~appearing~in~character~classes,~ + In~ranges~of~characters~`[x-y]'~appearing~in~character~classes,~ the~first~character~code~must~not~be~larger~than~the~second.~ - Here,~#1~has~character~code~\int_eval:n {`#1},~while~#2~has~ - character~code~\int_eval:n {`#2}. + Here,~`#1'~has~character~code~\int_eval:n {`#1},~while~ + `#2'~has~character~code~\int_eval:n {`#2}. } \__msg_kernel_new:nnnn { regex } { c-bad-mode } - { Invalid~nested~\iow_char:N\\c~escape~in~regular~expression. } + { Invalid~nested~`\iow_char:N\\c'~escape~in~regular~expression. } { - The~\iow_char:N\\c~escape~cannot~be~used~within~ - a~control~sequence~test~'\iow_char:N\\c{...}'.~ - To~combine~several~category~tests,~use~'\iow_char:N\\c[...]'. + The~`\iow_char:N\\c'~escape~cannot~be~used~within~ + a~control~sequence~test~`\iow_char:N\\c{...}'.~ + To~combine~several~category~tests,~use~`\iow_char:N\\c[...]'. } \__msg_kernel_new:nnnn { regex } { c-missing-rbrace } - { Missing~right~brace~inserted~for~\iow_char:N\\c~escape. } + { Missing~right~brace~inserted~for~`\iow_char:N\\c'~escape. } { LaTeX~was~given~a~regular~expression~where~a~ - '\iow_char:N\\c\iow_char:N\{...'~construction~was~not~ended~ - with~a~closing~brace~'\iow_char:N\}'. + `\iow_char:N\\c\iow_char:N\{...'~construction~was~not~ended~ + with~a~closing~brace~`\iow_char:N\}'. } \__msg_kernel_new:nnnn { regex } { c-missing-rbrack } - { Missing~right~bracket~inserted~for~\iow_char:N\\c~escape. } + { Missing~right~bracket~inserted~for~`\iow_char:N\\c'~escape. } { - A~construction~'\iow_char:N\\c[...'~appears~in~a~ - regular~expression,~but~the~closing~']'~is~not~present. + A~construction~`\iow_char:N\\c[...'~appears~in~a~ + regular~expression,~but~the~closing~`]'~is~not~present. } \__msg_kernel_new:nnnn { regex } { c-missing-category } - { Invalid~character~'#1'~following~\iow_char:N\\c~escape. } + { Invalid~character~`#1'~following~`\iow_char:N\\c'~escape. } { - In~regular~expressions,~the~\iow_char:N\\c~escape~sequence~ + In~regular~expressions,~the~`\iow_char:N\\c'~escape~sequence~ may~only~be~followed~by~a~left~brace,~a~left~bracket,~or~a~ capital~letter~representing~a~character~category,~namely~ - one~of~ABCDELMOPSTU. + one~of~`ABCDELMOPSTU'. + } +\__msg_kernel_new:nnnn { regex } { c-trailing } + { Trailing~category~code~escape~`\iow_char:N\\c'... } + { + A~regular~expression~ends~with~`\iow_char:N\\c'~followed~ + by~a~letter.~It~will~be~ignored. } \__msg_kernel_new:nnnn { regex } { u-missing-lbrace } - { Missing~left~brace~following~\iow_char:N\\u~escape. } + { Missing~left~brace~following~`\iow_char:N\\u'~escape. } { - The~\iow_char:N\\u~escape~sequence~must~be~followed~by~ + The~`\iow_char:N\\u'~escape~sequence~must~be~followed~by~ a~brace~group~with~the~name~of~the~variable~to~use. } \__msg_kernel_new:nnnn { regex } { u-missing-rbrace } - { Missing~right~brace~inserted~for~\iow_char:N\\u~escape. } + { Missing~right~brace~inserted~for~`\iow_char:N\\u'~escape. } { LaTeX~ \str_if_eq_x:nnTF { } {#2} { reached~the~end~of~the~string~ } - { encountered~an~escaped~alphanumeric~character '\iow_char:N\\#2'~ } - when~parsing~the~argument~of~an~'\iow_char:N\\u\iow_char:N\{...\}'~escape. + { encountered~an~escaped~alphanumeric~character `\iow_char:N\\#2'~ } + when~parsing~the~argument~of~an~`\iow_char:N\\u\iow_char:N\{...\}'~escape. } \__msg_kernel_new:nnnn { regex } { posix-unsupported } - { POSIX~collating~element~'[#1 ~ #1]'~not~supported. } + { POSIX~collating~element~`[#1 ~ #1]'~not~supported. } { - The~[.foo.]~and~[=bar=]~syntaxes~have~a~special~meaning~in~POSIX~ - regular~expressions.~This~is~not~supported~by~LaTeX.~Maybe~you~ - forgot~to~escape~a~left~bracket~in~a~character~class? + The~`[.foo.]'~and~`[=bar=]'~syntaxes~have~a~special~meaning~ + in~POSIX~regular~expressions.~This~is~not~supported~by~LaTeX.~ + Maybe~you~forgot~to~escape~a~left~bracket~in~a~character~class? } \__msg_kernel_new:nnnn { regex } { posix-unknown } - { POSIX~class~[:#1:]~unknown. } + { POSIX~class~`[:#1:]'~unknown. } { - [:#1:]~is~not~among~the~known~POSIX~classes~ - [:alnum:],~[:alpha:],~[:ascii:],~[:blank:],~ - [:cntrl:],~[:digit:],~[:graph:],~[:lower:],~ - [:print:],~[:punct:],~[:space:],~[:upper:],~ - [:word:],~and~[:xdigit:]. + `[:#1:]'~is~not~among~the~known~POSIX~classes~ + `[:alnum:]',~`[:alpha:]',~`[:ascii:]',~`[:blank:]',~ + `[:cntrl:]',~`[:digit:]',~`[:graph:]',~`[:lower:]',~ + `[:print:]',~`[:punct:]',~`[:space:]',~`[:upper:]',~ + `[:word:]',~and~`[:xdigit:]'. } \__msg_kernel_new:nnnn { regex } { posix-missing-close } - { Missing~closing~':]'~for~POSIX~class. } - { The~POSIX~syntax~'#1'~must~be~followed~by~':]',~not~'#2'. } + { Missing~closing~`:]'~for~POSIX~class. } + { The~POSIX~syntax~`#1'~must~be~followed~by~`:]',~not~`#2'. } \__msg_kernel_new:nnnn { regex } { result-unbalanced } { Missing~brace~inserted~when~#1. } { @@ -2722,55 +2738,64 @@ \__msg_kernel_new:nnnn { regex } { unknown-option } { Unknown~option~`#1'~for~regular~expressions. } { - The~only~available~option~is~'case-insensitive',~toggled~by~ - '(?i)'~and~'(?-i)'. + The~only~available~option~is~`case-insensitive',~toggled~by~ + `(?i)'~and~`(?-i)'. + } +\__msg_kernel_new:nnnn { regex } { special-group-unknown } + { Unknown~special~group~`#1~...'~in~a~regular~expression. } + { + The~only~valid~constructions~starting~with~`(?'~are~ + `(?:~...~)',~`(?|~...~)',~`(?i)',~and~`(?-i)'. } \__msg_kernel_new:nnnn { regex } { replacement-c } - { Misused~\iow_char:N\\c~command~in~a~replacement~text. } + { Misused~`\iow_char:N\\c'~command~in~a~replacement~text. } { - In~a~replacement~text,~the~\iow_char:N\\c~escape~sequence~ - can~be~followed~by~one~of~the~letters~ABCDELMOPSTU~ - or~a~brace~group,~not~by~'#1'. + In~a~replacement~text,~the~`\iow_char:N\\c'~escape~sequence~ + can~be~followed~by~one~of~the~letters~`ABCDELMOPSTU'~ + or~a~brace~group,~not~by~`#1'. } \__msg_kernel_new:nnnn { regex } { replacement-u } - { Misused~\iow_char:N\\u~command~in~a~replacement~text. } + { Misused~`\iow_char:N\\u'~command~in~a~replacement~text. } { - In~a~replacement~text,~the~\iow_char:N\\u~escape~sequence~ + In~a~replacement~text,~the~`\iow_char:N\\u'~escape~sequence~ must~be~~followed~by~a~brace~group~holding~the~name~of~the~ variable~to~use. } \__msg_kernel_new:nnnn { regex } { replacement-g } - { Missing~brace~for~the~\iow_char:N\\g~construction~in~a~replacement~text. } + { + Missing~brace~for~the~`\iow_char:N\\g'~construction~ + in~a~replacement~text. + } { In~the~replacement~text~for~a~regular~expression~search,~ - submatches~are~represented~either~as~\iow_char:N \\g{dd..d},~ - or~\\d,~where~`d'~are~single~digits.~Here,~a~brace~is~missing. + submatches~are~represented~either~as~`\iow_char:N \\g{dd..d}',~ + or~`\\d',~where~`d'~are~single~digits.~Here,~a~brace~is~missing. } \__msg_kernel_new:nnnn { regex } { replacement-catcode-end } { - Missing~character~for~the~\iow_char:N\\c<category><character>~ + Missing~character~for~the~`\iow_char:N\\c<category><character>'~ construction~in~a~replacement~text. } { - In~a~replacement~text,~the~\iow_char:N\\c~escape~sequence~ - can~be~followed~by~one~of~the~letters~ABCDELMOPSTU~representing~ + In~a~replacement~text,~the~`\iow_char:N\\c'~escape~sequence~ + can~be~followed~by~one~of~the~letters~`ABCDELMOPSTU'~representing~ the~character~category.~Then,~a~character~must~follow.~LaTeX~ reached~the~end~of~the~replacement~when~looking~for~that. } \__msg_kernel_new:nnnn { regex } { replacement-null-space } { TeX~cannot~build~a~space~token~with~character~code~0. } { - You~asked~for~a~character~token~with~category~'space',~ + You~asked~for~a~character~token~with~category~space,~ and~character~code~0,~for~instance~through~ - '\iow_char:N\\cS\iow_char:N\\x00'.~ + `\iow_char:N\\cS\iow_char:N\\x00'.~ This~specific~case~is~impossible~and~will~be~replaced~ by~a~normal~space. } \__msg_kernel_new:nnnn { regex } { replacement-missing-rbrace } { Missing~right~brace~inserted~in~replacement~text. } { - There~were~\int_use:N \l__regex_replacement_csnames_int \ - missing~right~braces. + There~ \int_compare:nTF { #1 = 1 } { was } { were } ~ #1~ + missing~right~\int_compare:nTF { #1 = 1 } { brace } { braces } . } \cs_new:Npn \__regex_msg_repeated:nnN #1#2#3 { diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-convert.sty b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-convert.sty index aeb2ecc59fa..1b3122241ab 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-convert.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-convert.sty @@ -46,7 +46,7 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{expl3} -\GetIdInfo$Id: l3str-convert.dtx 4339 2013-01-08 10:22:00Z bruno $ +\GetIdInfo$Id: l3str-convert.dtx 5028 2014-06-03 17:04:19Z bruno $ {L3 Experimental string encoding conversions} \ProvidesExplPackage {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} @@ -468,7 +468,6 @@ { \cs_new_protected_nopar:Npn \__str_convert_encode_: { - \int_zero:N \l__tl_build_offset_int \__tl_gbuild_x:Nw \g__str_result_tl \exp_after:wN \__str_encode_native_loop:w \g__str_result_tl \s__tl { \q_stop \__prg_break: } \s__tl diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty index 87eed61c5e8..7fc8488d265 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty @@ -46,7 +46,7 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{expl3} -\GetIdInfo$Id: l3str-format.dtx 3940 2012-07-09 00:41:44Z bruno $ +\GetIdInfo$Id: l3str-format.dtx 4745 2014-05-06 10:41:27Z joseph $ {L3 Experimental string formatting} \ProvidesExplPackage {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str.sty b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str.sty index 5f8bcae6e85..05fff62dae9 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str.sty @@ -46,7 +46,7 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{expl3} -\GetIdInfo$Id: l3str.dtx 4728 2014-05-04 13:25:37Z joseph $ +\GetIdInfo$Id: l3str.dtx 4889 2014-05-26 19:59:25Z joseph $ {L3 Experimental strings} \ProvidesExplPackage {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} @@ -318,7 +318,7 @@ } \prg_new_conditional:Npnn \str_if_eq:NN #1#2 { p , TF , T , F } { - \if_int_compare:w \pdftex_strcmp:D { \tl_to_str:N #1 } { \tl_to_str:N #2 } + \if_int_compare:w \__str_if_eq_x:nn { \tl_to_str:N #1 } { \tl_to_str:N #2 } = \c_zero \prg_return_true: \else: \prg_return_false: \fi: } \cs_new_eq:NN \str_show:n \tl_show:n diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3tl-analysis.sty b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3tl-analysis.sty index 8598a3df85c..b0f064707f6 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3tl-analysis.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3tl-analysis.sty @@ -46,7 +46,7 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{expl3} -\GetIdInfo$Id: l3tl-analysis.dtx 3039 2011-12-08 09:22:35Z bruno $ +\GetIdInfo$Id: l3tl-analysis.dtx 4745 2014-05-06 10:41:27Z joseph $ {L3 Experimental token lists analysis} \ProvidesExplPackage {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3tl-build.sty b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3tl-build.sty index 1ad40197bab..e916eaa180e 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3tl-build.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3tl-build.sty @@ -46,7 +46,7 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{expl3} -\GetIdInfo$Id: l3tl-build.dtx 3039 2011-12-08 09:22:35Z bruno $ +\GetIdInfo$Id: l3tl-build.dtx 4745 2014-05-06 10:41:27Z joseph $ {L3 Experimental token list construction} \ProvidesExplPackage {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex index 5940982692f..43ce6fd8e94 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex @@ -33,11 +33,9 @@ %% l3fp-trig.dtx (with options: `package') %% l3fp-convert.dtx (with options: `package') %% l3fp-assign.dtx (with options: `package') -%% l3fp-old.dtx (with options: `package') %% l3box.dtx (with options: `package') %% l3coffins.dtx (with options: `package') %% l3color.dtx (with options: `package') -%% l3luatex.dtx (with options: `package') %% l3candidates.dtx (with options: `package') %% %% EXPERIMENTAL CODE @@ -81,8 +79,8 @@ %% ----------------------------------------------------------------------- \def\ExplFileName{expl3} \def\ExplFileDescription{L3 programming layer} -\def\ExplFileDate{2014/05/20} -\def\ExplFileVersion{4814} +\def\ExplFileDate{2014/06/10} +\def\ExplFileVersion{5105} \begingroup \def\next{\endgroup} \expandafter\ifx\csname PackageError\endcsname\relax @@ -241,7 +239,7 @@ } } \endgroup -\GetIdInfo$Id: l3bootstrap.dtx 4782 2014-05-16 22:12:19Z joseph $ +\GetIdInfo$Id: l3bootstrap.dtx 4889 2014-05-26 19:59:25Z joseph $ {L3 Bootstrap code} \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname pdfstrcmp\endcsname\relax @@ -281,17 +279,6 @@ \expandafter\luatex_directlua:D\expandafter{\tempa}% } \fi - \long\gdef\expl_pdfstrcmp#1#2% - {% - \luatex_directlua:D - {% - l3kernel.strcmp - ( - "\luatex_luaescapestring:D {#1}" , - "\luatex_luaescapestring:D {#2}" - ) - }% - } \fi \fi \endgroup @@ -310,26 +297,28 @@ \LineBreak }% \expandafter\ifx\csname pdfstrcmp\endcsname\relax - \catcode`\_=11 % - \expandafter\ifx\csname expl_pdfstrcmp\endcsname\relax - \def\LineBreak{\noexpand\MessageBreak}% - \expandafter\ifx\csname PackageError\endcsname\relax - \def\LineBreak{^^J}% - \begingroup - \def\PackageError#1#2#3% - {% - \endgroup - \errhelp{#3}% - \errmessage{#1 Error: #2!} - }% + \expandafter\ifx\csname directlua\endcsname\relax + \else + \ifnum\luatexversion<36 % + \def\LineBreak{\noexpand\MessageBreak}% + \expandafter\ifx\csname PackageError\endcsname\relax + \def\LineBreak{^^J}% + \begingroup + \def\PackageError#1#2#3% + {% + \endgroup + \errhelp{#3}% + \errmessage{#1 Error: #2!} + }% + \fi + \edef\next + {% + \noexpand\PackageError{expl3}{\ShortText} + {\LongText Loading of expl3 will abort!}% + \endgroup + \noexpand\endinput + }% \fi - \edef\next - {% - \noexpand\PackageError{expl3}{\ShortText} - {\LongText Loading of expl3 will abort!}% - \endgroup - \noexpand\endinput - }% \fi \fi \next @@ -345,16 +334,6 @@ \fi \expandafter\endgroup \next -\ifdefined\directlua - \ifdefined\newattribute - \else - \ifdefined\RequirePackage - \RequirePackage{luatex} - \else - \input luatex.sty % - \fi - \fi -\fi \protected\def\ExplSyntaxOff{} \protected\edef\ExplSyntaxOff {% @@ -446,7 +425,7 @@ %% prior consultation with the LaTeX3 Project. %% %% ----------------------------------------------------------------------- -\GetIdInfo$Id: l3names.dtx 4728 2014-05-04 13:25:37Z joseph $ +\GetIdInfo$Id: l3names.dtx 4993 2014-06-02 09:39:35Z joseph $ {L3 Namespace for primitives} \let \tex_global:D \global \let \tex_let:D \let @@ -869,6 +848,7 @@ \__kernel_primitive:NN \XeTeXversion \xetex_XeTeXversion:D \__kernel_primitive:NN \catcodetable \luatex_catcodetable:D \__kernel_primitive:NN \directlua \luatex_directlua:D + \__kernel_primitive:NN \expanded \luatex_expanded:D \__kernel_primitive:NN \initcatcodetable \luatex_initcatcodetable:D \__kernel_primitive:NN \latelua \luatex_latelua:D \__kernel_primitive:NN \luaescapestring \luatex_luaescapestring:D @@ -881,11 +861,6 @@ \__kernel_primitive:NN \pardir \luatex_pardir:D \__kernel_primitive:NN \textdir \luatex_textdir:D \tex_endgroup:D -\etex_ifdefined:D \pdftex_strcmp:D -\tex_else:D - \tex_let:D \pdftex_strcmp:D \expl_pdfstrcmp - \tex_let:D \expl_pdfstrcmp \tex_undefined:D -\tex_fi:D \etex_ifdefined:D \@@end \tex_let:D \tex_end:D \@@end \tex_let:D \tex_everydisplay:D \frozen@everydisplay @@ -963,7 +938,7 @@ %% prior consultation with the LaTeX3 Project. %% %% ----------------------------------------------------------------------- -\GetIdInfo$Id: l3basics.dtx 4728 2014-05-04 13:25:37Z joseph $ +\GetIdInfo$Id: l3basics.dtx 5033 2014-06-04 05:32:44Z joseph $ {L3 Basic definitions} \tex_let:D \if_true: \tex_iftrue:D \tex_let:D \if_false: \tex_iffalse:D @@ -1714,20 +1689,42 @@ \cs_gset_eq:NN \pdftex_if_engine_p: \c_false_bool } \cs_new_nopar:Npn \prg_do_nothing: { } +\cs_new:Npn \__str_if_eq_x:nn #1#2 { \pdftex_strcmp:D {#1} {#2} } +\luatex_if_engine:T + { + \cs_set:Npn \__str_if_eq_x:nn #1#2 + { + \luatex_directlua:D + { + l3kernel.strcmp + ( + " \__str_escape_x:n {#1} " , + " \__str_escape_x:n {#2} " + ) + } + } + \cs_new:Npn \__str_escape_x:n #1 + { + \luatex_luaescapestring:D + { + \etex_detokenize:D \exp_after:wN { \luatex_expanded:D {#1} } + } + } + } \prg_new_conditional:Npnn \str_if_eq:nn #1#2 { p , T , F , TF } { - \if_int_compare:w \pdftex_strcmp:D { \exp_not:n {#1} } { \exp_not:n {#2} } + \if_int_compare:w \__str_if_eq_x:nn { \exp_not:n {#1} } { \exp_not:n {#2} } = \c_zero \prg_return_true: \else: \prg_return_false: \fi: } \prg_new_conditional:Npnn \str_if_eq_x:nn #1#2 { p , T , F , TF } { - \if_int_compare:w \pdftex_strcmp:D {#1} {#2} = \c_zero + \if_int_compare:w \__str_if_eq_x:nn {#1} {#2} = \c_zero \prg_return_true: \else: \prg_return_false: \fi: } \cs_new:Npn \__str_if_eq_x_return:nn #1 #2 { - \if_int_compare:w \pdftex_strcmp:D {#1} {#2} = \c_zero + \if_int_compare:w \__str_if_eq_x:nn {#1} {#2} = \c_zero \prg_return_true: \else: \prg_return_false: @@ -2327,7 +2324,7 @@ %% prior consultation with the LaTeX3 Project. %% %% ----------------------------------------------------------------------- -\GetIdInfo$Id: l3tl.dtx 4728 2014-05-04 13:25:37Z joseph $ +\GetIdInfo$Id: l3tl.dtx 5070 2014-06-06 18:00:24Z bruno $ {L3 Token lists} \cs_new_protected:Npn \tl_new:N #1 { @@ -2500,16 +2497,7 @@ \tl_gset:Nx #1 { \exp_not:o {#2} \exp_not:o {#3} } } \tex_fi:D -\group_begin: - \tex_lccode:D `\A = `\@ \scan_stop: - \tex_lccode:D `\B = `\@ \scan_stop: - \tex_catcode:D `\A = 8 \scan_stop: - \tex_catcode:D `\B = 3 \scan_stop: -\tex_lowercase:D - { - \group_end: - \tl_const:Nn \c__tl_rescan_marker_tl { A B } - } +\tl_const:Nx \c__tl_rescan_marker_tl { : \token_to_str:N : } \cs_new_protected_nopar:Npn \tl_set_rescan:Nnn { \__tl_set_rescan:NNnn \tl_set:Nn } \cs_new_protected_nopar:Npn \tl_gset_rescan:Nnn @@ -2702,7 +2690,15 @@ \cs_new:Npn \tl_if_single:NF { \exp_args:No \tl_if_single:nF } \cs_new:Npn \tl_if_single:NTF { \exp_args:No \tl_if_single:nTF } \prg_new_conditional:Npnn \tl_if_single:n #1 { p , T , F , TF } - { \__str_if_eq_x_return:nn { \exp_not:o { \use_none:nn #1 ?? } } {?} } + { + \if_catcode:w ^ \exp_after:wN \__tl_if_single:nnw + \tl_to_str:n \exp_after:wN { \use_none:nn #1 ?? } ^ ? \q_stop + \prg_return_true: + \else: + \prg_return_false: + \fi: + } +\cs_new:Npn \__tl_if_single:nnw #1#2#3 \q_stop {#2} \cs_new:Npn \tl_case:Nn #1#2 { \tex_romannumeral:D @@ -3625,7 +3621,7 @@ %% prior consultation with the LaTeX3 Project. %% %% ----------------------------------------------------------------------- -\GetIdInfo$Id: l3int.dtx 4776 2014-05-16 14:46:44Z joseph $ +\GetIdInfo$Id: l3int.dtx 4966 2014-05-31 00:44:34Z bruno $ {L3 Integers} \cs_new_eq:NN \__int_value:w \tex_number:D \cs_new_eq:NN \__int_eval:w \etex_numexpr:D @@ -3816,7 +3812,12 @@ \cs_new:Npn \__int_compare:NNw #1#2#3 \q_mark { \etex_unexpanded:D - \use:c { __int_compare_ #1 \if_meaning:w = #2 = \fi: :NNw } + \use:c + { + __int_compare_ \token_to_str:N #1 + \if_meaning:w = #2 = \fi: + :NNw + } \__prg_compare_error:Nw #1 } \cs_new:cpn { __int_compare_end_=:NNw } #1#2#3 e #4 \q_stop @@ -3954,19 +3955,26 @@ \int_compare:nNnF {#1} #2 {#3} { \int_do_until:nNnn {#1} #2 {#3} {#4} } } -\cs_new:Npn \int_step_function:nnnN #1#2#3#4 +\cs_new:Npn \int_step_function:nnnN #1#2#3 + { + \exp_after:wN \__int_step:wwwN + \int_use:N \__int_eval:w #1 \exp_after:wN ; + \int_use:N \__int_eval:w #2 \exp_after:wN ; + \int_use:N \__int_eval:w #3 ; + } +\cs_new:Npn \__int_step:wwwN #1; #2; #3; #4 { \int_compare:nNnTF {#2} > \c_zero - { \exp_args:NNf \__int_step:NnnnN > } + { \__int_step:NnnnN > } { \int_compare:nNnTF {#2} = \c_zero { \__msg_kernel_expandable_error:nnn { kernel } { zero-step } {#4} \use_none:nnnn } - { \exp_args:NNf \__int_step:NnnnN < } + { \__int_step:NnnnN < } } - { \int_eval:n {#1} } {#2} {#3} #4 + {#1} {#2} {#3} #4 } \cs_new:Npn \__int_step:NnnnN #1#2#3#4#5 { @@ -4470,7 +4478,7 @@ %% prior consultation with the LaTeX3 Project. %% %% ----------------------------------------------------------------------- -\GetIdInfo$Id: l3quark.dtx 4728 2014-05-04 13:25:37Z joseph $ +\GetIdInfo$Id: l3quark.dtx 4889 2014-05-26 19:59:25Z joseph $ {L3 Quarks} \cs_new_protected:Npn \quark_new:N #1 { \tl_const:Nn #1 {#1} } \quark_new:N \q_nil @@ -4495,14 +4503,14 @@ } \cs_new:Npn \quark_if_recursion_tail_stop:n #1 { - \if_int_compare:w \pdftex_strcmp:D + \if_int_compare:w \__str_if_eq_x:nn { \exp_not:N \q_recursion_tail } { \exp_not:n {#1} } = \c_zero \exp_after:wN \use_none_delimit_by_q_recursion_stop:w \fi: } \cs_new:Npn \quark_if_recursion_tail_stop_do:nn #1 { - \if_int_compare:w \pdftex_strcmp:D + \if_int_compare:w \__str_if_eq_x:nn { \exp_not:N \q_recursion_tail } { \exp_not:n {#1} } = \c_zero \exp_after:wN \use_i_delimit_by_q_recursion_stop:nw \else: @@ -4519,7 +4527,7 @@ } \cs_new:Npn \__quark_if_recursion_tail_break:nN #1#2 { - \if_int_compare:w \pdftex_strcmp:D + \if_int_compare:w \__str_if_eq_x:nn { \exp_not:N \q_recursion_tail } { \exp_not:n {#1} } = \c_zero \exp_after:wN #2 \fi: @@ -4546,7 +4554,7 @@ \cs_generate_variant:Nn \quark_if_no_value:NTF { c } \prg_new_conditional:Nnn \quark_if_nil:n { p, T , F , TF } { - \if_int_compare:w \pdftex_strcmp:D + \if_int_compare:w \__str_if_eq_x:nn { \exp_not:N \q_nil } { \exp_not:n {#1} } = \c_zero \prg_return_true: \else: @@ -4555,7 +4563,7 @@ } \prg_new_conditional:Nnn \quark_if_no_value:n { p, T , F , TF } { - \if_int_compare:w \pdftex_strcmp:D + \if_int_compare:w \__str_if_eq_x:nn { \exp_not:N \q_no_value } { \exp_not:n {#1} } = \c_zero \prg_return_true: \else: @@ -5417,7 +5425,7 @@ %% prior consultation with the LaTeX3 Project. %% %% ----------------------------------------------------------------------- -\GetIdInfo$Id: l3token.dtx 4728 2014-05-04 13:25:37Z joseph $ +\GetIdInfo$Id: l3token.dtx 4889 2014-05-26 19:59:25Z joseph $ {L3 Experimental token manipulation} \cs_new_protected:Npn \char_set_catcode:nn #1#2 { \tex_catcode:D #1 = \__int_eval:w #2 \__int_eval_end: } @@ -5642,7 +5650,7 @@ } \cs_new:Npn \__token_if_macro_p:w #1 MA #2 ; #3 \q_stop { - \if_int_compare:w \pdftex_strcmp:D { #2 } { cro } = \c_zero + \if_int_compare:w \__str_if_eq_x:nn { #2 } { cro } = \c_zero \prg_return_true: \else: \prg_return_false: @@ -6408,7 +6416,7 @@ %% prior consultation with the LaTeX3 Project. %% %% ----------------------------------------------------------------------- -\GetIdInfo$Id: l3msg.dtx 4728 2014-05-04 13:25:37Z joseph $ +\GetIdInfo$Id: l3msg.dtx 4943 2014-05-30 17:26:32Z bruno $ {L3 Messages} \tl_new:N \l__msg_internal_tl \tl_const:Nn \c__msg_text_prefix_tl { msg~text~>~ } @@ -6462,33 +6470,33 @@ } \cs_new_protected:Npn \msg_gset:nnn #1#2#3 { \msg_gset:nnnn {#1} {#2} {#3} { } } -\tl_const:Nn \c_msg_coding_error_text_tl +\tl_const:Nn \c__msg_coding_error_text_tl { This~is~a~coding~error. \\ \\ } -\tl_const:Nn \c_msg_continue_text_tl +\tl_const:Nn \c__msg_continue_text_tl { Type~<return>~to~continue } -\tl_const:Nn \c_msg_critical_text_tl - { Reading~the~current~file~will~stop. } -\tl_const:Nn \c_msg_fatal_text_tl +\tl_const:Nn \c__msg_critical_text_tl + { Reading~the~current~file~'\g_file_current_name_tl'~will~stop. } +\tl_const:Nn \c__msg_fatal_text_tl { This~is~a~fatal~error:~LaTeX~will~abort. } -\tl_const:Nn \c_msg_help_text_tl +\tl_const:Nn \c__msg_help_text_tl { For~immediate~help~type~H~<return> } -\tl_const:Nn \c_msg_no_info_text_tl +\tl_const:Nn \c__msg_no_info_text_tl { LaTeX~does~not~know~anything~more~about~this~error,~sorry. - \c_msg_return_text_tl + \c__msg_return_text_tl } -\tl_const:Nn \c_msg_on_line_text_tl { on~line } -\tl_const:Nn \c_msg_return_text_tl +\tl_const:Nn \c__msg_on_line_text_tl { on~line } +\tl_const:Nn \c__msg_return_text_tl { \\ \\ Try~typing~<return>~to~proceed. \\ If~that~doesn't~work,~type~X~<return>~to~quit. } -\tl_const:Nn \c_msg_trouble_text_tl +\tl_const:Nn \c__msg_trouble_text_tl { \\ \\ More~errors~will~almost~certainly~follow: \\ @@ -6497,7 +6505,7 @@ \cs_new_nopar:Npn \msg_line_number: { \int_use:N \tex_inputlineno:D } \cs_gset_nopar:Npn \msg_line_context: { - \c_msg_on_line_text_tl + \c__msg_on_line_text_tl \c_space_tl \msg_line_number: } @@ -6505,12 +6513,12 @@ { \tl_if_empty:nTF {#3} { - \__msg_interrupt_wrap:nn { \\ \c_msg_no_info_text_tl } - {#1 \\\\ #2 \\\\ \c_msg_continue_text_tl } + \__msg_interrupt_wrap:nn { \\ \c__msg_no_info_text_tl } + {#1 \\\\ #2 \\\\ \c__msg_continue_text_tl } } { \__msg_interrupt_wrap:nn { \\ #3 } - {#1 \\\\ #2 \\\\ \c_msg_help_text_tl } + {#1 \\\\ #2 \\\\ \c__msg_help_text_tl } } } \cs_new_protected:Npn \__msg_interrupt_wrap:nn #1#2 @@ -6628,7 +6636,7 @@ \use:c { \c__msg_text_prefix_tl #1 / #2 } {#3} {#4} {#5} {#6} \msg_see_documentation_text:n {#1} } - { \c_msg_fatal_text_tl } + { \c__msg_fatal_text_tl } \tex_end:D } \__msg_class_new:nn { critical } @@ -6639,7 +6647,7 @@ \use:c { \c__msg_text_prefix_tl #1 / #2 } {#3} {#4} {#5} {#6} \msg_see_documentation_text:n {#1} } - { \c_msg_critical_text_tl } + { \c__msg_critical_text_tl } \tex_endinput:D } \__msg_class_new:nn { error } @@ -6875,25 +6883,25 @@ \__msg_kernel_new:nnnn { kernel } { message-already-defined } { Message~'#2'~for~module~'#1'~already~defined. } { - \c_msg_coding_error_text_tl + \c__msg_coding_error_text_tl LaTeX~was~asked~to~define~a~new~message~called~'#2'\ by~the~module~'#1':~this~message~already~exists. - \c_msg_return_text_tl + \c__msg_return_text_tl } \__msg_kernel_new:nnnn { kernel } { message-unknown } { Unknown~message~'#2'~for~module~'#1'. } { - \c_msg_coding_error_text_tl + \c__msg_coding_error_text_tl LaTeX~was~asked~to~display~a~message~called~'#2'\\ by~the~module~'#1':~this~message~does~not~exist. - \c_msg_return_text_tl + \c__msg_return_text_tl } \__msg_kernel_new:nnnn { kernel } { message-class-unknown } { Unknown~message~class~'#1'. } { LaTeX~has~been~asked~to~redirect~messages~to~a~class~'#1':\\ this~was~never~defined. - \c_msg_return_text_tl + \c__msg_return_text_tl } \__msg_kernel_new:nnnn { kernel } { message-redirect-loop } { @@ -6909,7 +6917,7 @@ \__msg_kernel_new:nnnn { kernel } { bad-number-of-arguments } { Function~'#1'~cannot~be~defined~with~#2~arguments. } { - \c_msg_coding_error_text_tl + \c__msg_coding_error_text_tl LaTeX~has~been~asked~to~define~a~function~'#1'~with~ #2~arguments.~ TeX~allows~between~0~and~9~arguments~for~a~single~function. @@ -6917,7 +6925,7 @@ \__msg_kernel_new:nnnn { kernel } { command-already-defined } { Control~sequence~#1~already~defined. } { - \c_msg_coding_error_text_tl + \c__msg_coding_error_text_tl LaTeX~has~been~asked~to~create~a~new~control~sequence~'#1'~ but~this~name~has~already~been~used~elsewhere. \\ \\ The~current~meaning~is:\\ @@ -6926,14 +6934,14 @@ \__msg_kernel_new:nnnn { kernel } { command-not-defined } { Control~sequence~#1~undefined. } { - \c_msg_coding_error_text_tl + \c__msg_coding_error_text_tl LaTeX~has~been~asked~to~use~a~command~#1,~but~this~has~not~ been~defined~yet. } \__msg_kernel_new:nnnn { kernel } { empty-search-pattern } { Empty~search~pattern. } { - \c_msg_coding_error_text_tl + \c__msg_coding_error_text_tl LaTeX~has~been~asked~to~replace~an~empty~pattern~by~'#1':~that~ would~lead~to~an~infinite~loop! } @@ -6947,7 +6955,7 @@ \__msg_kernel_new:nnnn { kernel } { missing-colon } { Function~'#1'~contains~no~':'. } { - \c_msg_coding_error_text_tl + \c__msg_coding_error_text_tl Code-level~functions~must~contain~':'~to~separate~the~ argument~specification~from~the~function~name.~This~is~ needed~when~defining~conditionals~or~variants,~or~when~building~a~ @@ -6956,14 +6964,14 @@ \__msg_kernel_new:nnnn { kernel } { protected-predicate } { Predicate~'#1'~must~be~expandable. } { - \c_msg_coding_error_text_tl + \c__msg_coding_error_text_tl LaTeX~has~been~asked~to~define~'#1'~as~a~protected~predicate.~ Only~expandable~tests~can~have~a~predicate~version. } \__msg_kernel_new:nnnn { kernel } { conditional-form-unknown } { Conditional~form~'#1'~for~function~'#2'~unknown. } { - \c_msg_coding_error_text_tl + \c__msg_coding_error_text_tl LaTeX~has~been~asked~to~define~the~conditional~form~'#1'~of~ the~function~'#2',~but~only~'TF',~'T',~'F',~and~'p'~forms~exist. } @@ -6983,21 +6991,21 @@ \__msg_kernel_new:nnnn { kernel } { scanmark-already-defined } { Scan~mark~#1~already~defined. } { - \c_msg_coding_error_text_tl + \c__msg_coding_error_text_tl LaTeX~has~been~asked~to~create~a~new~scan~mark~'#1'~ but~this~name~has~already~been~used~for~a~scan~mark. } \__msg_kernel_new:nnnn { kernel } { variable-not-defined } { Variable~#1~undefined. } { - \c_msg_coding_error_text_tl + \c__msg_coding_error_text_tl LaTeX~has~been~asked~to~show~a~variable~#1,~but~this~has~not~ been~defined~yet. } \__msg_kernel_new:nnnn { kernel } { variant-too-long } { Variant~form~'#1'~longer~than~base~signature~of~'#2'. } { - \c_msg_coding_error_text_tl + \c__msg_coding_error_text_tl LaTeX~has~been~asked~to~create~a~variant~of~the~function~'#2'~ with~a~signature~starting~with~'#1',~but~that~is~longer~than~ the~signature~(part~after~the~colon)~of~'#2'. @@ -7005,7 +7013,7 @@ \__msg_kernel_new:nnnn { kernel } { invalid-variant } { Variant~form~'#1'~invalid~for~base~form~'#2'. } { - \c_msg_coding_error_text_tl + \c__msg_coding_error_text_tl LaTeX~has~been~asked~to~create~a~variant~of~the~function~'#2'~ with~a~signature~starting~with~'#1',~but~cannot~change~an~argument~ from~type~'#3'~to~type~'#4'. @@ -7019,7 +7027,7 @@ \__msg_kernel_new:nnn { kernel } { negative-replication } { Negative~argument~for~\prg_replicate:nn. } \__msg_kernel_new:nnn { kernel } { unknown-comparison } - { Relation~symbol~'#1'~unknown:~use~=,~<,~>,~==,~!=,~<=,~>=. } + { Relation~'#1'~unknown:~use~=,~<,~>,~==,~!=,~<=,~>=. } \__msg_kernel_new:nnn { kernel } { zero-step } { Zero~step~size~for~step~function~#1. } \__msg_kernel_new:nnn { kernel } { show-clist } @@ -7182,7 +7190,7 @@ %% prior consultation with the LaTeX3 Project. %% %% ----------------------------------------------------------------------- -\GetIdInfo$Id: l3file.dtx 4737 2014-05-05 07:37:48Z joseph $ +\GetIdInfo$Id: l3file.dtx 4890 2014-05-26 20:59:31Z joseph $ {L3 File and I/O operations} \tl_new:N \g_file_current_name_tl \tl_gset_eq:NN \g_file_current_name_tl \@currname @@ -7201,11 +7209,27 @@ \tl_set:Nx \l__file_internal_name_tl {#1} \tl_set:Nx \l__file_internal_name_tl { \tl_to_str:N \l__file_internal_name_tl } - \tl_if_in:NnT \l__file_internal_name_tl { ~ } + \int_compare:nNnTF + { + \int_mod:nn + { + 0 \tl_map_function:NN \l__file_internal_name_tl + \__file_name_sanitize_aux:n + } + \c_two + } + = \c_zero { - \__msg_kernel_error:nnx { kernel } { space-in-file-name } + \tl_remove_all:Nn \l__file_internal_name_tl { " } + \tl_if_in:NnT \l__file_internal_name_tl { ~ } + { + \tl_set:Nx \l__file_internal_name_tl + { " \exp_not:V \l__file_internal_name_tl " } + } + } + { + \__msg_kernel_error:nnx { kernel } { unbalanced-quote-in-filename } { \l__file_internal_name_tl } - \tl_remove_all:Nn \l__file_internal_name_tl { ~ } } \use:x { @@ -7213,6 +7237,11 @@ \exp_not:n {#2} { \l__file_internal_name_tl } } } +\cs_new:Npn \__file_name_sanitize_aux:n #1 + { + \str_if_eq:nnT {#1} { " } + { + \c_one } + } \cs_new_protected:Npn \file_add_path:nN #1 { \__file_name_sanitize:nn {#1} { \__file_add_path:nN } } \cs_new_protected:Npn \__file_add_path:nN #1#2 @@ -7676,11 +7705,10 @@ All~16~are~currently~in~use,~and~something~wanted~to~open~ another~one. } -\__msg_kernel_new:nnnn { kernel } { space-in-file-name } - { Space~in~file~name~'#1'. } +\__msg_kernel_new:nnnn { kernel } { unbalanced-quote-in-filename } + { Unbalanced~quotes~in~file~name~'#1'. } { - Spaces~are~not~permitted~in~files~loaded~by~LaTeX: \\ - Further~errors~may~follow! + File~names~must~contain~balanced~numbers~of~quotes~("). } %% File: l3skip.dtx Copyright (C) 2004-2011 Frank Mittelbach, The LaTeX3 Project %% (C) 2012-2014 The LaTeX3 Project @@ -7715,7 +7743,7 @@ %% prior consultation with the LaTeX3 Project. %% %% ----------------------------------------------------------------------- -\GetIdInfo$Id: l3skip.dtx 4738 2014-05-05 08:00:05Z joseph $ +\GetIdInfo$Id: l3skip.dtx 4972 2014-05-31 16:42:18Z bruno $ {L3 Dimensions and skips} \cs_new_eq:NN \if_dim:w \tex_ifdim:D \cs_new_eq:NN \__dim_eval:w \etex_dimexpr:D @@ -7929,27 +7957,22 @@ \cs_new:Npn \dim_eval:n #1 { \dim_use:N \__dim_eval:w #1 \__dim_eval_end: } \cs_new:Npn \__dim_strip_bp:n #1 - { - \__dim_strip_pt:n - { - \__dim_eval:w ( #1 ) * 800 / 803 \__dim_eval_end: - } - } + { \__dim_strip_pt:n { ( #1 ) * 800 / 803 } } \cs_new:Npn \__dim_strip_pt:n #1 { \exp_after:wN - \__dim_strip_pt:w \dim_use:N \__dim_eval:w #1 \__dim_eval_end: \q_stop + \__dim_strip_pt:w \dim_use:N \__dim_eval:w (#1) \__dim_eval_end: } \use:x { \cs_new:Npn \exp_not:N \__dim_strip_pt:w - ##1 . ##2 \tl_to_str:n { pt } ##3 \exp_not:N \q_stop + ##1 . ##2 \tl_to_str:n { pt } + } { - ##1 - \exp_not:N \int_compare:nNnT {##2} > \c_zero - { . ##2 } + \int_compare:nNnTF {#2} > \c_zero + { #1 . #2 } + { #1 } } - } \cs_new_eq:NN \dim_use:N \tex_the:D \cs_generate_variant:Nn \dim_use:N { c } \cs_new_eq:NN \dim_show:N \__kernel_register_show:N @@ -8010,7 +8033,7 @@ \prg_new_conditional:Npnn \skip_if_eq:nn #1#2 { p , T , F , TF } { \if_int_compare:w - \pdftex_strcmp:D { \skip_eval:n { #1 } } { \skip_eval:n { #2 } } + \__str_if_eq_x:nn { \skip_eval:n { #1 } } { \skip_eval:n { #2 } } = \c_zero \prg_return_true: \else: @@ -8143,7 +8166,7 @@ %% prior consultation with the LaTeX3 Project. %% %% ----------------------------------------------------------------------- -\GetIdInfo$Id: l3keys.dtx 4753 2014-05-08 20:12:49Z joseph $ +\GetIdInfo$Id: l3keys.dtx 5093 2014-06-08 20:33:14Z joseph $ {L3 Key-value interfaces} \int_new:N \g__keyval_level_int \tl_new:N \l__keyval_key_tl @@ -8356,20 +8379,54 @@ } \cs_generate_variant:Nn \__keys_bool_set_inverse:Nn { c } \cs_new_protected_nopar:Npn \__keys_choice_make: + { \__keys_choice_make:N \__keys_choice_find:n } +\cs_new_protected_nopar:Npn \__keys_multichoice_make: + { \__keys_choice_make:N \__keys_multichoice_find:n } +\cs_new_protected_nopar:Npn \__keys_choice_make:N #1 + { + \prop_if_exist:cTF { \c__keys_info_root_tl \__keys_parent:o \l_keys_path_tl } + { + \prop_get:cnNTF { \c__keys_info_root_tl \__keys_parent:o \l_keys_path_tl } + { choice } \l_keys_value_tl + { + \__msg_kernel_error:nnxx { kernel } { nested-choice-key } + { \l_keys_path_tl } { \__keys_parent:o \l_keys_path_tl } + } + { \__keys_choice_make_aux:N #1 } + } + { \__keys_choice_make_aux:N #1 } + } +\cs_new_protected_nopar:Npn \__keys_choice_make_aux:N #1 { - \__keys_cmd_set:nn { \l_keys_path_tl } - { \__keys_choice_find:n {##1} } + \__keys_cmd_set:nn { \l_keys_path_tl } { #1 {##1} } + \prop_put:cnn { \c__keys_info_root_tl \l_keys_path_tl } { choice } + { true } \__keys_cmd_set:nn { \l_keys_path_tl / unknown } { \__msg_kernel_error:nnxx { kernel } { key-choice-unknown } { \l_keys_path_tl } {##1} } } -\cs_new_protected:Npn \__keys_choices_make:nn #1#2 +\cs_new:Npn \__keys_parent:n #1 + { \__keys_parent:wn #1 / / \q_stop { } } +\cs_generate_variant:Nn \__keys_parent:n { o } +\cs_new:Npn \__keys_parent:wn #1 / #2 / #3 \q_stop #4 { - \__keys_choice_make: + \tl_if_blank:nTF {#2} + { \use_none:n #4 } + { + \__keys_parent:wn #2 / #3 \q_stop { #4 / #1 } + } + } +\cs_new_protected_nopar:Npn \__keys_choices_make:nn + { \__keys_choices_make:Nnn \__keys_choice_make: } +\cs_new_protected_nopar:Npn \__keys_multichoices_make:nn + { \__keys_choices_make:Nnn \__keys_multichoice_make: } +\cs_new_protected:Npn \__keys_choices_make:Nnn #1#2#3 + { + #1 \int_zero:N \l_keys_choice_int - \clist_map_inline:nn {#1} + \clist_map_inline:nn {#2} { \int_incr:N \l_keys_choice_int \__keys_cmd_set:nx { \l_keys_path_tl / ##1 } @@ -8377,7 +8434,7 @@ \tl_set:Nn \exp_not:N \l_keys_choice_tl {##1} \int_set:Nn \exp_not:N \l_keys_choice_int { \int_use:N \l_keys_choice_int } - \exp_not:n {#2} + \exp_not:n {#3} } } } @@ -8412,34 +8469,6 @@ } \cs_new_protected:Npn \__keys_meta_make:nn #1#2 { \__keys_cmd_set:Vn \l_keys_path_tl { \keys_set:nn {#1} {#2} } } -\cs_new:Npn \__keys_multichoice_find:n #1 - { \clist_map_function:nN {#1} \__keys_choice_find:n } -\cs_new_protected_nopar:Npn \__keys_multichoice_make: - { - \__keys_cmd_set:nn { \l_keys_path_tl } - { \__keys_multichoice_find:n {##1} } - \__keys_cmd_set:nn { \l_keys_path_tl / unknown } - { - \__msg_kernel_error:nnxx { kernel } { key-choice-unknown } - { \l_keys_path_tl } {##1} - } - } -\cs_new_protected:Npn \__keys_multichoices_make:nn #1#2 - { - \__keys_multichoice_make: - \int_zero:N \l_keys_choice_int - \clist_map_inline:nn {#1} - { - \int_incr:N \l_keys_choice_int - \__keys_cmd_set:nx { \l_keys_path_tl / ##1 } - { - \tl_set:Nn \exp_not:N \l_keys_choice_tl {##1} - \int_set:Nn \exp_not:N \l_keys_choice_int - { \int_use:N \l_keys_choice_int } - \exp_not:n {#2} - } - } - } \cs_new_protected:Npn \__keys_value_requirement:n #1 { \prop_if_exist:cT { \c__keys_info_root_tl \l_keys_path_tl } @@ -8778,6 +8807,8 @@ \__keys_execute:nn { \l_keys_path_tl / \tl_to_str:n {#1} } { \__keys_execute:nn { \l_keys_path_tl / unknown } { } } } +\cs_new:Npn \__keys_multichoice_find:n #1 + { \clist_map_function:nN {#1} \__keys_choice_find:n } \prg_new_conditional:Npnn \keys_if_exist:nn #1#2 { p , T , F , TF } { \cs_if_exist:cTF { \c__keys_code_root_tl #1 / #2 } @@ -8809,7 +8840,7 @@ \__msg_kernel_new:nnnn { kernel } { key-no-property } { No~property~given~in~definition~of~key~'#1'. } { - \c_msg_coding_error_text_tl + \c__msg_coding_error_text_tl Inside~\keys_define:nn each~key~name~ needs~a~property: \\ \\ \iow_indent:n { #1 .<property> } \\ \\ @@ -8821,17 +8852,23 @@ The~module~'#2'~does~not~have~a~key~called~#1'.\\ Check~that~you~have~spelled~the~key~name~correctly. } +\__msg_kernel_new:nnnn { kernel } { nested-choice-key } + { Attempt~to~define~'#1'~as~a~nested~choice~key. } + { + The~key~'#1'~cannot~be~defined~as~a~choice~as~the~parent~key~'#2'~is~ + itself~a~choice. + } \__msg_kernel_new:nnnn { kernel } { property-requires-value } { The~property~'#1'~requires~a~value. } { - \c_msg_coding_error_text_tl + \c__msg_coding_error_text_tl LaTeX~was~asked~to~set~property~'#1'~for~key~'#2'.\\ No~value~was~given~for~the~property,~and~one~is~required. } \__msg_kernel_new:nnnn { kernel } { property-unknown } { The~key~property~'#1'~is~unknown. } { - \c_msg_coding_error_text_tl + \c__msg_coding_error_text_tl LaTeX~has~been~asked~to~set~the~property~'#1'~for~key~'#2':~ this~property~is~not~defined. } @@ -8892,7 +8929,7 @@ \__msg_kernel_new:nnnn { kernel } { generate-choices-before-code } { No~code~available~to~generate~choices~for~key~'#1'. } { - \c_msg_coding_error_text_tl + \c__msg_coding_error_text_tl Before~using~.generate_choices:n~the~code~should~be~defined~ with~'.choice_code:n'~or~'.choice_code:x'. } @@ -10238,7 +10275,7 @@ \if_catcode:w \scan_stop: \exp_not:N #1 \if_meaning:w \scan_stop: #1 \if_int_compare:w - \pdftex_strcmp:D { \s__fp } { \exp_not:N #1 } = \c_zero + \__str_if_eq_x:nn { \s__fp } { \exp_not:N #1 } = \c_zero 0 \__msg_kernel_expandable_error:nnn { kernel } { fp-after-e } { floating~point~ } @@ -10251,7 +10288,7 @@ \fi: \else: \if_int_compare:w - \pdftex_strcmp:D { \__int_value:w #1 } { \tex_the:D #1 } + \__str_if_eq_x:nn { \__int_value:w #1 } { \tex_the:D #1 } = \c_zero \__int_value:w #1 \else: @@ -10452,11 +10489,12 @@ \exp_after:wN \__fp_parse_after:ww \tex_romannumeral:D \__fp_parse_operand:Nw \c_minus_one - \__fp_parse_expand:w #1 \s__fp_mark + \__fp_parse_expand:w #1 + \s__fp_mark \__fp_parse_infix_end:N \s__fp_stop } \cs_new:Npn \__fp_parse_after:ww - #1@ \__fp_parse_infix_end:N \s__fp_mark \s__fp_stop + #1@ \__fp_parse_infix_end:N \s__fp_stop { \c_zero #1 } \cs_new:Npn \__fp_parse_operand:Nw #1 { @@ -10487,10 +10525,10 @@ { \if_catcode:w \scan_stop: \exp_not:N #2 \if_int_compare:w - \pdftex_strcmp:D { \s__fp_mark } { \exp_not:N #2 } + \__str_if_eq_x:nn { \s__fp_mark } { \exp_not:N #2 } = \c_zero \exp_after:wN \exp_after:wN - \exp_after:wN \__fp_parse_infix_end:N + \exp_after:wN \__fp_parse_infix_mark:NNN \else: \exp_after:wN \exp_after:wN \exp_after:wN \__fp_parse_infix_juxtapose:N @@ -10529,6 +10567,7 @@ \fi: } \group_end: +\cs_new:Npn \__fp_parse_infix_mark:NNN #1#2#3 { #3 #1 } \cs_new:Npn \__fp_parse_infix_end:N #1 { @ \use_none:n \__fp_parse_infix_end:N } \group_begin: @@ -10829,30 +10868,36 @@ } \cs_new:Npn \__fp_parse_continue_compare:NNwNN #1#2 #3@ #4#5 { #4 #2 #3@ #1 } -\group_begin: - \char_set_catcode_other:N \^^@ - \cs_new:Npn \fp_function:Nw #1 { ^^@ ; { \exp_after:wN #1 } } -\group_end: -\group_begin: - \char_set_catcode_other:N \^^@ - \cs_new_protected:Npn \fp_new_function:Npn #1#2# - { - \cs_new:Npx #1 - { - ^^@ ; - { - \exp_not:N \exp_after:wN - \exp_not:N \__fp_function_args:Nwn - \exp_not:N \exp_after:wN - \exp_not:c { __fp_user_ \cs_to_str:N #1 } - \exp_not:N \__int_value:w - \int_eval:n { \tl_count:n {#2} / \c_two } - \exp_not:N \exp_after:wN ; - } - } - \cs_new:cpn { __fp_user_ \cs_to_str:N #1 } #2 - } -\group_end: +\cs_new:Npn \fp_function:Nw #1 + { + \exp_after:wN \__fp_function_apply:nw + \exp_after:wN #1 + \tex_romannumeral:D + \__fp_parse_operand:Nw \c_sixteen \__fp_parse_expand:w + } +\cs_new_protected:Npn \fp_new_function:Npn #1#2# + { + \__fp_new_function:Ncfnn #1 + { __fp_user_ \cs_to_str:N #1 } + { \int_eval:n { \tl_count:n {#2} / \c_two } } + {#2} + } +\cs_new_protected:Npn \__fp_new_function:NNnnn #1#2#3#4#5 + { + \cs_new_nopar:Npn #1 + { + \exp_after:wN \__fp_function_apply:nw \exp_after:wN + { + \exp_after:wN \__fp_function_args:Nwn + \exp_after:wN #2 + \__int_value:w #3 \exp_after:wN ; \exp_after:wN + } + \tex_romannumeral:D + \__fp_parse_operand:Nw \c_sixteen \__fp_parse_expand:w + } + \cs_new:Npn #2 #4 {#5} + } +\cs_generate_variant:Nn \__fp_new_function:NNnnn { Ncf } \cs_new:Npn \__fp_function_args:Nwn #1#2; #3 { \int_compare:nNnTF { \tl_count:n {#3} } = {#2} @@ -10863,34 +10908,23 @@ \c_nan_fp } } -\group_begin: - \char_set_catcode_other:N \^^@ - \cs_new:cpn { __fp_parse_prefix_ ^^@ :Nw } #1 ; #2 - { - \exp_after:wN \__fp_function_apply:NnwN - \exp_after:wN #1 - \exp_after:wN { #2 \exp_after:wN } - \tex_romannumeral:D - \__fp_parse_operand:Nw \c_sixteen \__fp_parse_expand:w - } -\group_end: -\cs_new:Npn \__fp_function_apply:NnwN #1#2#3@#4 +\cs_new:Npn \__fp_function_apply:nw #1#2 @ { - \exp_after:wN \__fp_exp_after_array_f:w - \tex_romannumeral:D -`0 - \__fp_function_store:wwNwnn #3 - \s__fp_mark \__fp_function_store:wwNwnn ; - \s__fp_mark \__fp_function_store_end:wnnn - \s__fp_stop { } { } {#2} - \s__fp_stop - #4 #1 + \__fp_parse:n + { + \__fp_function_store:wwNwnn #2 + \s__fp_mark \__fp_function_store:wwNwnn ; + \s__fp_mark \__fp_function_store_end:wnnn + \s__fp_stop { } { } {#1} + } + \s__fp_mark } \cs_new:Npn \__fp_function_store:wwNwnn #1; #2 \s__fp_mark #3#4 \s__fp_stop #5#6 { #3 #2 \s__fp_mark #3#4 \s__fp_stop { #5 #6 } { { #1; } } } \cs_new:Npn \__fp_function_store_end:wnnn #1 \s__fp_stop #2#3#4 - { \__fp_parse:n { #4 {#2} } } + { #4 {#2} } \__msg_kernel_new:nnn { kernel } { unknown-fp-word } { Unknown~fp~word~#1. } \__msg_kernel_new:nnn { kernel } { fp-missing } @@ -12978,7 +13012,7 @@ } \cs_new:Npn \__fp_pow_normal:ww \s__fp \__fp_chk:w 1 #1#2#3; \s__fp \__fp_chk:w #4#5 { - \if_int_compare:w \pdftex_strcmp:D { #2 #3 } + \if_int_compare:w \__str_if_eq_x:nn { #2 #3 } { 1 {1000} {0000} {0000} {0000} } = \c_zero \if_int_compare:w #4 #1 = 32 \exp_stop_f: \exp_after:wN \__fp_case_return_ii_o:ww @@ -14354,147 +14388,6 @@ \fp_new:N \l_tmpb_fp \fp_new:N \g_tmpa_fp \fp_new:N \g_tmpb_fp -%% File: l3fp-old.dtx Copyright (C) 2012,2014 The LaTeX3 Project -%% -%% It may be distributed and/or modified under the conditions of the -%% LaTeX Project Public License (LPPL), either version 1.3c of this -%% license or (at your option) any later version. The latest version -%% of this license is in the file -%% -%% http://www.latex-project.org/lppl.txt -%% -%% This file is part of the "l3kernel bundle" (The Work in LPPL) -%% and all files in that bundle must be distributed together. -%% -%% The released version of this bundle is available from CTAN. -%% -%% ----------------------------------------------------------------------- -%% -%% The development version of the bundle can be found at -%% -%% http://www.latex-project.org/svnroot/experimental/trunk/ -%% -%% for those people who are interested. -%% -%%%%%%%%%%% -%% NOTE: %% -%%%%%%%%%%% -%% -%% Snapshots taken from the repository represent work in progress and may -%% not work or may contain conflicting material! We therefore ask -%% people _not_ to put them into distributions, archives, etc. without -%% prior consultation with the LaTeX3 Project Team. -%% -%% ----------------------------------------------------------------------- -%% -\fp_const:Nn \c_undefined_fp { nan } -\prg_new_conditional:Npnn \fp_if_undefined:N #1 { p , T , F , TF } - { \exp_after:wN \__fp_if_undefined:w #1 } -\cs_new:Npn \__fp_if_undefined:w \s__fp \__fp_chk:w #1#2; - { - \if_int_compare:w #1 > \c_one - \prg_return_true: \else: \prg_return_false: \fi: - } -\prg_new_conditional:Npnn \fp_if_zero:N #1 { p , T , F , TF } - { \exp_after:wN \__fp_if_zero:w #1 } -\cs_new:Npn \__fp_if_zero:w \s__fp \__fp_chk:w #1#2; - { \if_meaning:w #1 0 \prg_return_true: \else: \prg_return_false: \fi: } -\cs_new_protected_nopar:Npn \fp_abs:N { \__fp_abs:NNN \tl_set:Nx \__fp_abs_o:w } -\cs_new_protected_nopar:Npn \fp_gabs:N { \__fp_abs:NNN \tl_gset:Nx \__fp_abs_o:w } -\cs_new_protected_nopar:Npx \fp_neg:N - { - \exp_not:N \__fp_abs:NNN - \exp_not:N \tl_set:Nx - \exp_not:c { __fp_-_o:w } - } -\cs_new_protected_nopar:Npx \fp_gneg:N - { - \exp_not:N \__fp_abs:NNN - \exp_not:N \tl_gset:Nx - \exp_not:c { __fp_-_o:w } - } -\cs_new_protected:Npn \__fp_abs:NNN #1#2#3 - { #1 #3 { \exp_after:wN #2 #3 \prg_do_nothing: } } -\cs_generate_variant:Nn \fp_abs:N { c } -\cs_generate_variant:Nn \fp_gabs:N { c } -\cs_generate_variant:Nn \fp_neg:N { c } -\cs_generate_variant:Nn \fp_gneg:N { c } -\cs_new_protected_nopar:Npn \fp_mul:Nn { \__fp_mul:NNNn \fp_set:Nn * } -\cs_new_protected_nopar:Npn \fp_gmul:Nn { \__fp_mul:NNNn \fp_gset:Nn * } -\cs_new_protected_nopar:Npn \fp_div:Nn { \__fp_mul:NNNn \fp_set:Nn / } -\cs_new_protected_nopar:Npn \fp_gdiv:Nn { \__fp_mul:NNNn \fp_gset:Nn / } -\cs_new_protected_nopar:Npn \fp_pow:Nn { \__fp_mul:NNNn \fp_set:Nn ^ } -\cs_new_protected_nopar:Npn \fp_gpow:Nn { \__fp_mul:NNNn \fp_gset:Nn ^ } -\cs_new_protected:Npn \__fp_mul:NNNn #1#2#3#4 - { #1 #3 { #3 #2 \__fp_parse:n {#4} } } -\cs_generate_variant:Nn \fp_mul:Nn { c } -\cs_generate_variant:Nn \fp_gmul:Nn { c } -\cs_generate_variant:Nn \fp_div:Nn { c } -\cs_generate_variant:Nn \fp_gdiv:Nn { c } -\cs_generate_variant:Nn \fp_pow:Nn { c } -\cs_generate_variant:Nn \fp_gpow:Nn { c } -\cs_set_protected:Npn \__fp_tmp:w #1#2#3#4#5 - { - \cs_new_protected_nopar:Npn #1 { #5 {#4} \tl_set_eq:NN #3 } - \cs_new_protected_nopar:Npn #2 { #5 {#4} \tl_gset_eq:NN #3 } - \cs_generate_variant:Nn #1 { c } - \cs_generate_variant:Nn #2 { c } - } -\__fp_tmp:w \fp_exp:Nn \fp_gexp:Nn \__fp_exp_o:w {exp} \__fp_assign_to:nNNNn -\__fp_tmp:w \fp_ln:Nn \fp_gln:Nn \__fp_ln_o:w {ln } \__fp_assign_to:nNNNn -\__fp_tmp:w \fp_sin:Nn \fp_gsin:Nn \__fp_sin_o:w {sin} \__fp_assign_to:nNNNn -\__fp_tmp:w \fp_cos:Nn \fp_gcos:Nn \__fp_cos_o:w {cos} \__fp_assign_to:nNNNn -\__fp_tmp:w \fp_tan:Nn \fp_gtan:Nn \__fp_tan_o:w {tan} \__fp_assign_to:nNNNn -\cs_new_protected:Npn \__fp_assign_to:nNNNn #1#2#3#4#5 - { - \exp_after:wN \__fp_assign_to_i:wNNNn - \tex_romannumeral:D -`0 \__fp_parse:n {#5} {#1} #2#3#4 - } -\cs_new_protected:Npn \__fp_assign_to_i:wNNNn \s__fp \__fp_chk:w #1#2#3; #4 - { - \exp_args:Nc \__fp_assign_to_ii:NnNNN - { c__fp_ #4 [ #1 # 2 \if_meaning:w 1 #1 #3 \fi: ] _fp } - { #1#2#3 } - } -\cs_new_protected:Npn \__fp_assign_to_ii:NnNNN #1#2#3#4#5 - { - \cs_if_exist:NF #1 - { \tl_const:Nx #1 { #4 \s__fp \__fp_chk:w #2; } } - #3 #5 #1 - } -\cs_new_protected_nopar:Npn \fp_compare:NNNTF { \fp_compare:nNnTF } -\cs_new_protected_nopar:Npn \fp_compare:NNNT { \fp_compare:nNnT } -\cs_new_protected_nopar:Npn \fp_compare:NNNF { \fp_compare:nNnF } -\cs_new_protected_nopar:Npn \fp_round_places:Nn - { \__fp_round_places:NNn \tl_set:Nx } -\cs_new_protected_nopar:Npn \fp_ground_places:Nn - { \__fp_round_places:NNn \tl_gset:Nx } -\cs_new_protected:Npn \__fp_round_places:NNn #1#2#3 - { - #1 #2 - { - \exp_after:wN \exp_after:wN - \exp_after:wN \__fp_round:Nwn - \exp_after:wN \exp_after:wN - \exp_after:wN \__fp_round_to_nearest:NNN - \exp_after:wN #2 - \exp_after:wN { \int_use:N \__int_eval:w #3 } - } - } -\cs_generate_variant:Nn \fp_round_places:Nn { c } -\cs_generate_variant:Nn \fp_ground_places:Nn { c } -\cs_new_protected:Npn \fp_round_figures:Nn #1#2 - { - \__fp_round_places:NNn \tl_set:Nx #1 - { #2 - \exp_after:wN \__fp_exponent:w #1 } - } -\cs_new_protected:Npn \fp_ground_figures:Nn #1#2 - { - \__fp_round_places:NNn \tl_gset:Nx #1 - { #2 - \exp_after:wN \__fp_exponent:w #1 } - } -\cs_generate_variant:Nn \fp_round_figures:Nn { c } -\cs_generate_variant:Nn \fp_ground_figures:Nn { c } %% File: l3box.dtx Copyright (C) 2005-2014 The LaTeX3 Project %% %% It may be distributed and/or modified under the conditions of the @@ -14527,7 +14420,7 @@ %% prior consultation with the LaTeX3 Project. %% %% ----------------------------------------------------------------------- -\GetIdInfo$Id: l3box.dtx 4728 2014-05-04 13:25:37Z joseph $ +\GetIdInfo$Id: l3box.dtx 4974 2014-05-31 18:28:43Z mittelba $ {L3 Experimental boxes} \cs_new_protected:Npn \box_new:N #1 { @@ -14771,7 +14664,7 @@ %% %% ----------------------------------------------------------------------- %% -\GetIdInfo$Id: l3coffins.dtx 4728 2014-05-04 13:25:37Z joseph $ +\GetIdInfo$Id: l3coffins.dtx 4899 2014-05-28 20:13:51Z joseph $ {L3 Coffin code layer} \box_new:N \l__coffin_internal_box \dim_new:N \l__coffin_internal_dim @@ -15540,7 +15433,7 @@ \__msg_kernel_new:nnnn { kernel } { no-pole-intersection } { No~intersection~between~coffin~poles. } { - \c_msg_coding_error_text_tl + \c__msg_coding_error_text_tl LaTeX~was~asked~to~find~the~intersection~between~two~poles,~ but~they~do~not~have~a~unique~meeting~point:~ the~value~(0~pt,~0~pt)~will~be~used. @@ -15551,7 +15444,7 @@ \__msg_kernel_new:nnnn { kernel } { unknown-coffin-pole } { Pole~'#1'~unknown~for~coffin~'#2'. } { - \c_msg_coding_error_text_tl + \c__msg_coding_error_text_tl LaTeX~was~asked~to~find~a~typesetting~pole~for~a~coffin,~ but~either~the~coffin~does~not~exist~or~the~pole~name~is~wrong. } @@ -15617,174 +15510,6 @@ { \cs_set_protected_nopar:Npn \color_ensure_current: { \set@color } } } } -%% File: l3luatex.dtx Copyright (C) 2010-2014 The LaTeX3 Project -%% -%% It may be distributed and/or modified under the conditions of the -%% LaTeX Project Public License (LPPL), either version 1.3c of this -%% license or (at your option) any later version. The latest version -%% of this license is in the file -%% -%% http://www.latex-project.org/lppl.txt -%% -%% This file is part of the "l3kernel bundle" (The Work in LPPL) -%% and all files in that bundle must be distributed together. -%% -%% The released version of this bundle is available from CTAN. -%% -%% ----------------------------------------------------------------------- -%% -%% The development version of the bundle can be found at -%% -%% http://www.latex-project.org/svnroot/experimental/trunk/ -%% -%% for those people who are interested. -%% -%%%%%%%%%%% -%% NOTE: %% -%%%%%%%%%%% -%% -%% Snapshots taken from the repository represent work in progress and may -%% not work or may contain conflicting material! We therefore ask -%% people _not_ to put them into distributions, archives, etc. without -%% prior consultation with the LaTeX3 Project. -%% -%% ----------------------------------------------------------------------- -\GetIdInfo$Id: l3luatex.dtx 4712 2014-04-30 08:17:49Z joseph $ - {L3 Experimental LuaTeX-specific functions} -\luatex_if_engine:TF - { - \cs_new_eq:NN \lua_now_x:n \luatex_directlua:D - \cs_new_eq:NN \lua_shipout_x:n \luatex_latelua:D - } - { - \cs_new:Npn \lua_now_x:n #1 - { - \__msg_kernel_expandable_error:nnn - { kernel } { bad-engine } { \lua_now_x:n } - } - \cs_new_protected:Npn \lua_shipout_x:n #1 - { - \__msg_kernel_expandable_error:nnn - { kernel } { bad-engine } { \lua_shipout_x:n } - } - } -\cs_generate_variant:Nn \lua_now_x:n { x } -\cs_new:Npn \lua_now:n #1 - { \lua_now_x:n { \exp_not:n {#1} } } -\cs_generate_variant:Nn \lua_now:n { x } -\cs_generate_variant:Nn \lua_shipout_x:n { x } -\cs_new_protected:Npn \lua_shipout:n #1 - { \lua_shipout_x:n { \exp_not:n {#1} } } -\cs_generate_variant:Nn \lua_shipout:n { x } -\int_new:N \g__cctab_allocate_int -\int_set:Nn \g__cctab_allocate_int { \c_minus_one } -\int_new:N \g__cctab_stack_int -\seq_new:N \g__cctab_stack_seq -\cs_new_protected:Npn \cctab_new:N #1 - { - \__chk_if_free_cs:N #1 - \int_gadd:Nn \g__cctab_allocate_int { \c_two } - \int_compare:nNnTF - \g__cctab_allocate_int < { \c_max_register_int + \c_one } - { - \tex_global:D \tex_chardef:D #1 \g__cctab_allocate_int - \luatex_initcatcodetable:D #1 - } - { \__msg_kernel_fatal:nnx { kernel } { out-of-registers } { cctab } } - } -\luatex_if_engine:F - { - \cs_set_protected:Npn \cctab_new:N #1 - { - \__msg_kernel_error:nnx { kernel } { bad-engine } - { \exp_not:N \cctab_new:N } - } - } -\luatex_if_engine:T - { - \cs_set_protected:Npn \cctab_new:N #1 - { - \__chk_if_free_cs:N #1 - \newcatcodetable #1 - \luatex_initcatcodetable:D #1 - } - } -\cs_new_protected:Npn \cctab_begin:N #1 - { - \seq_gpush:Nx \g__cctab_stack_seq { \tex_the:D \luatex_catcodetable:D } - \luatex_catcodetable:D #1 - \int_gadd:Nn \g__cctab_stack_int { \c_two } - \int_compare:nNnT \g__cctab_stack_int > \c_max_register_int - { \__msg_kernel_fatal:nn { kernel } { cctab-stack-full } } - \luatex_savecatcodetable:D \g__cctab_stack_int - \luatex_catcodetable:D \g__cctab_stack_int - } -\cs_new_protected_nopar:Npn \cctab_end: - { - \int_gsub:Nn \g__cctab_stack_int { \c_two } - \seq_if_empty:NTF \g__cctab_stack_seq - { \tl_set:Nn \l__cctab_internal_tl { 0 } } - { \seq_gpop:NN \g__cctab_stack_seq \l__cctab_internal_tl } - \luatex_catcodetable:D \l__cctab_internal_tl \scan_stop: - } -\luatex_if_engine:F - { - \cs_set_protected:Npn \cctab_begin:N #1 - { - \__msg_kernel_error:nnxx { kernel } { bad-engine } - { \exp_not:N \cctab_begin:N } {#1} - } - \cs_set_protected_nopar:Npn \cctab_end: - { - \__msg_kernel_error:nnx { kernel } { bad-engine } - { \exp_not:N \cctab_end: } - } - } -\luatex_if_engine:T - { - \cs_set_protected:Npn \cctab_begin:N #1 { \BeginCatcodeRegime #1 } - \cs_set_protected_nopar:Npn \cctab_end: { \EndCatcodeRegime } - } -\tl_new:N \l__cctab_internal_tl -\cs_new_protected:Npn \cctab_gset:Nn #1#2 - { - \group_begin: - #2 - \luatex_savecatcodetable:D #1 - \group_end: - } -\luatex_if_engine:F - { - \cs_set_protected:Npn \cctab_gset:Nn #1#2 - { - \__msg_kernel_error:nnxx { kernel } { bad-engine } - { \exp_not:N \cctab_gset:Nn } { #1 {#2} } - } - } -\luatex_if_engine:T - { - \cctab_new:N \c_code_cctab - \cctab_gset:Nn \c_code_cctab { } - } -\luatex_if_engine:T - { - \cs_new_eq:NN \c_document_cctab \CatcodeTableLaTeX - \cs_new_eq:NN \c_initex_cctab \CatcodeTableIniTeX - \cs_new_eq:NN \c_other_cctab \CatcodeTableOther - \cs_new_eq:NN \c_str_cctab \CatcodeTableString - } -\__msg_kernel_new:nnnn { kernel } { bad-engine } - { LuaTeX~engine~not~in~use!~Ignoring~#1. } - { - The~feature~you~are~using~is~only~available~ - with~the~LuaTeX~engine.~LaTeX3~ignored~`#1#2'. - } -\__msg_kernel_new:nnnn { kernel } { cctab-stack-full } - { The~category~code~table~stack~is~exhausted. } - { - LaTeX~has~been~asked~to~switch~to~a~new~category~code~table,~ - but~there~is~no~more~space~to~do~this! - } %% File: l3candidates.dtx Copyright(C) 2012-2014 The LaTeX3 Project %% %% It may be distributed and/or modified under the conditions of the @@ -15818,7 +15543,7 @@ %% %% ----------------------------------------------------------------------- %% -\GetIdInfo$Id: l3candidates.dtx 4734 2014-05-04 21:48:49Z joseph $ +\GetIdInfo$Id: l3candidates.dtx 4972 2014-05-31 16:42:18Z bruno $ {L3 Experimental additions to l3kernel} \fp_new:N \l__box_angle_fp \fp_new:N \l__box_cos_fp @@ -16043,8 +15768,15 @@ \hbox_overlap_right:n { \box_use:N #1 } \__driver_box_scale_end: } - \box_set_ht:Nn \l__box_internal_box { \l__box_top_new_dim } - \box_set_dp:Nn \l__box_internal_box { \l__box_bottom_new_dim } + \fp_compare:nNnTF \l__box_scale_y_fp > \c_zero_fp + { + \box_set_ht:Nn \l__box_internal_box { \l__box_top_new_dim } + \box_set_dp:Nn \l__box_internal_box { -\l__box_bottom_new_dim } + } + { + \box_set_dp:Nn \l__box_internal_box { \l__box_top_new_dim } + \box_set_ht:Nn \l__box_internal_box { -\l__box_bottom_new_dim } + } \fp_compare:nNnTF \l__box_scale_x_fp < \c_zero_fp { \hbox_to_wd:nn { \l__box_right_new_dim } @@ -16669,12 +16401,12 @@ { \dim_to_pt:n { - 1pt * \__dim_to_unit:n { \dim_to_pt:n {#1} pt } - / \__dim_to_unit:n { \dim_to_pt:n {#2} pt } + 1pt * + \dim_ratio:nn + { \dim_to_pt:n {#1} pt } + { \dim_to_pt:n {#2} pt } } } -\cs_new:Npn \__dim_to_unit:n #1 - { \__int_value:w \__dim_eval:w #1 \__dim_eval_end: } \cs_new:Npn \skip_split_finite_else_action:nnNN #1#2#3#4 { \skip_if_finite:nTF {#1} diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex index 5f41e03a2d2..8ec68d04b0c 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex @@ -47,8 +47,8 @@ %% ----------------------------------------------------------------------- \def\ExplFileName{expl3} \def\ExplFileDescription{L3 programming layer} -\def\ExplFileDate{2014/05/20} -\def\ExplFileVersion{4814} +\def\ExplFileDate{2014/06/10} +\def\ExplFileVersion{5105} \let\ExplLoaderFileVersion\ExplFileVersion \begingroup \def\tempa{LaTeX2e} @@ -116,11 +116,13 @@ \xetex_if_engine:TF { xdvipdfmx } { - \ifpdf - pdfmode - \else - dvips - \fi + \bool_if:nTF + { + \cs_if_exist_p:N \pdftex_pdfoutput:D + && \int_compare_p:nNn \pdftex_pdfoutput:D > \c_zero + } + { pdfmode } + { dvips } } .def \scan_stop: \cs_undefine:N \ProvidesExplFile diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty index 1b25d6f4498..433b3fe9cad 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty @@ -47,15 +47,14 @@ %% ----------------------------------------------------------------------- \def\ExplFileName{expl3} \def\ExplFileDescription{L3 programming layer} -\def\ExplFileDate{2014/05/20} -\def\ExplFileVersion{4814} +\def\ExplFileDate{2014/06/10} +\def\ExplFileVersion{5105} \let\ExplLoaderFileVersion\ExplFileVersion \ProvidesPackage{\ExplFileName} [% \ExplFileDate\space v\ExplFileVersion\space \ExplFileDescription\space (loader) ] -\RequirePackage{ifpdf} \newcommand\expl@create@bool@option[2]% {% \DeclareOption{#1}{\chardef #2=1 }% @@ -109,19 +108,35 @@ active~engine.~LaTeX3~will~use~the~'#2'~driver~instead. } \tl_new:N \l__expl_driver_tl +\bool_if:nTF + { + \cs_if_exist_p:N \pdftex_pdfoutput:D + && \int_compare_p:nNn \pdftex_pdfoutput:D > \c_zero + } + { + \cs_new_eq:NN \__expl_if_pdf:T \use:n + \cs_new_eq:NN \__expl_if_pdf:F \use_none:n + \cs_new_eq:NN \__expl_if_pdf:TF \use_i:nn + } + { + \cs_new_eq:NN \__expl_if_pdf:T \use_none:n + \cs_new_eq:NN \__expl_if_pdf:F \use:n + \cs_new_eq:NN \__expl_if_pdf:TF \use_ii:nn + } \keys_define:nn { expl } { driver .choice:, driver / auto .code:n = { - \xetex_if_engine:TF - { \tl_set:Nn \l__expl_driver_tl { xdvipdfmx } } + \tl_set:Nx \l__expl_driver_tl { - \ifpdf - \tl_set:Nn \l__expl_driver_tl { pdfmode } - \else - \tl_set:Nn \l__expl_driver_tl { dvips } - \fi + \xetex_if_engine:TF + { xdvipdfmx } + { + \__expl_if_pdf:TF + { pdfmode } + { dvips } + } } }, driver / dvipdfmx .code:n = @@ -131,14 +146,15 @@ { \__msg_kernel_error:nnnn { expl } { wrong-driver } { dvipdfmx } { xdvipdfmx } - \tl_set:Nn \l__expl_driver_tl { xdvipdmx } + \tl_set:Nn \l__expl_driver_tl { xdvipdfmx } } { - \ifpdf - \__msg_kernel_error:nnnn { expl } { wrong-driver } - { dvipdfmx } { pdfmode } - \tl_set:Nn \l__expl_driver_tl { pdfmode } - \fi + \__expl_if_pdf:T + { + \__msg_kernel_error:nnnn { expl } { wrong-driver } + { dvipdfmx } { pdfmode } + \tl_set:Nn \l__expl_driver_tl { pdfmode } + } } }, driver / dvips .code:n = @@ -151,11 +167,12 @@ \tl_set:Nn \l__expl_driver_tl { xdvipdfmx } } { - \ifpdf - \__msg_kernel_error:nnnn { expl } { wrong-driver } - { dvips } { pdfmode } - \tl_set:Nn \l__expl_driver_tl { pdfmode } - \fi + \__expl_if_pdf:T + { + \__msg_kernel_error:nnnn { expl } { wrong-driver } + { dvips } { pdfmode } + \tl_set:Nn \l__expl_driver_tl { pdfmode } + } } }, driver / latex2e .code:n = @@ -170,12 +187,12 @@ \tl_set:Nn \l__expl_driver_tl { xdvipdfmx } } { - \ifpdf - \else - \__msg_kernel_error:nnnn { expl } { wrong-driver } - { pdfmode } { dvips } - \tl_set:Nn \l__expl_driver_tl { dvips } - \fi + \__expl_if_pdf:F + { + \__msg_kernel_error:nnnn { expl } { wrong-driver } + { pdfmode } { dvips } + \tl_set:Nn \l__expl_driver_tl { dvips } + } } }, driver / xdvipdfmx .code:n = @@ -183,18 +200,20 @@ \tl_set:Nn \l__expl_driver_tl { xdvipdfmx } \xetex_if_engine:F { - \ifpdf - \__msg_kernel_error:nnnn { expl } { wrong-driver } - { xdvipdfmx } { pdfmode } - \tl_set:Nn \l__expl_driver_tl { pdfmode } - \else - \__msg_kernel_error:nnnn { expl } { wrong-driver } - { xdvipdfmx } { dvips } - \tl_set:Nn \l__expl_driver_tl { dvips } - \fi + \__expl_if_pdf:TF + { + \__msg_kernel_error:nnnn { expl } { wrong-driver } + { xdvipdfmx } { pdfmode } + \tl_set:Nn \l__expl_driver_tl { pdfmode } + } + { + \__msg_kernel_error:nnnn { expl } { wrong-driver } + { xdvipdfmx } { dvips } + \tl_set:Nn \l__expl_driver_tl { dvips } + } } }, - driver .initial:n = { latex2e } , + driver .initial:n = { auto } , native-drivers .choice:, native-drivers .default:n = { true }, native-drivers / false .meta:n = { driver = latex2e }, @@ -259,8 +278,17 @@ } } { - \cs_set_protected:Npn \ProvidesExplFile #1#2#3#4 - { \ProvidesFile {#1} [ #2~v#3~#4 ] } + \cs_set_protected:Npn \ProvidesExplFile + { + \group_begin: + \char_set_catcode_space:n { `\ } + \ProvidesExplFileAux + } + \cs_set_protected:Npn \ProvidesExplFileAux #1#2#3#4 + { + \group_end: + \ProvidesFile {#1} [ #2~v#3~#4 ] + } \tl_const:Nn \c__expl_def_ext_tl { def } \@onefilewithoptions { l3 \l__expl_driver_tl } [ ] [ ] \c__expl_def_ext_tl \cs_set_protected:Npn \ProvidesExplFile #1#2#3#4 @@ -268,6 +296,7 @@ \ProvidesFile {#1} [ #2~v#3~#4 ] \ExplSyntaxOn } + \cs_undefine:N \ProvidesExplFileAux } \tl_put_left:Nn \@pushfilename { diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls b/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls index 87772eedfb7..a4573ca67cd 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls +++ b/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls @@ -4,8 +4,7 @@ %% %% The original source files were: %% -%% l3doc.dtx (with options: `class,cfg') -%% +%% l3doc.dtx (with options: `class') %% %% EXPERIMENTAL CODE %% @@ -14,7 +13,6 @@ %% %% Do not distribute a modified version of this file. %% -%% %% File: l3doc.dtx Copyright (C) 1990-2014 The LaTeX3 project %% %% It may be distributed and/or modified under the conditions of the @@ -1460,51 +1458,6 @@ \DisableCrossrefs \OnlyDescription } -\tl_new:N \Team -\tl_set:Nn \Team - { - The~\LaTeX3~Project\thanks - { - Frank~Mittelbach,~Denys~Duchier,~Chris~Rowley,~ - Rainer~Sch\"opf,~Johannes~Braams,~Michael~Downes,~ - David~Carlisle,~Alan~Jeffrey,~Morten~H\o{}gholm,~Thomas~Lotze,~ - Javier~Bezos,~Will~Robertson,~Joseph~Wright,~Bruno~Le~Floch - } - } -\NewDocumentCommand{\ExplMakeTitle}{mm} - { - \title - { - The~\pkg{#1}~package \\ #2 - \thanks - { - This~file~describes~v\ExplFileVersion,~ - last~revised~\ExplFileDate. - } - } - \author - { - The~\LaTeX3~Project\thanks{E-mail:~ - \href{mailto:latex-l@listserv.uni-heidelberg.de} - {latex-l@listserv.uni-heidelberg.de}} - } - \date{Released~\ExplFileDate} - \maketitle - } -\DeclareDocumentCommand\ie{}{\emph{i.e.}} -\DeclareDocumentCommand\eg{}{\emph{e.g.}} -\DeclareDocumentCommand\Ie{}{\emph{I.e.}} -\DeclareDocumentCommand\Eg{}{\emph{E.g.}} -\AtBeginDocument - { - \clist_map_inline:nn - { - asin, acos, atan, acot, - asinh, acosh, atanh, acoth, round, floor, ceil - } - { \exp_args:Nc \DeclareMathOperator{#1}{#1} } - } -\NewDocumentCommand { \nan } { } { \text { \texttt { nan } } } %% %% %% End of file `l3doc.cls'. diff --git a/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty b/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty index 6d5daa9410e..5d25a40764b 100644 --- a/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty +++ b/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty @@ -46,8 +46,8 @@ %% %% ----------------------------------------------------------------------- %% -\RequirePackage{expl3}[2014/05/05] -\@ifpackagelater{expl3}{2014/05/05} +\RequirePackage{expl3}[2014/06/10] +\@ifpackagelater{expl3}{2014/06/10} {} {% \PackageError{l3keys2e}{Support package l3kernel too old} @@ -59,7 +59,7 @@ }% \endinput } -\GetIdInfo$Id: l3keys2e.dtx 4740 2014-05-05 14:04:24Z joseph $ +\GetIdInfo$Id: l3keys2e.dtx 5105 2014-06-10 07:28:49Z joseph $ {LaTeX2e option processing using LaTeX3 keys} \ProvidesExplPackage {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} diff --git a/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty b/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty index beae464378c..ab63198a913 100644 --- a/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty +++ b/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty @@ -50,8 +50,8 @@ %% %% ----------------------------------------------------------------------- %% -\RequirePackage{expl3}[2014/05/05] -\@ifpackagelater{expl3}{2014/05/05} +\RequirePackage{expl3}[2014/06/10] +\@ifpackagelater{expl3}{2014/06/10} {} {% \PackageError{xparse}{Support package l3kernel too old} @@ -63,7 +63,7 @@ }% \endinput } -\GetIdInfo$Id: xparse.dtx 4740 2014-05-05 14:04:24Z joseph $ +\GetIdInfo$Id: xparse.dtx 5105 2014-06-10 07:28:49Z joseph $ {L3 Experimental document command parser} \ProvidesExplPackage {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} @@ -1394,7 +1394,7 @@ \__msg_kernel_new:nnnn { xparse } { bad-arg-spec } { Bad~argument~specification~'#1'. } { - \c_msg_coding_error_text_tl + \c__msg_coding_error_text_tl The~argument~specification~provided~was~not~valid:~ one~or~more~mandatory~pieces~of~information~were~missing. \\ \\ LaTeX~will~ignore~this~entire~definition. @@ -1445,7 +1445,7 @@ Argument~specification~for~expandable~command~ends~with~optional~argument. } { - \c_msg_coding_error_text_tl + \c__msg_coding_error_text_tl Expandable~commands~must~have~a~final~mandatory~argument~ (or~no~arguments~at~all).~You~cannot~have~a~terminal~optional~ argument~with~expandable~commands. @@ -1453,14 +1453,14 @@ \__msg_kernel_new:nnnn { xparse } { inconsistent-long } { Inconsistent~long~arguments~for~expandable~command. } { - \c_msg_coding_error_text_tl + \c__msg_coding_error_text_tl The~arguments~for~an~expandable~command~must~either~all~be~ short~or~all~be~long.~You~have~tried~to~mix~the~two~types. } \__msg_kernel_new:nnnn { xparse } { invalid-expandable-argument-type } { Argument~type~'#1'~not~available~for~an~expandable~function. } { - \c_msg_coding_error_text_tl + \c__msg_coding_error_text_tl The~letter~'#1'~does~not~specify~an~argument~type~which~can~be~used~ in~an~expandable~function. \\ \\ @@ -1476,7 +1476,7 @@ \__msg_kernel_new:nnnn { xparse } { not-single-token } { Argument~delimiter~should~be~a~single~token:~'#1'. } { - \c_msg_coding_error_text_tl + \c__msg_coding_error_text_tl The~argument~specification~provided~was~not~valid:~ in~a~place~where~a~single~token~is~required,~LaTeX~found~'#1'. \\ \\ LaTeX~will~ignore~this~entire~definition. @@ -1484,7 +1484,7 @@ \__msg_kernel_new:nnnn { xparse } { processor-in-expandable } { Argument~processors~cannot~be~used~with~expandable~functions. } { - \c_msg_coding_error_text_tl + \c__msg_coding_error_text_tl The~argument~specification~for~#1~contains~a~processor~function:~ this~is~only~supported~for~standard~robust~functions. } @@ -1498,7 +1498,7 @@ \__msg_kernel_new:nnnn { xparse } { unknown-argument-type } { Unknown~argument~type~'#1'~replaced~by~'m'. } { - \c_msg_coding_error_text_tl + \c__msg_coding_error_text_tl The~letter~'#1'~does~not~specify~a~known~argument~type.~ LaTeX~will~assume~you~want~a~standard~mandatory~argument~(type~'m'). } diff --git a/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty b/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty index 499b870ecf6..9c98f54dcf1 100644 --- a/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty +++ b/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty @@ -50,8 +50,8 @@ %% %% ----------------------------------------------------------------------- %% -\RequirePackage{expl3}[2014/05/05] -\@ifpackagelater{expl3}{2014/05/05} +\RequirePackage{expl3}[2014/06/10] +\@ifpackagelater{expl3}{2014/06/10} {} {% \PackageError{xtemplate}{Support package l3kernel too old} @@ -63,7 +63,7 @@ }% \endinput } -\GetIdInfo$Id: xtemplate.dtx 4740 2014-05-05 14:04:24Z joseph $ +\GetIdInfo$Id: xtemplate.dtx 5105 2014-06-10 07:28:49Z joseph $ {L3 Experimental prototype document functions} \ProvidesExplPackage {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} @@ -1136,7 +1136,7 @@ \msg_new:nnnn { xtemplate } { argument-number-mismatch } { Object~type~'#1'~takes~#2~argument(s). } { - \c_msg_coding_error_text_tl + \c__msg_coding_error_text_tl Objects~of~type~'#1'~require~#2~argument(s).\\ You~have~tried~to~make~a~template~for~'#1'~ with~#3~argument(s),~which~is~not~possible:~ @@ -1145,7 +1145,7 @@ \msg_new:nnnn { xtemplate } { bad-number-of-arguments } { Bad~number~of~arguments~for~object~type~'#1'. } { - \c_msg_coding_error_text_tl + \c__msg_coding_error_text_tl An~object~may~accept~between~0~and~9~arguments.\\ You~asked~to~use~#2~arguments:~this~is~not~supported. } @@ -1167,7 +1167,7 @@ \msg_new:nnnn { xtemplate } { choice-no-code } { The~choice~'#1'~requires~implementation~details. } { - \c_msg_coding_error_text_tl + \c__msg_coding_error_text_tl When~creating~template~code~using~\DeclareTemplateCode,~ each~choice~name~must~have~an~associated~implementation.\\ This~should~be~given~after~a~'='~sign:~LaTeX~did~not~find~one. @@ -1175,7 +1175,7 @@ \msg_new:nnnn { xtemplate } { duplicate-key-interface } { Key~'#1'~appears~twice~in~interface~definition~\msg_line_context:. } { - \c_msg_coding_error_text_tl + \c__msg_coding_error_text_tl Each~key~can~only~have~one~interface~declared~in~a~template.\\ LaTeX~found~two~interfaces~for~'#1'. } @@ -1189,7 +1189,7 @@ \msg_new:nnnn { xtemplate } { invalid-keytype } { The~key~'#1'~is~missing~a~key-type~\msg_line_context:. } { - \c_msg_coding_error_text_tl + \c__msg_coding_error_text_tl Each~key~in~a~template~requires~a~key-type,~given~in~the~form:\\ \ \ <key>~:~<key-type>\\ LaTeX~could~not~find~a~<key-type>~in~your~input. @@ -1197,7 +1197,7 @@ \msg_new:nnnn { xtemplate } { key-no-value } { The~key~'#1'~has~no~value~\msg_line_context:. } { - \c_msg_coding_error_text_tl + \c__msg_coding_error_text_tl When~creating~an~instance~of~a~template~ every~key~listed~must~include~a~value:\\ \ \ <key>~=~<value> @@ -1205,7 +1205,7 @@ \msg_new:nnnn { xtemplate } { key-no-variable } { The~key~'#1'~requires~implementation~details~\msg_line_context:. } { - \c_msg_coding_error_text_tl + \c__msg_coding_error_text_tl When~creating~template~code~using~\DeclareTemplateCode,~ each~key~name~must~have~an~associated~implementation.\\ This~should~be~given~after~a~'='~sign:~LaTeX~did~not~find~one. @@ -1213,7 +1213,7 @@ \msg_new:nnnn { xtemplate } { key-not-implemented } { Key~'#1'~has~no~implementation~\msg_line_context:. } { - \c_msg_coding_error_text_tl + \c__msg_coding_error_text_tl The~definition~of~key~implementations~for~template~'#2'~ of~object~type~'#3'~does~not~include~any~details~for~key~'#1'.\\ The~key~was~declared~in~the~interface~definition,~ @@ -1222,7 +1222,7 @@ \msg_new:nnnn { xtemplate } { missing-keytype } { The~key~'#1'~is missing~a~key-type~\msg_line_context:. } { - \c_msg_coding_error_text_tl + \c__msg_coding_error_text_tl Key~interface~definitions~should~be~of~the~form\\ \ \ #1~:~<key-type>\\ but~LaTeX~could~not~find~a~<key-type>. @@ -1233,7 +1233,7 @@ or~has~no~implementation. } { - \c_msg_coding_error_text_tl + \c__msg_coding_error_text_tl There~is~no~code~available~for~the~template~name~given.\\ This~should~be~given~using~\DeclareTemplateCode. } @@ -1271,14 +1271,14 @@ \msg_new:nnnn { xtemplate } { unknown-key } { Unknown~template~key~'#1'. } { - \c_msg_coding_error_text_tl + \c__msg_coding_error_text_tl The~key~'#1'~was~not~declared~in~the~interface~ for~the~current~template. } \msg_new:nnnn { xtemplate } { unknown-keytype } { The~key-type~'#1'~is~unknown. } { - \c_msg_coding_error_text_tl + \c__msg_coding_error_text_tl Valid~key-types~are:\\ -~boolean;\\ -~choice;\\ @@ -1296,7 +1296,7 @@ \msg_new:nnnn { xtemplate } { unknown-object-type } { The~object~type~'#1'~is~unknown. } { - \c_msg_coding_error_text_tl + \c__msg_coding_error_text_tl An~object~type~needs~to~be~declared~with~\DeclareObjectType prior~to~using~it. } |