summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2017-05-14 22:40:58 +0000
committerKarl Berry <karl@freefriends.org>2017-05-14 22:40:58 +0000
commite0c5d6d38a1f285f20a66692e46d2e607d6ff1dd (patch)
tree977232bc088d27b46d9a6330c8f4f47aa98dbb78 /Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
parent4407d96af752e6e79a48c25c5189bd1a63fbd125 (diff)
l3 (14may17)
git-svn-id: svn://tug.org/texlive/trunk@44351 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex')
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex887
1 files changed, 473 insertions, 414 deletions
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
index f0604e11f7c..16769c81796 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
@@ -58,7 +58,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: expl3.dtx Copyright (C) 1990-2017 The LaTeX3 Project
-\def\ExplFileDate{2017/04/01}%
+\def\ExplFileDate{2017/05/13}%
\begingroup
\def\next{\endgroup}%
\expandafter\ifx\csname PackageError\endcsname\relax
@@ -3064,7 +3064,8 @@
\cs_new_protected:Npn \tl_map_inline:nn #1#2
{
\int_gincr:N \g__prg_map_int
- \cs_gset:cpn { __prg_map_ \int_use:N \g__prg_map_int :w } ##1 {#2}
+ \cs_gset_protected:cpn
+ { __prg_map_ \int_use:N \g__prg_map_int :w } ##1 {#2}
\exp_args:Nc \__tl_map_function:Nn
{ __prg_map_ \int_use:N \g__prg_map_int :w }
#1 \q_recursion_tail
@@ -4788,7 +4789,7 @@
\cs_generate_variant:Nn \int_gincr:N { c }
\cs_generate_variant:Nn \int_gdecr:N { c }
\cs_new_protected:Npn \int_set:Nn #1#2
- { #1 ~ \__int_eval:w #2\__int_eval_end: }
+ { #1 ~ \__int_eval:w #2 \__int_eval_end: }
\cs_new_protected:Npn \int_gset:Nn { \tex_global:D \int_set:Nn }
\cs_generate_variant:Nn \int_set:Nn { c }
\cs_generate_variant:Nn \int_gset:Nn { c }
@@ -5005,14 +5006,14 @@
{
\int_gincr:N \g__prg_map_int
\exp_args:NNc \__int_step:NNnnnn
- \cs_gset:Npn
+ \cs_gset_protected:Npn
{ __prg_map_ \int_use:N \g__prg_map_int :w }
}
\cs_new_protected:Npn \int_step_variable:nnnNn #1#2#3#4#5
{
\int_gincr:N \g__prg_map_int
\exp_args:NNc \__int_step:NNnnnn
- \cs_gset:Npx
+ \cs_gset_protected:Npx
{ __prg_map_ \int_use:N \g__prg_map_int :w }
{#1}{#2}{#3}
{
@@ -6307,7 +6308,8 @@
\clist_if_empty:NF #1
{
\int_gincr:N \g__prg_map_int
- \cs_gset:cpn { __prg_map_ \int_use:N \g__prg_map_int :w } ##1 {#2}
+ \cs_gset_protected:cpn
+ { __prg_map_ \int_use:N \g__prg_map_int :w } ##1 {#2}
\exp_last_unbraced:Nco \__clist_map_function:Nw
{ __prg_map_ \int_use:N \g__prg_map_int :w }
#1 , \q_recursion_tail ,
@@ -7474,7 +7476,7 @@
\cs_gset_eq:cN
{ __prg_map_ \int_use:N \g__prg_map_int :wn } \__prop_pair:wn
\int_gincr:N \g__prg_map_int
- \cs_gset:Npn \__prop_pair:wn ##1 \s__prop ##2 {#2}
+ \cs_gset_protected:Npn \__prop_pair:wn ##1 \s__prop ##2 {#2}
#1
\__prg_break_point:Nn \prop_map_break:
{
@@ -11329,10 +11331,13 @@
{
\cs_if_exist_use:cF { __fp_parse_word_#2:N }
{
- \__msg_kernel_expandable_error:nnn
- { kernel } { unknown-fp-word } {#2}
- \exp_after:wN \c_nan_fp \exp:w \exp_end_continue_f:w
- \__fp_parse_infix:NN
+ \cs_if_exist_use:cF { __fp_parse_caseless_ \str_fold_case:n {#2} :N }
+ {
+ \__msg_kernel_expandable_error:nnn
+ { kernel } { unknown-fp-word } {#2}
+ \exp_after:wN \c_nan_fp \exp:w \exp_end_continue_f:w
+ \__fp_parse_infix:NN
+ }
}
#1
}
@@ -11823,6 +11828,9 @@
\__fp_tmp:w { deg } \c_one_degree_fp
\__fp_tmp:w { true } \c_one_fp
\__fp_tmp:w { false } \c_zero_fp
+\cs_new_eq:NN \__fp_parse_caseless_inf:N \__fp_parse_word_inf:N
+\cs_new_eq:NN \__fp_parse_caseless_infinity:N \__fp_parse_word_inf:N
+\cs_new_eq:NN \__fp_parse_caseless_nan:N \__fp_parse_word_nan:N
\cs_set_protected:Npn \__fp_tmp:w #1 #2
{
\cs_new:cpn { __fp_parse_word_#1:N }
@@ -12512,13 +12520,29 @@
}
}
\cs_generate_variant:Nn \__fp_step:NnnnnN { Nf }
-\cs_new_protected:Npn \fp_step_inline:nnnn #1#2#3#4
+\cs_new_protected:Npn \fp_step_inline:nnnn
+ {
+ \int_gincr:N \g__prg_map_int
+ \exp_args:NNc \__fp_step:NNnnnn
+ \cs_gset_protected:Npn
+ { __prg_map_ \int_use:N \g__prg_map_int :w }
+ }
+\cs_new_protected:Npn \fp_step_variable:nnnNn #1#2#3#4#5
{
\int_gincr:N \g__prg_map_int
- \cs_gset_protected:cpn { __prg_map_ \int_use:N \g__prg_map_int :w }
- ##1 {#4}
- \fp_step_function:nnnc {#1} {#2} {#3}
+ \exp_args:NNc \__fp_step:NNnnnn
+ \cs_gset_protected:Npx
{ __prg_map_ \int_use:N \g__prg_map_int :w }
+ {#1} {#2} {#3}
+ {
+ \tl_set:Nn \exp_not:N #4 {##1}
+ \exp_not:n {#5}
+ }
+ }
+\cs_new_protected:Npn \__fp_step:NNnnnn #1#2#3#4#5#6
+ {
+ #1 #2 ##1 {#6}
+ \fp_step_function:nnnN {#3} {#4} {#5} #2
\__prg_break_point:Nn \scan_stop: { \int_gdecr:N \g__prg_map_int }
}
\__msg_kernel_new:nnn { kernel } { fp-bad-step }
@@ -16320,29 +16344,45 @@
}
}
\cs_generate_variant:Nn \__box_show:NNnn { NNff }
-\cs_new_protected:Npn \hbox:n #1 { \tex_hbox:D \scan_stop: {#1} }
+\cs_new_protected:Npn \hbox:n #1
+ { \tex_hbox:D \scan_stop: { \group_begin: #1 \group_end: } }
\cs_new_protected:Npn \hbox_set:Nn #1#2
- { \tex_setbox:D #1 \tex_hbox:D {#2} }
+ { \tex_setbox:D #1 \tex_hbox:D { \group_begin: #2 \group_end: } }
\cs_new_protected:Npn \hbox_gset:Nn { \tex_global:D \hbox_set:Nn }
\cs_generate_variant:Nn \hbox_set:Nn { c }
\cs_generate_variant:Nn \hbox_gset:Nn { c }
\cs_new_protected:Npn \hbox_set_to_wd:Nnn #1#2#3
- { \tex_setbox:D #1 \tex_hbox:D to \__dim_eval:w #2 \__dim_eval_end: {#3} }
+ {
+ \tex_setbox:D #1 \tex_hbox:D to \__dim_eval:w #2 \__dim_eval_end:
+ { \group_begin: #3 \group_end: }
+ }
\cs_new_protected:Npn \hbox_gset_to_wd:Nnn
{ \tex_global:D \hbox_set_to_wd:Nnn }
\cs_generate_variant:Nn \hbox_set_to_wd:Nnn { c }
\cs_generate_variant:Nn \hbox_gset_to_wd:Nnn { c }
\cs_new_protected:Npn \hbox_set:Nw #1
- { \tex_setbox:D #1 \tex_hbox:D \c_group_begin_token }
+ {
+ \tex_setbox:D #1 \tex_hbox:D
+ \c_group_begin_token
+ \group_begin:
+ }
\cs_new_protected:Npn \hbox_gset:Nw
{ \tex_global:D \hbox_set:Nw }
\cs_generate_variant:Nn \hbox_set:Nw { c }
\cs_generate_variant:Nn \hbox_gset:Nw { c }
-\cs_new_eq:NN \hbox_set_end: \c_group_end_token
-\cs_new_eq:NN \hbox_gset_end: \c_group_end_token
+\cs_new_protected:Npn \hbox_set_end:
+ {
+ \group_end:
+ \c_group_end_token
+ }
+\cs_new_eq:NN \hbox_gset_end: \hbox_set_end:
\cs_new_protected:Npn \hbox_to_wd:nn #1#2
- { \tex_hbox:D to \__dim_eval:w #1 \__dim_eval_end: {#2} }
-\cs_new_protected:Npn \hbox_to_zero:n #1 { \tex_hbox:D to \c_zero_dim {#1} }
+ {
+ \tex_hbox:D to \__dim_eval:w #1 \__dim_eval_end:
+ { \group_begin: #2 \group_end: }
+ }
+\cs_new_protected:Npn \hbox_to_zero:n #1
+ { \tex_hbox:D to \c_zero_dim { \group_begin: #1 \group_end: } }
\cs_new_protected:Npn \hbox_overlap_left:n #1
{ \hbox_to_zero:n { \tex_hss:D #1 } }
\cs_new_protected:Npn \hbox_overlap_right:n #1
@@ -16351,19 +16391,33 @@
\cs_new_eq:NN \hbox_unpack_clear:N \tex_unhbox:D
\cs_generate_variant:Nn \hbox_unpack:N { c }
\cs_generate_variant:Nn \hbox_unpack_clear:N { c }
-\cs_new_protected:Npn \vbox:n #1 { \tex_vbox:D { #1 \par } }
-\cs_new_protected:Npn \vbox_top:n #1 { \tex_vtop:D { #1 \par } }
+\cs_new_protected:Npn \vbox:n #1
+ { \tex_vbox:D { \group_begin: #1 \par \group_end: } }
+\cs_new_protected:Npn \vbox_top:n #1
+ { \tex_vtop:D { \group_begin: #1 \par \group_end: } }
\cs_new_protected:Npn \vbox_to_ht:nn #1#2
- { \tex_vbox:D to \__dim_eval:w #1 \__dim_eval_end: { #2 \par } }
+ {
+ \tex_vbox:D to \__dim_eval:w #1 \__dim_eval_end:
+ { \group_begin: #2 \par \group_end: }
+ }
\cs_new_protected:Npn \vbox_to_zero:n #1
- { \tex_vbox:D to \c_zero_dim { #1 \par } }
+ {
+ \tex_vbox:D to \c_zero_dim
+ { \group_begin: #1 \par \group_end: }
+ }
\cs_new_protected:Npn \vbox_set:Nn #1#2
- { \tex_setbox:D #1 \tex_vbox:D { #2 \par } }
+ {
+ \tex_setbox:D #1 \tex_vbox:D
+ { \group_begin: #2 \par \group_end: }
+ }
\cs_new_protected:Npn \vbox_gset:Nn { \tex_global:D \vbox_set:Nn }
\cs_generate_variant:Nn \vbox_set:Nn { c }
\cs_generate_variant:Nn \vbox_gset:Nn { c }
\cs_new_protected:Npn \vbox_set_top:Nn #1#2
- { \tex_setbox:D #1 \tex_vtop:D { #2 \par } }
+ {
+ \tex_setbox:D #1 \tex_vtop:D
+ { \group_begin: #2 \par \group_end: }
+ }
\cs_new_protected:Npn \vbox_gset_top:Nn
{ \tex_global:D \vbox_set_top:Nn }
\cs_generate_variant:Nn \vbox_set_top:Nn { c }
@@ -16371,21 +16425,26 @@
\cs_new_protected:Npn \vbox_set_to_ht:Nnn #1#2#3
{
\tex_setbox:D #1 \tex_vbox:D to \__dim_eval:w #2 \__dim_eval_end:
- { #3 \par }
+ { \group_begin: #3 \par \group_end: }
}
\cs_new_protected:Npn \vbox_gset_to_ht:Nnn
{ \tex_global:D \vbox_set_to_ht:Nnn }
\cs_generate_variant:Nn \vbox_set_to_ht:Nnn { c }
\cs_generate_variant:Nn \vbox_gset_to_ht:Nnn { c }
\cs_new_protected:Npn \vbox_set:Nw #1
- { \tex_setbox:D #1 \tex_vbox:D \c_group_begin_token }
+ {
+ \tex_setbox:D #1 \tex_vbox:D
+ \c_group_begin_token
+ \group_begin:
+ }
\cs_new_protected:Npn \vbox_gset:Nw
{ \tex_global:D \vbox_set:Nw }
\cs_generate_variant:Nn \vbox_set:Nw { c }
\cs_generate_variant:Nn \vbox_gset:Nw { c }
\cs_new_protected:Npn \vbox_set_end:
{
- \par
+ \par
+ \group_end:
\c_group_end_token
}
\cs_new_eq:NN \vbox_gset_end: \vbox_set_end:
@@ -16395,21 +16454,322 @@
\cs_generate_variant:Nn \vbox_unpack_clear:N { c }
\cs_new_protected:Npn \vbox_set_split_to_ht:NNn #1#2#3
{ \tex_setbox:D #1 \tex_vsplit:D #2 to \__dim_eval:w #3 \__dim_eval_end: }
+\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
+ {
+ \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
+ }
+ }
+\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_use_rotate:Nn
+ \l__box_internal_box
+ \l__box_angle_fp
+ }
+ }
+ \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_to_wd_and_ht_plus_dp:Nnn #1#2#3
+ {
+ \hbox_set:Nn #1
+ {
+ \__box_resize_set_corners:N #1
+ \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:N #1
+ }
+ }
+\cs_generate_variant:Nn \box_resize_to_wd_and_ht_plus_dp:Nnn { c }
+\cs_new_protected:Npn \__box_resize_set_corners: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
+ }
+\cs_new_protected:Npn \__box_resize:N #1
+ {
+ \__box_resize:NNN \l__box_right_new_dim
+ \l__box_scale_x_fp \l__box_right_dim
+ \__box_resize:NNN \l__box_bottom_new_dim
+ \l__box_scale_y_fp \l__box_bottom_dim
+ \__box_resize:NNN \l__box_top_new_dim
+ \l__box_scale_y_fp \l__box_top_dim
+ \__box_resize_common:N #1
+ }
+\cs_new_protected:Npn \__box_resize:NNN #1#2#3
+ {
+ \dim_set:Nn #1
+ { \fp_to_dim:n { \fp_abs:n { #2 } * \dim_to_fp:n { #3 } } }
+ }
+\cs_new_protected:Npn \box_resize_to_ht:Nn #1#2
+ {
+ \hbox_set:Nn #1
+ {
+ \__box_resize_set_corners:N #1
+ \fp_set:Nn \l__box_scale_y_fp
+ {
+ \dim_to_fp:n {#2}
+ / \dim_to_fp:n { \l__box_top_dim }
+ }
+ \fp_set_eq:NN \l__box_scale_x_fp \l__box_scale_y_fp
+ \__box_resize:N #1
+ }
+ }
+\cs_generate_variant:Nn \box_resize_to_ht:Nn { c }
+\cs_new_protected:Npn \box_resize_to_ht_plus_dp:Nn #1#2
+ {
+ \hbox_set:Nn #1
+ {
+ \__box_resize_set_corners:N #1
+ \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:N #1
+ }
+ }
+\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
+ {
+ \__box_resize_set_corners:N #1
+ \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:N #1
+ }
+ }
+\cs_generate_variant:Nn \box_resize_to_wd:Nn { c }
+\cs_new_protected:Npn \box_resize_to_wd_and_ht:Nnn #1#2#3
+ {
+ \hbox_set:Nn #1
+ {
+ \__box_resize_set_corners:N #1
+ \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 }
+ }
+ \__box_resize:N #1
+ }
+ }
+\cs_generate_variant:Nn \box_resize_to_wd_and_ht:Nnn { c }
+\cs_new_protected:Npn \box_scale:Nnn #1#2#3
+ {
+ \hbox_set:Nn #1
+ {
+ \fp_set:Nn \l__box_scale_x_fp {#2}
+ \fp_set:Nn \l__box_scale_y_fp {#3}
+ \__box_scale_aux:N #1
+ }
+ }
+\cs_generate_variant:Nn \box_scale:Nnn { c }
+\cs_new_protected:Npn \__box_scale_aux: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
+ \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
+ }
+\cs_new_protected:Npn \box_autosize_to_wd_and_ht:Nnn #1#2#3
+ { \__box_autosize:Nnnn #1 {#2} {#3} { \box_ht:N #1 } }
+\cs_generate_variant:Nn \box_autosize_to_wd_and_ht:Nnn { c }
+\cs_new_protected:Npn \box_autosize_to_wd_and_ht_plus_dp:Nnn #1#2#3
+ { \__box_autosize:Nnnn #1 {#2} {#3} { \box_ht:N #1 + \box_dp:N #1 } }
+\cs_generate_variant:Nn \box_autosize_to_wd_and_ht_plus_dp:Nnn { c }
+\cs_new_protected:Npn \__box_autosize:Nnnn #1#2#3#4
+ {
+ \hbox_set:Nn #1
+ {
+ \fp_set:Nn \l__box_scale_x_fp { ( #2 ) / \box_wd:N #1 }
+ \fp_set:Nn \l__box_scale_y_fp { ( #3 ) / ( #4 ) }
+ \fp_compare:nNnTF \l__box_scale_x_fp > \l__box_scale_y_fp
+ { \fp_set_eq:NN \l__box_scale_x_fp \l__box_scale_y_fp }
+ { \fp_set_eq:NN \l__box_scale_y_fp \l__box_scale_x_fp }
+ \__box_scale_aux:N #1
+ }
+ }
+\cs_new_protected:Npn \__box_resize_common:N #1
+ {
+ \hbox_set:Nn \l__box_internal_box
+ {
+ \__driver_box_use_scale:Nnn
+ #1
+ \l__box_scale_x_fp
+ \l__box_scale_y_fp
+ }
+ \fp_compare:nNnTF \l__box_scale_y_fp > \c_zero_fp
+ {
+ \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_dp:Nn \l__box_internal_box { \l__box_top_new_dim }
+ \box_set_ht: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_eq:NN \box_resize:Nnn \box_resize_to_wd_and_ht_plus_dp:Nnn
+\cs_new_eq:NN \box_resize:cnn \box_resize_to_wd_and_ht_plus_dp:cnn
%% File: l3coffins.dtx Copyright(C) 2010-2017 The LaTeX3 Project
\box_new:N \l__coffin_internal_box
\dim_new:N \l__coffin_internal_dim
\tl_new:N \l__coffin_internal_tl
\prop_new:N \c__coffin_corners_prop
-\prop_put:Nnn \c__coffin_corners_prop { tl } { { 0 pt } { 0 pt } }
-\prop_put:Nnn \c__coffin_corners_prop { tr } { { 0 pt } { 0 pt } }
-\prop_put:Nnn \c__coffin_corners_prop { bl } { { 0 pt } { 0 pt } }
-\prop_put:Nnn \c__coffin_corners_prop { br } { { 0 pt } { 0 pt } }
+\prop_put:Nnn \c__coffin_corners_prop { tl } { { 0pt } { 0pt } }
+\prop_put:Nnn \c__coffin_corners_prop { tr } { { 0pt } { 0pt } }
+\prop_put:Nnn \c__coffin_corners_prop { bl } { { 0pt } { 0pt } }
+\prop_put:Nnn \c__coffin_corners_prop { br } { { 0pt } { 0pt } }
\prop_new:N \c__coffin_poles_prop
-\tl_set:Nn \l__coffin_internal_tl { { 0 pt } { 0 pt } { 0 pt } { 1000 pt } }
+\tl_set:Nn \l__coffin_internal_tl { { 0pt } { 0pt } { 0pt } { 1000pt } }
\prop_put:Nno \c__coffin_poles_prop { l } { \l__coffin_internal_tl }
\prop_put:Nno \c__coffin_poles_prop { hc } { \l__coffin_internal_tl }
\prop_put:Nno \c__coffin_poles_prop { r } { \l__coffin_internal_tl }
-\tl_set:Nn \l__coffin_internal_tl { { 0 pt } { 0 pt } { 1000 pt } { 0 pt } }
+\tl_set:Nn \l__coffin_internal_tl { { 0pt } { 0pt } { 1000pt } { 0pt } }
\prop_put:Nno \c__coffin_poles_prop { b } { \l__coffin_internal_tl }
\prop_put:Nno \c__coffin_poles_prop { vc } { \l__coffin_internal_tl }
\prop_put:Nno \c__coffin_poles_prop { t } { \l__coffin_internal_tl }
@@ -16478,10 +16838,8 @@
{
\hbox_set:Nn #1
{
- \color_group_begin:
- \color_ensure_current:
- #2
- \color_group_end:
+ \color_ensure_current:
+ #2
}
\__coffin_reset_structure:N #1
\__coffin_update_poles:N #1
@@ -16498,9 +16856,7 @@
\dim_set:Nn \tex_hsize:D {#2}
\dim_set_eq:NN \linewidth \tex_hsize:D
\dim_set_eq:NN \columnwidth \tex_hsize:D
- \color_group_begin:
- #3
- \color_group_end:
+ #3
}
\__coffin_reset_structure:N #1
\__coffin_update_poles:N #1
@@ -16508,13 +16864,13 @@
\vbox_set_top:Nn \l__coffin_internal_box { \vbox_unpack:N #1 }
\__coffin_set_pole:Nnx #1 { T }
{
- { 0 pt }
+ { 0pt }
{
\dim_eval:n
{ \box_ht:N #1 - \box_ht:N \l__coffin_internal_box }
}
- { 1000 pt }
- { 0 pt }
+ { 1000pt }
+ { 0pt }
}
\box_clear:N \l__coffin_internal_box
}
@@ -16524,10 +16880,9 @@
{
\__coffin_if_exist:NT #1
{
- \hbox_set:Nw #1 \color_group_begin: \color_ensure_current:
+ \hbox_set:Nw #1 \color_ensure_current:
\cs_set_protected:Npn \hcoffin_set_end:
{
- \color_group_end:
\hbox_set_end:
\__coffin_reset_structure:N #1
\__coffin_update_poles:N #1
@@ -16545,10 +16900,8 @@
\dim_set:Nn \tex_hsize:D {#2}
\dim_set_eq:NN \linewidth \tex_hsize:D
\dim_set_eq:NN \columnwidth \tex_hsize:D
- \color_group_begin:
\cs_set_protected:Npn \vcoffin_set_end:
{
- \color_group_end:
\vbox_set_end:
\__coffin_reset_structure:N #1
\__coffin_update_poles:N #1
@@ -16556,13 +16909,13 @@
\vbox_set_top:Nn \l__coffin_internal_box { \vbox_unpack:N #1 }
\__coffin_set_pole:Nnx #1 { T }
{
- { 0 pt }
+ { 0pt }
{
\dim_eval:n
{ \box_ht:N #1 - \box_ht:N \l__coffin_internal_box }
}
- { 1000 pt }
- { 0 pt }
+ { 1000pt }
+ { 0pt }
}
\box_clear:N \l__coffin_internal_box
}
@@ -16598,7 +16951,7 @@
{
\__msg_kernel_error:nnxx { kernel } { unknown-coffin-pole }
{#2} { \token_to_str:N #1 }
- \tl_set:Nn #3 { { 0 pt } { 0 pt } { 0 pt } { 0 pt } }
+ \tl_set:Nn #3 { { 0pt } { 0pt } { 0pt } { 0pt } }
}
}
\cs_new_protected:Npn \__coffin_reset_structure:N #1
@@ -16628,8 +16981,8 @@
{
\__coffin_set_pole:Nnx #1 {#2}
{
- { 0 pt } { \dim_eval:n {#3} }
- { 1000 pt } { 0 pt }
+ { 0pt } { \dim_eval:n {#3} }
+ { 1000pt } { 0pt }
}
}
}
@@ -16639,8 +16992,8 @@
{
\__coffin_set_pole:Nnx #1 {#2}
{
- { \dim_eval:n {#3} } { 0 pt }
- { 0 pt } { 1000 pt }
+ { \dim_eval:n {#3} } { 0pt }
+ { 0pt } { 1000pt }
}
}
}
@@ -16652,11 +17005,11 @@
\cs_new_protected:Npn \__coffin_update_corners:N #1
{
\prop_put:cnx { l__coffin_corners_ \__int_value:w #1 _prop } { tl }
- { { 0 pt } { \dim_eval:n { \box_ht:N #1 } } }
+ { { 0pt } { \dim_eval:n { \box_ht:N #1 } } }
\prop_put:cnx { l__coffin_corners_ \__int_value:w #1 _prop } { tr }
{ { \dim_eval:n { \box_wd:N #1 } } { \dim_eval:n { \box_ht:N #1 } } }
\prop_put:cnx { l__coffin_corners_ \__int_value:w #1 _prop } { bl }
- { { 0 pt } { \dim_eval:n { - \box_dp:N #1 } } }
+ { { 0pt } { \dim_eval:n { -\box_dp:N #1 } } }
\prop_put:cnx { l__coffin_corners_ \__int_value:w #1 _prop } { br }
{ { \dim_eval:n { \box_wd:N #1 } } { \dim_eval:n { -\box_dp:N #1 } } }
}
@@ -16665,33 +17018,33 @@
\prop_put:cnx { l__coffin_poles_ \__int_value:w #1 _prop } { hc }
{
{ \dim_eval:n { 0.5 \box_wd:N #1 } }
- { 0 pt } { 0 pt } { 1000 pt }
+ { 0pt } { 0pt } { 1000pt }
}
\prop_put:cnx { l__coffin_poles_ \__int_value:w #1 _prop } { r }
{
{ \dim_eval:n { \box_wd:N #1 } }
- { 0 pt } { 0 pt } { 1000 pt }
+ { 0pt } { 0pt } { 1000pt }
}
\prop_put:cnx { l__coffin_poles_ \__int_value:w #1 _prop } { vc }
{
- { 0 pt }
+ { 0pt }
{ \dim_eval:n { ( \box_ht:N #1 - \box_dp:N #1 ) / 2 } }
- { 1000 pt }
- { 0 pt }
+ { 1000pt }
+ { 0pt }
}
\prop_put:cnx { l__coffin_poles_ \__int_value:w #1 _prop } { t }
{
- { 0 pt }
+ { 0pt }
{ \dim_eval:n { \box_ht:N #1 } }
- { 1000 pt }
- { 0 pt }
+ { 1000pt }
+ { 0pt }
}
\prop_put:cnx { l__coffin_poles_ \__int_value:w #1 _prop } { b }
{
- { 0 pt }
- { \dim_eval:n { - \box_dp:N #1 } }
- { 1000 pt }
- { 0 pt }
+ { 0pt }
+ { \dim_eval:n { -\box_dp:N #1 } }
+ { 1000pt }
+ { 0pt }
}
}
\cs_new_protected:Npn \__coffin_calculate_intersection:Nnn #1#2#3
@@ -16816,21 +17169,21 @@
{ \tex_kern:D -\l__coffin_internal_dim }
}
\__coffin_reset_structure:N \l__coffin_aligned_coffin
- \prop_clear:c
- { l__coffin_corners_ \__int_value:w \l__coffin_aligned_coffin _ prop }
- \__coffin_update_poles:N \l__coffin_aligned_coffin
+ \prop_clear:c
+ { l__coffin_corners_ \__int_value:w \l__coffin_aligned_coffin _ prop }
+ \__coffin_update_poles:N \l__coffin_aligned_coffin
\dim_compare:nNnTF \l__coffin_offset_x_dim < \c_zero_dim
{
- \__coffin_offset_poles:Nnn #1 { -\l__coffin_offset_x_dim } { 0 pt }
- \__coffin_offset_poles:Nnn #4 { 0 pt } { \l__coffin_offset_y_dim }
- \__coffin_offset_corners:Nnn #1 { -\l__coffin_offset_x_dim } { 0 pt }
- \__coffin_offset_corners:Nnn #4 { 0 pt } { \l__coffin_offset_y_dim }
+ \__coffin_offset_poles:Nnn #1 { -\l__coffin_offset_x_dim } { 0pt }
+ \__coffin_offset_poles:Nnn #4 { 0pt } { \l__coffin_offset_y_dim }
+ \__coffin_offset_corners:Nnn #1 { -\l__coffin_offset_x_dim } { 0pt }
+ \__coffin_offset_corners:Nnn #4 { 0pt } { \l__coffin_offset_y_dim }
}
{
- \__coffin_offset_poles:Nnn #1 { 0 pt } { 0 pt }
+ \__coffin_offset_poles:Nnn #1 { 0pt } { 0pt }
\__coffin_offset_poles:Nnn #4
{ \l__coffin_offset_x_dim } { \l__coffin_offset_y_dim }
- \__coffin_offset_corners:Nnn #1 { 0 pt } { 0 pt }
+ \__coffin_offset_corners:Nnn #1 { 0pt } { 0pt }
\__coffin_offset_corners:Nnn #4
{ \l__coffin_offset_x_dim } { \l__coffin_offset_y_dim }
}
@@ -16850,7 +17203,7 @@
{ l__coffin_corners_ \__int_value:w \l__coffin_aligned_coffin _prop }
{ l__coffin_corners_ \__int_value:w #1 _prop }
\__coffin_update_poles:N \l__coffin_aligned_coffin
- \__coffin_offset_poles:Nnn #1 { 0 pt } { 0 pt }
+ \__coffin_offset_poles:Nnn #1 { 0pt } { 0pt }
\__coffin_offset_poles:Nnn #4
{ \l__coffin_offset_x_dim } { \l__coffin_offset_y_dim }
\__coffin_update_vertical_poles:NNN #1 #4 \l__coffin_aligned_coffin
@@ -16935,11 +17288,11 @@
\dim_compare:nNnTF {#2} < {#6}
{
\__coffin_set_pole:Nnx #9 { T }
- { { 0 pt } {#6} { 1000 pt } { 0 pt } }
+ { { 0pt } {#6} { 1000pt } { 0pt } }
}
{
\__coffin_set_pole:Nnx #9 { T }
- { { 0 pt } {#2} { 1000 pt } { 0 pt } }
+ { { 0pt } {#2} { 1000pt } { 0pt } }
}
}
\cs_new_protected:Npn \__coffin_update_B:nnnnnnnnN #1#2#3#4#5#6#7#8#9
@@ -16947,11 +17300,11 @@
\dim_compare:nNnTF {#2} < {#6}
{
\__coffin_set_pole:Nnx #9 { B }
- { { 0 pt } {#2} { 1000 pt } { 0 pt } }
+ { { 0pt } {#2} { 1000pt } { 0pt } }
}
{
\__coffin_set_pole:Nnx #9 { B }
- { { 0 pt } {#6} { 1000 pt } { 0 pt } }
+ { { 0pt } {#6} { 1000pt } { 0pt } }
}
}
\cs_new_protected:Npn \coffin_typeset:Nnnnn #1#2#3#4#5
@@ -17003,7 +17356,7 @@
\prop_put:Nnn \l__coffin_display_handles_prop { Br }
{ { b } { l } { 1 } { -1 } }
\dim_new:N \l__coffin_display_offset_dim
-\dim_set:Nn \l__coffin_display_offset_dim { 2 pt }
+\dim_set:Nn \l__coffin_display_offset_dim { 2pt }
\dim_new:N \l__coffin_display_x_dim
\dim_new:N \l__coffin_display_y_dim
\prop_new:N \l__coffin_display_poles_prop
@@ -17014,10 +17367,10 @@
\hcoffin_set:Nn \l__coffin_display_pole_coffin
{
\color {#4}
- \rule { 1 pt } { 1 pt }
+ \rule { 1pt } { 1pt }
}
\coffin_attach_mark:NnnNnnnn #1 {#2} {#3}
- \l__coffin_display_pole_coffin { hc } { vc } { 0 pt } { 0 pt }
+ \l__coffin_display_pole_coffin { hc } { vc } { 0pt } { 0pt }
\hcoffin_set:Nn \l__coffin_display_coord_coffin
{
\color {#4}
@@ -17034,7 +17387,7 @@
{
\coffin_attach_mark:NnnNnnnn #1 {#2} {#3}
\l__coffin_display_coord_coffin { l } { vc }
- { 1 pt } { 0 pt }
+ { 1pt } { 0pt }
}
{
\exp_last_unbraced:No \__coffin_mark_handle_aux:nnnnNnn
@@ -17059,7 +17412,7 @@
\hcoffin_set:Nn \l__coffin_display_pole_coffin
{
\color {#2}
- \rule { 1 pt } { 1 pt }
+ \rule { 1pt } { 1pt }
}
\prop_set_eq:Nc \l__coffin_display_poles_prop
{ l__coffin_poles_ \__int_value:w #1 _prop }
@@ -17090,7 +17443,7 @@
\dim_set:Nn \l__coffin_display_y_dim { \l__coffin_y_dim }
\__coffin_display_attach:Nnnnn
\l__coffin_display_pole_coffin { hc } { vc }
- { 0 pt } { 0 pt }
+ { 0pt } { 0pt }
\hcoffin_set:Nn \l__coffin_display_coord_coffin
{
\color {#6}
@@ -17107,7 +17460,7 @@
{
\__coffin_display_attach:Nnnnn
\l__coffin_display_coord_coffin { l } { vc }
- { 1 pt } { 0 pt }
+ { 1pt } { 0pt }
}
{
\exp_last_unbraced:No
@@ -17205,25 +17558,11 @@
\cs_new_eq:NN \color_group_begin: \group_begin:
\cs_new_protected:Npn \color_group_end:
{
- \tex_par:D
+ \par
\group_end:
}
-\cs_new_protected:Npn \color_ensure_current: { }
-\AtBeginDocument
- {
- \cs_if_exist:NTF \__driver_color_ensure_current:
- {
- \cs_set_protected:Npn \color_ensure_current:
- { \__driver_color_ensure_current: }
- }
- {
- \cs_if_exist:NT \set@color
- {
- \cs_set_protected:Npn \color_ensure_current:
- { \set@color }
- }
- }
- }
+\cs_new_protected:Npn \color_ensure_current:
+ { \__driver_color_ensure_current: }
%% File: l3sys.dtx Copyright (C) 2015-2017 The LaTeX3 Project
\str_const:Nx \c_sys_jobname_str { \tex_jobname:D }
\int_const:Nn \c_sys_minute_int
@@ -17258,11 +17597,9 @@
}
\cs_if_exist:NT \ptex_kanjiskip:D
{
- \bool_if:nTF
- {
- \cs_if_exist_p:N \uptex_disablecjktoken:D &&
- \int_compare_p:nNn { \ptex_jis:D "2121 } = { "3000 }
- }
+ \bool_lazy_and:nnTF
+ { \cs_if_exist_p:N \uptex_disablecjktoken:D }
+ { \int_compare_p:nNn { \ptex_jis:D "2121 } = { "3000 } }
{
\cs_gset_eq:NN \sys_if_engine_uptex:T \use:n
\cs_gset_eq:NN \sys_if_engine_uptex:F \use_none:n
@@ -17359,6 +17696,8 @@
\__deprecation_error:Nnn \tl_to_lowercase:n { } { 2017-12-31 }
\__deprecation_error:Nnn \tl_to_uppercase:n { } { 2017-12-31 }
\__deprecation_error:Nnn \ior_get_str:NN { \ior_str_get:NN } { 2017-12-31 }
+ \__deprecation_error:Nnn \box_resize:Nnn { \box_resize_to_wd_and_ht_plus_dp:Nnn } { 2018-12-31 }
+ \__deprecation_error:Nnn \box_resize:cnn { \box_resize_to_wd_and_ht_plus_dp:cnn } { 2018-12-31 }
\__deprecation_error:Nnn \c_minus_one { - 1 } { 2018-12-31 }
\__deprecation_error:Nnn \sort_ordered: { \sort_return_same: } { 2018-12-31 }
\__deprecation_error:Nnn \sort_reversed: { \sort_return_swapped: } { 2018-12-31 }
@@ -17366,297 +17705,6 @@
\cs_set_eq:NN \deprecation_error: \scan_stop:
}
%% File: l3candidates.dtx Copyright (C) 2012-2017 The LaTeX3 Project
-\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_use_rotate:Nn
- \l__box_internal_box
- \l__box_angle_fp
- }
- }
- \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:
- \__box_resize_set_corners:N #1
- \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:N #1
- \group_end:
- }
- }
-\cs_generate_variant:Nn \box_resize:Nnn { c }
-\cs_new_protected:Npn \__box_resize_set_corners: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
- }
-\cs_new_protected:Npn \__box_resize:N #1
- {
- \__box_resize:NNN \l__box_right_new_dim
- \l__box_scale_x_fp \l__box_right_dim
- \__box_resize:NNN \l__box_bottom_new_dim
- \l__box_scale_y_fp \l__box_bottom_dim
- \__box_resize:NNN \l__box_top_new_dim
- \l__box_scale_y_fp \l__box_top_dim
- \__box_resize_common:N #1
- }
-\cs_new_protected:Npn \__box_resize:NNN #1#2#3
- {
- \dim_set:Nn #1
- { \fp_to_dim:n { \fp_abs:n { #2 } * \dim_to_fp:n { #3 } } }
- }
-\cs_new_protected:Npn \box_resize_to_ht:Nn #1#2
- {
- \hbox_set:Nn #1
- {
- \group_begin:
- \__box_resize_set_corners:N #1
- \fp_set:Nn \l__box_scale_y_fp
- {
- \dim_to_fp:n {#2}
- / \dim_to_fp:n { \l__box_top_dim }
- }
- \fp_set_eq:NN \l__box_scale_x_fp \l__box_scale_y_fp
- \__box_resize:N #1
- \group_end:
- }
- }
-\cs_generate_variant:Nn \box_resize_to_ht:Nn { c }
-\cs_new_protected:Npn \box_resize_to_ht_plus_dp:Nn #1#2
- {
- \hbox_set:Nn #1
- {
- \group_begin:
- \__box_resize_set_corners:N #1
- \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:N #1
- \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:
- \__box_resize_set_corners:N #1
- \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:N #1
- \group_end:
- }
- }
-\cs_generate_variant:Nn \box_resize_to_wd:Nn { c }
-\cs_new_protected:Npn \box_resize_to_wd_and_ht:Nnn #1#2#3
- {
- \hbox_set:Nn #1
- {
- \group_begin:
- \__box_resize_set_corners:N #1
- \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 }
- }
- \__box_resize:N #1
- \group_end:
- }
- }
-\cs_generate_variant:Nn \box_resize_to_wd_and_ht:Nnn { 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_use_scale:Nnn
- #1
- \l__box_scale_x_fp
- \l__box_scale_y_fp
- }
- \fp_compare:nNnTF \l__box_scale_y_fp > \c_zero_fp
- {
- \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_dp:Nn \l__box_internal_box { \l__box_top_new_dim }
- \box_set_ht: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 }
@@ -17925,7 +17973,7 @@
\dim_to_fp:n {#3}
/ \dim_to_fp:n { \coffin_ht:N #1 + \coffin_dp:N #1 }
}
- \box_resize:Nnn #1 {#2} {#3}
+ \box_resize_to_wd_and_ht_plus_dp:Nnn #1 {#2} {#3}
\__coffin_resize_common:Nnn #1 {#2} {#3}
}
\cs_generate_variant:Nn \coffin_resize:Nnn { c }
@@ -18037,7 +18085,7 @@
}
\cs_new_protected:Npn \__ior_map_inline:NNNn #1#2#3#4
{
- \cs_set:Npn #1 ##1 {#4}
+ \cs_gset_protected: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 }
@@ -18245,6 +18293,18 @@
#2
}
}
+\cs_if_exist:NTF \pdftex_uniformdeviate:D
+ {
+ \prg_new_conditional:Npnn \sys_if_rand_exist: { p , T , F , TF }
+ { \prg_return_true: }
+ }
+ {
+ \prg_new_conditional:Npnn \sys_if_rand_exist: { p , T , F , TF }
+ { \prg_return_false: }
+ }
+\cs_new:Npn \sys_rand_seed: { \tex_the:D \pdftex_randomseed:D }
+\cs_new_protected:Npn \sys_gset_rand_seed:n #1
+ { \pdftex_setrandomseed:D \__int_eval:w #1 \__int_eval_end: }
\prg_new_conditional:Npnn \tl_if_single_token:n #1 { p , T , F , TF }
{
\tl_if_head_is_N_type:nTF {#1}
@@ -18934,10 +18994,9 @@
\__tl_tmp:w \c__unicode_I_ogonek_tl { 012E }
\group_end:
\group_begin:
- \bool_if:nT
- {
- \sys_if_engine_pdftex_p: || \sys_if_engine_uptex_p:
- }
+ \bool_lazy_or:nnT
+ { \sys_if_engine_pdftex_p: }
+ { \sys_if_engine_uptex_p: }
{
\cs_set_protected:Npn \__tl_loop:nn #1#2
{