summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/l3kernel/l3candidates.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/l3kernel/l3candidates.sty')
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3candidates.sty1103
1 files changed, 0 insertions, 1103 deletions
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3candidates.sty b/Master/texmf-dist/tex/latex/l3kernel/l3candidates.sty
deleted file mode 100644
index 34161b8360d..00000000000
--- a/Master/texmf-dist/tex/latex/l3kernel/l3candidates.sty
+++ /dev/null
@@ -1,1103 +0,0 @@
-%%
-%% This is file `l3candidates.sty',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% l3candidates.dtx (with options: `package')
-%%
-%% EXPERIMENTAL CODE
-%%
-%% Do not distribute this file without also distributing the
-%% source files specified above.
-%%
-%% Do not distribute a modified version of this file.
-%%
-%% File: l3candidates.dtx Copyright(C) 2012,2013 The LaTeX3 Project
-%%
-%% It may be distributed and/or modified under the conditions of the
-%% LaTeX Project Public License (LPPL), either version 1.3c of this
-%% license or (at your option) any later version. The latest version
-%% of this license is in the file
-%%
-%% http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%% http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%% Snapshots taken from the repository represent work in progress and may
-%% not work or may contain conflicting material! We therefore ask
-%% people _not_ to put them into distributions, archives, etc. without
-%% prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
-\RequirePackage{l3bootstrap}
-\GetIdInfo$Id: l3candidates.dtx 4643 2014-01-06 13:28:06Z joseph $
- {L3 Experimental additions to l3kernel}
-\ProvidesExplPackage
- {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
-\__expl_package_check:
-\fp_new:N \l__box_angle_fp
-\fp_new:N \l__box_cos_fp
-\fp_new:N \l__box_sin_fp
-\dim_new:N \l__box_top_dim
-\dim_new:N \l__box_bottom_dim
-\dim_new:N \l__box_left_dim
-\dim_new:N \l__box_right_dim
-\dim_new:N \l__box_top_new_dim
-\dim_new:N \l__box_bottom_new_dim
-\dim_new:N \l__box_left_new_dim
-\dim_new:N \l__box_right_new_dim
-\box_new:N \l__box_internal_box
-\cs_new_protected:Npn \box_rotate:Nn #1#2
- {
- \hbox_set:Nn #1
- {
- \group_begin:
- \fp_set:Nn \l__box_angle_fp {#2}
- \fp_set:Nn \l__box_sin_fp { sind ( \l__box_angle_fp ) }
- \fp_set:Nn \l__box_cos_fp { cosd ( \l__box_angle_fp ) }
- \__box_rotate:N #1
- \group_end:
- }
- }
-\cs_new_protected:Npn \__box_rotate:N #1
- {
- \dim_set:Nn \l__box_top_dim { \box_ht:N #1 }
- \dim_set:Nn \l__box_bottom_dim { -\box_dp:N #1 }
- \dim_set:Nn \l__box_right_dim { \box_wd:N #1 }
- \dim_zero:N \l__box_left_dim
- \fp_compare:nNnTF \l__box_sin_fp > \c_zero_fp
- {
- \fp_compare:nNnTF \l__box_cos_fp > \c_zero_fp
- { \__box_rotate_quadrant_one: }
- { \__box_rotate_quadrant_two: }
- }
- {
- \fp_compare:nNnTF \l__box_cos_fp < \c_zero_fp
- { \__box_rotate_quadrant_three: }
- { \__box_rotate_quadrant_four: }
- }
- \hbox_set:Nn \l__box_internal_box { \box_use:N #1 }
- \hbox_set:Nn \l__box_internal_box
- {
- \tex_kern:D -\l__box_left_new_dim
- \hbox:n
- {
- \__driver_box_rotate_begin:
- \box_use:N \l__box_internal_box
- \__driver_box_rotate_end:
- }
- }
- \box_set_ht:Nn \l__box_internal_box { \l__box_top_new_dim }
- \box_set_dp:Nn \l__box_internal_box { -\l__box_bottom_new_dim }
- \box_set_wd:Nn \l__box_internal_box
- { \l__box_right_new_dim - \l__box_left_new_dim }
- \box_use:N \l__box_internal_box
- }
-\cs_new_protected:Npn \__box_rotate_x:nnN #1#2#3
- {
- \dim_set:Nn #3
- {
- \fp_to_dim:n
- {
- \l__box_cos_fp * \dim_to_fp:n {#1}
- - ( \l__box_sin_fp * \dim_to_fp:n {#2} )
- }
- }
- }
-\cs_new_protected:Npn \__box_rotate_y:nnN #1#2#3
- {
- \dim_set:Nn #3
- {
- \fp_to_dim:n
- {
- \l__box_sin_fp * \dim_to_fp:n {#1}
- + \l__box_cos_fp * \dim_to_fp:n {#2}
- }
- }
- }
-\cs_new_protected:Npn \__box_rotate_quadrant_one:
- {
- \__box_rotate_y:nnN \l__box_right_dim \l__box_top_dim
- \l__box_top_new_dim
- \__box_rotate_y:nnN \l__box_left_dim \l__box_bottom_dim
- \l__box_bottom_new_dim
- \__box_rotate_x:nnN \l__box_left_dim \l__box_top_dim
- \l__box_left_new_dim
- \__box_rotate_x:nnN \l__box_right_dim \l__box_bottom_dim
- \l__box_right_new_dim
- }
-\cs_new_protected:Npn \__box_rotate_quadrant_two:
- {
- \__box_rotate_y:nnN \l__box_right_dim \l__box_bottom_dim
- \l__box_top_new_dim
- \__box_rotate_y:nnN \l__box_left_dim \l__box_top_dim
- \l__box_bottom_new_dim
- \__box_rotate_x:nnN \l__box_right_dim \l__box_top_dim
- \l__box_left_new_dim
- \__box_rotate_x:nnN \l__box_left_dim \l__box_bottom_dim
- \l__box_right_new_dim
- }
-\cs_new_protected:Npn \__box_rotate_quadrant_three:
- {
- \__box_rotate_y:nnN \l__box_left_dim \l__box_bottom_dim
- \l__box_top_new_dim
- \__box_rotate_y:nnN \l__box_right_dim \l__box_top_dim
- \l__box_bottom_new_dim
- \__box_rotate_x:nnN \l__box_right_dim \l__box_bottom_dim
- \l__box_left_new_dim
- \__box_rotate_x:nnN \l__box_left_dim \l__box_top_dim
- \l__box_right_new_dim
- }
-\cs_new_protected:Npn \__box_rotate_quadrant_four:
- {
- \__box_rotate_y:nnN \l__box_left_dim \l__box_top_dim
- \l__box_top_new_dim
- \__box_rotate_y:nnN \l__box_right_dim \l__box_bottom_dim
- \l__box_bottom_new_dim
- \__box_rotate_x:nnN \l__box_left_dim \l__box_bottom_dim
- \l__box_left_new_dim
- \__box_rotate_x:nnN \l__box_right_dim \l__box_top_dim
- \l__box_right_new_dim
- }
-\fp_new:N \l__box_scale_x_fp
-\fp_new:N \l__box_scale_y_fp
-\cs_new_protected:Npn \box_resize:Nnn #1#2#3
- {
- \hbox_set:Nn #1
- {
- \group_begin:
- \dim_set:Nn \l__box_top_dim { \box_ht:N #1 }
- \dim_set:Nn \l__box_bottom_dim { -\box_dp:N #1 }
- \dim_set:Nn \l__box_right_dim { \box_wd:N #1 }
- \dim_zero:N \l__box_left_dim
- \fp_set:Nn \l__box_scale_x_fp
- { \dim_to_fp:n {#2} / ( \dim_to_fp:n \l__box_right_dim ) }
- \fp_set:Nn \l__box_scale_y_fp
- {
- \dim_to_fp:n {#3} /
- ( \dim_to_fp:n { \l__box_top_dim - \l__box_bottom_dim } )
- }
- \__box_resize:Nnn #1 {#2} {#3}
- \group_end:
- }
- }
-\cs_generate_variant:Nn \box_resize:Nnn { c }
-\cs_new_protected:Npn \__box_resize:Nnn #1#2#3
- {
- \dim_set:Nn \l__box_right_new_dim { \dim_abs:n {#2} }
- \dim_set:Nn \l__box_bottom_new_dim
- { \fp_abs:n { \l__box_scale_y_fp } \l__box_bottom_dim }
- \dim_set:Nn \l__box_top_new_dim
- { \fp_abs:n { \l__box_scale_y_fp } \l__box_top_dim }
- \__box_resize_common:N #1
- }
-\cs_new_protected:Npn \box_resize_to_ht_plus_dp:Nn #1#2
- {
- \hbox_set:Nn #1
- {
- \group_begin:
- \dim_set:Nn \l__box_top_dim { \box_ht:N #1 }
- \dim_set:Nn \l__box_bottom_dim { -\box_dp:N #1 }
- \dim_set:Nn \l__box_right_dim { \box_wd:N #1 }
- \dim_zero:N \l__box_left_dim
- \fp_set:Nn \l__box_scale_y_fp
- {
- \dim_to_fp:n {#2} /
- ( \dim_to_fp:n { \l__box_top_dim - \l__box_bottom_dim } )
- }
- \fp_set_eq:NN \l__box_scale_x_fp \l__box_scale_y_fp
- \__box_resize:Nnn #1 {#2} {#2}
- \group_end:
- }
- }
-\cs_generate_variant:Nn \box_resize_to_ht_plus_dp:Nn { c }
-\cs_new_protected:Npn \box_resize_to_wd:Nn #1#2
- {
- \hbox_set:Nn #1
- {
- \group_begin:
- \dim_set:Nn \l__box_top_dim { \box_ht:N #1 }
- \dim_set:Nn \l__box_bottom_dim { -\box_dp:N #1 }
- \dim_set:Nn \l__box_right_dim { \box_wd:N #1 }
- \dim_zero:N \l__box_left_dim
- \fp_set:Nn \l__box_scale_x_fp
- { \dim_to_fp:n {#2} / ( \dim_to_fp:n \l__box_right_dim ) }
- \fp_set_eq:NN \l__box_scale_y_fp \l__box_scale_x_fp
- \__box_resize:Nnn #1 {#2} {#2}
- \group_end:
- }
- }
-\cs_generate_variant:Nn \box_resize_to_wd:Nn { c }
-\cs_new_protected:Npn \box_scale:Nnn #1#2#3
- {
- \hbox_set:Nn #1
- {
- \group_begin:
- \fp_set:Nn \l__box_scale_x_fp {#2}
- \fp_set:Nn \l__box_scale_y_fp {#3}
- \dim_set:Nn \l__box_top_dim { \box_ht:N #1 }
- \dim_set:Nn \l__box_bottom_dim { -\box_dp:N #1 }
- \dim_set:Nn \l__box_right_dim { \box_wd:N #1 }
- \dim_zero:N \l__box_left_dim
- \dim_set:Nn \l__box_top_new_dim
- { \fp_abs:n { \l__box_scale_y_fp } \l__box_top_dim }
- \dim_set:Nn \l__box_bottom_new_dim
- { \fp_abs:n { \l__box_scale_y_fp } \l__box_bottom_dim }
- \dim_set:Nn \l__box_right_new_dim
- { \fp_abs:n { \l__box_scale_x_fp } \l__box_right_dim }
- \__box_resize_common:N #1
- \group_end:
- }
- }
-\cs_generate_variant:Nn \box_scale:Nnn { c }
-\cs_new_protected:Npn \__box_resize_common:N #1
- {
- \hbox_set:Nn \l__box_internal_box
- {
- \__driver_box_scale_begin:
- \hbox_overlap_right:n { \box_use:N #1 }
- \__driver_box_scale_end:
- }
- \box_set_ht:Nn \l__box_internal_box { \l__box_top_new_dim }
- \box_set_dp:Nn \l__box_internal_box { \l__box_bottom_new_dim }
- \fp_compare:nNnTF \l__box_scale_x_fp < \c_zero_fp
- {
- \hbox_to_wd:nn { \l__box_right_new_dim }
- {
- \tex_kern:D \l__box_right_new_dim
- \box_use:N \l__box_internal_box
- \tex_hss:D
- }
- }
- {
- \box_set_wd:Nn \l__box_internal_box { \l__box_right_new_dim }
- \hbox:n
- {
- \tex_kern:D \c_zero_dim
- \box_use:N \l__box_internal_box
- \tex_hss:D
- }
- }
- }
-\cs_new_protected:Npn \box_clip:N #1
- { \hbox_set:Nn #1 { \__driver_box_use_clip:N #1 } }
-\cs_generate_variant:Nn \box_clip:N { c }
-\cs_new_protected:Npn \box_trim:Nnnnn #1#2#3#4#5
- {
- \hbox_set:Nn \l__box_internal_box
- {
- \tex_kern:D -\__dim_eval:w #2 \__dim_eval_end:
- \box_use:N #1
- \tex_kern:D -\__dim_eval:w #4 \__dim_eval_end:
- }
- \dim_compare:nNnTF { \box_dp:N #1 } > {#3}
- {
- \hbox_set:Nn \l__box_internal_box
- {
- \box_move_down:nn \c_zero_dim
- { \box_use:N \l__box_internal_box }
- }
- \box_set_dp:Nn \l__box_internal_box { \box_dp:N #1 - (#3) }
- }
- {
- \hbox_set:Nn \l__box_internal_box
- {
- \box_move_down:nn { #3 - \box_dp:N #1 }
- { \box_use:N \l__box_internal_box }
- }
- \box_set_dp:Nn \l__box_internal_box \c_zero_dim
- }
- \dim_compare:nNnTF { \box_ht:N \l__box_internal_box } > {#5}
- {
- \hbox_set:Nn \l__box_internal_box
- { \box_move_up:nn \c_zero_dim { \box_use:N \l__box_internal_box } }
- \box_set_ht:Nn \l__box_internal_box
- { \box_ht:N \l__box_internal_box - (#5) }
- }
- {
- \hbox_set:Nn \l__box_internal_box
- {
- \box_move_up:nn { #5 - \box_ht:N \l__box_internal_box }
- { \box_use:N \l__box_internal_box }
- }
- \box_set_ht:Nn \l__box_internal_box \c_zero_dim
- }
- \box_set_eq:NN #1 \l__box_internal_box
- }
-\cs_generate_variant:Nn \box_trim:Nnnnn { c }
-\cs_new_protected:Npn \box_viewport:Nnnnn #1#2#3#4#5
- {
- \hbox_set:Nn \l__box_internal_box
- {
- \tex_kern:D -\__dim_eval:w #2 \__dim_eval_end:
- \box_use:N #1
- \tex_kern:D \__dim_eval:w #4 - \box_wd:N #1 \__dim_eval_end:
- }
- \dim_compare:nNnTF {#3} < \c_zero_dim
- {
- \hbox_set:Nn \l__box_internal_box
- {
- \box_move_down:nn \c_zero_dim
- { \box_use:N \l__box_internal_box }
- }
- \box_set_dp:Nn \l__box_internal_box { -\dim_eval:n {#3} }
- }
- {
- \hbox_set:Nn \l__box_internal_box
- { \box_move_down:nn {#3} { \box_use:N \l__box_internal_box } }
- \box_set_dp:Nn \l__box_internal_box \c_zero_dim
- }
- \dim_compare:nNnTF {#5} > \c_zero_dim
- {
- \hbox_set:Nn \l__box_internal_box
- { \box_move_up:nn \c_zero_dim { \box_use:N \l__box_internal_box } }
- \box_set_ht:Nn \l__box_internal_box
- {
- #5
- \dim_compare:nNnT {#3} > \c_zero_dim
- { - (#3) }
- }
- }
- {
- \hbox_set:Nn \l__box_internal_box
- {
- \box_move_up:nn { -\dim_eval:n {#5} }
- { \box_use:N \l__box_internal_box }
- }
- \box_set_ht:Nn \l__box_internal_box \c_zero_dim
- }
- \box_set_eq:NN #1 \l__box_internal_box
- }
-\cs_generate_variant:Nn \box_viewport:Nnnnn { c }
-\cs_new:Npn \clist_item:Nn #1#2
- {
- \exp_args:Nfo \__clist_item:nnNn
- { \clist_count:N #1 }
- #1
- \__clist_item_N_loop:nw
- {#2}
- }
-\cs_new:Npn \__clist_item:nnNn #1#2#3#4
- {
- \int_compare:nNnTF {#4} < \c_zero
- {
- \int_compare:nNnTF {#4} < { - #1 }
- { \use_none_delimit_by_q_stop:w }
- { \exp_args:Nf #3 { \int_eval:n { #4 + \c_one + #1 } } }
- }
- {
- \int_compare:nNnTF {#4} > {#1}
- { \use_none_delimit_by_q_stop:w }
- { #3 {#4} }
- }
- { } , #2 , \q_stop
- }
-\cs_new:Npn \__clist_item_N_loop:nw #1 #2,
- {
- \int_compare:nNnTF {#1} = \c_zero
- { \use_i_delimit_by_q_stop:nw { \exp_not:n {#2} } }
- { \exp_args:Nf \__clist_item_N_loop:nw { \int_eval:n { #1 - 1 } } }
- }
-\cs_generate_variant:Nn \clist_item:Nn { c }
-\cs_new:Npn \clist_item:nn #1#2
- {
- \exp_args:Nf \__clist_item:nnNn
- { \clist_count:n {#1} }
- {#1}
- \__clist_item_n:nw
- {#2}
- }
-\cs_new:Npn \__clist_item_n:nw #1
- { \__clist_item_n_loop:nw {#1} \prg_do_nothing: }
-\cs_new:Npn \__clist_item_n_loop:nw #1 #2,
- {
- \exp_args:No \tl_if_blank:nTF {#2}
- { \__clist_item_n_loop:nw {#1} \prg_do_nothing: }
- {
- \int_compare:nNnTF {#1} = \c_zero
- { \exp_args:No \__clist_item_n_end:n {#2} }
- {
- \exp_args:Nf \__clist_item_n_loop:nw
- { \int_eval:n { #1 - 1 } }
- \prg_do_nothing:
- }
- }
- }
-\cs_new:Npn \__clist_item_n_end:n #1 #2 \q_stop
- {
- \__tl_trim_spaces:nn { \q_mark #1 }
- { \exp_last_unbraced:No \__clist_item_n_strip:w } ,
- }
-\cs_new:Npn \__clist_item_n_strip:w #1 , { \exp_not:n {#1} }
-\cs_new_protected:Npn \clist_set_from_seq:NN
- { \__clist_set_from_seq:NNNN \clist_clear:N \tl_set:Nx }
-\cs_new_protected:Npn \clist_gset_from_seq:NN
- { \__clist_set_from_seq:NNNN \clist_gclear:N \tl_gset:Nx }
-\cs_new_protected:Npn \__clist_set_from_seq:NNNN #1#2#3#4
- {
- \seq_if_empty:NTF #4
- { #1 #3 }
- {
- #2 #3
- {
- \exp_last_unbraced:Nf \use_none:n
- { \seq_map_function:NN #4 \__clist_wrap_item:n }
- }
- }
- }
-\cs_new:Npn \__clist_wrap_item:n #1
- {
- ,
- \tl_if_empty:oTF { \__clist_set_from_seq:w #1 ~ , #1 ~ }
- { \exp_not:n {#1} }
- { \exp_not:n { {#1} } }
- }
-\cs_new:Npn \__clist_set_from_seq:w #1 , #2 ~ { }
-\cs_generate_variant:Nn \clist_set_from_seq:NN { Nc }
-\cs_generate_variant:Nn \clist_set_from_seq:NN { c , cc }
-\cs_generate_variant:Nn \clist_gset_from_seq:NN { Nc }
-\cs_generate_variant:Nn \clist_gset_from_seq:NN { c , cc }
-\cs_new_protected:Npn \clist_const:Nn #1#2
- { \tl_const:Nx #1 { \__clist_trim_spaces:n {#2} } }
-\cs_generate_variant:Nn \clist_const:Nn { c , Nx , cx }
-\prg_new_conditional:Npnn \clist_if_empty:n #1 { p , T , F , TF }
- {
- \__clist_if_empty_n:w ? #1
- , \q_mark \prg_return_false:
- , \q_mark \prg_return_true:
- \q_stop
- }
-\cs_new:Npn \__clist_if_empty_n:w #1 ,
- {
- \tl_if_empty:oTF { \use_none:nn #1 ? }
- { \__clist_if_empty_n:w ? }
- { \__clist_if_empty_n:wNw }
- }
-\cs_new:Npn \__clist_if_empty_n:wNw #1 \q_mark #2#3 \q_stop {#2}
-\fp_new:N \l__coffin_sin_fp
-\fp_new:N \l__coffin_cos_fp
-\prop_new:N \l__coffin_bounding_prop
-\dim_new:N \l__coffin_bounding_shift_dim
-\dim_new:N \l__coffin_left_corner_dim
-\dim_new:N \l__coffin_right_corner_dim
-\dim_new:N \l__coffin_bottom_corner_dim
-\dim_new:N \l__coffin_top_corner_dim
-\cs_new_protected:Npn \coffin_rotate:Nn #1#2
- {
- \fp_set:Nn \l__coffin_sin_fp { sind ( #2 ) }
- \fp_set:Nn \l__coffin_cos_fp { cosd ( #2 ) }
- \prop_map_inline:cn { l__coffin_corners_ \__int_value:w #1 _prop }
- { \__coffin_rotate_corner:Nnnn #1 {##1} ##2 }
- \prop_map_inline:cn { l__coffin_poles_ \__int_value:w #1 _prop }
- { \__coffin_rotate_pole:Nnnnnn #1 {##1} ##2 }
- \__coffin_set_bounding:N #1
- \prop_map_inline:Nn \l__coffin_bounding_prop
- { \__coffin_rotate_bounding:nnn {##1} ##2 }
- \__coffin_find_corner_maxima:N #1
- \__coffin_find_bounding_shift:
- \box_rotate:Nn #1 {#2}
- \hbox_set:Nn \l__coffin_internal_box
- {
- \tex_kern:D
- \__dim_eval:w
- \l__coffin_bounding_shift_dim - \l__coffin_left_corner_dim
- \__dim_eval_end:
- \box_move_down:nn { \l__coffin_bottom_corner_dim }
- { \box_use:N #1 }
- }
- \box_set_ht:Nn \l__coffin_internal_box
- { \l__coffin_top_corner_dim - \l__coffin_bottom_corner_dim }
- \box_set_dp:Nn \l__coffin_internal_box { 0 pt }
- \box_set_wd:Nn \l__coffin_internal_box
- { \l__coffin_right_corner_dim - \l__coffin_left_corner_dim }
- \hbox_set:Nn #1 { \box_use:N \l__coffin_internal_box }
- \prop_map_inline:cn { l__coffin_corners_ \__int_value:w #1 _prop }
- { \__coffin_shift_corner:Nnnn #1 {##1} ##2 }
- \prop_map_inline:cn { l__coffin_poles_ \__int_value:w #1 _prop }
- { \__coffin_shift_pole:Nnnnnn #1 {##1} ##2 }
- }
-\cs_generate_variant:Nn \coffin_rotate:Nn { c }
-\cs_new_protected:Npn \__coffin_set_bounding:N #1
- {
- \prop_put:Nnx \l__coffin_bounding_prop { tl }
- { { 0 pt } { \dim_use:N \box_ht:N #1 } }
- \prop_put:Nnx \l__coffin_bounding_prop { tr }
- { { \dim_use:N \box_wd:N #1 } { \dim_use:N \box_ht:N #1 } }
- \dim_set:Nn \l__coffin_internal_dim { - \box_dp:N #1 }
- \prop_put:Nnx \l__coffin_bounding_prop { bl }
- { { 0 pt } { \dim_use:N \l__coffin_internal_dim } }
- \prop_put:Nnx \l__coffin_bounding_prop { br }
- { { \dim_use:N \box_wd:N #1 } { \dim_use:N \l__coffin_internal_dim } }
- }
-\cs_new_protected:Npn \__coffin_rotate_bounding:nnn #1#2#3
- {
- \__coffin_rotate_vector:nnNN {#2} {#3} \l__coffin_x_dim \l__coffin_y_dim
- \prop_put:Nnx \l__coffin_bounding_prop {#1}
- { { \dim_use:N \l__coffin_x_dim } { \dim_use:N \l__coffin_y_dim } }
- }
-\cs_new_protected:Npn \__coffin_rotate_corner:Nnnn #1#2#3#4
- {
- \__coffin_rotate_vector:nnNN {#3} {#4} \l__coffin_x_dim \l__coffin_y_dim
- \prop_put:cnx { l__coffin_corners_ \__int_value:w #1 _prop } {#2}
- { { \dim_use:N \l__coffin_x_dim } { \dim_use:N \l__coffin_y_dim } }
- }
-\cs_new_protected:Npn \__coffin_rotate_pole:Nnnnnn #1#2#3#4#5#6
- {
- \__coffin_rotate_vector:nnNN {#3} {#4} \l__coffin_x_dim \l__coffin_y_dim
- \__coffin_rotate_vector:nnNN {#5} {#6}
- \l__coffin_x_prime_dim \l__coffin_y_prime_dim
- \__coffin_set_pole:Nnx #1 {#2}
- {
- { \dim_use:N \l__coffin_x_dim } { \dim_use:N \l__coffin_y_dim }
- { \dim_use:N \l__coffin_x_prime_dim }
- { \dim_use:N \l__coffin_y_prime_dim }
- }
- }
-\cs_new_protected:Npn \__coffin_rotate_vector:nnNN #1#2#3#4
- {
- \dim_set:Nn #3
- {
- \fp_to_dim:n
- {
- \dim_to_fp:n {#1} * \l__coffin_cos_fp
- - ( \dim_to_fp:n {#2} * \l__coffin_sin_fp )
- }
- }
- \dim_set:Nn #4
- {
- \fp_to_dim:n
- {
- \dim_to_fp:n {#1} * \l__coffin_sin_fp
- + ( \dim_to_fp:n {#2} * \l__coffin_cos_fp )
- }
- }
- }
-\cs_new_protected:Npn \__coffin_find_corner_maxima:N #1
- {
- \dim_set:Nn \l__coffin_top_corner_dim { -\c_max_dim }
- \dim_set:Nn \l__coffin_right_corner_dim { -\c_max_dim }
- \dim_set:Nn \l__coffin_bottom_corner_dim { \c_max_dim }
- \dim_set:Nn \l__coffin_left_corner_dim { \c_max_dim }
- \prop_map_inline:cn { l__coffin_corners_ \__int_value:w #1 _prop }
- { \__coffin_find_corner_maxima_aux:nn ##2 }
- }
-\cs_new_protected:Npn \__coffin_find_corner_maxima_aux:nn #1#2
- {
- \dim_set:Nn \l__coffin_left_corner_dim
- { \dim_min:nn { \l__coffin_left_corner_dim } {#1} }
- \dim_set:Nn \l__coffin_right_corner_dim
- { \dim_max:nn { \l__coffin_right_corner_dim } {#1} }
- \dim_set:Nn \l__coffin_bottom_corner_dim
- { \dim_min:nn { \l__coffin_bottom_corner_dim } {#2} }
- \dim_set:Nn \l__coffin_top_corner_dim
- { \dim_max:nn { \l__coffin_top_corner_dim } {#2} }
- }
-\cs_new_protected_nopar:Npn \__coffin_find_bounding_shift:
- {
- \dim_set:Nn \l__coffin_bounding_shift_dim { \c_max_dim }
- \prop_map_inline:Nn \l__coffin_bounding_prop
- { \__coffin_find_bounding_shift_aux:nn ##2 }
- }
-\cs_new_protected:Npn \__coffin_find_bounding_shift_aux:nn #1#2
- {
- \dim_set:Nn \l__coffin_bounding_shift_dim
- { \dim_min:nn { \l__coffin_bounding_shift_dim } {#1} }
- }
-\cs_new_protected:Npn \__coffin_shift_corner:Nnnn #1#2#3#4
- {
- \prop_put:cnx { l__coffin_corners_ \__int_value:w #1 _ prop } {#2}
- {
- { \dim_eval:n { #3 - \l__coffin_left_corner_dim } }
- { \dim_eval:n { #4 - \l__coffin_bottom_corner_dim } }
- }
- }
-\cs_new_protected:Npn \__coffin_shift_pole:Nnnnnn #1#2#3#4#5#6
- {
- \prop_put:cnx { l__coffin_poles_ \__int_value:w #1 _ prop } {#2}
- {
- { \dim_eval:n { #3 - \l__coffin_left_corner_dim } }
- { \dim_eval:n { #4 - \l__coffin_bottom_corner_dim } }
- {#5} {#6}
- }
- }
-\fp_new:N \l__coffin_scale_x_fp
-\fp_new:N \l__coffin_scale_y_fp
-\dim_new:N \l__coffin_scaled_total_height_dim
-\dim_new:N \l__coffin_scaled_width_dim
-\cs_new_protected:Npn \coffin_resize:Nnn #1#2#3
- {
- \fp_set:Nn \l__coffin_scale_x_fp
- { \dim_to_fp:n {#2} / \dim_to_fp:n { \coffin_wd:N #1 } }
- \fp_set:Nn \l__coffin_scale_y_fp
- {
- \dim_to_fp:n {#3} / \dim_to_fp:n { \coffin_ht:N #1 + \coffin_dp:N #1 }
- }
- \box_resize:Nnn #1 {#2} {#3}
- \__coffin_resize_common:Nnn #1 {#2} {#3}
- }
-\cs_generate_variant:Nn \coffin_resize:Nnn { c }
-\cs_new_protected:Npn \__coffin_resize_common:Nnn #1#2#3
- {
- \prop_map_inline:cn { l__coffin_corners_ \__int_value:w #1 _prop }
- { \__coffin_scale_corner:Nnnn #1 {##1} ##2 }
- \prop_map_inline:cn { l__coffin_poles_ \__int_value:w #1 _prop }
- { \__coffin_scale_pole:Nnnnnn #1 {##1} ##2 }
- \fp_compare:nNnT \l__coffin_scale_x_fp < \c_zero_fp
- {
- \prop_map_inline:cn { l__coffin_corners_ \__int_value:w #1 _prop }
- { \__coffin_x_shift_corner:Nnnn #1 {##1} ##2 }
- \prop_map_inline:cn { l__coffin_poles_ \__int_value:w #1 _prop }
- { \__coffin_x_shift_pole:Nnnnnn #1 {##1} ##2 }
- }
- }
-\cs_new_protected:Npn \coffin_scale:Nnn #1#2#3
- {
- \fp_set:Nn \l__coffin_scale_x_fp {#2}
- \fp_set:Nn \l__coffin_scale_y_fp {#3}
- \box_scale:Nnn #1 { \l__coffin_scale_x_fp } { \l__coffin_scale_y_fp }
- \dim_set:Nn \l__coffin_internal_dim
- { \coffin_ht:N #1 + \coffin_dp:N #1 }
- \dim_set:Nn \l__coffin_scaled_total_height_dim
- { \fp_abs:n { \l__coffin_scale_y_fp } \l__coffin_internal_dim }
- \dim_set:Nn \l__coffin_scaled_width_dim
- { -\fp_abs:n { \l__coffin_scale_x_fp } \coffin_wd:N #1 }
- \__coffin_resize_common:Nnn #1
- { \l__coffin_scaled_width_dim } { \l__coffin_scaled_total_height_dim }
- }
-\cs_generate_variant:Nn \coffin_scale:Nnn { c }
-\cs_new_protected:Npn \__coffin_scale_vector:nnNN #1#2#3#4
- {
- \dim_set:Nn #3
- { \fp_to_dim:n { \dim_to_fp:n {#1} * \l__coffin_scale_x_fp } }
- \dim_set:Nn #4
- { \fp_to_dim:n { \dim_to_fp:n {#2} * \l__coffin_scale_y_fp } }
- }
-\cs_new_protected:Npn \__coffin_scale_corner:Nnnn #1#2#3#4
- {
- \__coffin_scale_vector:nnNN {#3} {#4} \l__coffin_x_dim \l__coffin_y_dim
- \prop_put:cnx { l__coffin_corners_ \__int_value:w #1 _prop } {#2}
- { { \dim_use:N \l__coffin_x_dim } { \dim_use:N \l__coffin_y_dim } }
- }
-\cs_new_protected:Npn \__coffin_scale_pole:Nnnnnn #1#2#3#4#5#6
- {
- \__coffin_scale_vector:nnNN {#3} {#4} \l__coffin_x_dim \l__coffin_y_dim
- \__coffin_set_pole:Nnx #1 {#2}
- {
- { \dim_use:N \l__coffin_x_dim } { \dim_use:N \l__coffin_y_dim }
- {#5} {#6}
- }
- }
-\cs_new_protected:Npn \__coffin_x_shift_corner:Nnnn #1#2#3#4
- {
- \prop_put:cnx { l__coffin_corners_ \__int_value:w #1 _prop } {#2}
- {
- { \dim_eval:n { #3 + \box_wd:N #1 } } {#4}
- }
- }
-\cs_new_protected:Npn \__coffin_x_shift_pole:Nnnnnn #1#2#3#4#5#6
- {
- \prop_put:cnx { l__coffin_poles_ \__int_value:w #1 _prop } {#2}
- {
- { \dim_eval:n #3 + \box_wd:N #1 } {#4}
- {#5} {#6}
- }
- }
-\cs_new_nopar:Npn \ior_map_break:
- { \__prg_map_break:Nn \ior_map_break: { } }
-\cs_new_nopar:Npn \ior_map_break:n
- { \__prg_map_break:Nn \ior_map_break: }
-\cs_new_protected_nopar:Npn \ior_map_inline:Nn
- { \__ior_map_inline:NNn \ior_get:NN }
-\cs_new_protected_nopar:Npn \ior_str_map_inline:Nn
- { \__ior_map_inline:NNn \ior_get_str:NN }
-\cs_new_protected_nopar:Npn \__ior_map_inline:NNn
- {
- \int_gincr:N \g__prg_map_int
- \exp_args:Nc \__ior_map_inline:NNNn
- { __prg_map_ \int_use:N \g__prg_map_int :n }
- }
-\cs_new_protected:Npn \__ior_map_inline:NNNn #1#2#3#4
- {
- \cs_set:Npn #1 ##1 {#4}
- \ior_if_eof:NF #3 { \__ior_map_inline_loop:NNN #1#2#3 }
- \__prg_break_point:Nn \ior_map_break:
- { \int_gdecr:N \g__prg_map_int }
- }
-\cs_new_protected:Npn \__ior_map_inline_loop:NNN #1#2#3
- {
- #2 #3 \l__ior_internal_tl
- \ior_if_eof:NF #3
- {
- \exp_args:No #1 \l__ior_internal_tl
- \__ior_map_inline_loop:NNN #1#2#3
- }
- }
-\tl_new:N \l__ior_internal_tl
-\cs_new_protected:Npn \fp_set_from_dim:Nn #1#2
- { \tl_set:Nx #1 { \dim_to_fp:n {#2} } }
-\cs_new_protected:Npn \fp_gset_from_dim:Nn #1#2
- { \tl_gset:Nx #1 { \dim_to_fp:n {#2} } }
-\cs_generate_variant:Nn \fp_set_from_dim:Nn { c }
-\cs_generate_variant:Nn \fp_gset_from_dim:Nn { c }
-\cs_new:Npn \prop_map_tokens:Nn #1#2
- {
- \exp_last_unbraced:Nno \__prop_map_tokens:nwwn {#2} #1
- \__prop_pair:wn \q_recursion_tail \s__prop { }
- \__prg_break_point:Nn \prop_map_break: { }
- }
-\cs_new:Npn \__prop_map_tokens:nwwn #1#2 \__prop_pair:wn #3 \s__prop #4
- {
- \if_meaning:w \q_recursion_tail #3
- \exp_after:wN \prop_map_break:
- \fi:
- \use:n {#1} {#3} {#4}
- \__prop_map_tokens:nwwn {#1}
- }
-\cs_generate_variant:Nn \prop_map_tokens:Nn { c }
-\cs_new:Npn \prop_get:Nn #1#2
- {
- \exp_last_unbraced:Noo \__prop_get_Nn:nwwn { \tl_to_str:n {#2} } #1
- \__prop_pair:wn \tl_to_str:n {#2} \s__prop { }
- \__prg_break_point:
- }
-\cs_new:Npn \__prop_get_Nn:nwwn #1#2 \__prop_pair:wn #3 \s__prop #4
- {
- \str_if_eq_x:nnTF {#1} {#3}
- { \__prg_break:n { \exp_not:n {#4} } }
- { \__prop_get_Nn:nwwn {#1} }
- }
-\cs_generate_variant:Nn \prop_get:Nn { c }
-\cs_new:Npn \seq_item:Nn #1
- { \exp_after:wN \__seq_item:wNn #1 \q_stop #1 }
-\cs_new:Npn \__seq_item:wNn \s__seq #1 \q_stop #2#3
- {
- \exp_args:Nf \__seq_item:nnn
- {
- \int_eval:n
- {
- \int_compare:nNnT {#3} < \c_zero
- { \seq_count:N #2 + \c_one + }
- #3
- }
- }
- #1
- { ? \__prg_break: } { }
- \__prg_break_point:
- }
-\cs_new:Npn \__seq_item:nnn #1#2#3
- {
- \use_none:n #2
- \int_compare:nNnTF {#1} = \c_one
- { \__prg_break:n { \exp_not:n {#3} } }
- { \exp_args:Nf \__seq_item:nnn { \int_eval:n { #1 - 1 } } }
- }
-\cs_generate_variant:Nn \seq_item:Nn { c }
-\cs_new:Npn \seq_mapthread_function:NNN #1#2#3
- { \exp_after:wN \__seq_mapthread_function:wNN #2 \q_stop #1 #3 }
-\cs_new:Npn \__seq_mapthread_function:wNN \s__seq #1 \q_stop #2#3
- {
- \exp_after:wN \__seq_mapthread_function:wNw #2 \q_stop #3
- #1 { ? \__prg_break: } { }
- \__prg_break_point:
- }
-\cs_new:Npn \__seq_mapthread_function:wNw \s__seq #1 \q_stop #2
- {
- \__seq_mapthread_function:Nnnwnn #2
- #1 { ? \__prg_break: } { }
- \q_stop
- }
-\cs_new:Npn \__seq_mapthread_function:Nnnwnn #1#2#3#4 \q_stop #5#6
- {
- \use_none:n #2
- \use_none:n #5
- #1 {#3} {#6}
- \__seq_mapthread_function:Nnnwnn #1 #4 \q_stop
- }
-\cs_generate_variant:Nn \seq_mapthread_function:NNN { Nc }
-\cs_generate_variant:Nn \seq_mapthread_function:NNN { c , cc }
-\cs_new_protected:Npn \seq_set_from_clist:NN #1#2
- {
- \tl_set:Nx #1
- { \s__seq \clist_map_function:NN #2 \__seq_wrap_item:n }
- }
-\cs_new_protected:Npn \seq_set_from_clist:Nn #1#2
- {
- \tl_set:Nx #1
- { \s__seq \clist_map_function:nN {#2} \__seq_wrap_item:n }
- }
-\cs_new_protected:Npn \seq_gset_from_clist:NN #1#2
- {
- \tl_gset:Nx #1
- { \s__seq \clist_map_function:NN #2 \__seq_wrap_item:n }
- }
-\cs_new_protected:Npn \seq_gset_from_clist:Nn #1#2
- {
- \tl_gset:Nx #1
- { \s__seq \clist_map_function:nN {#2} \__seq_wrap_item:n }
- }
-\cs_generate_variant:Nn \seq_set_from_clist:NN { Nc }
-\cs_generate_variant:Nn \seq_set_from_clist:NN { c , cc }
-\cs_generate_variant:Nn \seq_set_from_clist:Nn { c }
-\cs_generate_variant:Nn \seq_gset_from_clist:NN { Nc }
-\cs_generate_variant:Nn \seq_gset_from_clist:NN { c , cc }
-\cs_generate_variant:Nn \seq_gset_from_clist:Nn { c }
-\cs_new_protected_nopar:Npn \seq_reverse:N
- { \__seq_reverse:NN \tl_set:Nx }
-\cs_new_protected_nopar:Npn \seq_greverse:N
- { \__seq_reverse:NN \tl_gset:Nx }
-\cs_new_protected:Npn \__seq_reverse:NN #1 #2
- {
- \cs_set_eq:NN \__seq_tmp:w \__seq_item:n
- \cs_set_eq:NN \__seq_item:n \__seq_reverse_item:nwn
- #1 #2 { #2 \exp_not:n { } }
- \cs_set_eq:NN \__seq_item:n \__seq_tmp:w
- }
-\cs_new:Npn \__seq_reverse_item:nwn #1 #2 \exp_not:n #3
- {
- #2
- \exp_not:n { \__seq_item:n {#1} #3 }
- }
-\cs_generate_variant:Nn \seq_reverse:N { c }
-\cs_generate_variant:Nn \seq_greverse:N { c }
-\cs_new_protected_nopar:Npn \seq_set_filter:NNn
- { \__seq_set_filter:NNNn \tl_set:Nx }
-\cs_new_protected_nopar:Npn \seq_gset_filter:NNn
- { \__seq_set_filter:NNNn \tl_gset:Nx }
-\cs_new_protected:Npn \__seq_set_filter:NNNn #1#2#3#4
- {
- \__seq_push_item_def:n { \bool_if:nT {#4} { \__seq_wrap_item:n {##1} } }
- #1 #2 { #3 }
- \__seq_pop_item_def:
- }
-\cs_new_protected_nopar:Npn \seq_set_map:NNn
- { \__seq_set_map:NNNn \tl_set:Nx }
-\cs_new_protected_nopar:Npn \seq_gset_map:NNn
- { \__seq_set_map:NNNn \tl_gset:Nx }
-\cs_new_protected:Npn \__seq_set_map:NNNn #1#2#3#4
- {
- \__seq_push_item_def:n { \exp_not:N \__seq_item:n {#4} }
- #1 #2 { #3 }
- \__seq_pop_item_def:
- }
-\cs_new_eq:NN \dim_to_pt:n \__dim_strip_pt:n
-\cs_new:Npn \dim_to_unit:nn #1#2
- {
- \dim_to_pt:n
- {
- 1pt * \__dim_to_unit:n { \dim_to_pt:n {#1} pt }
- / \__dim_to_unit:n { \dim_to_pt:n {#2} pt }
- }
- }
-\cs_new:Npn \__dim_to_unit:n #1
- { \__int_value:w \__dim_eval:w #1 \__dim_eval_end: }
-\cs_new:Npn \skip_split_finite_else_action:nnNN #1#2#3#4
- {
- \skip_if_finite:nTF {#1}
- {
- #3 = \etex_gluestretch:D #1 \scan_stop:
- #4 = \etex_glueshrink:D #1 \scan_stop:
- }
- {
- #3 = \c_zero_skip
- #4 = \c_zero_skip
- #2
- }
- }
-\prg_new_conditional:Npnn \tl_if_single_token:n #1 { p , T , F , TF }
- {
- \tl_if_head_is_N_type:nTF {#1}
- { \__str_if_eq_x_return:nn { \exp_not:o { \use_none:n #1 } } { } }
- { \__str_if_eq_x_return:nn { \exp_not:n {#1} } { ~ } }
- }
-\cs_new:Npn \tl_reverse_tokens:n #1
- {
- \etex_unexpanded:D \exp_after:wN
- {
- \tex_romannumeral:D
- \__tl_act:NNNnn
- \__tl_reverse_normal:nN
- \__tl_reverse_group:nn
- \__tl_reverse_space:n
- { }
- {#1}
- }
- }
-\cs_new:Npn \__tl_reverse_group:nn #1
- {
- \__tl_act_group_recurse:Nnn
- \__tl_act_reverse_output:n
- { \tl_reverse_tokens:n }
- }
-\cs_new:Npn \__tl_act_group_recurse:Nnn #1#2#3
- {
- \exp_args:Nf #1
- { \exp_after:wN \exp_after:wN \exp_after:wN { #2 {#3} } }
- }
-\cs_new:Npn \tl_count_tokens:n #1
- {
- \int_eval:n
- {
- \__tl_act:NNNnn
- \__tl_act_count_normal:nN
- \__tl_act_count_group:nn
- \__tl_act_count_space:n
- { }
- {#1}
- }
- }
-\cs_new:Npn \__tl_act_count_normal:nN #1 #2 { 1 + }
-\cs_new:Npn \__tl_act_count_space:n #1 { 1 + }
-\cs_new:Npn \__tl_act_count_group:nn #1 #2
- { 2 + \tl_count_tokens:n {#2} + }
-\tl_const:Nn \c__tl_act_uppercase_tl
- {
- aA bB cC dD eE fF gG hH iI jJ kK lL mM
- nN oO pP qQ rR sS tT uU vV wW xX yY zZ
- }
-\tl_const:Nn \c__tl_act_lowercase_tl
- {
- Aa Bb Cc Dd Ee Ff Gg Hh Ii Jj Kk Ll Mm
- Nn Oo Pp Qq Rr Ss Tt Uu Vv Ww Xx Yy Zz
- }
-\cs_new:Npn \tl_expandable_uppercase:n #1
- {
- \etex_unexpanded:D \exp_after:wN
- {
- \tex_romannumeral:D
- \__tl_act_case_aux:nn { \c__tl_act_uppercase_tl } {#1}
- }
- }
-\cs_new:Npn \tl_expandable_lowercase:n #1
- {
- \etex_unexpanded:D \exp_after:wN
- {
- \tex_romannumeral:D
- \__tl_act_case_aux:nn { \c__tl_act_lowercase_tl } {#1}
- }
- }
-\cs_new:Npn \__tl_act_case_aux:nn
- {
- \__tl_act:NNNnn
- \__tl_act_case_normal:nN
- \__tl_act_case_group:nn
- \__tl_act_case_space:n
- }
-\cs_new:Npn \__tl_act_case_space:n #1 { \__tl_act_output:n {~} }
-\cs_new:Npn \__tl_act_case_normal:nN #1 #2
- {
- \exp_args:Nf \__tl_act_output:n
- {
- \exp_args:NNo \str_case:nnF #2 {#1}
- { \exp_stop_f: #2 }
- }
- }
-\cs_new:Npn \__tl_act_case_group:nn #1 #2
- {
- \exp_after:wN \__tl_act_output:n \exp_after:wN
- { \exp_after:wN { \tex_romannumeral:D \__tl_act_case_aux:nn {#1} {#2} } }
- }
-\cs_new:Npn \tl_item:nn #1#2
- {
- \exp_args:Nf \__tl_item:nn
- {
- \int_eval:n
- {
- \int_compare:nNnT {#2} < \c_zero
- { \tl_count:n {#1} + \c_one + }
- #2
- }
- }
- #1
- \q_recursion_tail
- \__prg_break_point:
- }
-\cs_new:Npn \__tl_item:nn #1#2
- {
- \__quark_if_recursion_tail_break:nN {#2} \__prg_break:
- \int_compare:nNnTF {#1} = \c_one
- { \__prg_break:n { \exp_not:n {#2} } }
- { \exp_args:Nf \__tl_item:nn { \int_eval:n { #1 - 1 } } }
- }
-\cs_new_nopar:Npn \tl_item:Nn { \exp_args:No \tl_item:nn }
-\cs_generate_variant:Nn \tl_item:Nn { c }
-\group_begin:
- \char_set_catcode_active:N \^^@
- \cs_set:Npn \char_tmp:NN #1#2
- {
- \cs_new:Npn #1 ##1
- {
- \char_set_catcode_active:n { `##1 }
- \group_begin:
- \char_set_lccode:nn { `\^^@ } { `##1 }
- \tl_to_lowercase:n { \group_end: #2 ^^@ }
- }
- }
- \char_tmp:NN \char_set_active:Npn \cs_set:Npn
- \char_tmp:NN \char_set_active:Npx \cs_set:Npx
- \char_tmp:NN \char_gset_active:Npn \cs_gset:Npn
- \char_tmp:NN \char_gset_active:Npx \cs_gset:Npx
- \char_tmp:NN \char_set_active_eq:NN \cs_set_eq:NN
- \char_tmp:NN \char_gset_active_eq:NN \cs_gset_eq:NN
-\group_end:
-\group_begin:
- \char_set_catcode_other:N \O
- \char_set_catcode_other:N \U
- \char_set_catcode_other:N \T
- \char_set_catcode_other:N \E
- \char_set_catcode_other:N \R
- \tl_to_lowercase:n
- {
- \cs_new_protected_nopar:Npn \__peek_execute_branches_N_type:
- {
- \if_int_odd:w
- \if_catcode:w \exp_not:N \l_peek_token { \c_two \fi:
- \if_catcode:w \exp_not:N \l_peek_token } \c_two \fi:
- \if_meaning:w \l_peek_token \c_space_token \c_two \fi:
- \c_one
- \exp_after:wN \__peek_N_type:w
- \token_to_meaning:N \l_peek_token
- \q_mark \__peek_N_type_aux:nnw
- OUTER \q_mark \use_none_delimit_by_q_stop:w
- \q_stop
- \exp_after:wN \__peek_true:w
- \else:
- \exp_after:wN \__peek_false:w
- \fi:
- }
- \cs_new_protected:Npn \__peek_N_type:w #1 OUTER #2 \q_mark #3
- { #3 {#1} {#2} }
- }
-\group_end:
-\cs_new_protected:Npn \__peek_N_type_aux:nnw #1 #2 #3 \fi:
- {
- \fi:
- \tl_if_in:noTF {#1} { \tl_to_str:n {ma} }
- { \__peek_true:w }
- { \tl_if_empty:nTF {#2} { \__peek_true:w } { \__peek_false:w } }
- }
-\cs_new_protected_nopar:Npn \peek_N_type:TF
- { \__peek_token_generic:NNTF \__peek_execute_branches_N_type: \scan_stop: }
-\cs_new_protected_nopar:Npn \peek_N_type:T
- { \__peek_token_generic:NNT \__peek_execute_branches_N_type: \scan_stop: }
-\cs_new_protected_nopar:Npn \peek_N_type:F
- { \__peek_token_generic:NNF \__peek_execute_branches_N_type: \scan_stop: }
-%%
-%%
-%% End of file `l3candidates.sty'.