summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/generic
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2019-12-28 22:24:44 +0000
committerKarl Berry <karl@freefriends.org>2019-12-28 22:24:44 +0000
commit719f1f03aa06f5c7411f8e7cd35fedee88583f22 (patch)
treefad7eee20e6aefc982222af3ccf58bb1b4064c96 /Master/texmf-dist/doc/generic
parent0f7905779b3f0f0316dfb24726aa088b5769735f (diff)
witharrows (28dec19)
git-svn-id: svn://tug.org/texlive/trunk@53246 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/generic')
-rw-r--r--Master/texmf-dist/doc/generic/witharrows/witharrows-french.pdfbin257996 -> 259546 bytes
-rw-r--r--Master/texmf-dist/doc/generic/witharrows/witharrows-french.tex80
-rw-r--r--Master/texmf-dist/doc/generic/witharrows/witharrows.pdfbin589390 -> 615389 bytes
-rw-r--r--Master/texmf-dist/doc/generic/witharrows/witharrows.tex1590
4 files changed, 891 insertions, 779 deletions
diff --git a/Master/texmf-dist/doc/generic/witharrows/witharrows-french.pdf b/Master/texmf-dist/doc/generic/witharrows/witharrows-french.pdf
index 0a045846a70..9711cf5756d 100644
--- a/Master/texmf-dist/doc/generic/witharrows/witharrows-french.pdf
+++ b/Master/texmf-dist/doc/generic/witharrows/witharrows-french.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/witharrows/witharrows-french.tex b/Master/texmf-dist/doc/generic/witharrows/witharrows-french.tex
index f57d0a28d2a..9eac72c3c76 100644
--- a/Master/texmf-dist/doc/generic/witharrows/witharrows-french.tex
+++ b/Master/texmf-dist/doc/generic/witharrows/witharrows-french.tex
@@ -417,9 +417,8 @@ de \pkg{witharrows}.
Néanmoins, une commande |\Arrow| définie précédemment pourrait encore être utile dans un environnement
|{WithArrows}|. Si vous voulez l'utiliser dans un tel environnement, il est possible de changer le nom de la
-commande |\Arrow| de l'extension \pkg{witharrows} grâce à une option |command-name|\footnote{Pour des raisons
- historiques, il y a un alias pour cette option : |CommandeName|.} dédiée. Le nouveau nom de la commande doit être
-fourni à l'option \emph{sans} la contre-oblique.
+commande |\Arrow| de l'extension \pkg{witharrows} grâce à une option |command-name| dédiée. Le nouveau nom de la
+commande doit être fourni à l'option \emph{sans} la contre-oblique.
%
\begin{Verbatim}
\NewDocumentCommand {\Arrow} {} {\longmapsto}
@@ -441,8 +440,7 @@ f & = \bigl(x \Arrow (x+1)^2\bigr)
\interitem
-L'environnement |{WithArrows}| fournit aussi deux options |code-before| et |code-after|\footnote{Pour des raisons
- historiques, il y a aussi des alias pour ces options : |CodeBefore| et |CodeAfter|.} pour du code LaTeX qui sera
+L'environnement |{WithArrows}| fournit aussi deux options |code-before| et |code-after| pour du code LaTeX qui sera
exécuté au début et à la fin de l'environnement. Ces options ne sont pas conçues pour être utilisées comme des
\emph{hooks} (elles sont disponibles uniquement au niveau de l'environnement et ne s'appliquent pas aux
environnements imbriqués).
@@ -689,10 +687,10 @@ $\begin{WithArrows}[interline=1mm,groups]
\interitem
-\section{Les options «up» et «down» pour des flèches individuelles}
+\section{Les options « up » et « down » pour des flèches individuelles}
\label{up-and-down}
-Au niveau local, il y a deux options pour les flèches individuelles, nommée «|up|» et «|down|». L'exemple
+Au niveau local, il y a deux options pour les flèches individuelles, nommées «|up|» et «|down|». L'exemple
suivant illustre ces types de flèches:
@@ -707,7 +705,7 @@ A & = B
\end{WithArrows}\)
\end{Verbatim}
-\vspace{1cm}
+\bigskip
$\begin{WithArrows}
A & = B
\Arrow[up]{une flèche de type \texttt{up}} \\
@@ -719,9 +717,63 @@ A & = B
\vspace{1cm}
-Les options |up| et |down| nécessitent l'extension \pkg{varwidth} et l'extension Tikz \pkg{calc}. Si elles ne sont
-pas chargées, une erreur sera levée.
+Les options |up| et |down| nécessitent l'extension \pkg{varwidth} et l'extension Tikz \pkg{calc}. Si elles n'ont
+pas été chargées au préalable par l'utilisateur, une erreur sera levée.
+\vspace{1cm}
+Les options |up| et |down| peuvent en fait prendre comme valeur une liste de couples clé-valeur.
+\begin{itemize}
+\item La clé |radius| est le rayon de l'angle arrondi de la flèche\footnote{La valeur initiale de ce paramètre est égale à
+$4$~pt, qui est la valeur par défaut du ``|rounded corners|'' de Tikz.}.
+\item La clé |width| contrôle la largeur (de la partie horizontale) de la flèche :
+\begin{itemize}
+\item avec la valeur |max|, la largeur de la flèche est ajustée par rapport à la position des nœuds (c'est le
+comportement par défaut des flèches |up| et |down| comme illustré dans l'exemple précédent) ;
+\item avec une valeur numérique, la largeur de la flèche est directement fixée par cette valeur numérique ;
+\item avec la valeur |min|, la largeur de la flèche est ajustée au contenu de son étiquette.
+\end{itemize}
+\end{itemize}
+
+\vspace{1cm}
+\begin{Verbatim}
+$\begin{WithArrows}
+A & = B
+\Arrow[~emphase#up={width=2cm,radius=0pt}@]{essai} \\
+ & = C + C + C + C + C + C + C + C
+\end{WithArrows}$
+\end{Verbatim}
+
+\medskip
+$\begin{WithArrows}
+A & = B
+\Arrow[up={width=2cm,radius=0pt}]{essai} \\
+ & = C + C + C + C + C + C + C + C
+\end{WithArrows}$
+
+
+\vspace{1cm}
+\begin{Verbatim}
+$\begin{WithArrows}
+A & = B
+\Arrow[~emphase#up={width=min}@]{essai} \\
+ & = C + C + C + C + C + C + C + C
+\end{WithArrows}$
+\end{Verbatim}
+
+\medskip
+$\begin{WithArrows}
+A & = B
+\Arrow[up={width=min}]{essai} \\
+ & = C + C + C + C + C + C + C + C
+\end{WithArrows}$
+
+\vspace{1cm}
+Les options relatives aux flèches |up| and |down| peuvent être fixées au niveau global ou environnemental avec la
+clé |up-and-down|. Cette clé peut aussi être utilisée comme préfixe comme illustré maintenant.
+%
+\begin{Verbatim}
+\WithArrowsOptions{up-and-down/width=min}
+\end{Verbatim}
\interitem
@@ -1220,13 +1272,14 @@ N & \vartriangleleft O \\
P & \vartriangleleft Q
\end{WithArrows}
\right.
-\end{WithArrows}\]
-
+\end{WithArrows}
+%
\begin{tikzpicture}[remember picture,overlay]
\draw [WithArrows/arrow]
([xshift=3mm]wa-\WithArrowsLastEnv-2-1-2-r.south)
to ([xshift=3mm]wa-\WithArrowsLastEnv-3-2-r.north) ;
\end{tikzpicture}
+\]
\medskip
Dans le cas présent, il aurait été plus facile d'utiliser une commande |\Arrow| dans le |code-after| mais
@@ -1691,8 +1744,7 @@ reposent sur le système de numérotation de LaTeX).
\label{tikz-code}
-L'option |tikz-code|\footnote{Pour des raisons historiques, l'option |tikz-code| a un alias :
- |TikzCode|.} permet à l'utilisateur de changer la forme des flèches.\footnote{Si l'option |wrap-lines|
+L'option |tikz-code| permet à l'utilisateur de changer la forme des flèches.\footnote{Si l'option |wrap-lines|
est utilisée dans un environnement |{DispWithArrows}| ou |{DispWithArrows*}|, l'option |tikz-code|
n'aura pas d'effet sur les flèches de cet environnement mais uniquement sur les flèches des environnements
|{WithArrows}| imbriqués.}
diff --git a/Master/texmf-dist/doc/generic/witharrows/witharrows.pdf b/Master/texmf-dist/doc/generic/witharrows/witharrows.pdf
index eb25c91d026..b64ebed03c8 100644
--- a/Master/texmf-dist/doc/generic/witharrows/witharrows.pdf
+++ b/Master/texmf-dist/doc/generic/witharrows/witharrows.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/witharrows/witharrows.tex b/Master/texmf-dist/doc/generic/witharrows/witharrows.tex
index fcb844c1600..f76f7f98dc8 100644
--- a/Master/texmf-dist/doc/generic/witharrows/witharrows.tex
+++ b/Master/texmf-dist/doc/generic/witharrows/witharrows.tex
@@ -18,22 +18,22 @@
%% and version 1.3 or later is part of all distributions of
%% LaTeX version 2005/12/01 or later.
%%
-\def\myfileversion{2.2}
-\def\myfiledate{2019/12/10}
+\def\myfileversion{2.3}
+\def\myfiledate{2019/12/27}
\input tikz.tex
\input expl3-generic.tex
\usetikzlibrary{arrows.meta,bending}
\ExplSyntaxOn
\catcode `\@ = 11
-\cs_new_protected:Npn \@@_msg_new:nn { \msg_new:nnn { witharrows } }
-\cs_new_protected:Npn \@@_msg_new:nnn { \msg_new:nnnn { witharrows } }
-\cs_new_protected:Npn \@@_msg_redirect_name:nn
+\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
{ \msg_redirect_name:nnn { witharrows } }
-\cs_new_protected:Npn \@@_error:n { \msg_error:nn { witharrows } }
-\cs_new_protected:Npn \@@_warning:n { \msg_warning:nn { witharrows } }
-\cs_new_protected:Npn \@@_fatal:n { \msg_fatal:nn { witharrows } }
-\cs_new_protected:Npn \@@_error:nn { \msg_error:nnn { witharrows } }
-\cs_generate_variant:Nn \@@_error:nn { n x }
+\cs_new_protected:Npn \__witharrows_error:n { \msg_error:nn { witharrows } }
+\cs_new_protected:Npn \__witharrows_warning:n { \msg_warning:nn { witharrows } }
+\cs_new_protected:Npn \__witharrows_fatal:n { \msg_fatal:nn { witharrows } }
+\cs_new_protected:Npn \__witharrows_error:nn { \msg_error:nnn { witharrows } }
+\cs_generate_variant:Nn \__witharrows_error:nn { n x }
\cs_generate_variant:Nn \tl_put_right:Nn { N v }
\cs_generate_variant:Nn \seq_set_split:Nnn { N x x }
\AtBeginDocument
@@ -44,26 +44,26 @@
typedref, unicode-math, varwidth
}
{
- \bool_new:c { c_@@_#1_loaded_bool }
- \bool_set_false:c { c_@@_#1_loaded_bool }
+ \bool_new:c { c__witharrows_#1_loaded_bool }
+ \bool_set_false:c { c__witharrows_#1_loaded_bool }
}
}
\sys_if_engine_luatex:TF
{
- \cs_new_protected:Npn \@@_strcmp:nn #1 #2
+ \cs_new_protected:Npn \__witharrows_strcmp:nn #1 #2
{ \lua_now:e { l3kernel.strcmp('#1','#2') } }
}
{
- \cs_new_protected:Npn \@@_strcmp:nn #1 #2
+ \cs_new_protected:Npn \__witharrows_strcmp:nn #1 #2
{ \tex_strcmp:D { #1 } { #2 } }
}
-\cs_new_protected:Npn \@@_sort_seq:N #1
+\cs_new_protected:Npn \__witharrows_sort_seq:N #1
{
\seq_sort:Nn #1
{
\int_compare:nNnTF
{
- \@@_strcmp:nn
+ \__witharrows_strcmp:nn
{ \str_lower_case:n { ##1 } }
{ \str_lower_case:n { ##2 } }
}
@@ -72,7 +72,7 @@
\sort_return_same:
}
}
-\cs_new_protected:Npn \@@_convert_to_str_seq:N #1
+\cs_new_protected:Npn \__witharrows_convert_to_str_seq:N #1
{
\seq_clear:N \l_tmpa_seq
\seq_map_inline:Nn #1
@@ -81,12 +81,12 @@
}
\seq_set_eq:NN #1 \l_tmpa_seq
}
-\cs_new_protected:Npn \@@_set_seq_of_str_from_clist:Nn #1 #2
+\cs_new_protected:Npn \__witharrows_set_seq_of_str_from_clist:Nn #1 #2
{
\seq_set_from_clist:Nn #1 { #2 }
- \@@_convert_to_str_seq:N #1
+ \__witharrows_convert_to_str_seq:N #1
}
-\cs_new_protected:Npn \@@_save:N #1
+\cs_new_protected:Npn \__witharrows_save:N #1
{
\seq_set_split:Nxx \l_tmpa_seq
{ \char_generate:nn { `_ } { 12 } }
@@ -102,7 +102,7 @@
\use:c { \l_tmpa_str _gset_eq:cN }
{ g _\seq_use:Nnnn \l_tmpa_seq _ _ _ } #1
}
-\cs_new_protected:Npn \@@_restore:N #1
+\cs_new_protected:Npn \__witharrows_restore:N #1
{
\seq_set_split:Nxx \l_tmpa_seq
{ \char_generate:nn { `_ } { 12 } }
@@ -114,21 +114,21 @@
}
\tikzset
{
- @@_node_style / .style =
+ __witharrows_node_style / .style =
{
- above = \l_@@_ystart_dim ,
+ above = \l__witharrows_ystart_dim ,
inner~sep = \c_zero_dim ,
minimum~width = \c_zero_dim ,
- minimum~height = \l_@@_ygap_dim
+ minimum~height = \l__witharrows_ygap_dim
}
}
\tikzset
{
- @@_standard / .style =
+ __witharrows_standard / .style =
{
remember~picture ,
overlay ,
- name~prefix = wa - \l_@@_prefix_str -
+ name~prefix = wa - \l__witharrows_prefix_str -
}
}
\tikzset
@@ -152,163 +152,144 @@
\openup \jot
\cs_set_eq:NN \spread@equation \prg_do_nothing:
}
-\tl_new:N \l_@@_left_brace_tl
-\tl_set_eq:NN \l_@@_left_brace_tl \c_novalue_tl
-\bool_new:N \l_@@_in_WithArrows_bool
-\bool_new:N \l_@@_in_DispWithArrows_bool
-\bool_new:N \l_@@_in_code_after_bool
-\seq_new:N \g_@@_position_in_the_tree_seq
-\seq_gput_right:Nn \g_@@_position_in_the_tree_seq 1
-\int_new:N \g_@@_last_env_int
-\int_new:N \l_@@_pos_env_int
-\int_new:N \l_@@_pos_arrow_int
-\int_set:Nn \l_@@_pos_arrow_int 3
-\seq_new:N \g_@@_arrow_int_seq
-\int_new:N \g_@@_arrow_int
-\seq_new:N \g_@@_line_int_seq
-\int_new:N \g_@@_line_int
-\seq_new:N \g_@@_col_int_seq
-\int_new:N \g_@@_col_int
-\seq_new:N \g_@@_static_col_int_seq
-\int_new:N \g_@@_static_col_int
-\str_new:N \l_@@_command_name_str
-\str_set:Nn \l_@@_command_name_str { Arrow }
-\str_new:N \l_@@_string_Arrow_for_msg_str
-\str_set:Nx \l_@@_string_Arrow_for_msg_str { \token_to_str:N \Arrow }
-\seq_new:N \g_@@_names_seq
-\bool_new:N \l_@@_in_first_columns_bool
-\bool_new:N \l_@@_new_group_bool
-\bool_new:N \l_@@_initial_r_bool
-\bool_new:N \l_@@_final_r_bool
-\tl_new:N \l_@@_initial_tl
-\tl_new:N \l_@@_final_tl
-\int_new:N \l_@@_nb_cols_int
-\str_new:N \l_@@_format_str
-\cs_new_protected:Npn \@@_eval_if_allowed:n #1
- {
- \str_if_empty:NTF \l_@@_previous_key_str
+\tl_new:N \l__witharrows_left_brace_tl
+\tl_set_eq:NN \l__witharrows_left_brace_tl \c_novalue_tl
+\bool_new:N \l__witharrows_in_WithArrows_bool
+\bool_new:N \l__witharrows_in_DispWithArrows_bool
+\bool_new:N \l__witharrows_in_code_after_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
+\int_new:N \l__witharrows_pos_env_int
+\int_new:N \l__witharrows_pos_arrow_int
+\int_set:Nn \l__witharrows_pos_arrow_int 3
+\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
+\seq_new:N \g__witharrows_col_int_seq
+\int_new:N \g__witharrows_col_int
+\seq_new:N \g__witharrows_static_col_int_seq
+\int_new:N \g__witharrows_static_col_int
+\str_new:N \l__witharrows_command_name_str
+\str_set:Nn \l__witharrows_command_name_str { Arrow }
+\str_new:N \l__witharrows_string_Arrow_for_msg_str
+\str_set:Nx \l__witharrows_string_Arrow_for_msg_str { \token_to_str:N \Arrow }
+\seq_new:N \g__witharrows_names_seq
+\bool_new:N \l__witharrows_in_first_columns_bool
+\bool_new:N \l__witharrows_new_group_bool
+\bool_new:N \l__witharrows_initial_r_bool
+\bool_new:N \l__witharrows_final_r_bool
+\tl_new:N \l__witharrows_initial_tl
+\tl_new:N \l__witharrows_final_tl
+\int_new:N \l__witharrows_nb_cols_int
+\str_new:N \l__witharrows_format_str
+\dim_new:N \l__witharrows_arrow_width_dim
+\dim_set_eq:NN \l__witharrows_arrow_width_dim \c_max_dim
+\dim_new:N \l__witharrows_up_and_down_radius_dim
+\dim_set:Nn \l__witharrows_up_and_down_radius_dim { 4 pt }
+\cs_new_protected:Npn \__witharrows_eval_if_allowed:n #1
+ {
+ \str_if_empty:NTF \l__witharrows_previous_key_str
{
- \str_set_eq:NN \l_@@_previous_key_str \l_keys_key_tl
+ \str_set_eq:NN \l__witharrows_previous_key_str \l_keys_key_tl
#1
}
- { \@@_error:n { Incompatible~options } }
+ { \__witharrows_error:n { Incompatible~options } }
}
-\cs_new_protected:Npn \@@_fix_pos_option:n #1
- { \@@_eval_if_allowed:n { \int_set:Nn \l_@@_pos_arrow_int { #1 } } }
+\cs_new_protected:Npn \__witharrows_fix_pos_option:n #1
+ { \__witharrows_eval_if_allowed:n { \int_set:Nn \l__witharrows_pos_arrow_int { #1 } } }
\keys_define:nn { WithArrows / Global }
{
- max-length-of-arrow .dim_set:N = \l_@@_max_length_of_arrow_dim ,
+ max-length-of-arrow .dim_set:N = \l__witharrows_max_length_of_arrow_dim ,
max-length-of-arrow .value_required:n = true ,
max-length-of-arrow .initial:n = 2 cm ,
- ygap .dim_set:N = \l_@@_ygap_dim ,
- ygap .value_required:n = true ,
+ ygap .dim_set:N = \l__witharrows_ygap_dim ,
ygap .initial:n = 0.4 ex ,
- ystart .dim_set:N = \l_@@_ystart_dim ,
- ystart .value_required:n = true ,
+ ystart .dim_set:N = \l__witharrows_ystart_dim ,
+
ystart .initial:n = 0.4 ex ,
more-columns .code:n =
- \@@_msg_redirect_name:nn { Too~much~columns~in~WithArrows } { none } ,
- more-columns .value_forbidden:n = true,
+ \__witharrows_msg_redirect_name:nn { Too~much~columns~in~WithArrows } { none } ,
command-name .code:n =
- \str_set:Nn \l_@@_command_name_str { #1 }
- \str_set:Nx \l_@@_string_Arrow_for_msg_str
+ \str_set:Nn \l__witharrows_command_name_str { #1 }
+ \str_set:Nx \l__witharrows_string_Arrow_for_msg_str
{ \c_backslash_str Arrow~alias~\c_backslash_str #1 } ,
- command-name .value_required:n = true ,
- tikz-code .tl_set:N = \l_@@_tikz_code_tl,
+ tikz-code .tl_set:N = \l__witharrows_tikz_code_tl,
tikz-code .initial:n = \draw~(#1)~to~node{#3}~(#2)~; ,
- tikz-code .value_required:n = true ,
TikzCode .meta:n = { tikz-code = #1 } ,
- displaystyle .bool_set:N = \l_@@_displaystyle_bool ,
+ displaystyle .bool_set:N = \l__witharrows_displaystyle_bool ,
displaystyle .default:n = true ,
show-nodes .code:n =
- \tikzset { @@_node_style / .append~style = { draw , red } } ,
- show-nodes .value_forbidden:n = true,
- show-node-names .bool_set:N = \l_@@_show_node_names_bool ,
+ \tikzset { __witharrows_node_style / .append~style = { draw , red } } ,
+ show-node-names .bool_set:N = \l__witharrows_show_node_names_bool ,
show-node-names .default:n = true ,
group .code:n =
- \str_if_empty:NTF \l_@@_previous_key_str
+ \str_if_empty:NTF \l__witharrows_previous_key_str
{
- \str_set:Nn \l_@@_previous_key_str { group }
- \seq_remove_all:Nn \l_@@_options_Arrow_seq { xoffset }
- \int_set:Nn \l_@@_pos_arrow_int 7
+ \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
}
- { \@@_error:n { Incompatible~options } } ,
- group .value_forbidden:n = true ,
+ { \__witharrows_error:n { Incompatible~options } } ,
groups .code:n =
- \str_if_empty:NTF \l_@@_previous_key_str
+ \str_if_empty:NTF \l__witharrows_previous_key_str
{
- \str_set:Nn \l_@@_previous_key_str { groups }
- \seq_if_in:NnF \l_@@_options_Arrow_seq { new-group }
- { \seq_put_right:Nn \l_@@_options_Arrow_seq { new-group } }
- \seq_remove_all:Nn \l_@@_options_Arrow_seq { xoffset }
- \int_set:Nn \l_@@_pos_arrow_int 6
+ \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
}
- { \@@_error:n { Incompatible~options } } ,
- groups .value_forbidden:n = true ,
+ { \__witharrows_error:n { Incompatible~options } } ,
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 = \@@_fix_pos_option:n 3 ,
- ll .value_forbidden:n = true ,
- ll .code:n = \@@_fix_pos_option:n 1 ,
- rl .value_forbidden:n = true ,
- rl .code:n = \@@_fix_pos_option:n 2 ,
- lr .value_forbidden:n = true ,
- lr .code:n = \@@_fix_pos_option:n 0 ,
- i .value_forbidden:n = true ,
- i .code:n = \@@_fix_pos_option:n 5 ,
- xoffset .dim_set:N = \l_@@_xoffset_dim ,
- xoffset .value_required:n = true ,
+ rr .code:n = \__witharrows_fix_pos_option:n 3 ,
+ ll .code:n = \__witharrows_fix_pos_option:n 1 ,
+ rl .code:n = \__witharrows_fix_pos_option:n 2 ,
+ lr .code:n = \__witharrows_fix_pos_option:n 0 ,
+ i .code:n = \__witharrows_fix_pos_option:n 5 ,
+ xoffset .dim_set:N = \l__witharrows_xoffset_dim ,
xoffset .initial:n = 3 mm ,
jot .dim_set:N = \jot ,
- jot .value_required:n = true ,
- interline .skip_set:N = \l_@@_interline_skip ,
- interline .value_required:n = true ,
- start-adjust .dim_set:N = \l_@@_start_adjust_dim ,
- start-adjust .value_required:n = true ,
+ interline .skip_set:N = \l__witharrows_interline_skip ,
+ start-adjust .dim_set:N = \l__witharrows_start_adjust_dim ,
start-adjust .initial:n = 0.4 ex ,
- end-adjust .dim_set:N = \l_@@_end_adjust_dim ,
- end-adjust .value_required:n = true ,
+ end-adjust .dim_set:N = \l__witharrows_end_adjust_dim ,
end-adjust .initial:n = 0.4 ex ,
adjust .meta:n = { start-adjust = #1 , end-adjust = #1 } ,
- adjust .value_required:n = true ,
+ up-and-down .code:n = \keys_set:nn { WithArrows / up-and-down } { #1 } ,
no-arrows .code:n =
- \cs_set_eq:NN \@@_draw_arrows:nn \use_none:nn
- \cs_set_eq:NN \@@_draw_arrow:nnn \use_none:nnn ,
- no-arrows .value_forbidden:n = true ,
+ \cs_set_eq:NN \__witharrows_draw_arrows:nn \use_none:nn
+ \cs_set_eq:NN \__witharrows_draw_arrow:nnn \use_none:nnn ,
}
\keys_define:nn { WithArrows / WithArrowsSpecific }
{
- t .code:n = \int_set:Nn \l_@@_pos_env_int O ,
- t .value_forbidden:n = true ,
- c .code:n = \int_set:Nn \l_@@_pos_env_int 1 ,
- c .value_forbidden:n = true ,
- b .code:n = \int_set:Nn \l_@@_pos_env_int 2 ,
- b .value_forbidden:n = true
+ t .code:n = \int_set:Nn \l__witharrows_pos_env_int O ,
+ c .code:n = \int_set:Nn \l__witharrows_pos_env_int 1 ,
+ b .code:n = \int_set:Nn \l__witharrows_pos_env_int 2 ,
}
-\clist_new:N \c_@@_extensible_delimiters_clist
-\clist_set:Nn \c_@@_extensible_delimiters_clist
+\clist_new:N \c__witharrows_extensible_delimiters_clist
+\clist_set:Nn \c__witharrows_extensible_delimiters_clist
{
., \{, (, [, \lbrace, \lbrack, \lgroup, \langle, \lmoustache, \lceil, \lfloor
}
\keys_define:nn { WithArrows / DispWithArrowsSpecific }
{
- fleqn .bool_set:N = \l_@@_fleqn_bool ,
+ fleqn .bool_set:N = \l__witharrows_fleqn_bool ,
fleqn .default:n = true ,
- mathindent .dim_set:N = \l_@@_mathindent_dim ,
- mathindent .value_required:n = true ,
+ mathindent .dim_set:N = \l__witharrows_mathindent_dim ,
mathindent .initial:n = 25 pt ,
- wrap-lines .bool_set:N = \l_@@_wrap_lines_bool ,
+ wrap-lines .bool_set:N = \l__witharrows_wrap_lines_bool ,
wrap-lines .default:n = true ,
replace-left-brace-by .code:n =
{
\tl_set:Nx \l_tmpa_tl { \tl_head:n { #1 } }
\clist_if_in:NVTF
- \c_@@_extensible_delimiters_clist
+ \c__witharrows_extensible_delimiters_clist
\l_tmpa_tl
- { \tl_set:Nn \l_@@_replace_left_brace_by_tl { #1 } }
- { \@@_error:n { Bad~value~for~replace~brace~by } }
+ { \tl_set:Nn \l__witharrows_replace_left_brace_by_tl { #1 } }
+ { \__witharrows_error:n { Bad~value~for~replace~brace~by } }
} ,
replace-left-brace-by .initial:n = \lbrace ,
}
@@ -316,25 +297,25 @@
{
name .code:n =
\str_set:Nn \l_tmpa_str { #1 }
- \seq_if_in:NVTF \g_@@_names_seq \l_tmpa_str
- { \@@_error:n { Duplicate~name } }
- { \seq_gput_left:NV \g_@@_names_seq \l_tmpa_str }
- \str_set_eq:NN \l_@@_name_str \l_tmpa_str ,
- name .value_required:n = true ,
- code-before .code:n = \tl_put_right:Nn \l_@@_code_before_tl { #1 } ,
- code-before .value_required:n = true,
+ \seq_if_in:NVTF \g__witharrows_names_seq \l_tmpa_str
+ { \__witharrows_error:n { Duplicate~name } }
+ { \seq_gput_left:NV \g__witharrows_names_seq \l_tmpa_str }
+ \str_set_eq:NN \l__witharrows_name_str \l_tmpa_str ,
+ code-before .code:n = \tl_put_right:Nn \l__witharrows_code_before_tl { #1 } ,
CodeBefore .meta:n = { code-before = #1 } ,
- code-after .code:n = \tl_put_right:Nn \l_@@_code_after_tl { #1 } ,
- code-after .value_required:n = true ,
- CodeAfter .meta:n = { code-after = #1 } ,
+ code-after .code:n = \tl_put_right:Nn \l__witharrows_code_after_tl { #1 } ,
+ CodeAfter .meta:n = { code-after = #1 } ,
format .code:n =
\tl_if_empty:nTF { #1 }
- { \@@_error:n { Invalid~option~format } }
+ { \__witharrows_error:n { Invalid~option~format } }
{
\regex_match:nnTF { \A[rcl]*\Z } { #1 }
- { \tl_set:Nn \l_@@_format_str { #1 } }
- { \@@_error:n { Invalid~option~format } }
+ { \tl_set:Nn \l__witharrows_format_str { #1 } }
+ { \__witharrows_error:n { Invalid~option~format } }
} ,
+ code-before .value_required:n = true,
+ code-after .value_required:n = true ,
+ name .value_required:n = true ,
format .value_required:n = true ,
}
\keys_define:nn { WithArrows }
@@ -345,95 +326,103 @@
WithArrows / WithArrowsSpecific ,
WithArrows / Env
} ,
+ WithArrows / up-and-down .inherit:n = WithArrows / up-and-down ,
DispWithArrows .inherit:n =
{
WithArrows / DispWithArrowsSpecific ,
WithArrows / Global ,
WithArrows / Env ,
} ,
+ DispWithArrows / up-and-down .inherit:n = WithArrows / up-and-down ,
WithArrowsOptions .inherit:n =
{
WithArrows / Global ,
WithArrows / WithArrowsSpecific ,
- WithArrows / DispWithArrowsSpecific
- }
+ WithArrows / DispWithArrowsSpecific ,
+ } ,
+ WithArrowsOptions / up-and-down .inherit:n = WithArrows / up-and-down
}
-\seq_new:N \l_@@_options_WithArrows_seq
-\@@_set_seq_of_str_from_clist:Nn \l_@@_options_WithArrows_seq
+\seq_new:N \l__witharrows_options_WithArrows_seq
+\__witharrows_set_seq_of_str_from_clist:Nn \l__witharrows_options_WithArrows_seq
{
adjust, b, c, code-after, code-before, command-name,
displaystyle, end-adjust,
format, group, groups, i,
interline, jot, ll,
lr, max-length-of-arrow, more-columns, name,
- no-arrows, rl, rr,
+ no-arrows, rl, rr, up-and-down,
show-node-names, show-nodes, start-adjust,
t, tikz, tikz-code,
xoffset, ygap, ystart
}
-\@@_convert_to_str_seq:N \l_@@_options_WithArrows_seq
+\__witharrows_convert_to_str_seq:N \l__witharrows_options_WithArrows_seq
\keys_define:nn { WithArrows / WithArrows }
{
unknown .code:n =
- \@@_sort_seq:N \l_@@_options_WithArrows_seq
- \@@_error:n { Unknown~option~WithArrows }
+ \__witharrows_sort_seq:N \l__witharrows_options_WithArrows_seq
+ \__witharrows_error:n { Unknown~option~WithArrows }
}
\keys_define:nn { WithArrows / DispWithArrows }
{
- left-brace .tl_set:N = \l_@@_left_brace_tl ,
+ left-brace .tl_set:N = \l__witharrows_left_brace_tl ,
unknown .code:n =
- \@@_sort_seq:N \l_@@_options_DispWithArrows_seq
- \@@_error:n { Unknown~option~DispWithArrows }
+ \__witharrows_sort_seq:N \l__witharrows_options_DispWithArrows_seq
+ \__witharrows_error:n { Unknown~option~DispWithArrows } ,
}
-\seq_new:N \l_@@_options_DispWithArrows_seq
-\@@_set_seq_of_str_from_clist:Nn \l_@@_options_DispWithArrows_seq
+\seq_new:N \l__witharrows_options_DispWithArrows_seq
+\__witharrows_set_seq_of_str_from_clist:Nn \l__witharrows_options_DispWithArrows_seq
{
code-after, code-before, command-name, tikz-code, adjust,
displaystyle, end-adjust, fleqn, group, format, groups, i, interline, jot,
left-brace, ll, lr, max-length-of-arrow, mathindent, name, no-arrows,
- replace-left-brace-by, rl, rr, show-node-names, show-nodes, start-adjust,
- tikz, wrap-lines, xoffset, ygap, ystart,
+ up-and-down, replace-left-brace-by, rl, rr, show-node-names,
+ show-nodes, start-adjust, tikz, wrap-lines, xoffset, ygap, ystart,
}
\keys_define:nn { WithArrows / WithArrowsOptions }
{
allow-duplicate-names .code:n =
- \@@_msg_redirect_name:nn { Duplicate~name } { none } ,
+ \__witharrows_msg_redirect_name:nn { Duplicate~name } { none } ,
allow-duplicate-names .value_forbidden:n = true ,
unknown .code:n =
- \@@_sort_seq:N \l_@@_options_WithArrowsOptions_seq
- \@@_error:n { Unknown~option~WithArrowsOptions }
+ \__witharrows_sort_seq:N \l__witharrows_options_WithArrowsOptions_seq
+ \__witharrows_error:n { Unknown~option~WithArrowsOptions }
}
-\seq_new:N \l_@@_options_WithArrowsOptions_seq
-\@@_set_seq_of_str_from_clist:Nn \l_@@_options_WithArrowsOptions_seq
+\seq_new:N \l__witharrows_options_WithArrowsOptions_seq
+\__witharrows_set_seq_of_str_from_clist:Nn \l__witharrows_options_WithArrowsOptions_seq
{
allow-duplicate-names, b, c, command-name, more-columns, tikz-code, adjust,
displaystyle, end-adjust, fleqn, group, groups, i, interline, jot, ll, lr,
- mathindent, max-length-of-arrow, no-arrows, rl, rr, show-node-names,
- show-nodes, start-adjust, t, tikz, wrap-lines, xoffset, ygap, ystart,
+ mathindent, max-length-of-arrow, no-arrows, up-and-down, rl, rr,
+ show-node-names, show-nodes, start-adjust, t, tikz, wrap-lines, xoffset,
+ ygap, ystart,
+ }
+\cs_new_protected:Npn \__witharrows_set_independent:
+ {
+ \str_if_eq:VnF \l_keys_value_tl { NoValue }
+ { \__witharrows_error:n { Value~for~a~key } }
+ \__witharrows_set_independent_bis:
}
-\cs_new_protected:Npn \@@_set_independent:
+\cs_new_protected:Npn \__witharrows_set_independent_bis:
{
- \str_if_empty:NTF \l_@@_previous_key_str
+ \str_if_empty:NTF \l__witharrows_previous_key_str
{
- \str_set_eq:NN \l_@@_previous_key_str \l_keys_key_tl
- \str_set:Nn \l_@@_status_arrow_str { independent }
- \str_if_eq:VnF \l_keys_value_tl { NoValue }
- { \@@_error:n { Value~for~a~key } }
+ \str_set_eq:NN \l__witharrows_previous_key_str \l_keys_key_tl
+ \str_set:Nn \l__witharrows_status_arrow_str { independent }
}
- { \@@_error:n { Incompatible~options~in~Arrow } }
+ { \__witharrows_error:n { Incompatible~options~in~Arrow } }
}
\keys_define:nn { WithArrows / Arrow / FirstPass }
{
jump .code:n =
\int_compare:nTF { #1 > 0 }
- { \int_set:Nn \l_@@_jump_int { #1 } }
- { \@@_error:n { Negative~jump } } ,
+ { \int_set:Nn \l__witharrows_jump_int { #1 } }
+ { \__witharrows_error:n { Negative~jump } } ,
jump .value_required:n = true,
- rr .code:n = \@@_set_independent: ,
- ll .code:n = \@@_set_independent: ,
- rl .code:n = \@@_set_independent: ,
- lr .code:n = \@@_set_independent: ,
- i .code:n = \@@_set_independent: ,
+ 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 .default:n = NoValue ,
ll .default:n = NoValue ,
rl .default:n = NoValue ,
@@ -441,9 +430,9 @@
i .default:n = NoValue ,
new-group .value_forbidden:n = true,
new-group .code:n =
- \int_compare:nTF { \l_@@_pos_arrow_int = 6 }
- { \str_set:Nn \l_@@_status_arrow_str { new-group } }
- { \@@_error:n { new-group~without~groups } } ,
+ \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 } } ,
tikz-code .code:n = \prg_do_nothing: ,
tikz-code .value_required:n = true ,
tikz .code:n = \prg_do_nothing: ,
@@ -456,208 +445,208 @@
adjust .value_required:n = true ,
xoffset .code:n = ,
unknown .code:n =
- \@@_sort_seq:N \l_@@_options_Arrow_seq
- \seq_if_in:NVTF \l_@@_options_WithArrows_seq \l_keys_key_tl
+ \__witharrows_sort_seq:N \l__witharrows_options_Arrow_seq
+ \seq_if_in:NVTF \l__witharrows_options_WithArrows_seq \l_keys_key_tl
{
\str_set:Nn \l_tmpa_str
{ ~However,~this~key~can~be~used~in~the~options~of~{WithArrows}. }
}
{ \str_clear:N \l_tmpa_str }
- \@@_error:n { Unknown~option~in~Arrow }
+ \__witharrows_error:n { Unknown~option~in~Arrow }
}
-\seq_new:N \l_@@_options_Arrow_seq
-\@@_set_seq_of_str_from_clist:Nn \l_@@_options_Arrow_seq
+\seq_new:N \l__witharrows_options_Arrow_seq
+\__witharrows_set_seq_of_str_from_clist:Nn \l__witharrows_options_Arrow_seq
{
adjust, end-adjust, i, jump, ll, lr, rl, rr, start-adjust, tikz, tikz-code,
xoffset
}
-\cs_new_protected:Npn \@@_fix_pos_arrow:n #1
+\cs_new_protected:Npn \__witharrows_fix_pos_arrow:n #1
{
- \str_if_empty:NT \l_@@_previous_key_str
+ \str_if_empty:NT \l__witharrows_previous_key_str
{
- \str_set_eq:NN \l_@@_previous_key_str \l_keys_key_tl
- \int_set:Nn \l_@@_pos_arrow_int { #1 }
+ \str_set_eq:NN \l__witharrows_previous_key_str \l_keys_key_tl
+ \int_set:Nn \l__witharrows_pos_arrow_int { #1 }
}
}
\keys_define:nn {WithArrows / Arrow / SecondPass }
{
- tikz-code .tl_set:N = \l_@@_tikz_code_tl ,
+ tikz-code .tl_set:N = \l__witharrows_tikz_code_tl ,
tikz-code .initial:n = \draw~(#1)~to~node{#3}~(#2)~; ,
tikz .code:n = \tikzset { WithArrows / arrow / .append~style = { #1 } } ,
tikz .initial:n = \c_empty_tl ,
- rr .code:n = \@@_fix_pos_arrow:n 3 ,
- ll .code:n = \@@_fix_pos_arrow:n 1 ,
- rl .code:n = \@@_fix_pos_arrow:n 2 ,
- lr .code:n = \@@_fix_pos_arrow:n 0 ,
- i .code:n = \@@_fix_pos_arrow:n 5 ,
+ 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 ,
xoffset .code:n =
\bool_if:nTF
{
- \int_compare_p:nNn \g_@@_arrow_int > 1
+ \int_compare_p:nNn \g__witharrows_arrow_int > 1
&&
- \int_compare_p:nNn \l_@@_pos_arrow_int > 5
+ \int_compare_p:nNn \l__witharrows_pos_arrow_int > 5
&&
- ! \str_if_eq_p:Vn \l_@@_status_arrow_str { independent }
+ ! \str_if_eq_p:Vn \l__witharrows_status_arrow_str { independent }
}
- { \@@_error:n { Option~xoffset~forbidden } }
- { \dim_set:Nn \l_@@_xoffset_dim { #1 } } ,
+ { \__witharrows_error:n { Option~xoffset~forbidden } }
+ { \dim_set:Nn \l__witharrows_xoffset_dim { #1 } } ,
xoffset .value_required:n = true ,
- start-adjust .dim_set:N = \l_@@_start_adjust_dim,
- end-adjust .dim_set:N = \l_@@_end_adjust_dim,
+ start-adjust .dim_set:N = \l__witharrows_start_adjust_dim,
+ end-adjust .dim_set:N = \l__witharrows_end_adjust_dim,
adjust .code:n =
- \dim_set:Nn \l_@@_start_adjust_dim { #1 }
- \dim_set:Nn \l_@@_end_adjust_dim { #1 } ,
+ \dim_set:Nn \l__witharrows_start_adjust_dim { #1 }
+ \dim_set:Nn \l__witharrows_end_adjust_dim { #1 } ,
}
\cs_set_protected:Npn \WithArrowsOptions #1
{
- \str_clear_new:N \l_@@_previous_key_str
+ \str_clear_new:N \l__witharrows_previous_key_str
\keys_set:nn { WithArrows / WithArrowsOptions } { #1 }
}
-\cs_new_protected:Npn \@@_Arrow
+\cs_new_protected:Npn \__witharrows_Arrow
{
\peek_meaning:NTF [
- { \@@_Arrow_i }
- { \@@_Arrow_i [ ] }
+ { \__witharrows_Arrow_i }
+ { \__witharrows_Arrow_i [ ] }
}
-\cs_new_protected:Npn \@@_Arrow_i [ #1 ] #2
+\cs_new_protected:Npn \__witharrows_Arrow_i [ #1 ] #2
{
\peek_meaning:NTF [
- { \@@_Arrow_ii [ #1 ] { #2 } }
- { \@@_Arrow_ii [ #1 ] { #2 } [ ] }
+ { \__witharrows_Arrow_ii [ #1 ] { #2 } }
+ { \__witharrows_Arrow_ii [ #1 ] { #2 } [ ] }
}
-\cs_new_protected:Npn \@@_Arrow_ii [ #1 ] #2 [ #3 ]
+\cs_new_protected:Npn \__witharrows_Arrow_ii [ #1 ] #2 [ #3 ]
{
- \int_gincr:N \g_@@_arrow_int
- \str_clear_new:N \l_@@_previous_key_str
+ \int_gincr:N \g__witharrows_arrow_int
+ \str_clear_new:N \l__witharrows_previous_key_str
\keys_set:nn { WithArrows / Arrow / FirstPass } { #1 , #3 }
- \prop_put:NnV \l_tmpa_prop { initial } \g_@@_line_int
- \int_set:Nn \l_tmpa_int { \g_@@_line_int + \l_@@_jump_int }
+ \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 { final } \l_tmpa_int
- \prop_put:NnV \l_tmpa_prop { status } \l_@@_status_arrow_str
+ \prop_put:NnV \l_tmpa_prop { status } \l__witharrows_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_@@_arrow _ \l_@@_prefix_str _ \int_use:N \g_@@_arrow_int _ prop }
+ { g__witharrows_arrow _ \l__witharrows_prefix_str _ \int_use:N \g__witharrows_arrow_int _ prop }
\prop_gset_eq:cN
- { g_@@_arrow _ \l_@@_prefix_str _ \int_use:N \g_@@_arrow_int _ prop }
+ { g__witharrows_arrow _ \l__witharrows_prefix_str _ \int_use:N \g__witharrows_arrow_int _ prop }
\l_tmpa_prop
}
-\cs_new_protected:Npn \@@_Arrow_first_columns:
- { \@@_error:n { Arrow~not~in~last~column } \@@_Arrow }
-\cs_new_protected:Npn \@@_pre_halign:n #1
+\cs_new_protected:Npn \__witharrows_Arrow_first_columns:
+ { \__witharrows_error:n { Arrow~not~in~last~column } \__witharrows_Arrow }
+\cs_new_protected:Npn \__witharrows_pre_halign:n #1
{
\cs_if_exist:NT \tikz@library@external@loaded
{ \tikzset { external / export = false } }
- \str_clear_new:N \l_@@_name_str
- \str_clear_new:N \l_@@_status_arrow_str
- \dim_zero_new:N \l_@@_x_dim
- \str_clear_new:N \l_@@_input_line_str
- \seq_gput_right:NV \g_@@_arrow_int_seq \g_@@_arrow_int
- \int_gzero:N \g_@@_arrow_int
- \seq_gput_right:NV \g_@@_line_int_seq \g_@@_line_int
- \int_gzero:N \g_@@_line_int
- \seq_gput_right:NV \g_@@_col_int_seq \g_@@_col_int
- \int_gzero:N \g_@@_col_int
- \seq_gput_right:NV \g_@@_static_col_int_seq \g_@@_static_col_int
- \int_gzero:N \g_@@_static_col_int
- \seq_gput_right:Nn \g_@@_position_in_the_tree_seq 1
- \seq_set_eq:NN \l_tmpa_seq \g_@@_position_in_the_tree_seq
+ \str_clear_new:N \l__witharrows_name_str
+ \str_clear_new:N \l__witharrows_status_arrow_str
+ \dim_zero_new:N \l__witharrows_x_dim
+ \str_clear_new:N \l__witharrows_input_line_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:NV \g__witharrows_col_int_seq \g__witharrows_col_int
+ \int_gzero:N \g__witharrows_col_int
+ \seq_gput_right:NV \g__witharrows_static_col_int_seq \g__witharrows_static_col_int
+ \int_gzero:N \g__witharrows_static_col_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
\seq_pop_right:NN \l_tmpa_seq \l_tmpa_tl
- \str_clear_new:N \l_@@_prefix_str
- \str_set:Nx \l_@@_prefix_str { \seq_use:Nnnn \l_tmpa_seq - - - }
- \cs_set_eq:NN \\ \@@_cr:
+ \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:
\dim_zero:N \mathsurround
- \int_zero_new:N \l_@@_initial_int
- \int_zero_new:N \l_@@_final_int
- \int_zero_new:N \l_@@_arrow_int
- \int_zero_new:N \l_@@_pos_of_arrow_int
- \int_zero_new:N \l_@@_jump_int
- \int_set:Nn \l_@@_jump_int \c_one_int
- \str_set:Nn \l_@@_format_str { rl }
- \skip_zero:N \l_@@_interline_skip
- \tl_clear_new:N \l_@@_code_before_tl
- \tl_clear_new:N \l_@@_code_after_tl
- \str_clear_new:N \l_@@_previous_key_str
- \bool_if:NT \l_@@_in_WithArrows_bool
+ \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
+ \str_set:Nn \l__witharrows_format_str { rl }
+ \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
{ \keys_set:nn { WithArrows / WithArrows } { #1 } }
- \bool_if:NT \l_@@_in_DispWithArrows_bool
+ \bool_if:NT \l__witharrows_in_DispWithArrows_bool
{ \keys_set:nn { WithArrows / DispWithArrows } { #1 } }
- \cs_set_eq:cN \l_@@_command_name_str \@@_Arrow_first_columns:
- \int_set:Nn \l_@@_nb_cols_int { \str_count:N \l_@@_format_str }
- \int_gset_eq:NN \g_@@_col_int \l_@@_nb_cols_int
- \seq_clear_new:N \l_@@_format_seq
- \seq_set_split:NnV \l_@@_format_seq { } \l_@@_format_str
- \l_@@_code_before_tl
+ \cs_set_eq:cN \l__witharrows_command_name_str \__witharrows_Arrow_first_columns:
+ \int_set:Nn \l__witharrows_nb_cols_int { \str_count:N \l__witharrows_format_str }
+ \int_gset_eq:NN \g__witharrows_col_int \l__witharrows_nb_cols_int
+ \seq_clear_new:N \l__witharrows_format_seq
+ \seq_set_split:NnV \l__witharrows_format_seq { } \l__witharrows_format_str
+ \l__witharrows_code_before_tl
\spread@equation
}
-\cs_new_protected:Npn \@@_construct_halign:
+\cs_new_protected:Npn \__witharrows_construct_halign:
{
- \seq_pop_right:NNTF \l_@@_format_seq \l_@@_type_col_str
+ \seq_pop_right:NNTF \l__witharrows_format_seq \l__witharrows_type_col_str
{
\use:x
{
- \int_gdecr:N \g_@@_col_int
- \@@_construct_halign:
- \int_compare:nNnT \g_@@_col_int = \l_@@_nb_cols_int
+ \int_gdecr:N \g__witharrows_col_int
+ \__witharrows_construct_halign:
+ \int_compare:nNnT \g__witharrows_col_int = \l__witharrows_nb_cols_int
{
- \cs_set_eq:cN { \l_@@_command_name_str } \@@_Arrow
+ \cs_set_eq:cN { \l__witharrows_command_name_str } \__witharrows_Arrow
}
- \str_if_eq:VnT \l_@@_type_col_str { c } \hfil
- \str_if_eq:VnT \l_@@_type_col_str { r } \hfill
- \int_gincr:N \g_@@_col_int
- \int_gset:Nn \g_@@_static_col_int { \int_use:N \g_@@_col_int }
+ \str_if_eq:VnT \l__witharrows_type_col_str { c } \hfil
+ \str_if_eq:VnT \l__witharrows_type_col_str { r } \hfill
+ \int_gincr:N \g__witharrows_col_int
+ \int_gset:Nn \g__witharrows_static_col_int { \int_use:N \g__witharrows_col_int }
\c_math_toggle_token
{
{ }
- \bool_if:NT \l_@@_displaystyle_bool \displaystyle
+ \bool_if:NT \l__witharrows_displaystyle_bool \displaystyle
####
}
\c_math_toggle_token
- \int_compare:nNnTF \g_@@_col_int = \l_@@_nb_cols_int
- { \@@_construct_nodes: }
+ \int_compare:nNnTF \g__witharrows_col_int = \l__witharrows_nb_cols_int
+ { \__witharrows_construct_nodes: }
{
- \str_if_eq:VnT \l_@@_type_col_str { l } \hfil
- \str_if_eq:VnT \l_@@_type_col_str { c } \hfil
- \bool_if:NT \l_@@_in_DispWithArrows_bool { \tabskip = \c_zero_skip }
+ \str_if_eq:VnT \l__witharrows_type_col_str { l } \hfil
+ \str_if_eq:VnT \l__witharrows_type_col_str { c } \hfil
+ \bool_if:NT \l__witharrows_in_DispWithArrows_bool { \tabskip = \c_zero_skip }
&
}
}
}
{
- \bool_if:NTF \l_@@_in_WithArrows_bool
+ \bool_if:NTF \l__witharrows_in_WithArrows_bool
{
\ialign
\bgroup
}
{
- \halign to \l_@@_linewidth_dim
+ \halign to \l__witharrows_linewidth_dim
\bgroup
- \bool_if:NT \l_@@_fleqn_bool
- { \skip_horizontal:N \l_@@_mathindent_dim }
+ \bool_if:NT \l__witharrows_fleqn_bool
+ { \skip_horizontal:N \l__witharrows_mathindent_dim }
}
- \int_gincr:N \g_@@_line_int
- \int_gzero:N \g_@@_col_int
- \tl_if_eq:NNF \l_@@_left_brace_tl \c_novalue_tl
+ \int_gincr:N \g__witharrows_line_int
+ \int_gzero:N \g__witharrows_col_int
+ \tl_if_eq:NNF \l__witharrows_left_brace_tl \c_novalue_tl
{
\skip_horizontal:n
- { \box_wd:N \l_@@_left_brace_box + \l_@@_delim_wd_dim }
+ { \box_wd:N \l__witharrows_left_brace_box + \l__witharrows_delim_wd_dim }
}
\strut
}
}
-\cs_new_protected:Npn \@@_construct_nodes:
+\cs_new_protected:Npn \__witharrows_construct_nodes:
{
\tikz [ remember~picture , overlay ]
\node
[
node~contents = { } ,
- @@_node_style ,
- name = wa - \l_@@_prefix_str - \int_use:N \g_@@_line_int - l ,
+ __witharrows_node_style ,
+ name = wa - \l__witharrows_prefix_str - \int_use:N \g__witharrows_line_int - l ,
alias =
{
- \str_if_empty:NF \l_@@_name_str
- { \l_@@_name_str - \int_use:N \g_@@_line_int - l }
+ \str_if_empty:NF \l__witharrows_name_str
+ { \l__witharrows_name_str - \int_use:N \g__witharrows_line_int - l }
}
]
;
@@ -666,19 +655,19 @@
\node
[
node~contents = { } ,
- @@_node_style ,
- name = wa - \l_@@_prefix_str - \int_use:N \g_@@_line_int - r ,
+ __witharrows_node_style ,
+ name = wa - \l__witharrows_prefix_str - \int_use:N \g__witharrows_line_int - r ,
alias =
{
- \str_if_empty:NF \l_@@_name_str
- { \l_@@_name_str - \int_use:N \g_@@_line_int - r }
+ \str_if_empty:NF \l__witharrows_name_str
+ { \l__witharrows_name_str - \int_use:N \g__witharrows_line_int - r }
}
]
;
- \bool_if:NT \l_@@_show_node_names_bool
+ \bool_if:NT \l__witharrows_show_node_names_bool
{
\hbox_overlap_right:n
- { \small wa - \l_@@_prefix_str - \int_use:N \g_@@_line_int - r }
+ { \small wa - \l__witharrows_prefix_str - \int_use:N \g__witharrows_line_int - r }
}
}
\cs_new_protected:Npn \WithArrows
@@ -690,21 +679,21 @@
}
\cs_new_protected:Npn \WithArrows_i [ #1 ]
{
- \bool_set_true:N \l_@@_in_WithArrows_bool
- \bool_set_false:N \l_@@_in_DispWithArrows_bool
- \str_clear_new:N \l_@@_type_env_str
- \str_set:Nn \l_@@_type_env_str { WithArrows }
- \@@_pre_halign:n { #1 }
+ \bool_set_true:N \l__witharrows_in_WithArrows_bool
+ \bool_set_false:N \l__witharrows_in_DispWithArrows_bool
+ \str_clear_new:N \l__witharrows_type_env_str
+ \str_set:Nn \l__witharrows_type_env_str { WithArrows }
+ \__witharrows_pre_halign:n { #1 }
\if_mode_math: \else:
- \@@_error:n { WithArrows~outside~math~mode }
+ \__witharrows_error:n { WithArrows~outside~math~mode }
\fi:
- \int_case:nn \l_@@_pos_env_int { 0 \vtop 1 \vcenter 2 \vbox }
+ \int_case:nn \l__witharrows_pos_env_int { 0 \vtop 1 \vcenter 2 \vbox }
\bgroup
- \@@_construct_halign:
+ \__witharrows_construct_halign:
&&
- \@@_error:n { Too~much~columns~in~WithArrows }
+ \__witharrows_error:n { Too~much~columns~in~WithArrows }
\c_math_toggle_token
- \bool_if:NT \l_@@_displaystyle_bool \displaystyle
+ \bool_if:NT \l__witharrows_displaystyle_bool \displaystyle
{ ## }
\c_math_toggle_token
\cr
@@ -714,73 +703,73 @@
\\
\egroup
\egroup
- \@@_post_halign:
+ \__witharrows_post_halign:
\group_end:
}
-\cs_new_protected:Npn \@@_post_halign:
+\cs_new_protected:Npn \__witharrows_post_halign:
{
- \cs_set:Npn \WithArrowsRightX { \g_@@_right_x_dim }
+ \cs_set:Npn \WithArrowsRightX { \g__witharrows_right_x_dim }
\normalbaselines
- \int_compare:nNnT \g_@@_arrow_int > 0
+ \int_compare:nNnT \g__witharrows_arrow_int > 0
{
- \int_compare:nNnT \g_@@_arrow_int = 1
+ \int_compare:nNnT \g__witharrows_arrow_int = 1
{
- \int_compare:nNnT \l_@@_pos_arrow_int > 5
- { \int_set:Nn \l_@@_pos_arrow_int 5 }
+ \int_compare:nNnT \l__witharrows_pos_arrow_int > 5
+ { \int_set:Nn \l__witharrows_pos_arrow_int 5 }
}
- \@@_scan_arrows:
+ \__witharrows_scan_arrows:
}
\group_begin:
- \tikzset { every~picture / .style = @@_standard }
- \cs_set:Npn \WithArrowsNbLines { \int_use:N \g_@@_line_int }
- \cs_set_eq:NN \MultiArrow \@@_MultiArrow:nn
- \cs_set_eq:cN \l_@@_command_name_str \@@_Arrow_code_after
- \bool_set_true:N \l_@@_in_code_after_bool
- \l_@@_code_after_tl
+ \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_command_name_str \__witharrows_Arrow_code_after
+ \bool_set_true:N \l__witharrows_in_code_after_bool
+ \l__witharrows_code_after_tl
\group_end:
- \seq_gpop_right:NN \g_@@_position_in_the_tree_seq \l_tmpa_tl
- \seq_gpop_right:NN \g_@@_position_in_the_tree_seq \l_tmpa_tl
- \seq_gput_right:Nx \g_@@_position_in_the_tree_seq
+ \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
{ \int_eval:n { \l_tmpa_tl + 1 } }
- \int_compare:nNnT { \seq_count:N \g_@@_position_in_the_tree_seq } = 1
- { \int_gincr:N \g_@@_last_env_int }
- \seq_gpop_right:NN \g_@@_arrow_int_seq \l_tmpa_tl
- \int_gset:Nn \g_@@_arrow_int \l_tmpa_tl
- \seq_gpop_right:NN \g_@@_line_int_seq \l_tmpa_tl
- \int_gset:Nn \g_@@_line_int \l_tmpa_tl
- \seq_gpop_right:NN \g_@@_col_int_seq \l_tmpa_tl
- \int_gset:Nn \g_@@_col_int \l_tmpa_tl
- \seq_gpop_right:NN \g_@@_static_col_int_seq \l_tmpa_tl
- \int_gset:Nn \g_@@_static_col_int \l_tmpa_tl
- }
-\cs_new_protected:Npn \@@_cr:
+ \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
+ \seq_gpop_right:NN \g__witharrows_col_int_seq \l_tmpa_tl
+ \int_gset:Nn \g__witharrows_col_int \l_tmpa_tl
+ \seq_gpop_right:NN \g__witharrows_static_col_int_seq \l_tmpa_tl
+ \int_gset:Nn \g__witharrows_static_col_int \l_tmpa_tl
+ }
+\cs_new_protected:Npn \__witharrows_cr:
{
\scan_stop:
- \int_compare:nNnF \g_@@_col_int = \g_@@_static_col_int
- { \@@_error:n { omit~probably~used } }
- \prg_replicate:nn { \l_@@_nb_cols_int - \g_@@_static_col_int } { & { } }
+ \int_compare:nNnF \g__witharrows_col_int = \g__witharrows_static_col_int
+ { \__witharrows_error:n { omit~probably~used } }
+ \prg_replicate:nn { \l__witharrows_nb_cols_int - \g__witharrows_static_col_int } { & { } }
\group_align_safe_begin:
- \peek_meaning_remove:NTF * \@@_cr_i: \@@_cr_i:
+ \peek_meaning_remove:NTF * \__witharrows_cr_i: \__witharrows_cr_i:
}
-\cs_new_protected:Npn \@@_cr_i:
- { \peek_meaning:NTF [ \@@_cr_ii: { \@@_cr_ii: [ \c_zero_dim ] } }
-\cs_new_protected:Npn \@@_cr_ii: [ #1 ]
+\cs_new_protected:Npn \__witharrows_cr_i:
+ { \peek_meaning:NTF [ \__witharrows_cr_ii: { \__witharrows_cr_ii: [ \c_zero_dim ] } }
+\cs_new_protected:Npn \__witharrows_cr_ii: [ #1 ]
{
\group_align_safe_end:
- \bool_if:NT \l_@@_in_DispWithArrows_bool
+ \bool_if:NT \l__witharrows_in_DispWithArrows_bool
{
&
- \tikz [ @@_standard ]
- \coordinate ( \int_use:N \g_@@_line_int - v ) ;
+ \tikz [ __witharrows_standard ]
+ \coordinate ( \int_use:N \g__witharrows_line_int - v ) ;
}
\dim_compare:nNnT { #1 } < \c_zero_dim
- { \@@_error:n { option~of~cr~negative } }
+ { \__witharrows_error:n { option~of~cr~negative } }
\cr
\noalign
{
\dim_set:Nn \l_tmpa_dim { \dim_max:nn { #1 } \c_zero_dim }
- \skip_vertical:n { \l_tmpa_dim + \l_@@_interline_skip }
+ \skip_vertical:n { \l_tmpa_dim + \l__witharrows_interline_skip }
\scan_stop:
}
}
@@ -799,39 +788,39 @@
}
\cs_new_protected:Npn \DispWithArrows_ii < #1 > [ #2 ]
{
- \bool_set_true:N \l_@@_in_DispWithArrows_bool
- \str_clear_new:N \l_@@_type_env_str
- \str_set:Nn \l_@@_type_env_str { DispWithArrows }
- \exp_args:No \tl_if_novalue:nF { #1 } { \tl_set:Nn \l_@@_left_brace_tl { #1 } }
- \@@_pre_halign:n { #2 }
- \tl_if_eq:NNF \l_@@_left_brace_tl \c_novalue_tl
+ \bool_set_true:N \l__witharrows_in_DispWithArrows_bool
+ \str_clear_new:N \l__witharrows_type_env_str
+ \str_set:Nn \l__witharrows_type_env_str { DispWithArrows }
+ \exp_args:No \tl_if_novalue:nF { #1 } { \tl_set:Nn \l__witharrows_left_brace_tl { #1 } }
+ \__witharrows_pre_halign:n { #2 }
+ \tl_if_eq:NNF \l__witharrows_left_brace_tl \c_novalue_tl
{
\hbox_set:Nn \l_tmpa_box
{
\group_begin:
\dim_set_eq:NN \nulldelimiterspace \c_zero_dim
\c_math_toggle_token
- \left \l_@@_replace_left_brace_by_tl \vcenter to 1 cm { } \right.
+ \left \l__witharrows_replace_left_brace_by_tl \vcenter to 1 cm { } \right.
\c_math_toggle_token
\group_end:
}
- \dim_zero_new:N \l_@@_delim_wd_dim
- \dim_set:Nn \l_@@_delim_wd_dim { \box_wd:N \l_tmpa_box }
- \box_clear_new:N \l_@@_left_brace_box
- \hbox_set:Nn \l_@@_left_brace_box
+ \dim_zero_new:N \l__witharrows_delim_wd_dim
+ \dim_set:Nn \l__witharrows_delim_wd_dim { \box_wd:N \l_tmpa_box }
+ \box_clear_new:N \l__witharrows_left_brace_box
+ \hbox_set:Nn \l__witharrows_left_brace_box
{
\group_begin:
- \cs_set_eq:NN \label \@@_old_label
+ \cs_set_eq:NN \label \__witharrows_old_label
\c_math_toggle_token
- \bool_if:NT \l_@@_displaystyle_bool \displaystyle
- \l_@@_left_brace_tl
+ \bool_if:NT \l__witharrows_displaystyle_bool \displaystyle
+ \l__witharrows_left_brace_tl
{ }
\c_math_toggle_token
\group_end:
}
}
\if_mode_math:
- \@@_fatal:n { DispWithArrows~in~math~mode }
+ \__witharrows_fatal:n { DispWithArrows~in~math~mode }
\fi:
\dim_zero_new:N \linewidth
\dim_set_eq:NN \linewidth \displaywidth
@@ -840,21 +829,21 @@
\hbox_to_wd:nn { .6 \linewidth } { }
\fi:
\c_math_toggle_token \c_math_toggle_token
- \dim_zero_new:N \l_@@_linewidth_dim
- \dim_set_eq:NN \l_@@_linewidth_dim \displaywidth
- \box_clear_new:N \l_@@_halign_box
- \setbox \l_@@_halign_box \vtop \bgroup
+ \dim_zero_new:N \l__witharrows_linewidth_dim
+ \dim_set_eq:NN \l__witharrows_linewidth_dim \displaywidth
+ \box_clear_new:N \l__witharrows_halign_box
+ \setbox \l__witharrows_halign_box \vtop \bgroup
\tabskip =
- \bool_if:NTF \l_@@_fleqn_bool
+ \bool_if:NTF \l__witharrows_fleqn_bool
\c_zero_skip
{ 0 pt plus 1000 pt minus 1000 pt }
- \@@_construct_halign:
+ \__witharrows_construct_halign:
\tabskip = 0 pt plus 1000 pt minus 1000 pt
&
$ ## $
\tabskip = \c_zero_skip
&&
- \@@_fatal:n { Too~much~columns~in~DispWithArrows }
+ \__witharrows_fatal:n { Too~much~columns~in~DispWithArrows }
\bool_if:nT \c_false_bool { ## }
\cr
}
@@ -866,34 +855,34 @@
\box_set_to_last:N \l_tmpa_box
\nointerlineskip
\box_use:N \l_tmpa_box
- \dim_gzero_new:N \g_@@_alignment_dim
- \dim_gset:Nn \g_@@_alignment_dim { \box_wd:N \l_tmpa_box }
- \box_clear_new:N \l_@@_new_box
- \hbox_set:Nn \l_@@_new_box { \hbox_unpack_clear:N \l_tmpa_box }
+ \dim_gzero_new:N \g__witharrows_alignment_dim
+ \dim_gset:Nn \g__witharrows_alignment_dim { \box_wd:N \l_tmpa_box }
+ \box_clear_new:N \l__witharrows_new_box
+ \hbox_set:Nn \l__witharrows_new_box { \hbox_unpack_clear:N \l_tmpa_box }
\dim_compare:nNnT
- { \box_wd:N \l_@@_new_box } < \g_@@_alignment_dim
- { \dim_gset:Nn \g_@@_alignment_dim { \box_wd:N \l_@@_new_box } }
+ { \box_wd:N \l__witharrows_new_box } < \g__witharrows_alignment_dim
+ { \dim_gset:Nn \g__witharrows_alignment_dim { \box_wd:N \l__witharrows_new_box } }
\egroup
- \tl_if_eq:NNTF \l_@@_left_brace_tl \c_novalue_tl
- { \box_use_drop:N \l_@@_halign_box }
+ \tl_if_eq:NNTF \l__witharrows_left_brace_tl \c_novalue_tl
+ { \box_use_drop:N \l__witharrows_halign_box }
{
- \hbox_to_wd:nn \l_@@_linewidth_dim
+ \hbox_to_wd:nn \l__witharrows_linewidth_dim
{
- \bool_if:NTF \l_@@_fleqn_bool
- { \skip_horizontal:n \l_@@_mathindent_dim }
+ \bool_if:NTF \l__witharrows_fleqn_bool
+ { \skip_horizontal:n \l__witharrows_mathindent_dim }
\hfil
- \hbox_to_wd:nn \g_@@_alignment_dim
+ \hbox_to_wd:nn \g__witharrows_alignment_dim
{
- \box_use_drop:N \l_@@_left_brace_box
+ \box_use_drop:N \l__witharrows_left_brace_box
\dim_set:Nn \l_tmpa_dim
{
- \box_ht:N \l_@@_halign_box
- + \box_dp:N \l_@@_halign_box
+ \box_ht:N \l__witharrows_halign_box
+ + \box_dp:N \l__witharrows_halign_box
}
\group_begin:
\dim_set_eq:NN \nulldelimiterspace \c_zero_dim
\c_math_toggle_token
- \left \l_@@_replace_left_brace_by_tl
+ \left \l__witharrows_replace_left_brace_by_tl
\vcenter to \l_tmpa_dim { \vfil }
\right.
\c_math_toggle_token
@@ -902,319 +891,319 @@
}
\hfil
}
- \skip_horizontal:n { - \l_@@_linewidth_dim }
- \vcenter { \box_use_drop:N \l_@@_halign_box }
+ \skip_horizontal:n { - \l__witharrows_linewidth_dim }
+ \vcenter { \box_use_drop:N \l__witharrows_halign_box }
}
- \dim_gzero_new:N \g_@@_right_x_dim
- \dim_gset_eq:NN \g_@@_right_x_dim \c_max_dim
- \tikzpicture [ @@_standard ]
- \int_step_variable:nNn \g_@@_line_int \l_tmpa_int
+ \dim_gzero_new:N \g__witharrows_right_x_dim
+ \dim_gset_eq:NN \g__witharrows_right_x_dim \c_max_dim
+ \tikzpicture [ __witharrows_standard ]
+ \int_step_variable:nNn \g__witharrows_line_int \l_tmpa_int
{
\cs_if_free:cTF
- { pgf@sh@ns@wa - \l_@@_prefix_str - \l_tmpa_int - v }
- { \@@_fatal:n { Inexistent~v-node } }
+ { pgf@sh@ns@wa - \l__witharrows_prefix_str - \l_tmpa_int - v }
+ { \__witharrows_fatal:n { Inexistent~v-node } }
{
\tikz@parse@node\pgfutil@firstofone ( \l_tmpa_int - v )
\dim_set:Nn \l_tmpa_dim \pgf@x
- \dim_compare:nNnT \l_tmpa_dim < \g_@@_right_x_dim
- { \dim_gset:Nn \g_@@_right_x_dim \l_tmpa_dim }
+ \dim_compare:nNnT \l_tmpa_dim < \g__witharrows_right_x_dim
+ { \dim_gset:Nn \g__witharrows_right_x_dim \l_tmpa_dim }
}
}
\endtikzpicture
- \@@_post_halign:
+ \__witharrows_post_halign:
\c_math_toggle_token \c_math_toggle_token
\group_end:
}
-\cs_new_protected:Npn \@@_if_in_last_col_of_disp:Nn #1 #2
+\cs_new_protected:Npn \__witharrows_if_in_last_col_of_disp:Nn #1 #2
{
- \bool_if:NTF \l_@@_in_WithArrows_bool
- { \@@_error:nn { Not~allowed~in~WithArrows } { #1 } }
+ \bool_if:NTF \l__witharrows_in_WithArrows_bool
+ { \__witharrows_error:nn { Not~allowed~in~WithArrows } { #1 } }
{
- \int_compare:nNnTF \g_@@_col_int < \l_@@_nb_cols_int
- { \@@_error:nn { Not~allowed~in~DispWithArrows } { #1 } }
+ \int_compare:nNnTF \g__witharrows_col_int < \l__witharrows_nb_cols_int
+ { \__witharrows_error:nn { Not~allowed~in~DispWithArrows } { #1 } }
{ #2 }
}
}
-\cs_new_protected:Npn \@@_scan_arrows:
+\cs_new_protected:Npn \__witharrows_scan_arrows:
{
\group_begin:
- \int_compare:nNnT \l_@@_pos_arrow_int = 7
+ \int_compare:nNnT \l__witharrows_pos_arrow_int = 7
{
- \@@_scan_arrows_i:
- \int_set:Nn \l_@@_pos_arrow_int 8
+ \__witharrows_scan_arrows_i:
+ \int_set:Nn \l__witharrows_pos_arrow_int 8
}
- \@@_scan_arrows_i:
+ \__witharrows_scan_arrows_i:
\group_end:
}
-\cs_new_protected:Npn \@@_scan_arrows_i:
+\cs_new_protected:Npn \__witharrows_scan_arrows_i:
{
- \int_zero_new:N \l_@@_first_arrow_of_group_int
- \int_zero_new:N \l_@@_first_line_of_group_int
- \int_zero_new:N \l_@@_last_line_of_group_int
- \seq_clear_new:N \l_@@_first_arrows_seq
- \seq_clear_new:N \l_@@_last_arrows_seq
- \bool_set_true:N \l_@@_new_group_bool
- \int_set:Nn \l_@@_arrow_int \c_one_int
- \int_until_do:nNnn \l_@@_arrow_int > \g_@@_arrow_int
+ \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_seq
+ \seq_clear_new:N \l__witharrows_last_arrows_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
{
\prop_get:cnN
- { g_@@_arrow _ \l_@@_prefix_str _ \int_use:N \l_@@_arrow_int _ prop }
+ { g__witharrows_arrow _ \l__witharrows_prefix_str _ \int_use:N \l__witharrows_arrow_int _ prop }
{ initial } \l_tmpa_tl
- \int_set:Nn \l_@@_initial_int \l_tmpa_tl
+ \int_set:Nn \l__witharrows_initial_int \l_tmpa_tl
\prop_get:cnN
- { g_@@_arrow _ \l_@@_prefix_str _ \int_use:N \l_@@_arrow_int _ prop }
+ { g__witharrows_arrow _ \l__witharrows_prefix_str _ \int_use:N \l__witharrows_arrow_int _ prop }
{ final } \l_tmpa_tl
- \int_set:Nn \l_@@_final_int \l_tmpa_tl
+ \int_set:Nn \l__witharrows_final_int \l_tmpa_tl
\prop_get:cnN
- { g_@@_arrow _ \l_@@_prefix_str _ \int_use:N \l_@@_arrow_int _ prop }
- { status } \l_@@_status_arrow_str
+ { g__witharrows_arrow _ \l__witharrows_prefix_str _ \int_use:N \l__witharrows_arrow_int _ prop }
+ { status } \l__witharrows_status_arrow_str
\prop_get:cnN
- { g_@@_arrow _ \l_@@_prefix_str _ \int_use:N \l_@@_arrow_int _ prop }
- { input-line } \l_@@_input_line_str
- \int_compare:nNnTF \l_@@_final_int > \g_@@_line_int
+ { 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
{
- \int_compare:nNnF \l_@@_pos_arrow_int = 8
- { \@@_error:n { Too~few~lines~for~an~arrow } }
+ \int_compare:nNnF \l__witharrows_pos_arrow_int = 8
+ { \__witharrows_error:n { Too~few~lines~for~an~arrow } }
}
- \@@_code_for_possible_arrow:
- \int_incr:N \l_@@_arrow_int
+ \__witharrows_code_for_possible_arrow:
+ \int_incr:N \l__witharrows_arrow_int
}
\bool_if:nT
{
- \int_compare_p:n { \l_@@_pos_arrow_int != 7 }
+ \int_compare_p:n { \l__witharrows_pos_arrow_int != 7 }
&&
- \int_compare_p:nNn \l_@@_first_arrow_of_group_int > 0
+ \int_compare_p:nNn \l__witharrows_first_arrow_of_group_int > 0
}
- { \@@_draw_arrows:nn \l_@@_first_arrow_of_group_int \g_@@_arrow_int }
+ { \__witharrows_draw_arrows:nn \l__witharrows_first_arrow_of_group_int \g__witharrows_arrow_int }
}
-\cs_new_protected:Npn \@@_code_for_possible_arrow:
+\cs_new_protected:Npn \__witharrows_code_for_possible_arrow:
{
\bool_if:nT
{
- \int_compare_p:nNn \l_@@_arrow_int > \c_one_int
+ \int_compare_p:nNn \l__witharrows_arrow_int > \c_one_int
&&
- ( \int_compare_p:n { \l_@@_initial_int > \l_@@_last_line_of_group_int }
+ ( \int_compare_p:n { \l__witharrows_initial_int > \l__witharrows_last_line_of_group_int }
&&
- \int_compare_p:n { \l_@@_pos_arrow_int != 7 }
+ \int_compare_p:n { \l__witharrows_pos_arrow_int != 7 }
||
- \str_if_eq_p:Vn \l_@@_status_arrow_str { new-group }
+ \str_if_eq_p:Vn \l__witharrows_status_arrow_str { new-group }
)
}
{
- \int_compare:nNnF \l_@@_first_arrow_of_group_int = \c_zero_int
+ \int_compare:nNnF \l__witharrows_first_arrow_of_group_int = \c_zero_int
{
- \@@_draw_arrows:nn
- \l_@@_first_arrow_of_group_int
- { \l_@@_arrow_int - 1 }
+ \__witharrows_draw_arrows:nn
+ \l__witharrows_first_arrow_of_group_int
+ { \l__witharrows_arrow_int - 1 }
}
- \bool_set_true:N \l_@@_new_group_bool
+ \bool_set_true:N \l__witharrows_new_group_bool
}
- \bool_if:nTF \l_@@_new_group_bool
+ \bool_if:nTF \l__witharrows_new_group_bool
{
- \bool_set_false:N \l_@@_new_group_bool
- \int_set_eq:NN \l_@@_first_arrow_of_group_int \l_@@_arrow_int
- \int_set_eq:NN \l_@@_first_line_of_group_int \l_@@_initial_int
- \int_set_eq:NN \l_@@_last_line_of_group_int \l_@@_final_int
- \seq_clear:N \l_@@_first_arrows_seq
- \seq_put_left:NV \l_@@_first_arrows_seq \l_@@_arrow_int
- \seq_clear:N \l_@@_last_arrows_seq
- \seq_put_left:NV \l_@@_last_arrows_seq \l_@@_arrow_int
- \int_compare:nT { \l_@@_pos_arrow_int != 8 }
- { \dim_set:Nn \l_@@_x_dim { - \c_max_dim } }
+ \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_seq
+ \seq_put_left:NV \l__witharrows_first_arrows_seq \l__witharrows_arrow_int
+ \seq_clear:N \l__witharrows_last_arrows_seq
+ \seq_put_left:NV \l__witharrows_last_arrows_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_@@_status_arrow_str { independent } }
+ { \str_if_eq_p:Vn \l__witharrows_status_arrow_str { independent } }
{
\int_compare:nT
- { \l_@@_initial_int = \l_@@_first_line_of_group_int }
- { \seq_put_left:NV \l_@@_first_arrows_seq \l_@@_arrow_int }
- \int_compare:nNnTF \l_@@_final_int > \l_@@_last_line_of_group_int
+ { \l__witharrows_initial_int = \l__witharrows_first_line_of_group_int }
+ { \seq_put_left:NV \l__witharrows_first_arrows_seq \l__witharrows_arrow_int }
+ \int_compare:nNnTF \l__witharrows_final_int > \l__witharrows_last_line_of_group_int
{
- \int_set_eq:NN \l_@@_last_line_of_group_int \l_@@_final_int
- \seq_clear:N \l_@@_last_arrows_seq
- \seq_put_left:NV \l_@@_last_arrows_seq \l_@@_arrow_int
+ \int_set_eq:NN \l__witharrows_last_line_of_group_int \l__witharrows_final_int
+ \seq_clear:N \l__witharrows_last_arrows_seq
+ \seq_put_left:NV \l__witharrows_last_arrows_seq \l__witharrows_arrow_int
}
{
- \int_compare:nNnT \l_@@_final_int = \l_@@_last_line_of_group_int
- { \seq_put_left:NV \l_@@_last_arrows_seq \l_@@_arrow_int }
+ \int_compare:nNnT \l__witharrows_final_int = \l__witharrows_last_line_of_group_int
+ { \seq_put_left:NV \l__witharrows_last_arrows_seq \l__witharrows_arrow_int }
}
}
}
- \bool_if:nF { \str_if_eq_p:Vn \l_@@_status_arrow_str { independent } }
+ \bool_if:nF { \str_if_eq_p:Vn \l__witharrows_status_arrow_str { independent } }
{
- \int_compare:nT { \l_@@_pos_arrow_int != 8 }
- { \@@_update_x:nn \l_@@_initial_int \l_@@_final_int }
+ \int_compare:nT { \l__witharrows_pos_arrow_int != 8 }
+ { \__witharrows_update_x:nn \l__witharrows_initial_int \l__witharrows_final_int }
}
}
\cs_generate_variant:Nn \keys_set:nn { n o }
-\cs_new_protected:Npn \@@_keys_set:
+\cs_new_protected:Npn \__witharrows_keys_set:
{ \keys_set_known:no { WithArrows / Arrow / SecondPass } }
-\cs_new_protected:Npn \@@_draw_arrows:nn #1 #2
+\cs_new_protected:Npn \__witharrows_draw_arrows:nn #1 #2
{
\group_begin:
- \int_zero_new:N \l_@@_first_arrow_int
- \int_set:Nn \l_@@_first_arrow_int { #1 }
- \int_zero_new:N \l_@@_last_arrow_int
- \int_set:Nn \l_@@_last_arrow_int { #2 }
- \int_set:Nn \l_@@_arrow_int \l_@@_first_arrow_int
- \int_until_do:nNnn \l_@@_arrow_int > \l_@@_last_arrow_int
+ \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
{
\prop_get:cnN
- { g_@@_arrow _ \l_@@_prefix_str _ \int_use:N \l_@@_arrow_int _ prop }
+ { g__witharrows_arrow _ \l__witharrows_prefix_str _ \int_use:N \l__witharrows_arrow_int _ prop }
{ initial } \l_tmpa_tl
- \int_set:Nn \l_@@_initial_int \l_tmpa_tl
+ \int_set:Nn \l__witharrows_initial_int \l_tmpa_tl
\prop_get:cnN
- { g_@@_arrow _ \l_@@_prefix_str _ \int_use:N \l_@@_arrow_int _ prop }
+ { g__witharrows_arrow _ \l__witharrows_prefix_str _ \int_use:N \l__witharrows_arrow_int _ prop }
{ final } \l_tmpa_tl
- \int_set:Nn \l_@@_final_int \l_tmpa_tl
- \int_compare:nT { \l_@@_final_int <= \g_@@_line_int } \@@_draw_arrows_i:
- \int_incr:N \l_@@_arrow_int
+ \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
}
\group_end:
}
-\cs_new_protected:Npn \@@_draw_arrows_i:
+\cs_new_protected:Npn \__witharrows_draw_arrows_i:
{
\group_begin:
\prop_get:cnN
- { g_@@_arrow _\l_@@_prefix_str _ \int_use:N \l_@@_arrow_int _ prop }
+ { g__witharrows_arrow _\l__witharrows_prefix_str _ \int_use:N \l__witharrows_arrow_int _ prop }
{ options } \l_tmpa_tl
- \str_clear_new:N \l_@@_previous_key_str
+ \str_clear_new:N \l__witharrows_previous_key_str
\exp_args:NNo \exp_args:No
- \@@_keys_set: { \l_tmpa_tl , tikz = { xshift = \l_@@_xoffset_dim } }
- \bool_set_false:N \l_@@_initial_r_bool
- \bool_set_false:N \l_@@_final_r_bool
- \int_case:nn \l_@@_pos_arrow_int
+ \__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
{
- 0 { \bool_set_true:N \l_@@_final_r_bool }
- 2 { \bool_set_true:N \l_@@_initial_r_bool }
+ 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_@@_initial_r_bool
- \bool_set_true:N \l_@@_final_r_bool
+ \bool_set_true:N \l__witharrows_initial_r_bool
+ \bool_set_true:N \l__witharrows_final_r_bool
}
}
- \int_compare:nNnT \l_@@_pos_arrow_int = 5
+ \int_compare:nNnT \l__witharrows_pos_arrow_int = 5
{
- \dim_set:Nn \l_@@_x_dim { - \c_max_dim }
- \@@_update_x:nn \l_@@_initial_int \l_@@_final_int
+ \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_@@_initial_tl
+ \tl_set:Nx \l__witharrows_initial_tl
{
- \int_use:N \l_@@_initial_int - \bool_if:NTF \l_@@_initial_r_bool rl
+ \int_use:N \l__witharrows_initial_int - \bool_if:NTF \l__witharrows_initial_r_bool rl
.south
}
- \tl_set:Nx \l_@@_final_tl
- { \int_use:N \l_@@_final_int - \bool_if:NTF \l_@@_final_r_bool rl .north }
+ \tl_set:Nx \l__witharrows_final_tl
+ { \int_use:N \l__witharrows_final_int - \bool_if:NTF \l__witharrows_final_r_bool rl .north }
\prop_get:cnN
- { g_@@_arrow _ \l_@@_prefix_str _ \int_use:N \l_@@_arrow_int _ prop }
+ { g__witharrows_arrow _ \l__witharrows_prefix_str _ \int_use:N \l__witharrows_arrow_int _ prop }
{ label }
\l_tmpa_tl
- \seq_if_in:NxTF \l_@@_first_arrows_seq
- { \int_use:N \l_@@_arrow_int }
+ \seq_if_in:NxTF \l__witharrows_first_arrows_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_@@_last_arrows_seq
- { \int_use:N \l_@@_arrow_int }
+ \seq_if_in:NxTF \l__witharrows_last_arrows_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_@@_pos_arrow_int = 5
+ \int_compare:nNnT \l__witharrows_pos_arrow_int = 5
{
\bool_set_true:N \l_tmpa_bool
\bool_set_true:N \l_tmpb_bool
}
- \dim_gzero_new:N \g_@@_x_initial_dim
- \dim_gzero_new:N \g_@@_x_final_dim
- \dim_gzero_new:N \g_@@_y_initial_dim
- \dim_gzero_new:N \g_@@_y_final_dim
- \tikzpicture [ @@_standard ]
- \tikz@scan@one@point \pgfutil@firstofone ( \l_@@_initial_tl )
- \dim_gset:Nn \g_@@_x_initial_dim \pgf@x
- \dim_gset:Nn \g_@@_y_initial_dim \pgf@y
- \tikz@scan@one@point \pgfutil@firstofone ( \l_@@_final_tl )
- \dim_gset:Nn \g_@@_x_final_dim \pgf@x
- \dim_gset:Nn \g_@@_y_final_dim \pgf@y
+ \dim_gzero_new:N \g__witharrows_x_initial_dim
+ \dim_gzero_new:N \g__witharrows_x_final_dim
+ \dim_gzero_new:N \g__witharrows_y_initial_dim
+ \dim_gzero_new:N \g__witharrows_y_final_dim
+ \tikzpicture [ __witharrows_standard ]
+ \tikz@scan@one@point \pgfutil@firstofone ( \l__witharrows_initial_tl )
+ \dim_gset:Nn \g__witharrows_x_initial_dim \pgf@x
+ \dim_gset:Nn \g__witharrows_y_initial_dim \pgf@y
+ \tikz@scan@one@point \pgfutil@firstofone ( \l__witharrows_final_tl )
+ \dim_gset:Nn \g__witharrows_x_final_dim \pgf@x
+ \dim_gset:Nn \g__witharrows_y_final_dim \pgf@y
\endtikzpicture
\bool_if:nTF
- { \dim_compare_p:nNn { \g_@@_y_initial_dim - \g_@@_y_final_dim }
- > \l_@@_max_length_of_arrow_dim
+ { \dim_compare_p:nNn { \g__witharrows_y_initial_dim - \g__witharrows_y_final_dim }
+ > \l__witharrows_max_length_of_arrow_dim
&&
- \int_compare_p:nNn { \l_@@_final_int - \l_@@_initial_int } = 1
+ \int_compare_p:nNn { \l__witharrows_final_int - \l__witharrows_initial_int } = 1
}
{
\tl_gset:Nx \g_tmpa_tl
{
- \int_compare:nNnTF \l_@@_pos_arrow_int < 5
- { \dim_use:N \g_@@_x_initial_dim }
- { \dim_use:N \l_@@_x_dim } ,
+ \int_compare:nNnTF \l__witharrows_pos_arrow_int < 5
+ { \dim_use:N \g__witharrows_x_initial_dim }
+ { \dim_use:N \l__witharrows_x_dim } ,
\dim_eval:n
{
- ( \g_@@_y_initial_dim + \g_@@_y_final_dim ) / 2
- + ( \l_@@_max_length_of_arrow_dim / 2 )
+ ( \g__witharrows_y_initial_dim + \g__witharrows_y_final_dim ) / 2
+ + ( \l__witharrows_max_length_of_arrow_dim / 2 )
}
}
\tl_gset:Nx \g_tmpb_tl
{
- \int_compare:nNnTF \l_@@_pos_arrow_int < 5
- { \dim_use:N \g_@@_x_final_dim }
- { \dim_use:N \l_@@_x_dim } ,
+ \int_compare:nNnTF \l__witharrows_pos_arrow_int < 5
+ { \dim_use:N \g__witharrows_x_final_dim }
+ { \dim_use:N \l__witharrows_x_dim } ,
\dim_eval:n
{
- ( \g_@@_y_initial_dim + \g_@@_y_final_dim ) / 2
- - ( \l_@@_max_length_of_arrow_dim / 2 )
+ ( \g__witharrows_y_initial_dim + \g__witharrows_y_final_dim ) / 2
+ - ( \l__witharrows_max_length_of_arrow_dim / 2 )
}
}
}
{
\tl_gset:Nx \g_tmpa_tl
{
- \int_compare:nNnTF \l_@@_pos_arrow_int < 5
- { \dim_use:N \g_@@_x_initial_dim }
- { \dim_use:N \l_@@_x_dim } ,
+ \int_compare:nNnTF \l__witharrows_pos_arrow_int < 5
+ { \dim_use:N \g__witharrows_x_initial_dim }
+ { \dim_use:N \l__witharrows_x_dim } ,
\bool_if:NTF \l_tmpa_bool
- { \dim_eval:n { \g_@@_y_initial_dim + \l_@@_start_adjust_dim } }
- { \dim_use:N \g_@@_y_initial_dim }
+ { \dim_eval:n { \g__witharrows_y_initial_dim + \l__witharrows_start_adjust_dim } }
+ { \dim_use:N \g__witharrows_y_initial_dim }
}
\tl_gset:Nx \g_tmpb_tl
{
- \int_compare:nNnTF \l_@@_pos_arrow_int < 5
- { \dim_use:N \g_@@_x_final_dim }
- { \dim_use:N \l_@@_x_dim } ,
+ \int_compare:nNnTF \l__witharrows_pos_arrow_int < 5
+ { \dim_use:N \g__witharrows_x_final_dim }
+ { \dim_use:N \l__witharrows_x_dim } ,
\bool_if:NTF \l_tmpb_bool
- { \dim_eval:n { \g_@@_y_final_dim - \l_@@_end_adjust_dim } }
- { \dim_use:N \g_@@_y_final_dim }
+ { \dim_eval:n { \g__witharrows_y_final_dim - \l__witharrows_end_adjust_dim } }
+ { \dim_use:N \g__witharrows_y_final_dim }
}
}
- \@@_draw_arrow:nno \g_tmpa_tl \g_tmpb_tl \l_tmpa_tl
+ \__witharrows_draw_arrow:nno \g_tmpa_tl \g_tmpb_tl \l_tmpa_tl
\group_end:
}
-\cs_new_protected:Npn \@@_def_function_tmpa:n #1
+\cs_new_protected:Npn \__witharrows_def_function_tmpa:n #1
{
- \cs_set:Npn \@@_tmpa:nnn ##1 ##2 ##3
+ \cs_set:Npn \__witharrows_tmpa:nnn ##1 ##2 ##3
{
\tikzpicture
[
- @@_standard ,
+ __witharrows_standard ,
every~path / .style = WithArrows / arrow
]
#1
\endtikzpicture
}
}
-\cs_new_protected:Npn \@@_draw_arrow:nnn #1 #2 #3
+\cs_new_protected:Npn \__witharrows_draw_arrow:nnn #1 #2 #3
{
- \bool_if:nT { \l_@@_wrap_lines_bool && \l_@@_in_DispWithArrows_bool }
- { \tl_set_eq:NN \l_@@_tikz_code_tl \c_@@_tikz_code_wrap_lines_tl }
- \exp_args:NV \@@_def_function_tmpa:n \l_@@_tikz_code_tl
- \@@_tmpa: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 }
}
-\cs_generate_variant:Nn \@@_draw_arrow:nnn { n n o }
-\tl_const:Nn \c_@@_tikz_code_wrap_lines_tl
+\cs_generate_variant:Nn \__witharrows_draw_arrow:nnn { n n o }
+\tl_const:Nn \c__witharrows_tikz_code_wrap_lines_tl
{
- \draw ( #1 ) to node ( @@_label ) { } ( #2 ) ;
- \tikz@parse@node \pgfutil@firstofone ( @@_label.west )
+ \draw ( #1 ) to node ( __witharrows_label ) { } ( #2 ) ;
+ \tikz@parse@node \pgfutil@firstofone ( __witharrows_label.west )
\dim_set:Nn \l_tmpa_dim
- { \g_@@_right_x_dim - \pgf@x - \pgfkeysvalueof { / pgf / inner~xsep } }
+ { \g__witharrows_right_x_dim - \pgf@x - \pgfkeysvalueof { / pgf / inner~xsep } }
\path \pgfextra { \tl_gset:Nx \g_tmpa_tl \tikz@text@width } ;
\tl_if_empty:NF \g_tmpa_tl
{
@@ -1224,92 +1213,92 @@
}
\dim_compare:nNnT \l_tmpa_dim > \c_zero_dim
{
- \path ( @@_label.west )
+ \path ( __witharrows_label.west )
node [ anchor = west , text~width = \dim_use:N \l_tmpa_dim ]
{ #3 } ;
}
}
-\cs_new_protected:Npn \@@_update_x:nn #1 #2
+\cs_new_protected:Npn \__witharrows_update_x:nn #1 #2
{
\int_step_inline:nnn { #1 } { #2 }
{
- \tikzpicture [ @@_standard ]
+ \tikzpicture [ __witharrows_standard ]
\tikz@scan@one@point \pgfutil@firstofone ( ##1 - l )
- \dim_gset:Nn \g_tmpa_dim { \dim_max:nn \l_@@_x_dim \pgf@x }
+ \dim_gset:Nn \g_tmpa_dim { \dim_max:nn \l__witharrows_x_dim \pgf@x }
\endtikzpicture
- \dim_set_eq:NN \l_@@_x_dim \g_tmpa_dim
+ \dim_set_eq:NN \l__witharrows_x_dim \g_tmpa_dim
}
}
-\cs_new:Npn \WithArrowsLastEnv { \int_use:N \g_@@_last_env_int }
+\cs_new:Npn \WithArrowsLastEnv { \int_use:N \g__witharrows_last_env_int }
\keys_define:nn { WithArrows / Arrow / code-after }
{
tikz .code:n =
\tikzset { WithArrows / arrow / .append~style = { #1 } } ,
tikz .value_required:n = true ,
rr .value_forbidden:n = true ,
- rr .code:n = \@@_fix_pos_option:n 0 ,
+ rr .code:n = \__witharrows_fix_pos_option:n 0 ,
ll .value_forbidden:n = true,
- ll .code:n = \@@_fix_pos_option:n 1 ,
+ ll .code:n = \__witharrows_fix_pos_option:n 1 ,
rl .value_forbidden:n = true ,
- rl .code:n = \@@_fix_pos_option:n 2 ,
+ rl .code:n = \__witharrows_fix_pos_option:n 2 ,
lr .value_forbidden:n = true ,
- lr .code:n = \@@_fix_pos_option:n 3 ,
+ lr .code:n = \__witharrows_fix_pos_option:n 3 ,
v .value_forbidden:n = true ,
- v .code:n = \@@_fix_pos_option:n 4 ,
- tikz-code .tl_set:N = \l_@@_tikz_code_tl ,
+ v .code:n = \__witharrows_fix_pos_option:n 4 ,
+ tikz-code .tl_set:N = \l__witharrows_tikz_code_tl ,
tikz-code .value_required:n = true ,
- xoffset .dim_set:N = \l_@@_xoffset_dim ,
+ xoffset .dim_set:N = \l__witharrows_xoffset_dim ,
xoffset .value_required:n = true ,
unknown .code:n =
- \@@_sort_seq:N \l_@@_options_Arrow_code_after_seq
- \@@_error:n { Unknown~option~Arrow~in~code-after }
+ \__witharrows_sort_seq:N \l__witharrows_options_Arrow_code_after_seq
+ \__witharrows_error:n { Unknown~option~Arrow~in~code-after }
}
-\seq_new:N \l_@@_options_Arrow_code_after_seq
-\@@_set_seq_of_str_from_clist:Nn \l_@@_options_Arrow_code_after_seq
+\seq_new:N \l__witharrows_options_Arrow_code_after_seq
+\__witharrows_set_seq_of_str_from_clist:Nn \l__witharrows_options_Arrow_code_after_seq
{ ll, lr, rl, rr, tikz, tikz-code, v, x, offset }
-\cs_new_protected:Npn \@@_Arrow_code_after
+\cs_new_protected:Npn \__witharrows_Arrow_code_after
{
\peek_meaning:NTF [
- { \@@_Arrow_code_after_i }
- { \@@_Arrow_code_after_i [ ] }
+ { \__witharrows_Arrow_code_after_i }
+ { \__witharrows_Arrow_code_after_i [ ] }
}
-\cs_new_protected:Npn \@@_Arrow_code_after_i [ #1 ] #2 #3 #4
+\cs_new_protected:Npn \__witharrows_Arrow_code_after_i [ #1 ] #2 #3 #4
{
\peek_meaning:NTF [
- { \@@_Arrow_code_after_ii [ #1 ] { #2 } { #3 } { #4 } }
- { \@@_Arrow_code_after_ii [ #1 ] { #2 } { #3 } { #4 } [ ] }
+ { \__witharrows_Arrow_code_after_ii [ #1 ] { #2 } { #3 } { #4 } }
+ { \__witharrows_Arrow_code_after_ii [ #1 ] { #2 } { #3 } { #4 } [ ] }
}
-\cs_new_protected:Npn \@@_Arrow_code_after_ii [ #1 ] #2 #3 #4 [ #5 ]
+\cs_new_protected:Npn \__witharrows_Arrow_code_after_ii [ #1 ] #2 #3 #4 [ #5 ]
{
- \int_set:Nn \l_@@_pos_arrow_int 1
- \str_clear_new:N \l_@@_previous_key_str
+ \int_set:Nn \l__witharrows_pos_arrow_int 1
+ \str_clear_new:N \l__witharrows_previous_key_str
\group_begin:
\keys_set:nn { WithArrows / Arrow / code-after }
- { #1, #5, tikz = { xshift = \l_@@_xoffset_dim } }
- \bool_set_false:N \l_@@_initial_r_bool
- \bool_set_false:N \l_@@_final_r_bool
- \int_case:nn \l_@@_pos_arrow_int
+ { #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
{
0
{
- \bool_set_true:N \l_@@_initial_r_bool
- \bool_set_true:N \l_@@_final_r_bool
+ \bool_set_true:N \l__witharrows_initial_r_bool
+ \bool_set_true:N \l__witharrows_final_r_bool
}
- 2 { \bool_set_true:N \l_@@_initial_r_bool }
- 3 { \bool_set_true:N \l_@@_final_r_bool }
+ 2 { \bool_set_true:N \l__witharrows_initial_r_bool }
+ 3 { \bool_set_true:N \l__witharrows_final_r_bool }
}
\tl_if_eq:nnTF { #2 } { #3 }
- { \@@_error:nn { Both~lines~are~equal } { #2 } }
+ { \__witharrows_error:nn { Both~lines~are~equal } { #2 } }
{
- \cs_if_free:cTF { pgf@sh@ns@wa - \l_@@_prefix_str - #2 - l }
- { \@@_error:nx { Wrong~line~in~Arrow } { #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_@@_prefix_str - #3 - l }
- { \@@_error:nx { Wrong~line~in~Arrow } { #3 } }
+ \cs_if_free:cTF { pgf@sh@ns@wa - \l__witharrows_prefix_str - #3 - l }
+ { \__witharrows_error:nx { Wrong~line~in~Arrow } { #3 } }
{
- \int_compare:nNnTF \l_@@_pos_arrow_int = 4
+ \int_compare:nNnTF \l__witharrows_pos_arrow_int = 4
{
- \tikzpicture [ @@_standard ]
+ \tikzpicture [ __witharrows_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
@@ -1323,42 +1312,42 @@
\endtikzpicture
}
{
- \tikzpicture [ @@_standard ]
+ \tikzpicture [ __witharrows_standard ]
\tikz@scan@one@point \pgfutil@firstofone
- ( #2-\bool_if:NTF\l_@@_initial_r_bool rl .south )
+ ( #2-\bool_if:NTF\l__witharrows_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_@@_final_r_bool rl .north )
+ ( #3-\bool_if:NTF\l__witharrows_final_r_bool rl .north )
\tl_gset:Nx \g_tmpb_tl
{ \dim_use:N \pgf@x , \dim_use:N \pgf@y }
\endtikzpicture
}
- \@@_draw_arrow:nnn \g_tmpa_tl \g_tmpb_tl { #4 }
+ \__witharrows_draw_arrow:nnn \g_tmpa_tl \g_tmpb_tl { #4 }
}
}
}
\group_end:
}
-\cs_new_protected:Npn \@@_MultiArrow:nn #1 #2
+\cs_new_protected:Npn \__witharrows_MultiArrow:nn #1 #2
{
\exp_args:Nnx
\regex_match:nnTF
{ \A \d+ (\,\d+)* ( \, \.\.\. (\,\d+)+ )* \Z }
{ #1 }
- { \@@_MultiArrow_i:nn { #1 } { #2 } }
- { \@@_error:nx { Invalid~specification~for~MultiArrow } { #1 } }
+ { \__witharrows_MultiArrow_i:nn { #1 } { #2 } }
+ { \__witharrows_error:nx { Invalid~specification~for~MultiArrow } { #1 } }
}
-\cs_new_protected:Npn \@@_MultiArrow_i:nn #1 #2
+\cs_new_protected:Npn \__witharrows_MultiArrow_i:nn #1 #2
{
\foreach \x in { #1 }
{
- \cs_if_free:cTF { pgf@sh@ns@wa - \l_@@_prefix_str - \x - l }
- { \@@_error:nx { Wrong~line~specification~in~MultiArrow } \x }
+ \cs_if_free:cTF { pgf@sh@ns@wa - \l__witharrows_prefix_str - \x - l }
+ { \__witharrows_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 }
- { \@@_error:n { Too~small~specification~for~MultiArrow } }
+ { \__witharrows_error:n { Too~small~specification~for~MultiArrow } }
{
\clist_sort:Nn \g_tmpa_clist
{
@@ -1369,52 +1358,52 @@
\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 \@@_MultiArrow_i:n \g_tmpa_clist
+ \exp_args:NV \__witharrows_MultiArrow_i:n \g_tmpa_clist
\tikzpicture
[
- @@_standard ,
+ __witharrows_standard ,
every~path / .style = { WithArrows / arrow }
]
- \draw [<->] ([xshift = \l_@@_xoffset_dim]\l_tmpa_tl-r.south)
+ \draw [<->] ([xshift = \l__witharrows_xoffset_dim]\l_tmpa_tl-r.south)
-- ++(5mm,0)
- -- node (@@_label) {}
- ([xshift = \l_@@_xoffset_dim+5mm]\l_tmpb_tl-r.south)
- -- ([xshift = \l_@@_xoffset_dim]\l_tmpb_tl-r.south) ;
- \tikz@parse@node \pgfutil@firstofone (@@_label.west)
+ -- 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_@@_wrap_lines_bool && \l_@@_in_DispWithArrows_bool }
+ \bool_if:nT { \l__witharrows_wrap_lines_bool && \l__witharrows_in_DispWithArrows_bool }
{
\dim_set:Nn \l_tmpb_dim
- { \g_@@_right_x_dim - \pgf@x - 0.3333 em }
+ { \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 (@@_label.west)
+ \path (__witharrows_label.west)
node [ anchor = west, text~width = \dim_use:N \l_tmpa_dim ] { #2 } ;
\endtikzpicture
}
}
-\cs_new_protected:Npn \@@_MultiArrow_i:n #1
+\cs_new_protected:Npn \__witharrows_MultiArrow_i:n #1
{
\tikzpicture
[
- @@_standard ,
+ __witharrows_standard ,
every~path / .style = { WithArrows / arrow }
]
\foreach \k in { #1 }
{
\draw [ <- ]
- ( [xshift = \l_@@_xoffset_dim]\k-r.south ) -- ++(5mm,0) ;
+ ( [xshift = \l__witharrows_xoffset_dim]\k-r.south ) -- ++(5mm,0) ;
} ;
\endtikzpicture
}
-\str_const:Nn \c_@@_option_ignored_str
+\str_const:Nn \c__witharrows_option_ignored_str
{ If~you~go~on,~this~option~will~be~ignored. }
-\str_const:Nn \c_@@_command_ignored_str
+\str_const:Nn \c__witharrows_command_ignored_str
{ If~you~go~on,~this~command~will~be~ignored. }
-\@@_msg_new:nn { Bad~value~for~replace~brace~by }
+\__witharrows_msg_new:nn { Bad~value~for~replace~brace~by }
{
Bad~value~for~the~option~'\l_keys_key_tl'.~The~value~must~begin~
with~an~extensible~left~delimiter.~The~possible~values~are:~.,
@@ -1424,227 +1413,227 @@
\token_to_str:N \lfloor\ and~\token_to_str:N \lceil\
(and~\token_to_str:N \lvert\ and~\token_to_str:N \lVert\
if~amsmath~or~unicode-math~is~loaded~in~LaTeX).\\
- \c_@@_option_ignored_str
+ \c__witharrows_option_ignored_str
}
-\@@_msg_new:nn { option~of~cr~negative }
+\__witharrows_msg_new:nn { option~of~cr~negative }
{
The~argument~of~the~command~\token_to_str:N\\~
- should~be~positive~in~the~row~\int_use:N \g_@@_line_int\
- of~your~environment~\{\l_@@_type_env_str\}.\\
- \c_@@_option_ignored_str
+ should~be~positive~in~the~row~\int_use:N \g__witharrows_line_int\
+ of~your~environment~\{\l__witharrows_type_env_str\}.\\
+ \c__witharrows_option_ignored_str
}
-\@@_msg_new:nn { omit~probably~used }
+\__witharrows_msg_new:nn { omit~probably~used }
{
There~is~a~problem.~Maybe~you~have~used~a~command~
- \token_to_str:N\omit\ in~the~line~\int_use:N \g_@@_line_int\
- (or~another~line)~of~your~environment~\{\l_@@_type_env_str\}.\\
+ \token_to_str:N\omit\ in~the~line~\int_use:N \g__witharrows_line_int\
+ (or~another~line)~of~your~environment~\{\l__witharrows_type_env_str\}.\\
You~can~go~on~but~you~may~have~others~errors.
}
-\@@_msg_new:nn { Invalid~option~format }
+\__witharrows_msg_new:nn { Invalid~option~format }
{
The~key~'format'~should~contain~only~letters~r,~c~and~l~and~
must~not~be~empty.\\
- \c_@@_option_ignored_str
+ \c__witharrows_option_ignored_str
}
-\@@_msg_new:nn { Value~for~a~key }
+\__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.
}
-\@@_msg_new:nnn { Unknown~option~in~Arrow }
+\__witharrows_msg_new:nnn { Unknown~option~in~Arrow }
{
The~key~'\l_keys_key_tl'~is~unknown~for~the~command~
- \l_@@_string_Arrow_for_msg_str\ in~the~row~
- \int_use:N \g_@@_line_int\ of~your~environment~
- \{\l_@@_type_env_str\}. \l_tmpa_str \\
- \c_@@_option_ignored_str \\
+ \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\}. \l_tmpa_str \\
+ \c__witharrows_option_ignored_str \\
For~a~list~of~the~available~keys,~type~H~<return>.
}
{
The~available~keys~are~(in~alphabetic~order):~
- \seq_use:Nnnn \l_@@_options_Arrow_seq {~and~} {,~} {~and~}.
+ \seq_use:Nnnn \l__witharrows_options_Arrow_seq {~and~} {,~} {~and~}.
}
-\@@_msg_new:nnn { Unknown~option~WithArrows }
+\__witharrows_msg_new:nnn { Unknown~option~WithArrows }
{
- The~key~'\l_keys_key_tl'~is~unknown~in~\{\l_@@_type_env_str\}. \\
- \c_@@_option_ignored_str \\
+ The~key~'\l_keys_key_tl'~is~unknown~in~\{\l__witharrows_type_env_str\}. \\
+ \c__witharrows_option_ignored_str \\
For~a~list~of~the~available~keys,~type~H~<return>.
}
{
The~available~keys~are~(in~alphabetic~order):~
- \seq_use:Nnnn \l_@@_options_WithArrows_seq {~and~} {,~} {~and~}.
+ \seq_use:Nnnn \l__witharrows_options_WithArrows_seq {~and~} {,~} {~and~}.
}
-\@@_msg_new:nnn { Unknown~option~DispWithArrows }
+\__witharrows_msg_new:nnn { Unknown~option~DispWithArrows }
{
- The~key~'\l_keys_key_tl'~is~unknown~in~\{\l_@@_type_env_str\}. \\
- \c_@@_option_ignored_str \\
+ The~key~'\l_keys_key_tl'~is~unknown~in~\{\l__witharrows_type_env_str\}. \\
+ \c__witharrows_option_ignored_str \\
For~a~list~of~the~available~keys,~type~H~<return>.
}
{
The~available~keys~are~(in~alphabetic~order):~
- \seq_use:Nnnn \l_@@_options_DispWithArrows_seq {~and~} {,~} {~and~}.
+ \seq_use:Nnnn \l__witharrows_options_DispWithArrows_seq {~and~} {,~} {~and~}.
}
-\@@_msg_new:nnn { Unknown~option~WithArrowsOptions }
+\__witharrows_msg_new:nnn { Unknown~option~WithArrowsOptions }
{
The~key~'\l_keys_key_tl'~is~unknown~in~
\token_to_str:N \WithArrowsOptions. \\
- \c_@@_option_ignored_str \\
+ \c__witharrows_option_ignored_str \\
For~a~list~of~the~available~keys,~type~H~<return>.
}
{
The~available~keys~are~(in~alphabetic~order):~
- \seq_use:Nnnn \l_@@_options_WithArrowsOptions_seq {~and~} {,~} {~and~}.
+ \seq_use:Nnnn \l__witharrows_options_WithArrowsOptions_seq {~and~} {,~} {~and~}.
}
-\@@_msg_new:nnn { Unknown~option~Arrow~in~code-after }
+\__witharrows_msg_new:nnn { Unknown~option~Arrow~in~code-after }
{
The~key~'\l_keys_key_tl'~is~unknown~in~
\token_to_str:N \Arrow\ in~code-after. \\
- \c_@@_option_ignored_str \\
+ \c__witharrows_option_ignored_str \\
For~a~list~of~the~available~keys,~type~H~<return>.
}
{
The~available~keys~are~(in~alphabetic~order):~
- \seq_use:Nnnn \l_@@_options_Arrow_code_after_seq {~and~} {,~} {~and~}.
+ \seq_use:Nnnn \l__witharrows_options_Arrow_code_after_seq {~and~} {,~} {~and~}.
}
-\@@_msg_new:nn { Too~much~columns~in~WithArrows }
+\__witharrows_msg_new:nn { Too~much~columns~in~WithArrows }
{
- Your~environment~\{\l_@@_type_env_str\}~has~\int_use:N
- \l_@@_nb_cols_int\ columns~and~you~try~to~use~one~more.~
+ Your~environment~\{\l__witharrows_type_env_str\}~has~\int_use:N
+ \l__witharrows_nb_cols_int\ columns~and~you~try~to~use~one~more.~
Maybe~you~have~forgotten~a~\c_backslash_str\c_backslash_str.~
If~you~really~want~to~use~more~columns~(after~the~arrows)~you~should~use~
the~option~'more-columns'~at~a~global~level~or~for~an~environment. \\
However,~you~can~go~one~for~this~time.
}
-\@@_msg_new:nn { Too~much~columns~in~DispWithArrows }
+\__witharrows_msg_new:nn { Too~much~columns~in~DispWithArrows }
{
- Your~environment~\{\l_@@_type_env_str\}~has~\int_use:N
- \l_@@_nb_cols_int\ columns~and~you~try~to~use~one~more.~
+ Your~environment~\{\l__witharrows_type_env_str\}~has~\int_use:N
+ \l__witharrows_nb_cols_int\ columns~and~you~try~to~use~one~more.~
Maybe~you~have~forgotten~a~\c_backslash_str\c_backslash_str\
- at~the~end~of~row~\int_use:N \g_@@_line_int. \\
+ at~the~end~of~row~\int_use:N \g__witharrows_line_int. \\
This~error~is~fatal.
}
-\@@_msg_new:nn { Negative~jump }
+\__witharrows_msg_new:nn { Negative~jump }
{
You~can't~use~a~negative~value~for~the~option~'jump'~of~command~
- \l_@@_string_Arrow_for_msg_str\
- in~the~row~\int_use:N \g_@@_line_int\
- of~your~environment~\{\l_@@_type_env_str\}.~
+ \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_@@_option_ignored_str
+ \c__witharrows_option_ignored_str
}
-\@@_msg_new:nn { new-group~without~groups }
+\__witharrows_msg_new:nn { new-group~without~groups }
{
You~can't~use~the~option~'new-group'~for~the~command~
- \l_@@_string_Arrow_for_msg_str\
+ \l__witharrows_string_Arrow_for_msg_str\
because~you~are~not~in~'groups'~mode.~Try~to~use~the~option~
- 'groups'~in~your~environment~\{\l_@@_type_env_str\}. \\
- \c_@@_option_ignored_str
+ 'groups'~in~your~environment~\{\l__witharrows_type_env_str\}. \\
+ \c__witharrows_option_ignored_str
}
-\@@_msg_new:nn
+\__witharrows_msg_new:nn
{ Too~few~lines~for~an~arrow }
{
- Line~\l_@@_input_line_str\
- :~an~arrow~specified~in~the~row~\int_use:N \l_@@_initial_int\
- of~your~environment~\{\l_@@_type_env_str\}~can't~be~drawn~
+ 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.
}
-\@@_msg_new:nn { WithArrows~outside~math~mode }
+\__witharrows_msg_new:nn { WithArrows~outside~math~mode }
{
- The~environment~\{\l_@@_type_env_str\}~should~be~used~only~in~math~mode~
+ The~environment~\{\l__witharrows_type_env_str\}~should~be~used~only~in~math~mode~
like~the~environment~\{aligned\}~of~amsmath. \\
Nevertheless,~you~can~go~on.
}
-\@@_msg_new:nn { DispWithArrows~in~math~mode }
+\__witharrows_msg_new:nn { DispWithArrows~in~math~mode }
{
- The~environment~\{\l_@@_type_env_str\}~should~be~used~only~outside~math~
+ The~environment~\{\l__witharrows_type_env_str\}~should~be~used~only~outside~math~
mode~like~the~environment~\{align\}~of~amsmath. \\
This~error~is~fatal.
}
-\@@_msg_new:nn { Incompatible~options~in~Arrow }
+\__witharrows_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_@@_previous_key_str'~set~in~the~same~command~
- \l_@@_string_Arrow_for_msg_str. \\
- \c_@@_option_ignored_str
+ '\l__witharrows_previous_key_str'~set~in~the~same~command~
+ \l__witharrows_string_Arrow_for_msg_str. \\
+ \c__witharrows_option_ignored_str
}
-\@@_msg_new:nn { Incompatible~options }
+\__witharrows_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_@@_previous_key_str'~set~in~the~same~command~
- \bool_if:NT \l_@@_in_code_after_bool
+ '\l__witharrows_previous_key_str'~set~in~the~same~command~
+ \bool_if:NT \l__witharrows_in_code_after_bool
{
- \l_@@_string_Arrow_for_msg_str\
- in~the~code-after~of~your~environment~\{\l_@@_type_env_str\}
+ \l__witharrows_string_Arrow_for_msg_str\
+ in~the~code-after~of~your~environment~\{\l__witharrows_type_env_str\}
}. \\
- \c_@@_option_ignored_str
+ \c__witharrows_option_ignored_str
}
-\@@_msg_new:nn { Arrow~not~in~last~column }
+\__witharrows_msg_new:nn { Arrow~not~in~last~column }
{
- You~should~use~the~command~\l_@@_string_Arrow_for_msg_str\
- only~in~the~last~column~(column~\int_use:N\l_@@_nb_cols_int)~
- of~your~environment~\{\l_@@_type_env_str\}.\\
+ You~should~use~the~command~\l__witharrows_string_Arrow_for_msg_str\
+ only~in~the~last~column~(column~\int_use:N\l__witharrows_nb_cols_int)~
+ of~your~environment~\{\l__witharrows_type_env_str\}.\\
However~you~can~go~on~for~this~time.
}
-\@@_msg_new:nn { Wrong~line~in~Arrow }
+\__witharrows_msg_new:nn { Wrong~line~in~Arrow }
{
The~specification~of~line~'#1'~you~use~in~the~command~
- \l_@@_string_Arrow_for_msg_str\
- in~the~'code-after'~of~\{\l_@@_type_env_str\}~doesn't~exist. \\
- \c_@@_option_ignored_str
+ \l__witharrows_string_Arrow_for_msg_str\
+ in~the~'code-after'~of~\{\l__witharrows_type_env_str\}~doesn't~exist. \\
+ \c__witharrows_option_ignored_str
}
-\@@_msg_new:nn { Both~lines~are~equal }
+\__witharrows_msg_new:nn { Both~lines~are~equal }
{
- In~the~'code-after'~of~\{\l_@@_type_env_str\}~you~try~to~
+ In~the~'code-after'~of~\{\l__witharrows_type_env_str\}~you~try~to~
draw~an~arrow~going~to~itself~from~the~line~'#1'.~This~is~not~possible. \\
- \c_@@_option_ignored_str
+ \c__witharrows_option_ignored_str
}
-\@@_msg_new:nn { Wrong~line~specification~in~MultiArrow }
+\__witharrows_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.
}
-\@@_msg_new:nn { Too~small~specification~for~MultiArrow }
+\__witharrows_msg_new:nn { Too~small~specification~for~MultiArrow }
{
The~specification~of~lines~you~gave~to~\token_to_str:N \MultiArrow\
is~too~small:~you~need~at~least~two~lines. \\
- \c_@@_command_ignored_str
+ \c__witharrows_command_ignored_str
}
-\@@_msg_new:nn { Not~allowed~in~DispWithArrows }
+\__witharrows_msg_new:nn { Not~allowed~in~DispWithArrows }
{
The~command~\token_to_str:N #1
is~allowed~only~in~the~last~column~
- (column~\int_use:N\l_@@_nb_cols_int)~of~\{\l_@@_type_env_str\}. \\
- \c_@@_option_ignored_str
+ (column~\int_use:N\l__witharrows_nb_cols_int)~of~\{\l__witharrows_type_env_str\}. \\
+ \c__witharrows_option_ignored_str
}
-\@@_msg_new:nn { Not~allowed~in~WithArrows }
+\__witharrows_msg_new:nn { Not~allowed~in~WithArrows }
{
- The~command~\token_to_str:N #1 is~not~allowed~in~\{\l_@@_type_env_str\}~
+ The~command~\token_to_str:N #1 is~not~allowed~in~\{\l__witharrows_type_env_str\}~
(it's~allowed~in~the~last~column~of~\{DispWithArrows\}). \\
- \c_@@_option_ignored_str
+ \c__witharrows_option_ignored_str
}
-\@@_msg_new:nn { Inexistent~v-node }
+\__witharrows_msg_new:nn { Inexistent~v-node }
{
There~is~a~problem.~Maybe~you~have~put~a~command~\token_to_str:N\cr\
instead~of~a~command~\token_to_str:N\\~at~the~end~of~
the~row~\l_tmpa_int\
- of~your~environment~\{\l_@@_type_env_str\}. \\
+ of~your~environment~\{\l__witharrows_type_env_str\}. \\
This~error~is~fatal.
}
-\@@_msg_new:nn { Option~xoffset~forbidden }
+\__witharrows_msg_new:nn { Option~xoffset~forbidden }
{
You~can't~use~the~option~'xoffset'~in~the~command~
- \l_@@_string_Arrow_for_msg_str\ in~the~row~\int_use:N \g_@@_line_int\
- of~your~environment~\{\l_@@_type_env_str\}~
+ \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\}~
because~you~are~using~the~option~
- ' \int_compare:nNnTF \l_@@_pos_arrow_int = 7
+ ' \int_compare:nNnTF \l__witharrows_pos_arrow_int = 7
{ group }
{ groups } '.~It's~possible~for~an~independent~arrow~or~if~there~is~
only~one~arrow. \\
- \c_@@_option_ignored_str
+ \c__witharrows_option_ignored_str
}
-\@@_msg_new:nnn { Duplicate~name }
+\__witharrows_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,~
@@ -1655,22 +1644,28 @@
}
{
The~names~already~defined~in~this~document~are:~
- \seq_use:Nnnn \g_@@_names_seq { ,~ } { ,~ } { ~and~ }.
+ \seq_use:Nnnn \g__witharrows_names_seq { ,~ } { ,~ } { ~and~ }.
+ }
+\__witharrows_msg_new:nn { Invalid~specification~for~MultiArrow }
+ {
+ The~specification~of~rows~for~\token_to_str:N\MultiArrow\
+ (i.e.~#1)~is~invalid. \\
+ \c__witharrows_command_ignored_str
}
\cs_new_protected:Npn \WithArrowsNewStyle #1 #2
{
\keys_if_exist:nnTF { WithArrows / Global } { #1 }
- { \@@_error:nn { Key~already~defined } { #1 } }
+ { \__witharrows_error:nn { Key~already~defined } { #1 } }
{
\keys_define:nn { WithArrows / Global }
{
#1 .code:n =
{ \keys_set_known:nn { WithArrows / WithArrowsOptions } { #2 } }
}
- \seq_put_right:Nx \l_@@_options_WithArrows_seq { \tl_to_str:n { #1 } }
- \seq_put_right:Nx \l_@@_options_DispWithArrows_seq
+ \seq_put_right:Nx \l__witharrows_options_WithArrows_seq { \tl_to_str:n { #1 } }
+ \seq_put_right:Nx \l__witharrows_options_DispWithArrows_seq
{ \tl_to_str:n { #1 } }
- \seq_put_right:Nx \l_@@_options_WithArrowsOptions_seq
+ \seq_put_right:Nx \l__witharrows_options_WithArrowsOptions_seq
{ \tl_to_str:N { #1 } }
\group_begin:
\msg_set:nnn { witharrows } { Unknown~option~WithArrowsOptions }
@@ -1683,89 +1678,154 @@
\group_end:
}
}
-\@@_msg_new:nn { Key~already~defined }
+\__witharrows_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_@@_tikz_code_up_tl
+\keys_define:nn { WithArrows / up-and-down }
{
- \draw [ rounded~corners ]
- let \p1 = (#1) ,
- \p2 = (#2)
- in (\p1) -- node {
- #3
- }
- (\x2,\y1) -- (\p2) ;
+ radius .dim_set:N = \l__witharrows_up_and_down_radius_dim ,
+ radius .value_required:n = true ,
+ width .code:n =
+ \str_case:nnF { #1 }
+ {
+ { min } { \dim_zero:N \l__witharrows_arrow_width_dim }
+ { max } { \dim_set_eq:NN \l__witharrows_arrow_width_dim \c_max_dim }
+ }
+ { \dim_set:Nn \l__witharrows_arrow_width_dim { #1 } } ,
+ width .value_required:n = true ,
+ unknown .code:n = \__witharrows_error:n { Option~unknown~for~up-and-down }
}
-\tl_const:Nn \c_@@_tikz_code_down_tl
+\__witharrows_msg_new:nn { Option~unknown~for~up-and-down }
{
- \draw [ rounded~corners ]
- let \p1 = (#1) ,
- \p2 = (#2)
- in (\p1) -- (\x1,\y2) --
- node {
- #3
- }
- (\p2) ;
+ The~option~'\l_keys_key_tl'~is~unknown.~\c__witharrows_option_ignored_str
+ }
+\tl_const:Nn \c__witharrows_tikz_code_up_tl
+ {
+ \dim_case:nnF \l__witharrows_arrow_width_dim
+ {
+ \c_max_dim
+ {
+ \draw [ rounded~corners = \l__witharrows_up_and_down_radius_dim ]
+ let \p1 = ( #1 ) , \p2 = ( #2 )
+ in (\p1) -- node { #3 } (\x2,\y1) -- (\p2) ;
+ }
+ \c_zero_dim
+ {
+ \path node
+ {
+ \hbox_gset:Nn \g_tmpa_box { #3 }
+ \dim_gset:Nn \g_tmpa_dim
+ { \box_wd:N \g_tmpa_box + \l__witharrows_up_and_down_radius_dim }
+ } ;
+ \draw
+ let \p1 = ( #1 ) , \p2 = ( #2 )
+ in (\x2-\g_tmpa_dim,\y1)
+ -- node { \box_use:N \g_tmpa_box }
+ (\x2-\l__witharrows_up_and_down_radius_dim,\y1)
+ [ rounded~corners = \l__witharrows_up_and_down_radius_dim ]
+ -| (\p2) ;
+ }
+ }
+ {
+ \draw
+ let \p1 = ( #1 ) , \p2 = ( #2 )
+ in (\x2 - \l__witharrows_arrow_width_dim - \l__witharrows_up_and_down_radius_dim,\y1)
+ -- node { #3 } (\x2-\l__witharrows_up_and_down_radius_dim,\y1)
+ [ rounded~corners = \l__witharrows_up_and_down_radius_dim ]
+ -| (\p2) ;
+ }
+ }
+\tl_const:Nn \c__witharrows_tikz_code_down_tl
+ {
+ \dim_case:nnF \l__witharrows_arrow_width_dim
+ {
+ \c_max_dim
+ {
+ \draw [ rounded~corners = \l__witharrows_up_and_down_radius_dim ]
+ let \p1 = ( #1 ) , \p2 = ( #2 )
+ in (\p1) -- (\x1,\y2) -- node { #3 } (\p2) ;
+ }
+ \c_zero_dim
+ {
+ \path node
+ {
+ \hbox_gset:Nn \g_tmpa_box { #3 }
+ \dim_gset:Nn \g_tmpa_dim
+ { \box_wd:N \g_tmpa_box + \l__witharrows_up_and_down_radius_dim }
+ } ;
+ \draw
+ let \p1 = ( #1 ) , \p2 = ( #2 )
+ in (\p1)
+ { [ rounded~corners = \l__witharrows_up_and_down_radius_dim ] -- (\x1,\y2) }
+ -- (\x1-\l__witharrows_up_and_down_radius_dim,\y2)
+ -- node { \box_use:N \g_tmpa_box } (\x1-\g_tmpa_dim,\y2)
+ -- ++ (-2mm,0) ;
+ }
+ }
+ {
+ \draw
+ let \p1 = ( #1 ) , \p2 = ( #2 )
+ in (\p1)
+ { [ rounded~corners = \l__witharrows_up_and_down_radius_dim ] -- (\x1,\y2) }
+ -- (\x1-\l__witharrows_up_and_down_radius_dim,\y2)
+ -- node { #3 }
+ (\x1 - \l__witharrows_arrow_width_dim - \l__witharrows_up_and_down_radius_dim,\y2)
+ -- ++ (-2mm,0) ;
+ }
}
\keys_define:nn { WithArrows / Arrow / FirstPass }
{
- up .code:n = \@@_set_independent: ,
- down .code:n = \@@_set_independent: ,
+ up .code:n = \__witharrows_set_independent_bis: ,
+ down .code:n = \__witharrows_set_independent_bis: ,
up .default:n = NoValue ,
down .default:n = NoValue
}
\keys_define:nn { WithArrows / Arrow / SecondPass }
{
up .code:n =
- \str_if_empty:NT \l_@@_previous_key_str
+ \str_if_empty:NT \l__witharrows_previous_key_str
{
- \str_set:Nn \l_@@_previous_key_str { up }
+ \str_set:Nn \l__witharrows_previous_key_str { up }
\cs_if_exist:cTF { tikz@library@calc@loaded }
{
- \int_set:Nn \l_@@_pos_arrow_int \c_one_int
- \bool_set_false:N \l_@@_wrap_lines_bool
- \tl_set_eq:NN \l_@@_tikz_code_tl
- \c_@@_tikz_code_up_tl
+ \keys_set:nV { WithArrows / up-and-down } \l_keys_value_tl
+ \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
}
- { \@@_error:n { calc~not~loaded } }
+ { \__witharrows_error:n { calc~not~loaded } }
} ,
down .code:n =
- \str_if_empty:NT \l_@@_previous_key_str
+ \str_if_empty:NT \l__witharrows_previous_key_str
{
- \str_set:Nn \l_@@_previous_key_str { down }
+ \str_set:Nn \l__witharrows_previous_key_str { down }
\cs_if_exist:cTF { tikz@library@calc@loaded }
{
- \int_set:Nn \l_@@_pos_arrow_int \c_one_int
- \bool_set_false:N \l_@@_wrap_lines_bool
- \tl_set_eq:NN \l_@@_tikz_code_tl
- \c_@@_tikz_code_down_tl
+ \keys_set:nV { WithArrows / up-and-down } \l_keys_value_tl
+ \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
}
- { \@@_error:n { calc~not~loaded } }
+ { \__witharrows_error:n { calc~not~loaded } }
}
}
-\seq_put_right:Nn \l_@@_options_Arrow_seq { down }
-\seq_put_right:Nn \l_@@_options_Arrow_seq { up }
-\@@_msg_new:nn { 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 }
{
You~can't~use~the~option~'\l_keys_key_tl'~because~
you~don't~have~loaded~the~package~'varwidth'. \\
- \c_@@_option_ignored_str
+ \c__witharrows_option_ignored_str
}
-\@@_msg_new:nn { calc~not~loaded }
+\__witharrows_msg_new:nn { calc~not~loaded }
{
You~can't~use~the~option~'\l_keys_key_tl'~because~you~don't~have~loaded~the~
Tikz~library~'calc'.You~should~add~'\token_to_str:N\usetikzlibrary{calc}'~
~in~the~preamble~of~your~document. \\
- \c_@@_option_ignored_str
- }
-\@@_msg_new:nn { Invalid~specification~for~MultiArrow }
- {
- The~specification~of~rows~for~\token_to_str:N\MultiArrow\
- (i.e.~#1)~is~invalid. \\
- \c_@@_command_ignored_str
+ \c__witharrows_option_ignored_str
}
\catcode `\@ = 12
\ExplSyntaxOff