summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/l3kernel/l3skip.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/l3kernel/l3skip.sty')
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3skip.sty123
1 files changed, 75 insertions, 48 deletions
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3skip.sty b/Master/texmf-dist/tex/latex/l3kernel/l3skip.sty
index 4a086cf2270..605733e8580 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3skip.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3skip.sty
@@ -46,7 +46,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3skip.dtx 2896 2011-10-09 20:36:50Z joseph $
+\GetIdInfo$Id: l3skip.dtx 2959 2011-11-14 21:47:18Z joseph $
{L3 Experimental dimensions and skips}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
@@ -54,52 +54,62 @@
\cs_new_eq:NN \if_dim:w \tex_ifdim:D
\cs_new_eq:NN \dim_eval:w \etex_dimexpr:D
\cs_new_eq:NN \dim_eval_end: \tex_relax:D
-\cs_new_protected_nopar:Npn \dim_new:N #1
+\cs_new_protected:Npn \dim_new:N #1
{
\chk_if_free_cs:N #1
\newdimen #1
}
\cs_generate_variant:Nn \dim_new:N { c }
-\cs_new_protected_nopar:Npn \dim_zero:N #1 { #1 \c_zero_dim }
-\cs_new_protected_nopar:Npn \dim_gzero:N { \tex_global:D \dim_zero:N }
+\cs_new_protected:Npn \dim_zero:N #1 { #1 \c_zero_dim }
+\cs_new_protected:Npn \dim_gzero:N { \tex_global:D \dim_zero:N }
\cs_generate_variant:Nn \dim_zero:N { c }
\cs_generate_variant:Nn \dim_gzero:N { c }
-\cs_new_protected_nopar:Npn \dim_set:Nn #1#2
+\cs_new_protected:Npn \dim_set:Nn #1#2
{ #1 ~ \dim_eval:w #2 \dim_eval_end: }
-\cs_new_protected_nopar:Npn \dim_gset:Nn { \tex_global:D \dim_set:Nn }
+\cs_new_protected:Npn \dim_gset:Nn { \tex_global:D \dim_set:Nn }
\cs_generate_variant:Nn \dim_set:Nn { c }
\cs_generate_variant:Nn \dim_gset:Nn { c }
-\cs_new_protected_nopar:Npn \dim_set_eq:NN #1#2 { #1 = #2 }
+\cs_new_protected:Npn \dim_set_eq:NN #1#2 { #1 = #2 }
\cs_generate_variant:Nn \dim_set_eq:NN { c }
\cs_generate_variant:Nn \dim_set_eq:NN { Nc , cc }
-\cs_new_protected_nopar:Npn \dim_gset_eq:NN #1#2 { \tex_global:D #1 = #2 }
+\cs_new_protected:Npn \dim_gset_eq:NN #1#2 { \tex_global:D #1 = #2 }
\cs_generate_variant:Nn \dim_gset_eq:NN { c }
\cs_generate_variant:Nn \dim_gset_eq:NN { Nc , cc }
-\cs_new_protected_nopar:Npn \dim_set_max:Nn #1#2
+\cs_new_protected:Npn \dim_set_max:Nn #1#2
{ \dim_compare:nNnT {#1} < {#2} { \dim_set:Nn #1 {#2} } }
-\cs_new_protected_nopar:Npn \dim_gset_max:Nn #1#2
- { \dim_compare:nNnT {#1} < {#2} { \dim_gset:Nn #1 {#2} } }
-\cs_new_protected_nopar:Npn \dim_set_min:Nn #1#2
+\cs_new_protected:Npn \dim_gset_max:Nn
+ { \tex_global:D \dim_set_max:Nn }
+\cs_new_protected:Npn \dim_set_min:Nn #1#2
{ \dim_compare:nNnT {#1} > {#2} { \dim_set:Nn #1 {#2} } }
-\cs_new_protected_nopar:Npn \dim_gset_min:Nn #1#2
- { \dim_compare:nNnT {#1} > {#2} { \dim_gset:Nn #1 {#2} } }
+\cs_new_protected:Npn \dim_gset_min:Nn
+ { \tex_global:D \dim_set_min:Nn }
\cs_generate_variant:Nn \dim_set_max:Nn { c }
\cs_generate_variant:Nn \dim_gset_max:Nn { c }
\cs_generate_variant:Nn \dim_set_min:Nn { c }
\cs_generate_variant:Nn \dim_gset_min:Nn { c }
-\cs_new_protected_nopar:Npn \dim_add:Nn #1#2
+\cs_new_protected:Npn \dim_add:Nn #1#2
{ \tex_advance:D #1 by \dim_eval:w #2 \dim_eval_end: }
-\cs_new_protected_nopar:Npn \dim_gadd:Nn { \tex_global:D \dim_add:Nn }
+\cs_new_protected:Npn \dim_gadd:Nn { \tex_global:D \dim_add:Nn }
\cs_generate_variant:Nn \dim_add:Nn { c }
\cs_generate_variant:Nn \dim_gadd:Nn { c }
-\cs_new_protected_nopar:Npn \dim_sub:Nn #1#2
+\cs_new_protected:Npn \dim_sub:Nn #1#2
{ \tex_advance:D #1 by - \dim_eval:w #2 \dim_eval_end: }
-\cs_new_protected_nopar:Npn \dim_gsub:Nn { \tex_global:D \dim_sub:Nn }
+\cs_new_protected:Npn \dim_gsub:Nn { \tex_global:D \dim_sub:Nn }
\cs_generate_variant:Nn \dim_sub:Nn { c }
\cs_generate_variant:Nn \dim_gsub:Nn { c }
-\cs_new_nopar:Npn \dim_ratio:nn #1#2
+\cs_new:Npn \dim_abs:n #1
+ {
+ \dim_use:N
+ \dim_eval:w
+ \if_dim:w \dim_eval:w #1 < \c_zero_dim
+ -
+ \fi:
+ \dim_eval:w #1 \dim_eval_end:
+ \dim_eval_end:
+ }
+\cs_new:Npn \dim_ratio:nn #1#2
{ \dim_ratio_aux:n {#1} / \dim_ratio_aux:n {#2} }
-\cs_new_nopar:Npn \dim_ratio_aux:n #1
+\cs_new:Npn \dim_ratio_aux:n #1
{ \int_value:w \dim_eval:w #1 \dim_eval_end: }
\prg_new_conditional:Npnn \dim_compare:nNn #1#2#3 { p , T , F , TF }
{
@@ -191,8 +201,25 @@
\dim_compare:nNnF {#1} #2 {#3}
{ \dim_do_until:nNnn {#1} #2 {#3} {#4} }
}
-\cs_new_nopar:Npn \dim_eval:n #1
+\cs_new:Npn \dim_eval:n #1
{ \dim_use:N \dim_eval:w #1 \dim_eval_end: }
+\cs_new:Npn \dim_strip_bp:n #1
+ { \dim_strip_pt:n { 0.996 26 \dim_eval:w #1 \dim_eval_end: } }
+\cs_new:Npn \dim_strip_pt:n #1
+ {
+ \exp_after:wN
+ \dim_strip_pt:w \dim_use:N \dim_eval:w #1 \dim_eval_end: \q_stop
+ }
+\use:x
+ {
+ \cs_new:Npn \exp_not:N \dim_strip_pt:w
+ ##1 . ##2 \tl_to_str:n { pt } ##3 \exp_not:N \q_stop
+ {
+ ##1
+ \exp_not:N \int_compare:nNnT {##2} > \c_zero
+ { . ##2 }
+ }
+ }
\cs_new_eq:NN \dim_use:N \tex_the:D
\cs_generate_variant:Nn \dim_use:N { c }
\cs_new_eq:NN \dim_show:N \kernel_register_show:N
@@ -204,35 +231,35 @@
\dim_new:N \l_tmpc_dim
\dim_new:N \g_tmpa_dim
\dim_new:N \g_tmpb_dim
-\cs_new_protected_nopar:Npn \skip_new:N #1
+\cs_new_protected:Npn \skip_new:N #1
{
\chk_if_free_cs:N #1
\newskip #1
}
\cs_generate_variant:Nn \skip_new:N { c }
-\cs_new_protected_nopar:Npn \skip_zero:N #1 { #1 \c_zero_skip }
-\cs_new_protected_nopar:Npn \skip_gzero:N { \tex_global:D \skip_zero:N }
+\cs_new_protected:Npn \skip_zero:N #1 { #1 \c_zero_skip }
+\cs_new_protected:Npn \skip_gzero:N { \tex_global:D \skip_zero:N }
\cs_generate_variant:Nn \skip_zero:N { c }
\cs_generate_variant:Nn \skip_gzero:N { c }
-\cs_new_protected_nopar:Npn \skip_set:Nn #1#2
+\cs_new_protected:Npn \skip_set:Nn #1#2
{ #1 ~ \etex_glueexpr:D #2 \scan_stop: }
-\cs_new_protected_nopar:Npn \skip_gset:Nn { \tex_global:D \skip_set:Nn }
+\cs_new_protected:Npn \skip_gset:Nn { \tex_global:D \skip_set:Nn }
\cs_generate_variant:Nn \skip_set:Nn { c }
\cs_generate_variant:Nn \skip_gset:Nn { c }
-\cs_new_protected_nopar:Npn \skip_set_eq:NN #1#2 { #1 = #2 }
+\cs_new_protected:Npn \skip_set_eq:NN #1#2 { #1 = #2 }
\cs_generate_variant:Nn \skip_set_eq:NN { c }
\cs_generate_variant:Nn \skip_set_eq:NN { Nc , cc }
-\cs_new_protected_nopar:Npn \skip_gset_eq:NN #1#2 { \tex_global:D #1 = #2 }
+\cs_new_protected:Npn \skip_gset_eq:NN #1#2 { \tex_global:D #1 = #2 }
\cs_generate_variant:Nn \skip_gset_eq:NN { c }
\cs_generate_variant:Nn \skip_gset_eq:NN { Nc , cc }
-\cs_new_protected_nopar:Npn \skip_add:Nn #1#2
+\cs_new_protected:Npn \skip_add:Nn #1#2
{ \tex_advance:D #1 by \etex_glueexpr:D #2 \scan_stop: }
-\cs_new_protected_nopar:Npn \skip_gadd:Nn { \tex_global:D \skip_add:Nn }
+\cs_new_protected:Npn \skip_gadd:Nn { \tex_global:D \skip_add:Nn }
\cs_generate_variant:Nn \skip_add:Nn { c }
\cs_generate_variant:Nn \skip_gadd:Nn { c }
-\cs_new_protected_nopar:Npn \skip_sub:Nn #1#2
+\cs_new_protected:Npn \skip_sub:Nn #1#2
{ \tex_advance:D #1 by - \etex_glueexpr:D #2 \scan_stop: }
-\cs_new_protected_nopar:Npn \skip_gsub:Nn { \tex_global:D \skip_sub:Nn }
+\cs_new_protected:Npn \skip_gsub:Nn { \tex_global:D \skip_sub:Nn }
\cs_generate_variant:Nn \skip_sub:Nn { c }
\cs_generate_variant:Nn \skip_gsub:Nn { c }
\prg_new_conditional:Npnn \skip_if_eq:nn #1#2 { p , T , F , TF }
@@ -255,15 +282,15 @@
{ \prg_return_true: }
{ \prg_return_false: }
}
-\cs_new_nopar:Npn \skip_eval:n #1
+\cs_new:Npn \skip_eval:n #1
{ \skip_use:N \etex_glueexpr:D #1 \scan_stop: }
\cs_new_eq:NN \skip_use:N \tex_the:D
\cs_generate_variant:Nn \skip_use:N { c }
\cs_new_eq:NN \skip_horizontal:N \tex_hskip:D
-\cs_new_nopar:Npn \skip_horizontal:n #1
+\cs_new:Npn \skip_horizontal:n #1
{ \skip_horizontal:N \etex_glueexpr:D #1 \scan_stop: }
\cs_new_eq:NN \skip_vertical:N \tex_vskip:D
-\cs_new_nopar:Npn \skip_vertical:n #1
+\cs_new:Npn \skip_vertical:n #1
{ \skip_vertical:N \etex_glueexpr:D #1 \scan_stop: }
\cs_generate_variant:Nn \skip_horizontal:N { c }
\cs_generate_variant:Nn \skip_vertical:N { c }
@@ -276,45 +303,45 @@
\skip_new:N \l_tmpc_skip
\skip_new:N \g_tmpa_skip
\skip_new:N \g_tmpb_skip
-\cs_new_protected_nopar:Npn \muskip_new:N #1
+\cs_new_protected:Npn \muskip_new:N #1
{
\chk_if_free_cs:N #1
\newmuskip #1
}
\cs_generate_variant:Nn \muskip_new:N { c }
-\cs_new_protected_nopar:Npn \muskip_zero:N #1
+\cs_new_protected:Npn \muskip_zero:N #1
{ #1 \c_zero_muskip }
-\cs_new_protected_nopar:Npn \muskip_gzero:N { \tex_global:D \muskip_zero:N }
+\cs_new_protected:Npn \muskip_gzero:N { \tex_global:D \muskip_zero:N }
\cs_generate_variant:Nn \muskip_zero:N { c }
\cs_generate_variant:Nn \muskip_gzero:N { c }
-\cs_new_protected_nopar:Npn \muskip_set:Nn #1#2
+\cs_new_protected:Npn \muskip_set:Nn #1#2
{ #1 ~ \etex_muexpr:D #2 \scan_stop: }
-\cs_new_protected_nopar:Npn \muskip_gset:Nn { \tex_global:D \muskip_set:Nn }
+\cs_new_protected:Npn \muskip_gset:Nn { \tex_global:D \muskip_set:Nn }
\cs_generate_variant:Nn \muskip_set:Nn { c }
\cs_generate_variant:Nn \muskip_gset:Nn { c }
-\cs_new_protected_nopar:Npn \muskip_set_eq:NN #1#2 { #1 = #2 }
+\cs_new_protected:Npn \muskip_set_eq:NN #1#2 { #1 = #2 }
\cs_generate_variant:Nn \muskip_set_eq:NN { c }
\cs_generate_variant:Nn \muskip_set_eq:NN { Nc , cc }
-\cs_new_protected_nopar:Npn \muskip_gset_eq:NN #1#2 { \tex_global:D #1 = #2 }
+\cs_new_protected:Npn \muskip_gset_eq:NN #1#2 { \tex_global:D #1 = #2 }
\cs_generate_variant:Nn \muskip_gset_eq:NN { c }
\cs_generate_variant:Nn \muskip_gset_eq:NN { Nc , cc }
-\cs_new_protected_nopar:Npn \muskip_add:Nn #1#2
+\cs_new_protected:Npn \muskip_add:Nn #1#2
{ \tex_advance:D #1 by \etex_muexpr:D #2 \scan_stop: }
-\cs_new_protected_nopar:Npn \muskip_gadd:Nn { \tex_global:D \muskip_add:Nn }
+\cs_new_protected:Npn \muskip_gadd:Nn { \tex_global:D \muskip_add:Nn }
\cs_generate_variant:Nn \muskip_add:Nn { c }
\cs_generate_variant:Nn \muskip_gadd:Nn { c }
-\cs_new_protected_nopar:Npn \muskip_sub:Nn #1#2
+\cs_new_protected:Npn \muskip_sub:Nn #1#2
{ \tex_advance:D #1 by - \etex_muexpr:D #2 \scan_stop: }
-\cs_new_protected_nopar:Npn \muskip_gsub:Nn { \tex_global:D \muskip_sub:Nn }
+\cs_new_protected:Npn \muskip_gsub:Nn { \tex_global:D \muskip_sub:Nn }
\cs_generate_variant:Nn \muskip_sub:Nn { c }
\cs_generate_variant:Nn \muskip_gsub:Nn { c }
-\cs_new_nopar:Npn \muskip_eval:n #1
+\cs_new:Npn \muskip_eval:n #1
{ \muskip_use:N \etex_muexpr:D #1 \scan_stop: }
\cs_new_eq:NN \muskip_use:N \tex_the:D
\cs_generate_variant:Nn \muskip_use:N { c }
\cs_new_eq:NN \muskip_show:N \kernel_register_show:N
\cs_generate_variant:Nn \muskip_show:N { c }
-\cs_new_nopar:Npn \skip_split_finite_else_action:nnNN #1#2#3#4
+\cs_new:Npn \skip_split_finite_else_action:nnNN #1#2#3#4
{
\skip_if_infinite_glue:nTF {#1}
{