   return null
 
 #-----------------------------------------------------------------------------------------------------------
+@_compute_table_height = ( me ) ->
+  me.table_dimensions.height  = @_bottom_from_rownr me, me.grid.height
+  me.table_dimensions.width   = null ### not used ATM, all tables are nominally as wide as column ###
+  return null
+
+#-----------------------------------------------------------------------------------------------------------
 @_left_from_colnr = ( me, colnr ) ->
   ### TAINT should precompute ###
   @_ensure_cellwidths me

    fails:                [] ### recoverable errors / fails warnings ###
    fieldcells:           {} ### field extents in terms of cells, by field designations ###
    cellfields:           {} ### which cells belong to what fields, by cellkeys ###
    cell_dimensions:      {}
    fieldborders:         {} ### field borders, as TikZ styles by edges ###
    field_dimensions:     {} ### field extents in terms of (unitwidth,unitheight), by field designations ###

  yield texr 'µ2', "\\mktsColorframebox{red}{% debugging framebox" if me.debug
  ### NOTE only height of minipage is important; TikZ will happily draw outside of minipage when told ###
  ### TAINT calculate proper height so text will keep register ###
  yield texr 'µ3', "\\newdimen\\mktsTableUnitwidth\\setlength{\\mktsTableUnitwidth}{#{me.unitwidth}}"
  yield texr 'µ4', "\\newdimen\\mktsTableUnitheight\\setlength{\\mktsTableUnitheight}{#{me.unitheight}}"
  yield texr 'µ2', "\\begin{minipage}[t][#{me.table_dimensions.height}\\mktsTableUnitheight][t]{\\linewidth}"
  yield texr 'µ5', "\\begin{tikzpicture}[ overlay, yshift = 0mm, yscale = -1, line cap = rect ]"
  yield texr 'µ6', "\\tikzset{x=#{me.unitwidth}};\\tikzset{y=#{me.unitheight}};"
  yield return
