     for row_nr_1 from @_walk_row_numbers me, 'short'
       row_nr_2  = row_nr_1 + 1
       quad = "#{col_letter_1}#{row_nr_1}"
-      yield [ 'tex', "\\draw[ red, line width = 0.2mm ] (quad #{quad} top    left)  -- (quad #{quad} top    right); % Quad a1 top\n",    ]
-      yield [ 'tex', "\\draw[ red, line width = 0.2mm ] (quad #{quad} top    left)  -- (quad #{quad} bottom left);  % Quad a1 left\n",   ]
-      yield [ 'tex', "\\draw[ red, line width = 0.2mm ] (quad #{quad} bottom left)  -- (quad #{quad} bottom right); % Quad a1 bottom\n", ]
-      yield [ 'tex', "\\draw[ red, line width = 0.2mm ] (quad #{quad} top    right) -- (quad #{quad} bottom right); % Quad a1 right\n",  ]
-  #.........................................................................................................
-  return null
+      yield [ 'tex', "\\draw[sQuadgrid] (quad_#{quad} top    left)  -- (quad_#{quad} top    right);%\n",  ]
+      yield [ 'tex', "\\draw[sQuadgrid] (quad_#{quad} top    left)  -- (quad_#{quad} bottom left);%\n",   ]
+      yield [ 'tex', "\\draw[sQuadgrid] (quad_#{quad} bottom left)  -- (quad_#{quad} bottom right);%\n",  ]
+      yield [ 'tex', "\\draw[sQuadgrid] (quad_#{quad} top    right) -- (quad_#{quad} bottom right);%\n",  ]
+  #.........................................................................................................
+  yield return
+
+#-----------------------------------------------------------------------------------------------------------
+@_walk_borders_events = ( me ) ->
+  #.........................................................................................................
+  for designation, cellquads of me.cellquads
+    continue unless ( cellborders = me.cellborders[ designation ] )?
+    for d from @_walk_cellquads_sides me, cellquads, '*'
+      continue unless ( borderstyle = cellborders[ d.side ] )?
+      switch d.side
+        when 'top', 'bottom'
+          yield [ 'tex', "\\draw[#{borderstyle}] (quad_#{d.quad} #{d.side} left) -- (quad_#{d.quad} #{d.side} right);\n", ]
+        when 'left', 'right'
+          yield [ 'tex', "\\draw[#{borderstyle}] (quad_#{d.quad} top #{d.side}) -- (quad_#{d.quad} bottom #{d.side});\n", ]
+        else
+          throw new Error "(MKTS/TABLE 2658) illegal value for side #{rpr d.side}"
+  #.........................................................................................................
+  yield return
 
 #-----------------------------------------------------------------------------------------------------------
 @_walk_debugging_events = ( me ) ->

    ### TAINT don't use EXCJSCC directly ###
    col_letter  = ( EXCJSCC.n2l col_nr ).toLowerCase()
    yield [ col_letter, col_nr, ]

#-----------------------------------------------------------------------------------------------------------
@_walk_row_numbers = ( me, mode ) ->
  @_ensure_gridheight me
  delta = if mode is 'short' then 0 else 1
  yield row_nr for row_nr in [ 1 .. me.gridheight + delta ]


#===========================================================================================================

  y_position  = 0
  #.........................................................................................................
  for [ col_letter, col_nr, ] from @_walk_column_letters_and_numbers me, 'long'
    yield [ 'tex', "\\coordinate (col_#{col_letter}) at ( #{x_position}, 0 );%\n", ]
    x_position += me.quadwidths[ col_nr ]
  #.........................................................................................................
  for row_nr from @_walk_row_numbers me, 'long'
    yield [ 'tex', "\\coordinate (row_#{row_nr}) at ( 0, #{y_position} );%\n", ]
    y_position += me.quadheights[ row_nr ]
  #.........................................................................................................
  yield return

#-----------------------------------------------------------------------------------------------------------
@_walk_joint_coordinates_events = ( me ) ->
