summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2019-03-12 21:55:59 +0000
committerKarl Berry <karl@freefriends.org>2019-03-12 21:55:59 +0000
commit2d7d658f747fa6401c8784dfb3bc9be079986f25 (patch)
tree32c26756e7c94e0a1ab9bf2afd7187fdab8fbf24 /Master/texmf-dist/tex
parent27570b0335d858aae49821a98ebe3944b288ba40 (diff)
witharrows (12mar19)
git-svn-id: svn://tug.org/texlive/trunk@50356 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex')
-rw-r--r--Master/texmf-dist/tex/latex/witharrows/witharrows.sty1976
1 files changed, 989 insertions, 987 deletions
diff --git a/Master/texmf-dist/tex/latex/witharrows/witharrows.sty b/Master/texmf-dist/tex/latex/witharrows/witharrows.sty
index fe205670990..291cd84469e 100644
--- a/Master/texmf-dist/tex/latex/witharrows/witharrows.sty
+++ b/Master/texmf-dist/tex/latex/witharrows/witharrows.sty
@@ -18,8 +18,8 @@
%% and version 1.3 or later is part of all distributions of
%% LaTeX version 2005/12/01 or later.
%%
-\def\myfileversion{1.15}
-\def\myfiledate{2019/02/20}
+\def\myfileversion{1.16}
+\def\myfiledate{2019/03/11}
\RequirePackage{tikz}
\usetikzlibrary{arrows.meta,bending}
\RequirePackage{expl3}[2019/02/15]
@@ -30,32 +30,32 @@
{\myfileversion}
{Draws arrows for explanations on the right}
\RequirePackage { xparse } [ 2018-10-17 ]
-\bool_new:N \g__witharrows_footnotehyper_bool
-\bool_new:N \g__witharrows_footnote_bool
-\cs_new_protected:Npn \__witharrows_msg_new:nn { \msg_new:nnn { witharrows } }
-\cs_new_protected:Npn \__witharrows_msg_new:nnn { \msg_new:nnnn { witharrows } }
-\cs_new_protected:Npn \__witharrows_msg_redirect_name:nn
+\bool_new:N \g__wa_footnotehyper_bool
+\bool_new:N \g__wa_footnote_bool
+\cs_new_protected:Npn \__wa_msg_new:nn { \msg_new:nnn { witharrows } }
+\cs_new_protected:Npn \__wa_msg_new:nnn { \msg_new:nnnn { witharrows } }
+\cs_new_protected:Npn \__wa_msg_redirect_name:nn
{ \msg_redirect_name:nnn { witharrows } }
\keys_define:nn { WithArrows / package }
{
- footnote .bool_gset:N = \g__witharrows_footnote_bool ,
- footnotehyper .bool_gset:N = \g__witharrows_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 }
}
-\__witharrows_msg_new:nn { Option~unknown~for~package }
+\__wa_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 }
-\__witharrows_msg_new:nn { Option~incompatible~with~Beamer }
+\__wa_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.
}
-\__witharrows_msg_new:nn { footnote~with~footnotehyper~package }
+\__wa_msg_new:nn { footnote~with~footnotehyper~package }
{
You~can't~use~the~option~'footnote'~because~the~package~
footnotehyper~has~already~been~loaded.~
@@ -63,7 +63,7 @@
within~the~environments~of~witharrows~will~be~extracted~with~the~tools~
of~the~package~footnotehyper.
}
-\__witharrows_msg_new:nn { footnotehyper~with~footnote~package }
+\__wa_msg_new:nn { footnotehyper~with~footnote~package }
{
You~can't~use~the~option~'footnotehyper'~because~the~package~
footnote~has~already~been~loaded.~
@@ -71,7 +71,7 @@
within~the~environments~of~witharrows~will~be~extracted~with~the~tools~
of~the~package~footnote.
}
-\bool_if:NT \g__witharrows_footnote_bool
+\bool_if:NT \g__wa_footnote_bool
{
\@ifclassloaded { beamer }
{ \msg_fatal:nn { witharrows } { Option~incompatible~with~Beamer } }
@@ -81,7 +81,7 @@
{ }
\usepackage { footnote }
}
-\bool_if:NT \g__witharrows_footnotehyper_bool
+\bool_if:NT \g__wa_footnotehyper_bool
{
\@ifclassloaded { beamer }
{ \msg_fatal:nn { witharrows } { Option~incompatible~with~Beamer } }
@@ -90,21 +90,15 @@
{ \msg_fatal:nn { witharrows } { footnotehyper~with~footnote~package } }
{ }
\usepackage { footnotehyper }
- \bool_gset_true:N \g__witharrows_footnote_bool
+ \bool_gset_true:N \g__wa_footnote_bool
}
-\bool_new:N \c__witharrows_leqno_bool
-\DeclareOption { leqno } { \bool_set_true:N \c__witharrows_leqno_bool }
+\bool_new:N \c__wa_leqno_bool
+\DeclareOption { leqno } { \bool_set_true:N \c__wa_leqno_bool }
\DeclareOption* { }
\ProcessOptions*
-\cs_new_protected:Npn \__witharrows_error:n { \msg_error:nn { witharrows } }
-\cs_new_protected:Npn \__witharrows_error:nn { \msg_error:nnn { witharrows } }
-\cs_generate_variant:Nn \__witharrows_error:nn { n x }
-\cs_new_protected:Nn \__witharrows_bool_new:N
- {
- \bool_if_exist:NTF #1
- { \bool_set_false:N #1 }
- { \bool_new:N #1 }
- }
+\cs_new_protected:Npn \__wa_error:n { \msg_error:nn { witharrows } }
+\cs_new_protected:Npn \__wa_error:nn { \msg_error:nnn { witharrows } }
+\cs_generate_variant:Nn \__wa_error:nn { n x }
\AtBeginDocument
{
\clist_map_inline:nn
@@ -113,35 +107,38 @@
typedref, varwidth
}
{
- \bool_new:c { c__witharrows_#1_loaded_bool }
+ \bool_new:c { c__wa_#1_loaded_bool }
\@ifpackageloaded { #1 }
- { \bool_set_true:c { c__witharrows_#1_loaded_bool } }
+ { \bool_set_true:c { c__wa_#1_loaded_bool } }
{ }
}
}
\sys_if_engine_luatex:TF
{
- \cs_new_protected:Nn \__witharrows_strcmp:nn
+ \cs_new_protected:Npn \__wa_strcmp:nn #1 #2
{ \lua_now:e { l3kernel.strcmp('#1','#2') } }
}
- { \cs_new_protected:Nn \__witharrows_strcmp:nn { \pdftex_strcmp:D { #1 } { #2 } } }
-\cs_new_protected:Nn \__witharrows_sort_seq:N
+ {
+ \cs_new_protected:Npn \__wa_strcmp:nn #1 #2
+ { \pdftex_strcmp:D { #1 } { #2 } }
+ }
+\cs_new_protected:Npn \__wa_sort_seq:N #1
{
\seq_sort:Nn #1
- {
- \int_compare:nNnTF
- {
- \__witharrows_strcmp:nn
- { \str_lower_case:n { ##1 } }
- { \str_lower_case:n { ##2 } }
- }
- > 0
- \sort_return_swapped:
- \sort_return_same:
- }
+ {
+ \int_compare:nNnTF
+ {
+ \__wa_strcmp:nn
+ { \str_lower_case:n { ##1 } }
+ { \str_lower_case:n { ##2 } }
+ }
+ > 0
+ \sort_return_swapped:
+ \sort_return_same:
+ }
}
\cs_generate_variant:Nn \seq_set_split:Nnn { N x x }
-\cs_new_protected:Nn \__witharrows_save:N
+\cs_new_protected:Npn \__wa_save:N #1
{
\seq_set_split:Nxx \l_tmpa_seq
{ \char_generate:nn { `_ } { 12 } }
@@ -157,7 +154,7 @@
\use:c { \l_tmpa_str _gset_eq:cN }
{ g _\seq_use:Nnnn \l_tmpa_seq _ _ _ } #1
}
-\cs_new_protected:Nn \__witharrows_restore:N
+\cs_new_protected:Npn \__wa_restore:N #1
{
\seq_set_split:Nxx \l_tmpa_seq
{ \char_generate:nn { `_ } { 12 } }
@@ -169,21 +166,21 @@
}
\tikzset
{
- __witharrows_node_style / .style =
+ __wa_node_style / .style =
{
- above = \l__witharrows_ystart_dim ,
+ above = \l__wa_ystart_dim ,
inner~sep = \c_zero_dim ,
minimum~width = \c_zero_dim ,
- minimum~height = \l__witharrows_ygap_dim
+ minimum~height = \l__wa_ygap_dim
}
}
\tikzset
{
- __witharrows_standard / .style =
+ __wa_standard / .style =
{
remember~picture ,
overlay ,
- name~prefix = wa - \l__witharrows_prefix_str -
+ name~prefix = wa - \l__wa_prefix_str -
}
}
\tikzset
@@ -192,8 +189,10 @@
{ > = { Straight~Barb [ scale = 1.2 , bend ] } }
}
\tikzset
- { WithArrows / arrow / .style =
- { align = left ,
+ {
+ WithArrows / arrow / .style =
+ {
+ align = left ,
auto = left ,
font = \small \itshape ,
WithArrows / arrow / tips ,
@@ -203,7 +202,7 @@
}
\AtBeginDocument
{
- \bool_if:NF \c__witharrows_amsmath_loaded_bool
+ \bool_if:NF \c__wa_amsmath_loaded_bool
{
\cs_set_protected:Npn \spread@equation
{
@@ -212,263 +211,258 @@
}
}
}
-\bool_new:N \l__witharrows_in_WithArrows_bool
-\bool_new:N \l__witharrows_in_DispWithArrows_bool
-\bool_new:N \l__witharrows_in_CodeAfter_bool
-\seq_new:N \g__witharrows_position_in_the_tree_seq
-\seq_gput_right:Nn \g__witharrows_position_in_the_tree_seq 1
-\int_new:N \g__witharrows_last_env_int
-\skip_new:N \l__witharrows_interline_skip
-\int_new:N \l__witharrows_pos_env_int
-\dim_new:N \l__witharrows_xoffset_dim
-\dim_set:Nn \l__witharrows_xoffset_dim { 3 mm }
-\int_new:N \l__witharrows_pos_arrow_int
-\int_set:Nn \l__witharrows_pos_arrow_int 3
-\str_new:N \l__witharrows_input_line_str
-\dim_new:N \l__witharrows_x_dim
-\seq_new:N \g__witharrows_arrow_int_seq
-\int_new:N \g__witharrows_arrow_int
-\seq_new:N \g__witharrows_line_int_seq
-\int_new:N \g__witharrows_line_int
-\bool_new:N \l__witharrows_fleqn_bool
-\dim_new:N \l__witharrows_mathindent_dim
-\dim_set:Nn \l__witharrows_mathindent_dim { 25 pt }
-\bool_new:N \l__witharrows_wrap_lines_bool
-\clist_new:N \l__witharrows_tags_clist
-\clist_set:Nn \l__witharrows_tags_clist { all }
-\tl_new:N \l__witharrows_tag_tl
-\bool_new:N \l__witharrows_tag_star_bool
-\bool_new:N \l__witharrows_in_first_column_bool
-\bool_new:N \l__witharrows_initial_r_bool
-\bool_new:N \l__witharrows_initial_l_bool
-\dim_new:N \l__witharrows_start_adjust_dim
-\dim_set:Nn \l__witharrows_start_adjust_dim { 0.4 ex }
-\dim_new:N \l__witharrows_end_adjust_dim
-\dim_set:Nn \l__witharrows_end_adjust_dim { 0.4 ex }
-\str_new:N \l__witharrows_status_arrow_str
-\str_set:Nn \l__witharrows_CommandName_str { Arrow }
-\str_set:Nx \l__witharrows_string_Arrow_for_msg_str { \token_to_str:N \Arrow }
-\bool_new:N \l__witharrows_displaystyle_bool
-\bool_new:N \l__witharrows_show_node_names_bool
-\cs_new_protected:Nn \__witharrows_eval_if_allowed:n
- {
- \str_if_empty:NTF \l__witharrows_previous_key_str
+\bool_new:N \l__wa_in_WithArrows_bool
+\bool_new:N \l__wa_in_DispWithArrows_bool
+\bool_new:N \l__wa_in_CodeAfter_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
+\int_new:N \l__wa_pos_env_int
+\int_new:N \l__wa_pos_arrow_int
+\int_set:Nn \l__wa_pos_arrow_int 3
+\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
+\clist_new:N \l__wa_tags_clist
+\clist_set:Nn \l__wa_tags_clist { all }
+\str_set:Nn \l__wa_CommandName_str { Arrow }
+\str_set:Nx \l__wa_string_Arrow_for_msg_str { \token_to_str:N \Arrow }
+\seq_new:N \g__wa_names_seq
+\bool_new:N \l__wa_sbwi_bool
+\cs_new_protected:Npn \__wa_eval_if_allowed:n #1
+ {
+ \str_if_empty:NTF \l__wa_previous_key_str
{
- \str_set_eq:NN \l__witharrows_previous_key_str \l_keys_key_tl
+ \str_set_eq:NN \l__wa_previous_key_str \l_keys_key_tl
#1
}
- { \__witharrows_error:n { Incompatible~options } }
+ { \__wa_error:n { Incompatible~options } }
}
-\cs_new_protected:Nn \__witharrows_fix_pos_option:n
- { \__witharrows_eval_if_allowed:n { \int_set:Nn \l__witharrows_pos_arrow_int { #1 } } }
+\cs_new_protected:Npn \__wa_fix_pos_option:n #1
+ { \__wa_eval_if_allowed:n { \int_set:Nn \l__wa_pos_arrow_int { #1 } } }
\keys_define:nn { WithArrows / Global }
{
- ygap .dim_set:N = \l__witharrows_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__witharrows_ystart_dim ,
+ ystart .dim_set:N = \l__wa_ystart_dim ,
ystart .value_required:n = true ,
ystart .initial:n = 0.4 ex ,
more-columns .code:n =
- \__witharrows_msg_redirect_name:nn { Third~column~in~WithArrows } { none } ,
+ \__wa_msg_redirect_name:nn { Third~column~in~WithArrows } { none } ,
more-columns .value_forbidden:n = true,
CommandName .code:n =
- \str_set:Nn \l__witharrows_CommandName_str { #1 }
- \str_set:Nx \l__witharrows_string_Arrow_for_msg_str
+ \str_set:Nn \l__wa_CommandName_str { #1 }
+ \str_set:Nx \l__wa_string_Arrow_for_msg_str
{ \c_backslash_str Arrow~alias~\c_backslash_str #1 } ,
CommandName .value_required:n = true ,
- TikzCode .tl_set:N = \l__witharrows_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__witharrows_displaystyle_bool ,
+ displaystyle .bool_set:N = \l__wa_displaystyle_bool ,
displaystyle .default:n = true ,
show-nodes .code:n =
- \tikzset { __witharrows_node_style / .append~style = { draw , red } } ,
+ \tikzset { __wa_node_style / .append~style = { draw , red } } ,
show-nodes .value_forbidden:n = true,
- show-node-names .bool_set:N = \l__witharrows_show_node_names_bool ,
+ show-node-names .bool_set:N = \l__wa_show_node_names_bool ,
show-node-names .default:n = true ,
group .code:n =
- \str_if_empty:NTF \l__witharrows_previous_key_str
+ \str_if_empty:NTF \l__wa_previous_key_str
{
- \str_set:Nn \l__witharrows_previous_key_str { group }
- \seq_remove_all:Nn \l__witharrows_options_Arrow_seq { xoffset }
- \int_set:Nn \l__witharrows_pos_arrow_int 7
+ \str_set:Nn \l__wa_previous_key_str { group }
+ \seq_remove_all:Nn \l__wa_options_Arrow_seq { xoffset }
+ \int_set:Nn \l__wa_pos_arrow_int 7
}
- { \__witharrows_error:n { Incompatible~options } } ,
+ { \__wa_error:n { Incompatible~options } } ,
group .value_forbidden:n = true ,
groups .code:n =
- \str_if_empty:NTF \l__witharrows_previous_key_str
+ \str_if_empty:NTF \l__wa_previous_key_str
{
- \str_set:Nn \l__witharrows_previous_key_str { groups }
- \seq_if_in:NnF \l__witharrows_options_Arrow_seq { new-group }
- { \seq_put_right:Nn \l__witharrows_options_Arrow_seq { new-group } }
- \seq_remove_all:Nn \l__witharrows_options_Arrow_seq { xoffset }
- \int_set:Nn \l__witharrows_pos_arrow_int 6
+ \str_set:Nn \l__wa_previous_key_str { groups }
+ \seq_if_in:NnF \l__wa_options_Arrow_seq { new-group }
+ { \seq_put_right:Nn \l__wa_options_Arrow_seq { new-group } }
+ \seq_remove_all:Nn \l__wa_options_Arrow_seq { xoffset }
+ \int_set:Nn \l__wa_pos_arrow_int 6
}
- { \__witharrows_error:n { Incompatible~options } } ,
+ { \__wa_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 = \__witharrows_fix_pos_option:n 3 ,
+ rr .code:n = \__wa_fix_pos_option:n 3 ,
ll .value_forbidden:n = true ,
- ll .code:n = \__witharrows_fix_pos_option:n 1 ,
+ ll .code:n = \__wa_fix_pos_option:n 1 ,
rl .value_forbidden:n = true ,
- rl .code:n = \__witharrows_fix_pos_option:n 2 ,
+ rl .code:n = \__wa_fix_pos_option:n 2 ,
lr .value_forbidden:n = true ,
- lr .code:n = \__witharrows_fix_pos_option:n 0 ,
+ lr .code:n = \__wa_fix_pos_option:n 0 ,
i .value_forbidden:n = true ,
- i .code:n = \__witharrows_fix_pos_option:n 5 ,
- xoffset .dim_set:N = \l__witharrows_xoffset_dim ,
+ i .code:n = \__wa_fix_pos_option:n 5 ,
+ xoffset .dim_set:N = \l__wa_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__witharrows_interline_skip ,
+ interline .skip_set:N = \l__wa_interline_skip ,
interline .value_required:n = true ,
- start-adjust .dim_set:N = \l__witharrows_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__witharrows_end_adjust_dim ,
+ start-adjust .initial:n = 0.4 ex ,
+ end-adjust .dim_set:N = \l__wa_end_adjust_dim ,
end-adjust .value_required:n = true ,
+ end-adjust .initial:n = 0.4 ex ,
adjust .code:n =
- \dim_set:Nn \l__witharrows_start_adjust_dim { #1 }
- \dim_set:Nn \l__witharrows_end_adjust_dim { #1 } ,
- adjust .value_required:n = true
+ \dim_zero_new:N \l__wa_start_adjust_dim
+ \dim_set:Nn \l__wa_start_adjust_dim { #1 }
+ \dim_zero_new:N \l__wa_end_adjust_dim
+ \dim_set:Nn \l__wa_end_adjust_dim { #1 } ,
+ adjust .value_required:n = true ,
+ no-arrows .code:n =
+ \cs_set_eq:NN \__wa_draw_arrows:nn \use_none:nn
+ \cs_set_eq:NN \__wa_draw_arrow:nnn \use_none:nnn ,
+ no-arrows .value_forbidden:n = true ,
}
\keys_define:nn { WithArrows / WithArrowsSpecific }
{
- t .code:n = \int_set:Nn \l__witharrows_pos_env_int 0 ,
+ t .code:n = \int_set:Nn \l__wa_pos_env_int O ,
t .value_forbidden:n = true ,
- c .code:n = \int_set:Nn \l__witharrows_pos_env_int 1 ,
+ c .code:n = \int_set:Nn \l__wa_pos_env_int 1 ,
c .value_forbidden:n = true ,
- b .code:n = \int_set:Nn \l__witharrows_pos_env_int 2 ,
+ b .code:n = \int_set:Nn \l__wa_pos_env_int 2 ,
b .value_forbidden:n = true
}
\keys_define:nn { WithArrows / DispWithArrowsSpecific }
{
- fleqn .bool_set:N = \l__witharrows_fleqn_bool ,
+ fleqn .bool_set:N = \l__wa_fleqn_bool ,
fleqn .default:n = true ,
- mathindent .dim_set:N = \l__witharrows_mathindent_dim ,
+ mathindent .dim_set:N = \l__wa_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__witharrows_tags_clist }
- { \clist_set:Nn \l__witharrows_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 ,
allow-multiple-labels .code:n =
- \__witharrows_msg_redirect_name:nn { Multiple~labels } { none } ,
+ \__wa_msg_redirect_name:nn { Multiple~labels } { none } ,
allow-multiple-labels .value_forbidden:n = true ,
- wrap-lines .bool_set:N = \l__witharrows_wrap_lines_bool ,
+ wrap-lines .bool_set:N = \l__wa_wrap_lines_bool ,
wrap-lines .default:n = true ,
tagged-lines .code:n =
- \clist_set:Nn \l__witharrows_tags_clist { #1 }
- \clist_if_in:NnT \l__witharrows_tags_clist { first }
+ \clist_set:Nn \l__wa_tags_clist { #1 }
+ \clist_if_in:NnT \l__wa_tags_clist { first }
{
- \clist_remove_all:Nn \l__witharrows_tags_clist { first }
- \clist_put_left:Nn \l__witharrows_tags_clist \c_one_int
+ \clist_remove_all:Nn \l__wa_tags_clist { first }
+ \clist_put_left:Nn \l__wa_tags_clist \c_one_int
} ,
- tagged-lines .value_required:n = true
+ tagged-lines .value_required:n = true ,
+ standard-behaviour-with-items .bool_set:N = \l__wa_sbwi_bool ,
+ standard-behaviour-with-items .default:n = true
+ }
+\keys_define:nn { WithArrows / Env }
+ {
+ name .code:n =
+ \seq_if_in:NnTF \g__wa_names_seq { #1 }
+ { \__wa_error:n { Duplicate~name } }
+ { \seq_gput_left:Nn \g__wa_names_seq { #1 } }
+ \str_set:Nn \l__wa_name_str { #1 } ,
+ name .value_required:n = true ,
+ CodeBefore .code:n = \tl_put_right:Nn \l__wa_code_before_tl { #1 } ,
+ CodeBefore .value_required:n = true,
+ CodeAfter .code:n = \tl_put_right:Nn \l__wa_code_after_tl { #1 } ,
+ CodeAfter .value_required:n = true
}
\keys_define:nn { WithArrows }
{
WithArrows .inherit:n =
{
WithArrows / Global ,
- WithArrows / WithArrowsSpecific
+ WithArrows / WithArrowsSpecific ,
+ WithArrows / Env
+ } ,
+ DispWithArrows .inherit:n =
+ {
+ WithArrows / DispWithArrowsSpecific ,
+ WithArrows / Global ,
+ WithArrows / Env ,
+ } ,
+ WithArrowsOptions .inherit:n =
+ {
+ WithArrows / Global ,
+ WithArrows / WithArrowsSpecific ,
+ WithArrows / DispWithArrowsSpecific
}
}
\keys_define:nn { WithArrows / WithArrows }
- {
- name .tl_set:N = \l__witharrows_name_str ,
- name .value_required:n = true ,
- CodeBefore .code:n = \tl_put_right:Nn \l__witharrows_code_before_tl { #1 } ,
- CodeBefore .value_required:n = true,
- CodeAfter .code:n = \tl_put_right:Nn \l__witharrows_code_after_tl { #1 } ,
- CodeAfter .value_required:n = true ,
- unknown .code:n =
- \__witharrows_sort_seq:N \l__witharrows_options_WithArrows_seq
- \__witharrows_error:n { Unknown~option~WithArrows }
- }
-\seq_set_from_clist:Nn \l__witharrows_options_WithArrows_seq
{
- adjust, b, c, CodeAfter, CodeBefore, CommandName, displaystyle, end-adjust,
- group, groups, i, interline, jot, ll, lr, more-columns, name, rl, rr,
- show-node-names, show-nodes, start-adjust, t, tikz, TikzCode, xoffset, ygap,
- ystart
+ unknown .code:n =
+ \__wa_sort_seq:N \l__wa_options_WithArrows_seq
+ \__wa_error:n { Unknown~option~WithArrows }
}
-\keys_define:nn { WithArrows }
+\seq_set_from_clist:Nn \l__wa_options_WithArrows_seq
{
- DispWithArrows .inherit:n =
- {
- WithArrows / DispWithArrowsSpecific ,
- WithArrows / Global
- }
+ adjust, b, c, CodeAfter, CodeBefore, CommandName, displaystyle, end-adjust,
+ group, groups, i, interline, jot, ll, lr, more-columns, name, no-arrows, rl,
+ rr, show-node-names, show-nodes, start-adjust, t, tikz, TikzCode, xoffset,
+ ygap, ystart
}
\keys_define:nn { WithArrows / DispWithArrows }
{
- name .tl_set:N = \l__witharrows_name_str ,
- name .value_required:n = true ,
- CodeBefore .code:n = \tl_put_right:Nn \l__witharrows_code_before_tl { #1 } ,
- CodeBefore .value_required:n = true ,
- CodeAfter .code:n = \tl_put_right:Nn \l__witharrows_code_after_tl { #1 } ,
- CodeAfter .value_required:n = true ,
unknown .code:n =
- \__witharrows_sort_seq:N \l__witharrows_options_DispWithArrows_seq
- \__witharrows_error:n { Unknown~option~DispWithArrows }
+ \__wa_sort_seq:N \l__wa_options_DispWithArrows_seq
+ \__wa_error:n { Unknown~option~DispWithArrows }
}
-\seq_set_from_clist:Nn \l__witharrows_options_DispWithArrows_seq
+\seq_set_from_clist:Nn \l__wa_options_DispWithArrows_seq
{
allow-multiple-labels, CodeAfter, CodeBefore, CommandName, TikzCode, adjust,
displaystyle, end-adjust, fleqn, group, groups, i, interline, jot, ll, lr,
- mathindent, name, nonumber, notag, rl, rr, show-node-names, show-nodes,
- start-adjust, tagged-lines, tikz, wrap-lines, xoffset, ygap, ystart
- }
-\keys_define:nn { WithArrows }
- {
- WithArrowsOptions .inherit:n =
- {
- WithArrows / Global ,
- WithArrows / WithArrowsSpecific ,
- WithArrows / DispWithArrowsSpecific
- }
+ mathindent, name, no-arrows, nonumber, notag, 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 =
+ \__wa_msg_redirect_name:nn { Duplicate~name } { none } ,
+ allow-duplicate-names .value_forbidden:n = true ,
unknown .code:n =
- \__witharrows_sort_seq:N \l__witharrows_options_WithArrowsOptions_seq
- \__witharrows_error:n { Unknown~option~WithArrowsOptions }
+ \__wa_sort_seq:N \l__wa_options_WithArrowsOptions_seq
+ \__wa_error:n { Unknown~option~WithArrowsOptions }
}
-\seq_set_from_clist:Nn \l__witharrows_options_WithArrowsOptions_seq
+\seq_set_from_clist:Nn \l__wa_options_WithArrowsOptions_seq
{
- allow-multiple-labels, b, c, CommandName, more-columns, TikzCode, adjust,
- displaystyle, end-adjust, fleqn, group, groups, i, interline, jot, ll, lr,
- mathindent, nonumber, notag, rl, rr, show-node-names, show-nodes,
+ allow-duplicate-names, allow-multiple-labels, b, c, CommandName,
+ more-columns, TikzCode, 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:Nn \__witharrows_set_independent:
+\cs_new_protected:Npn \__wa_set_independent:
{
- \str_if_empty:NTF \l__witharrows_previous_key_str
+ \str_if_empty:NTF \l__wa_previous_key_str
{
- \str_set_eq:NN \l__witharrows_previous_key_str \l_keys_key_tl
- \str_set:Nn \l__witharrows_status_arrow_str { independent }
+ \str_set_eq:NN \l__wa_previous_key_str \l_keys_key_tl
+ \str_set:Nn \l__wa_status_arrow_str { independent }
\str_if_eq:VnF \l_keys_value_tl { NoValue }
- { \__witharrows_error:n { Value~for~a~key } }
+ { \__wa_error:n { Value~for~a~key } }
}
- { \__witharrows_error:n { Incompatible~options~in~Arrow } }
+ { \__wa_error:n { Incompatible~options~in~Arrow } }
}
\keys_define:nn { WithArrows / Arrow / FirstPass }
{
jump .code:n =
\int_compare:nTF { #1 > 0 }
- { \int_set:Nn \l__witharrows_jump_int { #1 } }
- { \__witharrows_error:n { Negative~jump } } ,
+ { \int_set:Nn \l__wa_jump_int { #1 } }
+ { \__wa_error:n { Negative~jump } } ,
jump .value_required:n = true,
- rr .code:n = \__witharrows_set_independent: ,
- ll .code:n = \__witharrows_set_independent: ,
- rl .code:n = \__witharrows_set_independent: ,
- lr .code:n = \__witharrows_set_independent: ,
- i .code:n = \__witharrows_set_independent: ,
+ rr .code:n = \__wa_set_independent: ,
+ ll .code:n = \__wa_set_independent: ,
+ rl .code:n = \__wa_set_independent: ,
+ lr .code:n = \__wa_set_independent: ,
+ i .code:n = \__wa_set_independent: ,
rr .default:n = NoValue ,
ll .default:n = NoValue ,
rl .default:n = NoValue ,
@@ -476,16 +470,16 @@
i .default:n = NoValue ,
new-group .value_forbidden:n = true,
new-group .code:n =
- \int_compare:nTF { \l__witharrows_pos_arrow_int = 6 }
- { \str_set:Nn \l__witharrows_status_arrow_str { new-group } }
- { \__witharrows_error:n { new-group~without~groups } } ,
+ \int_compare:nTF { \l__wa_pos_arrow_int = 6 }
+ { \str_set:Nn \l__wa_status_arrow_str { new-group } }
+ { \__wa_error:n { new-group~without~groups } } ,
TikzCode .code:n = \prg_do_nothing: ,
TikzCode .value_required:n = true ,
tikz .code:n = \prg_do_nothing: ,
tikz .value_required:n = true ,
xoffset .code:n =
- \int_compare:nNnT \l__witharrows_pos_arrow_int > 5
- { \__witharrows_error:n { Option~xoffset~forbidden } } ,
+ \int_compare:nNnT \l__wa_pos_arrow_int > 5
+ { \__wa_error:n { Option~xoffset~forbidden } } ,
xoffset .value_required:n = true ,
start-adjust .code:n = \prg_do_nothing: ,
start-adjust .value_required:n = true ,
@@ -494,145 +488,150 @@
adjust .code:n = \prg_do_nothing: ,
adjust .value_required:n = true ,
unknown .code:n =
- \__witharrows_sort_seq:N \l__witharrows_options_Arrow_seq
- \__witharrows_error:n { Unknown~option~in~Arrow }
+ \__wa_sort_seq:N \l__wa_options_Arrow_seq
+ \__wa_error:n { Unknown~option~in~Arrow }
}
-\seq_set_from_clist:Nn \l__witharrows_options_Arrow_seq
+\seq_set_from_clist:Nn \l__wa_options_Arrow_seq
{
adjust, end-adjust, i, jump, ll, lr, rl, rr, start-adjust, tikz, TikzCode,
xoffset
}
-\cs_new_protected:Nn \__witharrows_fix_pos_arrow:n
+\cs_new_protected:Npn \__wa_fix_pos_arrow:n #1
{
- \str_if_empty:NT \l__witharrows_previous_key_str
+ \str_if_empty:NT \l__wa_previous_key_str
{
- \str_set_eq:NN \l__witharrows_previous_key_str \l_keys_key_tl
- \int_set:Nn \l__witharrows_pos_arrow_int { #1 }
+ \str_set_eq:NN \l__wa_previous_key_str \l_keys_key_tl
+ \int_set:Nn \l__wa_pos_arrow_int { #1 }
}
}
\keys_define:nn {WithArrows / Arrow / SecondPass }
{
- TikzCode .tl_set:N = \l__witharrows_tikz_code_tl ,
+ TikzCode .tl_set:N = \l__wa_tikz_code_tl ,
TikzCode .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 = \__witharrows_fix_pos_arrow:n 3 ,
- ll .code:n = \__witharrows_fix_pos_arrow:n 1 ,
- rl .code:n = \__witharrows_fix_pos_arrow:n 2 ,
- lr .code:n = \__witharrows_fix_pos_arrow:n 0 ,
- i .code:n = \__witharrows_fix_pos_arrow:n 5 ,
+ rr .code:n = \__wa_fix_pos_arrow:n 3 ,
+ ll .code:n = \__wa_fix_pos_arrow:n 1 ,
+ rl .code:n = \__wa_fix_pos_arrow:n 2 ,
+ lr .code:n = \__wa_fix_pos_arrow:n 0 ,
+ i .code:n = \__wa_fix_pos_arrow:n 5 ,
xoffset .code:n =
- \int_compare:nNnF \l__witharrows_pos_arrow_int > 5
- { \dim_set:Nn \l__witharrows_xoffset_dim { #1 } } ,
- start-adjust .dim_set:N = \l__witharrows_start_adjust_dim,
- end-adjust .dim_set:N = \l__witharrows_end_adjust_dim,
+ \int_compare:nNnF \l__wa_pos_arrow_int > 5
+ { \dim_set:Nn \l__wa_xoffset_dim { #1 } } ,
+ start-adjust .dim_set:N = \l__wa_start_adjust_dim,
+ end-adjust .dim_set:N = \l__wa_end_adjust_dim,
adjust .code:n =
- \dim_set:Nn \l__witharrows_start_adjust_dim { #1 }
- \dim_set:Nn \l__witharrows_end_adjust_dim { #1 } ,
+ \dim_set:Nn \l__wa_start_adjust_dim { #1 }
+ \dim_set:Nn \l__wa_end_adjust_dim { #1 } ,
}
\NewDocumentCommand \WithArrowsOptions { m }
{
- \str_clear_new:N \l__witharrows_previous_key_str
+ \str_clear_new:N \l__wa_previous_key_str
\keys_set:nn { WithArrows / WithArrowsOptions } { #1 }
}
-\NewDocumentCommand \__witharrows_Arrow { O { } m ! O { } }
+\NewDocumentCommand \__wa_Arrow { O { } m ! O { } }
{
- \int_gincr:N \g__witharrows_arrow_int
- \str_clear_new:N \l__witharrows_previous_key_str
+ \int_gincr:N \g__wa_arrow_int
+ \str_clear_new:N \l__wa_previous_key_str
\keys_set:nn { WithArrows / Arrow / FirstPass } { #1 , #3 }
- \prop_put:NnV \l_tmpa_prop { initial } \g__witharrows_line_int
- \int_set:Nn \l_tmpa_int { \g__witharrows_line_int + \l__witharrows_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 { status } \l__witharrows_status_arrow_str
+ \prop_put:NnV \l_tmpa_prop { status } \l__wa_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__witharrows_arrow _ \l__witharrows_prefix_str _ \int_use:N \g__witharrows_arrow_int _ prop }
+ { g__wa_arrow _ \l__wa_prefix_str _ \int_use:N \g__wa_arrow_int _ prop }
\prop_gset_eq:cN
- { g__witharrows_arrow _ \l__witharrows_prefix_str _ \int_use:N \g__witharrows_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 \__witharrows_Arrow_first_column:
- { \__witharrows_error:n { Arrow~in~first~column } \__witharrows_Arrow }
-\cs_new_protected:Nn \__witharrows_pre_environment:n
+\cs_new_protected:Npn \__wa_Arrow_first_column:
+ { \__wa_error:n { Arrow~in~first~column } \__wa_Arrow }
+\cs_new_protected:Npn \__wa_pre_environment:n #1
{
- \str_clear_new:N \l__witharrows_type_env_str
- \str_set:NV \l__witharrows_type_env_str \@currenvir
+ \str_clear_new:N \l__wa_type_env_str
+ \str_set:NV \l__wa_type_env_str \@currenvir
\cs_if_exist:NT \tikz@library@external@loaded
{ \tikzset { external / export = false } }
- \str_clear_new:N \l__witharrows_name_str
- \seq_gput_right:NV \g__witharrows_arrow_int_seq \g__witharrows_arrow_int
- \int_gzero:N \g__witharrows_arrow_int
- \seq_gput_right:NV \g__witharrows_line_int_seq \g__witharrows_line_int
- \int_gzero:N \g__witharrows_line_int
- \seq_gput_right:Nn \g__witharrows_position_in_the_tree_seq 1
- \seq_set_eq:NN \l_tmpa_seq \g__witharrows_position_in_the_tree_seq
+ \str_clear_new:N \l__wa_name_str
+ \str_clear_new:N \l__wa_status_arrow_str
+ \dim_zero_new:N \l__wa_x_dim
+ \str_clear_new:N \l__wa_input_line_str
+ \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__witharrows_prefix_str
- \str_set:Nx \l__witharrows_prefix_str { \seq_use:Nnnn \l_tmpa_seq - - - }
- \cs_set_eq:NN \\ \__witharrows_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__witharrows_initial_int
- \int_zero_new:N \l__witharrows_final_int
- \int_zero_new:N \l__witharrows_arrow_int
- \int_zero_new:N \l__witharrows_pos_of_arrow_int
- \int_zero_new:N \l__witharrows_jump_int
- \int_set:Nn \l__witharrows_jump_int \c_one_int
- \seq_clear_new:N \l__witharrows_labels_seq
- \__witharrows_bool_new:N \l__witharrows_tag_next_line_bool
- \skip_zero:N \l__witharrows_interline_skip
- \tl_clear_new:N \l__witharrows_code_before_tl
- \tl_clear_new:N \l__witharrows_code_after_tl
- \str_clear_new:N \l__witharrows_previous_key_str
- \bool_if:NT \l__witharrows_in_WithArrows_bool
+ \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 \c_one_int
+ \bool_set_false:N \l__wa_in_first_column_bool
+ \seq_clear_new:N \l__wa_labels_seq
+ \bool_set_false: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
+ \str_clear_new:N \l__wa_previous_key_str
+ \bool_if:NT \l__wa_in_WithArrows_bool
{ \keys_set:nn { WithArrows / WithArrows } { #1 } }
- \bool_if:NT \l__witharrows_in_DispWithArrows_bool
+ \bool_if:NT \l__wa_in_DispWithArrows_bool
{ \keys_set:nn { WithArrows / DispWithArrows } { #1 } }
- \bool_if:NT \g__witharrows_footnote_bool { \begin { savenotes } }
- \l__witharrows_code_before_tl
- \cs_set_eq:cN \l__witharrows_CommandName_str \__witharrows_Arrow
+ \bool_if:NT \g__wa_footnote_bool { \begin { savenotes } }
+ \l__wa_code_before_tl
+ \cs_set_eq:cN \l__wa_CommandName_str \__wa_Arrow
+ \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 \__wa_old_label \label
+ \cs_set_eq:NN \label \__wa_label:n
+ \cs_set_eq:NN \tagnextline \__wa_tagnextline:
}
\NewDocumentEnvironment { WithArrows } { ! O { } }
{
- \bool_set_true:N \l__witharrows_in_WithArrows_bool
- \bool_set_false:N \l__witharrows_in_DispWithArrows_bool
- \__witharrows_pre_environment:n { #1 }
+ \bool_set_true:N \l__wa_in_WithArrows_bool
+ \bool_set_false:N \l__wa_in_DispWithArrows_bool
+ \__wa_pre_environment:n { #1 }
\if_mode_math: \else:
- \__witharrows_error:n { WithArrows~outside~math~mode }
+ \__wa_error:n { WithArrows~outside~math~mode }
\fi:
- \cs_set_eq:NN \notag \__witharrows_notag:
- \cs_set_eq:NN \nonumber \__witharrows_notag:
- \cs_set_eq:NN \tag \__witharrows_tag
- \cs_set_eq:NN \label \__witharrows_label:n
- \cs_set_eq:NN \tagnextline \__witharrows_tagnextline:
- \int_case:nn \l__witharrows_pos_env_int { 0 \vtop 1 \vcenter 2 \vbox }
+ \int_case:nn \l__wa_pos_env_int { 0 \vtop 1 \vcenter 2 \vbox }
\bgroup
\spread@equation
\ialign \bgroup
- \int_gincr:N \g__witharrows_line_int
- \cs_set_eq:cN \l__witharrows_CommandName_str \__witharrows_Arrow_first_column:
- \bool_set_true:N \l__witharrows_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__witharrows_displaystyle_bool \displaystyle
+ \bool_if:NT \l__wa_displaystyle_bool \displaystyle
{ ## }
$
&
$
- \bool_if:NT \l__witharrows_displaystyle_bool \displaystyle
+ \bool_if:NT \l__wa_displaystyle_bool \displaystyle
{ { } ## }
$
\tikz [ remember~picture , overlay ]
\node
[
node~contents = { } ,
- __witharrows_node_style ,
- name = wa - \l__witharrows_prefix_str - \int_use:N \g__witharrows_line_int - l ,
+ __wa_node_style ,
+ name = wa - \l__wa_prefix_str - \int_use:N \g__wa_line_int - l ,
alias =
{
- \str_if_empty:NF \l__witharrows_name_str
- { \l__witharrows_name_str - \int_use:N \g__witharrows_line_int - l }
+ \str_if_empty:NF \l__wa_name_str
+ { \l__wa_name_str - \int_use:N \g__wa_line_int - l }
}
]
;
@@ -641,24 +640,24 @@
\node
[
node~contents = { } ,
- __witharrows_node_style ,
- name = wa - \l__witharrows_prefix_str - \int_use:N \g__witharrows_line_int - r ,
+ __wa_node_style ,
+ name = wa - \l__wa_prefix_str - \int_use:N \g__wa_line_int - r ,
alias =
{
- \str_if_empty:NF \l__witharrows_name_str
- { \l__witharrows_name_str - \int_use:N \g__witharrows_line_int - r }
+ \str_if_empty:NF \l__wa_name_str
+ { \l__wa_name_str - \int_use:N \g__wa_line_int - r }
}
]
;
- \bool_if:NT \l__witharrows_show_node_names_bool
+ \bool_if:NT \l__wa_show_node_names_bool
{
\hbox_overlap_right:n
- { \small wa - \l__witharrows_prefix_str - \int_use:N \g__witharrows_line_int }
+ { \small wa - \l__wa_prefix_str - \int_use:N \g__wa_line_int }
}
&&
- \__witharrows_error:n { Third~column~in~WithArrows }
+ \__wa_error:n { Third~column~in~WithArrows }
$
- \bool_if:NT \l__witharrows_displaystyle_bool \displaystyle
+ \bool_if:NT \l__wa_displaystyle_bool \displaystyle
{ ## }
$
\cr
@@ -667,190 +666,187 @@
\\
\egroup
\egroup
- \__witharrows_post_environment:
- \bool_if:NT \g__witharrows_footnote_bool { \end { savenotes } }
+ \__wa_post_environment:
+ \bool_if:NT \g__wa_footnote_bool { \end { savenotes } }
}
-\cs_new_protected:Nn \__witharrows_post_environment:
+\cs_new_protected:Npn \__wa_post_environment:
{
- \cs_set:Npn \WithArrowsRightX { \g__witharrows_right_x_dim }
- \int_compare:nNnT \g__witharrows_arrow_int > 0 \__witharrows_scan_arrows:
+ \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 = __witharrows_standard }
- \cs_set:Npn \WithArrowsNbLines { \int_use:N \g__witharrows_line_int }
- \cs_set_eq:NN \MultiArrow \__witharrows_MultiArrow:nn
- \cs_set_eq:cN \l__witharrows_CommandName_str \__witharrows_Arrow_code_after
- \bool_set_true:N \l__witharrows_in_CodeAfter_bool
- \l__witharrows_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
+ \bool_set_true:N \l__wa_in_CodeAfter_bool
+ \l__wa_code_after_tl
\group_end:
- \seq_gpop_right:NN \g__witharrows_position_in_the_tree_seq \l_tmpa_tl
- \seq_gpop_right:NN \g__witharrows_position_in_the_tree_seq \l_tmpa_tl
- \seq_gput_right:Nx \g__witharrows_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__witharrows_position_in_the_tree_seq } = 1
- { \int_gincr:N \g__witharrows_last_env_int }
- \seq_gpop_right:NN \g__witharrows_arrow_int_seq \l_tmpa_tl
- \int_gset:Nn \g__witharrows_arrow_int \l_tmpa_tl
- \seq_gpop_right:NN \g__witharrows_line_int_seq \l_tmpa_tl
- \int_gset:Nn \g__witharrows_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 \__witharrows_cr:
+\cs_new_protected:Npn \__wa_cr:
{
\scan_stop:
- \bool_if:NT \l__witharrows_in_first_column_bool { & { } }
+ \bool_if:NT \l__wa_in_first_column_bool { & { } }
\group_align_safe_begin:
- \peek_meaning_remove:NTF * \__witharrows_cr_i: \__witharrows_cr_i:
+ \peek_meaning_remove:NTF * \__wa_cr_i: \__wa_cr_i:
}
-\cs_new_protected:Nn \__witharrows_cr_i:
- { \peek_meaning:NTF [ \__witharrows_cr_ii: { \__witharrows_cr_ii: [ \c_zero_dim ] } }
-\cs_new_protected:Npn \__witharrows_cr_ii: [ #1 ]
+\cs_new_protected:Npn \__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__witharrows_in_DispWithArrows_bool
+ \bool_if:NT \l__wa_in_DispWithArrows_bool
{
- \clist_if_in:NnTF \l__witharrows_tags_clist { all }
+ \clist_if_in:NnTF \l__wa_tags_clist { all }
{
- \tl_if_empty:NT \l__witharrows_tag_tl { \int_gincr:N \c@equation }
+ \tl_if_empty:NT \l__wa_tag_tl { \int_gincr:N \c@equation }
\cs_gset:Npx \g_tmpa_tl
- { \tl_if_empty:NTF \l__witharrows_tag_tl \theequation \l__witharrows_tag_tl }
- \seq_if_empty:NF \l__witharrows_labels_seq
+ { \tl_if_empty:NTF \l__wa_tag_tl \theequation \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__witharrows_hyperref_loaded_bool
- {
- \cs_set:Npn \This@name { equation }
- \hyper@refstepcounter { equation }
- }
- \bool_if:NT \c__witharrows_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
- }
- }
- \bool_if:NT \c__witharrows_typedref_loaded_bool
- { \cs_set:Npn \sr@name { equation } }
- \seq_map_function:NN \l__witharrows_labels_seq \__witharrows_old_label
+ \bool_if:NT \c__wa_hyperref_loaded_bool
+ {
+ \str_set:Nn \This@name { equation }
+ \hyper@refstepcounter { equation }
+ }
+ \bool_if:NT \c__wa_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__wa_labels_seq \__wa_old_label
}
- \__witharrows_save:N \l__witharrows_tag_star_bool
- \__witharrows_save:N \l__witharrows_qedhere_bool
- \bool_if:NT \l__witharrows_tag_next_line_bool
+ \__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__witharrows_tag_next_line_bool
+ \bool_set_false:N \l__wa_tag_next_line_bool
\notag \\ &
}
&
- \__witharrows_restore:N \l__witharrows_tag_star_bool
- \__witharrows_restore:N \l__witharrows_qedhere_bool
- \bool_if:NT \l__witharrows_qedhere_bool
- { \hbox_overlap_left:n \__witharrows_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__witharrows_tag_star_bool
- { \cs_set_eq:NN \tagform@ \prg_do_nothing: }
+ \bool_if:NT \l__wa_tag_star_bool
+ { \cs_set_eq:NN \tagform@ \prg_do_nothing: }
\hbox_overlap_left:n
{
- \bool_if:NF \c__witharrows_leqno_bool
+ \bool_if:NF \c__wa_leqno_bool
{
- \tikz [ __witharrows_standard ]
- \coordinate ( \int_use:N \g__witharrows_line_int - v ) ;
+ \tikz [ __wa_standard ]
+ \coordinate ( \int_use:N \g__wa_line_int - v ) ;
}
\quad
\@eqnnum
}
- \bool_if:NT \c__witharrows_leqno_bool
+ \bool_if:NT \c__wa_leqno_bool
{
- \tikz [ __witharrows_standard ]
- \coordinate ( \int_use:N \g__witharrows_line_int - v ) ;
+ \tikz [ __wa_standard ]
+ \coordinate ( \int_use:N \g__wa_line_int - v ) ;
}
}
{
- \__witharrows_save:N \l__witharrows_qedhere_bool
+ \__wa_save:N \l__wa_qedhere_bool
&
- \__witharrows_restore:N \l__witharrows_qedhere_bool
- \bool_if:NT \l__witharrows_qedhere_bool
- { \hbox_overlap_left:n \__witharrows_qedhere_i: }
- \tikz [ __witharrows_standard ]
- \coordinate ( \int_use:N \g__witharrows_line_int - v ) ;
+ \__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__witharrows_interline_skip } \scan_stop: }
+ }
+ \cr \noalign { \skip_vertical:n { #1 + \l__wa_interline_skip } \scan_stop: }
}
-\cs_new_protected:Nn \__witharrows_if_in_second_col_of_disp:Nn
+\cs_new_protected:Npn \__wa_if_in_second_col_of_disp:Nn #1 #2
{
- \bool_if:NTF \l__witharrows_in_WithArrows_bool
- { \__witharrows_error:nn { Not~allowed~in~WithArrows } { #1 } }
+ \bool_if:NTF \l__wa_in_WithArrows_bool
+ { \__wa_error:nn { Not~allowed~in~WithArrows } { #1 } }
{
- \bool_if:NTF \l__witharrows_in_first_column_bool
- { \__witharrows_error:nn { Not~allowed~in~DispWithArrows } { #1 } }
+ \bool_if:NTF \l__wa_in_first_column_bool
+ { \__wa_error:nn { Not~allowed~in~DispWithArrows } { #1 } }
{ #2 }
}
}
-\cs_new_protected:Nn \__witharrows_notag:
- { \__witharrows_if_in_second_col_of_disp:Nn \notag { \clist_clear:N \l__witharrows_tags_clist } }
-\NewDocumentCommand \__witharrows_tag { s m }
+\cs_new_protected:Npn \__wa_notag:
+ { \__wa_if_in_second_col_of_disp:Nn \notag { \clist_clear:N \l__wa_tags_clist } }
+\NewDocumentCommand \__wa_tag { s m }
{
- \__witharrows_if_in_second_col_of_disp:Nn \tag
+ \__wa_if_in_second_col_of_disp:Nn \tag
{
- \tl_if_empty:NF \l__witharrows_tag_tl
- { \__witharrows_error:nn { Multiple~tags } { #2 } }
- \clist_set:Nn \l__witharrows_tags_clist { all }
- \bool_if:nT \c__witharrows_mathtools_loaded_bool
+ \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__witharrows_tags_clist }
+ { \clist_clear:N \l__wa_tags_clist }
}
}
- \tl_set:Nn \l__witharrows_tag_tl { #2 }
- \bool_set:Nn \l__witharrows_tag_star_bool { #1 }
- \bool_if:nT { #1 && ! \bool_if_p:N \c__witharrows_amsmath_loaded_bool }
- { \__witharrows_error:n { tag*~without~amsmath } }
+ \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 \__witharrows_label:n
+\cs_new_protected:Npn \__wa_label:n #1
{
- \__witharrows_if_in_second_col_of_disp:Nn \label
+ \__wa_if_in_second_col_of_disp:Nn \label
{
- \seq_if_empty:NF \l__witharrows_labels_seq
+ \seq_if_empty:NF \l__wa_labels_seq
{
- \bool_if:NTF \c__witharrows_cleveref_loaded_bool
- { \__witharrows_error:n { Multiple~labels~with~cleveref } }
- { \__witharrows_error:n { Multiple~labels } }
+ \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__witharrows_labels_seq { #1 }
- \bool_if:nT \c__witharrows_mathtools_loaded_bool
- {
- \MH_if_boolean:nT { show_only_refs }
- {
- \cs_if_exist:cTF { MT_r_#1 }
- { \clist_set:Nn \l__witharrows_tags_clist { all } }
- { \clist_clear:N \l__witharrows_tags_clist }
- }
- }
- \bool_if:nT \c__witharrows_autonum_loaded_bool
+ \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__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__witharrows_tags_clist { all } }
- { \clist_clear:N \l__witharrows_tags_clist }
+ { \clist_set:Nn \l__wa_tags_clist { all } }
+ { \clist_clear:N \l__wa_tags_clist }
}
}
}
-\cs_new_protected:Nn \__witharrows_tagnextline:
+\cs_new_protected:Npn \__wa_tagnextline:
{
- \__witharrows_if_in_second_col_of_disp:Nn \tagnextline
- { \bool_set_true:N \l__witharrows_tag_next_line_bool }
+ \__wa_if_in_second_col_of_disp:Nn \tagnextline
+ { \bool_set_true:N \l__wa_tag_next_line_bool }
}
-\bool_new:N \l__witharrows_qedhere_bool
-\cs_new_protected:Nn \__witharrows_qedhere: { \bool_set_true:N \l__witharrows_qedhere_bool }
-\cs_new_protected:Nn \__witharrows_qedhere_i:
+\cs_new_protected:Npn \__wa_qedhere: { \bool_set_true:N \l__wa_qedhere_bool }
+\cs_new_protected:Npn \__wa_qedhere_i:
{
\group_begin:
\cs_set_eq:NN \qed \qedsymbol
@@ -858,9 +854,10 @@
\QED@stack \relax \relax
\group_end:
}
+\bool_new:N \l__wa_inlabel_bool
\NewDocumentEnvironment { DispWithArrows } { ! O { } }
{
- \bool_if:nT \c__witharrows_mathtools_loaded_bool
+ \bool_if:nT \c__wa_mathtools_loaded_bool
{
\MH_if_boolean:nT { show_only_refs }
{
@@ -868,48 +865,56 @@
\MH_set_boolean_T:n { show_only_refs }
}
}
- \bool_if:NT \c__witharrows_amsmath_loaded_bool \intertext@
- \bool_set_true:N \l__witharrows_in_DispWithArrows_bool
- \__witharrows_pre_environment:n { #1 }
+ \bool_if:NT \c__wa_typedref_loaded_bool { \str_set:Nn \sr@name { equation } }
+ \bool_if:NT \c__wa_amsmath_loaded_bool \intertext@
+ \bool_set_true:N \l__wa_in_DispWithArrows_bool
+ \__wa_pre_environment:n { #1 }
+ \bool_if:NF \l__wa_sbwi_bool
+ {
+ \if@inlabel
+ \bool_set_true:N \l__wa_inlabel_bool
+ \fi
+ }
+ \tl_clear_new:N \l__wa_tag_tl
+ \bool_set_false:N \l__wa_qedhere_bool
+ \bool_set_false:N \l__wa_tag_star_bool
\if_mode_math:
- \__witharrows_error:n { DispWithArrows~in~math~mode }
- \fi:
- \if_mode_vertical:
- \nointerlineskip
- \makebox [ .6 \linewidth ] { }
+ \__wa_error:n { DispWithArrows~in~math~mode }
\fi:
- $$
- \vcenter \bgroup
+ \bool_if:NTF \l__wa_inlabel_bool
+ { $ } % $
+ {
+ \if_mode_vertical:
+ \nointerlineskip
+ \hbox_to_wd:nn { .6 \linewidth } { }
+ \fi:
+ $$
+ }
+ \bool_if:NTF \l__wa_inlabel_bool \vtop \vcenter \bgroup
\spread@equation
- \bool_if:NTF \l__witharrows_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 \__witharrows_old_label \label
- \cs_set_eq:NN \notag \__witharrows_notag:
- \cs_set_eq:NN \nonumber \__witharrows_notag:
- \cs_set_eq:NN \tag \__witharrows_tag
- \cs_set_eq:NN \label \__witharrows_label:n
- \cs_set_eq:NN \tagnextline \__witharrows_tagnextline:
- \halign to \displaywidth
+ \halign to \bool_if:NTF \l__wa_inlabel_bool \linewidth \displaywidth
\bgroup
- \int_gincr:N \g__witharrows_line_int
- \cs_set_eq:cN \l__witharrows_CommandName_str \__witharrows_Arrow_first_column:
- \bool_set_true:N \l__witharrows_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__witharrows_fleqn_bool { \skip_horizontal:n \l__witharrows_mathindent_dim }
+ \bool_if:NT \l__wa_fleqn_bool { \skip_horizontal:n \l__wa_mathindent_dim }
\hfil
$
- \bool_if:NT \l__witharrows_displaystyle_bool \displaystyle
+ \bool_if:NT \l__wa_displaystyle_bool \displaystyle
{ ## }
$
\tabskip = \c_zero_skip
&
- \clist_if_in:NVT \l__witharrows_tags_clist \g__witharrows_line_int
- { \clist_set:Nn \l__witharrows_tags_clist { all } }
- \bool_if:NT \c__witharrows_amsthm_loaded_bool
- { \cs_set_eq:NN \qedhere \__witharrows_qedhere: }
+ \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__witharrows_displaystyle_bool \displaystyle
+ \bool_if:NT \l__wa_displaystyle_bool \displaystyle
{ { } ## }
$
\tabskip = 0 pt plus 1000 pt minus 1000 pt
@@ -917,12 +922,12 @@
\node
[
node~contents = { } ,
- __witharrows_node_style ,
- name = wa - \l__witharrows_prefix_str - \int_use:N \g__witharrows_line_int - l ,
+ __wa_node_style ,
+ name = wa - \l__wa_prefix_str - \int_use:N \g__wa_line_int - l ,
alias =
{
- \str_if_empty:NF \l__witharrows_name_str
- { \l__witharrows_name_str - \int_use:N \g__witharrows_line_int - l }
+ \str_if_empty:NF \l__wa_name_str
+ { \l__wa_name_str - \int_use:N \g__wa_line_int - l }
}
]
;
@@ -931,386 +936,390 @@
\node
[
node~contents = { } ,
- __witharrows_node_style ,
- name = wa - \l__witharrows_prefix_str - \int_use:N \g__witharrows_line_int - r ,
+ __wa_node_style ,
+ name = wa - \l__wa_prefix_str - \int_use:N \g__wa_line_int - r ,
alias =
{
- \str_if_empty:NF \l__witharrows_name_str
- { \l__witharrows_name_str - \int_use:N \g__witharrows_line_int - r }
+ \str_if_empty:NF \l__wa_name_str
+ { \l__wa_name_str - \int_use:N \g__wa_line_int - r }
}
]
;
- \bool_if:NT \l__witharrows_show_node_names_bool
- {
- \hbox_overlap_right:n
- { \small wa - \l__witharrows_prefix_str - \int_use:N \g__witharrows_line_int }
- }
+ \bool_if:NT \l__wa_show_node_names_bool
+ {
+ \hbox_overlap_right:n
+ { \small wa - \l__wa_prefix_str - \int_use:N \g__wa_line_int }
+ }
&
- ##
+ $ ## $
\tabskip = \c_zero_skip
&&
- \__witharrows_error:n { Third~column~in~DispWithArrows }
- \iffalse ## \fi
+ \__wa_error:n { Third~column~in~DispWithArrows }
+ \bool_if:nT \c_false_bool { ## }
\cr
}
{
- \clist_if_in:NnT \l__witharrows_tags_clist { last }
- { \clist_set:Nn \l__witharrows_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__witharrows_in_DispWithArrows_bool
+ \bool_if:NT \l__wa_in_DispWithArrows_bool
{
- \dim_gzero_new:N \g__witharrows_right_x_dim
- \dim_gset_eq:NN \g__witharrows_right_x_dim \c_max_dim
- \begin { tikzpicture } [ __witharrows_standard ]
- \int_step_variable:nNn \g__witharrows_line_int \l_tmpa_int
- {
- \cs_if_free:cTF
- { pgf@sh@ns@wa - \l__witharrows_prefix_str - \l_tmpa_int - v }
- { \__witharrows_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__witharrows_right_x_dim
- { \dim_gset:Nn \g__witharrows_right_x_dim \l_tmpa_dim }
- }
- }
+ \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 }
}
- \__witharrows_post_environment:
- \bool_if:nT \c__witharrows_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__witharrows_footnote_bool { \end {savenotes } }
+ \bool_if:NTF \l__wa_inlabel_bool
+ { $ % $
+ \skip_vertical:N \belowdisplayskip
+ }
+ { $$ }
+ \bool_if:NT \g__wa_footnote_bool { \end {savenotes } }
\ignorespacesafterend
}
-\NewDocumentEnvironment { DispWithArrows* } {}
- {
- \WithArrowsOptions { notag }
- \DispWithArrows
- }
- { \endDispWithArrows }
-\cs_new_protected:Nn \__witharrows_scan_arrows:
- {
- \group_begin:
- \int_compare:nNnT \l__witharrows_pos_arrow_int = 7
+\NewDocumentEnvironment { DispWithArrows* } { }
+ {
+ \WithArrowsOptions { notag }
+ \DispWithArrows
+ }
+ \endDispWithArrows
+\cs_new_protected:Npn \__wa_scan_arrows:
+ {
+ \group_begin:
+ \int_compare:nNnT \l__wa_pos_arrow_int = 7
{
- \__witharrows_scan_arrows_i:
- \int_set:Nn \l__witharrows_pos_arrow_int 8
+ \__wa_scan_arrows_i:
+ \int_set:Nn \l__wa_pos_arrow_int 8
}
- \__witharrows_scan_arrows_i:
- \group_end:
- }
-\cs_new_protected:Nn \__witharrows_scan_arrows_i:
- {
- \int_zero_new:N \l__witharrows_first_arrow_of_group_int
- \int_zero_new:N \l__witharrows_first_line_of_group_int
- \int_zero_new:N \l__witharrows_last_line_of_group_int
- \seq_clear_new:N \l__witharrows_first_arrows_of_group_seq
- \seq_clear_new:N \l__witharrows_last_arrows_of_group_seq
- \bool_set_true:N \l__witharrows_new_group_bool
- \int_set:Nn \l__witharrows_arrow_int \c_one_int
- \int_until_do:nNnn \l__witharrows_arrow_int > \g__witharrows_arrow_int
+ \__wa_scan_arrows_i:
+ \group_end:
+ }
+\cs_new_protected:Npn \__wa_scan_arrows_i:
+ {
+ \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_seq
+ \seq_clear_new:N \l__wa_last_arrows_seq
+ \bool_set_true:N \l__wa_new_group_bool
+ \int_set:Nn \l__wa_arrow_int \c_one_int
+ \int_until_do:nNnn \l__wa_arrow_int > \g__wa_arrow_int
{
\prop_get:cnN
- { g__witharrows_arrow _ \l__witharrows_prefix_str _ \int_use:N \l__witharrows_arrow_int _ prop }
+ { g__wa_arrow _ \l__wa_prefix_str _ \int_use:N \l__wa_arrow_int _ prop }
{ initial } \l_tmpa_tl
- \int_set:Nn \l__witharrows_initial_int \l_tmpa_tl
+ \int_set:Nn \l__wa_initial_int \l_tmpa_tl
\prop_get:cnN
- { g__witharrows_arrow _ \l__witharrows_prefix_str _ \int_use:N \l__witharrows_arrow_int _ prop }
+ { g__wa_arrow _ \l__wa_prefix_str _ \int_use:N \l__wa_arrow_int _ prop }
{ final } \l_tmpa_tl
- \int_set:Nn \l__witharrows_final_int \l_tmpa_tl
+ \int_set:Nn \l__wa_final_int \l_tmpa_tl
\prop_get:cnN
- { g__witharrows_arrow _ \l__witharrows_prefix_str _ \int_use:N \l__witharrows_arrow_int _ prop }
- { status } \l__witharrows_status_arrow_str
+ { g__wa_arrow _ \l__wa_prefix_str _ \int_use:N \l__wa_arrow_int _ prop }
+ { status } \l__wa_status_arrow_str
\prop_get:cnN
- { g__witharrows_arrow _ \l__witharrows_prefix_str _ \int_use:N \l__witharrows_arrow_int _ prop }
- { input-line } \l__witharrows_input_line_str
- \int_compare:nNnTF \l__witharrows_final_int > \g__witharrows_line_int
- { \__witharrows_error:n { Too~few~lines~for~an~arrow } }
- {
- \bool_if:nT
- {
- \int_compare_p:nNn \l__witharrows_arrow_int > 1
- &&
- ( \int_compare_p:n
- { \l__witharrows_initial_int > \l__witharrows_last_line_of_group_int }
- &&
- \int_compare_p:n { \l__witharrows_pos_arrow_int != 7 }
- ||
- \str_if_eq_p:Vn \l__witharrows_status_arrow_str { new-group }
- )
- }
- {
- \int_compare:nNnF \l__witharrows_first_arrow_of_group_int = 0
- {
- \__witharrows_draw_arrows:nn
- \l__witharrows_first_arrow_of_group_int
- { \l__witharrows_arrow_int - 1 }
- }
- \bool_set_true:N \l__witharrows_new_group_bool
- }
- \bool_if:nTF \l__witharrows_new_group_bool
- {
- \bool_set_false:N \l__witharrows_new_group_bool
- \int_set_eq:NN \l__witharrows_first_arrow_of_group_int \l__witharrows_arrow_int
- \int_set_eq:NN \l__witharrows_first_line_of_group_int \l__witharrows_initial_int
- \int_set_eq:NN \l__witharrows_last_line_of_group_int \l__witharrows_final_int
- \seq_clear:N \l__witharrows_first_arrows_of_group_seq
- \seq_put_left:NV \l__witharrows_first_arrows_of_group_seq
- \l__witharrows_arrow_int
- \seq_clear:N \l__witharrows_last_arrows_of_group_seq
- \seq_put_left:NV \l__witharrows_last_arrows_of_group_seq
- \l__witharrows_arrow_int
- \int_compare:nT { \l__witharrows_pos_arrow_int != 8 }
- { \dim_set:Nn \l__witharrows_x_dim { - \c_max_dim } }
- }
- {
- \bool_if:nF
- { \str_if_eq_p:Vn \l__witharrows_status_arrow_str { independent } }
- {
- \int_compare:nT
- { \l__witharrows_initial_int = \l__witharrows_first_line_of_group_int }
- {
- \seq_put_left:NV \l__witharrows_first_arrows_of_group_seq
- \l__witharrows_arrow_int
- }
- \int_compare:nTF
- { \l__witharrows_final_int > \l__witharrows_last_line_of_group_int }
- {
- \int_set_eq:NN \l__witharrows_last_line_of_group_int
- \l__witharrows_final_int
- \seq_clear:N \l__witharrows_last_arrows_of_group_seq
- \seq_put_left:NV \l__witharrows_last_arrows_of_group_seq
- \l__witharrows_arrow_int
- }
- {
- \int_compare:nNnT
- \l__witharrows_final_int = \l__witharrows_last_line_of_group_int
- {
- \seq_put_left:NV \l__witharrows_last_arrows_of_group_seq
- \l__witharrows_arrow_int
- }
- }
- }
- }
- \bool_if:nF
- { \str_if_eq_p:Vn \l__witharrows_status_arrow_str { independent } }
- {
- \int_compare:nT { \l__witharrows_pos_arrow_int != 8 }
- { \__witharrows_update_x:nn \l__witharrows_initial_int \l__witharrows_final_int }
- }
- }
- \int_incr:N \l__witharrows_arrow_int
+ { g__wa_arrow _ \l__wa_prefix_str _ \int_use:N \l__wa_arrow_int _ prop }
+ { input-line } \l__wa_input_line_str
+ \int_compare:nNnTF \l__wa_final_int > \g__wa_line_int
+ {
+ \int_compare:nNnF \l__wa_pos_arrow_int = 8
+ { \__wa_error:n { Too~few~lines~for~an~arrow } }
+ }
+ \__wa_code_for_possible_arrow:
+ \int_incr:N \l__wa_arrow_int
+ }
+ \bool_if:nT
+ {
+ \int_compare_p:n { \l__wa_pos_arrow_int != 7 }
+ &&
+ \int_compare_p:nNn \l__wa_first_arrow_of_group_int > 0
+ }
+ { \__wa_draw_arrows:nn \l__wa_first_arrow_of_group_int \g__wa_arrow_int }
+ }
+\cs_new_protected:Npn \__wa_code_for_possible_arrow:
+ {
+ \bool_if:nT
+ {
+ \int_compare_p:nNn \l__wa_arrow_int > \c_one_int
+ &&
+ ( \int_compare_p:n { \l__wa_initial_int > \l__wa_last_line_of_group_int }
+ &&
+ \int_compare_p:n { \l__wa_pos_arrow_int != 7 }
+ ||
+ \str_if_eq_p:Vn \l__wa_status_arrow_str { new-group }
+ )
+ }
+ {
+ \int_compare:nNnF \l__wa_first_arrow_of_group_int = \c_zero_int
+ {
+ \__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_seq
+ \seq_put_left:NV \l__wa_first_arrows_seq \l__wa_arrow_int
+ \seq_clear:N \l__wa_last_arrows_seq
+ \seq_put_left:NV \l__wa_last_arrows_seq \l__wa_arrow_int
+ \int_compare:nT { \l__wa_pos_arrow_int != 8 }
+ { \dim_set:Nn \l__wa_x_dim { - \c_max_dim } }
+ }
+ {
+ \bool_if:nF
+ { \str_if_eq_p:Vn \l__wa_status_arrow_str { independent } }
+ {
+ \int_compare:nT
+ { \l__wa_initial_int = \l__wa_first_line_of_group_int }
+ { \seq_put_left:NV \l__wa_first_arrows_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_seq
+ \seq_put_left:NV \l__wa_last_arrows_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_seq \l__wa_arrow_int }
+ }
+ }
+ }
+ \bool_if:nF { \str_if_eq_p:Vn \l__wa_status_arrow_str { independent } }
+ {
+ \int_compare:nT { \l__wa_pos_arrow_int != 8 }
+ { \__wa_update_x:nn \l__wa_initial_int \l__wa_final_int }
}
- \int_compare:nT { \l__witharrows_pos_arrow_int != 7 }
- { \__witharrows_draw_arrows:nn \l__witharrows_first_arrow_of_group_int \g__witharrows_arrow_int }
}
\cs_generate_variant:Nn \keys_set:nn { n o }
-\cs_new_protected:Nn \__witharrows_keys_set:
+\cs_new_protected:Npn \__wa_keys_set:
{ \keys_set_known:no { WithArrows / Arrow / SecondPass } }
-\cs_new_protected:Nn \__witharrows_draw_arrows:nn
+\cs_new_protected:Npn \__wa_draw_arrows:nn #1 #2
{
\group_begin:
- \int_zero_new:N \l__witharrows_first_arrow_int
- \int_set:Nn \l__witharrows_first_arrow_int { #1 }
- \int_zero_new:N \l__witharrows_last_arrow_int
- \int_set:Nn \l__witharrows_last_arrow_int { #2 }
- \int_set:Nn \l__witharrows_arrow_int \l__witharrows_first_arrow_int
- \int_until_do:nNnn \l__witharrows_arrow_int > \l__witharrows_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__witharrows_arrow _ \l__witharrows_prefix_str _ \int_use:N \l__witharrows_arrow_int _ prop }
+ { g__wa_arrow _ \l__wa_prefix_str _ \int_use:N \l__wa_arrow_int _ prop }
{ initial } \l_tmpa_tl
- \int_set:Nn \l__witharrows_initial_int \l_tmpa_tl
+ \int_set:Nn \l__wa_initial_int \l_tmpa_tl
\prop_get:cnN
- { g__witharrows_arrow _ \l__witharrows_prefix_str _ \int_use:N \l__witharrows_arrow_int _ prop }
+ { g__wa_arrow _ \l__wa_prefix_str _ \int_use:N \l__wa_arrow_int _ prop }
{ final } \l_tmpa_tl
- \int_set:Nn \l__witharrows_final_int \l_tmpa_tl
- \int_compare:nT { \l__witharrows_final_int <= \g__witharrows_line_int } \__witharrows_draw_arrows_i:
- \int_incr:N \l__witharrows_arrow_int
+ \int_set:Nn \l__wa_final_int \l_tmpa_tl
+ \int_compare:nT { \l__wa_final_int <= \g__wa_line_int } \__wa_draw_arrows_i:
+ \int_incr:N \l__wa_arrow_int
}
\group_end:
}
-\cs_new_protected:Nn \__witharrows_draw_arrows_i:
+\cs_new_protected:Npn \__wa_draw_arrows_i:
{
\group_begin:
\prop_get:cnN
- { g__witharrows_arrow _\l__witharrows_prefix_str _ \int_use:N \l__witharrows_arrow_int _ prop }
+ { g__wa_arrow _\l__wa_prefix_str _ \int_use:N \l__wa_arrow_int _ prop }
{ options } \l_tmpa_tl
- \str_clear_new:N \l__witharrows_previous_key_str
+ \str_clear_new:N \l__wa_previous_key_str
\exp_args:NNo \exp_args:No
- \__witharrows_keys_set: { \l_tmpa_tl , tikz = { xshift = \l__witharrows_xoffset_dim } }
- \bool_set_false:N \l__witharrows_initial_r_bool
- \bool_set_false:N \l__witharrows_final_r_bool
- \int_case:nn \l__witharrows_pos_arrow_int
+ \__wa_keys_set: { \l_tmpa_tl , 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__witharrows_final_r_bool }
- 2 { \bool_set_true:N \l__witharrows_initial_r_bool }
- 3 {
- \bool_set_true:N \l__witharrows_initial_r_bool
- \bool_set_true:N \l__witharrows_final_r_bool
+ 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__witharrows_pos_arrow_int = 5
- {
- \dim_set:Nn \l__witharrows_x_dim { - \c_max_dim }
- \__witharrows_update_x:nn \l__witharrows_initial_int \l__witharrows_final_int
- }
- \tl_set:Nx \l__witharrows_initial_tl
- { \int_use:N \l__witharrows_initial_int - \bool_if:NTF \l__witharrows_initial_r_bool rl .south }
- \tl_set:Nx \l__witharrows_final_tl
- { \int_use:N \l__witharrows_final_int - \bool_if:NTF \l__witharrows_final_r_bool rl .north }
+ \int_compare:nNnT \l__wa_pos_arrow_int = 5
+ {
+ \dim_set:Nn \l__wa_x_dim { - \c_max_dim }
+ \__wa_update_x: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__witharrows_arrow _ \l__witharrows_prefix_str _ \int_use:N \l__witharrows_arrow_int _ prop }
+ { g__wa_arrow _ \l__wa_prefix_str _ \int_use:N \l__wa_arrow_int _ prop }
{ label }
\l_tmpa_tl
- \seq_if_in:NxTF \l__witharrows_first_arrows_of_group_seq
- { \int_use:N \l__witharrows_arrow_int }
- { \bool_set_true:N \l_tmpa_bool }
- { \bool_set_false:N \l_tmpa_bool }
- \seq_if_in:NxTF \l__witharrows_last_arrows_of_group_seq
- { \int_use:N \l__witharrows_arrow_int }
- { \bool_set_true:N \l_tmpb_bool }
- { \bool_set_false:N \l_tmpb_bool }
- \int_compare:nNnT \l__witharrows_pos_arrow_int = 5
- {
- \bool_set_true:N \l_tmpa_bool
- \bool_set_true:N \l_tmpb_bool
- }
- \begin { tikzpicture } [ __witharrows_standard ]
- \tikz@scan@one@point \pgfutil@firstofone ( \l__witharrows_initial_tl )
- \tl_gset:Nx \g_tmpa_tl
- {
- \int_compare:nNnTF \l__witharrows_pos_arrow_int < 5
- { \dim_use:N \pgf@x }
- { \dim_use:N \l__witharrows_x_dim } ,
- \bool_if:NTF \l_tmpa_bool
- { \dim_eval:n { \pgf@y + \l__witharrows_start_adjust_dim } }
- { \dim_use:N \pgf@y }
- }
- \tikz@scan@one@point \pgfutil@firstofone ( \l__witharrows_final_tl )
- \tl_gset:Nx \g_tmpb_tl
- {
- \int_compare:nNnTF \l__witharrows_pos_arrow_int < 5
- { \dim_use:N \pgf@x }
- { \dim_use:N \l__witharrows_x_dim } ,
- \bool_if:NTF \l_tmpb_bool
- { \dim_eval:n { \pgf@y - \l__witharrows_end_adjust_dim } }
- { \dim_use:N \pgf@y }
- }
+ \seq_if_in:NxTF \l__wa_first_arrows_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__wa_last_arrows_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__wa_pos_arrow_int = 5
+ {
+ \bool_set_true:N \l_tmpa_bool
+ \bool_set_true:N \l_tmpb_bool
+ }
+ \begin { tikzpicture } [ __wa_standard ]
+ \tikz@scan@one@point \pgfutil@firstofone ( \l__wa_initial_tl )
+ \tl_gset:Nx \g_tmpa_tl
+ {
+ \int_compare:nNnTF \l__wa_pos_arrow_int < 5
+ { \dim_use:N \pgf@x }
+ { \dim_use:N \l__wa_x_dim } ,
+ \bool_if:NTF \l_tmpa_bool
+ { \dim_eval:n { \pgf@y + \l__wa_start_adjust_dim } }
+ { \dim_use:N \pgf@y }
+ }
+ \tikz@scan@one@point \pgfutil@firstofone ( \l__wa_final_tl )
+ \tl_gset:Nx \g_tmpb_tl
+ {
+ \int_compare:nNnTF \l__wa_pos_arrow_int < 5
+ { \dim_use:N \pgf@x }
+ { \dim_use:N \l__wa_x_dim } ,
+ \bool_if:NTF \l_tmpb_bool
+ { \dim_eval:n { \pgf@y - \l__wa_end_adjust_dim } }
+ { \dim_use:N \pgf@y }
+ }
\end { tikzpicture }
- \__witharrows_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 \__witharrows_def_function_tmpa:n
+\cs_new_protected:Npn \__wa_def_function_tmpa:n #1
{
- \cs_set:Npn \__witharrows_tmpa:nnn ##1 ##2 ##3
+ \cs_set:Npn \__wa_tmpa:nnn ##1 ##2 ##3
{
\begin{tikzpicture}
[
- __witharrows_standard ,
+ __wa_standard ,
every~path / .style = WithArrows / arrow
]
#1
\end{tikzpicture}
}
}
-\cs_new_protected:Nn \__witharrows_draw_arrow:nnn
+\cs_new_protected:Npn \__wa_draw_arrow:nnn #1 #2 #3
{
- \bool_if:nT { \l__witharrows_wrap_lines_bool && \l__witharrows_in_DispWithArrows_bool }
- { \tl_set_eq:NN \l__witharrows_tikz_code_tl \c__witharrows_tikz_code_wrap_lines_tl }
- \exp_args:NV \__witharrows_def_function_tmpa:n \l__witharrows_tikz_code_tl
- \__witharrows_tmpa:nnn { #1 } { #2 } { #3 }
+ \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:NV \__wa_def_function_tmpa:n \l__wa_tikz_code_tl
+ \__wa_tmpa:nnn { #1 } { #2 } { #3 }
}
-\cs_generate_variant:Nn \__witharrows_draw_arrow:nnn { n n o }
-\tl_const:Nn \c__witharrows_tikz_code_wrap_lines_tl
+\cs_generate_variant:Nn \__wa_draw_arrow:nnn { n n o }
+\tl_const:Nn \c__wa_tikz_code_wrap_lines_tl
{
- \draw ( #1 ) to node ( __witharrows_label ) { } ( #2 ) ;
- \tikz@parse@node \pgfutil@firstofone ( __witharrows_label.west )
- \dim_set:Nn \l_tmpa_dim { \g__witharrows_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_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 ( __witharrows_label.west )
+ \path ( __wa_label.west )
node [ anchor = west , text~width = \dim_use:N \l_tmpa_dim ]
{ #3 } ;
}
}
-\cs_new_protected:Nn \__witharrows_update_x:nn
+\cs_new_protected:Npn \__wa_update_x:nn #1 #2
{
\int_step_inline:nnn { #1 } { #2 }
- {
- \begin { tikzpicture } [ __witharrows_standard ]
- \tikz@scan@one@point \pgfutil@firstofone ( ##1 - l )
- \dim_gset:Nn \g_tmpa_dim { \dim_max:nn \l__witharrows_x_dim \pgf@x }
- \end { tikzpicture }
- \dim_set_eq:NN \l__witharrows_x_dim \g_tmpa_dim
- }
- }
-\cs_new:Npn \WithArrowsLastEnv { \int_use:N \g__witharrows_last_env_int }
+ {
+ \begin { tikzpicture } [ __wa_standard ]
+ \tikz@scan@one@point \pgfutil@firstofone ( ##1 - l )
+ \dim_gset:Nn \g_tmpa_dim { \dim_max:nn \l__wa_x_dim \pgf@x }
+ \end { tikzpicture }
+ \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 / Arrow / CodeAfter }
{
tikz .code:n =
\tikzset { WithArrows / arrow / .append~style = { #1 } } ,
tikz .value_required:n = true ,
rr .value_forbidden:n = true ,
- rr .code:n = \__witharrows_fix_pos_option:n 0 ,
+ rr .code:n = \__wa_fix_pos_option:n 0 ,
ll .value_forbidden:n = true,
- ll .code:n = \__witharrows_fix_pos_option:n 1 ,
+ ll .code:n = \__wa_fix_pos_option:n 1 ,
rl .value_forbidden:n = true ,
- rl .code:n = \__witharrows_fix_pos_option:n 2 ,
+ rl .code:n = \__wa_fix_pos_option:n 2 ,
lr .value_forbidden:n = true ,
- lr .code:n = \__witharrows_fix_pos_option:n 3 ,
+ lr .code:n = \__wa_fix_pos_option:n 3 ,
v .value_forbidden:n = true ,
- v .code:n = \__witharrows_fix_pos_option:n 4 ,
- TikzCode .tl_set:N = \l__witharrows_tikz_code_tl ,
+ v .code:n = \__wa_fix_pos_option:n 4 ,
+ TikzCode .tl_set:N = \l__wa_tikz_code_tl ,
TikzCode .value_required:n = true ,
- xoffset .dim_set:N = \l__witharrows_xoffset_dim ,
+ xoffset .dim_set:N = \l__wa_xoffset_dim ,
xoffset .value_required:n = true ,
unknown .code:n =
- \__witharrows_sort_seq:N \l__witharrows_options_Arrow_CodeAfter_seq
- \__witharrows_error:n { Unknown~option~Arrow~in~CodeAfter }
- }
-\seq_set_from_clist:Nn \l__witharrows_options_Arrow_CodeAfter_seq
- { ll, lr, rl, rr, tikz, TikzCode, v, x, offset }
-\NewDocumentCommand \__witharrows_Arrow_code_after { O { } m m m ! O { } }
+ \__wa_sort_seq:N \l__wa_options_Arrow_CodeAfter_seq
+ \__wa_error:n { Unknown~option~Arrow~in~CodeAfter }
+ }
+\seq_set_from_clist:Nn \l__wa_options_Arrow_CodeAfter_seq
+ { ll, lr, rl, rr, tikz, TikzCode, v, x, offset }
+\NewDocumentCommand \__wa_Arrow_code_after { O { } m m m ! O { } }
{
- \int_set:Nn \l__witharrows_pos_arrow_int 1
- \str_clear_new:N \l__witharrows_previous_key_str
+ \int_set:Nn \l__wa_pos_arrow_int 1
+ \str_clear_new:N \l__wa_previous_key_str
\group_begin:
\keys_set:nn { WithArrows / Arrow / CodeAfter }
- { #1, #5, tikz = { xshift = \l__witharrows_xoffset_dim } }
- \bool_set_false:N \l__witharrows_initial_r_bool
- \bool_set_false:N \l__witharrows_final_r_bool
- \int_case:nn \l__witharrows_pos_arrow_int
+ { #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__witharrows_initial_r_bool
- \bool_set_true:N \l__witharrows_final_r_bool
+ \bool_set_true:N \l__wa_initial_r_bool
+ \bool_set_true:N \l__wa_final_r_bool
}
- 2 { \bool_set_true:N \l__witharrows_initial_r_bool }
- 3 { \bool_set_true:N \l__witharrows_final_r_bool }
+ 2 { \bool_set_true:N \l__wa_initial_r_bool }
+ 3 { \bool_set_true:N \l__wa_final_r_bool }
}
\tl_if_eq:nnTF { #2 } { #3 }
- { \__witharrows_error:nn { Both~lines~are~equal } { #2 } }
+ { \__wa_error:nn { Both~lines~are~equal } { #2 } }
{
- \cs_if_free:cTF { pgf@sh@ns@wa - \l__witharrows_prefix_str - #2 - l }
- { \__witharrows_error:nx { Wrong~line~in~Arrow } { #2 } }
+ \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__witharrows_prefix_str - #3 - l }
- { \__witharrows_error:nx { Wrong~line~in~Arrow } { #3 } }
+ \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__witharrows_pos_arrow_int = 4
+ \int_compare:nNnTF \l__wa_pos_arrow_int = 4
{
- \begin { tikzpicture } [ __witharrows_standard ]
+ \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
@@ -1324,363 +1333,341 @@
\end { tikzpicture }
}
{
- \begin { tikzpicture } [ __witharrows_standard ]
+ \begin { tikzpicture } [ __wa_standard ]
\tikz@scan@one@point \pgfutil@firstofone
- ( #2-\bool_if:NTF\l__witharrows_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__witharrows_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 }
}
- \__witharrows_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 \__witharrows_MultiArrow:nn
+\cs_new_protected:Npn \__wa_MultiArrow:nn #1 #2
{
\foreach \x in { #1 }
{
- \cs_if_free:cTF { pgf@sh@ns@wa - \l__witharrows_prefix_str - \x - l }
- { \__witharrows_error:nx { Wrong~line~specification~in~MultiArrow } \x }
+ \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:nTF { \clist_count:N \g_tmpa_clist < 2 }
- { \__witharrows_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 \__witharrows_MultiArrow_i:n \g_tmpa_clist
- \begin { tikzpicture }
- [
- __witharrows_standard ,
- every~path /.style = { WithArrows / arrow }
- ]
- \draw [<->] ([xshift = \l__witharrows_xoffset_dim]\l_tmpa_tl-r.south)
- -- ++(5mm,0)
- -- node (__witharrows_label) {}
- ([xshift = \l__witharrows_xoffset_dim+5mm]\l_tmpb_tl-r.south)
- -- ([xshift = \l__witharrows_xoffset_dim]\l_tmpb_tl-r.south) ;
- \tikz@parse@node \pgfutil@firstofone (__witharrows_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__witharrows_wrap_lines_bool && \l__witharrows_in_DispWithArrows_bool }
- {
- \dim_set:Nn \l_tmpb_dim
- { \g__witharrows_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 (__witharrows_label.west)
- node [ anchor = west, text~width = \dim_use:N \l_tmpa_dim ] { #2 } ;
- \end{tikzpicture}
+ { \__wa_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 \__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 (__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__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 (__wa_label.west)
+ node [ anchor = west, text~width = \dim_use:N \l_tmpa_dim ] { #2 } ;
+ \end{tikzpicture}
}
- }
-\cs_new_protected:Nn \__witharrows_MultiArrow_i:n
+ }
+\cs_new_protected:Npn \__wa_MultiArrow_i:n #1
{
\begin {tikzpicture }
[
- __witharrows_standard ,
+ __wa_standard ,
every~path / .style = { WithArrows / arrow }
]
\foreach \k in { #1 }
{
\draw [ <- ]
- ( [xshift = \l__witharrows_xoffset_dim]\k-r.south ) -- ++(5mm,0) ;
+ ( [xshift = \l__wa_xoffset_dim]\k-r.south ) -- ++(5mm,0) ;
} ;
\end { tikzpicture }
}
-\str_const:Nn \c__witharrows_option_ignored_str
+\str_const:Nn \c__wa_option_ignored_str
{ If~you~go~on,~this~option~will~be~ignored. }
-\__witharrows_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.
- }
-\__witharrows_msg_new:nnn { Unknown~option~in~Arrow }
+\__wa_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.
+ }
+\__wa_msg_new:nnn { Unknown~option~in~Arrow }
{
The~option~'\l_keys_key_tl'~
- is~unknown~for~the~command~\l__witharrows_string_Arrow_for_msg_str\
- in~the~row~\int_use:N \g__witharrows_line_int\
- of~your~environment~\{\l__witharrows_type_env_str\}. \\
- \c__witharrows_option_ignored_str \\
+ is~unknown~for~the~command~\l__wa_string_Arrow_for_msg_str\
+ in~the~row~\int_use:N \g__wa_line_int\
+ of~your~environment~\{\l__wa_type_env_str\}. \\
+ \c__wa_option_ignored_str \\
For~a~list~of~the~available~keys,~type~H~<return>.
}
{
The~available~keys~are~(in~alphabetic~order):~
- \seq_use:Nnnn \l__witharrows_options_Arrow_seq {~and~} {,~} {~and~}.
+ \seq_use:Nnnn \l__wa_options_Arrow_seq {~and~} {,~} {~and~}.
}
-\__witharrows_msg_new:nnn { Unknown~option~WithArrows }
+\__wa_msg_new:nnn { Unknown~option~WithArrows }
{
- The~option~'\l_keys_key_tl'~is~unknown~in~\{\l__witharrows_type_env_str\}. \\
- \c__witharrows_option_ignored_str \\
+ The~option~'\l_keys_key_tl'~is~unknown~in~\{\l__wa_type_env_str\}. \\
+ \c__wa_option_ignored_str \\
For~a~list~of~the~available~keys,~type~H~<return>.
}
{
The~available~keys~are~(in~alphabetic~order):~
- \seq_use:Nnnn \l__witharrows_options_WithArrows_seq {~and~} {,~} {~and~}.
+ \seq_use:Nnnn \l__wa_options_WithArrows_seq {~and~} {,~} {~and~}.
}
-\__witharrows_msg_new:nnn { Unknown~option~DispWithArrows }
+\__wa_msg_new:nnn { Unknown~option~DispWithArrows }
{
- The~option~'\l_keys_key_tl'~is~unknown~in~\{\l__witharrows_type_env_str\}. \\
- \c__witharrows_option_ignored_str \\
+ The~option~'\l_keys_key_tl'~is~unknown~in~\{\l__wa_type_env_str\}. \\
+ \c__wa_option_ignored_str \\
For~a~list~of~the~available~keys,~type~H~<return>.
}
{
The~available~keys~are~(in~alphabetic~order):~
- \seq_use:Nnnn \l__witharrows_options_DispWithArrows_seq {~and~} {,~} {~and~}.
+ \seq_use:Nnnn \l__wa_options_DispWithArrows_seq {~and~} {,~} {~and~}.
}
-\__witharrows_msg_new:nnn { Unknown~option~WithArrowsOptions }
+\__wa_msg_new:nnn { Unknown~option~WithArrowsOptions }
{
The~option~'\l_keys_key_tl'~is~unknown~in~
\token_to_str:N \WithArrowsOptions. \\
- \c__witharrows_option_ignored_str \\
+ \c__wa_option_ignored_str \\
For~a~list~of~the~available~keys,~type~H~<return>.
}
{
The~available~keys~are~(in~alphabetic~order):~
- \seq_use:Nnnn \l__witharrows_options_WithArrowsOptions_seq {~and~} {,~} {~and~}.
+ \seq_use:Nnnn \l__wa_options_WithArrowsOptions_seq {~and~} {,~} {~and~}.
}
-\__witharrows_msg_new:nnn { Unknown~option~Arrow~in~CodeAfter }
+\__wa_msg_new:nnn { Unknown~option~Arrow~in~CodeAfter }
{
The~option~'\l_keys_key_tl'~is~unknown~in~
\token_to_str:N \Arrow\
in~\token_to_str:N \CodeAfter. \\
- \c__witharrows_option_ignored_str \\
+ \c__wa_option_ignored_str \\
For~a~list~of~the~available~keys,~type~H~<return>.
}
{
The~available~keys~are~(in~alphabetic~order):~
- \seq_use:Nnnn \l__witharrows_options_Arrow_CodeAfter_seq {~and~} {,~} {~and~}.
+ \seq_use:Nnnn \l__wa_options_Arrow_CodeAfter_seq {~and~} {,~} {~and~}.
}
-\__witharrows_msg_new:nn { Third~column~in~WithArrows }
- {
- By~default,~an~environment~\{\l__witharrows_type_env_str\}~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~'more-columns'~at~a~global~
- level~or~for~an~environment. \\
- However,~you~can~go~one~for~this~time.
- }
-\__witharrows_msg_new:nn { Third~column~in~DispWithArrows }
+\__wa_msg_new:nn { Third~column~in~WithArrows }
{
- An~environment~\{\l__witharrows_type_env_str\}~can~only~have~two~columns.~
+ By~default,~an~environment~\{\l__wa_type_env_str\}~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~'more-columns'~at~a~global~
+ level~or~for~an~environment. \\
+ However,~you~can~go~one~for~this~time.
+ }
+\__wa_msg_new:nn { Third~column~in~DispWithArrows }
+ {
+ An~environment~\{\l__wa_type_env_str\}~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__witharrows_line_int. \\
+ at~the~end~of~row~\int_use:N \g__wa_line_int. \\
If~you~go~on,~you~may~have~other~errors.
}
-\__witharrows_msg_new:nn { Negative~jump }
- {
- You~can't~use~a~negative~value~for~the~option~'jump'~of~command~
- \l__witharrows_string_Arrow_for_msg_str\
- in~the~row~\int_use:N \g__witharrows_line_int\
- of~your~environment~\{\l__witharrows_type_env_str\}.~
- You~can~create~an~arrow~going~backwards~with~the~option~'<-'~of~Tikz. \\
- \c__witharrows_option_ignored_str
- }
-\__witharrows_msg_new:nn { new-group~without~groups }
+\__wa_msg_new:nn { Negative~jump }
+ {
+ You~can't~use~a~negative~value~for~the~option~'jump'~of~command~
+ \l__wa_string_Arrow_for_msg_str\
+ in~the~row~\int_use:N \g__wa_line_int\
+ of~your~environment~\{\l__wa_type_env_str\}.~
+ You~can~create~an~arrow~going~backwards~with~the~option~'<-'~of~Tikz. \\
+ \c__wa_option_ignored_str
+ }
+\__wa_msg_new:nn { new-group~without~groups }
{
You~can't~use~the~option~'new-group'~for~the~command~
- \l__witharrows_string_Arrow_for_msg_str\
+ \l__wa_string_Arrow_for_msg_str\
because~you~are~not~in~'groups'~mode.~Try~to~use~the~option~
- 'groups'~in~your~environment~\{\l__witharrows_type_env_str\}. \\
- \c__witharrows_option_ignored_str
- }
-\__witharrows_msg_new:nn
- { Too~few~lines~for~an~arrow }
- { Line~\l__witharrows_input_line_str\
- :~an~arrow~specified~in~the~row~\int_use:N \l__witharrows_initial_int\
- of~your~environment~\{\l__witharrows_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.
- }
-\__witharrows_msg_new:nn { WithArrows~outside~math~mode }
- {
- The~environment~\{\l__witharrows_type_env_str\}~should~be~used~only~in~math~mode. \\
- Nevertheless,~you~can~go~on.
- }
-\__witharrows_msg_new:nn { DispWithArrows~in~math~mode }
+ 'groups'~in~your~environment~\{\l__wa_type_env_str\}. \\
+ \c__wa_option_ignored_str
+ }
+\__wa_msg_new:nn
+ { Too~few~lines~for~an~arrow }
+ { Line~\l__wa_input_line_str\
+ :~an~arrow~specified~in~the~row~\int_use:N \l__wa_initial_int\
+ of~your~environment~\{\l__wa_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.
+ }
+\__wa_msg_new:nn { WithArrows~outside~math~mode }
+ {
+ The~environment~\{\l__wa_type_env_str\}~should~be~used~only~in~math~mode~
+ like~the~environment~\{aligned\}~of~amsmath. \\
+ Nevertheless,~you~can~go~on.
+ }
+\__wa_msg_new:nn { DispWithArrows~in~math~mode }
{
- The~environment~\{\l__witharrows_type_env_str\}~should~be~used~only~
- outside~math~mode. \\
+ The~environment~\{\l__wa_type_env_str\}~should~be~used~only~outside~math~
+ mode~like~the~environment~\{align\}~of~amsmath. \\
If~you~go~on,~you~will~have~other~errors.
}
-\__witharrows_msg_new:nn { Incompatible~options~in~Arrow }
+\__wa_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__witharrows_previous_key_str'~set~in~the~same~command~
- \l__witharrows_string_Arrow_for_msg_str. \\
- \c__witharrows_option_ignored_str
+ '\l__wa_previous_key_str'~set~in~the~same~command~
+ \l__wa_string_Arrow_for_msg_str. \\
+ \c__wa_option_ignored_str
}
-\__witharrows_msg_new:nn { Incompatible~options }
+\__wa_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__witharrows_previous_key_str'~set~in~the~same~command~
- \bool_if:NT \l__witharrows_in_CodeAfter_bool
+ '\l__wa_previous_key_str'~set~in~the~same~command~
+ \bool_if:NT \l__wa_in_CodeAfter_bool
{
- \l__witharrows_string_Arrow_for_msg_str\
- in~the~CodeAfter~of~your~environment~\{\l__witharrows_type_env_str\}
+ \l__wa_string_Arrow_for_msg_str\
+ in~the~CodeAfter~of~your~environment~\{\l__wa_type_env_str\}
}. \\
- \c__witharrows_option_ignored_str
+ \c__wa_option_ignored_str
}
-\__witharrows_msg_new:nn { Arrow~in~first~column }
+\__wa_msg_new:nn { Arrow~in~first~column }
{
- You~should~not~use~the~command~\l__witharrows_string_Arrow_for_msg_str\
- in~the~first~column~of~your~environment~\{\l__witharrows_type_env_str\}~
+ You~should~not~use~the~command~\l__wa_string_Arrow_for_msg_str\
+ in~the~first~column~of~your~environment~\{\l__wa_type_env_str\}~
but~only~in~the~second~column. \\
However~you~can~go~on~for~this~time.
}
-\__witharrows_msg_new:nn { Wrong~line~in~Arrow }
+\__wa_msg_new:nn { Wrong~line~in~Arrow }
{
The~specification~of~line~'#1'~you~use~in~the~command~
- \l__witharrows_string_Arrow_for_msg_str\
- in~the~'CodeAfter'~of~\{\l__witharrows_type_env_str\}~doesn't~exist. \\
+ \l__wa_string_Arrow_for_msg_str\
+ in~the~'CodeAfter'~of~\{\l__wa_type_env_str\}~doesn't~exist. \\
If~you~go~on,~this~command~will~be~ignored.
}
-\__witharrows_msg_new:nn { Both~lines~are~equal }
+\__wa_msg_new:nn { Both~lines~are~equal }
{
- In~the~'CodeAfter'~of~\{\l__witharrows_type_env_str\}~you~try~to~
+ In~the~'CodeAfter'~of~\{\l__wa_type_env_str\}~you~try~to~
draw~an~arrow~going~to~it~self~from~the~line~'#1'.~This~is~not~possible. \\
If~you~go~on,~this~command~will~be~ignored.
}
-\__witharrows_msg_new:nn { Wrong~line~specification~in~MultiArrow }
+\__wa_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.
}
-\__witharrows_msg_new:nn { Too~small~specification~for~MultiArrow }
+\__wa_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. \\
If~you~go~on,~this~command~will~be~ignored.
}
-\__witharrows_msg_new:nn { tag*~without~amsmath }
+\__wa_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.
}
-\__witharrows_msg_new:nn { Not~allowed~in~DispWithArrows }
+\__wa_msg_new:nn { Not~allowed~in~DispWithArrows }
{
The~command~\token_to_str:N #1
- is~not~allowed~in~the~first~column~of~\{\l__witharrows_type_env_str\}~but~
+ is~not~allowed~in~the~first~column~of~\{\l__wa_type_env_str\}~but~
only~in~the~second~column. \\
If~you~go~on,~this~command~will~be~ignored.
}
-\__witharrows_msg_new:nn { Not~allowed~in~WithArrows }
+\__wa_msg_new:nn { Not~allowed~in~WithArrows }
{
- The~command~\token_to_str:N #1 is~not~allowed~in~\{\l__witharrows_type_env_str\}~
+ The~command~\token_to_str:N #1 is~not~allowed~in~\{\l__wa_type_env_str\}~
(it's~allowed~in~the~second~column~of~\{DispWithArrows\}). \\
If~you~go~on,~this~command~will~be~ignored.
}
-\__witharrows_msg_new:nn { Multiple~tags }
- {
- You~can't~use~twice~the~command~\token_to_str:N\tag\
- in~a~line~of~the~environment~\{\l__witharrows_type_env_str\}. \\
- If~you~go~on,~the~tag~'#1'~will~be~used.
- }
-\__witharrows_msg_new:nn { Multiple~labels }
+\__wa_msg_new:nn { Multiple~tags }
+ {
+ You~can't~use~twice~the~command~\token_to_str:N\tag\
+ in~a~line~of~the~environment~\{\l__wa_type_env_str\}. \\
+ If~you~go~on,~the~tag~'#1'~will~be~used.
+ }
+\__wa_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__witharrows_type_env_str\}. \\
+ twice~in~a~line~of~the~environment~\{\l__wa_type_env_str\}. \\
However,~you~can~go~on.~
- \bool_if:NT \c__witharrows_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~
'allow-multiple-labels'~at~the~global~or~environment~level.
}
-\__witharrows_msg_new:nn { Multiple~labels~with~cleveref }
+\__wa_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__witharrows_type_env_str\}. \\
+ twice~in~a~line~of~the~environment~\{\l__wa_type_env_str\}. \\
If~you~go~on,~you~may~have~undefined~references.
}
-\__witharrows_msg_new:nn { Inexistent~v-node }
+\__wa_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~\int_use:N \l_tmpa_int\
- of~your~environment~\{\l__witharrows_type_env_str\}. \\
+ of~your~environment~\{\l__wa_type_env_str\}. \\
If~you~go~on,~you~may~have~an~incorrect~output.
}
-\__witharrows_msg_new:nn { Option~xoffset~forbidden }
- { You~can't~use~the~option~'xoffset'~in~the~command~
- \l__witharrows_string_Arrow_for_msg_str\
+\__wa_msg_new:nn { Option~xoffset~forbidden }
+ {
+ You~can't~use~the~option~'xoffset'~in~the~command~
+ \l__wa_string_Arrow_for_msg_str\
while~you~are~using~the~option~
- ' \int_compare:nNnTF \l__witharrows_pos_arrow_int = 7
- { group }
- { groups } '. \\
- \c__witharrows_option_ignored_str
+ ' \int_compare:nNnTF \l__wa_pos_arrow_int = 7
+ { group }
+ { groups } '. \\
+ \c__wa_option_ignored_str
}
\NewDocumentCommand \WithArrowsNewStyle { m m }
{
- \keys_if_exist:nnTF { WithArrows / WithArrows } { #1 }
- { \__witharrows_error:nn { Key~already~defined } { #1 } }
+ \keys_if_exist:nnTF { WithArrows / Global } { #1 }
+ { \__wa_error:nn { Key~already~defined } { #1 } }
{
- \keys_define:nn { WithArrows / WithArrows }
- {
- #1 .code:n =
- {
- \keys_define:nn { WithArrows / WithArrows }
- { unknown .code:n = \prg_do_nothing: }
- \keys_set:nn { WithArrows / WithArrows } { #2 }
- \keys_define:nn { WithArrows / WithArrows }
- { unknown .code:n =
- \__witharrows_error:n { Unknown~option~WithArrows }}
- }
- }
- \seq_put_right:Nn \l__witharrows_options_WithArrows_seq {#1}
- \keys_define:nn { WithArrows / DispWithArrows }
- {
- #1 .code:n =
- {
- \keys_define:nn { WithArrows / DispWithArrows }
- { unknown .code:n = \prg_do_nothing: }
- \keys_set:nn { WithArrows / DispWithArrows } { #2 }
- \keys_define:nn {WithArrows / DispWithArrows }
- { unknown .code:n =
- \__witharrows_error:n { Unknown~option~DispWithArrows }}
- }
- }
- \seq_put_right:Nn \l__witharrows_options_DispWithArrows_seq { #1 }
- \keys_define:nn { WithArrows / WithArrowsOptions }
- {
- #1 .code:n =
- { \keys_set:nn { WithArrows / WithArrowsOptions } { #2 } }
- }
- \seq_put_right:Nn \l__witharrows_options_WithArrowsOptions_seq { #1 }
- \group_begin:
- \msg_set:nnn { witharrows } { Unknown~option~WithArrowsOptions }
- {
- The~option~'\l_keys_key_tl'~can't~be~set~in~the~
- definition~of~a~style. \\
- If~you~go~on,~this~key~will~not~be~written~in~the~style~'#1'.
- }
- \WithArrowsOptions { #2 }
- \group_end:
+ \keys_define:nn { WithArrows / Global }
+ {
+ #1 .code:n =
+ { \keys_set_known:nn { WithArrows / WithArrowsOptions } { #2 } }
+ }
+ \seq_put_right:Nn \l__wa_options_WithArrows_seq {#1}
+ \seq_put_right:Nn \l__wa_options_DispWithArrows_seq { #1 }
+ \seq_put_right:Nn \l__wa_options_WithArrowsOptions_seq { #1 }
+ \group_begin:
+ \msg_set:nnn { witharrows } { Unknown~option~WithArrowsOptions }
+ {
+ The~option~'\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:
}
}
-\__witharrows_msg_new:nn { Key~already~defined }
+\__wa_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__witharrows_tikz_code_up_tl
+\tl_const:Nn \c__wa_tikz_code_up_tl
{
\draw [ rounded~corners ]
let \p1 = (#1) ,
@@ -1694,77 +1681,92 @@
}
(\x2,\y1) -- (\p2) ;
}
-\tl_const:Nn \c__witharrows_tikz_code_down_tl
+\tl_const: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) ;
+ \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 = \__witharrows_set_independent: ,
- down .code:n = \__witharrows_set_independent: ,
+ up .code:n = \__wa_set_independent: ,
+ down .code:n = \__wa_set_independent: ,
up .default:n = NoValue ,
down .default:n = NoValue
}
\keys_define:nn { WithArrows / Arrow / SecondPass }
- {
- up .code:n = \str_if_empty:NT \l__witharrows_previous_key_str
- {
- \str_set:Nn \l__witharrows_previous_key_str { up }
- \bool_if:NTF \c__witharrows_varwidth_loaded_bool
- {
- \cs_if_exist:cTF { tikz@library@calc@loaded }
- {
- \int_set:Nn \l__witharrows_pos_arrow_int \c_one_int
- \bool_set_false:N \l__witharrows_wrap_lines_bool
- \tl_set_eq:NN \l__witharrows_tikz_code_tl
- \c__witharrows_tikz_code_up_tl
- }
- { \__witharrows_error:n { calc~not~loaded } }
- }
- { \__witharrows_error:n { varwidth~not~loaded } }
- } ,
- down .code:n = \str_if_empty:NT \l__witharrows_previous_key_str
- {
- \str_set:Nn \l__witharrows_previous_key_str { down }
- \bool_if:NTF \c__witharrows_varwidth_loaded_bool
- {
- \cs_if_exist:cTF { tikz@library@calc@loaded }
- {
- \int_set:Nn \l__witharrows_pos_arrow_int \c_one_int
- \bool_set_false:N \l__witharrows_wrap_lines_bool
- \tl_set_eq:NN \l__witharrows_tikz_code_tl
- \c__witharrows_tikz_code_down_tl
- }
- { \__witharrows_error:n { calc~not~loaded } }
- }
- { \__witharrows_error:n { varwidth~not~loaded } }
- }
- }
-\seq_put_right:Nn \l__witharrows_options_Arrow_seq { down }
-\seq_put_right:Nn \l__witharrows_options_Arrow_seq { up }
-\__witharrows_msg_new:nn { varwidth~not~loaded }
+ {
+ up .code:n =
+ \str_if_empty:NT \l__wa_previous_key_str
+ {
+ \str_set:Nn \l__wa_previous_key_str { up }
+ \bool_if:NTF \c__wa_varwidth_loaded_bool
+ {
+ \cs_if_exist:cTF { tikz@library@calc@loaded }
+ {
+ \int_set:Nn \l__wa_pos_arrow_int \c_one_int
+ \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 } }
+ } ,
+ down .code:n =
+ \str_if_empty:NT \l__wa_previous_key_str
+ {
+ \str_set:Nn \l__wa_previous_key_str { down }
+ \bool_if:NTF \c__wa_varwidth_loaded_bool
+ {
+ \cs_if_exist:cTF { tikz@library@calc@loaded }
+ {
+ \int_set:Nn \l__wa_pos_arrow_int \c_one_int
+ \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 } }
+ }
+ }
+\seq_put_right:Nn \l__wa_options_Arrow_seq { down }
+\seq_put_right:Nn \l__wa_options_Arrow_seq { up }
+\__wa_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__witharrows_option_ignored_str
+ \c__wa_option_ignored_str
}
-\__witharrows_msg_new:nn { calc~not~loaded }
+\__wa_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~your~preamble. \\
- \c__witharrows_option_ignored_str
+ \c__wa_option_ignored_str
+ }
+\__wa_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__wa_names_seq { ,~ } { ,~ } { ~and~ }.
}
\endinput
%%