aboutsummaryrefslogtreecommitdiff
path: root/src/guile/skribilo/package/eq/lout.scm
diff options
context:
space:
mode:
Diffstat (limited to 'src/guile/skribilo/package/eq/lout.scm')
-rw-r--r--src/guile/skribilo/package/eq/lout.scm52
1 files changed, 25 insertions, 27 deletions
diff --git a/src/guile/skribilo/package/eq/lout.scm b/src/guile/skribilo/package/eq/lout.scm
index e08e6d1..cc305f1 100644
--- a/src/guile/skribilo/package/eq/lout.scm
+++ b/src/guile/skribilo/package/eq/lout.scm
@@ -37,25 +37,24 @@
;;; Initialization.
;;;
-(let ((lout (find-engine 'lout)))
- (if (not lout)
- (skribe-error 'eq "Lout engine not found" lout)
- (let ((includes (engine-custom lout 'includes)))
- ;; Append the `eq' include file
- (engine-custom-set! lout 'includes
- (string-append includes "\n"
- "@SysInclude { eq }\n")))))
+(when-engine-is-instantiated (lookup-engine-class 'lout)
+ (lambda (lout class)
+ (let ((includes (engine-custom lout 'includes)))
+ ;; Append the `eq' include file
+ (engine-custom-set! lout 'includes
+ (string-append includes "\n"
+ "@SysInclude { eq }\n")))))
;;;
;;; Simple markup writers.
;;;
-(markup-writer 'eq-display (find-engine 'lout)
+(markup-writer 'eq-display (lookup-engine-class 'lout)
:before "\n@BeginAlignedDisplays\n"
:after "\n@EndAlignedDisplays\n")
-(markup-writer 'eq (find-engine 'lout)
+(markup-writer 'eq (lookup-engine-class 'lout)
:options '(:inline? :align-with :div-style :mul-style)
:before (lambda (node engine)
(let* ((parent (ast-parent node))
@@ -113,7 +112,8 @@
`(if need-paren? %right-paren "")
"")))
- `(markup-writer ',(symbol-append 'eq: sym) (find-engine 'lout)
+ `(markup-writer ',(symbol-append 'eq: sym)
+ (lookup-engine-class 'lout)
:action (lambda (node engine)
(let* ((lout-name ,(if (string? lout-name)
lout-name
@@ -167,21 +167,19 @@
(lambda (n e)
;; Obey either the per-node `:mul-style' or the
;; top-level one.
- (or (markup-option n :mul-style)
- (let* ((eq (ast-parent n))
- (mul-style
- (markup-option eq :mul-style)))
- (mul-style->lout mul-style)))))
+ (mul-style->lout
+ (or (markup-option n :mul-style)
+ (let ((eq (ast-parent n)))
+ (markup-option eq :mul-style))))))
(simple-lout-markup-writer /
(lambda (n e)
;; Obey either the per-node `:div-style' or the
;; top-level one.
- (or (markup-option n :div-style)
- (let* ((eq (ast-parent n))
- (div-style
- (markup-option eq :div-style)))
- (div-style->lout div-style))))
+ (div-style->lout
+ (or (markup-option n :div-style)
+ (let ((eq (ast-parent n)))
+ (markup-option eq :div-style)))))
#f)
(simple-lout-markup-writer =)
(simple-lout-markup-writer <)
@@ -190,7 +188,7 @@
(simple-lout-markup-writer >=)
(define-macro (binary-lout-markup-writer sym lout-name)
- `(markup-writer ',(symbol-append 'eq: sym) (find-engine 'lout)
+ `(markup-writer ',(symbol-append 'eq: sym) (lookup-engine-class 'lout)
:action (lambda (node engine)
(let ((body (markup-body node)))
(if (= (length body) 2)
@@ -212,7 +210,7 @@
(binary-lout-markup-writer in "element")
(binary-lout-markup-writer notin "notelement")
-(markup-writer 'eq:apply (find-engine 'lout)
+(markup-writer 'eq:apply (lookup-engine-class 'lout)
:action (lambda (node engine)
(let ((func (car (markup-body node))))
(output func engine)
@@ -228,7 +226,7 @@
(display %right-paren))))
-(markup-writer 'eq:limit (find-engine 'lout)
+(markup-writer 'eq:limit (lookup-engine-class 'lout)
:action (lambda (node engine)
(let ((body (markup-body node))
(var (markup-option node :var))
@@ -241,7 +239,7 @@
(output body engine)
(display (string-append %right-paren " } ")))))
-(markup-writer 'eq:combinations (find-engine 'lout)
+(markup-writer 'eq:combinations (lookup-engine-class 'lout)
:action (lambda (node engine)
(let ((of (markup-option node :of))
(among (markup-option node :among)))
@@ -258,7 +256,7 @@
;;;
(define-macro (range-lout-markup-writer sym lout-name)
- `(markup-writer ',(symbol-append 'eq: sym) (find-engine 'lout)
+ `(markup-writer ',(symbol-append 'eq: sym) (lookup-engine-class 'lout)
:action (lambda (node engine)
(let ((from (markup-option node :from))
(to (markup-option node :to))
@@ -275,7 +273,7 @@
(range-lout-markup-writer sum "sum")
(range-lout-markup-writer product "prod")
-(markup-writer 'eq:script (find-engine 'lout)
+(markup-writer 'eq:script (lookup-engine-class 'lout)
:action (lambda (node engine)
(let ((body (markup-body node))
(sup (markup-option node :sup))