summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2018-01-11 23:31:00 +0000
committerKarl Berry <karl@freefriends.org>2018-01-11 23:31:00 +0000
commit2e87389219b9749fadf9591d512cb69389c234eb (patch)
treea50a55aa87a75dd72bfa1cddb98156d62d955e65 /Master/texmf-dist/tex/latex
parent6798007834a9b1da2b42939f9408a4a46391ca7f (diff)
witharrows (12jan18)
git-svn-id: svn://tug.org/texlive/trunk@46286 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex')
-rw-r--r--Master/texmf-dist/tex/latex/witharrows/witharrows.sty166
1 files changed, 96 insertions, 70 deletions
diff --git a/Master/texmf-dist/tex/latex/witharrows/witharrows.sty b/Master/texmf-dist/tex/latex/witharrows/witharrows.sty
index b18863db15c..8f4add2a4bf 100644
--- a/Master/texmf-dist/tex/latex/witharrows/witharrows.sty
+++ b/Master/texmf-dist/tex/latex/witharrows/witharrows.sty
@@ -18,8 +18,8 @@
%% and version 1.3 or later is part of all distributions of
%% LaTeX version 2005/12/01 or later.
%%
-\def\myfileversion{1.2}
-\def\myfiledate{2017/11/29}
+\def\myfileversion{1.3}
+\def\myfiledate{2018/01/11}
\RequirePackage{tikz}
\usetikzlibrary{calc,arrows.meta,bending}
\RequirePackage{l3keys2e}
@@ -30,12 +30,13 @@
{Draws arrows for explanations on the right}
\RequirePackage{xparse}
\RequirePackage{footnote}
-\tikzstyle{__wa_node_style}=[rectangle,
- inner~sep = 0 pt,
- minimum~height = 3 pt,
- minimum~width = 0pt,
- red,
- \bool_if:NT \l__wa_shownodes_bool {draw}]
+\tikzset{__wa_node_style/.style={
+ above = \l__wa_ystart_dim,
+ inner~sep = 0 pt,
+ minimum~width = 0pt,
+ minimum~height = \l__wa_ygap_dim,
+ red,
+ \bool_if:NT \l__wa_shownodes_bool {draw}}}
\tikzset{TipsOfWithArrows/.style= { > = {Straight~Barb[scale=1.2,bend]}} }
\cs_if_free:NT \spread@equation
{\cs_set:Npn \spread@equation{\openup\jot
@@ -49,6 +50,10 @@
\int_new:N \l__wa_pos_env_int
\int_new:N \l__wa_pos_arrows_int
\int_new:N \l__wa_previous_pos_arrows_int
+\dim_new:N \l__wa_ygap_dim
+\dim_set:Nn \l__wa_ygap_dim {0.4 ex}
+\dim_new:N \l__wa_ystart_dim
+\dim_set:Nn \l__wa_ystart_dim {0.4 ex}
\dim_new:N \l__wa_xoffset_dim
\dim_set:Nn \l__wa_xoffset_dim {3mm}
\bool_new:N \l__wa_shownodes_bool
@@ -70,6 +75,10 @@
c .value_forbidden:n = true,
b .code:n = {\int_set:Nn \l__wa_pos_env_int 2},
b .value_forbidden:n = true,
+ ygap .dim_set:N = \l__wa_ygap_dim,
+ ygap .value_required:n = true,
+ ystart .dim_set:N = \l__wa_ystart_dim,
+ ystart .value_required:n = true,
MoreColumns .bool_set:N = \l__wa_MoreColumns_bool,
MoreColumns .value_forbidden:n = true,
CommandName .tl_set:N = \l__wa_CommandName_tl,
@@ -159,6 +168,10 @@
{g__wa_arrow_\l__wa_prefix_tl _\int_use:N\g__wa_arrow_int _prop}
\l_tmpa_prop
}
+\cs_new_protected:Nn \__wa_Arrow_first_column:
+ {\tl_set:Nn \l_tmpa_tl {Arrow}
+ \msg_error:nn {witharrows} {Arrow~in~first~column}
+ \__wa_Arrow}
\NewDocumentEnvironment {WithArrows} {O{}}
{ \seq_gput_right:NV \g__wa_arrow_int_seq \g__wa_arrow_int
\int_gzero:N \g__wa_arrow_int
@@ -195,18 +208,19 @@
\spread@equation
\ialign\bgroup
\int_gincr:N \g__wa_line_int
+ \cs_set_eq:cN \l__wa_CommandName_tl \__wa_Arrow_first_column:
\strut\hfil
$\bool_if:NT \l__wa_displaystyle_bool \displaystyle {##}$
&
\int_gincr:N \g__wa_line_bis_int
$\bool_if:NT \l__wa_displaystyle_bool \displaystyle {{}##}$
- \tikz[remember~picture]
- \node [__wa_node_style]
- (wa-\tl_use:N\l__wa_prefix_tl-\int_use:N\g__wa_line_int-l) {} ;
+ \tikz[remember~picture,overlay]
+ \node[__wa_node_style]
+ (wa-\tl_use:N\l__wa_prefix_tl-\int_use:N\g__wa_line_int-l) {} ;
\hfil
- \tikz[remember~picture,label~position=right]
- \node [__wa_node_style]
- (wa-\tl_use:N\l__wa_prefix_tl-\int_use:N\g__wa_line_int-r) {} ;
+ \tikz[remember~picture,overlay]
+ \node[__wa_node_style]
+ (wa-\tl_use:N\l__wa_prefix_tl-\int_use:N\g__wa_line_int-r) {} ;
\bool_if:NT \l__wa_shownodenames_bool
{\hbox_overlap_right:n {\small wa-\tl_use:N\l__wa_prefix_tl
-\int_use:N\g__wa_line_int}}
@@ -302,57 +316,57 @@
{final} \l_tmpa_tl
\int_set:Nn \l__wa_final_int {\l_tmpa_tl}
\int_compare:nNnT \l__wa_final_int > \g__wa_line_int
- {\msg_error:nn {witharrows} {Too~few~lines~for~an~arrow}}
- \group_begin:
- \int_set:Nn \l__wa_previous_pos_arrows_int {-1}
- \int_set:Nn \l__wa_level_int 2
- \prop_get:cnN {g__wa_arrow_\l__wa_prefix_tl
- _\int_use:N\l__wa_arrow_int _prop} {options} \l_tmpa_tl
- \exp_args:NNo \exp_args:No \keys_set_WithArrows: {\l_tmpa_tl}
-\bool_set_false:N \l__wa_initial_r_bool
-\bool_set_false:N \l__wa_final_r_bool
-\int_case:nn \l__wa_pos_arrows_int
- {0 {\bool_set_true:N \l__wa_initial_r_bool
- \bool_set_true:N \l__wa_final_r_bool}
- 2 {\bool_set_true:N \l__wa_initial_r_bool}
- 3 {\bool_set_true:N \l__wa_final_r_bool}}
- \int_compare:nNnT \l__wa_pos_arrows_int = 4
- {
- \tikz[remember~picture]
- \path let \p1 = (wa-\tl_use:N\l__wa_prefix_tl-\int_use:N\l__wa_initial_int-l)
- in \pgfextra {\dim_gset:Nn \g__wa_x_dim {\x1}} ;
- \__wa_actualise_x_value:nn \l__wa_initial_int \l__wa_final_int
- }
- \tl_set:Nx \l__wa_initial_tl
- {wa-\tl_use:N\l__wa_prefix_tl-\int_use:N\l__wa_initial_int-
- \bool_if:NTF\l__wa_initial_r_bool rl}
- \tl_set:Nx \l__wa_final_tl
- {wa-\tl_use:N\l__wa_prefix_tl-\int_use:N\l__wa_final_int-
- \bool_if:NTF\l__wa_final_r_bool rl . north}
- \begin{tikzpicture}[remember~picture,
- overlay,
- align=left,
- auto=left,
- font = {\small\itshape},
- TipsOfWithArrows,
- ->,
- looseness=1,
- bend~left=45]
- \prop_get:cnN {g__wa_arrow_\l__wa_prefix_tl _\int_use:N\l__wa_arrow_int _prop}
- {label} \l_tmpa_tl
- \draw \exp_after:wN [\l__wa_options_tikz_tl]
- let \p1 = (\tl_use:N \l__wa_initial_tl),
- \p2 = (\tl_use:N \l__wa_final_tl) in
- (\int_compare:nNnTF \l__wa_pos_arrows_int > 3
- {\dim_use:N \g__wa_x_dim + \dim_use:N \l__wa_xoffset_dim, \y1}
- {\x1 + \dim_use:N \l__wa_xoffset_dim, \y1} )
- to node [node~contents = {\tl_use:N \l_tmpa_tl}] {}
- (\int_compare:nNnTF \l__wa_pos_arrows_int > 3
- {\dim_use:N \g__wa_x_dim + \dim_use:N \l__wa_xoffset_dim, \y2}
- {\x2 + \dim_use:N \l__wa_xoffset_dim, \y2} ) ;
- \end{tikzpicture}
- \group_end:
- \int_incr:N \l__wa_arrow_int
+ {\msg_fatal:nn {witharrows} {Too~few~lines~for~an~arrow}}
+ \group_begin:
+ \int_set:Nn \l__wa_previous_pos_arrows_int {-1}
+ \int_set:Nn \l__wa_level_int 2
+ \prop_get:cnN {g__wa_arrow_\l__wa_prefix_tl
+ _\int_use:N\l__wa_arrow_int _prop} {options} \l_tmpa_tl
+ \exp_args:NNo \exp_args:No \keys_set_WithArrows: {\l_tmpa_tl}
+ \bool_set_false:N \l__wa_initial_r_bool
+ \bool_set_false:N \l__wa_final_r_bool
+ \int_case:nn \l__wa_pos_arrows_int
+ {0 {\bool_set_true:N \l__wa_initial_r_bool
+ \bool_set_true:N \l__wa_final_r_bool}
+ 2 {\bool_set_true:N \l__wa_initial_r_bool}
+ 3 {\bool_set_true:N \l__wa_final_r_bool}}
+ \int_compare:nNnT \l__wa_pos_arrows_int = 4
+ {
+ \tikz[remember~picture]
+ \path let \p1 = (wa-\tl_use:N\l__wa_prefix_tl-\int_use:N\l__wa_initial_int-l)
+ in \pgfextra {\dim_gset:Nn \g__wa_x_dim {\x1}} ;
+ \__wa_actualise_x_value:nn \l__wa_initial_int \l__wa_final_int
+ }
+ \tl_set:Nx \l__wa_initial_tl
+ {wa-\tl_use:N\l__wa_prefix_tl-\int_use:N\l__wa_initial_int-
+ \bool_if:NTF\l__wa_initial_r_bool rl .south}
+ \tl_set:Nx \l__wa_final_tl
+ {wa-\tl_use:N\l__wa_prefix_tl-\int_use:N\l__wa_final_int-
+ \bool_if:NTF\l__wa_final_r_bool rl .north}
+ \begin{tikzpicture}[remember~picture,
+ overlay,
+ align=left,
+ auto=left,
+ font = {\small\itshape},
+ TipsOfWithArrows,
+ ->,
+ looseness=1,
+ bend~left=45]
+ \prop_get:cnN {g__wa_arrow_\l__wa_prefix_tl _\int_use:N\l__wa_arrow_int _prop}
+ {label} \l_tmpa_tl
+ \draw \exp_after:wN [\l__wa_options_tikz_tl]
+ let \p1 = (\tl_use:N \l__wa_initial_tl),
+ \p2 = (\tl_use:N \l__wa_final_tl) in
+ (\int_compare:nNnTF \l__wa_pos_arrows_int > 3
+ {\dim_use:N \g__wa_x_dim + \dim_use:N \l__wa_xoffset_dim, \y1}
+ {\x1 + \dim_use:N \l__wa_xoffset_dim, \y1} )
+ to node [node~contents = {\tl_use:N \l_tmpa_tl}] {}
+ (\int_compare:nNnTF \l__wa_pos_arrows_int > 3
+ {\dim_use:N \g__wa_x_dim + \dim_use:N \l__wa_xoffset_dim, \y2}
+ {\x2 + \dim_use:N \l__wa_xoffset_dim, \y2} ) ;
+ \end{tikzpicture}
+ \group_end:
+ \int_incr:N \l__wa_arrow_int
}
\group_end:
}
@@ -382,13 +396,13 @@
a~global~level~or~for~an~environment.~However,~you~can~go~one~for~this~time.}
\msg_new:nnn {witharrows}
{Arrow~used~outside~{WithArrows}~environment}
- {The~command~\string\Arrow\space~should~be~used~only~directly~
+ {The~command~\token_to_str:N\Arrow\ should~be~used~only~directly~
in~\{WithArrows\}~environment~and~not~in~a~subenvironment.~However,~you~
can~go~on.}
\msg_new:nnn {witharrows}
{The~option~"jump"~must~be~non~negative}
{You~can't~use~a~strictly~negative~value~for~the~option~"jump"~of~command~
- \string\Arrow.~ You~can~create~an~arrow~going~backwards~with~
+ \token_to_str:N\Arrow.~ You~can~create~an~arrow~going~backwards~with~
the~option~"<-"~of~Tikz.}
\msg_new:nnn {witharrows}
{Too~few~lines~for~an~arrow}
@@ -412,9 +426,9 @@
6 {groups}}"~
previously~set~in~the~same~
\int_case:nn\l__wa_level_int
- {0 {command~\string\WithArrowsOptions}
+ {0 {command~\token_to_str:N\WithArrowsOptions}
1 {declaration~of~options~of~the~environment~\{WithArrows\}}
- 2 {command~\string\Arrow}}.~
+ 2 {command~\token_to_str:N\Arrow}}.~
If~you~go~on,~I~will~overwrite~the~first~option.}
\msg_new:nnnn {witharrows}
{All~lines~must~have~an~ampersand}
@@ -422,7 +436,7 @@
(because~the~nodes~are~created~in~the~second~column).~You~can~go~on~but~maybe~
you~will~have~an~pgf~error~for~an~undefined~shape.}
{The~ampersand~can~be~implicit~
- (e.g.~if~you~use~\string\MoveEqLeft\space~of~mathtools).}
+ (e.g.~if~you~use~\token_to_str:N\MoveEqLeft\ of~mathtools).}
\msg_new:nnn {witharrows}
{Option~incompatible~with~"group(s)"}
{You~try~to~use~the~option~"\tl_use:N\l_keys_key_tl"~while~
@@ -440,6 +454,18 @@
{Option~unknown}
{The~option~"\tl_use:N\l_keys_key_tl"~is~unknown~or~meaningless~in~the~context.~
If~you~go~on,~it~will~be~ignored.}
+\msg_new:nnn {witharrows}
+ {Arrow~in~first~column}
+ {You~should~not~use~the~command~\token_to_str:N\Arrow\
+ \tl_if_eq:NNF \l__wa_CommandName_tl \l_tmpa_tl
+ {(renamed~in~\str_use:N \c_backslash_str
+ \tl_use:N \l__wa_CommandName_tl)~}
+ ~in~the~first~column~but~only~in~the~second~column.~
+ This~is~a~restriction~of~the~version~1.3~of~the~
+ package~witharrows~(in~the~aim~of~developping~further~
+ ~a~new~functionality~with~\token_to_str:N\Arrow\ in~the~
+ first~column).\\
+ However~you~can~go~on~for~this~time.}
\endinput
%%
%% End of file `witharrows.sty'.