about summary refs log tree commit diff
path: root/src/guile/skribilo/ast.scm
diff options
context:
space:
mode:
authorLudovic Court`es2007-06-04 12:43:42 +0000
committerLudovic Court`es2007-06-04 12:43:42 +0000
commit5617d303ebb53291567f5b8199afb2d95db8e89b (patch)
tree9d244dc13e2f08140b39cdc246f252054ec7e2d9 /src/guile/skribilo/ast.scm
parentb373074b4418c06082e28479c88ec750a4501710 (diff)
downloadskribilo-5617d303ebb53291567f5b8199afb2d95db8e89b.tar.gz
skribilo-5617d303ebb53291567f5b8199afb2d95db8e89b.tar.lz
skribilo-5617d303ebb53291567f5b8199afb2d95db8e89b.zip
Fixed handling of figure numbering in `ref'.
* src/guile/skribilo/ast.scm (markup-number-string): Don't use a
  hierarchical numbering scheme for figures.

* src/guile/skribilo/engine/lout.scm (ref): Use `markup-number-string'
  rather than `@NumberOf' to determine the number of a figure.  This
  guarantees numbering consistency.

git-archimport-id: lcourtes@laas.fr--2006-libre/skribilo--devo--1.2--patch-55
Diffstat (limited to 'src/guile/skribilo/ast.scm')
-rw-r--r--src/guile/skribilo/ast.scm23
1 files changed, 15 insertions, 8 deletions
diff --git a/src/guile/skribilo/ast.scm b/src/guile/skribilo/ast.scm
index 534b832..e60957c 100644
--- a/src/guile/skribilo/ast.scm
+++ b/src/guile/skribilo/ast.scm
@@ -608,14 +608,21 @@
 
 (define* (markup-number-string markup :optional (sep "."))
   ;; Return a structure number string such as "1.2".
-  (let loop ((markup markup))
-    (if (document? markup)
-	""
-	(let ((parent-num (loop (ast-parent markup)))
-	      (num (markup-option markup :number)))
-	  (string-append parent-num
-			 (if (string=? "" parent-num) "" sep)
-			 (if (number? num) (number->string num) ""))))))
+  (cond ((is-markup? markup 'figure)
+         ;; Figure numbering is assumed to be document-wide.
+         (number->string (markup-option markup :number)))
+        (else
+         ;; Use a hierarchical numbering scheme.
+         (let loop ((markup markup))
+           (if (document? markup)
+               ""
+               (let ((parent-num (loop (ast-parent markup)))
+                     (num (markup-option markup :number)))
+                 (string-append parent-num
+                                (if (string=? "" parent-num) "" sep)
+                                (if (number? num)
+                                    (number->string num)
+                                    ""))))))))
 
 
 ;;; arch-tag: e2489bd6-1b6d-4b03-bdfb-83cffd2f7ce7