summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2023-09-06 20:15:38 +0000
committerKarl Berry <karl@freefriends.org>2023-09-06 20:15:38 +0000
commitab73056b3e49dc7d02167b961cbc92d353237e0d (patch)
tree0780b30a6801b612ce52f8786aa7c6f4f9d522fc /Master/texmf-dist/tex/latex
parenta07688a9ea2f4df2f15254d462000070ec2e09d2 (diff)
numerica-tables (6sep23)
git-svn-id: svn://tug.org/texlive/trunk@68193 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex')
-rw-r--r--Master/texmf-dist/tex/latex/numerica-tables/numerica-tables.sty93
1 files changed, 80 insertions, 13 deletions
diff --git a/Master/texmf-dist/tex/latex/numerica-tables/numerica-tables.sty b/Master/texmf-dist/tex/latex/numerica-tables/numerica-tables.sty
index e39ec24f5bf..c1808141e4d 100644
--- a/Master/texmf-dist/tex/latex/numerica-tables/numerica-tables.sty
+++ b/Master/texmf-dist/tex/latex/numerica-tables/numerica-tables.sty
@@ -10,8 +10,8 @@
\RequirePackage{booktabs}
\ProvidesExplFile
{numerica-tables.sty}
- {2023/08/21}
- {3.0.0}
+ {2023/08/25}
+ {3.1.0}
{Create mathematical tables of function values}
\msg_new:nnn {numerica-tables} {version}
@@ -68,12 +68,48 @@
\cs_generate_variant:Nn \__nmc_sci_num_table_signs:n { x }
\cs_new:Npn \__nmc_table_rc:N #1
{ \str_if_eq:nVTF { #1 } \c__nmc_r_tl { row } { column } }
+\cs_new_protected:Npn \__nmc_table_rvround_pre:
+ {
+ \fp_set_eq:NN \l__nmc_table_r_fp \l__nmc_table_rstart_fp
+ \prop_put:NVx \l__nmc_subst_var_prop \l__nmc_table_rvar_tl
+ { \fp_use:N \l__nmc_table_r_fp }
+ \__nmc_table_reset_rounding:
+ }
+\cs_new_protected:Npn \__nmc_table_rvround_post:
+ {
+ \fp_add:Nn \l__nmc_table_r_fp { \l__nmc_table_rstep_fp }
+ \prop_put:NVx \l__nmc_subst_var_prop \l__nmc_table_rvar_tl
+ { \fp_use:N \l__nmc_table_r_fp }
+ \__nmc_table_reset_rounding:
+ }
+\cs_new_protected:Npn \__nmc_table_cvround_pre:
+ {
+ \fp_set_eq:NN \l__nmc_table_c_fp \l__nmc_table_cstart_fp
+ \prop_put:NVx \l__nmc_subst_var_prop \l__nmc_table_cvar_tl
+ { \fp_use:N \l__nmc_table_c_fp }
+ \__nmc_table_reset_rounding:
+ }
+
+\cs_new_protected:Npn \__nmc_table_cvround_post:
+ {
+ \fp_add:Nn \l__nmc_table_c_fp { \l__nmc_table_cstep_fp }
+ \prop_put:NVx \l__nmc_subst_var_prop \l__nmc_table_cvar_tl
+ { \fp_use:N \l__nmc_table_c_fp }
+ \__nmc_table_reset_rounding:
+ }
+\cs_new_protected:Npn \__nmc_table_reset_rounding:
+ {
+ \tl_clear:N \l__nmca_tl
+ \__nmc_fpify:VN \l__nmc_round_xpr_tl \l__nmca_tl
+ \int_set:Nn \l__nmc_round_int { \fp_to_int:n \l__nmca_tl }
+ }
%--------------------------------------
\tl_new:N \l__nmc_x_tl
\seq_new:N \l_tmpd_seq
\tl_const:Nn \c__nmc_r_tl { r }
\tl_const:Nn \c__nmc_l_tl { l }
\bool_new:N \l__nmc_table_multifn_bool
+\bool_new:N \l__nmc_table_round_bool
\seq_new:N \l__nmc_table_multifn_seq
\tl_new:N \l__nmc_table_valign_tl
@@ -122,6 +158,7 @@
\tl_new:N \l__nmc_table_rheadi_tl
\tl_new:N \l__nmc_table_rhnudge_tl
\tl_new:N \l__nmc_table_rhnudgei_tl
+\int_new:N \l__nmc_table_chfrac_int
\int_new:N \l__nmc_table_chround_int
\int_new:N \l__nmc_table_chstyle_int
\int_const:Nn \c__nmc_table_chstyle_int { 5 }
@@ -239,6 +276,12 @@
}
\int_compare:nNnF \l__nmc_dbg_int = { 11 }
{ \int_zero:N \l__nmc_dbg_int }
+ % \int_if_zero:nF { \l__nmc_table_rfrac_int + \l__nmc_table_chfrac_int }
+ \int_if_zero:nF { \l__nmc_table_rfrac_int }
+ {
+ \int_compare:nNnT { \l__nmc_table_chstyle_int } > { 2 }
+ { \int_zero:N \l__nmc_table_chstyle_int }
+ }
}
\cs_new_protected:Npn \l__nmc_table_settings_ctitle:
{
@@ -347,6 +390,8 @@
}
{ \__nmc_table_get_ini_vals_aux:N c }
}
+ \bool_if:NT \l__nmc_table_round_bool
+ { \__nmc_fpify:VN \l__nmc_round_xpr_tl \l__nmc_toss_tl }
\seq_gpop:NN \g__nmc_error_where_seq \l__nmc_toss_tl
}
\cs_new_protected:Npn \__nmc_table_get_ini_vals_aux:N #1
@@ -653,7 +698,7 @@
{
\bool_if:NF \l__nmc_num_only_bool
{
- \int_if_zero:nF \l__nmc_table_header_int
+ \int_if_zero:nT \l__nmc_table_headless_int
{
\__nmc_table_headercnum:
\tl_set:Nx \l__nmc_table_header_tl { \__nmc_table_header: }
@@ -669,7 +714,7 @@
{
\__nmc_table_upper:
\exp_not:o \l__nmc_table_header_tl
- \int_if_zero:nF \l__nmc_table_header_int
+ \int_if_zero:nT \l__nmc_table_headless_int
{
\\~
\__nmc_if_mod_zero:nnT { \l__nmc_table_rules_int } { 7 }
@@ -828,6 +873,8 @@
}
\cs_new:Npn \__nmc_table_headern:
{
+ \int_set_eq:NN \l__nmc_table_chfrac_int \l__nmc_frac_out_int
+ \int_zero:N \l__nmc_frac_out_int
\tl_if_empty:NT \l__nmc_table_chead_tl
{
\seq_clear:N \l_tmpa_seq
@@ -847,6 +894,7 @@
}
\tl_set:Nx \l__nmc_table_chead_tl { \seq_use:Nn \l_tmpa_seq { & } }
}
+ \int_set_eq:NN \l__nmc_frac_out_int \l__nmc_table_chfrac_int
}
\cs_new_protected:Npn \__nmc_table_chstyler:NN #1 #2
{
@@ -857,12 +905,14 @@
{
\bool_if:NTF \l__nmc_table_coli_only_bool
{
- \__nmc_table_header_auxi:Nx #1 { \l__nmc_table_cvar_tl = #2 }
+ \__nmc_table_header_auxi:Nx #1
+ { \l__nmc_table_cvar_tl = \exp_not:o #2 }
\bool_set_false:N \l__nmc_table_coli_only_bool
}
{ \seq_put_right:NV #1 #2 }
}
- { 2 } { \__nmc_table_header_auxi:Nx #1 { \l__nmc_table_cvar_tl = #2 } }
+ { 2 } { \__nmc_table_header_auxi:Nx #1
+ { \l__nmc_table_cvar_tl = \exp_not:o #2 } }
{ 3 } { \__nmc_table_header_auxiii:NV #1 #2 }
{ 4 } { \__nmc_table_header_auxiv:NV #1 #2 }
{ 5 } { \seq_set_split:NnV #1 { & } \l__nmc_table_chead_tl }
@@ -872,7 +922,7 @@
\cs_new_protected:Npn \__nmc_table_header_auxi:Nn #1#2
{
\seq_put_right:Nx #1 { \__nmc_table_header_nudge:Nnn c
- { \exp_not:n { #2 } } \l__nmc_table_chnudge_tl }
+ { \exp_not:o { #2 } } \l__nmc_table_chnudge_tl }
}
\cs_generate_variant:Nn \__nmc_table_header_auxi:Nn { NV,Nx }
@@ -897,12 +947,13 @@
\cs_new:Npn \__nmc_table_header_nudge:Nnn #1#2#3
{ % #1=r(ow)/c(ol), #2=var, #3=nudge
\tl_if_eq:cNTF { l__nmc_table_ #1 calign_tl } \c__nmc_r_tl
- { $ #2 #3 $ }
+ { $ #2 #3 $ }
{
\tl_if_eq:cNTF { l__nmc_table_ #1 calign_tl } \c__nmc_l_tl
{ $ #3 #2 $ } { $ #2 $ }
}
}
+\cs_generate_variant:Nn \__nmc_table_header_nudge:Nnn { NnV }
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\cs_new_protected:Npn \__nmc_table_form_body:N #1
{ % #1 <== \l__nmc_result_tl
@@ -976,9 +1027,13 @@
}
\cs_new_protected:Npn \__nmc_table_form_body_cvcols:N #1
{ % #1 \l__nmc_result_tl
+ \bool_if:NT \l__nmc_table_round_bool
+ { \__nmc_table_cvround_pre: }
\seq_clear:N \l_tmpd_seq
\seq_map_variable:NNn \l__nmc_table_body_cols_seq \l_tmpa_seq
- {
+ {
+ \bool_if:NT \l__nmc_table_round_bool
+ { \__nmc_table_rvround_pre: }
\seq_clear:N \l_tmpb_seq
\__nmc_table_form_cols:NN \l_tmpa_seq \l_tmpb_seq
\seq_put_right:NV \l_tmpd_seq \l_tmpb_seq
@@ -1042,6 +1097,8 @@
{ 2 } { \__nmc_table_form_cols_rii:NN #1#2 }
}
{ \__nmc_table_form_cols_riii:NN #1#2 }
+ \bool_if:NT \l__nmc_table_round_bool
+ { \__nmc_table_cvround_post: }
}
\cs_new_protected:Npn \__nmc_table_form_cols_ri:NN #1#2
{
@@ -1083,7 +1140,9 @@
}
\cs_new_protected:Npn \__nmc_table_form_cols_riii:NN #1#2
{
- \__nmc_table_form_cols_rii_aux:NN #1#2
+ \__nmc_table_form_cols_rii_aux:NN #1#2
+ \bool_if:NT \l__nmc_table_round_bool
+ { \__nmc_table_rvround_post: }
\int_set_eq:NN \l__nmc_table_c_int \l__nmc_table_b_int
\int_set_eq:NN \l__nmc_table_b_int \l__nmc_table_a_int
\seq_map_variable:NNn #1 \l_tmpa_fp
@@ -1100,6 +1159,8 @@
\fp_set_eq:NN \l_tmpb_fp \l_tmpa_fp
\int_set_eq:NN \l__nmc_table_c_int \l__nmc_table_b_int
\int_set_eq:NN \l__nmc_table_b_int \l__nmc_table_a_int
+ \bool_if:NT \l__nmc_table_round_bool
+ { \__nmc_table_rvround_post: }
}
\int_set:Nn \l__nmc_table_a_int { 1 }
\__nmc_table_signs:
@@ -1206,9 +1267,15 @@
{ \seq_set_from_clist:No \l__nmc_table_rdata_seq \l_tmpa_tl }
{ \__nmc_error_what:n { File~#1~not~found~in } }
}
+\cs_new_protected:Npn \__nmc_table_rounding:n #1
+ {
+ \bool_set:Nn \l__nmc_table_round_bool { !\tl_if_blank_p:n { #1 } }
+ \tl_set:Nn \l__nmc_round_xpr_tl { #1 }
+ }
\keys_define:nn { numerica/table }
{
view .code:n = \__nmc_dbg_int:nn { 1 } { 11 },
+ round .code:n = \__nmc_table_rounding:n { #1 },
%
rvar .tl_set:N = \l__nmc_table_rvar_tl,
rstop .tl_set:N = \l__nmc_table_rstop_tl,
@@ -1253,10 +1320,10 @@
chround .int_set:N = \l__nmc_table_chround_int,
%
ctitle .tl_set:N = \l__nmc_table_ctitle_tl,
+ cmidrow .tl_set:N = \l__nmc_table_csubttl_tl,
csubttl .tl_set:N = \l__nmc_table_csubttl_tl,
- csubttl .tl_set:N = \l__nmc_table_csubttl_tl,
- header .int_set:N = \l__nmc_table_header_int,
- header .initial:n = 1,
+ headless .int_set:N = \l__nmc_table_headless_int,
+ headless .initial:n = 0,
rules .tl_set:N = \l__nmc_table_rules_tl,
rules .initial:n = ThB,
foot .tl_set:N = \l__nmc_table_footer_tl,