summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2019-02-02 22:40:05 +0000
committerKarl Berry <karl@freefriends.org>2019-02-02 22:40:05 +0000
commitb75126fec00fa8fd38a87a1c3e4852ac858f7465 (patch)
tree92be8229b65e29c56b046158241dc07875b4ce0b /Master/texmf-dist/tex
parente4085f904b974b17f7b25d2f9aa18bc94a32c134 (diff)
witharrows (2feb19)
git-svn-id: svn://tug.org/texlive/trunk@49912 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex')
-rw-r--r--Master/texmf-dist/tex/latex/witharrows/witharrows.sty1404
1 files changed, 745 insertions, 659 deletions
diff --git a/Master/texmf-dist/tex/latex/witharrows/witharrows.sty b/Master/texmf-dist/tex/latex/witharrows/witharrows.sty
index e7809aa70b2..98375f94bd6 100644
--- a/Master/texmf-dist/tex/latex/witharrows/witharrows.sty
+++ b/Master/texmf-dist/tex/latex/witharrows/witharrows.sty
@@ -6,7 +6,7 @@
%%
%% witharrows.dtx (with options: `package')
%%
-%% Copyright (C) 2017-2018 by F. Pantigny
+%% 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
@@ -18,24 +18,24 @@
%% and version 1.3 or later is part of all distributions of
%% LaTeX version 2005/12/01 or later.
%%
-\def\myfileversion{1.13}
-\def\myfiledate{2018/12/31}
+\def\myfileversion{1.14}
+\def\myfiledate{2019/02/01}
\RequirePackage{tikz}
\usetikzlibrary{arrows.meta,bending}
-\RequirePackage{expl3}[2018-01-01]
+\RequirePackage{expl3}[2019/01/28]
\RequirePackage{l3keys2e}
\ProvidesExplPackage
{witharrows}
{\myfiledate}
{\myfileversion}
{Draws arrows for explanations on the right}
-\RequirePackage{xparse}
-\bool_new:N \g__wi_footnotehyper_bool
-\bool_new:N \g__wi_footnote_bool
-\int_new:N \l__wi_level_int
+\RequirePackage{xparse}[2018-10-17]
+\bool_new:N \g__wa_footnotehyper_bool
+\bool_new:N \g__wa_footnote_bool
+\int_new:N \l__wa_level_int
\keys_define:nn {WithArrows/package}
- {footnote .bool_gset:N = \g__wi_footnote_bool,
- footnotehyper .bool_gset:N = \g__wi_footnotehyper_bool,
+ {footnote .bool_gset:N = \g__wa_footnote_bool,
+ footnotehyper .bool_gset:N = \g__wa_footnotehyper_bool,
unknown .code:n = \msg_fatal:nn {witharrows}
{Option~unknown~for~package}}
\msg_new:nnn {witharrows}
@@ -52,16 +52,16 @@
{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~{WithArrows}~will~be~extracted~with~the~tools~
+ within~the~environments~of~witharrows~will~be~extracted~with~the~tools~
of~the~package~footnotehyper.}
\msg_new:nnn {witharrows}
{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~{WithArrows}~will~be~extracted~with~the~tools~
+ within~the~environments~of~withArrows~will~be~extracted~with~the~tools~
of~the~package~footnote.}
-\bool_if:NT \g__wi_footnote_bool
+\bool_if:NT \g__wa_footnote_bool
{\@ifclassloaded {beamer}
{\msg_fatal:nn {witharrows}
{Option~incompatible~with~Beamer}}
@@ -71,7 +71,7 @@
{footnote~with~footnotehyper~package}}
{}
\usepackage{footnote}}
-\bool_if:NT \g__wi_footnotehyper_bool
+\bool_if:NT \g__wa_footnotehyper_bool
{\@ifclassloaded {beamer}
{\msg_fatal:nn {witharrows}
{Option~incompatible~with~Beamer}}
@@ -81,29 +81,30 @@
{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}
+ \bool_gset_true:N \g__wa_footnote_bool}
+\bool_new:N \c__wa_leqno_bool
+\DeclareOption {leqno} {\bool_set_true:N \c__wa_leqno_bool}
\DeclareOption* {}
\ProcessOptions*
-\cs_new_protected:Nn \__wi_error:n
+\cs_new_protected:Nn \__wa_error:n
{\msg_error:nn {witharrows} {#1}}
-\cs_new_protected:Nn \__wi_error:nn
+\cs_new_protected:Nn \__wa_error:nn
{\msg_error:nnn {witharrows} {#1} {#2}}
-\cs_generate_variant:Nn \__wi_error:nn {nx}
-\cs_new_protected:Nn \__wi_bool_new:N
+\cs_generate_variant:Nn \__wa_error:nn {nx}
+\cs_new_protected:Nn \__wa_bool_new:N
{\bool_if_exist:NTF #1
{\bool_set_false:N #1}
{\bool_new:N #1}}
\AtBeginDocument
{\clist_map_inline:nn
- {amsmath,mathtools,autonum,cleveref,hyperref,typedref,showlabels,amsthm}
- {\bool_new:c {c__wi_#1_loaded_bool}
+ {amsmath,mathtools,autonum,cleveref,hyperref,typedref,showlabels,
+ amsthm,varwidth}
+ {\bool_new:c {c__wa_#1_loaded_bool}
\@ifpackageloaded {#1}
- {\bool_set_true:c {c__wi_#1_loaded_bool}}
+ {\bool_set_true:c {c__wa_#1_loaded_bool}}
{}}}
\cs_generate_variant:Nn \seq_set_split:Nnn {Nxx}
-\cs_new_protected:Nn \__wi_save:N
+\cs_new_protected:Nn \__wa_save:N
{\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}}
@@ -113,22 +114,20 @@
{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:Nn \__wi_restore:N
+\cs_new_protected:Nn \__wa_restore:N
{\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,
+\tikzset{__wa_node_style/.style= {
+ above = \l__wa_ystart_dim,
inner~sep = 0 pt,
minimum~width = 0pt,
- minimum~height = \l__wi_ygap_dim,
- red,
- \bool_if:NT \l__wi_shownodes_bool {draw} }}
-\tikzset{__wi_standard/.style= { remember~picture,
+ minimum~height = \l__wa_ygap_dim}}
+\tikzset{__wa_standard/.style= { remember~picture,
overlay,
- name~prefix = wa-\l__wi_prefix_str- }}
+ name~prefix = wa-\l__wa_prefix_str-}}
\tikzset{WithArrows/arrow/tips/.style = { > = {Straight~Barb[scale=1.2,bend]} }}
\tikzset{WithArrows/arrow/.style = { align = left,
auto = left,
@@ -137,354 +136,361 @@
bend~left = 45,
-> }}
\AtBeginDocument
- {\bool_if:NF \c__wi_amsmath_loaded_bool
+ {\bool_if:NF \c__wa_amsmath_loaded_bool
{\cs_set_protected:Npn \spread@equation
{\openup\jot
\cs_set_eq:NN \spread@equation \prg_do_nothing:}}}
-\bool_new:N \l__wi_in_WithArrows_bool
-\bool_new:N \l__wi_in_DispWithArrows_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
-\skip_new:N \l__wi_interline_skip
-\int_new:N \l__wi_pos_env_int
-\dim_new:N \l__wi_xoffset_dim
-\dim_set:Nn \l__wi_xoffset_dim {3mm}
-\int_new:N \l__wi_pos_arrows_int
-\int_set:Nn \l__wi_pos_arrows_int 3
-\int_new:N \l__wi_previous_pos_arrows_int
-\dim_new:N \l__wi_x_dim
-\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
-\tl_new:N \l__wi_name_tl
-\bool_new:N \l__wi_fleqn_bool
-\dim_new:N \l__wi_mathindent_dim
-\dim_set:Nn \l__wi_mathindent_dim {25pt}
-\bool_new:N \l__wi_wrap_lines_bool
-\clist_new:N \l__wi_tags_clist
-\clist_set:Nn \l__wi_tags_clist {all}
-\tl_new:N \l__wi_tag_tl
-\bool_new:N \l__wi_tag_star_bool
-\bool_new:N \l__wi_in_first_column_bool
-\bool_new:N \l__wi_initial_r_bool
-\bool_new:N \l__wi_initial_l_bool
-\dim_new:N \l__wi_start_adjust_dim
-\dim_set:Nn \l__wi_start_adjust_dim {0.4ex}
-\dim_new:N \l__wi_end_adjust_dim
-\dim_set:Nn \l__wi_end_adjust_dim {0.4ex}
-\int_set:Nn \l__wi_level_int 1
+\bool_new:N \l__wa_in_WithArrows_bool
+\bool_new:N \l__wa_in_DispWithArrows_bool
+\seq_new:N \g__wa_position_in_the_tree_seq
+\seq_gput_right:Nn \g__wa_position_in_the_tree_seq 1
+\int_new:N \g__wa_last_env_int
+\skip_new:N \l__wa_interline_skip
+\int_new:N \l__wa_pos_env_int
+\dim_new:N \l__wa_xoffset_dim
+\dim_set:Nn \l__wa_xoffset_dim {3mm}
+\int_new:N \l__wa_pos_arrow_int
+\int_set:Nn \l__wa_pos_arrow_int 3
+\int_new:N \l__wa_previous_pos_arrow_int
+\dim_new:N \l__wa_x_dim
+\seq_new:N \g__wa_arrow_int_seq
+\int_new:N \g__wa_arrow_int
+\seq_new:N \g__wa_line_int_seq
+\int_new:N \g__wa_line_int
+\tl_new:N \l__wa_name_tl
+\bool_new:N \l__wa_fleqn_bool
+\dim_new:N \l__wa_mathindent_dim
+\dim_set:Nn \l__wa_mathindent_dim {25pt}
+\bool_new:N \l__wa_wrap_lines_bool
+\clist_new:N \l__wa_tags_clist
+\clist_set:Nn \l__wa_tags_clist {all}
+\tl_new:N \l__wa_tag_tl
+\bool_new:N \l__wa_tag_star_bool
+\bool_new:N \l__wa_in_first_column_bool
+\bool_new:N \l__wa_initial_r_bool
+\bool_new:N \l__wa_initial_l_bool
+\dim_new:N \l__wa_start_adjust_dim
+\dim_set:Nn \l__wa_start_adjust_dim {0.4ex}
+\dim_new:N \l__wa_end_adjust_dim
+\dim_set:Nn \l__wa_end_adjust_dim {0.4ex}
+\str_new:N \l__wa_CommandName_str
+\str_set:Nn \l__wa_CommandName_str {Arrow}
+\str_new:N \l__wa_string_Arrow_for_messages_str
+\str_set:Nx \l__wa_string_Arrow_for_messages_str {\token_to_str:N \Arrow}
+\int_set:Nn \l__wa_level_int 1
\keys_define:nn {WithArrows/GlobalOrEnv}
- { t .code:n = {\bool_if:NTF \l__wi_in_DispWithArrows_bool
- {\__wi_error:n {Option~will~be~ignored}
- {\int_set:Nn \l__wi_pos_env_int 0}}},
+ { t .code:n = {\bool_if:NTF \l__wa_in_DispWithArrows_bool
+ {\__wa_error:n {Option~will~be~ignored}
+ {\int_set:Nn \l__wa_pos_env_int 0}}},
t .value_forbidden:n = true,
- c .code:n = {\bool_if:NTF \l__wi_in_DispWithArrows_bool
- {\__wi_error:n {Option~will~be~ignored}}
- {\int_set:Nn \l__wi_pos_env_int 1}},
+ c .code:n = {\bool_if:NTF \l__wa_in_DispWithArrows_bool
+ {\__wa_error:n {Option~will~be~ignored}}
+ {\int_set:Nn \l__wa_pos_env_int 1}},
c .value_forbidden:n = true,
- b .code:n = {\bool_if:NTF \l__wi_in_DispWithArrows_bool
- {\__wi_error:n {Option~will~be~ignored}}
- {\int_set:Nn \l__wi_pos_env_int 2}},
+ b .code:n = {\bool_if:NTF \l__wa_in_DispWithArrows_bool
+ {\__wa_error:n {Option~will~be~ignored}}
+ {\int_set:Nn \l__wa_pos_env_int 2}},
b .value_forbidden:n = true,
- ygap .dim_set:N = \l__wi_ygap_dim,
+ ygap .dim_set:N = \l__wa_ygap_dim,
ygap .value_required:n = true,
ygap .initial:n = 0.4 ex,
- ystart .dim_set:N = \l__wi_ystart_dim,
+ ystart .dim_set:N = \l__wa_ystart_dim,
ystart .value_required:n = true,
ystart .initial:n = 0.4 ex,
- MoreColumns .code:n = { \msg_redirect_name:nnn
- {witharrows}
- {Third~column~in~an~environment~{WithArrows}}
- {none} },
+ MoreColumns .code:n = { \bool_if:NTF \l__wa_in_DispWithArrows_bool
+ {\__wa_error:n {Option~will~be~ignored}}
+ { \msg_redirect_name:nnn
+ {witharrows}
+ {Third~column~in~WithArrows}
+ {none} }},
MoreColumns .value_forbidden:n = true,
- AllowLineWithoutAmpersand .code:n = { \__wi_error:n
+ AllowLineWithoutAmpersand .code:n = { \__wa_error:n
{AllowLineWithoutAmpersand}},
AllowLineWithoutAmpersand .value_forbidden:n = true,
- CommandName .tl_set:N = \l__wi_CommandName_tl,
- CommandName .initial:n = Arrow ,
+ CommandName .code:n =
+ {\str_set:Nn \l__wa_CommandName_str {#1}
+ \str_set:Nx \l__wa_string_Arrow_for_messages_str
+ {\c_backslash_str Arrow~(renamed~here~in~\c_backslash_str #1)}},
CommandName .value_required:n = true,
- TikzCode .tl_set:N = \l__wi_tikz_code_tl,
+ TikzCode .tl_set:N = \l__wa_tikz_code_tl,
TikzCode .initial:n = \draw~(#1)~to~node{#3}~(#2)~; ,
TikzCode .value_required:n = true,
- displaystyle .bool_set:N = \l__wi_displaystyle_bool,
+ displaystyle .bool_set:N = \l__wa_displaystyle_bool,
displaystyle .initial:n = false,
- shownodes .bool_set:N = \l__wi_shownodes_bool,
- shownodes .initial:n = false,
- shownodenames .bool_set:N = \l__wi_shownodenames_bool,
+ shownodes .code:n = {\tikzset{__wa_node_style/.append~style = {draw,red}}},
+ shownodes .value_forbidden:n = true,
+ shownodenames .bool_set:N = \l__wa_shownodenames_bool,
shownodenames .initial:n = false,
- group .code:n = {\int_compare:nNnT \l__wi_previous_pos_arrows_int > {-1}
- {\__wi_error:n {Two~options~are~incompatible}}
- \int_set:Nn \l__wi_previous_pos_arrows_int 7
- \int_set:Nn \l__wi_pos_arrows_int 7} ,
+ group .code:n = {\int_compare:nNnT \l__wa_previous_pos_arrow_int > {-1}
+ {\__wa_error:n {Incompatible~options}}
+ \int_set:Nn \l__wa_previous_pos_arrow_int 7
+ \int_set:Nn \l__wa_pos_arrow_int 7} ,
group .value_forbidden:n = true,
- groups .code:n = {\int_compare:nNnT \l__wi_previous_pos_arrows_int > {-1}
- {\__wi_error:n {Two~options~are~incompatible}}
- \int_set:Nn \l__wi_previous_pos_arrows_int 6
- \int_set:Nn \l__wi_pos_arrows_int 6} ,
+ groups .code:n = {\int_compare:nNnT \l__wa_previous_pos_arrow_int > {-1}
+ {\__wa_error:n {Incompatible~options}}
+ \int_set:Nn \l__wa_previous_pos_arrow_int 6
+ \int_set:Nn \l__wa_pos_arrow_int 6} ,
groups .value_forbidden:n = true,
- CodeBefore .code:n = {\int_compare:nNnTF \l__wi_level_int = 1
- {\__wi_error:n {Option~will~be~ignored}}
- {\tl_put_right:Nn \l__wi_code_before_tl {#1}}} ,
+ CodeBefore .code:n = {\int_compare:nNnTF \l__wa_level_int = 1
+ {\__wa_error:n {Option~will~be~ignored}}
+ {\tl_put_right:Nn \l__wa_code_before_tl {#1}}} ,
CodeBefore .value_required:n = true,
- CodeAfter .code:n = {\int_compare:nNnTF \l__wi_level_int = 1
- {\__wi_error:n {Option~will~be~ignored}}
- {\tl_put_right:Nn \l__wi_code_after_tl {#1}}} ,
+ CodeAfter .code:n = {\int_compare:nNnTF \l__wa_level_int = 1
+ {\__wa_error:n {Option~will~be~ignored}}
+ {\tl_put_right:Nn \l__wa_code_after_tl {#1}}} ,
CodeAfter .value_required:n = true,
- name .code:n = {\int_compare:nNnTF \l__wi_level_int = 1
- {\__wi_error:n {Option~will~be~ignored}}
- {\tl_set:Nn \l__wi_name_tl {#1}}} ,
+ name .code:n = {\int_compare:nNnTF \l__wa_level_int = 1
+ {\__wa_error:n {Option~will~be~ignored}}
+ {\tl_set:Nn \l__wa_name_tl {#1}}} ,
name .value_required:n = true,
- fleqn .code:n = {\bool_if:NTF \l__wi_in_WithArrows_bool
- {\__wi_error:n {Option~will~be~ignored}}
+ fleqn .code:n = {\bool_if:NTF \l__wa_in_WithArrows_bool
+ {\__wa_error:n {Option~will~be~ignored}}
{\str_if_eq:nnTF {#1} {true}
- {\bool_set_true:N \l__wi_fleqn_bool}
- {\bool_set_false:N \l__wi_fleqn_bool}}},
+ {\bool_set_true:N \l__wa_fleqn_bool}
+ {\bool_set_false:N \l__wa_fleqn_bool}}},
fleqn .default:n = true,
- mathindent .code:n = {\bool_if:NTF \l__wi_in_WithArrows_bool
- {\__wi_error:n {Option~will~be~ignored}}
- {\dim_set:Nn \l__wi_mathindent_dim {#1}}},
+ mathindent .code:n = {\bool_if:NTF \l__wa_in_WithArrows_bool
+ {\__wa_error:n {Option~will~be~ignored}}
+ {\dim_set:Nn \l__wa_mathindent_dim {#1}}},
mathindent .value_required:n = true,
- notag .code:n = {\bool_if:NTF \l__wi_in_WithArrows_bool
- {\__wi_error:n {Option~will~be~ignored}}
+ notag .code:n = {\bool_if:NTF \l__wa_in_WithArrows_bool
+ {\__wa_error:n {Option~will~be~ignored}}
{\str_if_eq:nnTF {#1} {true}
- {\clist_clear:N \l__wi_tags_clist}
- {\clist_set:Nn \l__wi_tags_clist {all}}}},
+ {\clist_clear:N \l__wa_tags_clist}
+ {\clist_set:Nn \l__wa_tags_clist {all}}}},
notag .default:n = true,
nonumber .meta:n = notag,
- AllowMultipleLabels .code:n = {\bool_if:NTF \l__wi_in_WithArrows_bool
- {\__wi_error:n {Option~will~be~ignored}}
+ AllowMultipleLabels .code:n = {\bool_if:NTF \l__wa_in_WithArrows_bool
+ {\__wa_error:n {Option~will~be~ignored}}
{\msg_redirect_name:nnn {witharrows}
{Multiple~labels}
{none}}},
AllowMultipleLabels .value_forbidden:n = true,
- wrap-lines .code:n = {\bool_if:NTF \l__wi_in_WithArrows_bool
- {\__wi_error:n {Option~will~be~ignored}}
+ wrap-lines .code:n = {\bool_if:NTF \l__wa_in_WithArrows_bool
+ {\__wa_error:n {Option~will~be~ignored}}
{\str_if_eq:nnTF {#1} {true}
- {\bool_set_true:N \l__wi_wrap_lines_bool}
- {\bool_set_false:N \l__wi_wrap_lines_bool}}},
+ {\bool_set_true:N \l__wa_wrap_lines_bool}
+ {\bool_set_false:N \l__wa_wrap_lines_bool}}},
wrap-lines .default:n = true,
- tagged-lines .code:n = {\bool_if:NTF \l__wi_in_WithArrows_bool
- {\__wi_error:n {Option~will~be~ignored}}
- {\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 1 }}},
+ tagged-lines .code:n = {\bool_if:NTF \l__wa_in_WithArrows_bool
+ {\__wa_error:n {Option~will~be~ignored}}
+ {\clist_set:Nn \l__wa_tags_clist {#1}
+ \clist_if_in:NnT \l__wa_tags_clist {first}
+ {\clist_remove_all:Nn \l__wa_tags_clist {first}
+ \clist_put_left:Nn \l__wa_tags_clist 1 }}},
tagged-lines .value_required:n = true,
- unknown .code:n = \__wi_error:n {Option~unknown}
+ unknown .code:n = \__wa_error:n {Unknown~option}
}
\keys_define:nn {WithArrows/General}
{tikz .code:n = \tikzset {WithArrows/arrow/.append~style = {#1}},
tikz .initial:n = {},
tikz .value_required:n = true,
rr .value_forbidden:n = true,
- rr .code:n = \__wi_analyze_option_position:n 3 ,
+ rr .code:n = \__wa_analyze_option_position:n 3 ,
ll .value_forbidden:n = true,
- ll .code:n = \__wi_analyze_option_position:n 1 ,
+ ll .code:n = \__wa_analyze_option_position:n 1 ,
rl .value_forbidden:n = true,
- rl .code:n = \__wi_analyze_option_position:n 2 ,
+ rl .code:n = \__wa_analyze_option_position:n 2 ,
lr .value_forbidden:n = true,
- lr .code:n = \__wi_analyze_option_position:n 0 ,
+ lr .code:n = \__wa_analyze_option_position:n 0 ,
i .value_forbidden:n = true,
- i .code:n = \__wi_analyze_option_position:n 5 ,
- xoffset .code:n = {\bool_if:nTF {\int_compare_p:nNn \l__wi_level_int = 3 &&
- \int_compare_p:nNn \l__wi_pos_arrows_int > 5}
- {\__wi_error:n {Option~incompatible~with~"group(s)"}}
- {\dim_set:Nn \l__wi_xoffset_dim {#1}}} ,
+ i .code:n = \__wa_analyze_option_position:n 5 ,
+ xoffset .code:n = {\bool_if:nTF {\int_compare_p:nNn \l__wa_level_int = 3 &&
+ \int_compare_p:nNn \l__wa_pos_arrow_int > 5}
+ {\__wa_error:n {Option~incompatible~with~group}}
+ {\dim_set:Nn \l__wa_xoffset_dim {#1}}} ,
xoffset .value_required:n = true,
- jot .code:n = {\int_compare:nNnTF \l__wi_level_int = 2
+ jot .code:n = {\int_compare:nNnTF \l__wa_level_int = 2
{\dim_set:Nn \jot {#1}}
- {\__wi_error:n {Option~will~be~ignored}}} ,
+ {\__wa_error:n {Option~will~be~ignored}}} ,
jot .value_required:n = true,
- interline .code:n = {\int_compare:nNnTF \l__wi_level_int = 2
- {\skip_set:Nn \l__wi_interline_skip {#1}}
- {\__wi_error:n {Option~will~be~ignored}}} ,
+ interline .code:n = {\int_compare:nNnTF \l__wa_level_int = 2
+ {\skip_set:Nn \l__wa_interline_skip {#1}}
+ {\__wa_error:n {Option~will~be~ignored}}} ,
interline .value_required:n = true,
- start-adjust .dim_set:N = \l__wi_start_adjust_dim,
+ start-adjust .dim_set:N = \l__wa_start_adjust_dim,
start-adjust .value_required:n = true,
- end-adjust .dim_set:N = \l__wi_end_adjust_dim,
+ end-adjust .dim_set:N = \l__wa_end_adjust_dim,
end-adjust .value_required:n = true,
- adjust .code:n = {\dim_set:Nn \l__wi_start_adjust_dim {#1}
- \dim_set:Nn \l__wi_end_adjust_dim {#1} },
+ adjust .code:n = {\dim_set:Nn \l__wa_start_adjust_dim {#1}
+ \dim_set:Nn \l__wa_end_adjust_dim {#1} },
adjust .value_required:n = true,
- jump .code:n = {\int_compare:nNnF \l__wi_level_int = 3
- {\__wi_error:n {Option~will~be~ignored}}} ,
- unknown .code:n = \__wi_error:n {Option~unknown}
+ unknown .code:n = \__wa_error:n {Unknown~option}
}
\keys_define:nn {WithArrows/Arrow}
- {jump .code:n = {\int_set:Nn \l__wi_jump_int {#1}
- \int_compare:nNnF \l__wi_jump_int > 0
- {\__wi_error:n {The~option~"jump"~must~be~non~negative}}} ,
+ {jump .code:n = {\int_set:Nn \l__wa_jump_int {#1}
+ \int_compare:nNnF \l__wa_jump_int > 0
+ {\__wa_error:n {Negative~value~for~jump}}} ,
jump .value_required:n = true,
rr .value_forbidden:n = true,
- rr .code:n = \__wi_analyze_option_position:n 3 ,
+ rr .code:n = \__wa_analyze_option_position:n 3 ,
ll .value_forbidden:n = true,
- ll .code:n = \__wi_analyze_option_position:n 1 ,
+ ll .code:n = \__wa_analyze_option_position:n 1 ,
rl .value_forbidden:n = true,
- rl .code:n = \__wi_analyze_option_position:n 2 ,
+ rl .code:n = \__wa_analyze_option_position:n 2 ,
lr .value_forbidden:n = true,
- lr .code:n = \__wi_analyze_option_position:n 0 ,
+ lr .code:n = \__wa_analyze_option_position:n 0 ,
i .value_forbidden:n = true,
- i .code:n = \__wi_analyze_option_position:n 5 }
-\cs_new_protected:Nn \__wi_analyze_option_position:n
- {\int_compare:nNnT \l__wi_previous_pos_arrows_int > {-1}
- {\__wi_error:n {Two~options~are~incompatible}}
- \int_set:Nn \l__wi_previous_pos_arrows_int {#1}
- \int_set:Nn \l__wi_pos_arrows_int {#1}}
+ i .code:n = \__wa_analyze_option_position:n 5 }
+\cs_new_protected:Nn \__wa_analyze_option_position:n
+ {\int_compare:nNnT \l__wa_previous_pos_arrow_int > {-1}
+ {\__wa_error:n {Incompatible~options}}
+ \int_set:Nn \l__wa_previous_pos_arrow_int {#1}
+ \int_set:Nn \l__wa_pos_arrow_int {#1}}
\NewDocumentCommand \WithArrowsOptions {m}
- {\int_set:Nn \l__wi_previous_pos_arrows_int {-1}
+ {\int_set:Nn \l__wa_previous_pos_arrow_int {-1}
\keys_set_known:nnN {WithArrows/General} {#1} \l_tmpa_tl
\keys_set:nV {WithArrows/GlobalOrEnv} \l_tmpa_tl}
-\NewDocumentCommand \__wi_Arrow {O{} m O{}}
+\NewDocumentCommand \__wa_Arrow {O{} m !O{}}
{
- \int_gincr:N \g__wi_arrow_int
- \int_set:Nn \l__wi_previous_pos_arrows_int {-1}
- \int_set:Nn \l__wi_pos_arrows_int {-1}
- \int_set:Nn \l__wi_level_int 3
+ \int_gincr:N \g__wa_arrow_int
+ \int_set:Nn \l__wa_previous_pos_arrow_int {-1}
+ \int_set:Nn \l__wa_pos_arrow_int {-1}
+ \int_set:Nn \l__wa_level_int 3
\keys_set_known:nnN {WithArrows/Arrow} {#1,#3} \l_tmpa_tl
- \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 {initial} \g__wa_line_int
+ \int_set:Nn \l_tmpa_int {\g__wa_line_int + \l__wa_jump_int}
\prop_put:NnV \l_tmpa_prop {final} \l_tmpa_int
- \prop_put:NnV \l_tmpa_prop {position} \l__wi_pos_arrows_int
+ \prop_put:NnV \l_tmpa_prop {position} \l__wa_pos_arrow_int
\prop_put:NnV \l_tmpa_prop {options} \l_tmpa_tl
\prop_put:Nnn \l_tmpa_prop {label} {#2}
\prop_gclear_new:c
- {g__wi_arrow_\l__wi_prefix_str _\int_use:N\g__wi_arrow_int _prop}
+ {g__wa_arrow_\l__wa_prefix_str _\int_use:N\g__wa_arrow_int _prop}
\prop_gset_eq:cN
- {g__wi_arrow_\l__wi_prefix_str _\int_use:N\g__wi_arrow_int _prop}
+ {g__wa_arrow_\l__wa_prefix_str _\int_use:N\g__wa_arrow_int _prop}
\l_tmpa_prop
}
-\cs_new_protected:Nn \__wi_Arrow_first_column:
- {\tl_set:Nn \l_tmpa_tl {Arrow}
- \__wi_error:n {Arrow~in~first~column}
- \__wi_Arrow}
-\cs_new_protected:Nn \__wi_pre_environment:n
- { \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:Nn \g__wi_position_in_the_tree_seq 1
- \seq_set_eq:NN \l_tmpa_seq \g__wi_position_in_the_tree_seq
+\cs_new_protected:Nn \__wa_Arrow_first_column:
+ {\__wa_error:n {Arrow~in~first~column}
+ \__wa_Arrow}
+\cs_new_protected:Nn \__wa_pre_environment:n
+ { \tl_clear_new:N \l__wa_type_env_tl
+ \tl_set:NV \l__wa_type_env_tl \@currenvir
+ \seq_gput_right:NV \g__wa_arrow_int_seq \g__wa_arrow_int
+ \int_gzero:N \g__wa_arrow_int
+ \seq_gput_right:NV \g__wa_line_int_seq \g__wa_line_int
+ \int_gzero:N \g__wa_line_int
+ \seq_gput_right:Nn \g__wa_position_in_the_tree_seq 1
+ \seq_set_eq:NN \l_tmpa_seq \g__wa_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:
+ \str_clear_new:N \l__wa_prefix_str
+ \str_set:Nx \l__wa_prefix_str {\seq_use:Nnnn \l_tmpa_seq {-} {-} {-}}
+ \cs_set_eq:NN \\ \__wa_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 1
- \seq_clear_new:N \l__wi_labels_seq
- \__wi_bool_new: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
- \int_set:Nn \l__wi_previous_pos_arrows_int {-1}
- \int_set:Nn \l__wi_level_int 2
+ \int_zero_new:N \l__wa_initial_int
+ \int_zero_new:N \l__wa_final_int
+ \int_zero_new:N \l__wa_arrow_int
+ \int_zero_new:N \l__wa_pos_of_arrow_int
+ \int_zero_new:N \l__wa_jump_int
+ \int_set:Nn \l__wa_jump_int 1
+ \seq_clear_new:N \l__wa_labels_seq
+ \__wa_bool_new:N \l__wa_tag_next_line_bool
+ \skip_zero:N \l__wa_interline_skip
+ \tl_clear_new:N \l__wa_code_before_tl
+ \tl_clear_new:N \l__wa_code_after_tl
+ \int_set:Nn \l__wa_previous_pos_arrow_int {-1}
+ \int_set:Nn \l__wa_level_int 2
\keys_set_known:nnN {WithArrows/General} {#1} \l_tmpa_tl
\keys_set:nV {WithArrows/GlobalOrEnv} \l_tmpa_tl
- \bool_if:NT \g__wi_footnote_bool \savenotes
- \l__wi_code_before_tl
- \cs_set_eq:cN \l__wi_CommandName_tl \__wi_Arrow}
-\NewDocumentEnvironment {WithArrows} {O{}}
- { \bool_set_true:N \l__wi_in_WithArrows_bool
- \bool_set_false:N \l__wi_in_DispWithArrows_bool
+ \bool_if:NT \g__wa_footnote_bool \savenotes
+ \l__wa_code_before_tl
+ \cs_set_eq:cN \l__wa_CommandName_str \__wa_Arrow}
+\NewDocumentEnvironment {WithArrows} {!O{}}
+ { \bool_set_true:N \l__wa_in_WithArrows_bool
+ \bool_set_false:N \l__wa_in_DispWithArrows_bool
+ \__wa_pre_environment:n {#1}
\reverse_if:N \if_mode_math:
- \__wi_error:n {{WithArrows}~used~outside~math~mode}
+ \__wa_error:n {WithArrows~outside~math~mode}
\fi:
- \__wi_pre_environment:n {#1}
- \cs_set_eq:NN \notag \__wi_notag:
- \cs_set_eq:NN \nonumber \__wi_notag:
- \cs_set_eq:NN \tag \__wi_tag
- \cs_set_eq:NN \label \__wi_label:n
- \cs_set_eq:NN \tagnextline \__wi_tagnextline:
- \int_case:nn \l__wi_pos_env_int
+ \cs_set_eq:NN \notag \__wa_notag:
+ \cs_set_eq:NN \nonumber \__wa_notag:
+ \cs_set_eq:NN \tag \__wa_tag
+ \cs_set_eq:NN \label \__wa_label:n
+ \cs_set_eq:NN \tagnextline \__wa_tagnextline:
+ \int_case:nn \l__wa_pos_env_int
{0 \vtop
1 \vcenter
2 \vbox}
\bgroup
\spread@equation
\ialign\bgroup
- \int_gincr:N \g__wi_line_int
- \cs_set_eq:cN \l__wi_CommandName_tl \__wi_Arrow_first_column:
- \bool_set_true:N \l__wi_in_first_column_bool
+ \int_gincr:N \g__wa_line_int
+ \cs_set_eq:cN \l__wa_CommandName_str \__wa_Arrow_first_column:
+ \bool_set_true:N \l__wa_in_first_column_bool
\strut\hfil
- $\bool_if:NT \l__wi_displaystyle_bool \displaystyle {##}$
+ $\bool_if:NT \l__wa_displaystyle_bool \displaystyle {##}$
&
- $\bool_if:NT \l__wi_displaystyle_bool \displaystyle {{}##}$
+ $\bool_if:NT \l__wa_displaystyle_bool \displaystyle {{}##}$
\tikz [remember~picture,overlay]
- \node [__wi_node_style,
- name = wa-\l__wi_prefix_str-\int_use:N\g__wi_line_int-l,
- alias = {\tl_if_empty:NF \l__wi_name_tl
- {\l__wi_name_tl-\int_use:N\g__wi_line_int-l}} ] {} ;
+ \node [__wa_node_style,
+ name = wa-\l__wa_prefix_str-\int_use:N\g__wa_line_int-l,
+ alias = {\tl_if_empty:NF \l__wa_name_tl
+ {\l__wa_name_tl-\int_use:N\g__wa_line_int-l}} ] {} ;
\hfil
\tikz [remember~picture,overlay]
- \node [__wi_node_style,
- name = wa-\l__wi_prefix_str-\int_use:N\g__wi_line_int-r,
- alias = {\tl_if_empty:NF \l__wi_name_tl
- {\l__wi_name_tl-\int_use:N\g__wi_line_int-r}} ] {} ;
- \bool_if:NT \l__wi_shownodenames_bool
- {\hbox_overlap_right:n {\small wa-\l__wi_prefix_str
- -\int_use:N\g__wi_line_int}}
- && \__wi_error:n {Third~column~in~an~environment~{WithArrows}}
- $\bool_if:NT \l__wi_displaystyle_bool \displaystyle {##}$
+ \node [__wa_node_style,
+ name = wa-\l__wa_prefix_str-\int_use:N\g__wa_line_int-r,
+ alias = {\tl_if_empty:NF \l__wa_name_tl
+ {\l__wa_name_tl-\int_use:N\g__wa_line_int-r}} ] {} ;
+ \bool_if:NT \l__wa_shownodenames_bool
+ {\hbox_overlap_right:n {\small wa-\l__wa_prefix_str
+ -\int_use:N\g__wa_line_int}}
+ && \__wa_error:n {Third~column~in~WithArrows}
+ $\bool_if:NT \l__wa_displaystyle_bool \displaystyle {##}$
\cr
}
{\\
\egroup
\egroup
- \__wi_post_environment:
- \bool_if:NT \g__wi_footnote_bool \endsavenotes
+ \__wa_post_environment:
+ \bool_if:NT \g__wa_footnote_bool \endsavenotes
}
-\cs_new_protected:Nn \__wi_post_environment:
- {\cs_set:Npn \WithArrowsRightX {\g__wi_right_x_dim}
- \int_compare:nNnT \g__wi_arrow_int > 0 \__wi_scan_arrows:
+\cs_new_protected:Nn \__wa_post_environment:
+ {\cs_set:Npn \WithArrowsRightX {\g__wa_right_x_dim}
+ \int_compare:nNnT \g__wa_arrow_int > 0 \__wa_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_CommandName_tl \__wi_Arrow_code_after
- \l__wi_code_after_tl
+ \tikzset{every~picture/.style = __wa_standard}
+ \cs_set:Npn \WithArrowsNbLines {\int_use:N \g__wa_line_int}
+ \cs_set_eq:NN \MultiArrow \__wa_MultiArrow:nn
+ \cs_set_eq:cN \l__wa_CommandName_str \__wa_Arrow_code_after
+ \l__wa_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
+ \seq_gpop_right:NN \g__wa_position_in_the_tree_seq \l_tmpa_tl
+ \seq_gpop_right:NN \g__wa_position_in_the_tree_seq \l_tmpa_tl
+ \seq_gput_right:Nx \g__wa_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}
+ \int_compare:nNnT {\seq_count:N \g__wa_position_in_the_tree_seq} = 1
+ {\int_gincr:N \g__wa_last_env_int}
+ \seq_gpop_right:NN \g__wa_arrow_int_seq {\l_tmpa_tl}
+ \int_gset:Nn \g__wa_arrow_int {\l_tmpa_tl}
+ \seq_gpop_right:NN \g__wa_line_int_seq \l_tmpa_tl
+ \int_gset:Nn \g__wa_line_int {\l_tmpa_tl}
}
-\cs_new_protected:Nn \__wi_cr:
+\cs_new_protected:Nn \__wa_cr:
{\scan_stop:
- \bool_if:NT \l__wi_in_first_column_bool { & {} }
+ \bool_if:NT \l__wa_in_first_column_bool { & {} }
\group_align_safe_begin:
- \peek_meaning_remove:NTF * \__wi_cr_i: \__wi_cr_i:}
-\cs_new_protected:Nn \__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_remove:NTF * \__wa_cr_i: \__wa_cr_i:}
+\cs_new_protected:Nn \__wa_cr_i:
+ {\peek_meaning:NTF [ {\__wa_cr_ii:} {\__wa_cr_ii:[\c_zero_dim]} }
+\cs_new_protected:Npn \__wa_cr_ii:[#1]
{\group_align_safe_end:
- \bool_if:NT \l__wi_in_DispWithArrows_bool
- {\clist_if_in:NnTF \l__wi_tags_clist {all}
+ \bool_if:NT \l__wa_in_DispWithArrows_bool
+ {\clist_if_in:NnTF \l__wa_tags_clist {all}
{
- \tl_if_empty:NT \l__wi_tag_tl
+ \tl_if_empty:NT \l__wa_tag_tl
{\int_gincr:N \c@equation}
\cs_gset:Npx \g_tmpa_tl
- {\tl_if_empty:NTF \l__wi_tag_tl
+ {\tl_if_empty:NTF \l__wa_tag_tl
\theequation
- \l__wi_tag_tl}
- \seq_if_empty:NF \l__wi_labels_seq
+ \l__wa_tag_tl}
+ \seq_if_empty:NF \l__wa_labels_seq
{
\cs_set:Npx \@currentlabel {\p@equation \g_tmpa_tl}
- \bool_if:NT \c__wi_hyperref_loaded_bool
+ \bool_if:NT \c__wa_hyperref_loaded_bool
{\cs_set:Npn \This@name {equation}
\hyper@refstepcounter{equation}}
- \bool_if:NT \c__wi_cleveref_loaded_bool
+ \bool_if:NT \c__wa_cleveref_loaded_bool
{\cref@constructprefix{equation}{\cref@result}
\@ifundefined{cref@equation@alias}
{\def\@tempa{equation}}
@@ -492,99 +498,99 @@
\protected@edef\cref@currentlabel
{[\@tempa][\arabic{equation}][\cref@result]
\p@equation \g_tmpa_tl}}
- \bool_if:NT \c__wi_typedref_loaded_bool
+ \bool_if:NT \c__wa_typedref_loaded_bool
{\cs_set:Npn \sr@name {equation}}
- \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
+ \seq_map_function:NN \l__wa_labels_seq \__wa_old_label}
+ \__wa_save:N \l__wa_tag_star_bool
+ \__wa_save:N \l__wa_qedhere_bool
+ \bool_if:NT \l__wa_tag_next_line_bool
{ \openup -\jot
- \bool_set_false:N \l__wi_tag_next_line_bool
+ \bool_set_false:N \l__wa_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:}
+ & \__wa_restore:N \l__wa_tag_star_bool
+ \__wa_restore:N \l__wa_qedhere_bool
+ \bool_if:NT \l__wa_qedhere_bool
+ {\hbox_overlap_left:n \__wa_qedhere_i:}
\cs_set_eq:NN \theequation \g_tmpa_tl
- \bool_if:NT \l__wi_tag_star_bool {\cs_set:Npn \tagform@ {}}
+ \bool_if:NT \l__wa_tag_star_bool {\cs_set:Npn \tagform@ {}}
\hbox_overlap_left:n
- {\bool_if:NF \c__wi_leqno_bool
- {\tikz [__wi_standard] \coordinate (\int_use:N\g__wi_line_int-v) ;}
+ {\bool_if:NF \c__wa_leqno_bool
+ {\tikz [__wa_standard] \coordinate (\int_use:N\g__wa_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) ; }
+ \bool_if:NT \c__wa_leqno_bool
+ {\tikz [__wa_standard] \coordinate (\int_use:N \g__wa_line_int-v) ;}}
+ {\__wa_save:N \l__wa_qedhere_bool
+ & \__wa_restore:N \l__wa_qedhere_bool
+ \bool_if:NT \l__wa_qedhere_bool
+ {\hbox_overlap_left:n \__wa_qedhere_i:}
+ \tikz [__wa_standard] \coordinate (\int_use:N\g__wa_line_int-v) ; }
}
- \cr\noalign{\skip_vertical:n {#1 + \l__wi_interline_skip}
+ \cr\noalign{\skip_vertical:n {#1 + \l__wa_interline_skip}
\scan_stop:}}
-\cs_new_protected:Nn \__wi_if_in_second_col_of_disp:nn
- {\bool_if:NTF \l__wi_in_WithArrows_bool
- {\__wi_error:nn {Command~not~allowed~in~{WithArrows}}
+\cs_new_protected:Nn \__wa_if_in_second_col_of_disp:nn
+ {\bool_if:NTF \l__wa_in_WithArrows_bool
+ {\__wa_error:nn {Command~not~allowed~in~WithArrows}
{#1}}
- {\bool_if:NTF \l__wi_in_first_column_bool
- {\__wi_error:nn {Command~not~allowed~in~{DispWithArrows}}
+ {\bool_if:NTF \l__wa_in_first_column_bool
+ {\__wa_error:nn {Command~not~allowed~in~DispWithArrows}
{#1}}
{#2}}}
-\cs_new_protected:Nn \__wi_notag:
- {\__wi_if_in_second_col_of_disp:nn {\notag}
- {\clist_clear:N \l__wi_tags_clist}}
-\NewDocumentCommand \__wi_tag {sm}
- {\__wi_if_in_second_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
+\cs_new_protected:Nn \__wa_notag:
+ {\__wa_if_in_second_col_of_disp:nn {\notag}
+ {\clist_clear:N \l__wa_tags_clist}}
+\NewDocumentCommand \__wa_tag {sm}
+ {\__wa_if_in_second_col_of_disp:nn {\tag}
+ {\tl_if_empty:NF \l__wa_tag_tl
+ {\__wa_error:nn {Multiple~tags} {#2}}
+ \clist_set:Nn \l__wa_tags_clist {all}
+ \bool_if:nT \c__wa_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} }}
+ {\clist_clear:N \l__wa_tags_clist}}}
+ \tl_set:Nn \l__wa_tag_tl {#2}
+ \bool_set:Nn \l__wa_tag_star_bool {#1}
+ \bool_if:nT {#1 && ! \bool_if_p:N \c__wa_amsmath_loaded_bool}
+ { \__wa_error:n {tag*~without~amsmath} }}
}
-\cs_new_protected:Nn \__wi_label:n
- {\__wi_if_in_second_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
+\cs_new_protected:Nn \__wa_label:n
+ {\__wa_if_in_second_col_of_disp:nn {\label}
+ {\seq_if_empty:NF \l__wa_labels_seq
+ {\bool_if:NTF \c__wa_cleveref_loaded_bool
+ {\__wa_error:n {Multiple~labels~with~cleveref}}
+ {\__wa_error:n {Multiple~labels}}}
+ \seq_put_right:Nn \l__wa_labels_seq {#1}
+ \bool_if:nT \c__wa_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
+ {\clist_set:Nn \l__wa_tags_clist {all}}
+ {\clist_clear:N \l__wa_tags_clist}}}
+ \bool_if:nT \c__wa_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:Nn \__wi_tagnextline:
- {\__wi_if_in_second_col_of_disp:nn {\tagnextline}
- {\bool_set_true:N \l__wi_tag_next_line_bool}}
-\bool_new:N \l__wi_qedhere_bool
-\cs_new_protected:Nn \__wi_qedhere: {\bool_set_true:N \l__wi_qedhere_bool}
-\cs_new_protected:Nn \__wi_qedhere_i: {\group_begin:
+ {\clist_set:Nn \l__wa_tags_clist {all}}
+ {\clist_clear:N \l__wa_tags_clist}}}}
+\cs_new_protected:Nn \__wa_tagnextline:
+ {\__wa_if_in_second_col_of_disp:nn {\tagnextline}
+ {\bool_set_true:N \l__wa_tag_next_line_bool}}
+\bool_new:N \l__wa_qedhere_bool
+\cs_new_protected:Nn \__wa_qedhere: {\bool_set_true:N \l__wa_qedhere_bool}
+\cs_new_protected:Nn \__wa_qedhere_i: {\group_begin:
\cs_set_eq:NN \qed \qedsymbol
\cs_set_eq:NN \qed@elt \setQED@elt
\QED@stack\relax\relax
\group_end: }
-\NewDocumentEnvironment {DispWithArrows} {O{}}
+\NewDocumentEnvironment {DispWithArrows} {!O{}}
{
- \bool_if:nT \c__wi_mathtools_loaded_bool
+ \bool_if:nT \c__wa_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_amsmath_loaded_bool \intertext@
+ \bool_if:NT \c__wa_amsmath_loaded_bool \intertext@
+ \bool_set_true:N \l__wa_in_DispWithArrows_bool
+ \__wa_pre_environment:n {#1}
\if_mode_math:
- \__wi_error:n {{DispWithArrows}~used~in~math~mode}
+ \__wa_error:n {DispWithArrows~in~math~mode}
\fi:
- \bool_set_true:N \l__wi_in_DispWithArrows_bool
- \__wi_pre_environment:n {#1}
\if_mode_vertical:
\nointerlineskip
\makebox[.6\linewidth]{}
@@ -592,300 +598,297 @@
$$
\vcenter \bgroup
\spread@equation
- \bool_if:NTF \l__wi_fleqn_bool
+ \bool_if:NTF \l__wa_fleqn_bool
{\tabskip = \c_zero_skip}
{\tabskip = 0 pt plus 1000 pt minus 1000 pt}
- \cs_set_eq:NN \__wi_old_label \label
- \cs_set_eq:NN \notag \__wi_notag:
- \cs_set_eq:NN \nonumber \__wi_notag:
- \cs_set_eq:NN \tag \__wi_tag
- \cs_set_eq:NN \label \__wi_label:n
- \cs_set_eq:NN \tagnextline \__wi_tagnextline:
+ \cs_set_eq:NN \__wa_old_label \label
+ \cs_set_eq:NN \notag \__wa_notag:
+ \cs_set_eq:NN \nonumber \__wa_notag:
+ \cs_set_eq:NN \tag \__wa_tag
+ \cs_set_eq:NN \label \__wa_label:n
+ \cs_set_eq:NN \tagnextline \__wa_tagnextline:
\halign to \displaywidth \bgroup
- \int_gincr:N \g__wi_line_int
- \cs_set_eq:cN \l__wi_CommandName_tl \__wi_Arrow_first_column:
- \bool_set_true:N \l__wi_in_first_column_bool
+ \int_gincr:N \g__wa_line_int
+ \cs_set_eq:cN \l__wa_CommandName_str \__wa_Arrow_first_column:
+ \bool_set_true:N \l__wa_in_first_column_bool
\strut
- \bool_if:NT \l__wi_fleqn_bool
- {\skip_horizontal:n \l__wi_mathindent_dim}
+ \bool_if:NT \l__wa_fleqn_bool
+ {\skip_horizontal:n \l__wa_mathindent_dim}
\hfil
- $\bool_if:NT \l__wi_displaystyle_bool \displaystyle {##}$
+ $\bool_if:NT \l__wa_displaystyle_bool \displaystyle {##}$
\tabskip = \c_zero_skip
&
- \clist_if_in:NVT \l__wi_tags_clist \g__wi_line_int
- {\clist_set:Nn \l__wi_tags_clist {all}}
- \bool_if:NT \c__wi_amsthm_loaded_bool {\cs_set_eq:NN \qedhere \__wi_qedhere:}
- $\bool_if:NT \l__wi_displaystyle_bool \displaystyle {{}##}$
+ \clist_if_in:NVT \l__wa_tags_clist \g__wa_line_int
+ {\clist_set:Nn \l__wa_tags_clist {all}}
+ \bool_if:NT \c__wa_amsthm_loaded_bool {\cs_set_eq:NN \qedhere \__wa_qedhere:}
+ $\bool_if:NT \l__wa_displaystyle_bool \displaystyle {{}##}$
\tabskip = 0 pt plus 1000 pt minus 1000 pt
\tikz [remember~picture,overlay]
- \node [__wi_node_style,
- name = wa-\l__wi_prefix_str-\int_use:N\g__wi_line_int-l,
- alias = {\tl_if_empty:NF \l__wi_name_tl
- {\l__wi_name_tl-\int_use:N\g__wi_line_int-l}} ] {} ;
+ \node [__wa_node_style,
+ name = wa-\l__wa_prefix_str-\int_use:N\g__wa_line_int-l,
+ alias = {\tl_if_empty:NF \l__wa_name_tl
+ {\l__wa_name_tl-\int_use:N\g__wa_line_int-l}} ] {} ;
\hfil
\tikz [remember~picture,overlay]
- \node [__wi_node_style,
- name = wa-\l__wi_prefix_str-\int_use:N\g__wi_line_int-r,
- alias = {\tl_if_empty:NF \l__wi_name_tl
- {\l__wi_name_tl-\int_use:N\g__wi_line_int-r}} ] {} ;
- \bool_if:NT \l__wi_shownodenames_bool
- {\hbox_overlap_right:n {\small wa-\l__wi_prefix_str
- -\int_use:N\g__wi_line_int}}
+ \node [__wa_node_style,
+ name = wa-\l__wa_prefix_str-\int_use:N\g__wa_line_int-r,
+ alias = {\tl_if_empty:NF \l__wa_name_tl
+ {\l__wa_name_tl-\int_use:N\g__wa_line_int-r}} ] {} ;
+ \bool_if:NT \l__wa_shownodenames_bool
+ {\hbox_overlap_right:n {\small wa-\l__wa_prefix_str
+ -\int_use:N\g__wa_line_int}}
& ##
\tabskip = \c_zero_skip
- && \__wi_error:n {Third~column~in~an~environment~{DispWithArrows}}
+ && \__wa_error:n {Third~column~in~DispWithArrows}
\iffalse ## \fi
\cr}
- {\clist_if_in:NnT \l__wi_tags_clist {last}
- {\clist_set:Nn \l__wi_tags_clist {all}}
+ {\clist_if_in:NnT \l__wa_tags_clist {last}
+ {\clist_set:Nn \l__wa_tags_clist {all}}
\\
\egroup
\egroup
- \bool_if:NT \l__wi_in_DispWithArrows_bool
- {\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:nnnNn 1 1 \g__wi_line_int \l_tmpa_int
- {\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} }
+ \bool_if:NT \l__wa_in_DispWithArrows_bool
+ {\dim_gzero_new:N \g__wa_right_x_dim
+ \dim_gset_eq:NN \g__wa_right_x_dim \c_max_dim
+ \begin{tikzpicture} [__wa_standard]
+ \int_step_variable:nNn \g__wa_line_int \l_tmpa_int
+ {\cs_if_free:cTF {pgf@sh@ns@wa-\l__wa_prefix_str-\l_tmpa_int-v}
+ {\__wa_error: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__wa_right_x_dim
+ {\dim_gset:Nn \g__wa_right_x_dim \l_tmpa_dim}} }
\end{tikzpicture}}
- \__wi_post_environment:
- \bool_if:nT \c__wi_mathtools_loaded_bool
+ \__wa_post_environment:
+ \bool_if:nT \c__wa_mathtools_loaded_bool
{\MH_if_boolean:nT {show_only_refs}
\MT_showonlyrefs_true:}
$$
- \bool_if:NT \g__wi_footnote_bool \endsavenotes
+ \bool_if:NT \g__wa_footnote_bool \endsavenotes
\ignorespacesafterend
}
\NewDocumentEnvironment {DispWithArrows*} {}
{\WithArrowsOptions{notag}
\DispWithArrows}
{\endDispWithArrows}
-\cs_new_protected:Nn \__wi_scan_arrows:
+\cs_new_protected:Nn \__wa_scan_arrows:
{ \group_begin:
- \int_compare:nNnT \l__wi_pos_arrows_int = 7
- { \__wi_scan_arrows_i:
- \int_set:Nn \l__wi_pos_arrows_int 8 }
- \__wi_scan_arrows_i:
+ \int_compare:nNnT \l__wa_pos_arrow_int = 7
+ { \__wa_scan_arrows_i:
+ \int_set:Nn \l__wa_pos_arrow_int 8 }
+ \__wa_scan_arrows_i:
\group_end:}
-\cs_new_protected:Nn \__wi_scan_arrows_i:
+\cs_new_protected:Nn \__wa_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_of_group_seq
- \seq_clear_new:N \l__wi_last_arrows_of_group_seq
- \bool_set_true:N \l__wi_new_group_bool
- \int_set:Nn \l__wi_arrow_int 1
- \int_until_do:nNnn \l__wi_arrow_int > \g__wi_arrow_int
+ \int_zero_new:N \l__wa_first_arrow_of_group_int
+ \int_zero_new:N \l__wa_first_line_of_group_int
+ \int_zero_new:N \l__wa_last_line_of_group_int
+ \seq_clear_new:N \l__wa_first_arrows_of_group_seq
+ \seq_clear_new:N \l__wa_last_arrows_of_group_seq
+ \bool_set_true:N \l__wa_new_group_bool
+ \int_set:Nn \l__wa_arrow_int 1
+ \int_until_do:nNnn \l__wa_arrow_int > \g__wa_arrow_int
{
- \prop_get:cnN {g__wi_arrow_\l__wi_prefix_str _\int_use:N\l__wi_arrow_int _prop}
+ \prop_get:cnN {g__wa_arrow_\l__wa_prefix_str _\int_use:N\l__wa_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}
+ \int_set:Nn \l__wa_initial_int \l_tmpa_tl
+ \prop_get:cnN {g__wa_arrow_\l__wa_prefix_str _\int_use:N\l__wa_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}
+ \int_set:Nn \l__wa_final_int \l_tmpa_tl
+ \prop_get:cnN {g__wa_arrow_\l__wa_prefix_str _\int_use:N\l__wa_arrow_int _prop}
{position} \l_tmpa_tl
- \int_set:Nn \l__wi_pos_of_arrow_int \l_tmpa_tl
- \int_compare:nNnTF \l__wi_final_int > \g__wi_line_int
- {\__wi_error:n {Too~few~lines~for~an~arrow}}
- {\bool_if:nT {\int_compare_p:nNn \l__wi_arrow_int > 1
+ \int_set:Nn \l__wa_pos_of_arrow_int \l_tmpa_tl
+ \int_compare:nNnTF \l__wa_final_int > \g__wa_line_int
+ {\__wa_error:n {Too~few~lines~for~an~arrow}}
+ {\bool_if:nT {\int_compare_p:nNn \l__wa_arrow_int > 1
&&
\int_compare_p:nNn
- \l__wi_initial_int > \l__wi_last_line_of_group_int
+ \l__wa_initial_int > \l__wa_last_line_of_group_int
&&
- \int_compare_p:n {\l__wi_pos_arrows_int != 7}}
- {\__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:Nn \l__wi_first_arrow_of_group_int \l__wi_arrow_int
- \int_set:Nn \l__wi_first_line_of_group_int \l__wi_initial_int
- \int_set:Nn \l__wi_last_line_of_group_int \l__wi_final_int
- \seq_clear:N \l__wi_first_arrows_of_group_seq
- \seq_put_left:Nx \l__wi_first_arrows_of_group_seq
- {\int_use:N \l__wi_arrow_int}
- \seq_clear:N \l__wi_last_arrows_of_group_seq
- \seq_put_left:Nx \l__wi_last_arrows_of_group_seq
- {\int_use:N \l__wi_arrow_int}
- \int_compare:nT {\l__wi_pos_arrows_int != 8}
- {\dim_set:Nn \l__wi_x_dim {-\c_max_dim}}
+ \int_compare_p:n {\l__wa_pos_arrow_int != 7}}
+ {\__wa_draw_arrows:nn \l__wa_first_arrow_of_group_int {\l__wa_arrow_int - 1}
+ \bool_set_true:N \l__wa_new_group_bool}
+ \bool_if:nTF \l__wa_new_group_bool
+ {\bool_set_false:N \l__wa_new_group_bool
+ \int_set_eq:NN \l__wa_first_arrow_of_group_int \l__wa_arrow_int
+ \int_set_eq:NN \l__wa_first_line_of_group_int \l__wa_initial_int
+ \int_set_eq:NN \l__wa_last_line_of_group_int \l__wa_final_int
+ \seq_clear:N \l__wa_first_arrows_of_group_seq
+ \seq_put_left:NV \l__wa_first_arrows_of_group_seq \l__wa_arrow_int
+ \seq_clear:N \l__wa_last_arrows_of_group_seq
+ \seq_put_left:NV \l__wa_last_arrows_of_group_seq \l__wa_arrow_int
+ \int_compare:nT {\l__wa_pos_arrow_int != 8}
+ {\dim_set:Nn \l__wa_x_dim {-\c_max_dim}}
}
- {\int_compare:nNnT \l__wi_pos_of_arrow_int = {-1}
- {\int_compare:nNnT \l__wi_initial_int = \l__wi_first_line_of_group_int
- {\seq_put_left:Nx \l__wi_first_arrows_of_group_seq
- {\int_use:N \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_of_group_seq
- \seq_put_left:Nx \l__wi_last_arrows_of_group_seq
- {\int_use:N \l__wi_arrow_int}}
- {\int_compare:nNnT \l__wi_final_int = \l__wi_last_line_of_group_int
- {\seq_put_left:Nx \l__wi_last_arrows_of_group_seq
- {\int_use:N \l__wi_arrow_int}}}}}
- \int_compare:nNnT \l__wi_pos_of_arrow_int = {-1}
- { \int_compare:nT {\l__wi_pos_arrows_int != 8}
- {\__wi_update_x_value:nn \l__wi_initial_int \l__wi_final_int}} }
- \int_incr:N \l__wi_arrow_int
+ {\int_compare:nNnT \l__wa_pos_of_arrow_int = {-1}
+ {\int_compare:nNnT \l__wa_initial_int = \l__wa_first_line_of_group_int
+ {\seq_put_left:NV \l__wa_first_arrows_of_group_seq \l__wa_arrow_int}
+ \int_compare:nNnTF \l__wa_final_int > \l__wa_last_line_of_group_int
+ {\int_set_eq:NN \l__wa_last_line_of_group_int \l__wa_final_int
+ \seq_clear:N \l__wa_last_arrows_of_group_seq
+ \seq_put_left:NV \l__wa_last_arrows_of_group_seq \l__wa_arrow_int}
+ {\int_compare:nNnT \l__wa_final_int = \l__wa_last_line_of_group_int
+ {\seq_put_left:NV \l__wa_last_arrows_of_group_seq \l__wa_arrow_int}}}}
+ \int_compare:nNnT \l__wa_pos_of_arrow_int = {-1}
+ { \int_compare:nT {\l__wa_pos_arrow_int != 8}
+ {\__wa_update_x_value:nn \l__wa_initial_int \l__wa_final_int}} }
+ \int_incr:N \l__wa_arrow_int
}
- \int_compare:nT {\l__wi_pos_arrows_int != 7}
- {\__wi_draw_arrows:nn \l__wi_first_arrow_of_group_int \g__wi_arrow_int}
+ \int_compare:nT {\l__wa_pos_arrow_int != 7}
+ {\__wa_draw_arrows:nn \l__wa_first_arrow_of_group_int \g__wa_arrow_int}
}
\cs_generate_variant:Nn \keys_set:nn {no}
-\cs_new_protected:Nn \__wi_keys_set: {\keys_set:no {WithArrows/General}}
-\cs_new_protected:Nn \__wi_draw_arrows:nn
+\cs_new_protected:Nn \__wa_keys_set: {\keys_set:no {WithArrows/General}}
+\cs_new_protected:Nn \__wa_draw_arrows:nn
{\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
+ \int_zero_new:N \l__wa_first_arrow_int
+ \int_set:Nn \l__wa_first_arrow_int {#1}
+ \int_zero_new:N \l__wa_last_arrow_int
+ \int_set:Nn \l__wa_last_arrow_int {#2}
+ \int_set:Nn \l__wa_arrow_int \l__wa_first_arrow_int
+ \int_until_do:nNnn \l__wa_arrow_int > \l__wa_last_arrow_int
{
- \prop_get:cnN {g__wi_arrow_\l__wi_prefix_str _\int_use:N\l__wi_arrow_int _prop}
+ \prop_get:cnN {g__wa_arrow_\l__wa_prefix_str _\int_use:N\l__wa_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}
+ \int_set:Nn \l__wa_initial_int {\l_tmpa_tl}
+ \prop_get:cnN {g__wa_arrow_\l__wa_prefix_str _\int_use:N\l__wa_arrow_int _prop}
{final} \l_tmpa_tl
- \int_set:Nn \l__wi_final_int {\l_tmpa_tl}
- \int_compare:nNnT \l__wi_final_int < {\g__wi_line_int + 1}
- \__wi_draw_arrows_i:
- \int_incr:N \l__wi_arrow_int
+ \int_set:Nn \l__wa_final_int {\l_tmpa_tl}
+ \int_compare:nNnT \l__wa_final_int < {\g__wa_line_int + 1}
+ \__wa_draw_arrows_i:
+ \int_incr:N \l__wa_arrow_int
}
\group_end:
}
-\cs_new_protected:Nn \__wi_draw_arrows_i:
+\cs_new_protected:Nn \__wa_draw_arrows_i:
{\group_begin:
- \int_set:Nn \l__wi_level_int 3
- \prop_get:cnN {g__wi_arrow_\l__wi_prefix_str
- _\int_use:N\l__wi_arrow_int _prop} {options} \l_tmpa_tl
+ \int_set:Nn \l__wa_level_int 3
+ \prop_get:cnN {g__wa_arrow_\l__wa_prefix_str
+ _\int_use:N\l__wa_arrow_int _prop} {options} \l_tmpa_tl
\exp_args:NNo \exp_args:No
- \__wi_keys_set: {\l_tmpa_tl,tikz={xshift = \l__wi_xoffset_dim}}
- \prop_get:cnN {g__wi_arrow_\l__wi_prefix_str _\int_use:N\l__wi_arrow_int _prop}
+ \__wa_keys_set: {\l_tmpa_tl,tikz={xshift = \l__wa_xoffset_dim}}
+ \prop_get:cnN {g__wa_arrow_\l__wa_prefix_str _\int_use:N\l__wa_arrow_int _prop}
{position} \l_tmpa_tl
\int_set:Nn \l_tmpa_int \l_tmpa_tl
\int_compare:nNnF \l_tmpa_int = {-1}
- {\int_set_eq:NN \l__wi_pos_arrows_int \l_tmpa_int}
- \bool_set_false:N \l__wi_initial_r_bool
- \bool_set_false:N \l__wi_final_r_bool
- \int_case:nn \l__wi_pos_arrows_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_arrows_int = 5
- { \dim_set:Nn \l__wi_x_dim {-\c_max_dim}
- \__wi_update_x_value: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}
+ {\int_set_eq:NN \l__wa_pos_arrow_int \l_tmpa_int}
+ \bool_set_false:N \l__wa_initial_r_bool
+ \bool_set_false:N \l__wa_final_r_bool
+ \int_case:nn \l__wa_pos_arrow_int
+ {0 {\bool_set_true:N \l__wa_final_r_bool}
+ 2 {\bool_set_true:N \l__wa_initial_r_bool}
+ 3 {\bool_set_true:N \l__wa_initial_r_bool
+ \bool_set_true:N \l__wa_final_r_bool}}
+ \int_compare:nNnT \l__wa_pos_arrow_int = 5
+ { \dim_set:Nn \l__wa_x_dim {-\c_max_dim}
+ \__wa_update_x_value:nn \l__wa_initial_int \l__wa_final_int }
+ \tl_set:Nx \l__wa_initial_tl
+ {\int_use:N\l__wa_initial_int-\bool_if:NTF\l__wa_initial_r_bool rl .south}
+ \tl_set:Nx \l__wa_final_tl
+ {\int_use:N\l__wa_final_int-\bool_if:NTF\l__wa_final_r_bool rl .north}
+ \prop_get:cnN {g__wa_arrow_\l__wa_prefix_str _\int_use:N\l__wa_arrow_int _prop}
{label}
\l_tmpa_tl
- \seq_if_in:NxTF \l__wi_first_arrows_of_group_seq {\int_use:N \l__wi_arrow_int}
+ \seq_if_in:NxTF \l__wa_first_arrows_of_group_seq {\int_use:N \l__wa_arrow_int}
{\bool_set_true:N \l_tmpa_bool}
{\bool_set_false:N \l_tmpa_bool}
- \seq_if_in:NxTF \l__wi_last_arrows_of_group_seq {\int_use:N \l__wi_arrow_int}
+ \seq_if_in:NxTF \l__wa_last_arrows_of_group_seq {\int_use:N \l__wa_arrow_int}
{\bool_set_true:N \l_tmpb_bool}
{\bool_set_false:N \l_tmpb_bool}
- \int_compare:nNnT \l__wi_pos_arrows_int = 5
+ \int_compare:nNnT \l__wa_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)
+ \begin{tikzpicture} [__wa_standard]
+ \tikz@scan@one@point\pgfutil@firstofone (\l__wa_initial_tl)
\tl_gset:Nx \g_tmpa_tl
- {\int_compare:nNnTF \l__wi_pos_arrows_int < 5
+ {\int_compare:nNnTF \l__wa_pos_arrow_int < 5
{ \dim_use:N \pgf@x }
- { \dim_use:N \l__wi_x_dim } ,
+ { \dim_use:N \l__wa_x_dim } ,
\bool_if:NTF \l_tmpa_bool
- { \dim_eval:n {\pgf@y + \l__wi_start_adjust_dim }}
+ { \dim_eval:n {\pgf@y + \l__wa_start_adjust_dim }}
{ \dim_use:N \pgf@y } }
- \tikz@scan@one@point\pgfutil@firstofone (\l__wi_final_tl)
+ \tikz@scan@one@point\pgfutil@firstofone (\l__wa_final_tl)
\tl_gset:Nx \g_tmpb_tl
- {\int_compare:nNnTF \l__wi_pos_arrows_int < 5
+ {\int_compare:nNnTF \l__wa_pos_arrow_int < 5
{ \dim_use:N \pgf@x }
- { \dim_use:N \l__wi_x_dim } ,
+ { \dim_use:N \l__wa_x_dim } ,
\bool_if:NTF \l_tmpb_bool
- { \dim_eval:n {\pgf@y - \l__wi_end_adjust_dim }}
+ { \dim_eval:n {\pgf@y - \l__wa_end_adjust_dim }}
{ \dim_use:N \pgf@y }}
\end{tikzpicture}
- \__wi_draw_arrow:nno \g_tmpa_tl \g_tmpb_tl \l_tmpa_tl
+ \__wa_draw_arrow:nno \g_tmpa_tl \g_tmpb_tl \l_tmpa_tl
\group_end: }
-\cs_new_protected:Nn \__wi_def_function_tmpa:n
- {\cs_set:Nn \__wi_tmpa:nnn
- {\begin{tikzpicture}[__wi_standard,every~path/.style = {WithArrows/arrow}]
+\cs_new_protected:Nn \__wa_def_function_tmpa:n
+ {\cs_set:Nn \__wa_tmpa:nnn
+ {\begin{tikzpicture}[__wa_standard,every~path/.style = {WithArrows/arrow}]
#1
\end{tikzpicture}}}
-\cs_new_protected:Nn \__wi_draw_arrow:nnn
+\cs_new_protected:Nn \__wa_draw_arrow:nnn
{
- \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:No \__wi_def_function_tmpa:n \l__wi_tikz_code_tl
- \__wi_tmpa:nnn {#1} {#2} {#3} }
-\cs_generate_variant:Nn \__wi_draw_arrow:nnn {nno}
-\tl_set:Nn \c__wi_tikz_code_wrap_lines_tl
+ \bool_if:nT {\l__wa_wrap_lines_bool && \l__wa_in_DispWithArrows_bool}
+ { \tl_set_eq:NN \l__wa_tikz_code_tl \c__wa_tikz_code_wrap_lines_tl }
+ \exp_args:No \__wa_def_function_tmpa:n \l__wa_tikz_code_tl
+ \__wa_tmpa:nnn {#1} {#2} {#3} }
+\cs_generate_variant:Nn \__wa_draw_arrow:nnn {nno}
+\tl_set:Nn \c__wa_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 - 0.3333 em}
+ \draw (#1) to node (__wa_label) {} (#2) ;
+ \tikz@parse@node \pgfutil@firstofone (__wa_label.west)
+ \dim_set:Nn \l_tmpa_dim {\g__wa_right_x_dim - \pgf@x - 0.3333 em}
\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)
+ {\path (__wa_label.west)
node [anchor = west, text~width = \dim_use:N \l_tmpa_dim]
{#3} ; } }
-\cs_new_protected:Nn \__wi_update_x_value:nn
- {\int_step_inline:nnnn {#1} 1 {#2}
- {\begin{tikzpicture} [__wi_standard]
+\cs_new_protected:Nn \__wa_update_x_value:nn
+ {\int_step_inline:nnn {#1} {#2}
+ {\begin{tikzpicture} [__wa_standard]
\tikz@scan@one@point\pgfutil@firstofone (##1-l)
- \dim_gset:Nn \g_tmpa_dim {\dim_max:nn \l__wi_x_dim \pgf@x }
+ \dim_gset:Nn \g_tmpa_dim {\dim_max:nn \l__wa_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}
+ \dim_set_eq:NN \l__wa_x_dim \g_tmpa_dim } }
+\cs_new:Npn \WithArrowsLastEnv {\int_use:N \g__wa_last_env_int}
\keys_define:nn {WithArrows/CodeAfter}
{tikz .code:n = \tikzset {WithArrows/arrow/.append~style = {#1}} ,
tikz .value_required:n = true,
rr .value_forbidden:n = true,
- rr .code:n = \__wi_analyze_option_position:n 0 ,
+ rr .code:n = \__wa_analyze_option_position:n 0 ,
ll .value_forbidden:n = true,
- ll .code:n = \__wi_analyze_option_position:n 1 ,
+ ll .code:n = \__wa_analyze_option_position:n 1 ,
rl .value_forbidden:n = true,
- rl .code:n = \__wi_analyze_option_position:n 2 ,
+ rl .code:n = \__wa_analyze_option_position:n 2 ,
lr .value_forbidden:n = true,
- lr .code:n = \__wi_analyze_option_position:n 3 ,
+ lr .code:n = \__wa_analyze_option_position:n 3 ,
v .value_forbidden:n = true,
- v .code:n = \__wi_analyze_option_position:n 4 ,
- TikzCode .tl_set:N = \l__wi_tikz_code_tl,
+ v .code:n = \__wa_analyze_option_position:n 4 ,
+ TikzCode .tl_set:N = \l__wa_tikz_code_tl,
TikzCode .value_required:n = true,
- xoffset .dim_set:N = \l__wi_xoffset_dim,
+ xoffset .dim_set:N = \l__wa_xoffset_dim,
xoffset .value_required:n = true}
-\NewDocumentCommand \__wi_Arrow_code_after {O{} mmm O{}}
- {\int_set:Nn \l__wi_pos_arrows_int 1
- \int_set:Nn \l__wi_previous_pos_arrows_int {-1}
+\NewDocumentCommand \__wa_Arrow_code_after {O{} mmm !O{}}
+ {\int_set:Nn \l__wa_pos_arrow_int 1
+ \int_set:Nn \l__wa_previous_pos_arrow_int {-1}
\group_begin:
- \int_set:Nn \l__wi_level_int 3
+ \int_set:Nn \l__wa_level_int 3
\keys_set:nn {WithArrows/CodeAfter}
- {#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_arrows_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}}
- \cs_if_free:cTF {pgf@sh@ns@wa-\l__wi_prefix_str-#2-l}
- {\__wi_error:nx {Wrong~line~specification~in~Arrow} {#2}}
- {\cs_if_free:cTF {pgf@sh@ns@wa-\l__wi_prefix_str-#3-l}
- {\__wi_error:nx {Wrong~line~specification~in~Arrow} {#3}}
- {\int_compare:nNnTF \l__wi_pos_arrows_int = 4
- {\begin{tikzpicture} [__wi_standard]
+ {#1,#5,tikz={xshift = \l__wa_xoffset_dim}}
+ \bool_set_false:N \l__wa_initial_r_bool
+ \bool_set_false:N \l__wa_final_r_bool
+ \int_case:nn \l__wa_pos_arrow_int
+ {0 {\bool_set_true:N \l__wa_initial_r_bool
+ \bool_set_true:N \l__wa_final_r_bool}
+ 2 {\bool_set_true:N \l__wa_initial_r_bool}
+ 3 {\bool_set_true:N \l__wa_final_r_bool}}
+ \cs_if_free:cTF {pgf@sh@ns@wa-\l__wa_prefix_str-#2-l}
+ {\__wa_error:nx {Wrong~line~in~Arrow} {#2}}
+ {\cs_if_free:cTF {pgf@sh@ns@wa-\l__wa_prefix_str-#3-l}
+ {\__wa_error:nx {Wrong~line~in~Arrow} {#3}}
+ {\int_compare:nNnTF \l__wa_pos_arrow_int = 4
+ {\begin{tikzpicture} [__wa_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
@@ -896,24 +899,24 @@
\tl_gset:Nx \g_tmpb_tl
{\dim_use:N \l_tmpa_dim , \dim_use:N \pgf@y}
\end{tikzpicture} }
- {\begin{tikzpicture} [__wi_standard]
+ {\begin{tikzpicture} [__wa_standard]
\tikz@scan@one@point\pgfutil@firstofone
- (#2-\bool_if:NTF\l__wi_initial_r_bool rl .south)
+ (#2-\bool_if:NTF\l__wa_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)
+ (#3-\bool_if:NTF\l__wa_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} }}
+ \__wa_draw_arrow:nnn \g_tmpa_tl \g_tmpb_tl {#4} }}
\group_end:
}
-\cs_new_protected:Nn \__wi_MultiArrow:nn
+\cs_new_protected:Nn \__wa_MultiArrow:nn
{
- \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 }
+ \foreach \x in {#1} {\cs_if_free:cTF {pgf@sh@ns@wa-\l__wa_prefix_str-\x-l}
+ {\__wa_error:nx {Wrong~line~specification~in~MultiArrow} \x }
{\clist_gput_right:Nx \g_tmpa_clist \x}}
\int_compare:nNnTF {\clist_count:N \g_tmpa_clist} < 2
- {\__wi_error:n {Too~small~specification~for~MultiArrow}}
+ {\__wa_error:n {Too~small~specification~for~MultiArrow}}
{\clist_sort:Nn \g_tmpa_clist
{\int_compare:nNnTF {##1} > {##2}
{\sort_return_swapped:}
@@ -921,29 +924,29 @@
\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:Nx \__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)
+ \exp_args:Nx \__wa_MultiArrow_i:n {\g_tmpa_clist}
+ \begin{tikzpicture}[__wa_standard,every~path/.style={WithArrows/arrow}]
+ \draw [<->] ([xshift = \l__wa_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)
+ -- node (__wa_label) {}
+ ([xshift = \l__wa_xoffset_dim+5mm]\l_tmpb_tl-r.south)
+ -- ([xshift = \l__wa_xoffset_dim]\l_tmpb_tl-r.south) ;
+ \tikz@parse@node \pgfutil@firstofone (__wa_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}
+ \bool_if:nT {\l__wa_wrap_lines_bool && \l__wa_in_DispWithArrows_bool}
+ {\dim_set:Nn \l_tmpb_dim {\g__wa_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)
+ \path (__wa_label.west)
node [anchor = west, text~width = \dim_use:N \l_tmpa_dim] {#2} ;
\end{tikzpicture} } }
-\cs_new_protected:Nn \__wi_MultiArrow_i:n
- {\begin{tikzpicture}[__wi_standard,every~path/.style={WithArrows/arrow}]
+\cs_new_protected:Nn \__wa_MultiArrow_i:n
+ {\begin{tikzpicture}[__wa_standard,every~path/.style={WithArrows/arrow}]
\foreach \k in {#1}
- {\draw[<-] ([xshift = \l__wi_xoffset_dim]\k-r.south) -- ++(5mm,0) ;} ;
+ {\draw[<-] ([xshift = \l__wa_xoffset_dim]\k-r.south) -- ++(5mm,0) ;} ;
\end{tikzpicture}}
\msg_new:nnn {witharrows}
{AllowLineWithoutAmpersand}
@@ -952,58 +955,61 @@
"AllowLineWithoutAmpersand"~will~probably~be~deleted~in~a~future~version.~
However,~you~can~go~on~for~this~time.}
\msg_new:nnn {witharrows}
- {Option~unknown}
+ {Unknown~option}
{The~option~"\tl_use:N\l_keys_key_tl"~is~unknown~or~
meaningless~in~the~context.~If~you~go~on,~it~will~be~ignored.}
\msg_new:nnn {witharrows}
- {Third~column~in~an~environment~{WithArrows}}
- {By~default,~an~environment~\{WithArrows\}~can~only~have~two~columns.~
- Maybe~you~have~forgotten~a~\str_use:N \c_backslash_str
- \str_use:N \c_backslash_str.~If~you~really~want~more~than~two~columns,~
- you~should~use~the~option~"MoreColumns"~at~a~global~level~or~for~
- an~environment.~However,~you~can~go~one~for~this~time.}
+ {Third~column~in~WithArrows}
+ {By~default,~an~environment~\{\l__wa_type_env_tl\}~can~only~have~
+ two~columns.~Maybe~you~have~forgotten~a~
+ \c_backslash_str\c_backslash_str.~If~you~really~want~more~than~
+ two~columns,~you~should~use~the~option~"MoreColumns"~at~a~global~
+ level~or~for~ an~environment.~However,~you~can~go~one~for~
+ this~time.}
\msg_new:nnn {witharrows}
- {Third~column~in~an~environment~{DispWithArrows}}
- {An~environment~\{DispWithArrows\}~or~\{DispWithArrows*\}~can~only~
- have~two~columns.~If~you~go~on,~you~may~have~an~incorrect~output.}
+ {Third~column~in~DispWithArrows}
+ {An~environment~\{\l__wa_type_env_tl\}~can~only~have~two~columns.~
+ Maybe~you~have~forgotten~a~\c_backslash_str\c_backslash_str\ at~the~end~
+ of~row~\int_use:N\g__wa_line_int.~If~you~go~on,~you~may~have~other~errors.}
\msg_new:nnn {witharrows}
- {The~option~"jump"~must~be~non~negative}
+ {Negative~value~for~jump}
{You~can't~use~a~strictly~negative~value~for~the~option~"jump"~of~command~
- \token_to_str:N\Arrow.~ You~can~create~an~arrow~going~backwards~with~
- the~option~"<-"~of~Tikz.}
+ \l__wa_string_Arrow_for_messages_str.~
+ You~can~create~an~arrow~going~backwards~with~ the~option~"<-"~of~Tikz.}
\msg_new:nnn {witharrows}
{Too~few~lines~for~an~arrow}
- {An~arrow~specified~in~line~\int_use:N \l__wi_initial_int\ can't~be~drawn~
+ {An~arrow~specified~in~line~\int_use:N \l__wa_initial_int\ can't~be~drawn~
because~it~arrives~after~the~last~line~of~the~environment~(remind~that~
- the~command~\token_to_str:N\Arrow\ must~be~in~the~*start*~line~
- of~the~arrow).~If~you~go~on,~this~arrow~will~be~ignored.}
+ the~command~\l__wa_string_Arrow_for_messages_str.~
+ must~be~in~the~*start*~line~of~the~arrow).~
+ If~you~go~on,~this~arrow~will~be~ignored.}
\msg_new:nnn {witharrows}
- {{WithArrows}~used~outside~math~mode}
- {The~environment~\{WithArrows\}~should~be~used~only~in~math~mode.~
+ {WithArrows~outside~math~mode}
+ {The~environment~\{\l__wa_type_env_tl\}~should~be~used~only~in~math~mode.~
Nevertheless,~you~can~go~on.}
\msg_new:nnn {witharrows}
- {{DispWithArrows}~used~in~math~mode}
- {The~environment~\{DispWithArrows\}~should~be~used~only~outside~math~mode.~
- If~you~go~on,~you~will~have~other~errors.}
+ {DispWithArrows~in~math~mode}
+ {The~environment~\{\l__wa_type_env_tl\}~should~be~used~only~
+ outside~math~mode.~If~you~go~on,~you~will~have~other~errors.}
\msg_new:nnn {witharrows}
- {Two~options~are~incompatible}
+ {Incompatible~options}
{You~try~to~use~the~option~"\tl_use:N\l_keys_key_tl"~but~
this~option~is~incompatible~or~redundant~with~the~option~"
- \int_case:nn\l__wi_previous_pos_arrows_int
- {0 {rr}
+ \int_case:nn\l__wa_previous_pos_arrow_int
+ {0 {lr}
1 {ll}
2 {rl}
- 3 {lr}
+ 3 {rr}
4 {v}
5 {i}
6 {groups}
7 {group}}"~
set~in~the~same~
- \int_case:nn\l__wi_level_int
+ \int_case:nn\l__wa_level_int
{1 {command~\token_to_str:N\WithArrowsOptions}
2 {declaration~of~options~of~the~environment~
- \{\@currenvir\}}
- 3 {command~\token_to_str:N\Arrow}}.~
+ \{\l__wa_type_env_tl\}}
+ 3 {command~\l__wa_string_Arrow_for_messages_str}}.~
If~you~go~on,~I~will~use~the~option~"\tl_use:N\l_keys_key_tl".}
\msg_new:nnn {witharrows}
{Option~will~be~ignored}
@@ -1011,14 +1017,11 @@
If~you~go~on,~it~will~be~ignored.}
\msg_new:nnn {witharrows}
{Arrow~in~first~column}
- {You~should~not~use~the~command~\token_to_str:N\Arrow\
- \str_if_eq:NNF \l__wi_CommandName_tl \l_tmpa_tl
- {(renamed~in~\str_use:N \c_backslash_str
- \tl_use:N \l__wi_CommandName_tl)~}
- ~in~the~first~column~but~only~in~the~second~column.\\
+ {You~should~not~use~the~command~\l__wa_string_Arrow_for_messages_str\
+ in~the~first~column~but~only~in~the~second~column.\\
However~you~can~go~on~for~this~time.}
\msg_new:nnn {witharrows}
- {Wrong~line~specification~in~Arrow}
+ {Wrong~line~in~Arrow}
{The~specification~of~line~"#1"~you~use~in~\token_to_str:N\Arrow\
~doesn't~exist.\\
If~you~go~on,~the~arrow~will~be~ignored.}
@@ -1037,151 +1040,234 @@
(or~mathtools).~If~you~go~on,~the~command~\token_to_str:N\tag\
will~be~used~instead.}
\msg_new:nnn {witharrows}
- {Command~not~allowed~in~{DispWithArrows}}
+ {Command~not~allowed~in~DispWithArrows}
{The~command~\token_to_str:N #1
- is~not~allowed~in~the~first~column~of~\{DispWithArrows\}~but~
+ is~not~allowed~in~the~first~column~of~\{\l__wa_type_env_tl\}~but~
only~in~the~second~column.~If~you~go~on,~this~command~will~be~ignored.}
\msg_new:nnn {witharrows}
- {Command~not~allowed~in~{WithArrows}}
- {The~command~\token_to_str:N #1
- is~not~allowed~in~\{WithArrows\}~but~is~allowed~in~the~second~
- column~of~\{DispWithArrows\}~If~you~go~on,~this~command~will~be~ignored.}
+ {Command~not~allowed~in~WithArrows}
+ {The~command~\token_to_str:N #1 is~not~allowed~in~\{\l__wa_type_env_tl\}~
+ (it's~allowed~in~the~second~column~of~\{DispWithArrows\}).~If~you~go~on,
+ ~this~command~will~be~ignored.}
\msg_new:nnn {witharrows}
{Multiple~tags}
{You~can't~use~twice~the~command~\token_to_str:N\tag\
- in~a~line~of~the~environment~\{\@currenvir\}.~If~you~go~on,~the~tag~
+ in~a~line~of~the~environment~\{\l__wa_type_env_tl\}.~If~you~go~on,~the~tag~
'#1'~will~be~used.}
\msg_new:nnn {witharrows}
{Multiple~labels}
{Normally,~we~can't~use~the~command~\token_to_str:N\label\
- twice~in~a~line~of~the~environment~\{\@currenvir\}.~
+ twice~in~a~line~of~the~environment~\{\l__wa_type_env_tl\}.~
However,~you~can~go~on.~
- \bool_if:NT \c__wi_showlabels_loaded_bool
+ \bool_if:NT \c__wa_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~
"AllowMultipleLabels"~at~the~global~or~environment~level.}
\msg_new:nnn {witharrows}
{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~\{\@currenvir\}.~
+ twice~in~a~line~of~the~environment~\{\l__wa_type_env_tl\}.~
If~you~go~on,~you~may~have~undefined~references.}
-\coffin_new:N \l__wi_halign_coffin
-\NewDocumentEnvironment {CasesWithArrows} {m O{}}
+\msg_new:nnn {witharrows}
+ {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.~If~you~go~on,~you~may~have~an~incorrect~output.}
+\msg_new:nnn {witharrows}
+ {Option~incompatible~with~group}
+ {You~try~to~use~the~option~"\tl_use:N\l_keys_key_tl"~while~
+ you~are~using~the~option~"
+ \int_compare:nNnTF \l__wa_pos_arrow_int = 5
+ {group}
+ {groups}".~
+ It's~incompatible.~You~can~go~on~ignoring~this~option~
+ "\tl_use:N\l_keys_key_tl"~but~you~should~correct~your~code.}
+\coffin_new:N \l__wa_halign_coffin
+\NewDocumentEnvironment {CasesWithArrows} {m !O{}}
{\hbox_set:Nn \l_tmpa_box {$\left\{\vcenter to 1cm {} \right.$}
- \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_part_box
- \hbox_set:Nn \l__wi_left_part_box
- {$\bool_if:NT \l__wi_displaystyle_bool \displaystyle #1 {}$}
- \bool_if:nT \c__wi_mathtools_loaded_bool
+ \dim_zero_new:N \l__wa_delim_wd_dim
+ \dim_set:Nn \l__wa_delim_wd_dim {\box_wd:N \l_tmpa_box}
+ \box_clear_new:N \l__wa_left_part_box
+ \hbox_set:Nn \l__wa_left_part_box
+ {$\bool_if:NT \l__wa_displaystyle_bool \displaystyle #1 {}$}
+ \bool_if:nT \c__wa_mathtools_loaded_bool
{\MH_if_boolean:nT {show_only_refs}
{\MT_showonlyrefs_false:
\MH_set_boolean_T:n {show_only_refs}
- \clist_set:Nn \l__wi_tags_clist {all}}}
- \bool_if:NT \c__wi_amsmath_loaded_bool \intertext@
+ \clist_set:Nn \l__wa_tags_clist {all}}}
+ \bool_if:NT \c__wa_amsmath_loaded_bool \intertext@
\if_mode_math:
- \__wi_error:n {{DispWithArrows}~used~in~math~mode}
+ \__wa_error:n {DispWithArrows~in~math~mode}
\fi:
- \bool_set_true:N \l__wi_in_DispWithArrows_bool
+ \bool_set_true:N \l__wa_in_DispWithArrows_bool
%
- \__wi_pre_environment:n {#2}
+ \__wa_pre_environment:n {#2}
\nointerlineskip
\hbox_to_wd:nn {0.6\linewidth} {}
$$
\spread@equation
- \vcoffin_set:Nnw \l__wi_halign_coffin \displaywidth
- \bool_if:NTF \l__wi_fleqn_bool
+ \vcoffin_set:Nnw \l__wa_halign_coffin \displaywidth
+ \bool_if:NTF \l__wa_fleqn_bool
{\tabskip = \c_zero_skip}
{\tabskip = 0 pt plus 1000 pt minus 1000 pt}
- \bool_if:NTF \c__wi_amsmath_loaded_bool
- {\cs_set_eq:NN \__wi_old_label \ltx@label}
- {\cs_set_eq:NN \__wi_old_label \label}
+ \bool_if:NTF \c__wa_amsmath_loaded_bool
+ {\cs_set_eq:NN \__wa_old_label \ltx@label}
+ {\cs_set_eq:NN \__wa_old_label \label}
\halign to \displaywidth \bgroup
- \int_gincr:N \g__wi_line_int
- \cs_set_eq:cN \l__wi_CommandName_tl \__wi_Arrow_first_column:
- \bool_set_true:N \l__wi_in_first_column_bool
- \strut
- \bool_if:NT \l__wi_fleqn_bool
- {\skip_horizontal:n \l__wi_mathindent_dim}
+ \int_gincr:N \g__wa_line_int
+ \cs_set_eq:cN \l__wa_CommandName_str \__wa_Arrow_first_column:
+ \bool_set_true:N \l__wa_in_first_column_bool
+ \bool_if:NT \l__wa_fleqn_bool
+ {\skip_horizontal:n \l__wa_mathindent_dim}
\hfil
- \skip_horizontal:n {\box_wd:N \l__wi_left_part_box + \l__wi_delim_wd_dim}
- $\bool_if:NT \l__wi_displaystyle_bool \displaystyle {##}$
+ \skip_horizontal:n {\box_wd:N \l__wa_left_part_box + \l__wa_delim_wd_dim}
+ $\bool_if:NT \l__wa_displaystyle_bool \displaystyle {##}$
\tabskip = \c_zero_skip
&
- \clist_if_in:NVT \l__wi_tags_clist \g__wi_line_int
- {\clist_set:Nn \l__wi_tags_clist {all}}
- \cs_set:Npn \notag {\clist_clear:N \l__wi_tags_clist}
- $\bool_if:NT \l__wi_displaystyle_bool \displaystyle {{}##}$
+ \clist_if_in:NVT \l__wa_tags_clist \g__wa_line_int
+ {\clist_set:Nn \l__wa_tags_clist {all}}
+ \cs_set:Npn \notag {\clist_clear:N \l__wa_tags_clist}
+ $\bool_if:NT \l__wa_displaystyle_bool \displaystyle {{}##}$
\tabskip = 0 pt plus 1000 pt minus 1000 pt
\tikz [remember~picture,overlay]
- \node [__wi_node_style,
- name = wa-\l__wi_prefix_str-\int_use:N\g__wi_line_int-l,
- alias = {\tl_if_empty:NF \l__wi_name_tl
- {\l__wi_name_tl-\int_use:N\g__wi_line_int-l}} ] {} ;
+ \node [__wa_node_style,
+ name = wa-\l__wa_prefix_str-\int_use:N\g__wa_line_int-l,
+ alias = {\tl_if_empty:NF \l__wa_name_tl
+ {\l__wa_name_tl-\int_use:N\g__wa_line_int-l}} ] {} ;
\hfil
\tikz [remember~picture,overlay]
- \node [__wi_node_style,
- name = wa-\l__wi_prefix_str-\int_use:N\g__wi_line_int-r,
- alias = {\tl_if_empty:NF \l__wi_name_tl
- {\l__wi_name_tl-\int_use:N\g__wi_line_int-r}} ] {} ;
- \bool_if:NT \l__wi_shownodenames_bool
- {\hbox_overlap_right:n {\small wa-\l__wi_prefix_str
- -\int_use:N\g__wi_line_int}}
+ \node [__wa_node_style,
+ name = wa-\l__wa_prefix_str-\int_use:N\g__wa_line_int-r,
+ alias = {\tl_if_empty:NF \l__wa_name_tl
+ {\l__wa_name_tl-\int_use:N\g__wa_line_int-r}} ] {} ;
+ \bool_if:NT \l__wa_shownodenames_bool
+ {\hbox_overlap_right:n {\small wa-\l__wa_prefix_str
+ -\int_use:N\g__wa_line_int}}
& ##
\tabskip = \c_zero_skip
- && \__wi_error:n {Third~column~in~an~environment~{DispWithArrows}}
+ && \__wa_error:n {Third~column~in~DispWithArrows}
\if_false: ## \fi:
\cr}
- {\clist_if_in:NnT {last} \l__wi_tags_clist
- {\clist_set:Nn \l__wi_tags_clist {all}}
+ {\clist_if_in:NnT \l__wa_tags_clist {last}
+ {\clist_set:Nn \l__wa_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}}
+ \dim_gzero_new:N \g__wa_alignment_dim
+ \dim_gset:Nn \g__wa_alignment_dim {\box_wd:N \l_tmpa_box}
+ \box_clear_new:N \l__wa_new_box
+ \hbox_set:Nn \l__wa_new_box {\hbox_unpack_clear:N \l_tmpa_box}
+ \dim_compare:nNnT {\box_wd:N \l__wa_new_box} < \g__wa_alignment_dim
+ {\dim_gset:Nn \g__wa_alignment_dim {\box_wd:N \l__wa_new_box}}
\vcoffin_set_end:
\hbox_to_wd:nn \displaywidth
{
- \bool_if:NTF \l__wi_fleqn_bool
- {\skip_horizontal:n \l__wi_mathindent_dim}
+ \bool_if:NTF \l__wa_fleqn_bool
+ {\skip_horizontal:n \l__wa_mathindent_dim}
{\hfil}
- \hbox_to_wd:nn \g__wi_alignment_dim
- { \box_use_drop:N \l__wi_left_part_box
- \dim_set:Nn \l_tmpa_dim { \box_ht:N \l__wi_halign_coffin
- + \box_dp:N \l__wi_halign_coffin}
+ \hbox_to_wd:nn \g__wa_alignment_dim
+ { \box_use_drop:N \l__wa_left_part_box
+ \dim_set:Nn \l_tmpa_dim { \box_ht:N \l__wa_halign_coffin
+ + \box_dp:N \l__wa_halign_coffin}
$\left\{ \vcenter to \l_tmpa_dim {\vfil} \right.$}
\hfil}
\coffin_typeset:Nnnnn
- \l__wi_halign_coffin {l} {vc} {-\displaywidth} \c_zero_dim
+ \l__wa_halign_coffin {l} {vc} {-\displaywidth} \c_zero_dim
$$
- \__wi_post_environment:
- \bool_if:nT \c__wi_mathtools_loaded_bool
+ \__wa_post_environment:
+ \bool_if:nT \c__wa_mathtools_loaded_bool
{\MH_if_boolean:nT {show_only_refs}
\MT_showonlyrefs_true:}
- \bool_if:NT \g__wi_footnote_bool \endsavenotes
+ \bool_if:NT \g__wa_footnote_bool \endsavenotes
\ignorespacesafterend
}
\NewDocumentCommand \WithArrowsNewStyle {mm}
{ \keys_if_exist:nnTF {WithArrows/General} {#1}
- {\__wi_error:nn {Key~already~defined} {#1}}
+ {\__wa_error:nn {Key~already~defined} {#1}}
{\keys_define:nn {WithArrows/General}
- {#1 .code:n = {\int_compare:nNnTF \l__wi_level_int < 3
- {\keys_set:nn {WithArrows/General} {#2}}
- {\__wi_error:n {Option~unknown}}}}
+ {#1 .code:n = {\int_compare:nNnTF \l__wa_level_int < 3
+ {\bool_set_eq:NN \l_tmpa_bool \l__wa_in_WithArrows_bool
+ \bool_set_eq:NN \l_tmpb_bool \l__wa_in_DispWithArrows_bool
+ \bool_set_false:N \l__wa_in_WithArrows_bool
+ \bool_set_false:N \l__wa_in_DispWithArrows_bool
+ \keys_set_known:nnN {WithArrows/General} {#2} \l_tmpa_tl
+ \keys_set_known:nVN {WithArrows/GlobalOrEnv}
+ \l_tmpa_tl \l_tmpb_tl
+ \bool_set_eq:NN \l__wa_in_WithArrows_bool \l_tmpa_bool
+ \bool_set_eq:NN \l__wa_in_DispWithArrows_bool \l_tmpb_bool}
+ {\__wa_error:n {Unknown~option}}}}
\group_begin:
+ \msg_set:nnn {witharrows}
+ {Option~will~be~ignored}
+ {The~option~"\tl_use:N\l_keys_key_tl"~is~unknown~or~can't~be~
+ used~in~\token_to_str:N\WithArrowsNewStyle.~If~you~go~on,~
+ this~option~will~be~ignored~in~the~definition~of~style~'#1'.}
+ \msg_set:nnn {witharrows}
+ {Unknown~option}
+ {The~option~"\tl_use:N\l_keys_key_tl"~is~unknown.~If~you~go~on,~
+ this~option~will~be~ignored~in~the~definition~of~style~'#1'.}
\WithArrowsOptions{#2}
\group_end:} }
\msg_new:nnn {witharrows}
{Key~already~defined}
{The~key~'#1'~is~already~defined.~If~you~go~on,~
your~instruction~\token_to_str:N\WithArrowsNewStyle\ will~be~ignored.}
+\tl_set:Nn \c__wa_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_set:Nn \c__wa_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/General}
+ {up .value_forbidden:n = true,
+ up .code:n = {\int_compare:nNnTF \l__wa_level_int = 3
+ {\bool_if:NTF \c__wa_varwidth_loaded_bool
+ {\cs_if_exist:cTF {tikz@library@calc@loaded}
+ {\int_set:Nn \l__wa_pos_arrow_int 1
+ \bool_set_false:N \l__wa_wrap_lines_bool
+ \tl_set_eq:NN \l__wa_tikz_code_tl \c__wa_tikz_code_up_tl}
+ {\__wa_error:n {calc~not~loaded}}}
+ {\__wa_error:n {varwidth~not~loaded}}}
+ {\__wa_error:n {Unknown~option}}},
+ down .value_forbidden:n = true,
+ down .code:n = {\int_compare:nNnTF \l__wa_level_int = 3
+ {\bool_if:NTF \c__wa_varwidth_loaded_bool
+ {\cs_if_exist:cTF {tikz@library@calc@loaded}
+ {\int_set:Nn \l__wa_pos_arrow_int 1
+ \bool_set_false:N \l__wa_wrap_lines_bool
+ \tl_set_eq:NN \l__wa_tikz_code_tl \c__wa_tikz_code_down_tl}
+ {\__wa_error:n {calc~not~loaded}}}
+ {\__wa_error:n {varwidth~not~loaded}}}
+ {\__wa_error:n {Unknown~option}}}}
+\msg_new:nnn {witharrows}
+ {varwidth~not~loaded}
+ {You~can't~use~the~option~"\l_keys_key_tl"~because~
+ you~don't~have~loaded~the~package~
+ varwidth.~If~you~go~on,~this~option~will~be~forgotten.}
+\msg_new:nnn {witharrows}
+ {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~your~preamble.~
+ ~If~you~go~on,~this~option~will~be~forgotten.}
\endinput
%%
%% End of file `witharrows.sty'.