;; $Id: dbmath.dsl,v 1.2 2003/01/15 08:24:13 adicarlo Exp $
;;
;; This file is part of the Modular DocBook Stylesheet distribution.
;; See ../README or http://docbook.sourceforge.net/projects/dsssl/
;;

(define %equation-autolabel% #f)

(element equation
  ;; derived from $semiformal-object$
  (if (node-list-empty? (select-elements (children (current-node))
					 (normalize "title")))
      ($informal-object$ %informalequation-rules% %informalequation-rules%)
      ($formal-object$ %informalequation-rules% %informalequation-rules%)))

(element (equation title) (empty-sosofo))
(element (equation alt) (empty-sosofo))
(element (equation graphic)
  (let ((alttag (select-elements (children (parent)) (normalize "alt"))))
    (if alttag
	($img$ (current-node) (data alttag))
	($img$))))

(element informalequation
  ;; Derived from informal-object
  (let ((rule-before? %informalequation-rules%)
	(rule-after? %informalequation-rules%))
    (if %equation-autolabel%
	(make sequence
	  (if rule-before?
	      (make empty-element gi: "HR")
	      (empty-sosofo))
	  (make element gi: "TABLE"
		attributes: '(("CLASS" "INFORMALEQUATION")
			      ("WIDTH" "100%")
			      ("BORDER" "0"))
		(make element gi: "TR"
		      (make element gi: "TD"
			    attributes: '(("VALIGN" "MIDDLE")
					  ("ALIGN" "LEFT"))
			    (process-children))
		      (make element gi: "TD"
			    attributes: '(("VALIGN" "MIDDLE")
					  ("ALIGN" "RIGHT")
					  ("WIDTH" "100"))
			    (literal "(" 
				     (element-label (current-node)) 
				     ")"))))
	  (if rule-after?
	      (make empty-element gi: "HR")
	      (empty-sosofo)))
	($informal-object$ rule-before? rule-after?))))

(element (informalequation alt) (empty-sosofo))
(element (informalequation graphic) 
  (let ((alttag (select-elements (children (parent)) (normalize "alt"))))
    (if alttag
	($img$ (current-node) (data alttag))
	($img$))))

(element inlineequation ($inline-object$))
(element (inlineequation alt) (empty-sosofo))
(element (inlineequation graphic) 
  (let ((alttag (select-elements (children (parent)) (normalize "alt"))))
    (if alttag
	($img$ (current-node) (data alttag))
	($img$))))
