diff options
author | Karl Berry <karl@freefriends.org> | 2019-07-31 21:04:44 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2019-07-31 21:04:44 +0000 |
commit | 5bd631809868c0cd6a422fb244377a4fa028d4c1 (patch) | |
tree | be03590a3b2b5849d903aad7d43ab64db4a800ac /Master/texmf-dist/tex | |
parent | 04bd30e9411ab504dd72f7baac778196bfb3c18c (diff) |
witharrows-in-latex removal
git-svn-id: svn://tug.org/texlive/trunk@51791 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex')
-rw-r--r-- | Master/texmf-dist/tex/latex/witharrows/witharrows.sty | 2037 |
1 files changed, 0 insertions, 2037 deletions
diff --git a/Master/texmf-dist/tex/latex/witharrows/witharrows.sty b/Master/texmf-dist/tex/latex/witharrows/witharrows.sty deleted file mode 100644 index 563c6e8b260..00000000000 --- a/Master/texmf-dist/tex/latex/witharrows/witharrows.sty +++ /dev/null @@ -1,2037 +0,0 @@ -%% -%% This is file `witharrows.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% witharrows.dtx (with options: `package') -%% -%% Copyright (C) 2017-2019 by F. Pantigny -%% -%% This file may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either -%% version 1.3 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.3 or later is part of all distributions of -%% LaTeX version 2005/12/01 or later. -%% -\def\myfileversion{1.18} -\def\myfiledate{2019/07/24} -\RequirePackage{tikz} -\usetikzlibrary{arrows.meta,bending} -\RequirePackage{expl3}[2019/02/15] -\RequirePackage{l3keys2e} -\ProvidesExplPackage - {witharrows} - {\myfiledate} - {\myfileversion} - {Draws arrows for explanations on the right} -\RequirePackage { xparse } [ 2018-10-17 ] -\bool_new:N \g__wi_footnotehyper_bool -\bool_new:N \g__wi_footnote_bool -\cs_new_protected:Npn \__wi_msg_new:nn { \msg_new:nnn { witharrows } } -\cs_new_protected:Npn \__wi_msg_new:nnn { \msg_new:nnnn { witharrows } } -\cs_new_protected:Npn \__wi_msg_redirect_name:nn - { \msg_redirect_name:nnn { witharrows } } -\cs_new_protected:Npn \__wi_error:n { \msg_error:nn { witharrows } } -\cs_new_protected:Npn \__wi_warning:n { \msg_error:nn { witharrows } } -\cs_new_protected:Npn \__wi_fatal:n { \msg_fatal:nn { witharrows } } -\cs_new_protected:Npn \__wi_error:nn { \msg_error:nnn { witharrows } } -\cs_generate_variant:Nn \__wi_error:nn { n x } -\keys_define:nn { WithArrows / package } - { - footnote .bool_gset:N = \g__wi_footnote_bool , - footnotehyper .bool_gset:N = \g__wi_footnotehyper_bool , - unknown .code:n = - \__wi_fatal:n { Option~unknown~for~package } - } -\__wi_msg_new:nn { Option~unknown~for~package } - { - You~can't~use~the~option~'\l_keys_key_tl'~when~loading~the~ - package~witharrows.~Try~to~use~the~command~ - \token_to_str:N\WithArrowsOptions. - } -\ProcessKeysOptions { WithArrows / package } -\__wi_msg_new:nn { Option~incompatible~with~Beamer } - { - The~option~'\l_keys_key_tl'\ is~incompatible~ - with~Beamer~because~Beamer~has~its~own~system~to~extract~footnotes. - } -\__wi_msg_new:nn { footnote~with~footnotehyper~package } - { - You~can't~use~the~option~'footnote'~because~the~package~ - footnotehyper~has~already~been~loaded.~ - If~you~want,~you~can~use~the~option~'footnotehyper'~and~the~footnotes~ - within~the~environments~of~witharrows~will~be~extracted~with~the~tools~ - of~the~package~footnotehyper.\\ - If~you~go~on,~the~package~footnote~won't~be~loaded. - } -\__wi_msg_new:nn { footnotehyper~with~footnote~package } - { - You~can't~use~the~option~'footnotehyper'~because~the~package~ - footnote~has~already~been~loaded.~ - If~you~want,~you~can~use~the~option~'footnote'~and~the~footnotes~ - within~the~environments~of~witharrows~will~be~extracted~with~the~tools~ - of~the~package~footnote.\\ - If~you~go~on,~the~package~footnotehyper~won't~be~loaded. - } -\bool_if:NT \g__wi_footnote_bool - { - \@ifclassloaded { beamer } - { \msg_info:nn { witharrows } { Option~incompatible~with~Beamer } } - { - \@ifpackageloaded { footnotehyper } - { \__wi_error:n { footnote~with~footnotehyper~package } } - { \usepackage { footnote } } - } - } -\bool_if:NT \g__wi_footnotehyper_bool - { - \@ifclassloaded { beamer } - { \__wi_info:n { Option~incompatible~with~Beamer } } - { - \@ifpackageloaded { footnote } - { \__wi_error:n { footnotehyper~with~footnote~package } } - { \usepackage { footnotehyper } } - } - \bool_gset_true:N \g__wi_footnote_bool - } -\bool_new:N \c__wi_leqno_bool -\DeclareOption { leqno } { \bool_set_true:N \c__wi_leqno_bool } -\DeclareOption* { } -\ProcessOptions* -\cs_generate_variant:Nn \tl_put_right:Nn { N v } -\cs_generate_variant:Nn \seq_set_split:Nnn { N x x } -\AtBeginDocument - { - \clist_map_inline:nn - { - amsmath, amsthm, autonum, cleveref, hyperref, mathtools, showlabels, - typedref, unicode-math, varwidth - } - { - \bool_new:c { c__wi_#1_loaded_bool } - \@ifpackageloaded { #1 } - { \bool_set_true:c { c__wi_#1_loaded_bool } } - { } - } - } -\sys_if_engine_luatex:TF - { - \cs_new_protected:Npn \__wi_strcmp:nn #1 #2 - { \lua_now:e { l3kernel.strcmp('#1','#2') } } - } - { - \cs_new_protected:Npn \__wi_strcmp:nn #1 #2 - { \pdftex_strcmp:D { #1 } { #2 } } - } -\cs_new_protected:Npn \__wi_sort_seq:N #1 - { - \seq_sort:Nn #1 - { - \int_compare:nNnTF - { - \__wi_strcmp:nn - { \str_lower_case:n { ##1 } } - { \str_lower_case:n { ##2 } } - } - > 0 - \sort_return_swapped: - \sort_return_same: - } - } -\cs_new_protected:Npn \__wi_convert_to_str_seq:N #1 - { - \seq_clear:N \l_tmpa_seq - \seq_map_inline:Nn #1 - { - \seq_put_left:Nx \l_tmpa_seq { \tl_to_str:n { ##1 } } - } - \seq_set_eq:NN #1 \l_tmpa_seq - } -\cs_new_protected:Npn \__wi_set_seq_of_str_from_clist:Nn #1 #2 - { - \seq_set_from_clist:Nn #1 { #2 } - \__wi_convert_to_str_seq:N #1 - } -\cs_new_protected:Npn \__wi_save:N #1 - { - \seq_set_split:Nxx \l_tmpa_seq - { \char_generate:nn { `_ } { 12 } } - { \cs_to_str:N #1 } - \seq_pop_left:NN \l_tmpa_seq \l_tmpa_tl - \str_set:Nx \l_tmpa_str { \seq_item:Nn \l_tmpa_seq { -1 } } - \use:c { \l_tmpa_str _if_exist:cF } - { g _\seq_use:Nnnn \l_tmpa_seq _ _ _ } - { - \use:c { \l_tmpa_str _new:c } - { g _\seq_use:Nnnn \l_tmpa_seq _ _ _ } - } - \use:c { \l_tmpa_str _gset_eq:cN } - { g _\seq_use:Nnnn \l_tmpa_seq _ _ _ } #1 - } -\cs_new_protected:Npn \__wi_restore:N #1 - { - \seq_set_split:Nxx \l_tmpa_seq - { \char_generate:nn { `_ } { 12 } } - { \cs_to_str:N #1 } - \seq_pop_left:NN \l_tmpa_seq \l_tmpa_tl - \str_set:Nx \l_tmpa_str { \seq_item:Nn \l_tmpa_seq { -1 } } - \use:c { \l_tmpa_str _set_eq:Nc } - #1 { g_\seq_use:Nnnn \l_tmpa_seq _ _ _ } - } -\tikzset - { - __wi_node_style / .style = - { - above = \l__wi_ystart_dim , - inner~sep = \c_zero_dim , - minimum~width = \c_zero_dim , - minimum~height = \l__wi_ygap_dim - } - } -\tikzset - { - __wi_standard / .style = - { - remember~picture , - overlay , - name~prefix = wa - \l__wi_prefix_str - - } - } -\tikzset - { - WithArrows / arrow / tips / .style = - { > = { Straight~Barb [ scale = 1.2 , bend ] } } - } -\tikzset - { - WithArrows / arrow / .style = - { - align = left , - auto = left , - font = \small \itshape , - WithArrows / arrow / tips , - bend~left = 45 , - -> - } - } -\AtBeginDocument - { - \bool_if:NTF \c__wi_amsmath_loaded_bool - { - \seq_put_right:Nn \l__wi_options_WithArrowsOptions_seq { subequations } - \seq_put_right:Nn \l__wi_options_DispWithArrows_seq { subequations } - } - { - \cs_new_protected:Npn \spread@equation - { - \openup \jot - \cs_set_eq:NN \spread@equation \prg_do_nothing: - } - } - } -\tl_new:N \l__wi_left_brace_tl -\tl_set_eq:NN \l__wi_left_brace_tl \c_novalue_tl -\bool_new:N \l__wi_in_WithArrows_bool -\bool_new:N \l__wi_in_DispWithArrows_bool -\bool_new:N \l__wi_in_code_after_bool -\seq_new:N \g__wi_position_in_the_tree_seq -\seq_gput_right:Nn \g__wi_position_in_the_tree_seq 1 -\int_new:N \g__wi_last_env_int -\int_new:N \l__wi_pos_env_int -\int_new:N \l__wi_pos_arrow_int -\int_set:Nn \l__wi_pos_arrow_int 3 -\seq_new:N \g__wi_arrow_int_seq -\int_new:N \g__wi_arrow_int -\seq_new:N \g__wi_line_int_seq -\int_new:N \g__wi_line_int -\seq_new:N \g__wi_col_int_seq -\int_new:N \g__wi_col_int -\clist_new:N \l__wi_tags_clist -\clist_set:Nn \l__wi_tags_clist { all } -\cs_new_protected:Npn \__wi_test_if_to_tag: - { - \clist_if_in:NVT \l__wi_tags_clist \g__wi_line_int - { \clist_set:Nn \l__wi_tags_clist { all } } - } -\str_new:N \l__wi_command_name_str -\str_set:Nn \l__wi_command_name_str { Arrow } -\str_new:N \l__wi_string_Arrow_for_msg_str -\str_set:Nx \l__wi_string_Arrow_for_msg_str { \token_to_str:N \Arrow } -\seq_new:N \g__wi_names_seq -\bool_new:N \l__wi_sbwi_bool -\bool_new:N \l__wi_in_first_columns_bool -\bool_new:N \l__wi_tag_star_bool -\bool_new:N \l__wi_tag_next_line_bool -\bool_new:N \l__wi_qedhere_bool -\bool_new:N \l__wi_new_group_bool -\bool_new:N \l__wi_initial_r_bool -\bool_new:N \l__wi_final_r_bool -\tl_new:N \l__wi_initial_tl -\tl_new:N \l__wi_final_tl -\int_new:N \l__wi_nb_cols_int -\str_new:N \l__wi_format_str -\bool_new:N \l__wi_subequations_bool -\cs_new_protected:Npn \__wi_eval_if_allowed:n #1 - { - \str_if_empty:NTF \l__wi_previous_key_str - { - \str_set_eq:NN \l__wi_previous_key_str \l_keys_key_tl - #1 - } - { \__wi_error:n { Incompatible~options } } - } -\cs_new_protected:Npn \__wi_fix_pos_option:n #1 - { \__wi_eval_if_allowed:n { \int_set:Nn \l__wi_pos_arrow_int { #1 } } } -\keys_define:nn { WithArrows / Global } - { - ygap .dim_set:N = \l__wi_ygap_dim , - ygap .value_required:n = true , - ygap .initial:n = 0.4 ex , - ystart .dim_set:N = \l__wi_ystart_dim , - ystart .value_required:n = true , - ystart .initial:n = 0.4 ex , - more-columns .code:n = - \__wi_msg_redirect_name:nn { Too~much~columns~in~WithArrows } { none } , - more-columns .value_forbidden:n = true, - command-name .code:n = - \str_set:Nn \l__wi_command_name_str { #1 } - \str_set:Nx \l__wi_string_Arrow_for_msg_str - { \c_backslash_str Arrow~alias~\c_backslash_str #1 } , - command-name .value_required:n = true , - tikz-code .tl_set:N = \l__wi_tikz_code_tl, - tikz-code .initial:n = \draw~(#1)~to~node{#3}~(#2)~; , - tikz-code .value_required:n = true , - TikzCode .meta:n = { tikz-code = #1 } , - displaystyle .bool_set:N = \l__wi_displaystyle_bool , - displaystyle .default:n = true , - show-nodes .code:n = - \tikzset { __wi_node_style / .append~style = { draw , red } } , - show-nodes .value_forbidden:n = true, - show-node-names .bool_set:N = \l__wi_show_node_names_bool , - show-node-names .default:n = true , - group .code:n = - \str_if_empty:NTF \l__wi_previous_key_str - { - \str_set:Nn \l__wi_previous_key_str { group } - \seq_remove_all:Nn \l__wi_options_Arrow_seq { xoffset } - \int_set:Nn \l__wi_pos_arrow_int 7 - } - { \__wi_error:n { Incompatible~options } } , - group .value_forbidden:n = true , - groups .code:n = - \str_if_empty:NTF \l__wi_previous_key_str - { - \str_set:Nn \l__wi_previous_key_str { groups } - \seq_if_in:NnF \l__wi_options_Arrow_seq { new-group } - { \seq_put_right:Nn \l__wi_options_Arrow_seq { new-group } } - \seq_remove_all:Nn \l__wi_options_Arrow_seq { xoffset } - \int_set:Nn \l__wi_pos_arrow_int 6 - } - { \__wi_error:n { Incompatible~options } } , - groups .value_forbidden:n = true , - tikz .code:n = \tikzset { WithArrows / arrow / .append~style = { #1 } } , - tikz .initial:n = \c_empty_tl , - tikz .value_required:n = true , - rr .value_forbidden:n = true , - rr .code:n = \__wi_fix_pos_option:n 3 , - ll .value_forbidden:n = true , - ll .code:n = \__wi_fix_pos_option:n 1 , - rl .value_forbidden:n = true , - rl .code:n = \__wi_fix_pos_option:n 2 , - lr .value_forbidden:n = true , - lr .code:n = \__wi_fix_pos_option:n 0 , - i .value_forbidden:n = true , - i .code:n = \__wi_fix_pos_option:n 5 , - xoffset .dim_set:N = \l__wi_xoffset_dim , - xoffset .value_required:n = true , - xoffset .initial:n = 3 mm , - jot .dim_set:N = \jot , - jot .value_required:n = true , - interline .skip_set:N = \l__wi_interline_skip , - interline .value_required:n = true , - start-adjust .dim_set:N = \l__wi_start_adjust_dim , - start-adjust .value_required:n = true , - start-adjust .initial:n = 0.4 ex , - end-adjust .dim_set:N = \l__wi_end_adjust_dim , - end-adjust .value_required:n = true , - end-adjust .initial:n = 0.4 ex , - adjust .meta:n = { start-adjust = #1 , end-adjust = #1 } , - adjust .value_required:n = true , - no-arrows .code:n = - \cs_set_eq:NN \__wi_draw_arrows:nn \use_none:nn - \cs_set_eq:NN \__wi_draw_arrow:nnn \use_none:nnn , - no-arrows .value_forbidden:n = true , - } -\keys_define:nn { WithArrows / WithArrowsSpecific } - { - t .code:n = \int_set:Nn \l__wi_pos_env_int O , - t .value_forbidden:n = true , - c .code:n = \int_set:Nn \l__wi_pos_env_int 1 , - c .value_forbidden:n = true , - b .code:n = \int_set:Nn \l__wi_pos_env_int 2 , - b .value_forbidden:n = true - } -\clist_new:N \c__wi_extensible_delimiters_clist -\clist_set:Nn \c__wi_extensible_delimiters_clist - { - \{, (, [, \lbrace, \lbrack, \lgroup, \langle, \lmoustache, \lceil, \lfloor - } -\AtBeginDocument - { - \bool_if:nT - { \c__wi_amsmath_loaded_bool || \use:c { c__wi_unicode-math_loaded_bool } } - { - \clist_put_right:Nn \c__wi_extensible_delimiters_clist { \lvert, \lVert } - } - } -\keys_define:nn { WithArrows / DispWithArrowsSpecific } - { - fleqn .bool_set:N = \l__wi_fleqn_bool , - fleqn .default:n = true , - mathindent .dim_set:N = \l__wi_mathindent_dim , - mathindent .value_required:n = true , - mathindent .initial:n = 25 pt , - notag .code:n = - \str_if_eq:nnTF { #1 } { true } - { \clist_clear:N \l__wi_tags_clist } - { \clist_set:Nn \l__wi_tags_clist { all } } , - notag .default:n = true , - subequations .code:n = - \bool_if:NTF \c__wi_amsmath_loaded_bool - { \bool_set_true:N \l__wi_subequations_bool } - { - \__wi_error:n { amsmath~not~loaded } - \group_begin: - \globaldefs = 1 - \__wi_msg_redirect_name:nn { amsmath~not~loaded } { info } - \group_end: - } , - subequations .default:n = true , - subequations .value_forbidden:n = true , - nonumber .meta:n = notag , - allow-multiple-labels .code:n = - \__wi_msg_redirect_name:nn { Multiple~labels } { none } , - allow-multiple-labels .value_forbidden:n = true , - wrap-lines .bool_set:N = \l__wi_wrap_lines_bool , - wrap-lines .default:n = true , - tagged-lines .code:n = - \clist_set:Nn \l__wi_tags_clist { #1 } - \clist_if_in:NnT \l__wi_tags_clist { first } - { - \clist_remove_all:Nn \l__wi_tags_clist { first } - \clist_put_left:Nn \l__wi_tags_clist \c_one_int - } , - tagged-lines .value_required:n = true , - replace-left-brace-by .code:n = - { - \clist_if_in:NnTF - \c__wi_extensible_delimiters_clist - { #1 } - { \tl_set:Nn \l__wi_replace_left_brace_by_tl { #1 } } - { \__wi_error:n { Bad~value~for~replace~brace~by } } - } , - replace-left-brace-by .initial:n = \lbrace , - standard-behaviour-with-items .bool_set:N = \l__wi_sbwi_bool , - standard-behaviour-with-items .default:n = true - } -\keys_define:nn { WithArrows / Env } - { - name .code:n = - \str_set:Nn \l_tmpa_str { #1 } - \seq_if_in:NVTF \g__wi_names_seq \l_tmpa_str - { \__wi_error:n { Duplicate~name } } - { \seq_gput_left:NV \g__wi_names_seq \l_tmpa_str } - \str_set_eq:NN \l__wi_name_str \l_tmpa_str , - name .value_required:n = true , - code-before .code:n = \tl_put_right:Nn \l__wi_code_before_tl { #1 } , - code-before .value_required:n = true, - CodeBefore .meta:n = { code-before = #1 } , - code-after .code:n = \tl_put_right:Nn \l__wi_code_after_tl { #1 } , - code-after .value_required:n = true , - CodeAfter .meta:n = { code-after = #1 } , - format .code:n = - \tl_if_empty:nTF { #1 } - { \__wi_error:n { Invalid~option~format } } - { - \regex_match:nnTF { \A[rcl]*\Z } { #1 } - { \tl_set:Nn \l__wi_format_str { #1 } } - { \__wi_error:n { Invalid~option~format } } - } , - format .value_required:n = true , - } -\keys_define:nn { WithArrows } - { - WithArrows .inherit:n = - { - WithArrows / Global , - WithArrows / WithArrowsSpecific , - WithArrows / Env - } , - DispWithArrows .inherit:n = - { - WithArrows / DispWithArrowsSpecific , - WithArrows / Global , - WithArrows / Env , - } , - WithArrowsOptions .inherit:n = - { - WithArrows / Global , - WithArrows / WithArrowsSpecific , - WithArrows / DispWithArrowsSpecific - } - } -\seq_new:N \l__wi_options_WithArrows_seq -\__wi_set_seq_of_str_from_clist:Nn \l__wi_options_WithArrows_seq - { - adjust, b, c, code-after, code-before, command-name, - displaystyle, end-adjust, - format, group, groups, i, - interline, jot, ll, - lr, more-columns, name, - no-arrows, rl, rr, - show-node-names, show-nodes, start-adjust, - t, tikz, tikz-code, - xoffset, ygap, ystart - } -\__wi_convert_to_str_seq:N \l__wi_options_WithArrows_seq -\keys_define:nn { WithArrows / WithArrows } - { - unknown .code:n = - \__wi_sort_seq:N \l__wi_options_WithArrows_seq - \__wi_error:n { Unknown~option~WithArrows } - } -\keys_define:nn { WithArrows / DispWithArrows } - { - left-brace .tl_set:N = \l__wi_left_brace_tl , - unknown .code:n = - \__wi_sort_seq:N \l__wi_options_DispWithArrows_seq - \__wi_error:n { Unknown~option~DispWithArrows } - } -\seq_new:N \l__wi_options_DispWithArrows_seq -\__wi_set_seq_of_str_from_clist:Nn \l__wi_options_DispWithArrows_seq - { - allow-multiple-labels, code-after, code-before, command-name, tikz-code, adjust, - displaystyle, end-adjust, fleqn, group, format, groups, i, interline, jot, - left-brace, ll, lr, mathindent, name, no-arrows, nonumber, notag, - replace-left-brace-by, rl, rr, show-node-names, show-nodes, start-adjust, - tagged-lines, tikz, wrap-lines, xoffset, ygap, ystart - } -\keys_define:nn { WithArrows / WithArrowsOptions } - { - allow-duplicate-names .code:n = - \__wi_msg_redirect_name:nn { Duplicate~name } { none } , - allow-duplicate-names .value_forbidden:n = true , - unknown .code:n = - \__wi_sort_seq:N \l__wi_options_WithArrowsOptions_seq - \__wi_error:n { Unknown~option~WithArrowsOptions } - } -\seq_new:N \l__wi_options_WithArrowsOptions_seq -\__wi_set_seq_of_str_from_clist:Nn \l__wi_options_WithArrowsOptions_seq - { - allow-duplicate-names, allow-multiple-labels, b, c, command-name, - more-columns, tikz-code, adjust, displaystyle, end-adjust, fleqn, group, - groups, i, interline, jot, ll, lr, mathindent, no-arrows, nonumber, notag, - rl, rr, show-node-names, show-nodes, standard-behaviour-with-items, - start-adjust, t, tagged-lines, tikz, wrap-lines, xoffset, ygap, ystart - } -\cs_new_protected:Npn \__wi_set_independent: - { - \str_if_empty:NTF \l__wi_previous_key_str - { - \str_set_eq:NN \l__wi_previous_key_str \l_keys_key_tl - \str_set:Nn \l__wi_status_arrow_str { independent } - \str_if_eq:VnF \l_keys_value_tl { NoValue } - { \__wi_error:n { Value~for~a~key } } - } - { \__wi_error:n { Incompatible~options~in~Arrow } } - } -\keys_define:nn { WithArrows / Arrow / FirstPass } - { - jump .code:n = - \int_compare:nTF { #1 > 0 } - { \int_set:Nn \l__wi_jump_int { #1 } } - { \__wi_error:n { Negative~jump } } , - jump .value_required:n = true, - rr .code:n = \__wi_set_independent: , - ll .code:n = \__wi_set_independent: , - rl .code:n = \__wi_set_independent: , - lr .code:n = \__wi_set_independent: , - i .code:n = \__wi_set_independent: , - rr .default:n = NoValue , - ll .default:n = NoValue , - rl .default:n = NoValue , - lr .default:n = NoValue , - i .default:n = NoValue , - new-group .value_forbidden:n = true, - new-group .code:n = - \int_compare:nTF { \l__wi_pos_arrow_int = 6 } - { \str_set:Nn \l__wi_status_arrow_str { new-group } } - { \__wi_error:n { new-group~without~groups } } , - tikz-code .code:n = \prg_do_nothing: , - tikz-code .value_required:n = true , - tikz .code:n = \prg_do_nothing: , - tikz .value_required:n = true , - xoffset .code:n = - \int_compare:nNnT \l__wi_pos_arrow_int > 5 - { \__wi_error:n { Option~xoffset~forbidden } } , - xoffset .value_required:n = true , - start-adjust .code:n = \prg_do_nothing: , - start-adjust .value_required:n = true , - end-adjust .code:n = \prg_do_nothing: , - end-adjust .value_required:n = true , - adjust .code:n = \prg_do_nothing: , - adjust .value_required:n = true , - unknown .code:n = - \__wi_sort_seq:N \l__wi_options_Arrow_seq - \seq_if_in:NVTF \l__wi_options_WithArrows_seq \l_keys_key_tl - { - \str_set:Nn \l_tmpa_str - { ~However,~this~key~can~be~used~in~the~options~of~\{WithArrows\}. } - } - { \str_clear:N \l_tmpa_str } - \__wi_error:n { Unknown~option~in~Arrow } - } -\seq_new:N \l__wi_options_Arrow_seq -\__wi_set_seq_of_str_from_clist:Nn \l__wi_options_Arrow_seq - { - adjust, end-adjust, i, jump, ll, lr, rl, rr, start-adjust, tikz, tikz-code, - xoffset - } -\cs_new_protected:Npn \__wi_fix_pos_arrow:n #1 - { - \str_if_empty:NT \l__wi_previous_key_str - { - \str_set_eq:NN \l__wi_previous_key_str \l_keys_key_tl - \int_set:Nn \l__wi_pos_arrow_int { #1 } - } - } -\keys_define:nn {WithArrows / Arrow / SecondPass } - { - tikz-code .tl_set:N = \l__wi_tikz_code_tl , - tikz-code .initial:n = \draw~(#1)~to~node{#3}~(#2)~; , - tikz .code:n = \tikzset { WithArrows / arrow / .append~style = { #1 } } , - tikz .initial:n = \c_empty_tl , - rr .code:n = \__wi_fix_pos_arrow:n 3 , - ll .code:n = \__wi_fix_pos_arrow:n 1 , - rl .code:n = \__wi_fix_pos_arrow:n 2 , - lr .code:n = \__wi_fix_pos_arrow:n 0 , - i .code:n = \__wi_fix_pos_arrow:n 5 , - xoffset .code:n = - \int_compare:nNnF \l__wi_pos_arrow_int > 5 - { \dim_set:Nn \l__wi_xoffset_dim { #1 } } , - start-adjust .dim_set:N = \l__wi_start_adjust_dim, - end-adjust .dim_set:N = \l__wi_end_adjust_dim, - adjust .code:n = - \dim_set:Nn \l__wi_start_adjust_dim { #1 } - \dim_set:Nn \l__wi_end_adjust_dim { #1 } , - } -\NewDocumentCommand \WithArrowsOptions { m } - { - \str_clear_new:N \l__wi_previous_key_str - \keys_set:nn { WithArrows / WithArrowsOptions } { #1 } - } -\NewDocumentCommand \__wi_Arrow { O { } m ! O { } } - { - \int_gincr:N \g__wi_arrow_int - \str_clear_new:N \l__wi_previous_key_str - \keys_set:nn { WithArrows / Arrow / FirstPass } { #1 , #3 } - \prop_put:NnV \l_tmpa_prop { initial } \g__wi_line_int - \int_set:Nn \l_tmpa_int { \g__wi_line_int + \l__wi_jump_int } - \prop_put:NnV \l_tmpa_prop { final } \l_tmpa_int - \prop_put:NnV \l_tmpa_prop { status } \l__wi_status_arrow_str - \prop_put:Nnn \l_tmpa_prop { options } { #1 , #3 } - \prop_put:Nnn \l_tmpa_prop { label } { #2 } - \prop_put:Nnx \l_tmpa_prop { input-line } \msg_line_number: - \prop_gclear_new:c - { g__wi_arrow _ \l__wi_prefix_str _ \int_use:N \g__wi_arrow_int _ prop } - \prop_gset_eq:cN - { g__wi_arrow _ \l__wi_prefix_str _ \int_use:N \g__wi_arrow_int _ prop } - \l_tmpa_prop - } -\cs_new_protected:Npn \__wi_Arrow_first_columns: - { \__wi_error:n { Arrow~not~in~last~column } \__wi_Arrow } -\cs_new_protected:Npn \__wi_pre_halign:n #1 - { - \str_clear_new:N \l__wi_type_env_str - \str_set:NV \l__wi_type_env_str \@currenvir - \cs_if_exist:NT \tikz@library@external@loaded - { \tikzset { external / export = false } } - \str_clear_new:N \l__wi_name_str - \str_clear_new:N \l__wi_status_arrow_str - \dim_zero_new:N \l__wi_x_dim - \str_clear_new:N \l__wi_input_line_str - \seq_gput_right:NV \g__wi_arrow_int_seq \g__wi_arrow_int - \int_gzero:N \g__wi_arrow_int - \seq_gput_right:NV \g__wi_line_int_seq \g__wi_line_int - \int_gzero:N \g__wi_line_int - \seq_gput_right:NV \g__wi_col_int_seq \g__wi_col_int - \int_gzero:N \g__wi_col_int - \int_gzero_new:N \g__wi_static_col_int - \seq_gput_right:Nn \g__wi_position_in_the_tree_seq 1 - \seq_set_eq:NN \l_tmpa_seq \g__wi_position_in_the_tree_seq - \seq_pop_right:NN \l_tmpa_seq \l_tmpa_tl - \str_clear_new:N \l__wi_prefix_str - \str_set:Nx \l__wi_prefix_str { \seq_use:Nnnn \l_tmpa_seq - - - } - \cs_set_eq:NN \\ \__wi_cr: - \dim_zero:N \mathsurround - \int_zero_new:N \l__wi_initial_int - \int_zero_new:N \l__wi_final_int - \int_zero_new:N \l__wi_arrow_int - \int_zero_new:N \l__wi_pos_of_arrow_int - \int_zero_new:N \l__wi_jump_int - \int_set:Nn \l__wi_jump_int \c_one_int - \str_set:Nn \l__wi_format_str { rl } - \seq_clear_new:N \l__wi_labels_seq - \bool_set_false:N \l__wi_tag_next_line_bool - \skip_zero:N \l__wi_interline_skip - \tl_clear_new:N \l__wi_code_before_tl - \tl_clear_new:N \l__wi_code_after_tl - \str_clear_new:N \l__wi_previous_key_str - \bool_if:NT \l__wi_in_WithArrows_bool - { \keys_set:nn { WithArrows / WithArrows } { #1 } } - \bool_if:NT \l__wi_in_DispWithArrows_bool - { \keys_set:nn { WithArrows / DispWithArrows } { #1 } } - \cs_set_eq:cN \l__wi_command_name_str \__wi_Arrow_first_columns: - \int_set:Nn \l__wi_nb_cols_int { \str_count:N \l__wi_format_str } - \int_gset_eq:NN \g__wi_col_int \l__wi_nb_cols_int - \seq_clear_new:N \l__wi_format_seq - \seq_set_split:NnV \l__wi_format_seq { } \l__wi_format_str - \bool_if:NT \g__wi_footnote_bool { \begin { savenotes } } - \l__wi_code_before_tl - \spread@equation - \cs_set_eq:NN \notag \__wi_notag: - \cs_set_eq:NN \nonumber \__wi_nonumber: - \cs_set_eq:NN \tag \__wi_tag - \cs_set_eq:NN \__wi_old_label \label - \cs_set_eq:NN \label \__wi_label:n - \cs_set_eq:NN \tagnextline \__wi_tagnextline: - } -\cs_new_protected:Npn \__wi_construct_halign: - { - \seq_pop_right:NNTF \l__wi_format_seq \l__wi_type_col_str - { - \use:x - { - \int_gdecr:N \g__wi_col_int - \__wi_construct_halign: - \int_compare:nNnT \g__wi_col_int = \l__wi_nb_cols_int - { - \cs_set_eq:cN { \l__wi_command_name_str } \__wi_Arrow - \bool_if:NT \l__wi_in_DispWithArrows_bool - { - \__wi_test_if_to_tag: - \bool_if:NT \c__wi_amsthm_loaded_bool \__wi_set_qedhere: - } - } - \str_if_eq:VnT \l__wi_type_col_str { c } \hfil - \str_if_eq:VnT \l__wi_type_col_str { r } \hfill - \int_gincr:N \g__wi_col_int - \int_gset:Nn \g__wi_static_col_int { \int_use:N \g__wi_col_int } - \c_math_toggle_token - { - { } - \bool_if:NT \l__wi_displaystyle_bool \displaystyle - #### - } - \c_math_toggle_token - \int_compare:nNnTF \g__wi_col_int = \l__wi_nb_cols_int - { \__wi_construct_nodes: } - { - \str_if_eq:VnT \l__wi_type_col_str { l } \hfil - \str_if_eq:VnT \l__wi_type_col_str { c } \hfil - \bool_if:NT \l__wi_in_DispWithArrows_bool { \tabskip = \c_zero_skip } - & - } - } - } - { - \bool_if:NTF \l__wi_in_WithArrows_bool - { - \ialign - \bgroup - } - { - \halign to \l__wi_linewidth_dim - \bgroup - \bool_if:NT \l__wi_fleqn_bool - { \skip_horizontal:N \l__wi_mathindent_dim } - } - \int_gincr:N \g__wi_line_int - \int_gzero:N \g__wi_col_int - \tl_if_eq:NNF \l__wi_left_brace_tl \c_novalue_tl - { - \skip_horizontal:n - { \box_wd:N \l__wi_left_brace_box + \l__wi_delim_wd_dim } - } - \strut - } - } -\cs_new_protected:Npn \__wi_construct_nodes: - { - \tikz [ remember~picture , overlay ] - \node - [ - node~contents = { } , - __wi_node_style , - name = wa - \l__wi_prefix_str - \int_use:N \g__wi_line_int - l , - alias = - { - \str_if_empty:NF \l__wi_name_str - { \l__wi_name_str - \int_use:N \g__wi_line_int - l } - } - ] - ; - \hfil - \tikz [ remember~picture , overlay ] - \node - [ - node~contents = { } , - __wi_node_style , - name = wa - \l__wi_prefix_str - \int_use:N \g__wi_line_int - r , - alias = - { - \str_if_empty:NF \l__wi_name_str - { \l__wi_name_str - \int_use:N \g__wi_line_int - r } - } - ] - ; - \bool_if:NT \l__wi_show_node_names_bool - { - \hbox_overlap_right:n - { \small wa - \l__wi_prefix_str - \int_use:N \g__wi_line_int - r } - } - } -\NewDocumentEnvironment { WithArrows } { ! O { } } - { - \bool_set_true:N \l__wi_in_WithArrows_bool - \bool_set_false:N \l__wi_in_DispWithArrows_bool - \__wi_pre_halign:n { #1 } - \if_mode_math: \else: - \__wi_error:n { WithArrows~outside~math~mode } - \fi: - \int_case:nn \l__wi_pos_env_int { 0 \vtop 1 \vcenter 2 \vbox } - \bgroup - \__wi_construct_halign: - && - \__wi_error:n { Too~much~columns~in~WithArrows } - \c_math_toggle_token - \bool_if:NT \l__wi_displaystyle_bool \displaystyle - { ## } - \c_math_toggle_token - \cr - } - { - \\ - \egroup - \egroup - \__wi_post_halign: - \bool_if:NT \g__wi_footnote_bool { \end { savenotes } } - } -\cs_new_protected:Npn \__wi_post_halign: - { - \cs_set:Npn \WithArrowsRightX { \g__wi_right_x_dim } - \int_compare:nNnT \g__wi_arrow_int > 0 \__wi_scan_arrows: - \group_begin: - \tikzset { every~picture / .style = __wi_standard } - \cs_set:Npn \WithArrowsNbLines { \int_use:N \g__wi_line_int } - \cs_set_eq:NN \MultiArrow \__wi_MultiArrow:nn - \cs_set_eq:cN \l__wi_command_name_str \__wi_Arrow_code_after - \bool_set_true:N \l__wi_in_code_after_bool - \l__wi_code_after_tl - \group_end: - \seq_gpop_right:NN \g__wi_position_in_the_tree_seq \l_tmpa_tl - \seq_gpop_right:NN \g__wi_position_in_the_tree_seq \l_tmpa_tl - \seq_gput_right:Nx \g__wi_position_in_the_tree_seq - { \int_eval:n { \l_tmpa_tl + 1 } } - \int_compare:nNnT { \seq_count:N \g__wi_position_in_the_tree_seq } = 1 - { \int_gincr:N \g__wi_last_env_int } - \seq_gpop_right:NN \g__wi_arrow_int_seq \l_tmpa_tl - \int_gset:Nn \g__wi_arrow_int \l_tmpa_tl - \seq_gpop_right:NN \g__wi_line_int_seq \l_tmpa_tl - \int_gset:Nn \g__wi_line_int \l_tmpa_tl - \seq_gpop_right:NN \g__wi_col_int_seq \l_tmpa_tl - \int_gset:Nn \g__wi_col_int \l_tmpa_tl - } -\cs_new_protected:Npn \__wi_cr: - { - \scan_stop: - \int_compare:nNnF \g__wi_col_int = \g__wi_static_col_int - { \__wi_error:n { omit~probably~used } } - \prg_replicate:nn { \l__wi_nb_cols_int - \g__wi_static_col_int } { & { } } - \group_align_safe_begin: - \peek_meaning_remove:NTF * \__wi_cr_i: \__wi_cr_i: - } -\cs_new_protected:Npn \__wi_cr_i: - { \peek_meaning:NTF [ \__wi_cr_ii: { \__wi_cr_ii: [ \c_zero_dim ] } } -\cs_new_protected:Npn \__wi_cr_ii: [ #1 ] - { - \peek_meaning_ignore_spaces:NTF \end - { - \__wi_cr_iii:n { #1 } - \__wi_analyze_end:Nn - } - { \__wi_cr_iii:n { #1 } } - } -\cs_new_protected:Npn \__wi_cr_iii:n #1 - { - \group_align_safe_end: - \bool_if:NT \l__wi_in_DispWithArrows_bool - { - \clist_if_in:NnTF \l__wi_tags_clist { all } - { - \tl_if_empty:NT \l__wi_tag_tl { \int_gincr:N \c@equation } - \cs_gset:Npx \g_tmpa_tl - { \tl_if_empty:NTF \l__wi_tag_tl \theequation \l__wi_tag_tl } - \seq_if_empty:NF \l__wi_labels_seq - { - \cs_set:Npx \@currentlabel { \p@equation \g_tmpa_tl } - \bool_if:NT \c__wi_hyperref_loaded_bool - { - \str_set:Nn \This@name { equation } - \hyper@refstepcounter { equation } - } - \bool_if:NT \c__wi_cleveref_loaded_bool - { - \cref@constructprefix { equation } \cref@result - \protected@edef \cref@currentlabel - { - [ - \cs_if_exist:NTF \cref@equation@alias - \cref@equation@alias - { equation } - ] - [ \arabic { equation } ] [ \cref@result ] - \p@equation \g_tmpa_tl - } - } - \seq_map_function:NN \l__wi_labels_seq \__wi_old_label - } - \__wi_save:N \l__wi_tag_star_bool - \__wi_save:N \l__wi_qedhere_bool - \bool_if:NT \l__wi_tag_next_line_bool - { - \openup -\jot - \bool_set_false:N \l__wi_tag_next_line_bool - \notag \\ & - } - & - \__wi_restore:N \l__wi_tag_star_bool - \__wi_restore:N \l__wi_qedhere_bool - \bool_if:NT \l__wi_qedhere_bool - { \hbox_overlap_left:n \__wi_qedhere_i: } - \cs_set_eq:NN \theequation \g_tmpa_tl - \bool_if:NT \l__wi_tag_star_bool - { \cs_set_eq:NN \tagform@ \prg_do_nothing: } - \hbox_overlap_left:n - { - \bool_if:NF \c__wi_leqno_bool - { - \tikz [ __wi_standard ] - \coordinate ( \int_use:N \g__wi_line_int - v ) ; - } - \quad - \@eqnnum - } - \bool_if:NT \c__wi_leqno_bool - { - \tikz [ __wi_standard ] - \coordinate ( \int_use:N \g__wi_line_int - v ) ; - } - } - { - \__wi_save:N \l__wi_qedhere_bool - & - \__wi_restore:N \l__wi_qedhere_bool - \bool_if:NT \l__wi_qedhere_bool - { \hbox_overlap_left:n \__wi_qedhere_i: } - \tikz [ __wi_standard ] - \coordinate ( \int_use:N \g__wi_line_int - v ) ; - } - } - \dim_compare:nNnT { #1 } < \c_zero_dim - { \__wi_error:n { option~of~cr~negative } } - \dim_set:Nn \l_tmpa_dim { \dim_max:nn { #1 } \c_zero_dim } - \cr - \noalign - { - \skip_vertical:n { \l_tmpa_dim + \l__wi_interline_skip } - \scan_stop: - } - } -\cs_new_protected:Npn \__wi_analyze_end:Nn #1 #2 - { - \exp_args:NV \str_if_eq:nnT \l__wi_type_env_str { #2 } - { \__wi_warning:n { newline~at~the~end~of~env } } - \end { #2 } - } -\bool_new:N \l__wi_in_label_or_minipage_bool -\NewDocumentEnvironment { DispWithArrows } { ! d < > ! O { } } - { - \bool_set_true:N \l__wi_in_DispWithArrows_bool - \bool_if:nT \c__wi_mathtools_loaded_bool - { - \MH_if_boolean:nT { show_only_refs } - { - \MT_showonlyrefs_false: - \MH_set_boolean_T:n { show_only_refs } - } - } - \bool_if:NT \c__wi_typedref_loaded_bool { \str_set:Nn \sr@name { equation } } - \bool_if:NT \c__wi_amsmath_loaded_bool \intertext@ - \IfValueT { #1 } { \tl_set:Nn \l__wi_left_brace_tl { #1 } } - \__wi_pre_halign:n { #2 } - \bool_if:NT \l__wi_subequations_bool { \begin { subequations } } - \bool_if:NF \l__wi_sbwi_bool - { - \if@inlabel - \bool_set_true:N \l__wi_in_label_or_minipage_bool - \fi - \if@minipage - \bool_set_true:N \l__wi_in_label_or_minipage_bool - \fi - } - \tl_if_eq:NNF \l__wi_left_brace_tl \c_novalue_tl - { - \hbox_set:Nn \l_tmpa_box - { - \c_math_toggle_token - \left \l__wi_replace_left_brace_by_tl \vcenter to 1 cm { } \right. - \c_math_toggle_token - } - \dim_zero_new:N \l__wi_delim_wd_dim - \dim_set:Nn \l__wi_delim_wd_dim { \box_wd:N \l_tmpa_box } - \box_clear_new:N \l__wi_left_brace_box - \hbox_set:Nn \l__wi_left_brace_box - { - \group_begin: - \cs_set_eq:NN \label \__wi_old_label - \c_math_toggle_token - \bool_if:NT \l__wi_displaystyle_bool \displaystyle - \l__wi_left_brace_tl - { } - \c_math_toggle_token - \group_end: - } - } - \tl_clear_new:N \l__wi_tag_tl - \bool_set_false:N \l__wi_qedhere_bool - \bool_set_false:N \l__wi_tag_star_bool - \if_mode_math: - \__wi_fatal:n { DispWithArrows~in~math~mode } - \fi: - \bool_if:NTF \l__wi_in_label_or_minipage_bool - { \c_math_toggle_token } - { - \if_mode_vertical: - \nointerlineskip - \hbox_to_wd:nn { .6 \linewidth } { } - \fi: - \c_math_toggle_token \c_math_toggle_token - } - \dim_zero_new:N \l__wi_linewidth_dim - \bool_if:NTF \l__wi_in_label_or_minipage_bool - { \dim_set_eq:NN \l__wi_linewidth_dim \linewidth } - { \dim_set_eq:NN \l__wi_linewidth_dim \displaywidth } - \box_clear_new:N \l__wi_halign_box - \setbox \l__wi_halign_box \vtop \bgroup - \tabskip = - \bool_if:NTF \l__wi_fleqn_bool - \c_zero_skip - { 0 pt plus 1000 pt minus 1000 pt } - \__wi_construct_halign: - \tabskip = 0 pt plus 1000 pt minus 1000 pt - & - $ ## $ - \tabskip = \c_zero_skip - && - \__wi_fatal:n { Too~much~columns~in~DispWithArrows } - \bool_if:nT \c_false_bool { ## } - \cr - } - { - \clist_if_in:NnT \l__wi_tags_clist { last } - { \clist_set:Nn \l__wi_tags_clist { all } } - \\ - \egroup - \unskip \unpenalty \unskip \unpenalty - \box_set_to_last:N \l_tmpa_box - \nointerlineskip - \box_use:N \l_tmpa_box - \dim_gzero_new:N \g__wi_alignment_dim - \dim_gset:Nn \g__wi_alignment_dim { \box_wd:N \l_tmpa_box } - \box_clear_new:N \l__wi_new_box - \hbox_set:Nn \l__wi_new_box { \hbox_unpack_clear:N \l_tmpa_box } - \dim_compare:nNnT - { \box_wd:N \l__wi_new_box } < \g__wi_alignment_dim - { \dim_gset:Nn \g__wi_alignment_dim { \box_wd:N \l__wi_new_box } } - \egroup - \tl_if_eq:NNTF \l__wi_left_brace_tl \c_novalue_tl - { \box_use_drop:N \l__wi_halign_box } - { - \hbox_to_wd:nn \l__wi_linewidth_dim - { - \bool_if:NTF \l__wi_fleqn_bool - { \skip_horizontal:n \l__wi_mathindent_dim } - \hfil - \hbox_to_wd:nn \g__wi_alignment_dim - { - \box_use_drop:N \l__wi_left_brace_box - \dim_set:Nn \l_tmpa_dim - { - \box_ht:N \l__wi_halign_box - + \box_dp:N \l__wi_halign_box - } - \c_math_toggle_token - \left \l__wi_replace_left_brace_by_tl - \vcenter to \l_tmpa_dim { \vfil } - \right. - \c_math_toggle_token - \hfil - } - \hfil - } - \skip_horizontal:n { - \l__wi_linewidth_dim } - \vcenter { \box_use_drop:N \l__wi_halign_box } - } - \dim_gzero_new:N \g__wi_right_x_dim - \dim_gset_eq:NN \g__wi_right_x_dim \c_max_dim - \begin { tikzpicture } [ __wi_standard ] - \int_step_variable:nNn \g__wi_line_int \l_tmpa_int - { - \cs_if_free:cTF - { pgf@sh@ns@wa - \l__wi_prefix_str - \l_tmpa_int - v } - { \__wi_fatal:n { Inexistent~v-node } } - { - \tikz@parse@node\pgfutil@firstofone ( \l_tmpa_int - v ) - \dim_set:Nn \l_tmpa_dim \pgf@x - \dim_compare:nNnT \l_tmpa_dim < \g__wi_right_x_dim - { \dim_gset:Nn \g__wi_right_x_dim \l_tmpa_dim } - } - } - \end { tikzpicture } - \__wi_post_halign: - \bool_if:nT \c__wi_mathtools_loaded_bool - { \MH_if_boolean:nT { show_only_refs } \MT_showonlyrefs_true: } - \bool_if:NTF \l__wi_in_label_or_minipage_bool - { - \c_math_toggle_token - \skip_vertical:N \belowdisplayskip - } - { \c_math_toggle_token \c_math_toggle_token } - \bool_if:NT \l__wi_subequations_bool { \end { subequations } } - \bool_if:NT \g__wi_footnote_bool { \end { savenotes } } - \ignorespacesafterend - } -\NewDocumentEnvironment { DispWithArrows* } { } - { - \WithArrowsOptions { notag } - \DispWithArrows - } - \endDispWithArrows -\cs_new_protected:Npn \__wi_if_in_last_col_of_disp:Nn #1 #2 - { - \bool_if:NTF \l__wi_in_WithArrows_bool - { \__wi_error:nn { Not~allowed~in~WithArrows } { #1 } } - { - \int_compare:nNnTF \g__wi_col_int < \l__wi_nb_cols_int - { \__wi_error:nn { Not~allowed~in~DispWithArrows } { #1 } } - { #2 } - } - } -\cs_new_protected:Npn \__wi_notag: - { \__wi_if_in_last_col_of_disp:Nn \notag { \clist_clear:N \l__wi_tags_clist } } -\cs_new_protected:Npn \__wi_nonumber: - { \__wi_if_in_last_col_of_disp:Nn \nonumber { \clist_clear:N \l__wi_tags_clist } } -\NewDocumentCommand \__wi_tag { s m } - { - \__wi_if_in_last_col_of_disp:Nn \tag - { - \tl_if_empty:NF \l__wi_tag_tl - { \__wi_error:nn { Multiple~tags } { #2 } } - \clist_set:Nn \l__wi_tags_clist { all } - \bool_if:nT \c__wi_mathtools_loaded_bool - { - \MH_if_boolean:nT { show_only_refs } - { - \MH_if_boolean:nF { show_manual_tags } - { \clist_clear:N \l__wi_tags_clist } - } - } - \tl_set:Nn \l__wi_tag_tl { #2 } - \bool_set:Nn \l__wi_tag_star_bool { #1 } - \bool_if:nT { #1 && ! \bool_if_p:N \c__wi_amsmath_loaded_bool } - { \__wi_error:n { tag*~without~amsmath } } - } - } -\cs_new_protected:Npn \__wi_label:n #1 - { - \__wi_if_in_last_col_of_disp:Nn \label - { - \seq_if_empty:NF \l__wi_labels_seq - { - \bool_if:NTF \c__wi_cleveref_loaded_bool - { \__wi_error:n { Multiple~labels~with~cleveref } } - { \__wi_error:n { Multiple~labels } } - } - \seq_put_right:Nn \l__wi_labels_seq { #1 } - \bool_if:nT \c__wi_mathtools_loaded_bool - { - \MH_if_boolean:nT { show_only_refs } - { - \cs_if_exist:cTF { MT_r_#1 } - { \clist_set:Nn \l__wi_tags_clist { all } } - { \clist_clear:N \l__wi_tags_clist } - } - } - \bool_if:nT \c__wi_autonum_loaded_bool - { - \cs_if_exist:cTF { autonum@#1Referenced } - { \clist_set:Nn \l__wi_tags_clist { all } } - { \clist_clear:N \l__wi_tags_clist } - } - } - } -\cs_new_protected:Npn \__wi_tagnextline: - { - \__wi_if_in_last_col_of_disp:Nn \tagnextline - { \bool_set_true:N \l__wi_tag_next_line_bool } - } -\cs_new_protected:Npn \__wi_qedhere: { \bool_set_true:N \l__wi_qedhere_bool } -\cs_new_protected:Npn \__wi_set_qedhere: { \cs_set_eq:NN \qedhere \__wi_qedhere: } -\cs_new_protected:Npn \__wi_qedhere_i: - { - \group_begin: - \cs_set_eq:NN \qed \qedsymbol - \cs_set_eq:NN \qed@elt \setQED@elt - \QED@stack \relax \relax - \group_end: - } -\cs_new_protected:Npn \__wi_scan_arrows: - { - \group_begin: - \int_compare:nNnT \l__wi_pos_arrow_int = 7 - { - \__wi_scan_arrows_i: - \int_set:Nn \l__wi_pos_arrow_int 8 - } - \__wi_scan_arrows_i: - \group_end: - } -\cs_new_protected:Npn \__wi_scan_arrows_i: - { - \int_zero_new:N \l__wi_first_arrow_of_group_int - \int_zero_new:N \l__wi_first_line_of_group_int - \int_zero_new:N \l__wi_last_line_of_group_int - \seq_clear_new:N \l__wi_first_arrows_seq - \seq_clear_new:N \l__wi_last_arrows_seq - \bool_set_true:N \l__wi_new_group_bool - \int_set:Nn \l__wi_arrow_int \c_one_int - \int_until_do:nNnn \l__wi_arrow_int > \g__wi_arrow_int - { - \prop_get:cnN - { g__wi_arrow _ \l__wi_prefix_str _ \int_use:N \l__wi_arrow_int _ prop } - { initial } \l_tmpa_tl - \int_set:Nn \l__wi_initial_int \l_tmpa_tl - \prop_get:cnN - { g__wi_arrow _ \l__wi_prefix_str _ \int_use:N \l__wi_arrow_int _ prop } - { final } \l_tmpa_tl - \int_set:Nn \l__wi_final_int \l_tmpa_tl - \prop_get:cnN - { g__wi_arrow _ \l__wi_prefix_str _ \int_use:N \l__wi_arrow_int _ prop } - { status } \l__wi_status_arrow_str - \prop_get:cnN - { g__wi_arrow _ \l__wi_prefix_str _ \int_use:N \l__wi_arrow_int _ prop } - { input-line } \l__wi_input_line_str - \int_compare:nNnTF \l__wi_final_int > \g__wi_line_int - { - \int_compare:nNnF \l__wi_pos_arrow_int = 8 - { \__wi_error:n { Too~few~lines~for~an~arrow } } - } - \__wi_code_for_possible_arrow: - \int_incr:N \l__wi_arrow_int - } - \bool_if:nT - { - \int_compare_p:n { \l__wi_pos_arrow_int != 7 } - && - \int_compare_p:nNn \l__wi_first_arrow_of_group_int > 0 - } - { \__wi_draw_arrows:nn \l__wi_first_arrow_of_group_int \g__wi_arrow_int } - } -\cs_new_protected:Npn \__wi_code_for_possible_arrow: - { - \bool_if:nT - { - \int_compare_p:nNn \l__wi_arrow_int > \c_one_int - && - ( \int_compare_p:n { \l__wi_initial_int > \l__wi_last_line_of_group_int } - && - \int_compare_p:n { \l__wi_pos_arrow_int != 7 } - || - \str_if_eq_p:Vn \l__wi_status_arrow_str { new-group } - ) - } - { - \int_compare:nNnF \l__wi_first_arrow_of_group_int = \c_zero_int - { - \__wi_draw_arrows:nn - \l__wi_first_arrow_of_group_int - { \l__wi_arrow_int - 1 } - } - \bool_set_true:N \l__wi_new_group_bool - } - \bool_if:nTF \l__wi_new_group_bool - { - \bool_set_false:N \l__wi_new_group_bool - \int_set_eq:NN \l__wi_first_arrow_of_group_int \l__wi_arrow_int - \int_set_eq:NN \l__wi_first_line_of_group_int \l__wi_initial_int - \int_set_eq:NN \l__wi_last_line_of_group_int \l__wi_final_int - \seq_clear:N \l__wi_first_arrows_seq - \seq_put_left:NV \l__wi_first_arrows_seq \l__wi_arrow_int - \seq_clear:N \l__wi_last_arrows_seq - \seq_put_left:NV \l__wi_last_arrows_seq \l__wi_arrow_int - \int_compare:nT { \l__wi_pos_arrow_int != 8 } - { \dim_set:Nn \l__wi_x_dim { - \c_max_dim } } - } - { - \bool_if:nF - { \str_if_eq_p:Vn \l__wi_status_arrow_str { independent } } - { - \int_compare:nT - { \l__wi_initial_int = \l__wi_first_line_of_group_int } - { \seq_put_left:NV \l__wi_first_arrows_seq \l__wi_arrow_int } - \int_compare:nNnTF \l__wi_final_int > \l__wi_last_line_of_group_int - { - \int_set_eq:NN \l__wi_last_line_of_group_int \l__wi_final_int - \seq_clear:N \l__wi_last_arrows_seq - \seq_put_left:NV \l__wi_last_arrows_seq \l__wi_arrow_int - } - { - \int_compare:nNnT \l__wi_final_int = \l__wi_last_line_of_group_int - { \seq_put_left:NV \l__wi_last_arrows_seq \l__wi_arrow_int } - } - } - } - \bool_if:nF { \str_if_eq_p:Vn \l__wi_status_arrow_str { independent } } - { - \int_compare:nT { \l__wi_pos_arrow_int != 8 } - { \__wi_update_x:nn \l__wi_initial_int \l__wi_final_int } - } - } -\cs_generate_variant:Nn \keys_set:nn { n o } -\cs_new_protected:Npn \__wi_keys_set: - { \keys_set_known:no { WithArrows / Arrow / SecondPass } } -\cs_new_protected:Npn \__wi_draw_arrows:nn #1 #2 - { - \group_begin: - \int_zero_new:N \l__wi_first_arrow_int - \int_set:Nn \l__wi_first_arrow_int { #1 } - \int_zero_new:N \l__wi_last_arrow_int - \int_set:Nn \l__wi_last_arrow_int { #2 } - \int_set:Nn \l__wi_arrow_int \l__wi_first_arrow_int - \int_until_do:nNnn \l__wi_arrow_int > \l__wi_last_arrow_int - { - \prop_get:cnN - { g__wi_arrow _ \l__wi_prefix_str _ \int_use:N \l__wi_arrow_int _ prop } - { initial } \l_tmpa_tl - \int_set:Nn \l__wi_initial_int \l_tmpa_tl - \prop_get:cnN - { g__wi_arrow _ \l__wi_prefix_str _ \int_use:N \l__wi_arrow_int _ prop } - { final } \l_tmpa_tl - \int_set:Nn \l__wi_final_int \l_tmpa_tl - \int_compare:nT { \l__wi_final_int <= \g__wi_line_int } \__wi_draw_arrows_i: - \int_incr:N \l__wi_arrow_int - } - \group_end: - } -\cs_new_protected:Npn \__wi_draw_arrows_i: - { - \group_begin: - \prop_get:cnN - { g__wi_arrow _\l__wi_prefix_str _ \int_use:N \l__wi_arrow_int _ prop } - { options } \l_tmpa_tl - \str_clear_new:N \l__wi_previous_key_str - \exp_args:NNo \exp_args:No - \__wi_keys_set: { \l_tmpa_tl , tikz = { xshift = \l__wi_xoffset_dim } } - \bool_set_false:N \l__wi_initial_r_bool - \bool_set_false:N \l__wi_final_r_bool - \int_case:nn \l__wi_pos_arrow_int - { - 0 { \bool_set_true:N \l__wi_final_r_bool } - 2 { \bool_set_true:N \l__wi_initial_r_bool } - 3 - { - \bool_set_true:N \l__wi_initial_r_bool - \bool_set_true:N \l__wi_final_r_bool - } - } - \int_compare:nNnT \l__wi_pos_arrow_int = 5 - { - \dim_set:Nn \l__wi_x_dim { - \c_max_dim } - \__wi_update_x:nn \l__wi_initial_int \l__wi_final_int - } - \tl_set:Nx \l__wi_initial_tl - { - \int_use:N \l__wi_initial_int - \bool_if:NTF \l__wi_initial_r_bool rl - .south - } - \tl_set:Nx \l__wi_final_tl - { \int_use:N \l__wi_final_int - \bool_if:NTF \l__wi_final_r_bool rl .north } - \prop_get:cnN - { g__wi_arrow _ \l__wi_prefix_str _ \int_use:N \l__wi_arrow_int _ prop } - { label } - \l_tmpa_tl - \seq_if_in:NxTF \l__wi_first_arrows_seq - { \int_use:N \l__wi_arrow_int } - { \bool_set_true:N \l_tmpa_bool } - { \bool_set_false:N \l_tmpa_bool } - \seq_if_in:NxTF \l__wi_last_arrows_seq - { \int_use:N \l__wi_arrow_int } - { \bool_set_true:N \l_tmpb_bool } - { \bool_set_false:N \l_tmpb_bool } - \int_compare:nNnT \l__wi_pos_arrow_int = 5 - { - \bool_set_true:N \l_tmpa_bool - \bool_set_true:N \l_tmpb_bool - } - \begin { tikzpicture } [ __wi_standard ] - \tikz@scan@one@point \pgfutil@firstofone ( \l__wi_initial_tl ) - \tl_gset:Nx \g_tmpa_tl - { - \int_compare:nNnTF \l__wi_pos_arrow_int < 5 - { \dim_use:N \pgf@x } - { \dim_use:N \l__wi_x_dim } , - \bool_if:NTF \l_tmpa_bool - { \dim_eval:n { \pgf@y + \l__wi_start_adjust_dim } } - { \dim_use:N \pgf@y } - } - \tikz@scan@one@point \pgfutil@firstofone ( \l__wi_final_tl ) - \tl_gset:Nx \g_tmpb_tl - { - \int_compare:nNnTF \l__wi_pos_arrow_int < 5 - { \dim_use:N \pgf@x } - { \dim_use:N \l__wi_x_dim } , - \bool_if:NTF \l_tmpb_bool - { \dim_eval:n { \pgf@y - \l__wi_end_adjust_dim } } - { \dim_use:N \pgf@y } - } - \end { tikzpicture } - \__wi_draw_arrow:nno \g_tmpa_tl \g_tmpb_tl \l_tmpa_tl - \group_end: - } -\cs_new_protected:Npn \__wi_def_function_tmpa:n #1 - { - \cs_set:Npn \__wi_tmpa:nnn ##1 ##2 ##3 - { - \begin{tikzpicture} - [ - __wi_standard , - every~path / .style = WithArrows / arrow - ] - #1 - \end{tikzpicture} - } - } -\cs_new_protected:Npn \__wi_draw_arrow:nnn #1 #2 #3 - { - \bool_if:nT { \l__wi_wrap_lines_bool && \l__wi_in_DispWithArrows_bool } - { \tl_set_eq:NN \l__wi_tikz_code_tl \c__wi_tikz_code_wrap_lines_tl } - \exp_args:NV \__wi_def_function_tmpa:n \l__wi_tikz_code_tl - \__wi_tmpa:nnn { #1 } { #2 } { #3 } - } -\cs_generate_variant:Nn \__wi_draw_arrow:nnn { n n o } -\tl_const:Nn \c__wi_tikz_code_wrap_lines_tl - { - \draw ( #1 ) to node ( __wi_label ) { } ( #2 ) ; - \tikz@parse@node \pgfutil@firstofone ( __wi_label.west ) - \dim_set:Nn \l_tmpa_dim - { \g__wi_right_x_dim - \pgf@x - \pgfkeysvalueof { / pgf / inner~xsep } } - \path \pgfextra { \tl_gset:Nx \g_tmpa_tl \tikz@text@width } ; - \tl_if_empty:NF \g_tmpa_tl - { - \dim_set:Nn \l_tmpb_dim \g_tmpa_tl - \dim_compare:nNnT \l_tmpb_dim < \l_tmpa_dim - { \dim_set_eq:NN \l_tmpa_dim \l_tmpb_dim } - } - \dim_compare:nNnT \l_tmpa_dim > \c_zero_dim - { - \path ( __wi_label.west ) - node [ anchor = west , text~width = \dim_use:N \l_tmpa_dim ] - { #3 } ; - } - } -\cs_new_protected:Npn \__wi_update_x:nn #1 #2 - { - \int_step_inline:nnn { #1 } { #2 } - { - \begin { tikzpicture } [ __wi_standard ] - \tikz@scan@one@point \pgfutil@firstofone ( ##1 - l ) - \dim_gset:Nn \g_tmpa_dim { \dim_max:nn \l__wi_x_dim \pgf@x } - \end { tikzpicture } - \dim_set_eq:NN \l__wi_x_dim \g_tmpa_dim - } - } -\cs_new:Npn \WithArrowsLastEnv { \int_use:N \g__wi_last_env_int } -\keys_define:nn { WithArrows / Arrow / code-after } - { - tikz .code:n = - \tikzset { WithArrows / arrow / .append~style = { #1 } } , - tikz .value_required:n = true , - rr .value_forbidden:n = true , - rr .code:n = \__wi_fix_pos_option:n 0 , - ll .value_forbidden:n = true, - ll .code:n = \__wi_fix_pos_option:n 1 , - rl .value_forbidden:n = true , - rl .code:n = \__wi_fix_pos_option:n 2 , - lr .value_forbidden:n = true , - lr .code:n = \__wi_fix_pos_option:n 3 , - v .value_forbidden:n = true , - v .code:n = \__wi_fix_pos_option:n 4 , - tikz-code .tl_set:N = \l__wi_tikz_code_tl , - tikz-code .value_required:n = true , - xoffset .dim_set:N = \l__wi_xoffset_dim , - xoffset .value_required:n = true , - unknown .code:n = - \__wi_sort_seq:N \l__wi_options_Arrow_code_after_seq - \__wi_error:n { Unknown~option~Arrow~in~code-after } - } -\seq_new:N \l__wi_options_Arrow_code_after_seq -\__wi_set_seq_of_str_from_clist:Nn \l__wi_options_Arrow_code_after_seq - { ll, lr, rl, rr, tikz, tikz-code, v, x, offset } -\NewDocumentCommand \__wi_Arrow_code_after { O { } m m m ! O { } } - { - \int_set:Nn \l__wi_pos_arrow_int 1 - \str_clear_new:N \l__wi_previous_key_str - \group_begin: - \keys_set:nn { WithArrows / Arrow / code-after } - { #1, #5, tikz = { xshift = \l__wi_xoffset_dim } } - \bool_set_false:N \l__wi_initial_r_bool - \bool_set_false:N \l__wi_final_r_bool - \int_case:nn \l__wi_pos_arrow_int - { - 0 - { - \bool_set_true:N \l__wi_initial_r_bool - \bool_set_true:N \l__wi_final_r_bool - } - 2 { \bool_set_true:N \l__wi_initial_r_bool } - 3 { \bool_set_true:N \l__wi_final_r_bool } - } - \tl_if_eq:nnTF { #2 } { #3 } - { \__wi_error:nn { Both~lines~are~equal } { #2 } } - { - \cs_if_free:cTF { pgf@sh@ns@wa - \l__wi_prefix_str - #2 - l } - { \__wi_error:nx { Wrong~line~in~Arrow } { #2 } } - { - \cs_if_free:cTF { pgf@sh@ns@wa - \l__wi_prefix_str - #3 - l } - { \__wi_error:nx { Wrong~line~in~Arrow } { #3 } } - { - \int_compare:nNnTF \l__wi_pos_arrow_int = 4 - { - \begin { tikzpicture } [ __wi_standard ] - \tikz@scan@one@point \pgfutil@firstofone (#2-l.south) - \dim_set_eq:NN \l_tmpa_dim \pgf@x - \dim_set_eq:NN \l_tmpb_dim \pgf@y - \tikz@scan@one@point \pgfutil@firstofone (#3-l.north) - \dim_set:Nn \l_tmpa_dim - { \dim_max:nn \l_tmpa_dim \pgf@x } - \tl_gset:Nx \g_tmpa_tl - { \dim_use:N \l_tmpa_dim , \dim_use:N \l_tmpb_dim } - \tl_gset:Nx \g_tmpb_tl - { \dim_use:N \l_tmpa_dim , \dim_use:N \pgf@y } - \end { tikzpicture } - } - { - \begin { tikzpicture } [ __wi_standard ] - \tikz@scan@one@point \pgfutil@firstofone - ( #2-\bool_if:NTF\l__wi_initial_r_bool rl .south ) - \tl_gset:Nx \g_tmpa_tl - { \dim_use:N \pgf@x , \dim_use:N \pgf@y } - \tikz@scan@one@point \pgfutil@firstofone - ( #3-\bool_if:NTF\l__wi_final_r_bool rl .north ) - \tl_gset:Nx \g_tmpb_tl - { \dim_use:N \pgf@x , \dim_use:N \pgf@y } - \end { tikzpicture } - } - \__wi_draw_arrow:nnn \g_tmpa_tl \g_tmpb_tl { #4 } - } - } - } - \group_end: - } -\cs_new_protected:Npn \__wi_MultiArrow:nn #1 #2 - { - \foreach \x in { #1 } - { - \cs_if_free:cTF { pgf@sh@ns@wa - \l__wi_prefix_str - \x - l } - { \__wi_error:nx { Wrong~line~specification~in~MultiArrow } \x } - { \clist_gput_right:Nx \g_tmpa_clist \x } - } - \int_compare:nTF { \clist_count:N \g_tmpa_clist < 2 } - { \__wi_error:n { Too~small~specification~for~MultiArrow } } - { - \clist_sort:Nn \g_tmpa_clist - { - \int_compare:nTF { ##1 > ##2 } - \sort_return_swapped: - \sort_return_same: - } - \clist_pop:NN \g_tmpa_clist \l_tmpa_tl - \clist_reverse:N \g_tmpa_clist - \clist_pop:NN \g_tmpa_clist \l_tmpb_tl - \exp_args:NV \__wi_MultiArrow_i:n \g_tmpa_clist - \begin { tikzpicture } - [ - __wi_standard , - every~path / .style = { WithArrows / arrow } - ] - \draw [<->] ([xshift = \l__wi_xoffset_dim]\l_tmpa_tl-r.south) - -- ++(5mm,0) - -- node (__wi_label) {} - ([xshift = \l__wi_xoffset_dim+5mm]\l_tmpb_tl-r.south) - -- ([xshift = \l__wi_xoffset_dim]\l_tmpb_tl-r.south) ; - \tikz@parse@node \pgfutil@firstofone (__wi_label.west) - \dim_set:Nn \l_tmpa_dim { 20 cm } - \path \pgfextra { \tl_gset:Nx \g_tmpa_tl \tikz@text@width } ; - \tl_if_empty:NF \g_tmpa_tl { \dim_set:Nn \l_tmpa_dim \g_tmpa_tl } - \bool_if:nT { \l__wi_wrap_lines_bool && \l__wi_in_DispWithArrows_bool } - { - \dim_set:Nn \l_tmpb_dim - { \g__wi_right_x_dim - \pgf@x - 0.3333 em } - \dim_compare:nNnT \l_tmpb_dim < \l_tmpa_dim - { \dim_set_eq:NN \l_tmpa_dim \l_tmpb_dim } - } - \path (__wi_label.west) - node [ anchor = west, text~width = \dim_use:N \l_tmpa_dim ] { #2 } ; - \end{tikzpicture} - } - } -\cs_new_protected:Npn \__wi_MultiArrow_i:n #1 - { - \begin {tikzpicture } - [ - __wi_standard , - every~path / .style = { WithArrows / arrow } - ] - \foreach \k in { #1 } - { - \draw [ <- ] - ( [xshift = \l__wi_xoffset_dim]\k-r.south ) -- ++(5mm,0) ; - } ; - \end { tikzpicture } - } -\str_const:Nn \c__wi_option_ignored_str - { If~you~go~on,~this~option~will~be~ignored. } -\str_const:Nn \c__wi_command_ignored_str - { If~you~go~on,~this~command~will~be~ignored. } -\__wi_msg_new:nn { amsmath~not~loaded } - { - You~can't~use~the~option~'\l_keys_key_tl'~because~the~ - package~'amsmath'~has~not~been~loaded.\\ - If~you~go~on,~this~option~will~be~ignored~in~the~rest~ - of~the~document. - } -\__wi_msg_new:nn { Bad~value~for~replace~brace~by } - { - Bad~value~for~the~option~'\l_keys_key_tl'.~The~value~must~be~ - an~extensible~left~delimiter.~The~possible~values~are:~ - \token_to_str:N \{,~(,~[,~\token_to_str:N \lbrace,~ - \token_to_str:N \lbrack,~\token_to_str:N \lgroup,~ - \token_to_str:N \langle,~\token_to_str:N \lmoustache,~ - \token_to_str:N \lfloor\ and~\token_to_str:N \lceil\ - (and~\token_to_str:N \lvert\ and~\token_to_str:N \lVert\ - if~amsmath~or~unicode-math~is~loaded).\\ - \c__wi_option_ignored_str - } -\__wi_msg_new:nn { option~of~cr~negative } - { - The~argument~of~the~command~\token_to_str:N\\~ - should~be~positive~in~the~row~\int_use:N \g__wi_line_int\ - of~your~environment~\{\l__wi_type_env_str\}.\\ - \c__wi_option_ignored_str - } -\__wi_msg_new:nn { omit~probably~used } - { - There~is~a~problem.~Maybe~you~have~used~a~command~ - \token_to_str:N\omit\ in~the~line~\int_use:N \g__wi_line_int\ - (or~another~line)~of~your~environment~\{\l__wi_type_env_str\}.\\ - You~can~go~on~but~you~may~have~others~errors. - } -\__wi_msg_new:nn { newline~at~the~end~of~env } - { - Your~environment~\{\l__wi_type_env_str\}~should~not~end~with~ - a~\token_to_str:N \\.\\ - This~warning~might~become~an~error~in~a~future~version. - } -\__wi_msg_new:nn { Invalid~option~format } - { - The~key~'format'~should~contain~only~letters~r,~c~and~l~and~ - must~not~be~empty.\\ - \c__wi_option_ignored_str - } -\__wi_msg_new:nn { Value~for~a~key } - { - The~key~'\l_keys_key_tl'~should~be~used~without~value. \\ - However,~you~can~go~on~for~this~time. - } -\__wi_msg_new:nnn { Unknown~option~in~Arrow } - { - The~key~'\l_keys_key_tl'~is~unknown~for~the~command~ - \l__wi_string_Arrow_for_msg_str\ in~the~row~ - \int_use:N \g__wi_line_int\ of~your~environment~ - \{\l__wi_type_env_str\}. \l_tmpa_str \\ - \c__wi_option_ignored_str \\ - For~a~list~of~the~available~keys,~type~H~<return>. - } - { - The~available~keys~are~(in~alphabetic~order):~ - \seq_use:Nnnn \l__wi_options_Arrow_seq {~and~} {,~} {~and~}. - } -\__wi_msg_new:nnn { Unknown~option~WithArrows } - { - The~key~'\l_keys_key_tl'~is~unknown~in~\{\l__wi_type_env_str\}. \\ - \c__wi_option_ignored_str \\ - For~a~list~of~the~available~keys,~type~H~<return>. - } - { - The~available~keys~are~(in~alphabetic~order):~ - \seq_use:Nnnn \l__wi_options_WithArrows_seq {~and~} {,~} {~and~}. - } -\__wi_msg_new:nnn { Unknown~option~DispWithArrows } - { - The~key~'\l_keys_key_tl'~is~unknown~in~\{\l__wi_type_env_str\}. \\ - \c__wi_option_ignored_str \\ - For~a~list~of~the~available~keys,~type~H~<return>. - } - { - The~available~keys~are~(in~alphabetic~order):~ - \seq_use:Nnnn \l__wi_options_DispWithArrows_seq {~and~} {,~} {~and~}. - } -\__wi_msg_new:nnn { Unknown~option~WithArrowsOptions } - { - The~key~'\l_keys_key_tl'~is~unknown~in~ - \token_to_str:N \WithArrowsOptions. \\ - \c__wi_option_ignored_str \\ - For~a~list~of~the~available~keys,~type~H~<return>. - } - { - The~available~keys~are~(in~alphabetic~order):~ - \seq_use:Nnnn \l__wi_options_WithArrowsOptions_seq {~and~} {,~} {~and~}. - } -\__wi_msg_new:nnn { Unknown~option~Arrow~in~code-after } - { - The~key~'\l_keys_key_tl'~is~unknown~in~ - \token_to_str:N \Arrow\ in~code-after. \\ - \c__wi_option_ignored_str \\ - For~a~list~of~the~available~keys,~type~H~<return>. - } - { - The~available~keys~are~(in~alphabetic~order):~ - \seq_use:Nnnn \l__wi_options_Arrow_code_after_seq {~and~} {,~} {~and~}. - } -\__wi_msg_new:nn { Too~much~columns~in~WithArrows } - { - Your~environment~\{\l__wi_type_env_str\}~has~\int_use:N - \l__wi_nb_cols_int\ columns~and~you~try~to~use~one~more.~ - Maybe~you~have~forgotten~a~\c_backslash_str\c_backslash_str.~ - If~you~really~want~to~use~more~columns~(after~the~arrows)~you~should~use~ - the~option~'more-columns'~at~a~global~level~or~for~an~environment. \\ - However,~you~can~go~one~for~this~time. - } -\__wi_msg_new:nn { Too~much~columns~in~DispWithArrows } - { - Your~environment~\{\l__wi_type_env_str\}~has~\int_use:N - \l__wi_nb_cols_int\ columns~and~you~try~to~use~one~more.~ - Maybe~you~have~forgotten~a~\c_backslash_str\c_backslash_str\ - at~the~end~of~row~\int_use:N \g__wi_line_int. \\ - This~error~is~fatal. - } -\__wi_msg_new:nn { Negative~jump } - { - You~can't~use~a~negative~value~for~the~option~'jump'~of~command~ - \l__wi_string_Arrow_for_msg_str\ - in~the~row~\int_use:N \g__wi_line_int\ - of~your~environment~\{\l__wi_type_env_str\}.~ - You~can~create~an~arrow~going~backwards~with~the~option~'<-'~of~Tikz. \\ - \c__wi_option_ignored_str - } -\__wi_msg_new:nn { new-group~without~groups } - { - You~can't~use~the~option~'new-group'~for~the~command~ - \l__wi_string_Arrow_for_msg_str\ - because~you~are~not~in~'groups'~mode.~Try~to~use~the~option~ - 'groups'~in~your~environment~\{\l__wi_type_env_str\}. \\ - \c__wi_option_ignored_str - } -\__wi_msg_new:nn - { Too~few~lines~for~an~arrow } - { - Line~\l__wi_input_line_str\ - :~an~arrow~specified~in~the~row~\int_use:N \l__wi_initial_int\ - of~your~environment~\{\l__wi_type_env_str\}~can't~be~drawn~ - because~it~arrives~after~the~last~row~of~the~environment. \\ - If~you~go~on,~this~arrow~will~be~ignored. - } -\__wi_msg_new:nn { WithArrows~outside~math~mode } - { - The~environment~\{\l__wi_type_env_str\}~should~be~used~only~in~math~mode~ - like~the~environment~\{aligned\}~of~amsmath. \\ - Nevertheless,~you~can~go~on. - } -\__wi_msg_new:nn { DispWithArrows~in~math~mode } - { - The~environment~\{\l__wi_type_env_str\}~should~be~used~only~outside~math~ - mode~like~the~environment~\{align\}~of~amsmath. \\ - This~error~is~fatal. - } -\__wi_msg_new:nn { Incompatible~options~in~Arrow } - { - You~try~to~use~the~option~'\l_keys_key_tl'~but~ - this~option~is~incompatible~or~redundant~with~the~option~ - '\l__wi_previous_key_str'~set~in~the~same~command~ - \l__wi_string_Arrow_for_msg_str. \\ - \c__wi_option_ignored_str - } -\__wi_msg_new:nn { Incompatible~options } - { You~try~to~use~the~option~'\l_keys_key_tl'~but~ - this~option~is~incompatible~or~redundant~with~the~option~ - '\l__wi_previous_key_str'~set~in~the~same~command~ - \bool_if:NT \l__wi_in_code_after_bool - { - \l__wi_string_Arrow_for_msg_str\ - in~the~code-after~of~your~environment~\{\l__wi_type_env_str\} - }. \\ - \c__wi_option_ignored_str - } -\__wi_msg_new:nn { Arrow~not~in~last~column } - { - You~should~use~the~command~\l__wi_string_Arrow_for_msg_str\ - only~in~the~last~column~(column~\int_use:N\l__wi_nb_cols_int)~ - of~your~environment~\{\l__wi_type_env_str\}.\\ - However~you~can~go~on~for~this~time. - } -\__wi_msg_new:nn { Wrong~line~in~Arrow } - { - The~specification~of~line~'#1'~you~use~in~the~command~ - \l__wi_string_Arrow_for_msg_str\ - in~the~'code-after'~of~\{\l__wi_type_env_str\}~doesn't~exist. \\ - \c__wi_option_ignored_str - } -\__wi_msg_new:nn { Both~lines~are~equal } - { - In~the~'code-after'~of~\{\l__wi_type_env_str\}~you~try~to~ - draw~an~arrow~going~to~it~self~from~the~line~'#1'.~This~is~not~possible. \\ - \c__wi_option_ignored_str - } -\__wi_msg_new:nn { Wrong~line~specification~in~MultiArrow } - { - The~specification~of~line~'#1'~doesn't~exist. \\ - If~you~go~on,~it~will~be~ignored~for~\token_to_str:N \MultiArrow. - } -\__wi_msg_new:nn { Too~small~specification~for~MultiArrow } - { - The~specification~of~lines~you~gave~to~\token_to_str:N \MultiArrow\ - is~too~small:~you~need~at~least~two~lines. \\ - \c__wi_option_ignored_str - } -\__wi_msg_new:nn { tag*~without~amsmath } - { - We~can't~use~\token_to_str:N\tag*~because~you~haven't~loaded~amsmath~ - (or~mathtools). \\ - If~you~go~on,~the~command~\token_to_str:N\tag\ - will~be~used~instead. - } -\__wi_msg_new:nn { Not~allowed~in~DispWithArrows } - { - The~command~\token_to_str:N #1 - is~allowed~only~in~the~last~column~ - (column~\int_use:N\l__wi_nb_cols_int)~of~\{\l__wi_type_env_str\}. \\ - \c__wi_option_ignored_str - } -\__wi_msg_new:nn { Not~allowed~in~WithArrows } - { - The~command~\token_to_str:N #1 is~not~allowed~in~\{\l__wi_type_env_str\}~ - (it's~allowed~in~the~last~column~of~\{DispWithArrows\}). \\ - \c__wi_option_ignored_str - } -\__wi_msg_new:nn { Multiple~tags } - { - You~can't~use~twice~the~command~\token_to_str:N\tag\ - in~a~line~of~the~environment~\{\l__wi_type_env_str\}. \\ - If~you~go~on,~the~tag~'#1'~will~be~used. - } -\__wi_msg_new:nn { Multiple~labels } - { - Normally,~we~can't~use~the~command~\token_to_str:N\label\ - twice~in~a~line~of~the~environment~\{\l__wi_type_env_str\}. \\ - However,~you~can~go~on.~ - \bool_if:NT \c__wi_showlabels_loaded_bool - { However,~only~the~last~label~will~be~shown~by~showlabels.~ } - If~you~don't~want~to~see~this~message~again,~you~can~use~the~option~ - 'allow-multiple-labels'~at~the~global~or~environment~level. - } -\__wi_msg_new:nn { Multiple~labels~with~cleveref } - { - Since~you~use~cleveref,~you~can't~use~the~command~\token_to_str:N\label\ - twice~in~a~line~of~the~environment~\{\l__wi_type_env_str\}. \\ - If~you~go~on,~you~may~have~undefined~references. - } -\__wi_msg_new:nn { Inexistent~v-node } - { - There~is~a~problem.~Maybe~you~have~put~a~command~\token_to_str:N\cr\ - instead~of~a~command~\token_to_str:N\\~at~the~end~of~ - the~row~\l_tmpa_int\ - of~your~environment~\{\l__wi_type_env_str\}. \\ - This~error~is~fatal. - } -\__wi_msg_new:nn { Option~xoffset~forbidden } - { - You~can't~use~the~option~'xoffset'~in~the~command~ - \l__wi_string_Arrow_for_msg_str\ - while~you~are~using~the~option~ - ' \int_compare:nNnTF \l__wi_pos_arrow_int = 7 - { group } - { groups } '. \\ - \c__wi_option_ignored_str - } -\__wi_msg_new:nnn { Duplicate~name } - { - The~name~'\l_keys_value_tl'~is~already~used~and~you~shouldn't~use~ - the~same~environment~name~twice.~You~can~go~on,~but,~ - maybe,~you~will~have~incorrect~results. \\ - For~a~list~of~the~names~already~used,~type~H~<return>. \\ - If~you~don't~want~to~see~this~message~again,~use~the~option~ - 'allow-duplicate-names'. - } - { - The~names~already~defined~in~this~document~are:~ - \seq_use:Nnnn \g__wi_names_seq { ,~ } { ,~ } { ~and~ }. - } -\NewDocumentCommand \WithArrowsNewStyle { m m } - { - \keys_if_exist:nnTF { WithArrows / Global } { #1 } - { \__wi_error:nn { Key~already~defined } { #1 } } - { - \keys_define:nn { WithArrows / Global } - { - #1 .code:n = - { \keys_set_known:nn { WithArrows / WithArrowsOptions } { #2 } } - } - \seq_put_right:Nx \l__wi_options_WithArrows_seq { \tl_to_str:n { #1 } } - \seq_put_right:Nx \l__wi_options_DispWithArrows_seq - { \tl_to_str:n { #1 } } - \seq_put_right:Nx \l__wi_options_WithArrowsOptions_seq - { \tl_to_str:N { #1 } } - \group_begin: - \msg_set:nnn { witharrows } { Unknown~option~WithArrowsOptions } - { - The~key~'\l_keys_key_tl'~can't~be~set~in~the~ - definition~of~a~style.~You~can~go~on~for~this~time~ - but~you~should~suppress~this~key. - } - \WithArrowsOptions { #2 } - \group_end: - } - } -\__wi_msg_new:nn { Key~already~defined } - { - The~key~'#1'~is~already~defined. \\ - If~you~go~on,~your~instruction~\token_to_str:N\WithArrowsNewStyle\ - will~be~ignored. - } -\tl_const:Nn \c__wi_tikz_code_up_tl - { - \draw [ rounded~corners ] - let \p1 = (#1) , - \p2 = (#2) - in (\p1) -- node { - \dim_set:Nn \l_tmpa_dim { \x2 - \x1 } - \begin { varwidth } \l_tmpa_dim - \raggedright - #3 - \end { varwidth } - } - (\x2,\y1) -- (\p2) ; - } -\tl_const:Nn \c__wi_tikz_code_down_tl - { - \draw [ rounded~corners ] - let \p1 = (#1) , - \p2 = (#2) - in (\p1) -- (\x1,\y2) -- - node { - \dim_set:Nn \l_tmpa_dim { \x1 - \x2 } - \begin { varwidth } \l_tmpa_dim - \raggedright - #3 - \end { varwidth } - } - (\p2) ; - } -\keys_define:nn { WithArrows / Arrow / FirstPass } - { - up .code:n = \__wi_set_independent: , - down .code:n = \__wi_set_independent: , - up .default:n = NoValue , - down .default:n = NoValue - } -\keys_define:nn { WithArrows / Arrow / SecondPass } - { - up .code:n = - \str_if_empty:NT \l__wi_previous_key_str - { - \str_set:Nn \l__wi_previous_key_str { up } - \bool_if:NTF \c__wi_varwidth_loaded_bool - { - \cs_if_exist:cTF { tikz@library@calc@loaded } - { - \int_set:Nn \l__wi_pos_arrow_int \c_one_int - \bool_set_false:N \l__wi_wrap_lines_bool - \tl_set_eq:NN \l__wi_tikz_code_tl - \c__wi_tikz_code_up_tl - } - { \__wi_error:n { calc~not~loaded } } - } - { \__wi_error:n { varwidth~not~loaded } } - } , - down .code:n = - \str_if_empty:NT \l__wi_previous_key_str - { - \str_set:Nn \l__wi_previous_key_str { down } - \bool_if:NTF \c__wi_varwidth_loaded_bool - { - \cs_if_exist:cTF { tikz@library@calc@loaded } - { - \int_set:Nn \l__wi_pos_arrow_int \c_one_int - \bool_set_false:N \l__wi_wrap_lines_bool - \tl_set_eq:NN \l__wi_tikz_code_tl - \c__wi_tikz_code_down_tl - } - { \__wi_error:n { calc~not~loaded } } - } - { \__wi_error:n { varwidth~not~loaded } } - } - } -\seq_put_right:Nn \l__wi_options_Arrow_seq { down } -\seq_put_right:Nn \l__wi_options_Arrow_seq { up } -\__wi_msg_new:nn { varwidth~not~loaded } - { - You~can't~use~the~option~'\l_keys_key_tl'~because~ - you~don't~have~loaded~the~package~'varwidth'. \\ - \c__wi_option_ignored_str - } -\__wi_msg_new:nn { calc~not~loaded } - { - You~can't~use~the~option~'\l_keys_key_tl'~because~you~don't~have~loaded~the~ - Tikz~library~'calc'.You~should~add~'\token_to_str:N\usetikzlibrary{calc}' - ~in~the~preamble~of~your~document. \\ - \c__wi_option_ignored_str - } -\endinput -%% -%% End of file `witharrows.sty'. |