diff options
Diffstat (limited to 'src/guile/skribilo/package/eq/lout.scm')
-rw-r--r-- | src/guile/skribilo/package/eq/lout.scm | 52 |
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)) |