diff options
author | Context Git Mirror Bot <phg42.2a@gmail.com> | 2016-08-29 23:52:21 +0200 |
---|---|---|
committer | Context Git Mirror Bot <phg42.2a@gmail.com> | 2016-08-29 23:52:21 +0200 |
commit | ad968343b10553bbf9d34e14e00a756576d5758e (patch) | |
tree | 3fb7779efb282ff06eea3e093e5c343cb5c92527 /tex/context/base/mkiv/tabl-ntb.mkiv | |
parent | 0a0ad928b3eb911e1963b282dfebc9e891fefaa5 (diff) | |
download | context-ad968343b10553bbf9d34e14e00a756576d5758e.tar.gz |
2016-08-29 22:58:00
Diffstat (limited to 'tex/context/base/mkiv/tabl-ntb.mkiv')
-rw-r--r-- | tex/context/base/mkiv/tabl-ntb.mkiv | 58 |
1 files changed, 41 insertions, 17 deletions
diff --git a/tex/context/base/mkiv/tabl-ntb.mkiv b/tex/context/base/mkiv/tabl-ntb.mkiv index 8dad83b29..aeef22326 100644 --- a/tex/context/base/mkiv/tabl-ntb.mkiv +++ b/tex/context/base/mkiv/tabl-ntb.mkiv @@ -1187,7 +1187,7 @@ \global\let\m_tabl_ntb_same_page \empty} \def\tabl_ntb_prelocate_error - {\writestatus\m!system{fatal error: use \string\prelocateTBLrows\space to increase table memory (now: \the\c_tabl_prelocated_rows)}} + {\writestatus\m!TABLE{fatal error: use \string\prelocateTBLrows\space to increase table memory (now: \the\c_tabl_prelocated_rows)}} % \prelocateTBLrows{1000} % may speed up large tables @@ -1479,6 +1479,20 @@ \let\tabl_ntb_preroll\relax +\def\tabl_ntb_table_get_max_width#1#2% + {#1\wd#2\relax} + +% first needs testing (in projects): +% +% \def\tabl_ntb_table_get_max_width#1#2% +% {#1\zeropoint +% \dorecurse\c_tabl_ntb_maximum_col +% {\advance#1\tabl_ntb_get_wid\recurselevel +% \advance#1\tabl_ntb_get_dis\recurselevel}% +% \ifdim#1<\wd#2\relax +% #1\wd#2\relax +% \fi} + \def\tabl_ntb_table_stop {\forgetall % new, here see narrower-004.tex %\setbox\scratchbox\hbox @@ -1501,11 +1515,12 @@ \dorecurse\c_tabl_ntb_maximum_row {\tabl_ntb_let_hei\recurselevel\maxdimen}% \tabl_ntb_let_gal\zerocount -\tabl_ntb_preroll\relax + \tabl_ntb_preroll\relax \c_tabl_tbl_pass\plusone \let\tabl_ntb_pass\tabl_ntb_pass_one \let\tabl_ntb_cell_process\tabl_ntb_cell_process_a \setbox\scratchbox\vbox{\settrialtypesetting \tabl_ntb_flush_content}% + \writestatus\m!TABLE{!!\the\wd\scratchbox}% \ifcase\tabl_ntb_get_gal\or % \c_tabl_tbl_pass\plusone % \let\tabl_ntb_pass\tabl_ntb_pass_one @@ -1513,6 +1528,9 @@ \setbox\scratchbox\vbox{\settrialtypesetting \tabl_ntb_flush_content}% \fi \tabl_ntb_let_dis\c_tabl_ntb_maximum_col\zeropoint + % + \tabl_ntb_table_get_max_width\scratchdimen\scratchbox + % \ifautoTBLspread % experimental, stretch non fixed cells to \hsize \tabl_ntb_check_widths_one % trial run @@ -1520,7 +1538,8 @@ \tabl_ntb_stretch_widths \let\tabl_ntb_cell_process\tabl_ntb_cell_process_b \setbox\scratchbox\vbox{\settrialtypesetting \tabl_ntb_flush_content}% - \else\ifdim\wd\scratchbox>\hsize + % \else\ifdim\wd\scratchbox>\hsize + \else\ifdim\scratchdimen>\hsize \ifautoTBLhsize \tabl_ntb_check_widths_one % trial run \tabl_ntb_check_widths_two % real run @@ -1534,7 +1553,8 @@ \writestatus\m!TABLE{missing\space\number\numexpr\c_tabl_ntb_maximum_col-\c_tabl_ntb_encountered_max\relax\space column(s), guessing widths}% \fi \edef\savedhsize{\the\hsize}% - \hsize\wd\scratchbox\relax % new per 17/04/2006 + % \hsize\wd\scratchbox\relax % new per 17/04/2006 + \hsize\scratchdimen\relax % new per 17/04/2006 \tabl_ntb_check_widths_one % trial run \tabl_ntb_check_widths_two % real run \hsize\savedhsize @@ -1593,11 +1613,12 @@ % \hbox{\registerparoptions\box\b_tabl_ntb_final}% (*) better here % better : \ifinsidefloat - % nothing, else we get a \hsized box + % no \dontleavehmode else too wide, otherwise we get a \hsized box \else \registerparoptions % (*) better here (also does a \dontleavehmode) + \ifhmode\else\dontleavehmode\fi \fi - \dontleavehmode\box\b_tabl_ntb_final + \box\b_tabl_ntb_final \afterTABLEbox} \def\tabl_tbl_split_yes @@ -1652,11 +1673,11 @@ \let\beforeTABLEbox \relax \let\afterTABLEbox \relax -\def\tabl_ntb_check_widths_one{\tabl_ntb_check_widths_indeed0} % 0 = trial run -\def\tabl_ntb_check_widths_two{\tabl_ntb_check_widths_indeed1} % 1 = real run +\def\tabl_ntb_check_widths_one{\tabl_ntb_check_widths_indeed\zerocount} % 0 = trial run +\def\tabl_ntb_check_widths_two{\tabl_ntb_check_widths_indeed\plusone } % 1 = real run \def\tabl_ntb_check_widths_indeed#1% - {\iftraceTABLE\tabl_ntb_show_widths{B#1}\fi + {\iftraceTABLE\tabl_ntb_show_widths B#1\fi \!!counta\zerocount \!!dimena\dimexpr \hsize @@ -1689,6 +1710,7 @@ \fi \fi \fi}% + \iftraceTABLE\tabl_ntb_show_widths M#1\fi \ifcase\!!counta \else \divide\!!dimena \!!counta \fi \dorecurse\c_tabl_ntb_maximum_col {\scratchdimen\tabl_ntb_get_wid\recurselevel\relax @@ -1701,7 +1723,7 @@ \tabl_ntb_set_wid\recurselevel{\the\!!dimena}% \fi \fi}% - \iftraceTABLE\tabl_ntb_show_widths{E#1}\fi} + \iftraceTABLE\tabl_ntb_show_widths E#1\fi} \def\tabl_ntb_check_heights_one_indeed {\!!countb\tabl_ntb_get_row\c_tabl_ntb_current_row_three\c_tabl_ntb_current_col_three\relax @@ -1774,13 +1796,15 @@ \def\tabl_ntb_check_heights_two {} -\def\tabl_ntb_show_widths#1% - {\vbox - {\forgetall - \tttf[#1]% - \dorecurse\c_tabl_ntb_maximum_col - {\scratchdimen\tabl_ntb_get_wid\recurselevel\relax - [\recurselevel:\the\scratchdimen]}}} +\def\tabl_ntb_show_widths#1#2% + {\begingroup + \scratchdimen\zeropoint + \dorecurse\c_tabl_ntb_maximum_col + {\advance\scratchdimen\tabl_ntb_get_wid\recurselevel\relax}% + \writestatus\m!TABLE{#1 \ifcase#2trial\else real\fi: hsize: \the\hsize, total: \the\scratchdimen}% + \dorecurse\c_tabl_ntb_maximum_col + {\writestatus\m!TABLE{\space\space\recurselevel: \the\dimexpr\tabl_ntb_get_wid\recurselevel}}% + \endgroup} % \def\tabl_ntb_char_align % {\doifelse{\naturaltablelocalparameter\c!aligncharacter}\v!yes |