From 1d5214eef547cee6ca964581213f2ce9e225405f Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 30 Jan 2015 22:06:14 +0000 Subject: l3kernel (30jan15) git-svn-id: svn://tug.org/texlive/trunk@36174 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/l3kernel/expl3.pdf | Bin 584723 -> 584763 bytes .../texmf-dist/doc/latex/l3kernel/interface3.pdf | Bin 1480397 -> 1481908 bytes .../texmf-dist/doc/latex/l3kernel/interface3.tex | 89 +++ .../texmf-dist/doc/latex/l3kernel/l3docstrip.pdf | Bin 268222 -> 268222 bytes Master/texmf-dist/doc/latex/l3kernel/l3obsolete | 482 --------------- .../texmf-dist/doc/latex/l3kernel/l3styleguide.pdf | Bin 273228 -> 273228 bytes .../texmf-dist/doc/latex/l3kernel/l3styleguide.tex | 242 ++++++++ .../doc/latex/l3kernel/l3syntax-changes.pdf | Bin 220209 -> 220209 bytes .../doc/latex/l3kernel/l3syntax-changes.tex | 110 ++++ Master/texmf-dist/doc/latex/l3kernel/source3.pdf | Bin 4612729 -> 4609591 bytes Master/texmf-dist/doc/latex/l3kernel/source3.tex | 106 ++++ Master/texmf-dist/source/latex/l3kernel/expl3.dtx | 6 +- .../source/latex/l3kernel/interface3.tex | 89 --- .../texmf-dist/source/latex/l3kernel/l3basics.dtx | 6 +- .../source/latex/l3kernel/l3bootstrap.dtx | 7 +- .../source/latex/l3kernel/l3candidates.dtx | 50 +- .../texmf-dist/source/latex/l3kernel/l3expan.dtx | 22 +- Master/texmf-dist/source/latex/l3kernel/l3keys.dtx | 6 +- .../source/latex/l3kernel/l3styleguide.tex | 242 -------- .../source/latex/l3kernel/l3syntax-changes.tex | 110 ---- Master/texmf-dist/source/latex/l3kernel/l3tl.dtx | 17 +- .../source/latex/l3kernel/l3unicode-data.def | 389 ------------ .../texmf-dist/source/latex/l3kernel/ltunicode.dtx | 669 +++++++++++++++++++++ .../texmf-dist/source/latex/l3kernel/source3.tex | 106 ---- .../texmf-dist/tex/latex/l3kernel/expl3-code.tex | 56 +- .../tex/latex/l3kernel/expl3-generic.tex | 6 +- Master/texmf-dist/tex/latex/l3kernel/expl3.sty | 6 +- 27 files changed, 1318 insertions(+), 1498 deletions(-) create mode 100644 Master/texmf-dist/doc/latex/l3kernel/interface3.tex delete mode 100644 Master/texmf-dist/doc/latex/l3kernel/l3obsolete create mode 100644 Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex create mode 100644 Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex create mode 100644 Master/texmf-dist/doc/latex/l3kernel/source3.tex delete mode 100644 Master/texmf-dist/source/latex/l3kernel/interface3.tex delete mode 100644 Master/texmf-dist/source/latex/l3kernel/l3styleguide.tex delete mode 100644 Master/texmf-dist/source/latex/l3kernel/l3syntax-changes.tex delete mode 100644 Master/texmf-dist/source/latex/l3kernel/l3unicode-data.def create mode 100644 Master/texmf-dist/source/latex/l3kernel/ltunicode.dtx delete mode 100644 Master/texmf-dist/source/latex/l3kernel/source3.tex (limited to 'Master/texmf-dist') diff --git a/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf b/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf index 1478e3ce3ba..05fb314f35f 100644 Binary files a/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf and b/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf b/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf index 2deaacbac1d..f01e988b0d2 100644 Binary files a/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf and b/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3kernel/interface3.tex b/Master/texmf-dist/doc/latex/l3kernel/interface3.tex new file mode 100644 index 00000000000..4c0a2761e92 --- /dev/null +++ b/Master/texmf-dist/doc/latex/l3kernel/interface3.tex @@ -0,0 +1,89 @@ +% \iffalse meta-comment +% +%% File: interfaces3.tex Copyright (C) 1990-2011 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. +%% +%% ----------------------------------------------------------------------- +% +% \fi + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% This document will typeset the LaTeX3 interface descriptions a single +% document. This will produce quite a large file (more than 170 pages +% currently). +% +% There is also a full version of the sources (source3.tex) which additionally +% also typesets the command implementations. +% +% Do not forget to generate the index (as explained on the terminal output +% near the end of the run)! +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\documentclass{l3doc} +\listfiles + +\begin{document} + +\title{The \LaTeX3 Interfaces} +\author{% + The \LaTeX3 Project\thanks + {% + E-mail: + \href{mailto:latex-team@latex-project.org} + {latex-team@latex-project.org}% + }% +} + +\pagenumbering{roman} +\maketitle + +% +% First load all modules and typeset the documentation parts +% + +\input{source3body} % all the individual modules + +\clearpage + +\begingroup + \def\endash{--} + \catcode`\-\active + \def-{\futurelet\temp\indexdash} + \def\indexdash{\ifx\temp-\endash\fi} + \DelayPrintIndex +\endgroup + +\end{document} + + diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf index 5b8d9460722..9a1309b372c 100644 Binary files a/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf and b/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3obsolete b/Master/texmf-dist/doc/latex/l3kernel/l3obsolete deleted file mode 100644 index 960a22d7fa8..00000000000 --- a/Master/texmf-dist/doc/latex/l3kernel/l3obsolete +++ /dev/null @@ -1,482 +0,0 @@ -This file lists functions and variables removed from l3kernel. -Functions which were added with 'experimental' status only are -not listed. The 'Date removed' and 'SVN' columns detail when the -functions are removed from the standard DocStrip extraction for -l3kernel. - -Function Date removed SVN ------------------------------------------------------------------- - -\c_active_char_token 2011-09-08 2786 -\c_alignment_tab_token 2011-09-08 2786 -\c_empty_toks 2011-09-08 2786 -\c_keys_code_root_tl 2013-01-08 4412 -\c_letter_token 2011-09-08 2786 -\c_luatex_is_engine_bool 2011-12-30 3114 -\c_math_shift_token 2011-09-08 2786 -\c_other_char_token 2011-09-08 2786 -\c_pdftex_is_engine_bool 2011-12-30 3114 -\c_string_cctab 2012-06-30 3873 -\c_undefined_fp 2014-05-28 4911 -\c_xetex_is_engine_bool 2011-12-30 3114 -\char_make_active:N 2011-09-08 2786 -\char_make_active:n 2011-09-08 2786 -\char_make_alignment_tab:N 2011-09-08 2786 -\char_make_alignment_tab:n 2011-09-08 2786 -\char_make_begin_group:N 2011-09-08 2786 -\char_make_begin_group:n 2011-09-08 2786 -\char_make_comment:N 2011-09-08 2786 -\char_make_comment:n 2011-09-08 2786 -\char_make_end_group:N 2011-09-08 2786 -\char_make_end_group:n 2011-09-08 2786 -\char_make_end_line:N 2011-09-08 2786 -\char_make_end_line:n 2011-09-08 2786 -\char_make_escape:N 2011-09-08 2786 -\char_make_escape:n 2011-09-08 2786 -\char_make_ignore:N 2011-09-08 2786 -\char_make_ignore:n 2011-09-08 2786 -\char_make_invalid:N 2011-09-08 2786 -\char_make_invalid:n 2011-09-08 2786 -\char_make_letter:N 2011-09-08 2786 -\char_make_letter:n 2011-09-08 2786 -\char_make_math_shift:N 2011-09-08 2786 -\char_make_math_shift:n 2011-09-08 2786 -\char_make_math_subscript:N 2011-09-08 2786 -\char_make_math_subscript:n 2011-09-08 2786 -\char_make_math_superscript:N 2011-09-08 2786 -\char_make_math_superscript:n 2011-09-08 2786 -\char_make_other:N 2011-09-08 2786 -\char_make_other:n 2011-09-08 2786 -\char_make_parameter:N 2011-09-08 2786 -\char_make_parameter:n 2011-09-08 2786 -\char_make_space:N 2011-09-08 2786 -\char_make_space:n 2011-09-08 2786 -\char_set_catcode:w 2011-09-08 2786 -\char_set_lccode:w 2011-09-08 2786 -\char_set_mathcode:w 2011-09-08 2786 -\char_set_sfcode:w 2011-09-08 2786 -\char_set_uccode:w 2011-09-08 2786 -\char_show_value_catcode:w 2011-09-08 2786 -\char_show_value_lccode:w 2011-09-08 2786 -\char_show_value_mathcode:w 2011-09-08 2786 -\char_show_value_sfcode:w 2011-09-08 2786 -\char_show_value_uccode:w 2011-09-08 2786 -\char_value_catcode:w 2011-09-08 2786 -\char_value_lccode:w 2011-09-08 2786 -\char_value_mathcode:w 2011-09-08 2786 -\char_value_sfcode:w 2011-09-08 2786 -\char_value_uccode:w 2011-09-08 2786 -\clist_display:c 2011-09-08 2786 -\clist_display:N 2011-09-08 2786 -\clist_gremove_element:Nn 2011-09-08 2786 -\clist_gtrim_spaces:c 2011-12-20 3114 -\clist_gtrim_spaces:N 2011-12-20 3114 -\clist_if_eq_p:cc 2013-01-08 4412 -\clist_if_eq:ccF 2013-01-08 4412 -\clist_if_eq:ccT 2013-01-08 4412 -\clist_if_eq:ccTF 2013-01-08 4412 -\clist_if_eq_p:cN 2013-01-08 4412 -\clist_if_eq:cNF 2013-01-08 4412 -\clist_if_eq:cNT 2013-01-08 4412 -\clist_if_eq:cNTF 2013-01-08 4412 -\clist_if_eq_p:Nc 2013-01-08 4412 -\clist_if_eq:NcF 2013-01-08 4412 -\clist_if_eq:NcT 2013-01-08 4412 -\clist_if_eq:NcTF 2013-01-08 4412 -\clist_length:N 2013-01-08 4412 -\clist_length:n 2013-01-08 4412 -\clist_length:c 2013-01-08 4412 -\clist_remove_element:Nn 2011-09-08 2786 -\clist_top:cN 2011-09-08 2786 -\clist_trim_spaces:c 2011-12-20 3114 -\clist_trim_spaces:N 2011-12-20 3114 -\clist_use:N 2013-01-08 4412 -\clist_use:c 2013-01-08 4412 -\chk_if_free_cs:N 2013-01-08 4412 -\cs_gnew_eq:cc 2011-09-08 2786 -\cs_gnew_eq:cN 2011-09-08 2786 -\cs_gnew_eq:Nc 2011-09-08 2786 -\cs_gnew_nopar:cpn 2011-09-08 2786 -\cs_gnew_nopar:cpx 2011-09-08 2786 -\cs_gnew_nopar:Npn 2011-09-08 2786 -\cs_gnew_nopar:Npx 2011-09-08 2786 -\cs_gnew_protected_nopar:cpn 2011-09-08 2786 -\cs_gnew_protected_nopar:cpx 2011-09-08 2786 -\cs_gnew_protected_nopar:Npn 2011-09-08 2786 -\cs_gnew_protected_nopar:Npx 2011-09-08 2786 -\cs_gnew_protected:cpn 2011-09-08 2786 -\cs_gnew_protected:cpx 2011-09-08 2786 -\cs_gnew_protected:Npn 2011-09-08 2786 -\cs_gnew_protected:Npx 2011-09-08 2786 -\cs_gnew:cpn 2011-09-08 2786 -\cs_gnew:cpx 2011-09-08 2786 -\cs_gnew:Npn 2011-09-08 2786 -\cs_gnew:Npx 2011-09-08 2786 -\cs_gundefine:c 2011-09-08 2786 -\cs_gundefine:N 2011-09-08 2786 -\cs_set_eq:NwN 2011-12-30 3114 -\dim_eval:w 2013-01-08 4412 -\dim_eval_end: 2013-01-08 4412 -\dim_gset_max:cn 2013-01-08 4412 -\dim_gset_max:Nn 2013-01-08 4412 -\dim_gset_min:cn 2013-01-08 4412 -\dim_gset_min:Nn 2013-01-08 4412 -\dim_set_max:cn 2013-01-08 4412 -\dim_set_max:Nn 2013-01-08 4412 -\dim_set_min:cn 2013-01-08 4412 -\dim_set_min:Nn 2013-01-08 4412 -\ExplSyntaxNamesOff 2013-01-08 4420 -\ExplSyntaxNamesOn 2013-01-08 4420 -\fp_if_undefined_p:N 2014-05-28 4911 -\fp_if_undefined:NF 2014-05-28 4911 -\fp_if_undefined:NT 2014-05-28 4911 -\fp_if_undefined:NTF 2014-05-28 4911 -\fp_abs:c 2014-05-28 4911 -\fp_abs:N 2014-05-28 4911 -\fp_compare:NNNF 2014-05-28 4911 -\fp_compare:NNNT 2014-05-28 4911 -\fp_compare:NNNTF 2014-05-28 4911 -\fp_cos:cn 2014-05-28 4911 -\fp_cos:Nn 2014-05-28 4911 -\fp_div:cn 2014-05-28 4911 -\fp_div:Nn 2014-05-28 4911 -\fp_exp:cn 2014-05-28 4911 -\fp_exp:Nn 2014-05-28 4911 -\fp_gabs:c 2014-05-28 4911 -\fp_gabs:N 2014-05-28 4911 -\fp_gcos:cn 2014-05-28 4911 -\fp_gcos:Nn 2014-05-28 4911 -\fp_gdiv:cn 2014-05-28 4911 -\fp_gdiv:Nn 2014-05-28 4911 -\fp_gexp:cn 2014-05-28 4911 -\fp_gexp:Nn 2014-05-28 4911 -\fp_gln:cn 2014-05-28 4911 -\fp_gln:Nn 2014-05-28 4911 -\fp_gmul:cn 2014-05-28 4911 -\fp_gmul:Nn 2014-05-28 4911 -\fp_gneg:c 2014-05-28 4911 -\fp_gneg:N 2014-05-28 4911 -\fp_gpow:cn 2014-05-28 4911 -\fp_gpow:Nn 2014-05-28 4911 -\fp_ground_figures:cn 2014-05-28 4911 -\fp_ground_figures:Nn 2014-05-28 4911 -\fp_ground_places:cn 2014-05-28 4911 -\fp_ground_places:Nn 2014-05-28 4911 -\fp_gsin:cn 2014-05-28 4911 -\fp_gsin:Nn 2014-05-28 4911 -\fp_gtan:cn 2014-05-28 4911 -\fp_gtan:Nn 2014-05-28 4911 -\fp_if_undefined_p:N 2014-05-28 4911 -\fp_if_undefined:NF 2014-05-28 4911 -\fp_if_undefined:NT 2014-05-28 4911 -\fp_if_undefined:NTF 2014-05-28 4911 -\fp_if_zero_p:N 2014-05-28 4911 -\fp_if_zero:NF 2014-05-28 4911 -\fp_if_zero:NT 2014-05-28 4911 -\fp_if_zero:NTF 2014-05-28 4911 -\fp_ln:cn 2014-05-28 4911 -\fp_ln:Nn 2014-05-28 4911 -\fp_mul:cn 2014-05-28 4911 -\fp_mul:Nn 2014-05-28 4911 -\fp_neg:c 2014-05-28 4911 -\fp_neg:N 2014-05-28 4911 -\fp_pow:cn 2014-05-28 4911 -\fp_pow:Nn 2014-05-28 4911 -\fp_round_figures:cn 2014-05-28 4911 -\fp_round_figures:Nn 2014-05-28 4911 -\fp_round_places:cn 2014-05-28 4911 -\fp_round_places:Nn 2014-05-28 4911 -\fp_sin:cn 2014-05-28 4911 -\fp_sin:Nn 2014-05-28 4911 -\fp_tan:cn 2014-05-28 4911 -\fp_tan:Nn 2014-05-28 4911 -\g_tmpa_toks 2011-09-08 2786 -\g_tmpb_toks 2011-09-08 2786 -\g_tmpc_toks 2011-09-08 2786 -\group_execute_after:N 2011-09-08 2786 -\if_num:w 2013-01-08 4412 -\int_convert_from_base_ten:nn 2011-11-22 2986 -\int_convert_from_symbols:nn 2011-11-22 2986 -\int_convert_to_base_ten:nn 2011-11-22 2986 -\int_eval:w 2013-01-08 4412 -\int_eval_end: 2013-01-08 4412 -\int_value:w 2013-01-08 4412 -\int_to_symbol:n 2011-11-22 2986 -\ior_gto:NN 2013-07-28 4581 -\ior_new:c 2011-09-08 2786 -\ior_new:N 2011-09-08 2786 -\ior_open_streams: 2011-09-08 2786 -\ior_to:NN 2013-07-28 4581 -\ior_str_gto:NN 2013-07-28 4581 -\ior_str_to:NN 2013-07-28 4581 -\iow_new:c 2011-09-08 2786 -\iow_new:N 2011-09-08 2786 -\iow_now_buffer_safe:Nn 2011-09-08 2786 -\iow_now_buffer_safe:Nx 2011-09-08 2786 -\iow_now_when_avail:Nn 2012-06-05 3752 -\iow_now_when_avail:Nx 2012-06-05 3752 -\iow_open_streams: 2011-09-08 2786 -\iow_wrap:xnnnN 2013-01-08 4420 -\KV_process_no_space_removal_no_sanitize:NNn 2011-09-08 2786 -\KV_process_space_removal_no_sanitize:NNn 2011-09-08 2786 -\KV_process_space_removal_sanitize:NNn 2011-09-08 2786 -\l_iow_line_length_int 2013-01-08 4420 -\l_last_box 2012-05-11 3621 -\l_tl_replace_toks 2011-09-08 2786 -\l_tmpa_toks 2011-09-08 2786 -\l_tmpb_toks 2011-09-08 2786 -\l_tmpc_int 2013-01-08 4412 -\l_tmpc_toks 2011-09-08 2786 -\msg_class_new:nn 2011-09-08 2786 -\msg_class_set:nn 2013-01-08 4412 -\msg_direct_interrupt:xxxxx 2011-09-08 2786 -\msg_direct_log:xx 2011-09-08 2786 -\msg_direct_term:xx 2011-09-08 2786 -\msg_generic_new:nn 2011-09-08 2786 -\msg_generic_new:nnn 2011-09-08 2786 -\msg_generic_set:nn 2011-09-08 2786 -\msg_generic_set:nnn 2011-09-08 2786 -\msg_interrupt:xxx 2013-01-08 4412 -\msg_log:x 2013-01-08 4412 -\msg_newline: 2013-01-08 4412 -\msg_term:x 2013-01-08 4412 -\msg_trace:nn 2011-09-08 2786 -\msg_trace:nnx 2011-09-08 2786 -\msg_trace:nnxx 2011-09-08 2786 -\msg_trace:nnxxx 2011-09-08 2786 -\msg_trace:nnxxxx 2011-09-08 2786 -\msg_two_newlines: 2013-01-08 4412 -\peek_after:NN 2011-09-08 2786 -\peek_gafter:NN 2011-09-08 2786 -\prg_case_dim:nnn 2013-01-08 4412 -\prg_case_int:nnn 2013-01-08 4420 -\prg_case_str:nnn 2013-01-08 4420 -\prg_case_str:onn 2013-01-08 4420 -\prg_case_str:xxn 2013-01-08 4420 -\prg_case_tl:cnn 2013-01-08 4420 -\prg_case_tl:Nnn 2013-01-08 4420 -\prg_new_map_functions:Nn 2011-09-08 2786 -\prg_set_map_functions:Nn 2011-09-08 2786 -\prg_stepwise_function:nnnN 2013-01-08 4420 -\prg_stepwise_inline:nnnn 2013-01-08 4420 -\prg_stepwise_variable:nnnNn 2013-01-08 4420 -\prop_del:cn 2013-01-08 4412 -\prop_del:cV 2013-01-08 4412 -\prop_del:Nn 2013-01-08 4412 -\prop_del:NV 2013-01-08 4412 -\prop_gdel:cn 2013-01-08 4412 -\prop_gdel:cV 2013-01-08 4412 -\prop_gdel:Nn 2013-01-08 4412 -\prop_gdel:NV 2013-01-08 4412 -\prop_display:c 2011-09-08 2786 -\prop_display:N 2011-09-08 2786 -\prop_get_gdel:NnN 2011-09-08 2786 -\prop_gget:cnN 2011-09-08 2786 -\prop_gget:cVN 2011-09-08 2786 -\prop_gget:NnN 2011-09-08 2786 -\prop_gget:NVN 2011-09-08 2786 -\prop_gput:ccx 2011-09-08 2786 -\prop_if_eq_p:cc 2011-09-08 2786 -\prop_if_eq_p:cN 2011-09-08 2786 -\prop_if_eq_p:Nc 2011-09-08 2786 -\prop_if_eq_p:NN 2011-09-08 2786 -\prop_if_eq:ccF 2011-09-08 2786 -\prop_if_eq:ccT 2011-09-08 2786 -\prop_if_eq:ccTF 2011-09-08 2786 -\prop_if_eq:cNF 2011-09-08 2786 -\prop_if_eq:cNT 2011-09-08 2786 -\prop_if_eq:cNTF 2011-09-08 2786 -\prop_if_eq:NcF 2011-09-08 2786 -\prop_if_eq:NcT 2011-09-08 2786 -\prop_if_eq:NcTF 2011-09-08 2786 -\prop_if_eq:NNF 2011-09-08 2786 -\prop_if_eq:NNT 2011-09-08 2786 -\prop_if_eq:NNTF 2011-09-08 2786 -\prop_if_in:ccF 2011-09-08 2786 -\prop_if_in:ccT 2011-09-08 2786 -\prop_if_in:ccTF 2011-09-08 2786 -\seq_display:c 2011-09-08 2786 -\seq_display:N 2011-09-08 2786 -\seq_length:c 2013-01-08 4412 -\seq_length:N 2013-01-08 4412 -\seq_top:cN 2011-09-08 2786 -\seq_top:NN 2011-09-08 2786 -\seq_use:c 2013-01-08 4412 -\seq_use:N 2013-01-08 4412 -\skip_if_infinite_glue_p:n 2013-01-08 4412 -\skip_if_infinite_glue:nF 2013-01-08 4412 -\skip_if_infinite_glue:nT 2013-01-08 4412 -\skip_if_infinite_glue:nTF 2013-01-08 4412 -\str_if_eq_p:xx 2013-01-08 4412 -\str_if_eq:xxT 2013-01-08 4412 -\str_if_eq:xxF 2013-01-08 4412 -\str_if_eq:xxTF 2013-01-08 4412 -\tl_elt_count:c 2011-09-08 2786 -\tl_elt_count:n 2011-09-08 2786 -\tl_elt_count:N 2011-09-08 2786 -\tl_elt_count:o 2011-09-08 2786 -\tl_elt_count:V 2011-09-08 2786 -\tl_gremove_all_in:cn 2011-09-08 2786 -\tl_gremove_all_in:Nn 2011-09-08 2786 -\tl_gremove_in:cn 2011-09-08 2786 -\tl_gremove_in:Nn 2011-09-08 2786 -\tl_greplace_all_in:cnn 2011-09-08 2786 -\tl_greplace_all_in:Nnn 2011-09-08 2786 -\tl_greplace_in:cnn 2011-09-08 2786 -\tl_greplace_in:Nnn 2011-09-08 2786 -\tl_gset:Nc 2011-09-08 2786 -\tl_head_i:n 2011-09-08 2786 -\tl_head_i:w 2011-09-08 2786 -\tl_head_iii:f 2011-09-08 2786 -\tl_head_iii:n 2011-09-08 2786 -\tl_head_iii:w 2011-09-08 2786 -\tl_if_empty:xT 2013-01-08 4412 -\tl_if_empty:xF 2013-01-08 4412 -\tl_if_empty:xTF 2013-01-08 4412 -\tl_if_head_group_p:n 2013-01-08 4412 -\tl_if_head_group:nF 2013-01-08 4412 -\tl_if_head_group:nT 2013-01-08 4412 -\tl_if_head_group:nTF 2013-01-08 4412 -\tl_if_head_N_type_p:n 2013-01-08 4412 -\tl_if_head_N_type:nF 2013-01-08 4412 -\tl_if_head_N_type:nT 2013-01-08 4412 -\tl_if_head_N_type:nTF 2013-01-08 4412 -\tl_if_head_space_p:n 2013-01-08 4412 -\tl_if_head_space:nF 2013-01-08 4412 -\tl_if_head_space:nT 2013-01-08 4412 -\tl_if_head_space:nTF 2013-01-08 4412 -\tl_length:c 2013-01-08 4412 -\tl_length:n 2013-01-08 4412 -\tl_length:N 2013-01-08 4412 -\tl_length:o 2013-01-08 4412 -\tl_length:V 2013-01-08 4412 -\tl_new:cn 2011-09-08 2786 -\tl_new:Nn 2011-09-08 2786 -\tl_new:Nx 2011-09-08 2786 -\tl_remove_all_in:cn 2011-09-08 2786 -\tl_remove_all_in:Nn 2011-09-08 2786 -\tl_remove_in:cn 2011-09-08 2786 -\tl_remove_in:Nn 2011-09-08 2786 -\tl_replace_all_in:cnn 2011-09-08 2786 -\tl_replace_all_in:Nnn 2011-09-08 2786 -\tl_replace_in:cnn 2011-09-08 2786 -\tl_replace_in:Nnn 2011-09-08 2786 -\tl_set:Nc 2011-09-08 2786 -\tl_tail:w 2013-01-08 4412 -\token_if_active_char_p:N 2011-09-08 2786 -\token_if_active_char:NF 2011-09-08 2786 -\token_if_active_char:NT 2011-09-08 2786 -\token_if_active_char:NTF 2011-09-08 2786 -\token_if_alignment_tab_p:N 2011-09-08 2786 -\token_if_alignment_tab:NF 2011-09-08 2786 -\token_if_alignment_tab:NT 2011-09-08 2786 -\token_if_alignment_tab:NTF 2011-09-08 2786 -\token_if_math_shift_p:N 2011-09-08 2786 -\token_if_math_shift:NF 2011-09-08 2786 -\token_if_math_shift:NT 2011-09-08 2786 -\token_if_math_shift:NTF 2011-09-08 2786 -\token_if_other_char_p:N 2011-09-08 2786 -\token_if_other_char:NF 2011-09-08 2786 -\token_if_other_char:NT 2011-09-08 2786 -\token_if_other_char:NTF 2011-09-08 2786 -\toks_clear:c 2011-09-08 2786 -\toks_clear:N 2011-09-08 2786 -\toks_gclear:c 2011-09-08 2786 -\toks_gclear:N 2011-09-08 2786 -\toks_gput_left:cn 2011-09-08 2786 -\toks_gput_left:co 2011-09-08 2786 -\toks_gput_left:cV 2011-09-08 2786 -\toks_gput_left:Nn 2011-09-08 2786 -\toks_gput_left:No 2011-09-08 2786 -\toks_gput_left:NV 2011-09-08 2786 -\toks_gput_left:Nx 2011-09-08 2786 -\toks_gput_right:cn 2011-09-08 2786 -\toks_gput_right:co 2011-09-08 2786 -\toks_gput_right:cV 2011-09-08 2786 -\toks_gput_right:Nn 2011-09-08 2786 -\toks_gput_right:No 2011-09-08 2786 -\toks_gput_right:NV 2011-09-08 2786 -\toks_gput_right:Nx 2011-09-08 2786 -\toks_gset_eq:cc 2011-09-08 2786 -\toks_gset_eq:cN 2011-09-08 2786 -\toks_gset_eq:Nc 2011-09-08 2786 -\toks_gset_eq:NN 2011-09-08 2786 -\toks_gset:cn 2011-09-08 2786 -\toks_gset:co 2011-09-08 2786 -\toks_gset:cV 2011-09-08 2786 -\toks_gset:cx 2011-09-08 2786 -\toks_gset:Nn 2011-09-08 2786 -\toks_gset:No 2011-09-08 2786 -\toks_gset:NV 2011-09-08 2786 -\toks_gset:Nx 2011-09-08 2786 -\toks_if_empty_p:c 2011-09-08 2786 -\toks_if_empty_p:N 2011-09-08 2786 -\toks_if_empty:cF 2011-09-08 2786 -\toks_if_empty:cT 2011-09-08 2786 -\toks_if_empty:cTF 2011-09-08 2786 -\toks_if_empty:NF 2011-09-08 2786 -\toks_if_empty:NT 2011-09-08 2786 -\toks_if_empty:NTF 2011-09-08 2786 -\toks_if_eq_p:cc 2011-09-08 2786 -\toks_if_eq_p:cN 2011-09-08 2786 -\toks_if_eq_p:Nc 2011-09-08 2786 -\toks_if_eq_p:NN 2011-09-08 2786 -\toks_if_eq:ccF 2011-09-08 2786 -\toks_if_eq:ccT 2011-09-08 2786 -\toks_if_eq:ccTF 2011-09-08 2786 -\toks_if_eq:cNF 2011-09-08 2786 -\toks_if_eq:cNT 2011-09-08 2786 -\toks_if_eq:cNTF 2011-09-08 2786 -\toks_if_eq:NcF 2011-09-08 2786 -\toks_if_eq:NcT 2011-09-08 2786 -\toks_if_eq:NcTF 2011-09-08 2786 -\toks_if_eq:NNF 2011-09-08 2786 -\toks_if_eq:NNT 2011-09-08 2786 -\toks_if_eq:NNTF 2011-09-08 2786 -\toks_new:c 2011-09-08 2786 -\toks_new:N 2011-09-08 2786 -\toks_put_left:cn 2011-09-08 2786 -\toks_put_left:co 2011-09-08 2786 -\toks_put_left:cV 2011-09-08 2786 -\toks_put_left:Nn 2011-09-08 2786 -\toks_put_left:No 2011-09-08 2786 -\toks_put_left:NV 2011-09-08 2786 -\toks_put_left:Nx 2011-09-08 2786 -\toks_put_right:cn 2011-09-08 2786 -\toks_put_right:co 2011-09-08 2786 -\toks_put_right:cV 2011-09-08 2786 -\toks_put_right:Nf 2011-09-08 2786 -\toks_put_right:Nn 2011-09-08 2786 -\toks_put_right:No 2011-09-08 2786 -\toks_put_right:NV 2011-09-08 2786 -\toks_put_right:Nx 2011-09-08 2786 -\toks_set_eq:cc 2011-09-08 2786 -\toks_set_eq:cN 2011-09-08 2786 -\toks_set_eq:Nc 2011-09-08 2786 -\toks_set_eq:NN 2011-09-08 2786 -\toks_set:cf 2011-09-08 2786 -\toks_set:cn 2011-09-08 2786 -\toks_set:co 2011-09-08 2786 -\toks_set:cV 2011-09-08 2786 -\toks_set:cv 2011-09-08 2786 -\toks_set:cx 2011-09-08 2786 -\toks_set:Nf 2011-09-08 2786 -\toks_set:Nn 2011-09-08 2786 -\toks_set:No 2011-09-08 2786 -\toks_set:NV 2011-09-08 2786 -\toks_set:Nv 2011-09-08 2786 -\toks_set:Nx 2011-09-08 2786 -\toks_show:c 2011-09-08 2786 -\toks_show:N 2011-09-08 2786 -\toks_use_clear:c 2011-09-08 2786 -\toks_use_clear:N 2011-09-08 2786 -\toks_use_gclear:c 2011-09-08 2786 -\toks_use_gclear:N 2011-09-08 2786 -\toks_use:c 2011-09-08 2786 -\toks_use:N 2011-09-08 2786 -\use_i_after_fi:nw 2011-12-30 3114 -\use_i_after_else:nw 2011-12-30 3114 -\use_i_after_or:nw 2011-12-30 3114 -\use_i_after_orelse:nw 2011-12-30 3114 -[key property] .code:x 2013-07-10 4539 -[key property] .meta:x 2013-07-10 4538 diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf index b57514cb3fe..487e77fd991 100644 Binary files a/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf and b/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex b/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex new file mode 100644 index 00000000000..c37c9e24dff --- /dev/null +++ b/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex @@ -0,0 +1,242 @@ +\iffalse meta-comment + +File l3styleguide.tex Copyright (C) 2011,2012 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. + +\fi + +\documentclass{l3doc} +\usepackage{svn-multi} + +\svnid{$Id: l3styleguide.tex 2772 2011-09-07 15:07:41Z joseph $} +\def\filedate{\svnfileyear/\svnfilemonth/\svnfileday} + +\title{% + The \LaTeX3 kernel: style guide for code authors% + \thanks + {% + This file describes v\svnfilerev, + last revised \filedate. + }% +} +\author{% + The \LaTeX3 Project\thanks + {% + E-mail: + \href{mailto:latex-team@latex-project.org}% + {latex-team@latex-project.org}% + }% +} +\date{Released \filedate} + +\begin{document} + +\maketitle + +\tableofcontents + +\section{Introduction} + +This document is intended as a style guide for authors of code and +documentation for the \LaTeX3 kernel. It covers both aspects of coding +style and the formatting of the sources. The aim of providing these +guidelines is help ensure consistency of the code and sources from +different authors. Experience suggests that in the long-term this helps +with maintenance. There will of course be places where there are +exceptions to these guidelines: common sense should always be +applied! + +\section{Documentation style} + +\LaTeX3 source and documentation should be written using the document +class \cls{l3doc} in \file{dtx} format. This class provides a number +of logical mark up elements, which should be used where possible. +In the main, this is standard \LaTeX{} practice, but there are a +few points to highlight: +\begin{itemize} + \item + Where possible, use \cs{cs} to mark up control sequences + rather than using a verbatim environment. + \item + Arguments which are given in braces should be marked using + \cs{Arg} when code-level functions are discussed, but using + \cs{marg} for document functions. + \item + The names \TeX{}, \LaTeX{}, \emph{etc}.\ use the normal logical mark + up followed by an empty group (|{}|), with the exception of |\LaTeX3|, + where the number should follow directly. + \item + Where in line verbatim text is used, it should be marked up + using the \verb=|...|= construct (\emph{i.e.}~vertical bars delimit + the verbatim text). + \item In line quotes should be marked up using the \cs{enquote} + function. + \item + Where numbers in the source have a mathematical meaning, + they should be included in math mode. Such in-line math mode + material should be marked up using |$...$| and \emph{not} + |\(...\)|. +\end{itemize} + +Line length in the source files should be under $80$ +characters where possible, as this helps keep everything on the screen +when editing files. In the \file{dtx} format, documentation lines start +with a \texttt{\%}, which is usually followed by a space to leave a +\enquote{comment margin} at the start of each line. + +As with code indenting (see later), nested environments and arguments +should be indented by (at least) two spaces to make the nature of the nesting +clear. Thus for example a typical arrangement for the \env{function} +environment might be +\begin{verbatim*} +\begin{function}{\seq_gclear:N, \seq_gclear:c} + \begin{syntax} + \cs{seq_gclear:N} \meta{sequence} + \end{syntax} + Clears all entries from the \meta{sequence} globally. +\end{function} +\end{verbatim*} +The \enquote{outer} \verb*|% \begin{function}| should have the customary +space after the |%| character at the start of the line. + +In general, a single \env{function} or \env{macro} environment should be +used for a group of closely-related functions, for example argument +specification variants. In such cases, a comma-separated list should be +used, as shown in the preceding example. + +\section{Format of the code itself} + +The requirement for less than $80$ characters per line applies to the code +itself as well as the surrounding documentation. A number of the general +style principles for \LaTeX3 code apply: these are described in the following +paragraph and an example is then given. + +With the exception of simple runs of parameter (|{#1}|, |#1#2|, +\emph{etc.}), everything should be divided up using spaces to make the code +more readable. In general, these will be single spaces, but in some +places it makes more sense to align parts of the code to emphasise +similarity. (Tabs should not be used for introducing white space.) + +Each conceptually-separate step in a function should be on a separate +line, to make the meaning clearer. Hence the \texttt{false} branch +in the example uses two lines for the two auxiliary function uses. + +Within the definition, a two-space indent should be used to show each +\enquote{level} of code. Thus in the example \cs{tl_if_empty:nTF} is +indented by two spaces, but the two branches are indented by four +spaces. Within the \texttt{false} branch, the need for multiple lines +means that an additional two-space indent should be used to show that +these lines are all part of the brace group. + +The result of these lay-out conventions is code which will in general +look like the example: +\begin{verbatim*} +\cs_new:Npn \module_foo:nn #1#2 + { + \tl_if_empty:nTF {#1} + { \module_foo_aux:n { X #2 } } + { + \module_foo_aux:nn {#1} {#2} + \module_foo_aux:n { #1 #2 } + } + } +\end{verbatim*} + +\section{Code conventions} + +All code-level functions should be \enquote{long} if they accept any +arguments, even if it seems \enquote{very unlikely} that a \cs{par} token +will be passed. Thus \cs{cs_new_nopar:Npn} and so forth should only be used +to create functions which accept no arguments at all. + +The expandability of each function should be well-defined. Functions which +cannot be fully expanded must be \texttt{protected}. This means that expandable +functions must themselves only contain expandable material. Functions which +use any non-expandable material must be defined using \cs{cs_new_protected:Npn} +or similar. + +When using \cs{cs_generate_variant:Nn}, group related variants together +to make the pattern clearer. A common example is variants of a function +which has an \texttt{N}-type first argument: +\begin{verbatim} + \cs_generate_variant:Nn \foo:Nn { NV , No } + \cs_generate_variant:Nn \foo:Nn { c , cV , co } +\end{verbatim} + +There may be cases where omitting braces from \texttt{o}-type arguments +is desirable for performance reasons. This should only be done if the +argument is a single token, thus for example +\begin{verbatim} + \tl_set:No \l_some_tl \l_some_other_tl +\end{verbatim} +remains clear and can be used where appropriate. + +\section{Private and internal functions} + +Private functions (those starting \cs{__}) should not be used between modules. +The only exception is where a \enquote{family} of modules share some +\enquote{internal} methods: this happens most obviously in the kernel itself. +Any internal functions or variables \emph{must} be documented in the same way +as public ones. + +The \pkg{l3docstrip} method should be used for internal functions in a module. +This requires a line +\begin{quote} + \ttfamily + \%<@@=\meta{module}> +\end{quote} +at the start of the source (\texttt{.dtx}) file, with internal functions +then written in the form +\begin{verbatim} + \cs_new_protected:Npn \@@_function:nn #1#2 + ... +\end{verbatim} + +\section{Auxiliary functions} + +In general, the team encourages the use of descriptive names in \LaTeX3 code. +Thus many helper functions will have names which describe briefly what they do, +rather than simply indicating that they are auxiliary to some higher-level +function. However, there are places where one or more \texttt{aux} functions +are required. Where possible, these should be differentiated by signature +\begin{verbatim} + \cs_new_protected:Npn \@@_function:nn #1#2 + { + ... + } + \cs_new_protected:Npn \@@_function_aux:nn #1#2 + { + ... + } + \cs_new_protected:Npn \@@_function_aux:w #1#2 \q_stop + { + ... + } +\end{verbatim} +Where more than one auxiliary shares the same signature, the recommended naming +scheme is \texttt{auxi}, \texttt{auxii} and so on. +\begin{verbatim} + \cs_new_protected:Npn \@@_function_auxi:nn #1#2 + { + ... + } + \cs_new_protected:Npn \@@_function_auxii:nn #1#2 + { + ... + } +\end{verbatim} +The use of \texttt{aux_i}, \texttt{aux_ii}, \emph{etc.}\ is discouraged as this +conflicts with the convention used by \cs{use_i:nn} and related functions. + +\end{document} diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf index 936b64b1308..691eac2c5b3 100644 Binary files a/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf and b/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex b/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex new file mode 100644 index 00000000000..4dfc70e0e97 --- /dev/null +++ b/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex @@ -0,0 +1,110 @@ +\iffalse meta-comment + +File l3syntax-changes.tex Copyright (C) 2011-2012 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. + +\fi + +\documentclass{l3doc} + +\usepackage{svn-multi} + +\svnid{$Id: l3syntax-changes.tex 4048 2012-08-02 09:49:10Z joseph $} +\def\filedate{\svnfileyear/\svnfilemonth/\svnfileday} + +\title{% + Syntax changes in \LaTeX3 functions + \thanks + {% + This file describes v\svnfilerev, + last revised \filedate. + }% +} +\author{% + The \LaTeX3 Project\thanks + {% + E-mail: + \href{mailto:latex-team@latex-project.org}% + {latex-team@latex-project.org}% + }% +} +\date{Released \filedate} + +\newcommand{\TF}{\textit{(TF)}} + +\begin{document} + +\maketitle + +This file lists functions whose syntax has changed after August 2011, +with an approximate date. + +\section{August 2011} + +\begin{itemize} + \item \cs{tl_if_single:n\TF} recognized any non-zero number of + explicit spaces as \meta{true}, and did not ignore trailing spaces. + Now it is \meta{true} for + \[ + \meta{optional spaces} + \meta{normal token or brace group} + \meta{optional spaces}. + \] + \item \cs{tl_reverse:n} stripped outer braces and lost unprotected spaces. + Now it keeps spaces, leaves unbraced single tokens unbraced, and + braced groups braced. + \item \cs{tl_trim_spaces:n} only removed one leading and trailing space. + Now removes recursively. Also, on the left it used to strip implicit + and explicit spaces with any character code. Now it strips only explicit + space characters $(32,10)$. +\end{itemize} + +\section{September 2011} + +\begin{itemize} +\item clist functions which receive an \texttt{n}-type comma list argument + now trim spaces from each item in the argument. +\end{itemize} + +\section{June 2012} + +\begin{itemize} + \item Access to list functions now indexes from~$1$, not from~$0$. + This applies to multiple choices in the \pkg{l3keys} module and + the \cs{clist_item:Nn}, \cs{seq_item:Nn} and \cs{tl_item:Nn} + functions. + \item \cs{tl_trim_spaces:n} now requires a variable number of + expansions to fully expand, rather than exactly two. Of course, + \texttt{x}-type expansion still correctly evaluates this function. +\end{itemize} + +\section{July 2012} + +\begin{itemize} + \item The \cs{tl_if_head_eq_meaning:nN}, \cs{tl_if_head_eq_catcode:nN} + and \cs{tl_if_head_eq_charcode:nN} conditionals now never match when + their first argument is empty. +\end{itemize} + +\section{August 2012} + +\begin{itemize} + \item \cs{lua_now:x} is now a standard \texttt{x}-type expansion of + \cs{lua_now:n}, which does no expansion. Engine-level expansion is moved + to \cs{lua_now_x:n}, reflecting the fact that this is non-standard in the + same way as for example \cs{str_if_eq_x:nn(TF)}. +\end{itemize} + + +\end{document} diff --git a/Master/texmf-dist/doc/latex/l3kernel/source3.pdf b/Master/texmf-dist/doc/latex/l3kernel/source3.pdf index 4198312a9ed..60e0a38fa02 100644 Binary files a/Master/texmf-dist/doc/latex/l3kernel/source3.pdf and b/Master/texmf-dist/doc/latex/l3kernel/source3.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3kernel/source3.tex b/Master/texmf-dist/doc/latex/l3kernel/source3.tex new file mode 100644 index 00000000000..22c3c44048d --- /dev/null +++ b/Master/texmf-dist/doc/latex/l3kernel/source3.tex @@ -0,0 +1,106 @@ +% \iffalse meta-comment +% +%% File: source3.tex Copyright (C) 1990-2011 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. +%% +%% ----------------------------------------------------------------------- +% +% \fi + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% This document will typeset the LaTeX3 sources as a single document. +% This will produce quite a large file (more than 780 pages). +% +% There is also a shorter version (interface3.tex) that only typesets the +% command % interface descriptions. +% +% Do not forget to generate the index (as explained on the terminal output +% near the end of the run)! +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\documentclass{l3doc} +\listfiles + +\begin{document} + +\title{The \LaTeX3 Sources} +\author{% + The \LaTeX3 Project\thanks + {% + E-mail: + \href{mailto:latex-team@latex-project.org} + {latex-team@latex-project.org}% + }% +} + +\pagenumbering{roman} +\maketitle + +% +% First load all modules and typeset the documentation parts +% + +\input{source3body} % all the individual modules + +% +% Now reload all modules and typeset the implementation parts +% + +\part{Implementation} + +\def\maketitle{} +\EnableImplementation +\DisableDocumentation +\DocInputAgain + +\clearpage +\pagestyle{headings} + +% Make TeX shut up. +\hbadness=10000 +\newcount\hbadness +\hfuzz=\maxdimen + +\PrintChanges +\clearpage + +\begingroup + \def\endash{--} + \catcode`\-\active + \def-{\futurelet\temp\indexdash} + \def\indexdash{\ifx\temp-\endash\fi} + + \DelayPrintIndex +\endgroup + +\end{document} diff --git a/Master/texmf-dist/source/latex/l3kernel/expl3.dtx b/Master/texmf-dist/source/latex/l3kernel/expl3.dtx index 4f602f7daca..4b000250b5b 100644 --- a/Master/texmf-dist/source/latex/l3kernel/expl3.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/expl3.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -%% File: expl3.dtx Copyright (C) 1990-2014 The LaTeX3 Project +%% File: expl3.dtx Copyright (C) 1990-2015 The LaTeX3 Project %% %% It may be distributed and/or modified under the conditions of the %% LaTeX Project Public License (LPPL), either version 1.3c of this @@ -36,8 +36,8 @@ %<*driver|generic|package> \def\ExplFileName{expl3} \def\ExplFileDescription{L3 programming layer} -\def\ExplFileDate{2014/11/25} -\def\ExplFileVersion{5471} +\def\ExplFileDate{2015/01/29} +\def\ExplFileVersion{5502} % %<*driver> \documentclass[full]{l3doc} diff --git a/Master/texmf-dist/source/latex/l3kernel/interface3.tex b/Master/texmf-dist/source/latex/l3kernel/interface3.tex deleted file mode 100644 index 4c0a2761e92..00000000000 --- a/Master/texmf-dist/source/latex/l3kernel/interface3.tex +++ /dev/null @@ -1,89 +0,0 @@ -% \iffalse meta-comment -% -%% File: interfaces3.tex Copyright (C) 1990-2011 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. -%% -%% ----------------------------------------------------------------------- -% -% \fi - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% This document will typeset the LaTeX3 interface descriptions a single -% document. This will produce quite a large file (more than 170 pages -% currently). -% -% There is also a full version of the sources (source3.tex) which additionally -% also typesets the command implementations. -% -% Do not forget to generate the index (as explained on the terminal output -% near the end of the run)! -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - -\documentclass{l3doc} -\listfiles - -\begin{document} - -\title{The \LaTeX3 Interfaces} -\author{% - The \LaTeX3 Project\thanks - {% - E-mail: - \href{mailto:latex-team@latex-project.org} - {latex-team@latex-project.org}% - }% -} - -\pagenumbering{roman} -\maketitle - -% -% First load all modules and typeset the documentation parts -% - -\input{source3body} % all the individual modules - -\clearpage - -\begingroup - \def\endash{--} - \catcode`\-\active - \def-{\futurelet\temp\indexdash} - \def\indexdash{\ifx\temp-\endash\fi} - \DelayPrintIndex -\endgroup - -\end{document} - - diff --git a/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx b/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx index ab565a10ab7..5e97b697fdf 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -%% File: l3basics.dtx Copyright (C) 1990-2014 The LaTeX3 project +%% File: l3basics.dtx Copyright (C) 1990-2015 The LaTeX3 project %% %% It may be distributed and/or modified under the conditions of the %% LaTeX Project Public License (LPPL), either version 1.3c of this @@ -37,7 +37,7 @@ \documentclass[full]{l3doc} % %<*driver|package> -\GetIdInfo$Id: l3basics.dtx 5364 2014-08-24 20:19:24Z joseph $ +\GetIdInfo$Id: l3basics.dtx 5500 2015-01-27 14:37:04Z joseph $ {L3 Basic definitions} % %<*driver> @@ -820,7 +820,7 @@ % If one or more tokens are wrapped in braces then in absorbing them % the outer set will be removed. At the same time, the category code % of each token is set when the token is read by a function (if it -% is read more than once, the category code is determined by the +% is read more than once, the category code is determined by % the situation in force when first function absorbs the token). % % \begin{function}[EXP]{\use:n, \use:nn, \use:nnn, \use:nnnn} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx b/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx index 38c88835fab..e5e003f45c7 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -%% File: l3bootstrap.dtx Copyright (C) 2011-2014 The LaTeX3 project +%% File: l3bootstrap.dtx Copyright (C) 2011-2015 The LaTeX3 project %% %% It may be distributed and/or modified under the conditions of the %% LaTeX Project Public License (LPPL), either version 1.3c of this @@ -145,7 +145,7 @@ % \end{macro} % \end{macro} % \end{macro} -\GetIdInfo$Id: l3bootstrap.dtx 5354 2014-08-23 01:35:39Z bruno $ +\GetIdInfo$Id: l3bootstrap.dtx 5500 2015-01-27 14:37:04Z joseph $ {L3 Bootstrap code} % %<*driver> @@ -212,7 +212,8 @@ % \cs{ExplSyntaxOn} for the remainder of the code with the file. At the % end of the file, \cs{ExplSyntaxOff} will be called to reverse this. % (This is the same concept as \LaTeXe{} provides in turning on -% \tn{makeatletter} within package and class code.) +% \tn{makeatletter} within package and class code.) The \meta{date} should +% be given in the format \meta{year}/\meta{month}/\meta{day}. % \end{function} % % \begin{function}[updated = 2012-06-04]{\GetIdInfo} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx b/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx index eb1fa9c4b29..440ceb898bb 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -%% File: l3candidates.dtx Copyright(C) 2012-2014 The LaTeX3 Project +%% File: l3candidates.dtx Copyright(C) 2012-2015 The LaTeX3 Project %% %% It may be distributed and/or modified under the conditions of the %% LaTeX Project Public License (LPPL), either version 1.3c of this @@ -38,7 +38,7 @@ \documentclass[full]{l3doc} % %<*driver|package> -\GetIdInfo$Id: l3candidates.dtx 5466 2014-11-23 12:37:29Z joseph $ +\GetIdInfo$Id: l3candidates.dtx 5499 2015-01-27 14:33:48Z joseph $ {L3 Experimental additions to l3kernel} % %<*driver> @@ -1351,7 +1351,8 @@ % % \begin{macro}{\box_resize:Nnn, \box_resize:cnn} % \begin{macro}[aux]{\@@_resize_set_corners:N} -% \begin{macro}[aux]{\@@_resize:Nn} +% \begin{macro}[aux]{\@@_resize:N} +% \begin{macro}[aux]{\@@_resize:NNN} % Resizing a box starts by working out the various dimensions of the % existing box. % \begin{macrocode} @@ -1377,9 +1378,9 @@ / \dim_to_fp:n { \l_@@_top_dim - \l_@@_bottom_dim } } % \end{macrocode} -% Hand off to the auxiliary which does the work. +% Hand off to the auxiliary which does the rest of the work. % \begin{macrocode} - \@@_resize:Nn #1 {#2} + \@@_resize:N #1 \group_end: } } @@ -1394,25 +1395,30 @@ % \end{macrocode} % With at least one real scaling to do, the next phase is to find the new % edge co-ordinates. In the $x$~direction this is relatively easy: just -% scale the right edge. This is done using the absolute value of the -% scale so that the new edge is in the correct place. In the $y$~direction, -% both dimensions have to be scaled, and this again needs the absolute -% scale value. Once that is all done, the common resize/rescale code can -% be employed. -% \begin{macrocode} -\cs_new_protected:Npn \@@_resize:Nn #1#2 - { - \dim_set:Nn \l_@@_right_new_dim { \dim_abs:n {#2} } - \dim_set:Nn \l_@@_bottom_new_dim - { \fp_abs:n { \l_@@_scale_y_fp } \l_@@_bottom_dim } - \dim_set:Nn \l_@@_top_new_dim - { \fp_abs:n { \l_@@_scale_y_fp } \l_@@_top_dim } +% scale the right edge. In the $y$~direction, both dimensions have to be +% scaled, and this again needs the absolute scale value. +% Once that is all done, the common resize/rescale code can be employed. +% \begin{macrocode} +\cs_new_protected:Npn \@@_resize:N #1 + { + \@@_resize:NNN \l_@@_right_new_dim + \l_@@_scale_x_fp \l_@@_right_dim + \@@_resize:NNN \l_@@_bottom_new_dim + \l_@@_scale_y_fp \l_@@_bottom_dim + \@@_resize:NNN \l_@@_top_new_dim + \l_@@_scale_y_fp \l_@@_top_dim \@@_resize_common:N #1 } +\cs_new_protected:Npn \@@_resize:NNN #1#2#3 + { + \dim_set:Nn #1 + { \fp_to_dim:n { \fp_abs:n { #2 } * \dim_to_fp:n { #3 } } } + } % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} +% \end{macro} % % \begin{macro}{\box_resize_to_ht:Nn, \box_resize_to_ht:cn} % \begin{macro}{\box_resize_to_ht_plus_dp:Nn, \box_resize_to_ht_plus_dp:cn} @@ -1436,7 +1442,7 @@ / \dim_to_fp:n { \l_@@_top_dim } } \fp_set_eq:NN \l_@@_scale_x_fp \l_@@_scale_y_fp - \@@_resize:Nn #1 {#2} + \@@_resize:N #1 \group_end: } } @@ -1453,7 +1459,7 @@ / \dim_to_fp:n { \l_@@_top_dim - \l_@@_bottom_dim } } \fp_set_eq:NN \l_@@_scale_x_fp \l_@@_scale_y_fp - \@@_resize:Nn #1 {#2} + \@@_resize:N #1 \group_end: } } @@ -1467,7 +1473,7 @@ \fp_set:Nn \l_@@_scale_x_fp { \dim_to_fp:n {#2} / \dim_to_fp:n { \l_@@_right_dim } } \fp_set_eq:NN \l_@@_scale_y_fp \l_@@_scale_x_fp - \@@_resize:Nn #1 {#2} + \@@_resize:N #1 \group_end: } } @@ -1485,7 +1491,7 @@ \dim_to_fp:n {#3} / \dim_to_fp:n { \l_@@_top_dim } } - \@@_resize:Nn #1 {#2} + \@@_resize:N #1 \group_end: } } diff --git a/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx b/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx index 701a2ab6b02..7d708c411ac 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx @@ -37,7 +37,7 @@ \documentclass[full]{l3doc} % %<*driver|package> -\GetIdInfo$Id: l3expan.dtx 5349 2014-08-22 21:46:59Z bruno $ +\GetIdInfo$Id: l3expan.dtx 5472 2014-11-27 09:10:40Z joseph $ {L3 Argument expansion} % %<*driver> @@ -222,6 +222,26 @@ % you should stick to using |TF| type functions only as it does not % try to finish any |\if... \fi:| itself! % +% If is important to not that both \texttt{f}- and \texttt{o}-type +% expansion are concerned with the expansion of tokens from left to +% right in their arguments. In particular, \texttt{o}-type expansion +% applies to the first \emph{token} in the argument it receives: it +% is conceptually similar to +% \begin{verbatim} +% \exp_after:wN \exp_after:wN { } +% \end{verbatim} +% At the same time, \texttt{f}-type expansion stops at the emph{first} +% non-expandable token. This means for example that both +% \begin{verbatim} +% \tl_set:No \l_tmpa_tl { { \l_tmpa_tl } } +% \end{verbatim} +% and +% \begin{verbatim} +% \tl_set:Nf \l_tmpa_tl { { \l_tmpa_tl } } +% \end{verbatim} +% leave |\l_tmpa_tl| unchanged: |{| is the first token in the +% argument and is non-expandable. +% % \section{Manipulating the first argument} % % These functions are described in detail: expansion of multiple tokens follows diff --git a/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx b/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx index 49b443977de..c64d2a7dd3a 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -%% File: l3keys.dtx Copyright (C) 2006-2014 The LaTeX3 Project +%% File: l3keys.dtx Copyright (C) 2006-2015 The LaTeX3 Project %% %% It may be distributed and/or modified under the conditions of the %% LaTeX Project Public License (LPPL), either version 1.3c of this @@ -37,7 +37,7 @@ \documentclass[full]{l3doc} % %<*driver|package> -\GetIdInfo$Id: l3keys.dtx 5354 2014-08-23 01:35:39Z bruno $ +\GetIdInfo$Id: l3keys.dtx 5500 2015-01-27 14:37:04Z joseph $ {L3 Key-value interfaces} % %<*driver> @@ -235,7 +235,7 @@ % \begin{syntax} % \meta{key} .code:n = \Arg{code} % \end{syntax} -% Stores the \meta{code} for execution when \meta{key} is used. The +% Stores the \meta{code} for execution when \meta{key} is used. % The \meta{code} can include one parameter (|#1|), which will be the % \meta{value} given for the \meta{key}. The \texttt{x}-type variant % will expand \meta{code} at the point where the \meta{key} is diff --git a/Master/texmf-dist/source/latex/l3kernel/l3styleguide.tex b/Master/texmf-dist/source/latex/l3kernel/l3styleguide.tex deleted file mode 100644 index c37c9e24dff..00000000000 --- a/Master/texmf-dist/source/latex/l3kernel/l3styleguide.tex +++ /dev/null @@ -1,242 +0,0 @@ -\iffalse meta-comment - -File l3styleguide.tex Copyright (C) 2011,2012 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. - -\fi - -\documentclass{l3doc} -\usepackage{svn-multi} - -\svnid{$Id: l3styleguide.tex 2772 2011-09-07 15:07:41Z joseph $} -\def\filedate{\svnfileyear/\svnfilemonth/\svnfileday} - -\title{% - The \LaTeX3 kernel: style guide for code authors% - \thanks - {% - This file describes v\svnfilerev, - last revised \filedate. - }% -} -\author{% - The \LaTeX3 Project\thanks - {% - E-mail: - \href{mailto:latex-team@latex-project.org}% - {latex-team@latex-project.org}% - }% -} -\date{Released \filedate} - -\begin{document} - -\maketitle - -\tableofcontents - -\section{Introduction} - -This document is intended as a style guide for authors of code and -documentation for the \LaTeX3 kernel. It covers both aspects of coding -style and the formatting of the sources. The aim of providing these -guidelines is help ensure consistency of the code and sources from -different authors. Experience suggests that in the long-term this helps -with maintenance. There will of course be places where there are -exceptions to these guidelines: common sense should always be -applied! - -\section{Documentation style} - -\LaTeX3 source and documentation should be written using the document -class \cls{l3doc} in \file{dtx} format. This class provides a number -of logical mark up elements, which should be used where possible. -In the main, this is standard \LaTeX{} practice, but there are a -few points to highlight: -\begin{itemize} - \item - Where possible, use \cs{cs} to mark up control sequences - rather than using a verbatim environment. - \item - Arguments which are given in braces should be marked using - \cs{Arg} when code-level functions are discussed, but using - \cs{marg} for document functions. - \item - The names \TeX{}, \LaTeX{}, \emph{etc}.\ use the normal logical mark - up followed by an empty group (|{}|), with the exception of |\LaTeX3|, - where the number should follow directly. - \item - Where in line verbatim text is used, it should be marked up - using the \verb=|...|= construct (\emph{i.e.}~vertical bars delimit - the verbatim text). - \item In line quotes should be marked up using the \cs{enquote} - function. - \item - Where numbers in the source have a mathematical meaning, - they should be included in math mode. Such in-line math mode - material should be marked up using |$...$| and \emph{not} - |\(...\)|. -\end{itemize} - -Line length in the source files should be under $80$ -characters where possible, as this helps keep everything on the screen -when editing files. In the \file{dtx} format, documentation lines start -with a \texttt{\%}, which is usually followed by a space to leave a -\enquote{comment margin} at the start of each line. - -As with code indenting (see later), nested environments and arguments -should be indented by (at least) two spaces to make the nature of the nesting -clear. Thus for example a typical arrangement for the \env{function} -environment might be -\begin{verbatim*} -\begin{function}{\seq_gclear:N, \seq_gclear:c} - \begin{syntax} - \cs{seq_gclear:N} \meta{sequence} - \end{syntax} - Clears all entries from the \meta{sequence} globally. -\end{function} -\end{verbatim*} -The \enquote{outer} \verb*|% \begin{function}| should have the customary -space after the |%| character at the start of the line. - -In general, a single \env{function} or \env{macro} environment should be -used for a group of closely-related functions, for example argument -specification variants. In such cases, a comma-separated list should be -used, as shown in the preceding example. - -\section{Format of the code itself} - -The requirement for less than $80$ characters per line applies to the code -itself as well as the surrounding documentation. A number of the general -style principles for \LaTeX3 code apply: these are described in the following -paragraph and an example is then given. - -With the exception of simple runs of parameter (|{#1}|, |#1#2|, -\emph{etc.}), everything should be divided up using spaces to make the code -more readable. In general, these will be single spaces, but in some -places it makes more sense to align parts of the code to emphasise -similarity. (Tabs should not be used for introducing white space.) - -Each conceptually-separate step in a function should be on a separate -line, to make the meaning clearer. Hence the \texttt{false} branch -in the example uses two lines for the two auxiliary function uses. - -Within the definition, a two-space indent should be used to show each -\enquote{level} of code. Thus in the example \cs{tl_if_empty:nTF} is -indented by two spaces, but the two branches are indented by four -spaces. Within the \texttt{false} branch, the need for multiple lines -means that an additional two-space indent should be used to show that -these lines are all part of the brace group. - -The result of these lay-out conventions is code which will in general -look like the example: -\begin{verbatim*} -\cs_new:Npn \module_foo:nn #1#2 - { - \tl_if_empty:nTF {#1} - { \module_foo_aux:n { X #2 } } - { - \module_foo_aux:nn {#1} {#2} - \module_foo_aux:n { #1 #2 } - } - } -\end{verbatim*} - -\section{Code conventions} - -All code-level functions should be \enquote{long} if they accept any -arguments, even if it seems \enquote{very unlikely} that a \cs{par} token -will be passed. Thus \cs{cs_new_nopar:Npn} and so forth should only be used -to create functions which accept no arguments at all. - -The expandability of each function should be well-defined. Functions which -cannot be fully expanded must be \texttt{protected}. This means that expandable -functions must themselves only contain expandable material. Functions which -use any non-expandable material must be defined using \cs{cs_new_protected:Npn} -or similar. - -When using \cs{cs_generate_variant:Nn}, group related variants together -to make the pattern clearer. A common example is variants of a function -which has an \texttt{N}-type first argument: -\begin{verbatim} - \cs_generate_variant:Nn \foo:Nn { NV , No } - \cs_generate_variant:Nn \foo:Nn { c , cV , co } -\end{verbatim} - -There may be cases where omitting braces from \texttt{o}-type arguments -is desirable for performance reasons. This should only be done if the -argument is a single token, thus for example -\begin{verbatim} - \tl_set:No \l_some_tl \l_some_other_tl -\end{verbatim} -remains clear and can be used where appropriate. - -\section{Private and internal functions} - -Private functions (those starting \cs{__}) should not be used between modules. -The only exception is where a \enquote{family} of modules share some -\enquote{internal} methods: this happens most obviously in the kernel itself. -Any internal functions or variables \emph{must} be documented in the same way -as public ones. - -The \pkg{l3docstrip} method should be used for internal functions in a module. -This requires a line -\begin{quote} - \ttfamily - \%<@@=\meta{module}> -\end{quote} -at the start of the source (\texttt{.dtx}) file, with internal functions -then written in the form -\begin{verbatim} - \cs_new_protected:Npn \@@_function:nn #1#2 - ... -\end{verbatim} - -\section{Auxiliary functions} - -In general, the team encourages the use of descriptive names in \LaTeX3 code. -Thus many helper functions will have names which describe briefly what they do, -rather than simply indicating that they are auxiliary to some higher-level -function. However, there are places where one or more \texttt{aux} functions -are required. Where possible, these should be differentiated by signature -\begin{verbatim} - \cs_new_protected:Npn \@@_function:nn #1#2 - { - ... - } - \cs_new_protected:Npn \@@_function_aux:nn #1#2 - { - ... - } - \cs_new_protected:Npn \@@_function_aux:w #1#2 \q_stop - { - ... - } -\end{verbatim} -Where more than one auxiliary shares the same signature, the recommended naming -scheme is \texttt{auxi}, \texttt{auxii} and so on. -\begin{verbatim} - \cs_new_protected:Npn \@@_function_auxi:nn #1#2 - { - ... - } - \cs_new_protected:Npn \@@_function_auxii:nn #1#2 - { - ... - } -\end{verbatim} -The use of \texttt{aux_i}, \texttt{aux_ii}, \emph{etc.}\ is discouraged as this -conflicts with the convention used by \cs{use_i:nn} and related functions. - -\end{document} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3syntax-changes.tex b/Master/texmf-dist/source/latex/l3kernel/l3syntax-changes.tex deleted file mode 100644 index 4dfc70e0e97..00000000000 --- a/Master/texmf-dist/source/latex/l3kernel/l3syntax-changes.tex +++ /dev/null @@ -1,110 +0,0 @@ -\iffalse meta-comment - -File l3syntax-changes.tex Copyright (C) 2011-2012 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. - -\fi - -\documentclass{l3doc} - -\usepackage{svn-multi} - -\svnid{$Id: l3syntax-changes.tex 4048 2012-08-02 09:49:10Z joseph $} -\def\filedate{\svnfileyear/\svnfilemonth/\svnfileday} - -\title{% - Syntax changes in \LaTeX3 functions - \thanks - {% - This file describes v\svnfilerev, - last revised \filedate. - }% -} -\author{% - The \LaTeX3 Project\thanks - {% - E-mail: - \href{mailto:latex-team@latex-project.org}% - {latex-team@latex-project.org}% - }% -} -\date{Released \filedate} - -\newcommand{\TF}{\textit{(TF)}} - -\begin{document} - -\maketitle - -This file lists functions whose syntax has changed after August 2011, -with an approximate date. - -\section{August 2011} - -\begin{itemize} - \item \cs{tl_if_single:n\TF} recognized any non-zero number of - explicit spaces as \meta{true}, and did not ignore trailing spaces. - Now it is \meta{true} for - \[ - \meta{optional spaces} - \meta{normal token or brace group} - \meta{optional spaces}. - \] - \item \cs{tl_reverse:n} stripped outer braces and lost unprotected spaces. - Now it keeps spaces, leaves unbraced single tokens unbraced, and - braced groups braced. - \item \cs{tl_trim_spaces:n} only removed one leading and trailing space. - Now removes recursively. Also, on the left it used to strip implicit - and explicit spaces with any character code. Now it strips only explicit - space characters $(32,10)$. -\end{itemize} - -\section{September 2011} - -\begin{itemize} -\item clist functions which receive an \texttt{n}-type comma list argument - now trim spaces from each item in the argument. -\end{itemize} - -\section{June 2012} - -\begin{itemize} - \item Access to list functions now indexes from~$1$, not from~$0$. - This applies to multiple choices in the \pkg{l3keys} module and - the \cs{clist_item:Nn}, \cs{seq_item:Nn} and \cs{tl_item:Nn} - functions. - \item \cs{tl_trim_spaces:n} now requires a variable number of - expansions to fully expand, rather than exactly two. Of course, - \texttt{x}-type expansion still correctly evaluates this function. -\end{itemize} - -\section{July 2012} - -\begin{itemize} - \item The \cs{tl_if_head_eq_meaning:nN}, \cs{tl_if_head_eq_catcode:nN} - and \cs{tl_if_head_eq_charcode:nN} conditionals now never match when - their first argument is empty. -\end{itemize} - -\section{August 2012} - -\begin{itemize} - \item \cs{lua_now:x} is now a standard \texttt{x}-type expansion of - \cs{lua_now:n}, which does no expansion. Engine-level expansion is moved - to \cs{lua_now_x:n}, reflecting the fact that this is non-standard in the - same way as for example \cs{str_if_eq_x:nn(TF)}. -\end{itemize} - - -\end{document} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx b/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx index 59e49c70cd7..0d781af663c 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -%% File: l3tl.dtx Copyright (C) 1990-2014 The LaTeX3 Project +%% File: l3tl.dtx Copyright (C) 1990-2015 The LaTeX3 Project %% %% It may be distributed and/or modified under the conditions of the %% LaTeX Project Public License (LPPL), either version 1.3c of this @@ -37,7 +37,7 @@ \documentclass[full]{l3doc} % %<*driver|package> -\GetIdInfo$Id: l3tl.dtx 5460 2014-11-19 10:09:42Z joseph $ +\GetIdInfo$Id: l3tl.dtx 5500 2015-01-27 14:37:04Z joseph $ {L3 Token lists} % %<*driver> @@ -1202,20 +1202,9 @@ % \begin{variable}{\c_job_name_tl} % Inherited from the \LaTeX3 name for the primitive: this needs to % actually contain the text of the job name rather than the name of -% the primitive, of course. \LuaTeX{} does not quote file names containing -% spaces, whereas \pdfTeX{} and \XeTeX{} do. So there may be a correction to -% make in the \LuaTeX{} case. +% the primitive, of course. % \begin{macrocode} %<*initex> -\luatex_if_engine:T - { - \tex_everyjob:D \exp_after:wN - { - \tex_the:D \tex_everyjob:D - \lua_now_x:n - { dofile ( assert ( kpse.find_file ("lualatexquotejobname.lua" ) ) ) } - } - } \tex_everyjob:D \exp_after:wN { \tex_the:D \tex_everyjob:D diff --git a/Master/texmf-dist/source/latex/l3kernel/l3unicode-data.def b/Master/texmf-dist/source/latex/l3kernel/l3unicode-data.def deleted file mode 100644 index c2629626578..00000000000 --- a/Master/texmf-dist/source/latex/l3kernel/l3unicode-data.def +++ /dev/null @@ -1,389 +0,0 @@ -%% This is the file l3unicode-data.def -%% generated using the script l3unicode-data.dtx. -%% -%% The data here are derived from the files -%% - UnicodeData.txt -%% - SpecialCasing.txt -%% - CaseFolding.txt -%% which are maintained by the Unicode Consortium. -%% -%% Generated on 2014-11-23. -%% -\ProvidesExplFile {l3unicode-data.def} {2014/11/23} {5465} {L3 Unicode data} -\clist_const:Nn \c__tl_after_final_sigma_clist - { 0021 , 0022 , 0029 , 002C , 002E , 003A , 003B , 003F , 005D , 007D } -\clist_const:Nn \c__tl_mixed_skip_clist - { 0028 , 005B , 0060 , 007B } -\pdftex_if_engine:T - { - \group_begin: - \cs_set_protected:Npn \__unicode_tmp:NN #1#2 - { - \quark_if_recursion_tail_stop:N #1 - \exp_after:wN \__unicode_tmp:NNNNNNN - \tex_number:D \__int_eval:w `#1 \exp_after:wN \__int_eval_end: - \tex_number:D \__int_eval:w 100 + `#2 \__int_eval_end: - #1 #2 - \__unicode_tmp:NN - } - \cs_set_protected:Npn \__unicode_tmp:NNNNNNN #1#2#3#4#5#6#7 - { - \tl_const:cx { c__str_fold_ #1 _X_ #2 _ tl } - { \tl_to_str:n { #6#7 } } - \tl_const:cn { c__tl_lower_ #1 _X_ #2 _ tl } { #6#7 } - \tl_const:cn { c__tl_upper_ #4 _X_ #5 _ tl } { #7#6 } - } - \__unicode_tmp:NN - AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz - \q_recursion_tail ? \q_recursion_stop - \group_end: - \int_step_inline:nnnn { 0 } { 1 } { 9 } - { - \int_step_inline:nnnn { 0 } { 1 } { 9 } - { - \tl_if_exist:cF { c__str_fold_ #1 _X_ ##1 _ tl } - { - \tl_const:cn { c__str_fold_ #1 _X_ ##1 _ tl } { } - } - \tl_if_exist:cF { c__tl_lower_ #1 _X_ ##1 _ tl } - { - \tl_const:cn { c__tl_lower_ #1 _X_ ##1 _ tl } { } - } - \tl_if_exist:cF { c__tl_upper_ #1 _X_ ##1 _ tl } - { - \tl_const:cn { c__tl_upper_ #1 _X_ ##1 _ tl } { } - } - } - } - \tl_const:Nn \c__tl_mixed_exceptions_tl { } - \tl_const:Nn \c__tl_std_sigma_tl { } - \tl_const:Nn \c__tl_final_sigma_tl { } - \tl_const:Nn \c__tl_accents_lt_tl { } - \tl_const:Nn \c__tl_dot_above_tl { } - \tl_const:Nn \c__tl_dotless_i_tl { I } - \tl_const:Nn \c__tl_dotted_I_tl { i } - \tex_endinput:D - } -\tl_const:cn { c__tl_upper_0_X_0_tl } { dDьЬոՈὀὈᾤ{ὬΙ}ⳬⳫ𐐨𐐀𑣜𑢼 } -\tl_const:cn { c__tl_upper_0_X_1_tl } { eEĭĬǵǴəƏϩϨэЭұҰԕԔչՉḕḔṹṸờỜὁὉᾥ{ὭΙ}ⲉⲈꙩꙨ𐐩𐐁𑣝𑢽 } -\tl_const:cn { c__tl_upper_0_X_2_tl } { fFƒƑюЮպՊὂὊᾦ{ὮΙ}ⳮⳭ𐐪𐐂𑣞𑢾 } -\tl_const:cn { c__tl_upper_0_X_3_tl } { gGįĮɛƐϫϪяЯҳҲԗԖջՋḗḖṻṺởỞὃὋᾧ{ὯΙ}ⲋⲊꙫꙪꜳꜲꞗꞖ𐐫𐐃𑣟𑢿 } -\tl_const:cn { c__tl_upper_0_X_4_tl } { hHɜꞫѐЀռՌὄὌᾨ{ὨΙ}𐐬𐐄 } -\tl_const:cn { c__tl_upper_0_X_5_tl } { iIıIƕǶǹǸϭϬёЁҵҴԙԘսՍḙḘṽṼỡỠὅὍᾩ{ὩΙ}ⲍⲌꙭꙬꜵꜴꞙꞘ𐐭𐐅 } -\tl_const:cn { c__tl_upper_0_X_6_tl } { jJђЂվՎᾪ{ὪΙ}𐐮𐐆 } -\tl_const:cn { c__tl_upper_0_X_7_tl } { kK{ij}{IJ}ǻǺϯϮѓЃҷҶԛԚտՏḛḚṿṾợỢᾫ{ὫΙ}ⲏⲎⳳⳲꜷꜶꞛꞚ𐐯𐐇 } -\tl_const:cn { c__tl_upper_0_X_8_tl } { lLɠƓϰΚєЄրՐᾬ{ὬΙ}𐐰𐐈 } -\tl_const:cn { c__tl_upper_0_X_9_tl } { mMĵĴƙƘǽǼɡꞬϱΡѕЅҹҸԝԜցՑḝḜẁẀụỤᾭ{ὭΙ}ⲑⲐꜹꜸꞝꞜ𐐱𐐉 } -\tl_const:cn { c__tl_upper_1_X_0_tl } { nNƚȽϲϹіІւՒᾮ{ὮΙ}𐐲𐐊 } -\tl_const:cn { c__tl_upper_1_X_1_tl } { oOķĶǿǾɣƔϳͿїЇһҺԟԞփՓḟḞẃẂủỦᾯ{ὯΙ}ⲓⲒꜻꜺꞟꞞ𐐳𐐋 } -\tl_const:cn { c__tl_upper_1_X_2_tl } { pPΐ{Ϊ́}јЈքՔᾰᾸⰰⰀ𐐴𐐌 } -\tl_const:cn { c__tl_upper_1_X_3_tl } { qQȁȀɥꞍϵΕљЉҽҼԡԠօՕḡḠẅẄứỨᾱᾹⰱⰁⲕⲔꜽꜼꞡꞠ𐐵𐐍 } -\tl_const:cn { c__tl_upper_1_X_4_tl } { rRĺĹƞȠɦꞪњЊֆՖᾲ{ᾺΙ}ⰲⰂ𐐶𐐎 } -\tl_const:cn { c__tl_upper_1_X_5_tl } { sSȃȂћЋҿҾԣԢ{և}{{ԵՒ}}ḣḢẇẆừỪᾳ{ΑΙ}ⰳⰃⲗⲖꜿꜾꞣꞢ𐐷𐐏 } -\tl_const:cn { c__tl_upper_1_X_6_tl } { tTļĻɨƗϸϷќЌὐ{Υ̓}ᾴ{ΆΙ}ⰴⰄ𐐸𐐐 } -\tl_const:cn { c__tl_upper_1_X_7_tl } { uUơƠȅȄɩƖѝЍԥԤḥḤẉẈửỬὑὙⰵⰅⲙⲘꝁꝀꞥꞤ𐐹𐐑 } -\tl_const:cn { c__tl_upper_1_X_8_tl } { vVľĽўЎӂӁὒ{Υ̓̀}ᾶ{Α͂}ⰶⰆ𐐺𐐒 } -\tl_const:cn { c__tl_upper_1_X_9_tl } { wWƣƢȇȆɫⱢϻϺџЏԧԦḧḦẋẊữỮὓὛᾷ{Α͂Ι}ⰷⰇⲛⲚꝃꝂꞧꞦ𐐻𐐓 } -\tl_const:cn { c__tl_upper_2_X_0_tl } { xX{ŀ}{Ŀ}ɬꞭӄӃὔ{Υ̓́}ⰸⰈⴀႠ𐐼𐐔 } -\tl_const:cn { c__tl_upper_2_X_1_tl } { yYƥƤȉȈѡѠԩԨḩḨẍẌựỰὕὝⰹⰉⲝⲜⴁႡꝅꝄꞩꞨ𐐽𐐕 } -\tl_const:cn { c__tl_upper_2_X_2_tl } { zZłŁӆӅὖ{Υ̓͂}ⰺⰊⴂႢ𐐾𐐖 } -\tl_const:cn { c__tl_upper_2_X_3_tl } { ß{SS}ȋȊɯƜѣѢԫԪḫḪẏẎỳỲὗὟⰻⰋⲟⲞⴃႣꝇꝆ𐐿𐐗 } -\tl_const:cn { c__tl_upper_2_X_4_tl } { àÀńŃƨƧӈӇᾼ{ΑΙ}ⓐⒶⰼⰌⴄႤ𐑀𐐘 } -\tl_const:cn { c__tl_upper_2_X_5_tl } { áÁȍȌɱⱮѥѤԭԬḭḬẑẐỵỴⓑⒷⰽⰍⲡⲠⴅႥꚁꚀꝉꝈ𐑁𐐙 } -\tl_const:cn { c__tl_upper_2_X_6_tl } { âÂņŅɲƝӊӉιΙⅎℲⓒⒸⰾⰎⴆႦ𐑂𐐚 } -\tl_const:cn { c__tl_upper_2_X_7_tl } { ãÃȏȎѧѦԯԮḯḮẓẒỷỶⓓⒹⰿⰏⲣⲢⴇႧꚃꚂꝋꝊ𐑃𐐛 } -\tl_const:cn { c__tl_upper_2_X_8_tl } { äÄňŇӌӋⓔⒺⱀⰐⴈႨ𐑄𐐜 } -\tl_const:cn { c__tl_upper_2_X_9_tl } { åÅ{ʼn}{{ʼN}}ƭƬȑȐɵƟѩѨḱḰẕẔỹỸⓕⒻⱁⰑⲥⲤⴉႩꚅꚄꝍꝌ𐑅𐐝 } -\tl_const:cn { c__tl_upper_3_X_0_tl } { æÆӎӍẖ{H̱}ῂ{ῊΙ}ⓖⒼⱂⰒⴊႪ𐑆𐐞 } -\tl_const:cn { c__tl_upper_3_X_1_tl } { çÇŋŊȓȒѫѪӏӀḳḲẗ{T̈}ỻỺῃ{ΗΙ}ⓗⒽⱃⰓⲧⲦⴋႫꚇꚆꝏꝎ𐑇𐐟 } -\tl_const:cn { c__tl_upper_3_X_2_tl } { èÈưƯẘ{W̊}ὠὨῄ{ΉΙ}ⓘⒾⱄⰔⴌႬ𐑈𐐠 } -\tl_const:cn { c__tl_upper_3_X_3_tl } { éÉōŌȕȔѭѬӑӐḵḴẙ{Y̊}ỽỼὡὩⓙⒿⱅⰕⲩⲨⴍႭꚉꚈꝑꝐ𐑉𐐡 } -\tl_const:cn { c__tl_upper_3_X_4_tl } { êÊẚ{Aʾ}ὢὪῆ{Η͂}ⓚⓀⱆⰖⴎႮ𐑊𐐢 } -\tl_const:cn { c__tl_upper_3_X_5_tl } { ëËŏŎȗȖѯѮӓӒḷḶẛṠỿỾὣὫῇ{Η͂Ι}ⓛⓁⱇⰗⲫⲪⴏႯꚋꚊꝓꝒ𐑋𐐣 } -\tl_const:cn { c__tl_upper_3_X_6_tl } { ìÌƴƳἀἈὤὬⓜⓂⱈⰘⴐႰ𐑌𐐤 } -\tl_const:cn { c__tl_upper_3_X_7_tl } { íÍőŐșȘɽⱤͅΙѱѰӕӔḹḸἁἉὥὭⓝⓃⱉⰙⲭⲬⴑႱꚍꚌꝕꝔ𐑍𐐥 } -\tl_const:cn { c__tl_upper_3_X_8_tl } { îÎƶƵἂἊὦὮⓞⓄⱊⰚⴒႲ𐑎𐐦 } -\tl_const:cn { c__tl_upper_3_X_9_tl } { ïÏœŒțȚѳѲӗӖḻḺἃἋὧὯⓟⓅⱋⰛⲯⲮⴓႳꚏꚎꝗꝖ𐑏𐐧 } -\tl_const:cn { c__tl_upper_4_X_0_tl } { ðÐʀƦάΆἄἌῌ{ΗΙ}ⓠⓆⱌⰜⴔႴ } -\tl_const:cn { c__tl_upper_4_X_1_tl } { ñÑŕŔƹƸȝȜέΈѵѴәӘḽḼạẠἅἍⓡⓇⱍⰝⲱⲰⴕႵꚑꚐꝙꝘ } -\tl_const:cn { c__tl_upper_4_X_2_tl } { òÒήΉἆἎⓢⓈⱎⰞⴖႶ } -\tl_const:cn { c__tl_upper_4_X_3_tl } { óÓŗŖȟȞʃƩίΊѷѶӛӚḿḾảẢἇἏⓣⓉⱏⰟⲳⲲⴗႷꚓꚒꝛꝚ } -\tl_const:cn { c__tl_upper_4_X_4_tl } { ôÔΰ{Ϋ́}ῐῘⓤⓊⱐⰠⴘႸ } -\tl_const:cn { c__tl_upper_4_X_5_tl } { õÕřŘƽƼαΑѹѸӝӜᵹꝽṁṀấẤῑῙⓥⓋⱑⰡⲵⲴⴙႹꚕꚔꝝꝜaA } -\tl_const:cn { c__tl_upper_4_X_6_tl } { öÖβΒῒ{Ϊ̀}ⓦⓌⱒⰢⴚႺbB } -\tl_const:cn { c__tl_upper_4_X_7_tl } { śŚƿǷȣȢʇꞱγΓѻѺӟӞṃṂầẦΐ{Ϊ́}ⓧⓍⱓⰣⲷⲶⴛႻꚗꚖꝟꝞcC } -\tl_const:cn { c__tl_upper_4_X_8_tl } { øØʈƮδΔὰᾺⓨⓎⱔⰤⴜႼdD } -\tl_const:cn { c__tl_upper_4_X_9_tl } { ùÙŝŜȥȤʉɄεΕѽѼӡӠᵽⱣṅṄẩẨάΆⓩⓏⱕⰥⲹⲸⴝႽꚙꚘꝡꝠeE } -\tl_const:cn { c__tl_upper_5_X_0_tl } { úÚʊƱζΖὲῈῖ{Ι͂}ⱖⰦⴞႾfF } -\tl_const:cn { c__tl_upper_5_X_1_tl } { ûÛşŞȧȦʋƲηΗѿѾӣӢṇṆẫẪέΈῗ{Ϊ͂}ⱗⰧⲻⲺⴟႿꚛꚚꝣꝢgG } -\tl_const:cn { c__tl_upper_5_X_2_tl } { üÜʌɅθΘἐἘὴῊⱘⰨⴠჀhH } -\tl_const:cn { c__tl_upper_5_X_3_tl } { ýÝšŠDžDŽȩȨιΙҁҀӥӤṉṈậẬἑἙήΉⱙⰩⲽⲼⴡჁꝥꝤiI } -\tl_const:cn { c__tl_upper_5_X_4_tl } { þÞdžDŽκΚἒἚὶῚⱚⰪⴢჂjJ } -\tl_const:cn { c__tl_upper_5_X_5_tl } { ÿŸţŢȫȪλΛӧӦṋṊắẮἓἛίΊⱛⰫⲿⲾⴣჃꝧꝦkK } -\tl_const:cn { c__tl_upper_5_X_6_tl } { LjLJμΜἔἜὸῸⱜⰬⴤჄff{FF}lL } -\tl_const:cn { c__tl_upper_5_X_7_tl } { āĀťŤljLJȭȬνΝөӨṍṌằẰἕἝόΌⱝⰭⳁⳀⴥჅꝩꝨfi{FI}mM } -\tl_const:cn { c__tl_upper_5_X_8_tl } { ʒƷξΞὺῪⱞⰮfl{FL}nN } -\tl_const:cn { c__tl_upper_5_X_9_tl } { ăĂŧŦNjNJȯȮοΟӫӪṏṎẳẲύΎⳃⳂⴧჇꝫꝪffi{FFI}oO } -\tl_const:cn { c__tl_upper_6_X_0_tl } { njNJπΠὼῺῠῨⅰⅠffl{FFL}pP } -\tl_const:cn { c__tl_upper_6_X_1_tl } { ąĄũŨȱȰρΡӭӬṑṐẵẴώΏῡῩ{ⅱ}{Ⅱ}ⱡⱠⳅⳄꙁꙀꝭꝬſt{ST}qQ } -\tl_const:cn { c__tl_upper_6_X_2_tl } { ǎǍςΣῢ{Ϋ̀}{ⅲ}{Ⅲ}st{ST}rR } -\tl_const:cn { c__tl_upper_6_X_3_tl } { ćĆūŪȳȲσΣҋҊӯӮṓṒặẶΰ{Ϋ́}{ⅳ}{Ⅳ}ⳇⳆꙃꙂꝯꝮsS } -\tl_const:cn { c__tl_upper_6_X_4_tl } { ǐǏτΤᾀ{ἈΙ}ῤ{Ρ̓}ⅴⅤtT } -\tl_const:cn { c__tl_upper_6_X_5_tl } { ĉĈŭŬυΥҍҌӱӰṕṔẹẸᾁ{ἉΙ}ῥῬ{ⅵ}{Ⅵ}ⱥȺⳉⳈⴭჍꙅꙄuU } -\tl_const:cn { c__tl_upper_6_X_6_tl } { ǒǑφΦᾂ{ἊΙ}ῦ{Υ͂}{ⅶ}{Ⅶ}ⱦȾvV } -\tl_const:cn { c__tl_upper_6_X_7_tl } { ċĊůŮχΧҏҎӳӲṗṖẻẺᾃ{ἋΙ}ῧ{Ϋ͂}{ⅷ}{Ⅷ}ⳋⳊꙇꙆwW } -\tl_const:cn { c__tl_upper_6_X_8_tl } { ǔǓψΨἠἨᾄ{ἌΙ}{ⅸ}{Ⅸ}ⱨⱧxX } -\tl_const:cn { c__tl_upper_6_X_9_tl } { čČűŰωΩґҐӵӴṙṘẽẼἡἩᾅ{ἍΙ}ⅹⅩⳍⳌꙉꙈyY } -\tl_const:cn { c__tl_upper_7_X_0_tl } { ǖǕʞꞰϊΪἢἪᾆ{ἎΙ}ⅺⅪⱪⱩzZ } -\tl_const:cn { c__tl_upper_7_X_1_tl } { ďĎųŲϋΫғҒӷӶṛṚếẾἣἫᾇ{ἏΙ}ⅻⅫⳏⳎꙋꙊ } -\tl_const:cn { c__tl_upper_7_X_2_tl } { ǘǗȼȻόΌаАἤἬᾈ{ἈΙ}ⅼⅬⱬⱫ𑣀𑢠 } -\tl_const:cn { c__tl_upper_7_X_3_tl } { đĐŵŴύΎбБҕҔӹӸṝṜềỀἥἭᾉ{ἉΙ}ⅽⅭⳑⳐꙍꙌ𑣁𑢡 } -\tl_const:cn { c__tl_upper_7_X_4_tl } { ǚǙώΏвВἦἮᾊ{ἊΙ}ⅾⅮꝺꝹ𑣂𑢢 } -\tl_const:cn { c__tl_upper_7_X_5_tl } { ēĒŷŶȿⱾгГҗҖӻӺṟṞểỂἧἯᾋ{ἋΙ}ⅿⅯⳓⳒꙏꙎﬓ{ՄՆ}𑣃𑢣 } -\tl_const:cn { c__tl_upper_7_X_6_tl } { ǜǛɀⱿϐΒдДᾌ{ἌΙ}ꝼꝻﬔ{ՄԵ}𑣄𑢤 } -\tl_const:cn { c__tl_upper_7_X_7_tl } { ĕĔǝƎϑΘеЕҙҘӽӼաԱṡṠễỄᾍ{ἍΙ}ⳕⳔꙑꙐﬕ{ՄԻ}𑣅𑢥 } -\tl_const:cn { c__tl_upper_7_X_8_tl } { źŹɂɁжЖբԲᾎ{ἎΙ}ῲ{ῺΙ}ﬖ{ՎՆ}𑣆𑢦 } -\tl_const:cn { c__tl_upper_7_X_9_tl } { ėĖǟǞзЗқҚӿӾգԳṣṢệỆᾏ{ἏΙ}ῳ{ΩΙ}ⱳⱲⳗⳖꙓꙒꝿꝾﬗ{ՄԽ}𑣇𑢧 } -\tl_const:cn { c__tl_upper_8_X_0_tl } { żŻиИդԴᾐ{ἨΙ}ῴ{ΏΙ}ↄↃ𑣈𑢨 } -\tl_const:cn { c__tl_upper_8_X_1_tl } { µΜęĘǡǠͱͰϕΦйЙҝҜԁԀեԵḁḀṥṤỉỈᾑ{ἩΙ}ⳙⳘꙕꙔꞁꞀ𑣉𑢩 } -\tl_const:cn { c__tl_upper_8_X_2_tl } { žŽϖΠкКզԶᾒ{ἪΙ}ῶ{Ω͂}ⱶⱵ𑣊𑢪 } -\tl_const:cn { c__tl_upper_8_X_3_tl } { ěĚſSǣǢɇɆͳͲϗϏлЛҟҞԃԂէԷḃḂṧṦịỊᾓ{ἫΙ}ῷ{Ω͂Ι}ⳛⳚꙗꙖꞃꞂ𑣋𑢫 } -\tl_const:cn { c__tl_upper_8_X_4_tl } { ƀɃмМըԸἰἸᾔ{ἬΙ}𑣌𑢬 } -\tl_const:cn { c__tl_upper_8_X_5_tl } { ĝĜǥǤɉɈϙϘнНҡҠԅԄթԹḅḄṩṨọỌἱἹᾕ{ἭΙ}ⳝⳜꙙꙘꞅꞄ𑣍𑢭 } -\tl_const:cn { c__tl_upper_8_X_6_tl } { оОժԺἲἺᾖ{ἮΙ}𑣎𑢮 } -\tl_const:cn { c__tl_upper_8_X_7_tl } { ğĞƃƂǧǦɋɊͷͶϛϚпПңҢԇԆիԻḇḆṫṪỏỎἳἻᾗ{ἯΙ}ⳟⳞꙛꙚꜣꜢꞇꞆ𑣏𑢯 } -\tl_const:cn { c__tl_upper_8_X_8_tl } { рРլԼἴἼᾘ{ἨΙ}ῼ{ΩΙ}𑣐𑢰 } -\tl_const:cn { c__tl_upper_8_X_9_tl } { ġĠƅƄǩǨɍɌϝϜсСҥҤԉԈխԽḉḈṭṬốỐἵἽᾙ{ἩΙ}ⳡⳠꙝꙜꜥꜤ𑣑𑢱 } -\tl_const:cn { c__tl_upper_9_X_0_tl } { тТծԾἶἾᾚ{ἪΙ}𑣒𑢲 } -\tl_const:cn { c__tl_upper_9_X_1_tl } { ģĢǫǪɏɎͻϽϟϞуУҧҦԋԊկԿḋḊṯṮồỒἷἿᾛ{ἫΙ}ⳣⳢꙟꙞꜧꜦ𑣓𑢳 } -\tl_const:cn { c__tl_upper_9_X_2_tl } { ƈƇɐⱯͼϾфФհՀᾜ{ἬΙ}ꞌꞋ𑣔𑢴 } -\tl_const:cn { c__tl_upper_9_X_3_tl } { ĥĤǭǬɑⱭͽϿϡϠхХҩҨԍԌձՁḍḌṱṰổỔᾝ{ἭΙ}ⲁⲀꙡꙠꜩꜨ𑣕𑢵 } -\tl_const:cn { c__tl_upper_9_X_4_tl } { ɒⱰцЦղՂᾞ{ἮΙ}𑣖𑢶 } -\tl_const:cn { c__tl_upper_9_X_5_tl } { ħĦǯǮɓƁϣϢчЧҫҪԏԎճՃḏḎṳṲỗỖᾟ{ἯΙ}ⲃⲂꙣꙢꜫꜪ𑣗𑢷 } -\tl_const:cn { c__tl_upper_9_X_6_tl } { ƌƋǰ{J̌}ɔƆшШմՄᾠ{ὨΙ}𑣘𑢸 } -\tl_const:cn { c__tl_upper_9_X_7_tl } { aAĩĨϥϤщЩҭҬԑԐյՅḑḐṵṴộỘᾡ{ὩΙ}ⲅⲄꙥꙤꜭꜬꞑꞐ𑣙𑢹 } -\tl_const:cn { c__tl_upper_9_X_8_tl } { bBDzDZɖƉъЪնՆᾢ{ὪΙ}𑣚𑢺 } -\tl_const:cn { c__tl_upper_9_X_9_tl } { cCīĪdzDZɗƊϧϦыЫүҮԓԒշՇḓḒṷṶớỚᾣ{ὫΙ}ⲇⲆꙧꙦꜯꜮꞓꞒ𑣛𑢻 } -\tl_const:cn { c__tl_lower_0_X_0_tl } { ÈèĬĭƐɛǴǵϨϩҰұԔԕḔḕṸṹỜờⒸⓒⰤⱔⲈⲉꙨꙩ } -\tl_const:cn { c__tl_lower_0_X_1_tl } { ÉéƑƒჍⴭⒹⓓⰥⱕⳭⳮ } -\tl_const:cn { c__tl_lower_0_X_2_tl } { ÊêĮįǶƕΆάϪϫҲҳԖԗḖḗṺṻỞởⒺⓔⰦⱖⲊⲋꙪꙫꜲꜳꞖꞗ } -\tl_const:cn { c__tl_lower_0_X_3_tl } { ËëƓɠǷƿⒻⓕⰧⱗ } -\tl_const:cn { c__tl_lower_0_X_4_tl } { Ììİ{i̇}ƔɣǸǹΈέϬϭҴҵԘԙḘḙṼṽỠỡᾨᾠⒼⓖⰨⱘⲌⲍꙬꙭꜴꜵꞘꞙ } -\tl_const:cn { c__tl_lower_0_X_5_tl } { ÍíΉήᾩᾡⒽⓗⰩⱙ } -\tl_const:cn { c__tl_lower_0_X_6_tl } { Îî{IJ}{ij}ƖɩǺǻΊίϮϯҶҷԚԛḚḛṾṿỢợᾪᾢⒾⓘⰪⱚⲎⲏⳲⳳꜶꜷꞚꞛ } -\tl_const:cn { c__tl_lower_0_X_7_tl } { ÏïƗɨᾫᾣⒿⓙⰫⱛ } -\tl_const:cn { c__tl_lower_0_X_8_tl } { ÐðĴĵƘƙǼǽΌόҸҹԜԝḜḝẀẁỤụὈὀᾬᾤⓀⓚⰬⱜⲐⲑꜸꜹꞜꞝ } -\tl_const:cn { c__tl_lower_0_X_9_tl } { ÑñὉὁᾭᾥⓁⓛⰭⱝ } -\tl_const:cn { c__tl_lower_1_X_0_tl } { ÒòĶķǾǿΎύҺһԞԟḞḟẂẃỦủὊὂᾮᾦⓂⓜⰮⱞⲒⲓꜺꜻꞞꞟ } -\tl_const:cn { c__tl_lower_1_X_1_tl } { ÓóΏώὋὃᾯᾧⓃⓝ } -\tl_const:cn { c__tl_lower_1_X_2_tl } { ÔôƜɯȀȁϴθҼҽԠԡḠḡẄẅỨứὌὄⓄⓞⲔⲕꜼꜽꞠꞡ } -\tl_const:cn { c__tl_lower_1_X_3_tl } { ÕõĹĺƝɲΑαὍὅⓅⓟAa } -\tl_const:cn { c__tl_lower_1_X_4_tl } { ÖöȂȃΒβҾҿԢԣḢḣẆẇỪừⓆⓠⲖⲗꜾꜿꞢꞣBb } -\tl_const:cn { c__tl_lower_1_X_5_tl } { ĻļƟɵΓγϷϸⓇⓡCc } -\tl_const:cn { c__tl_lower_1_X_6_tl } { ØøƠơȄȅΔδӀӏԤԥḤḥẈẉỬửⓈⓢⲘⲙꝀꝁꞤꞥDd } -\tl_const:cn { c__tl_lower_1_X_7_tl } { ÙùĽľΕεϹϲӁӂⓉⓣEe } -\tl_const:cn { c__tl_lower_1_X_8_tl } { ÚúƢƣȆȇΖζϺϻԦԧḦḧẊẋỮữⓊⓤⲚⲛꝂꝃꞦꞧFf } -\tl_const:cn { c__tl_lower_1_X_9_tl } { ÛûĿŀΗηӃӄⓋⓥGg } -\tl_const:cn { c__tl_lower_2_X_0_tl } { ÜüƤƥȈȉΘθѠѡԨԩḨḩẌẍỰựᾸᾰⓌⓦⲜⲝꝄꝅꞨꞩHh } -\tl_const:cn { c__tl_lower_2_X_1_tl } { ÝýŁłΙιϽͻӅӆᾹᾱⓍⓧIi } -\tl_const:cn { c__tl_lower_2_X_2_tl } { ÞþƦʀȊȋΚκϾͼѢѣԪԫḪḫẎẏỲỳᾺὰⓎⓨⲞⲟꝆꝇꞪɦJj } -\tl_const:cn { c__tl_lower_2_X_3_tl } { ŃńƧƨΛλϿͽӇӈΆάⓏⓩꞫɜKk } -\tl_const:cn { c__tl_lower_2_X_4_tl } { ȌȍΜμЀѐѤѥԬԭḬḭẐẑỴỵᾼᾳⲠⲡꚀꚁꝈꝉꞬɡLl } -\tl_const:cn { c__tl_lower_2_X_5_tl } { ŅņƩʃΝνЁёӉӊὙὑꞭɬMm } -\tl_const:cn { c__tl_lower_2_X_6_tl } { ȎȏΞξЂђѦѧԮԯḮḯẒẓỶỷⲢⲣꚂꚃꝊꝋNn } -\tl_const:cn { c__tl_lower_2_X_7_tl } { ŇňΟοЃѓӋӌὛὓOo } -\tl_const:cn { c__tl_lower_2_X_8_tl } { ƬƭȐȑΠπЄєѨѩḰḱẔẕỸỹⲤⲥꚄꚅꝌꝍꞰʞPp } -\tl_const:cn { c__tl_lower_2_X_9_tl } { ΡρЅѕӍӎԱաὝὕꞱʇQq } -\tl_const:cn { c__tl_lower_3_X_0_tl } { ŊŋƮʈȒȓІіѪѫԲբḲḳỺỻⲦⲧꚆꚇꝎꝏRr } -\tl_const:cn { c__tl_lower_3_X_1_tl } { ƯưΣσЇїԳգὟὗSs } -\tl_const:cn { c__tl_lower_3_X_2_tl } { ŌōȔȕΤτЈјѬѭӐӑԴդḴḵỼỽⲨⲩꚈꚉꝐꝑTt } -\tl_const:cn { c__tl_lower_3_X_3_tl } { ƱʊΥυЉљԵեUu } -\tl_const:cn { c__tl_lower_3_X_4_tl } { ŎŏƲʋȖȗΦφЊњѮѯӒӓԶզḶḷỾỿⲪⲫꚊꚋꝒꝓVv } -\tl_const:cn { c__tl_lower_3_X_5_tl } { ƳƴΧχЋћԷէWw } -\tl_const:cn { c__tl_lower_3_X_6_tl } { ŐőȘșΨψЌќѰѱӔӕԸըḸḹῈὲⲬⲭꚌꚍꝔꝕXx } -\tl_const:cn { c__tl_lower_3_X_7_tl } { ƵƶΩωЍѝԹթΈέYy } -\tl_const:cn { c__tl_lower_3_X_8_tl } { ŒœȚțΪϊЎўѲѳӖӗԺժḺḻẞßῊὴⲮⲯꚎꚏꝖꝗZz } -\tl_const:cn { c__tl_lower_3_X_9_tl } { ƷʒΫϋЏџԻիΉή } -\tl_const:cn { c__tl_lower_4_X_0_tl } { ŔŕƸƹȜȝАаѴѵӘәԼլḼḽẠạὨὠῌῃⲰⲱꚐꚑꝘꝙ𑢠𑣀 } -\tl_const:cn { c__tl_lower_4_X_1_tl } { БбԽխὩὡ𑢡𑣁 } -\tl_const:cn { c__tl_lower_4_X_2_tl } { ŖŗȞȟВвѶѷӚӛԾծḾḿẢảὪὢⲲⲳꚒꚓꝚꝛ𑢢𑣂 } -\tl_const:cn { c__tl_lower_4_X_3_tl } { ГгԿկὫὣ𑢣𑣃 } -\tl_const:cn { c__tl_lower_4_X_4_tl } { ŘřƼƽȠƞДдѸѹӜӝՀհṀṁẤấἈἀὬὤⅠⅰⲴⲵꚔꚕꝜꝝ𑢤𑣄 } -\tl_const:cn { c__tl_lower_4_X_5_tl } { ЕеՁձἉἁὭὥ{Ⅱ}{ⅱ}𑢥𑣅 } -\tl_const:cn { c__tl_lower_4_X_6_tl } { ŚśȢȣЖжѺѻӞӟՂղṂṃẦầἊἂὮὦ{Ⅲ}{ⅲ}ⲶⲷꚖꚗꝞꝟ𑢦𑣆 } -\tl_const:cn { c__tl_lower_4_X_7_tl } { ЗзՃճἋἃὯὧ{Ⅳ}{ⅳ}𑢧𑣇 } -\tl_const:cn { c__tl_lower_4_X_8_tl } { ŜŝȤȥИиѼѽӠӡՄմṄṅẨẩἌἄⅤⅴⲸⲹꚘꚙꝠꝡ𑢨𑣈 } -\tl_const:cn { c__tl_lower_4_X_9_tl } { ЙйՅյἍἅ{Ⅵ}{ⅵ}𑢩𑣉 } -\tl_const:cn { c__tl_lower_5_X_0_tl } { ŞşȦȧКкѾѿӢӣՆնṆṇẪẫἎἆ{Ⅶ}{ⅶ}ⲺⲻꚚꚛꝢꝣ𑢪𑣊 } -\tl_const:cn { c__tl_lower_5_X_1_tl } { ЛлՇշἏἇ{Ⅷ}{ⅷ}𑢫𑣋 } -\tl_const:cn { c__tl_lower_5_X_2_tl } { ŠšDŽdžȨȩМмҀҁӤӥՈոṈṉẬậῘῐ{Ⅸ}{ⅸ}ⲼⲽꝤꝥ𑢬𑣌 } -\tl_const:cn { c__tl_lower_5_X_3_tl } { DždžНнՉչῙῑⅩⅹ𑢭𑣍 } -\tl_const:cn { c__tl_lower_5_X_4_tl } { ŢţȪȫОоӦӧՊպṊṋẮắῚὶⅪⅺⲾⲿꝦꝧ𑢮𑣎 } -\tl_const:cn { c__tl_lower_5_X_5_tl } { LJljПпՋջΊίⅫⅻ𑢯𑣏 } -\tl_const:cn { c__tl_lower_5_X_6_tl } { ĀāŤťLjljȬȭРрӨөՌռႠⴀṌṍẰằⅬⅼⳀⳁꝨꝩ𑢰𑣐 } -\tl_const:cn { c__tl_lower_5_X_7_tl } { СсՍսႡⴁⅭⅽ𑢱𑣑 } -\tl_const:cn { c__tl_lower_5_X_8_tl } { ĂăŦŧNJnjȮȯТтӪӫՎվႢⴂṎṏẲẳⅮⅾⳂⳃꝪꝫ𑢲𑣒 } -\tl_const:cn { c__tl_lower_5_X_9_tl } { NjnjУуՏտႣⴃⅯⅿ𑢳𑣓 } -\tl_const:cn { c__tl_lower_6_X_0_tl } { ĄąŨũȰȱФфӬӭՐրႤⴄṐṑẴẵἘἐⱠⱡⳄⳅꙀꙁꝬꝭ𐐀𐐨𑢴𑣔 } -\tl_const:cn { c__tl_lower_6_X_1_tl } { ǍǎХхՑցႥⴅἙἑ𐐁𐐩𑢵𑣕 } -\tl_const:cn { c__tl_lower_6_X_2_tl } { ĆćŪūȲȳЦцҊҋӮӯՒւႦⴆṒṓẶặἚἒⱢɫⳆⳇꙂꙃꝮꝯ𐐂𐐪𑢶𑣖 } -\tl_const:cn { c__tl_lower_6_X_3_tl } { ǏǐЧчՓփႧⴇἛἓⱣᵽ𐐃𐐫𑢷𑣗 } -\tl_const:cn { c__tl_lower_6_X_4_tl } { ĈĉŬŭШшҌҍӰӱՔքႨⴈṔṕẸẹἜἔⰀⰰⱤɽⳈⳉꙄꙅ𐐄𐐬𑢸𑣘 } -\tl_const:cn { c__tl_lower_6_X_5_tl } { AaǑǒЩщՕօႩⴉἝἕⰁⰱ𐐅𐐭𑢹𑣙 } -\tl_const:cn { c__tl_lower_6_X_6_tl } { BbĊċŮůЪъҎҏӲӳՖֆႪⴊṖṗẺẻⰂⰲⳊⳋꙆꙇ𐐆𐐮𑢺𑣚 } -\tl_const:cn { c__tl_lower_6_X_7_tl } { CcǓǔЫыႫⴋⰃⰳⱧⱨ𐐇𐐯𑢻𑣛 } -\tl_const:cn { c__tl_lower_6_X_8_tl } { DdČčŰűЬьҐґӴӵႬⴌṘṙẼẽῨῠⰄⰴⳌⳍꙈꙉ𐐈𐐰𑢼𑣜 } -\tl_const:cn { c__tl_lower_6_X_9_tl } { EeǕǖЭэႭⴍῩῡⰅⰵⱩⱪ𐐉𐐱𑢽𑣝 } -\tl_const:cn { c__tl_lower_7_X_0_tl } { FfĎďŲųȺⱥЮюҒғӶӷႮⴎṚṛẾếῪὺⰆⰶⳎⳏꙊꙋ𐐊𐐲𑢾𑣞 } -\tl_const:cn { c__tl_lower_7_X_1_tl } { GgǗǘȻȼЯяႯⴏΎύⰇⰷⱫⱬ𐐋𐐳𑢿𑣟 } -\tl_const:cn { c__tl_lower_7_X_2_tl } { HhĐđŴŵҔҕӸӹႰⴐṜṝỀềᾈᾀῬῥⰈⰸⳐⳑꙌꙍ𐐌𐐴 } -\tl_const:cn { c__tl_lower_7_X_3_tl } { IiǙǚȽƚႱⴑᾉᾁⰉⰹⱭɑꝹꝺ𐐍𐐵 } -\tl_const:cn { c__tl_lower_7_X_4_tl } { JjĒēŶŷȾⱦҖҗӺӻႲⴒṞṟỂểᾊᾂⰊⰺⱮɱⳒⳓꙎꙏ𐐎𐐶 } -\tl_const:cn { c__tl_lower_7_X_5_tl } { KkǛǜϏϗႳⴓᾋᾃⰋⰻⱯɐꝻꝼ𐐏𐐷 } -\tl_const:cn { c__tl_lower_7_X_6_tl } { LlĔĕŸÿҘҙӼӽႴⴔṠṡỄễἨἠᾌᾄⰌⰼⱰɒⳔⳕꙐꙑ𐐐𐐸 } -\tl_const:cn { c__tl_lower_7_X_7_tl } { MmŹźɁɂႵⴕἩἡᾍᾅⰍⰽꝽᵹ𐐑𐐹 } -\tl_const:cn { c__tl_lower_7_X_8_tl } { NnĖėǞǟҚқӾӿႶⴖṢṣỆệἪἢᾎᾆⰎⰾⱲⱳⳖⳗꙒꙓꝾꝿ𐐒𐐺 } -\tl_const:cn { c__tl_lower_7_X_9_tl } { OoŻżɃƀႷⴗἫἣᾏᾇↃↄⰏⰿ𐐓𐐻 } -\tl_const:cn { c__tl_lower_8_X_0_tl } { PpĘęǠǡɄʉͰͱҜҝԀԁႸⴘḀḁṤṥỈỉἬἤⰐⱀⳘⳙꙔꙕꞀꞁ𐐔𐐼 } -\tl_const:cn { c__tl_lower_8_X_1_tl } { QqŽžɅʌႹⴙἭἥⰑⱁⱵⱶ𐐕𐐽 } -\tl_const:cn { c__tl_lower_8_X_2_tl } { RrĚěǢǣɆɇͲͳҞҟԂԃႺⴚḂḃṦṧỊịἮἦⰒⱂⳚⳛꙖꙗꞂꞃ𐐖𐐾 } -\tl_const:cn { c__tl_lower_8_X_3_tl } { SsႻⴛἯἧⰓⱃ𐐗𐐿 } -\tl_const:cn { c__tl_lower_8_X_4_tl } { TtĜĝǤǥɈɉϘϙҠҡԄԅႼⴜḄḅṨṩỌọῸὸⰔⱄⳜⳝꙘꙙꞄꞅ𐐘𐑀 } -\tl_const:cn { c__tl_lower_8_X_5_tl } { UuƁɓႽⴝΌόⰕⱅ𐐙𐑁 } -\tl_const:cn { c__tl_lower_8_X_6_tl } { VvĞğƂƃǦǧɊɋͶͷϚϛҢңԆԇႾⴞḆḇṪṫỎỏῺὼΩωⰖⱆⳞⳟꙚꙛꜢꜣꞆꞇ𐐚𐑂 } -\tl_const:cn { c__tl_lower_8_X_7_tl } { WwႿⴟΏώⰗⱇ𐐛𐑃 } -\tl_const:cn { c__tl_lower_8_X_8_tl } { XxĠġƄƅǨǩɌɍϜϝҤҥԈԉჀⴠḈḉṬṭỐốᾘᾐῼῳⰘⱈⳠⳡꙜꙝꜤꜥ𐐜𐑄 } -\tl_const:cn { c__tl_lower_8_X_9_tl } { YyჁⴡᾙᾑⰙⱉ𐐝𐑅 } -\tl_const:cn { c__tl_lower_9_X_0_tl } { ZzĢģƆɔǪǫɎɏϞϟҦҧԊԋჂⴢḊḋṮṯỒồᾚᾒKkⰚⱊⱾȿⳢⳣꙞꙟꜦꜧ𐐞𐑆 } -\tl_const:cn { c__tl_lower_9_X_1_tl } { ƇƈჃⴣᾛᾓÅåⰛⱋⱿɀꞋꞌ𐐟𐑇 } -\tl_const:cn { c__tl_lower_9_X_2_tl } { ÀàĤĥǬǭϠϡҨҩԌԍჄⴤḌḍṰṱỔổἸἰᾜᾔⰜⱌⲀⲁꙠꙡꜨꜩ𐐠𐑈 } -\tl_const:cn { c__tl_lower_9_X_3_tl } { ÁáƉɖჅⴥἹἱᾝᾕⰝⱍꞍɥ𐐡𐑉 } -\tl_const:cn { c__tl_lower_9_X_4_tl } { ÂâĦħƊɗǮǯϢϣҪҫԎԏḎḏṲṳỖỗἺἲᾞᾖⰞⱎⲂⲃꙢꙣꜪꜫ𐐢𐑊 } -\tl_const:cn { c__tl_lower_9_X_5_tl } { ÃãƋƌͿϳჇⴧἻἳᾟᾗⰟⱏ𐐣𐑋 } -\tl_const:cn { c__tl_lower_9_X_6_tl } { ÄäĨĩϤϥҬҭԐԑḐḑṴṵỘộἼἴⰠⱐⲄⲅꙤꙥꜬꜭꞐꞑ𐐤𐑌 } -\tl_const:cn { c__tl_lower_9_X_7_tl } { ÅåDZdzἽἵⰡⱑ𐐥𐑍 } -\tl_const:cn { c__tl_lower_9_X_8_tl } { ÆæĪīƎǝDzdzϦϧҮүԒԓḒḓṶṷỚớἾἶℲⅎⒶⓐⰢⱒⲆⲇꙦꙧꜮꜯꞒꞓ𐐦𐑎 } -\tl_const:cn { c__tl_lower_9_X_9_tl } { ÇçƏəἿἷⒷⓑⰣⱓⳫⳬ𐐧𐑏 } -\tl_const:Nn \c__tl_mixed_exceptions_tl { {ß}{Ss}{ff}{Ff}{fi}{Fi}{fl}{Fl}{ffi}{Ffi}{ffl}{Ffl}{ſt}{St}{st}{St}{և}{Եւ}{ﬓ}{Մն}{ﬔ}{Մե}{ﬕ}{Մի}{ﬖ}{Վն}{ﬗ}{Մխ}{ᾲ}{Ὰͅ}{ᾴ}{Άͅ}{ῂ}{Ὴͅ}{ῄ}{Ήͅ}{ῲ}{Ὼͅ}{ῴ}{Ώͅ}{ᾷ}{ᾼ͂}{ῇ}{ῌ͂}{ῷ}{ῼ͂}{Dž}{Dž}{dž}{Dž}{Lj}{Lj}{lj}{Lj}{Nj}{Nj}{nj}{Nj}{Dz}{Dz}{dz}{Dz} } -\tl_const:Nn \c__tl_std_sigma_tl { σ } -\tl_const:Nn \c__tl_final_sigma_tl { ς } -\tl_const:Nn \c__tl_dotless_i_tl { ı } -\tl_const:Nn \c__tl_dot_above_tl { ̇ } -\tl_const:Nn \c__tl_dotted_I_tl { İ } -\tl_const:Nn \c__tl_accents_lt_tl {Ì{i̇̀}Í{i̇́}Ĩ{i̇̃}} -\group_begin: - \cs_set_protected:Npn \__str_tmp:NNn #1#2#3 - { - \tl_const:cx { c__str_fold_#1 _X_ #2_tl } - { \__str_tmp:Nw #3 \q_recursion_tail { } \q_recursion_stop } - } - \cs_set:Npn \__str_tmp:Nw #1#2 - { - \quark_if_recursion_tail_stop:N #1 - \tl_to_str:N #1 - \tl_if_blank:oT { \use_none:n #2 } - { \use:n } - { \tl_to_str:n {#2} } - \__str_tmp:Nw - } - \__str_tmp:NNn 0 0 { ÈèĬĭƐɛǴǵϨϩҰұԔԕḔḕṸṹỜờᾤ{ὤι}ⒸⓒⰤⱔⲈⲉꙨꙩ } - \__str_tmp:NNn 0 1 { ÉéƑƒჍⴭᾥ{ὥι}ⒹⓓⰥⱕⳭⳮ } - \__str_tmp:NNn 0 2 { ÊêĮįǶƕΆάϪϫҲҳԖԗḖḗṺṻỞởᾦ{ὦι}ⒺⓔⰦⱖⲊⲋꙪꙫꜲꜳꞖꞗ } - \__str_tmp:NNn 0 3 { ËëƓɠǷƿᾧ{ὧι}ⒻⓕⰧⱗ } - \__str_tmp:NNn 0 4 { Ììİ{i̇}ƔɣǸǹΈέϬϭҴҵԘԙḘḙṼṽỠỡᾨ{ὠι}ⒼⓖⰨⱘⲌⲍꙬꙭꜴꜵꞘꞙ } - \__str_tmp:NNn 0 5 { ÍíΉήᾩ{ὡι}ⒽⓗⰩⱙ } - \__str_tmp:NNn 0 6 { Îî{IJ}{ij}ƖɩǺǻΊίϮϯҶҷԚԛḚḛṾṿỢợᾪ{ὢι}ⒾⓘⰪⱚⲎⲏⳲⳳꜶꜷꞚꞛ } - \__str_tmp:NNn 0 7 { ÏïƗɨᾫ{ὣι}ⒿⓙⰫⱛ } - \__str_tmp:NNn 0 8 { ÐðĴĵƘƙǼǽΌόϰκҸҹԜԝḜḝẀẁỤụὈὀᾬ{ὤι}ⓀⓚⰬⱜⲐⲑꜸꜹꞜꞝ } - \__str_tmp:NNn 0 9 { ÑñϱρὉὁᾭ{ὥι}ⓁⓛⰭⱝ } - \__str_tmp:NNn 1 0 { ÒòĶķǾǿΎύҺһԞԟḞḟẂẃỦủὊὂᾮ{ὦι}ⓂⓜⰮⱞⲒⲓꜺꜻꞞꞟ } - \__str_tmp:NNn 1 1 { ÓóΏώὋὃᾯ{ὧι}Ⓝⓝ } - \__str_tmp:NNn 1 2 { ÔôƜɯȀȁΐ{ΐ}ϴθҼҽԠԡḠḡẄẅỨứὌὄⓄⓞⲔⲕꜼꜽꞠꞡ } - \__str_tmp:NNn 1 3 { ÕõĹĺƝɲΑαϵεὍὅⓅⓟAa } - \__str_tmp:NNn 1 4 { ÖöȂȃΒβҾҿԢԣḢḣẆẇỪừᾲ{ὰι}ⓆⓠⲖⲗꜾꜿꞢꞣBb } - \__str_tmp:NNn 1 5 { ĻļƟɵΓγϷϸ{և}{եւ}ᾳ{αι}ⓇⓡCc } - \__str_tmp:NNn 1 6 { ØøƠơȄȅΔδӀӏԤԥḤḥẈẉỬửὐ{ὐ}ᾴ{άι}ⓈⓢⲘⲙꝀꝁꞤꞥDd } - \__str_tmp:NNn 1 7 { ÙùĽľΕεϹϲӁӂⓉⓣEe } - \__str_tmp:NNn 1 8 { ÚúƢƣȆȇΖζϺϻԦԧḦḧẊẋỮữὒ{ὒ}ᾶ{ᾶ}ⓊⓤⲚⲛꝂꝃꞦꞧFf } - \__str_tmp:NNn 1 9 { Ûû{Ŀ}{ŀ}ΗηӃӄᾷ{ᾶι}ⓋⓥGg } - \__str_tmp:NNn 2 0 { ÜüƤƥȈȉΘθѠѡԨԩḨḩẌẍỰựὔ{ὔ}ᾸᾰⓌⓦⲜⲝꝄꝅꞨꞩHh } - \__str_tmp:NNn 2 1 { ÝýŁłΙιϽͻӅӆᾹᾱⓍⓧIi } - \__str_tmp:NNn 2 2 { ÞþƦʀȊȋΚκϾͼѢѣԪԫḪḫẎẏỲỳὖ{ὖ}ᾺὰⓎⓨⲞⲟꝆꝇꞪɦJj } - \__str_tmp:NNn 2 3 { ß{ss}ŃńƧƨΛλϿͽӇӈΆάⓏⓩꞫɜKk } - \__str_tmp:NNn 2 4 { ȌȍΜμЀѐѤѥԬԭḬḭẐẑỴỵᾼ{αι}ⲠⲡꚀꚁꝈꝉꞬɡLl } - \__str_tmp:NNn 2 5 { ŅņƩʃΝνЁёӉӊὙὑꞭɬMm } - \__str_tmp:NNn 2 6 { ȎȏΞξЂђѦѧԮԯḮḯẒẓỶỷιιⲢⲣꚂꚃꝊꝋNn } - \__str_tmp:NNn 2 7 { ŇňΟοЃѓӋӌὛὓOo } - \__str_tmp:NNn 2 8 { ƬƭȐȑΠπЄєѨѩḰḱẔẕỸỹⲤⲥꚄꚅꝌꝍꞰʞPp } - \__str_tmp:NNn 2 9 { {ʼn}{ʼn}ΡρЅѕӍӎԱաὝὕꞱʇQq } - \__str_tmp:NNn 3 0 { ŊŋƮʈȒȓІіѪѫԲբḲḳẖ{ẖ}Ỻỻῂ{ὴι}ⲦⲧꚆꚇꝎꝏRr } - \__str_tmp:NNn 3 1 { ƯưΣσЇїԳգẗ{ẗ}Ὗὗῃ{ηι}Ss } - \__str_tmp:NNn 3 2 { ŌōȔȕΤτЈјѬѭӐӑԴդḴḵẘ{ẘ}Ỽỽῄ{ήι}ⲨⲩꚈꚉꝐꝑTt } - \__str_tmp:NNn 3 3 { ƱʊΥυЉљԵեẙ{ẙ}Uu } - \__str_tmp:NNn 3 4 { ŎŏƲʋȖȗΦφЊњѮѯӒӓԶզḶḷ{ẚ}{aʾ}Ỿỿῆ{ῆ}ⲪⲫꚊꚋꝒꝓVv } - \__str_tmp:NNn 3 5 { ƳƴΧχЋћԷէẛṡῇ{ῆι}Ww } - \__str_tmp:NNn 3 6 { ŐőȘșΨψЌќѰѱӔӕԸըḸḹῈὲⲬⲭꚌꚍꝔꝕXx } - \__str_tmp:NNn 3 7 { ƵƶͅιΩωЍѝԹթΈέYy } - \__str_tmp:NNn 3 8 { ŒœȚțΪϊЎўѲѳӖӗԺժḺḻẞ{ss}ῊὴⲮⲯꚎꚏꝖꝗZz } - \__str_tmp:NNn 3 9 { ƷʒΫϋЏџԻիΉή } - \__str_tmp:NNn 4 0 { ŔŕƸƹȜȝАаѴѵӘәԼլḼḽẠạὨὠῌ{ηι}ⲰⲱꚐꚑꝘꝙ𑢠𑣀 } - \__str_tmp:NNn 4 1 { БбԽխὩὡ𑢡𑣁 } - \__str_tmp:NNn 4 2 { ŖŗȞȟВвѶѷӚӛԾծḾḿẢảὪὢⲲⲳꚒꚓꝚꝛ𑢢𑣂 } - \__str_tmp:NNn 4 3 { ГгԿկὫὣ𑢣𑣃 } - \__str_tmp:NNn 4 4 { ŘřƼƽȠƞΰ{ΰ}ДдѸѹӜӝՀհṀṁẤấἈἀὬὤⅠⅰⲴⲵꚔꚕꝜꝝ𑢤𑣄 } - \__str_tmp:NNn 4 5 { ЕеՁձἉἁὭὥ{Ⅱ}{ⅱ}𑢥𑣅 } - \__str_tmp:NNn 4 6 { ŚśȢȣЖжѺѻӞӟՂղṂṃẦầἊἂὮὦῒ{ῒ}{Ⅲ}{ⅲ}ⲶⲷꚖꚗꝞꝟ𑢦𑣆 } - \__str_tmp:NNn 4 7 { ЗзՃճἋἃὯὧΐ{ΐ}{Ⅳ}{ⅳ}𑢧𑣇 } - \__str_tmp:NNn 4 8 { ŜŝȤȥИиѼѽӠӡՄմṄṅẨẩἌἄⅤⅴⲸⲹꚘꚙꝠꝡ𑢨𑣈 } - \__str_tmp:NNn 4 9 { ЙйՅյἍἅ{Ⅵ}{ⅵ}𑢩𑣉 } - \__str_tmp:NNn 5 0 { ŞşȦȧКкѾѿӢӣՆնṆṇẪẫἎἆῖ{ῖ}{Ⅶ}{ⅶ}ⲺⲻꚚꚛꝢꝣ𑢪𑣊 } - \__str_tmp:NNn 5 1 { ЛлՇշἏἇῗ{ῗ}{Ⅷ}{ⅷ}𑢫𑣋 } - \__str_tmp:NNn 5 2 { Šš{DŽ}{dž}ȨȩМмҀҁӤӥՈոṈṉẬậῘῐ{Ⅸ}{ⅸ}ⲼⲽꝤꝥ𑢬𑣌 } - \__str_tmp:NNn 5 3 { {Dž}{dž}НнՉչῙῑⅩⅹ𑢭𑣍 } - \__str_tmp:NNn 5 4 { ŢţȪȫОоӦӧՊպṊṋẮắῚὶ{Ⅺ}{ⅺ}ⲾⲿꝦꝧ𑢮𑣎 } - \__str_tmp:NNn 5 5 { {LJ}{lj}ПпՋջΊί{Ⅻ}{ⅻ}𑢯𑣏 } - \__str_tmp:NNn 5 6 { ĀāŤť{Lj}{lj}ȬȭРрӨөՌռႠⴀṌṍẰằⅬⅼⳀⳁꝨꝩ{ff}{ff}𑢰𑣐 } - \__str_tmp:NNn 5 7 { СсՍսႡⴁⅭⅽ{fi}{fi}𑢱𑣑 } - \__str_tmp:NNn 5 8 { ĂăŦŧ{NJ}{nj}ȮȯТтӪӫՎվႢⴂṎṏẲẳⅮⅾⳂⳃꝪꝫ{fl}{fl}𑢲𑣒 } - \__str_tmp:NNn 5 9 { {Nj}{nj}УуՏտႣⴃⅯⅿ{ffi}{ffi}𑢳𑣓 } - \__str_tmp:NNn 6 0 { ĄąŨũȰȱФфӬӭՐրႤⴄṐṑẴẵἘἐⱠⱡⳄⳅꙀꙁꝬꝭ{ffl}{ffl}𐐀𐐨𑢴𑣔 } - \__str_tmp:NNn 6 1 { ǍǎХхՑցႥⴅἙἑ{ſt}{st}𐐁𐐩𑢵𑣕 } - \__str_tmp:NNn 6 2 { ĆćŪūȲȳςσЦцҊҋӮӯՒւႦⴆṒṓẶặἚἒῢ{ῢ}ⱢɫⳆⳇꙂꙃꝮꝯ{st}{st}𐐂𐐪𑢶𑣖 } - \__str_tmp:NNn 6 3 { ǏǐЧчՓփႧⴇἛἓΰ{ΰ}Ᵽᵽ𐐃𐐫𑢷𑣗 } - \__str_tmp:NNn 6 4 { ĈĉŬŭШшҌҍӰӱՔքႨⴈṔṕẸẹἜἔᾀ{ἀι}ῤ{ῤ}ⰀⰰⱤɽⳈⳉꙄꙅ𐐄𐐬𑢸𑣘 } - \__str_tmp:NNn 6 5 { AaǑǒЩщՕօႩⴉἝἕᾁ{ἁι}Ⰱⰱ𐐅𐐭𑢹𑣙 } - \__str_tmp:NNn 6 6 { BbĊċŮůЪъҎҏӲӳՖֆႪⴊṖṗẺẻᾂ{ἂι}ῦ{ῦ}ⰂⰲⳊⳋꙆꙇ𐐆𐐮𑢺𑣚 } - \__str_tmp:NNn 6 7 { CcǓǔЫыႫⴋᾃ{ἃι}ῧ{ῧ}ⰃⰳⱧⱨ𐐇𐐯𑢻𑣛 } - \__str_tmp:NNn 6 8 { DdČčŰűЬьҐґӴӵႬⴌṘṙẼẽᾄ{ἄι}ῨῠⰄⰴⳌⳍꙈꙉ𐐈𐐰𑢼𑣜 } - \__str_tmp:NNn 6 9 { EeǕǖЭэႭⴍᾅ{ἅι}ῩῡⰅⰵⱩⱪ𐐉𐐱𑢽𑣝 } - \__str_tmp:NNn 7 0 { FfĎďŲųȺⱥЮюҒғӶӷႮⴎṚṛẾếᾆ{ἆι}ῪὺⰆⰶⳎⳏꙊꙋ𐐊𐐲𑢾𑣞 } - \__str_tmp:NNn 7 1 { GgǗǘȻȼЯяႯⴏᾇ{ἇι}ΎύⰇⰷⱫⱬ𐐋𐐳𑢿𑣟 } - \__str_tmp:NNn 7 2 { HhĐđŴŵҔҕӸӹႰⴐṜṝỀềᾈ{ἀι}ῬῥⰈⰸⳐⳑꙌꙍ𐐌𐐴 } - \__str_tmp:NNn 7 3 { IiǙǚȽƚႱⴑᾉ{ἁι}ⰉⰹⱭɑꝹꝺ𐐍𐐵 } - \__str_tmp:NNn 7 4 { JjĒēŶŷȾⱦҖҗӺӻႲⴒṞṟỂểᾊ{ἂι}ⰊⰺⱮɱⳒⳓꙎꙏ𐐎𐐶 } - \__str_tmp:NNn 7 5 { KkǛǜϏϗႳⴓᾋ{ἃι}ⰋⰻⱯɐꝻꝼ{ﬓ}{մն}𐐏𐐷 } - \__str_tmp:NNn 7 6 { LlĔĕŸÿϐβҘҙӼӽႴⴔṠṡỄễἨἠᾌ{ἄι}ⰌⰼⱰɒⳔⳕꙐꙑ{ﬔ}{մե}𐐐𐐸 } - \__str_tmp:NNn 7 7 { MmŹźɁɂϑθႵⴕἩἡᾍ{ἅι}ⰍⰽꝽᵹ{ﬕ}{մի}𐐑𐐹 } - \__str_tmp:NNn 7 8 { NnĖėǞǟҚқӾӿႶⴖṢṣỆệἪἢᾎ{ἆι}ῲ{ὼι}ⰎⰾⱲⱳⳖⳗꙒꙓꝾꝿ{ﬖ}{վն}𐐒𐐺 } - \__str_tmp:NNn 7 9 { OoŻżɃƀႷⴗἫἣᾏ{ἇι}ῳ{ωι}ↃↄⰏⰿ{ﬗ}{մխ}𐐓𐐻 } - \__str_tmp:NNn 8 0 { PpĘęǠǡɄʉͰͱҜҝԀԁႸⴘḀḁṤṥỈỉἬἤᾐ{ἠι}ῴ{ώι}ⰐⱀⳘⳙꙔꙕꞀꞁ𐐔𐐼 } - \__str_tmp:NNn 8 1 { QqµμŽžɅʌϕφႹⴙἭἥᾑ{ἡι}ⰑⱁⱵⱶ𐐕𐐽 } - \__str_tmp:NNn 8 2 { RrĚěǢǣɆɇͲͳϖπҞҟԂԃႺⴚḂḃṦṧỊịἮἦᾒ{ἢι}ῶ{ῶ}ⰒⱂⳚⳛꙖꙗꞂꞃ𐐖𐐾 } - \__str_tmp:NNn 8 3 { SsſsႻⴛἯἧᾓ{ἣι}ῷ{ῶι}Ⱃⱃ𐐗𐐿 } - \__str_tmp:NNn 8 4 { TtĜĝǤǥɈɉϘϙҠҡԄԅႼⴜḄḅṨṩỌọᾔ{ἤι}ῸὸⰔⱄⳜⳝꙘꙙꞄꞅ𐐘𐑀 } - \__str_tmp:NNn 8 5 { UuƁɓႽⴝᾕ{ἥι}ΌόⰕⱅ𐐙𐑁 } - \__str_tmp:NNn 8 6 { VvĞğƂƃǦǧɊɋͶͷϚϛҢңԆԇႾⴞḆḇṪṫỎỏᾖ{ἦι}ῺὼΩωⰖⱆⳞⳟꙚꙛꜢꜣꞆꞇ𐐚𐑂 } - \__str_tmp:NNn 8 7 { WwႿⴟᾗ{ἧι}ΏώⰗⱇ𐐛𐑃 } - \__str_tmp:NNn 8 8 { XxĠġƄƅǨǩɌɍϜϝҤҥԈԉჀⴠḈḉṬṭỐốᾘ{ἠι}ῼ{ωι}ⰘⱈⳠⳡꙜꙝꜤꜥ𐐜𐑄 } - \__str_tmp:NNn 8 9 { YyჁⴡᾙ{ἡι}Ⱉⱉ𐐝𐑅 } - \__str_tmp:NNn 9 0 { ZzĢģƆɔǪǫɎɏϞϟҦҧԊԋჂⴢḊḋṮṯỒồᾚ{ἢι}KkⰚⱊⱾȿⳢⳣꙞꙟꜦꜧ𐐞𐑆 } - \__str_tmp:NNn 9 1 { ƇƈჃⴣᾛ{ἣι}ÅåⰛⱋⱿɀꞋꞌ𐐟𐑇 } - \__str_tmp:NNn 9 2 { ÀàĤĥǬǭϠϡҨҩԌԍჄⴤḌḍṰṱỔổἸἰᾜ{ἤι}ⰜⱌⲀⲁꙠꙡꜨꜩ𐐠𐑈 } - \__str_tmp:NNn 9 3 { ÁáƉɖჅⴥἹἱᾝ{ἥι}ⰝⱍꞍɥ𐐡𐑉 } - \__str_tmp:NNn 9 4 { ÂâĦħƊɗǮǯϢϣҪҫԎԏḎḏṲṳỖỗἺἲᾞ{ἦι}ⰞⱎⲂⲃꙢꙣꜪꜫ𐐢𐑊 } - \__str_tmp:NNn 9 5 { ÃãƋƌͿϳჇⴧἻἳᾟ{ἧι}Ⱏⱏ𐐣𐑋 } - \__str_tmp:NNn 9 6 { ÄäĨĩǰ{ǰ}ϤϥҬҭԐԑḐḑṴṵỘộἼἴᾠ{ὠι}ⰠⱐⲄⲅꙤꙥꜬꜭꞐꞑ𐐤𐑌 } - \__str_tmp:NNn 9 7 { Åå{DZ}{dz}Ἵἵᾡ{ὡι}Ⱑⱑ𐐥𐑍 } - \__str_tmp:NNn 9 8 { ÆæĪīƎǝ{Dz}{dz}ϦϧҮүԒԓḒḓṶṷỚớἾἶᾢ{ὢι}ℲⅎⒶⓐⰢⱒⲆⲇꙦꙧꜮꜯꞒꞓ𐐦𐑎 } - \__str_tmp:NNn 9 9 { ÇçƏəἿἷᾣ{ὣι}ⒷⓑⰣⱓⳫⳬ𐐧𐑏 } -\group_end: diff --git a/Master/texmf-dist/source/latex/l3kernel/ltunicode.dtx b/Master/texmf-dist/source/latex/l3kernel/ltunicode.dtx new file mode 100644 index 00000000000..7dd0591d4b6 --- /dev/null +++ b/Master/texmf-dist/source/latex/l3kernel/ltunicode.dtx @@ -0,0 +1,669 @@ +% \iffalse meta-comment +% +% Copyright 2014-2015 +% The LaTeX3 Project and any individual authors listed elsewhere +% in this file. +% +% This file is part of the LaTeX base system. +% ------------------------------------------- +% +% It may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3c +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. +% +% This file has the LPPL maintenance status "maintained". +% +% The list of all files belonging to the LaTeX base distribution is +% given in the file `manifest.txt'. See also `legal.txt' for additional +% information. +% +% The list of derived (unpacked) files belonging to the distribution +% and covered by LPPL is defined by the unpacking scripts (with +% extension .ins) which are part of the distribution. +% +% ----------------------------------------------------------------------------- +% +% The same approach as used in \pkg{DocStrip}: if \cs{documentclass} +% is undefined then skip the driver, allowing the file to be used directly. +% This works as the \cs{fi} is only seen if \LaTeX{} is not in use. The odd +% \cs{jobname} business allows the extraction to work with \LaTeX{} provided +% an appropriate \texttt{.ins} file is set up. +%<*gobble> +\ifx\jobname\relax + \let\documentclass\undefined +\fi +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname documentclass\endcsname\relax +\else + \csname fi\endcsname +% +% +%<*driver> +\ProvidesFile{ltunicode.dtx} + [2015/01/01 v1.0 LaTeX Kernel (Unicode data)] +\documentclass{ltxdoc} +\begin{document} +\DocInput{\jobname.dtx} +\end{document} +%<*gobble> +\fi +% +% +% \fi +% +% \GetFileInfo{ltunicode.dtx} +% \title{The \texttt{ltunicode.dtx} file\thanks +% {This file has version number \fileversion, dated \filedate.}\\ +% for use with \LaTeXe} +% \author{The \LaTeX3 Project} +% +% \maketitle +% +% This script extracts data from the Unicode Consortium files +% \texttt{UnicodeData.txt}, \texttt{EastAsianWidth.txt} and +% \texttt{LineBreak.txt} to be used for setting up \LaTeXe{} with sane +% default settings when using the Xe\TeX{} and Lua\TeX{} engines. Details +% of the process are included in the code comments. +% +% To create the extracted file, run this file in a location containing +% the three input data files using a plain \TeX{} system with the e-\TeX{} +% extensions enabled (\texttt{pdftex}, \texttt{xetex} or \texttt{luatex} +% in any modern \TeX{} distribution). +% +% \StopEventually{} +% +% \begin{macrocode} +%<*script> +% \end{macrocode} +% +% \section{General set up} +% +% The script is designed to work with plain \TeX{} and so |@| is made into +% a `letter' using the primitive approach. +% \begin{macrocode} +\catcode`\@=11 % +% \end{macrocode} +% +% \begin{macro}{\gobble} +% \begin{macro}{\firsttoken} +% Standard utilities. +% \begin{macrocode} +\long\def\gobble#1{} +\long\def\firsttoken#1#2\relax{#1} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\storedpar} +% A simple piece of test set up: the final line of the read file will be +% tokenized by \TeX{} as \cs{par} which can be tested by \cs{ifx} provided +% we have an equivalent available. +% \begin{macrocode} +\def\storedpar{\par} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\return} +% A stored |^^M| for string comparisons. +% \begin{macrocode} +\begingroup + \catcode`\^^M=12 % + \gdef\return{^^M}% +\endgroup% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\sourceforhex} +% \begin{macro}{\sethex} +% \begin{macro}{\dohex} +% \begin{macro}{\hexdigit} +% Some parts of the code here will need to be able to convert integers +% to their hexadecimal equivalent. That is easiest to do for the requirements +% here using a modified version of some code from Appendix~D of \emph{The +% \TeX{}book}. +% \begin{macrocode} +\newcount\sourceforhex +\def\sethex#1#2{% + \def#1{}% + \sourceforhex=#2\relax + \ifnum\sourceforhex=0 % + \def#1{0}% + \else + \dohex#1% + \fi +} +\def\dohex#1{% + \begingroup + \count0=\sourceforhex + \divide\sourceforhex by 16 % + \ifnum\sourceforhex>0 % + \dohex#1% + \fi + \count2=\sourceforhex + \multiply\count2 by -16 % + \advance\count0 by\count2 + \hexdigit#1% + \expandafter\endgroup + \expandafter\def\expandafter#1\expandafter{#1}% +} +\def\hexdigit#1{% + \ifnum\count0<10 % + \edef#1{#1\number\count0}% + \else + \advance\count0 by -10 % + \edef#1{#1\ifcase\count0 A\or B\or C\or D\or E\or F\fi}% + \fi +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\unicoderead, \unicodewrite} +% Set up the streams for data. +% \begin{macrocode} +\newread\unicoderead +\newwrite\unicodewrite +% \end{macrocode} +% \end{macro} +% +% \section{Verbatim copying} +% +% \begin{macro}{\verbatimcopy} +% \begin{macro}{\endverbatimcopy} +% \begin{macro}{\verbatimcopy@auxii} +% \begin{macro}{\verbatimcopy@auxii} +% \begin{macro}{\verbatim@endmarker} +% Set up to read some material verbatim and write it to the output stream. +% There needs to be a dedicated `clean up first line' macro, but other than +% that life is simple enough. +% \begin{macrocode} +\begingroup + \catcode`\^^M=12 % + \gdef\verbatimcopy{% + \begingroup% + \catcode`\^^M=12 % + \catcode`\\=12 % + \catcode`\{=12 % + \catcode`\}=12 % + \catcode`\#=12 % + \catcode`\%=12 % + \catcode`\ =12 % + \endlinechar=`\^^M % + \verbatimcopy@auxi + }% + \gdef\verbatimcopy@auxi#1^^M{% + \expandafter\verbatimcopy@auxii\gobble#1^^M% + }% + \gdef\verbatimcopy@auxii#1^^M{% + \def\temp{#1}% + \ifx\temp\verbatim@endmarker% + \expandafter\endgroup% + \else% + \ifx\temp\empty\else% + \immediate\write\unicodewrite{#1}% + \fi% + \expandafter\verbatimcopy@auxii% + \fi% + }% +\endgroup% +\edef\verbatim@endmarker{\expandafter\gobble\string\\} +\edef\verbatim@endmarker{\verbatim@endmarker endverbatimcopy} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \section{File header section} +% +% With the mechanisms set up, open the data file for writing. +% \begin{macrocode} +\immediate\openout\unicodewrite=ltunicode.ltx % +% \end{macrocode} +% There are various lines that now need to go at the start of the file. +% First, there is some header information. +% \begin{macrocode} +\verbatimcopy +%% This is the file `ltunicode.ltx', +%% generated using the script ltunicode.dtx. +%% +%% The data here are derived from the files +%% - UnicodeData.txt +%% which are maintained by the Unicode Consortium. +%% +%% Copyright 2014 +%% The LaTeX3 Project and any individual authors listed elsewhere +%% in this file. +%% +%% This file is part of the LaTeX base system. +%% ------------------------------------------- +%% +%% It may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This file has the LPPL maintenance status "maintained". +%% +%% The list of all files belonging to the LaTeX base distribution is +%% given in the file `manifest.txt'. See also `legal.txt' for additional +%% information. +\endverbatimcopy +% \end{macrocode} +% Automatically include the current date. +% \begin{macrocode} +\immediate\write\unicodewrite{% + \expandafter\gobble\string\%\expandafter\gobble\string\% + Generated on \the\year-\the\month-\the\day. +} +\immediate\write\unicodewrite{% + \expandafter\gobble\string\%\expandafter\gobble\string\% +} +% \end{macrocode} +% +% \section{Unicode character data} +% +% \begin{macro}{\parseunicodedata} +% \begin{macro}{\parseunicodedata@auxi} +% \begin{macro}{\parseunicodedata@auxii} +% \begin{macro}{\parseunicodedata@auxiii} +% The first step of parsing a line of data is to check that it's not come +% from a blank in the source, which will have been tokenized as \cs{par}. +% Assuming that is not the case, there are lots of data items separated by +% |;|. Of those, only a few are needed so they are picked out and everything +% else is dropped. +% \begin{macrocode} +\def\parseunicodedata#1{% + \ifx#1\storedpar + \else + \expandafter\parseunicodedata@auxi#1\relax + \fi +} +\def\parseunicodedata@auxi#1;#2;#3;#4;#5;#6;#7;#8;#9;{% + \parseunicodedata@auxii#1;#3; +} +\def\parseunicodedata@auxii#1;#2;#3;#4;#5;#6;#7;#8\relax{% + \parseunicodedata@auxiii{#1}{#2}{#6}{#7}% +} +% \end{macrocode} +% At this stage we have only four pieces of data +% \begin{enumerate} +% \item The code value +% \item The general class +% \item The uppercase mapping +% \item The lowercase mapping +% \end{enumerate} +% where both one or both of the last two may be empty. Everything here could +% be done in a single conditional within a \cs{write}, but that would be +% tricky to follow. Instead, a series of defined auxiliaries are used to +% show the flow. Notice that combining marks are treated as letters here +% (the second `letter' test). +% \begin{macrocode} +\def\parseunicodedata@auxiii#1#2#3#4{% + \if L\firsttoken#2?\relax + \expandafter\unicodeletter + \else + \if M\firsttoken#2?\relax + \expandafter\expandafter\expandafter\unicodeletter + \else + \expandafter\expandafter\expandafter\unicodenonletter + \fi + \fi + {#1}{#3}{#4}% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\unicodeletter, \unicodenonletter} +% \begin{macro}{\writeunicodedata} +% For `letters', we always want to write the data to file, and the only +% question here is if the character has case mappings or these point back +% to the character itself. +% \begin{macrocode} +\def\unicodeletter#1#2#3{% + \writeunicodedata\L{#1}{#2}{#3}% +} +% \end{macrocode} +% Cased non-letters can also exist: they can be detected as they have at +% least one case mapping. Write these in much the same way as letters. +% \begin{macrocode} +\def\unicodenonletter#1#2#3{% + \ifx\relax#2#3\relax + \else + \writeunicodedata\C{#1}{#2}{#3}% + \fi +} +% \end{macrocode} +% Actually write the data. In all cases both upper- and lower-case mappings +% are given, so there is a need to test that both were actually available and +% if not set up to do nothing. +% \begin{macrocode} +\def\writeunicodedata#1#2#3#4{% + \immediate\write\unicodewrite{% + \space\space + \string#1\space + #2 % + \ifx\relax#3\relax + #2 % + \else + #3 % + \fi + \ifx\relax#4\relax + #2 % + \else + #4 % + \fi + \expandafter\gobble\string\% + }% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% There is now a lead-in section which creates the macros which take the +% processed data and do the code assignments. Everything is done within a +% group so that there is no need to worry about names. +% \begin{macrocode} +\verbatimcopy +\begingroup +\endverbatimcopy +% \end{macrocode} +% Cased non-letters simply need to have the case mappings set. +% For letters, there are a few things to sort out. First, the case mappings are +% defined as for non-letters. Category code is then set to $11$ before a check +% to see if this is an upper case letter. If it is then the \cs{sfcode} is set +% to $999$. Finally there is a need to deal with Unicode math codes, where base +% plane letters are class $7$ but supplementary plane letters are class~$1$. +% Older versions of Xe\TeX{} used a different name here: easy to pick up as +% we know that this primitive must be defined in some way. There is also an issue +% with the supplementary plane and older Xe\TeX{} versions, which is dealt with +% using a check at run time. +% \begin{macrocode} +\verbatimcopy + \def\C#1 #2 #3 {% + \XeTeXcheck{#1}% + \global\uccode"#1="#2 % + \global\lccode"#1="#3 % + } + \def\L#1 #2 #3 {% + \C #1 #2 #3 % + \catcode"#1=11 % + \ifnum"#1="#3 % + \else + \global\sfcode"#1=999 % + \fi + \ifnum"#1<"10000 % + \global\Umathcode"#1="7"01"#1 % + \else + \global\Umathcode"#1="0"01"#1 % + \fi + } + \ifx\Umathcode\undefined + \let\Umathcode\XeTeXmathcode + \fi + \def\XeTeXcheck#1{} + \ifx\XeTeXversion\undefined + \else + \def\XeTeXcheck.#1.#2-#3\relax{#1} + \ifnum\expandafter\XeTeXcheck\XeTeXrevision.-\relax>996 % + \def\XeTeXcheck#1{} + \else + \def\XeTeXcheck#1{% + \ifnum"#1>"FFFF % + \long\def\XeTeXcheck##1\endgroup{\endgroup} + \expandafter\XeTeXcheck + \fi + } + \fi + \fi +\endverbatimcopy +% \end{macrocode} +% Read the data and write the resulting code assignments to the file. +% \begin{macrocode} +\openin\unicoderead=UnicodeData.txt % +\ifeof\unicoderead + \errmessage{Data file missing: UnicodeData.txt}% +\fi +\loop\unless\ifeof\unicoderead + \read\unicoderead to \unicodedataline + \parseunicodedata\unicodedataline +\repeat +% \end{macrocode} +% End the group for setting character codes and assign a couple of special +% cases. +% \begin{macrocode} +\verbatimcopy +\endgroup +\global\sfcode"2019=0 % +\global\sfcode"201D=0 % +\endverbatimcopy +% \end{macrocode} +% Lua\TeX{} and older versions of Xe\TeX{} stop here: character classes are a +% Xe\TeX{}-only concept. +% \begin{macrocode} +\verbatimcopy +\ifx\XeTeXcharclass\@undefined + \expandafter\endinput +\fi +\endverbatimcopy +% \end{macrocode} +% +% \section{Xe\TeX{} Character classes} +% +% The Xe\TeX{} engine includes the concept of character classes, which allow +% insertion of tokens into the input stream at defined boundaries. Setting +% up this data requires a two-part process as the information is split over +% two input files. +% +% \begin{macro}{\parseunicodedata} +% \begin{macro}{\parseunicodedata@auxi} +% \begin{macro}{\parseunicodedata@auxii} +% The parsing system is redefined to parse a detokenized input line which +% may be a comment starting with |#|. Assuming that is not the case, the +% data line with start with a code point potentially forming part of a range. +% The range is extracted and the width stored for each code point. +% \begin{macrocode} +\def\parseunicodedata#1{% + \ifx#1\return + \else + \wlog{#1}% + \if\expandafter\gobble\string\#\expandafter\firsttoken#1?\relax + \else + \expandafter\parseunicodedata@auxi#1\relax + \fi + \fi +} +\def\parseunicodedata@auxi#1;#2 #3\relax{% + \parseunicodedata@auxii#1....\relax{#2}% +} +\def\parseunicodedata@auxii#1..#2..#3\relax#4{% + \expandafter\gdef\csname EAW@#1\endcsname{#4}% + \ifx\relax#2\relax + \else + \count@="#1 % + \begingroup + \loop + \ifnum\count@<"#2 % + \advance\count@\@ne + \sethex\temp{\count@}% + \expandafter\gdef\csname EAW@\temp\endcsname{#4}% + \repeat + \endgroup + \fi +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% With the right parser in place, read the data file. +% \begin{macrocode} +\openin\unicoderead=EastAsianWidth.txt % +\ifeof\unicoderead + \errmessage{Data file missing: EastAsianWidth.txt}% +\fi +\loop\unless\ifeof\unicoderead + \readline\unicoderead to \unicodedataline + \parseunicodedata\unicodedataline +\repeat +% \end{macrocode} +% +% \begin{macro}{\parseunicodedata@auxii} +% \begin{macro}{\parseunicodedata@auxiii} +% \begin{macro}{\parseunicodedata@auxiv} +% \begin{macro}{\ID} +% \begin{macro}{\OP} +% \begin{macro}{\CL} +% \begin{macro}{\EX} +% \begin{macro}{\IS} +% \begin{macro}{\NS} +% \begin{macro}{\CM} +% The final file to read, |LineBreaking.txt|, uses the same format as +% |EastAsianWidth.txt|. As such, only the final parts of the parser have to be +% redefined. +% \begin{macrocode} +\def\parseunicodedata@auxii#1..#2..#3\relax#4{% + \parseunicodedata@auxiii{#1}{#4}% + \ifx\relax#2\relax + \else + \count@="#1 % + \begingroup + \loop + \ifnum\count@<"#2 % + \advance\count@\@ne + \sethex\temp{\count@}% + \expandafter\parseunicodedata@auxiii\expandafter{\temp}{#4}% + \repeat + \endgroup + \fi +} +% \end{macrocode} +% Adding data to the processed file depends on two factors: the +% classification in the line-breaking file and (possibly) the width data +% too. Any characters of class \texttt{ID} (ideograph) are stored: they +% always need special treatment. For characters of classes \texttt{OP} +% (opener), \texttt{CL} (closer), \texttt{EX} (exclamation), \texttt{IS} +% (infix sep) and \texttt{NS} (non-starter) the data is stored if the +% character is full, half or wide width. The same is true for +% \texttt{CM} (combining marks) characters, which need to be transparent +% to the mechanism. +% \begin{macrocode} +\def\parseunicodedata@auxiii#1#2{% + \ifcsname #2\endcsname + \ifnum\csname #2\endcsname=1 % + \parseunicodedata@auxiv{#1}{#2}% + \else + \ifnum 0% + \if F\csname EAW@#1\endcsname 1\fi + \if H\csname EAW@#1\endcsname 1\fi + \if W\csname EAW@#1\endcsname 1\fi + >0 % + \parseunicodedata@auxiv{#1}{#2}% + \fi + \fi + \fi +} +\def\parseunicodedata@auxiv#1#2{% + \immediate\write\unicodewrite{% + \space\space + \expandafter\string\csname #2\endcsname + \space + #1 % + \expandafter\gobble\string\% + }% +} +\def\ID{1} +\def\OP{2} +\def\CL{3} +\let\EX\CL +\let\IS\CL +\let\NS\CL +\def\CM{256} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% Before actually reading the line breaking data file, the appropriate +% temporary code is added to the output. As described above, only a limited +% number of classes need to be covered: they are hard-coded as classes +% $1$, $2$ and $3$ following the convention adopted by plain Xe\TeX{}. +% \begin{macrocode} +\verbatimcopy +\begingroup + \def\ID#1 {\global\XeTeXcharclass"#1=1 \global\catcode"#1=11 } + \def\OP#1 {\global\XeTeXcharclass"#1=2 } + \def\CL#1 {\global\XeTeXcharclass"#1=3 } + \def\EX#1 {\global\XeTeXcharclass"#1=3 } + \def\IS#1 {\global\XeTeXcharclass"#1=3 } + \def\NS#1 {\global\XeTeXcharclass"#1=3 } + \def\CM#1 {\global\XeTeXcharclass"#1=256 } +\endverbatimcopy +% \end{macrocode} +% +% Read the line breaking data and save to the output. +% \begin{macrocode} +\openin\unicoderead=LineBreak.txt % +\ifeof\unicoderead + \errmessage{Data file missing: LineBreak.txt}% +\fi +\loop\unless\ifeof\unicoderead + \readline\unicoderead to \unicodedataline + \parseunicodedata\unicodedataline +\repeat +% \end{macrocode} +% +% Set up material to be inserted between character classes. Other than +% using \cs{hspace} here in place of \cs{hskip} this code is identical to +% that provided by plain Xe\TeX{}. +% \begin{macrocode} +\verbatimcopy +\endgroup +\gdef\xtxHanGlue{\hspace{0pt plus 0.1em}} +\gdef\xtxHanSpace{\hspace{0.2em plus 0.2em minus 0.1em}} +\global\XeTeXinterchartoks 0 1 = {\xtxHanSpace} +\global\XeTeXinterchartoks 0 2 = {\xtxHanSpace} +\global\XeTeXinterchartoks 0 3 = {\nobreak\xtxHanSpace} +\global\XeTeXinterchartoks 1 0 = {\xtxHanSpace} +\global\XeTeXinterchartoks 2 0 = {\nobreak\xtxHanSpace} +\global\XeTeXinterchartoks 3 0 = {\xtxHanSpace} +\global\XeTeXinterchartoks 1 1 = {\xtxHanGlue} +\global\XeTeXinterchartoks 1 2 = {\xtxHanGlue} +\global\XeTeXinterchartoks 1 3 = {\nobreak\xtxHanGlue} +\global\XeTeXinterchartoks 2 1 = {\nobreak\xtxHanGlue} +\global\XeTeXinterchartoks 2 2 = {\nobreak\xtxHanGlue} +\global\XeTeXinterchartoks 2 3 = {\xtxHanGlue} +\global\XeTeXinterchartoks 3 1 = {\xtxHanGlue} +\global\XeTeXinterchartoks 3 2 = {\xtxHanGlue} +\global\XeTeXinterchartoks 3 3 = {\nobreak\xtxHanGlue} +\endverbatimcopy +% \end{macrocode} +% +% Done: end the script. +% \begin{macrocode} +\bye +% \end{macrocode} +% +% \begin{macrocode} +% +% \end{macrocode} \ No newline at end of file diff --git a/Master/texmf-dist/source/latex/l3kernel/source3.tex b/Master/texmf-dist/source/latex/l3kernel/source3.tex deleted file mode 100644 index 22c3c44048d..00000000000 --- a/Master/texmf-dist/source/latex/l3kernel/source3.tex +++ /dev/null @@ -1,106 +0,0 @@ -% \iffalse meta-comment -% -%% File: source3.tex Copyright (C) 1990-2011 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. -%% -%% ----------------------------------------------------------------------- -% -% \fi - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% This document will typeset the LaTeX3 sources as a single document. -% This will produce quite a large file (more than 780 pages). -% -% There is also a shorter version (interface3.tex) that only typesets the -% command % interface descriptions. -% -% Do not forget to generate the index (as explained on the terminal output -% near the end of the run)! -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\documentclass{l3doc} -\listfiles - -\begin{document} - -\title{The \LaTeX3 Sources} -\author{% - The \LaTeX3 Project\thanks - {% - E-mail: - \href{mailto:latex-team@latex-project.org} - {latex-team@latex-project.org}% - }% -} - -\pagenumbering{roman} -\maketitle - -% -% First load all modules and typeset the documentation parts -% - -\input{source3body} % all the individual modules - -% -% Now reload all modules and typeset the implementation parts -% - -\part{Implementation} - -\def\maketitle{} -\EnableImplementation -\DisableDocumentation -\DocInputAgain - -\clearpage -\pagestyle{headings} - -% Make TeX shut up. -\hbadness=10000 -\newcount\hbadness -\hfuzz=\maxdimen - -\PrintChanges -\clearpage - -\begingroup - \def\endash{--} - \catcode`\-\active - \def-{\futurelet\temp\indexdash} - \def\indexdash{\ifx\temp-\endash\fi} - - \DelayPrintIndex -\endgroup - -\end{document} diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex index 6b7daba5139..4f63da38cfb 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex @@ -46,7 +46,7 @@ %% %% Do not distribute a modified version of this file. %% -%% File: expl3.dtx Copyright (C) 1990-2014 The LaTeX3 Project +%% File: expl3.dtx Copyright (C) 1990-2015 The LaTeX3 Project %% %% It may be distributed and/or modified under the conditions of the %% LaTeX Project Public License (LPPL), either version 1.3c of this @@ -80,8 +80,8 @@ %% ----------------------------------------------------------------------- \def\ExplFileName{expl3} \def\ExplFileDescription{L3 programming layer} -\def\ExplFileDate{2014/11/25} -\def\ExplFileVersion{5471} +\def\ExplFileDate{2015/01/29} +\def\ExplFileVersion{5502} \begingroup \def\next{\endgroup} \expandafter\ifx\csname PackageError\endcsname\relax @@ -139,7 +139,7 @@ \ExplFileDate\space v\ExplFileVersion\space \ExplFileDescription\space (code) } -%% File: l3bootstrap.dtx Copyright (C) 2011-2014 The LaTeX3 project +%% File: l3bootstrap.dtx Copyright (C) 2011-2015 The LaTeX3 project %% %% It may be distributed and/or modified under the conditions of the %% LaTeX Project Public License (LPPL), either version 1.3c of this @@ -240,7 +240,7 @@ } } \endgroup -\GetIdInfo$Id: l3bootstrap.dtx 5354 2014-08-23 01:35:39Z bruno $ +\GetIdInfo$Id: l3bootstrap.dtx 5500 2015-01-27 14:37:04Z joseph $ {L3 Bootstrap code} \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname pdfstrcmp\endcsname\relax @@ -907,7 +907,7 @@ \tex_let:D \tex_middle:D \normalmiddle \tex_let:D \tex_right:D \normalright \tex_fi:D -%% File: l3basics.dtx Copyright (C) 1990-2014 The LaTeX3 project +%% File: l3basics.dtx Copyright (C) 1990-2015 The LaTeX3 project %% %% It may be distributed and/or modified under the conditions of the %% LaTeX Project Public License (LPPL), either version 1.3c of this @@ -939,7 +939,7 @@ %% prior consultation with the LaTeX3 Project. %% %% ----------------------------------------------------------------------- -\GetIdInfo$Id: l3basics.dtx 5364 2014-08-24 20:19:24Z joseph $ +\GetIdInfo$Id: l3basics.dtx 5500 2015-01-27 14:37:04Z joseph $ {L3 Basic definitions} \tex_let:D \if_true: \tex_iftrue:D \tex_let:D \if_false: \tex_iffalse:D @@ -1736,7 +1736,7 @@ %% prior consultation with the LaTeX3 Project. %% %% ----------------------------------------------------------------------- -\GetIdInfo$Id: l3expan.dtx 5349 2014-08-22 21:46:59Z bruno $ +\GetIdInfo$Id: l3expan.dtx 5472 2014-11-27 09:10:40Z joseph $ {L3 Argument expansion} \cs_new:Npn \__exp_arg_next:nnn #1#2#3 { #2 \::: { #3 {#1} } } \cs_new:Npn \__exp_arg_next:Nnn #1#2#3 { #2 \::: { #3 #1 } } @@ -2180,7 +2180,7 @@ \exp_after:wN \exp_not:N \cs:w :: #1 \cs_end: \__cs_generate_internal_variant_loop:n } -%% File: l3tl.dtx Copyright (C) 1990-2014 The LaTeX3 Project +%% File: l3tl.dtx Copyright (C) 1990-2015 The LaTeX3 Project %% %% It may be distributed and/or modified under the conditions of the %% LaTeX Project Public License (LPPL), either version 1.3c of this @@ -2212,7 +2212,7 @@ %% prior consultation with the LaTeX3 Project. %% %% ----------------------------------------------------------------------- -\GetIdInfo$Id: l3tl.dtx 5460 2014-11-19 10:09:42Z joseph $ +\GetIdInfo$Id: l3tl.dtx 5500 2015-01-27 14:37:04Z joseph $ {L3 Token lists} \cs_new_protected:Npn \tl_new:N #1 { @@ -8513,7 +8513,7 @@ \cs_new_eq:NN \dim_case:nnn \dim_case:nnF \cs_new_eq:NN \__dim_strip_bp:n \dim_to_decimal_in_bp:n \cs_new_eq:NN \__dim_strip_pt:n \dim_to_decimal:n -%% File: l3keys.dtx Copyright (C) 2006-2014 The LaTeX3 Project +%% File: l3keys.dtx Copyright (C) 2006-2015 The LaTeX3 Project %% %% It may be distributed and/or modified under the conditions of the %% LaTeX Project Public License (LPPL), either version 1.3c of this @@ -8545,7 +8545,7 @@ %% prior consultation with the LaTeX3 Project. %% %% ----------------------------------------------------------------------- -\GetIdInfo$Id: l3keys.dtx 5354 2014-08-23 01:35:39Z bruno $ +\GetIdInfo$Id: l3keys.dtx 5500 2015-01-27 14:37:04Z joseph $ {L3 Key-value interfaces} \int_new:N \g__keyval_level_int \tl_new:N \l__keyval_key_tl @@ -15941,7 +15941,7 @@ } } } -%% File: l3candidates.dtx Copyright(C) 2012-2014 The LaTeX3 Project +%% File: l3candidates.dtx Copyright(C) 2012-2015 The LaTeX3 Project %% %% It may be distributed and/or modified under the conditions of the %% LaTeX Project Public License (LPPL), either version 1.3c of this @@ -15974,7 +15974,7 @@ %% %% ----------------------------------------------------------------------- %% -\GetIdInfo$Id: l3candidates.dtx 5466 2014-11-23 12:37:29Z joseph $ +\GetIdInfo$Id: l3candidates.dtx 5499 2015-01-27 14:33:48Z joseph $ {L3 Experimental additions to l3kernel} \group_begin: \tex_lccode:D `? = `: \scan_stop: @@ -16143,7 +16143,7 @@ \dim_to_fp:n {#3} / \dim_to_fp:n { \l__box_top_dim - \l__box_bottom_dim } } - \__box_resize:Nn #1 {#2} + \__box_resize:N #1 \group_end: } } @@ -16155,15 +16155,21 @@ \dim_set:Nn \l__box_right_dim { \box_wd:N #1 } \dim_zero:N \l__box_left_dim } -\cs_new_protected:Npn \__box_resize:Nn #1#2 +\cs_new_protected:Npn \__box_resize:N #1 { - \dim_set:Nn \l__box_right_new_dim { \dim_abs:n {#2} } - \dim_set:Nn \l__box_bottom_new_dim - { \fp_abs:n { \l__box_scale_y_fp } \l__box_bottom_dim } - \dim_set:Nn \l__box_top_new_dim - { \fp_abs:n { \l__box_scale_y_fp } \l__box_top_dim } + \__box_resize:NNN \l__box_right_new_dim + \l__box_scale_x_fp \l__box_right_dim + \__box_resize:NNN \l__box_bottom_new_dim + \l__box_scale_y_fp \l__box_bottom_dim + \__box_resize:NNN \l__box_top_new_dim + \l__box_scale_y_fp \l__box_top_dim \__box_resize_common:N #1 } +\cs_new_protected:Npn \__box_resize:NNN #1#2#3 + { + \dim_set:Nn #1 + { \fp_to_dim:n { \fp_abs:n { #2 } * \dim_to_fp:n { #3 } } } + } \cs_new_protected:Npn \box_resize_to_ht:Nn #1#2 { \hbox_set:Nn #1 @@ -16176,7 +16182,7 @@ / \dim_to_fp:n { \l__box_top_dim } } \fp_set_eq:NN \l__box_scale_x_fp \l__box_scale_y_fp - \__box_resize:Nn #1 {#2} + \__box_resize:N #1 \group_end: } } @@ -16193,7 +16199,7 @@ / \dim_to_fp:n { \l__box_top_dim - \l__box_bottom_dim } } \fp_set_eq:NN \l__box_scale_x_fp \l__box_scale_y_fp - \__box_resize:Nn #1 {#2} + \__box_resize:N #1 \group_end: } } @@ -16207,7 +16213,7 @@ \fp_set:Nn \l__box_scale_x_fp { \dim_to_fp:n {#2} / \dim_to_fp:n { \l__box_right_dim } } \fp_set_eq:NN \l__box_scale_y_fp \l__box_scale_x_fp - \__box_resize:Nn #1 {#2} + \__box_resize:N #1 \group_end: } } @@ -16225,7 +16231,7 @@ \dim_to_fp:n {#3} / \dim_to_fp:n { \l__box_top_dim } } - \__box_resize:Nn #1 {#2} + \__box_resize:N #1 \group_end: } } diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex index 37bc0569664..e69fa25f307 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex @@ -13,7 +13,7 @@ %% %% Do not distribute a modified version of this file. %% -%% File: expl3.dtx Copyright (C) 1990-2014 The LaTeX3 Project +%% File: expl3.dtx Copyright (C) 1990-2015 The LaTeX3 Project %% %% It may be distributed and/or modified under the conditions of the %% LaTeX Project Public License (LPPL), either version 1.3c of this @@ -47,8 +47,8 @@ %% ----------------------------------------------------------------------- \def\ExplFileName{expl3} \def\ExplFileDescription{L3 programming layer} -\def\ExplFileDate{2014/11/25} -\def\ExplFileVersion{5471} +\def\ExplFileDate{2015/01/29} +\def\ExplFileVersion{5502} \let\ExplLoaderFileVersion\ExplFileVersion \begingroup \def\tempa{LaTeX2e} diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty index 34c48d7f7ee..19c332a11c9 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty @@ -13,7 +13,7 @@ %% %% Do not distribute a modified version of this file. %% -%% File: expl3.dtx Copyright (C) 1990-2014 The LaTeX3 Project +%% File: expl3.dtx Copyright (C) 1990-2015 The LaTeX3 Project %% %% It may be distributed and/or modified under the conditions of the %% LaTeX Project Public License (LPPL), either version 1.3c of this @@ -47,8 +47,8 @@ %% ----------------------------------------------------------------------- \def\ExplFileName{expl3} \def\ExplFileDescription{L3 programming layer} -\def\ExplFileDate{2014/11/25} -\def\ExplFileVersion{5471} +\def\ExplFileDate{2015/01/29} +\def\ExplFileVersion{5502} \let\ExplLoaderFileVersion\ExplFileVersion \ProvidesPackage{\ExplFileName} [% -- cgit v1.2.3