tabl-xnt.mklx /size: 4647 b    last modification: 2023-12-21 09:44
1% macros=mkvi
2
3%D \module
4%D   [       file=tabl-xtb,
5%D        version=2011.10.28,
6%D          title=\CONTEXT\ Table Macros,
7%D       subtitle=Natural to Xtreme Tables,
8%D         author=Hans Hagen,
9%D           date=\currentdate,
10%D      copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
11%C
12%C This module is part of the \CONTEXT\ macro||package and is
13%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
14%C details.
15
16\writestatus{loading}{ConTeXt Table Macros / Natural to Xtreme Tables}
17
18\unprotect
19
20%D Don't expect wonders but it might come in handy:
21%D
22%D \starttyping
23%D \mapTABLEtoxtable
24%D \restoreTABLEfromxtable
25%D \stoptyping
26%D
27%D We stick to a simple example:
28%D
29%D \startbuffer
30%D \bTABLE
31%D   \bTR
32%D     \bTD[width=1cm,background=color,backgroundcolor=red] one \eTD
33%D     \bTD[width=2cm] two \eTD
34%D   \eTR
35%D   \bTR
36%D     \bTD alpha \eTD
37%D     \bTD beta  \eTD
38%D   \eTR
39%D \eTABLE
40%D \stopbuffer
41%D
42%D \typebuffer
43%D
44%D \startbuffer
45%D \startlinecorrection
46%D \getbuffer
47%D \stoplinecorrection
48%D
49%D \startlinecorrection
50%D \mapTABLEtoxtable \getbuffer
51%D \stoplinecorrection
52%D \stopbuffer
53%D
54%D \typebuffer \getbuffer
55
56\pushoverloadmode % this file is runtime loaded
57
58\overloaded\permanent\let\tabl_x_normal_bTABLEhead\bTABLEhead
59\overloaded\permanent\let\tabl_x_normal_eTABLEhead\eTABLEhead
60\overloaded\permanent\let\tabl_x_normal_bTABLEnext\bTABLEnext
61\overloaded\permanent\let\tabl_x_normal_eTABLEnext\eTABLEnext
62\overloaded\permanent\let\tabl_x_normal_bTABLEfoot\bTABLEfoot
63\overloaded\permanent\let\tabl_x_normal_eTABLEfoot\eTABLEfoot
64\overloaded\permanent\let\tabl_x_normal_bTABLEbody\bTABLEbody
65\overloaded\permanent\let\tabl_x_normal_eTABLEbody\eTABLEbody
66\overloaded\permanent\let\tabl_x_normal_bTR       \bTR
67\overloaded\permanent\let\tabl_x_normal_eTR       \eTR
68\overloaded\permanent\let\tabl_x_normal_bTD       \bTD
69\overloaded\permanent\let\tabl_x_normal_eTD       \eTD
70\overloaded\permanent\let\tabl_x_normal_bTH       \bTH
71\overloaded\permanent\let\tabl_x_normal_eTH       \eTH
72\overloaded\permanent\let\tabl_x_normal_setupTABLE\setupTABLE
73\overloaded\permanent\let\tabl_x_normal_bTABLE    \bTABLE
74\overloaded\permanent\let\tabl_x_normal_eTABLE    \eTABLE
75
76\permanent\protected\def\restoreTABLEfromxtable
77  {\enforced\let\bTABLEhead\tabl_x_normal_bTABLEhead
78   \enforced\let\eTABLEhead\tabl_x_normal_eTABLEhead
79   \enforced\let\bTABLEnext\tabl_x_normal_bTABLEnext
80   \enforced\let\eTABLEnext\tabl_x_normal_eTABLEnext
81   \enforced\let\bTABLEfoot\tabl_x_normal_bTABLEfoot
82   \enforced\let\eTABLEfoot\tabl_x_normal_eTABLEfoot
83   \enforced\let\bTABLEbody\tabl_x_normal_bTABLEbody
84   \enforced\let\eTABLEbody\tabl_x_normal_eTABLEbody
85   \enforced\let\bTR       \tabl_x_normal_bTR
86   \enforced\let\eTR       \tabl_x_normal_eTR
87   \enforced\let\bTD       \tabl_x_normal_bTD
88   \enforced\let\eTD       \tabl_x_normal_eTD
89   \enforced\let\bTH       \tabl_x_normal_bTH
90   \enforced\let\eTH       \tabl_x_normal_eTH
91   \enforced\let\setupTABLE\tabl_x_normal_setupTABLE
92   \enforced\let\bTABLE    \tabl_x_normal_bTABLE
93   \enforced\let\eTABLE    \tabl_x_normal_eTABLE}
94
95\permanent\protected\def\mapTABLEtoxtable
96  {\enforced\let\bTABLEhead\startxtablehead
97   \enforced\let\eTABLEhead\stopxtablehead
98   \enforced\let\bTABLEnext\startxtablefoot
99   \enforced\let\eTABLEnext\stopxtablefoot
100   \enforced\let\bTABLEfoot\startxtablefoot
101   \enforced\let\eTABLEfoot\stopxtablefoot
102   \enforced\let\bTABLEbody\startxtablebody
103   \enforced\let\eTABLEbody\stopxtablebody
104   \enforced\let\bTR       \startxrow
105   \enforced\let\eTR       \stopxrow
106   \enforced\let\bTD       \startxcell
107   \enforced\let\eTD       \stopxcell
108   \enforced\let\bTH       \tabl_x_TABLE_TH_start_cell
109   \enforced\let\eTH       \tabl_x_TABLE_TH_stop_cell
110   \enforced\let\setupTABLE\tabl_x_TABLE_setup
111   \enforced\let\bTABLE    \tabl_x_TABLE_start
112   \enforced\let\eTABLE    \tabl_x_TABLE_stop}
113
114\popoverloadmode
115
116\permanent\protected\def\tabl_x_TABLE_TH_start_cell
117  {\startxcellgroup[\c!foregroundstyle=\v!bold]%
118   \startxcell}
119
120\permanent\protected\def\tabl_x_TABLE_TH_stop_cell
121  {\stopxcell
122   \stopxcellgroup}
123
124\permanent\protected\tolerant\def\tabl_x_TABLE_setup[#S#settings]%
125  {\ifarguments\or
126  %\ifparameter#1\or
127     \setupxtable[#settings]%
128   \fi}
129
130\permanent\protected\tolerant\def\tabl_x_TABLE_start[#S#settings]%
131  {\bgroup
132   \ifarguments\or
133  %\ifparameter#1\or
134     \tabl_x_prepare{#settings}%
135   \fi
136   \edef\tabl_x_current_buffer{\tabl_x_default_buffer}%
137   \buff_pickup\tabl_x_current_buffer{bTABLE}{eTABLE}\relax\tabl_x_process\zerocount}
138
139\permanent\protected\def\tabl_x_TABLE_stop
140  {\stopxtable}
141
142\protect \endinput
143