1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308
|
<!-- X-URL: http://tug.org/applications/jadetex/jadetextables.html -->
<BASE HREF="http://tug.org/applications/jadetex/jadetextables.html">
<HTML>
<HEAD>
<TITLE>Jade TeX backend with table extensions</TITLE>
<STYLE>
BODY {font: 11pt Arial; color: 114477}
A:link {font: 10pt Arial; color: 003366; font-weight:bold}
A:visited {font: 10pt Arial; color: 0099cc; font-weight:bold}
H1 {font: 24pt Arial; font-weight: bold; color: 000066}
H2 {font: 20pt Arial; font-weight: bold; color: 000066}
H3 {font: 18pt Arial; font-weight: bold; color: 000066}
H4 {font: 12pt Arial; font-weight: bold; color: 000066}
H5 {font: 10pt Arial; font-weight: bold; color: 000066}
</STYLE>
</HEAD>
<BODY bgcolor="#ffffff" text="#114477" background="../mif/squar26.jpg">
<DIV ALIGN="center">
<P>
<H1>Jade TeX Backend</H1>
<H4>with table extensions</H4>
<H2>Current version is 1.0b5<BR>(based on Jade 1.1)</H2>
<H4>Released: June 15th, 1998</H4>
<IMG SRC="../mif/gear_anim.gif">
</P>
</DIV>
<HR>
<P ALIGN="CENTER">
<A HREF="#recent_changes">Recent Changes</A>
<IMG SRC="../mif/bullet.gif">
<A HREF="#source_code">Source Code</A>
<IMG SRC="../mif/bullet.gif">
<A HREF="#binaries">Precompiled Binaries</A>
<IMG SRC="../mif/bullet.gif">
<A HREF="#compiling">Compiling</A>
<IMG SRC="../mif/bullet.gif">
<A HREF="#spec">Table Processing Specification</A>
<HR>
<A NAME="recent_changes"></A>
<H3>Recent Changes</H3>
<P>Multi-column cell processing: added new macro (/multicolumn{}{}{})
and \def\MultiPar{} definition.</P>
<A NAME="source_code"></A>
<H3>Source Code</H3>
<P>Tested with the version 1.1 of <A HREF="http://www.jclark.com/jade/">James Clark's Jade</A>.
<DIV ALIGN="center">
<P><TABLE BORDER CELLPADDING="4" BORDERCOLOR="#99BBBB">
<TR BGCOLOR="#00A5A5"><TH COLSPAN="3">Source Code Changes</TH></TR>
<TR BGCOLOR="#00A5A5"><TH>File</TH><TH>Subdirectory</TH><TH>Status</TH></TR>
<TR BGCOLOR="#00E5E5"><TD>jade.mak</TD><TD>.</TD><TD>changed</TD></TR>
<TR BGCOLOR="#00E5E5"><TD>Makefile.sub</TD><TD>jade</TD><TD>changed</TD></TR>
<TR BGCOLOR="#00E5E5"><TD>TeXFOTBuilder.cxx</TD><TD>jade</TD><TD>changed</TD></TR>
<TR BGCOLOR="#00E5E5"><TD>TeXFOTBuilder_ins.m4</TD><TD>jade</TD><TD>new</TD></TR>
<TR BGCOLOR="#00E5E5"><TD>TeXFOTBuilder_ins.cxx</TD><TD>jade<TD>new (auto)</TD></TR>
<TR BGCOLOR="#00E5E5"><TD>TmpOutputByteStream.h</TD><TD>jade</TD><TD>new</TD></TR>
</TABLE><P>
</DIV>
<P>
<IMG SRC="../mif/arr.gif"> Zipped James Clark's distribution of Jade 1.1: [<A HREF="../mif/jade1_1.zip">download</A> (1077 KB)]
<BR><IMG SRC="../mif/arr.gif"> Zipped source code of new TeX backend
(contains subdirectories: use pkunzip -d under DOS):
[<A HREF="JadeTeX-1.0b5.zip">download</A> (33 KB)]</P>
<A NAME="compiling"></A>
<H3>Compiling</H3>
<H5>Compiling under UNIX</H5>
<OL>
<LI>Unzip on top of the original Jade 1.1 distribution - use the unzip's option -a.</LI>
<LI>"make -f Makefile.jade depend"</LI>
<LI>"make -f Makefile.jade"</LI>
</OL>
<H5>Compiling under Windows95/NT (using Visual C++ 4.2)</H5>
<OL>
<LI>Unzip on top of the original Jade 1.1 distribution - use the pkunzip's option -d.</LI>
<LI>Open SP.mak and build the "lib - Win32 Release" configuration</LI>
<LI>Open jade.mak and build the "jade - Win32 Release" configuration</LI>
</OL>
<A NAME="binaries"></A>
<H3>Precompiled Binaries</H3>
<P>
<IMG SRC="../mif/arr.gif"> Zipped Win95/NT binary: jade.exe
[<A HREF="JadeTeX-1.0b5-Win32Bin.zip">download</A> (107 KB)]
<BR><IMG SRC="../mif/arr.gif"> Zipped James Clark's distribution of Jade 1.1
(windows binaries and DLLs that the jade.exe will need - you may have it already installed)
[<A HREF="../mif/jadew1_0.zip">download</A> (1159 KB)]
<!--
<BR><IMG SRC="../mif/arr.gif"> Tarred Linux binary (if it doesn't work on yur system,
you can compile your own from source code).
[<A HREF="JadeTeX-1.0b1-LinuxBin.tgz">download</A> (875 KB)]
-->
</P>
<A NAME="spec"></A>
<H3>Table Processing Specification</H3>
<H5>Structure</H5>
<P>On output the components of <code>Table</code> flow objects are
reaarranged in the following manner:</P>
<P><IMG SRC="../mif/arr.gif">
Contents of the <code>header</code> port of the <code>table-part</code> flow object
are moved just before the contents of the principal port of the
<code>table-part</code> flow object. The surrounding <code>\TablePartHeader</code> and
<code>\endTablePartHeader</code> TeX macro calls are preserved.
</P>
<P><IMG SRC="../mif/arr.gif">
Contents of the <code>footer</code> port of the <code>table-part</code> flow object
are moved just after the contents of the principal port of the
<code>table-part</code> flow object. The surrounding <code>\TablePartFooter</code>
and <code>\endTablePartFooter</code> TeX macro calls are preserved.
</P>
<P><IMG SRC="../mif/arr.gif">
Contents of the <code>footer</code> port of the <code>table-part</code> flow object
are moved just after the contents of the principal port of the
<code>table-part</code> flow object. The surrounding <code>\TablePartFooter</code>
and <code>\endTablePartFooter</code> TeX macro calls are preserved.
</P>
<P><IMG SRC="../mif/arr.gif">
The <code>table-cell</code> flow objects are rearranged in the sequential order
according to the <code>column-number</code> characteristic. Cells overlapped by
cells that span multiple rows and/or columns are not reported. Missing cells are
reported.
</P>
<P><IMG SRC="../mif/arr.gif">
Contents of every <code>table-part</code> flow object, and contents of every
<code>table</code> flow object with no nested <code>table-part</code> flow objects,
are surrounded by the <code>/TeXTable{}{}{}</code> and <code>/endTeXTable</code> TeX
macro calls (see <A HREF="#tex_table">below</A>).
</P>
<P><IMG SRC="../mif/arr.gif">
The <code>Node</code> information surrounding moved elements (rows, and cells),
moves with them.
</P>
<P><IMG SRC="../mif/arr.gif">
The <code>table-border</code> and <code>table-column</code> flow objects are
not reported.
</P>
<H5>Border Resolution</H5>
<P>Border resolution takes in account conflicts between adjacent cell borders
and adjacent table and cell borders. Such conflicts are resolved using the
<code>border-priority</code> characteristic. The border resolution occurs
after table headers and footers has been moved into their correct place -
for the border resolution purposes they are considered part of the table body.
The resolution of before/after table borders (borders that surround table as
a whole) takes in account existence of table parts.
<P>
<H5>Table/Column Width Computation</H5>
<P>The backend has internal inherited characteristics stack that keeps track of
the display width changes. Columns, margins, intercolumn spacing, etc. are
taken into account. At the point when TeX table is being generated its
width will be reported in points. In the case the <code>table-width</code>
characteristic is equal to <code>#f</code> (minimal table width), the full
available display width will be reported (TeX macros can decide what to do in
such situation by examining the actual characteristic value.)
</P>
<P>Width of columns with the <code>width</code> characteristic set are reported
in points after appropriate processing of <code>table-unit</code> values.
In a situation where columns with proportional width are mixed with columns
with no width, the width of the columns with no width will be
assumed equal to one table-unit.
</P>
<A NAME="tex_table"></A>
<H5>TeX Tables</H5>
<P>In order to facilitate creation of the TeX table, backend will generate
TeX macro calls of the form:
<P ALIGN="center"><b><code>\TexTable{[width]}{[number_of_columns]}{[column_template]}</code></b></P>
<P>where:</P>
<DIV ALIGN="center">
<TABLE BORDER CELLPADDING="5">
<TR>
<TD><b><code>[width]</code></b></TD><TD>is table width in points.</TD>
</TR>
<TR>
<TD><b><code>[number_of_columns]</code></b></TD><TD> is the number of columns in the table.</TD>
</TR>
<TR>
<TD><b><code>[column_template]</code></b></td><td> is the template representing table column
information</TD>
</TR>
</TABLE>
</DIV>
<P>The <code>[column_template]</code> provides column information using the
following strings:</P>
<DIV ALIGN="center">
<TABLE BORDER CELLPADDING="5">
<TR>
<TD><b><code>l</code></b></TD>
<TD>default display alignment is start or inside, width of the column determined by content</TD>
</TR>
<TR>
<TD><b><code>c</code></b></TD>
<TD>default display alignment is center, width of the column determined by content</TD>
</TR>
<TR>
<TD><b><code>r</code></b></TD>
<TD>default display alignment is end or outside, width of the column determined by content</TD>
</TR>
<TR>
<TD><b><code>L{[width]}</code></b></TD>
<TD>default display alignment is start or inside, width of the column given in points</TD>
</TR>
<TR>
<TD><b><code>C{[width]}</code></b></TD>
<TD>default display alignment is center, width of the column given in points</TD>
</TR>
<TR>
<TD><b><code>R{[width]}</code></b></TD>
<TD>default display alignment is end or outside, width of the column given in points</TD>
</TR>
<TR>
<TD COLSPAN="2">
The above strings can be interwoven by "pipe" characters (|)
representing presence/absence of default vertical borders.
</TD>
<TR>
</TABLE>
</DIV>
<P>If the effective display alignment of an individual cell differs form the default
provided by template, a:</P>
<P ALIGN="center"><b><code>\def\TeXTableCellDisplayAlignment{[align_char]}}</code></b></P>
<P>definition is appended to the cell's characteristics list. <code>[align_char]</code>
may be one of <b><code>l<code></b>, <b><code>c</code></b>, and <b></code>r</code></b>
with the meanings as in the table above.</P>
<P>If the effective left\right borders of an individual cell differs form the default
provided by template, a:</P>
<P ALIGN="center"><b><code>\def\TeXTableCellBeforeColumnBorder{[border_present]}</code></b>
<BR>and/or<BR>
<b><code>\def\TeXTableCellAfterColumnBorder{[border_present]}</code></b>
</P>
<P>definitions are appended to the cell's characteristics list. <code>[border_char]</code>
may be 1 for border present, and 0 for no border.</P>
<P>The horizontal borders of a table are represented by the following calls occuring
in-between each row and at the beginning/end of a TeX table:</P>
<DIV ALIGN="center">
<TABLE BORDER CELLPADDING="5">
<TR>
<TD><b><code>\Hline</code></b></TD><TD>border spanning all columns</TD>
</TR>
<TR>
<TD><b><code>\Cline{n-m}</code></b></td><td>border spanning columns <b><code>n</code></b> to <b><code>m</code></b></TD>
</TR>
<TR>
<TD COLSPAN="2">
In the above column numbering starts at 1.
</TD>
</TABLE>
</DIV>
<P>Here's an example of TeX table macro call:</P>
<DIV ALIGN="center">
<TABLE>
<TD><b><code>\Hline
<BR>\TeXTable{174\p@}{3}{|C{50\p@}|l|C{50\p@}|}
<BR> ...
<BR>\endTeXTable
<BR>\Hline</code></b></TD>
</TABLE>
</DIV>
<HR>
</BODY>
</HTML>
|