anchor.diff:       (setf *sheet-state* :fonts-defined)))
   
   (export 'font)
  -(defun font (name &key family style weight size variant stretch)
  +(defun font (name &key adornments family family-generic style weight size variant stretch)
     (unless (eq *sheet-state* :with-fonts)
       (error "font must be called in the context of a with-fonts form"))
     (with-tag ((*ns-style* "font-face"))
       (attr (*ns-style* "name") name)
  +    (when adornments
  +      (check-type adornments string)
  +      (attr *ns-svg* "font-adornments") adornments)
       (when family (attr (*ns-svg* "font-family") family))
  +    (when family-generic (attr (*ns-svg* "font-family") (kw-to-string family-generic '(:roman :swiss :modern :decorative :script :system))))
       (when style (attr (*ns-svg* "font-style") (kw-to-string style '(:normal :italic :oblique))))
       (when weight (attr (*ns-svg* "font-weight")
   		       (if (numberp weight)
  
positive.code: 
  (export 'with-table)
  (defmacro with-table ((name) &body body)
    `(progn
       (unless (find *sheet-state* '(:spreadsheet :table-seen))
         (error "with-table must be a child of a with-body form"))
       ,(unless (typep name 'string)
  	`(check-type ,name string))
       (with-tag ((*ns-table* "table"))
         (attr (*ns-table* "name") ,name)
         (tag (*ns-table* "title") ,name)
         (let ((*sheet-state* :table))
  	 ,@body)
         (setf *sheet-state* :table-seen))))
  
  (export 'with-header-columns)
  (defmacro with-header-columns (() &body body)
  
negative.code:     (write-background background)))
  
  (export 'cell-style)
  (defstyle (cell-style "table-cell") (name text-properties
  					  &key horizontal-align vertical-align text-align-source background
  					  border border-left border-top border-right border-bottom
  					  (wrap nil wrap-supplied))
    (with-tag ((*ns-style* "table-cell-properties"))
  