diff options
author | Ludovic Court`es | 2007-08-20 16:01:30 +0000 |
---|---|---|
committer | Ludovic Court`es | 2007-08-20 16:01:30 +0000 |
commit | ea87fc231d9eb30ac3dc5bb1d6933ae7862ed1ac (patch) | |
tree | 3ff725cbfd42cab7f112e7a30a4eb859366a8686 /src/guile/skribilo/package/base.scm | |
parent | 6e53232aaf3f3ec31678911643c1e1a9f04d6619 (diff) | |
download | skribilo-ea87fc231d9eb30ac3dc5bb1d6933ae7862ed1ac.tar.gz skribilo-ea87fc231d9eb30ac3dc5bb1d6933ae7862ed1ac.tar.lz skribilo-ea87fc231d9eb30ac3dc5bb1d6933ae7862ed1ac.zip |
Allow for user-specified section numbers.
* src/guile/skribilo/ast.scm: Use `srfi-13'.
(markup-number-string): Made tail-recursive. Allow for non-number
`:number' options.
* src/guile/skribilo/package/base.scm (section-number): Allow non-number
`:number' options to pass through.
(chapter): Use `section-number'.
git-archimport-id: lcourtes@laas.fr--2006-libre/skribilo--devo--1.2--patch-86
Diffstat (limited to 'src/guile/skribilo/package/base.scm')
-rw-r--r-- | src/guile/skribilo/package/base.scm | 33 |
1 files changed, 17 insertions, 16 deletions
diff --git a/src/guile/skribilo/package/base.scm b/src/guile/skribilo/package/base.scm index 872c1e2..9616080 100644 --- a/src/guile/skribilo/package/base.scm +++ b/src/guile/skribilo/package/base.scm @@ -174,6 +174,22 @@ (skribe-error 'toc "Illegal argument" body))))))) ;*---------------------------------------------------------------------*/ +;* section-number ... */ +;*---------------------------------------------------------------------*/ +(define (section-number number markup) + (cond ((not number) + ;; number-less + #f) + ((or (string? number) (list? number) (ast? number)) + ;; user-specified number + number) + (else + ;; automatic numbering + (new unresolved + (proc (lambda (n e env) + (resolve-counter n env markup number))))))) + +;*---------------------------------------------------------------------*/ ;* chapter ... ... */ ;* ------------------------------------------------------------- */ ;* doc: */ @@ -193,13 +209,7 @@ (loc &invocation-location) (required-options '(:title :file :toc :number)) (options `((:toc ,toc) - (:number ,(and number - (new unresolved - (proc (lambda (n e env) - (resolve-counter n - env - 'chapter - number)))))) + (:number ,(section-number number 'chapter)) ,@(the-options opts :ident :class))) (body (the-body opts)) (env (list (list 'section-counter 0) (list 'section-env '()) @@ -207,15 +217,6 @@ (list 'equation-counter 0) (list 'equation-env '()))))) ;*---------------------------------------------------------------------*/ -;* section-number ... */ -;*---------------------------------------------------------------------*/ -(define (section-number number markup) - (and number - (new unresolved - (proc (lambda (n e env) - (resolve-counter n env markup number)))))) - -;*---------------------------------------------------------------------*/ ;* section ... */ ;* ------------------------------------------------------------- */ ;* doc: */ |