From 569391b672f12a742a61f3575ca09660098d7514 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 3 Mar 2008 15:44:35 +0100 Subject: slide: Determine what to include in the outline slide based on `:toc'. * NEWS: Update. * doc/user/slide.skb: Update. * src/guile/skribilo/package/slide.scm (slide-topic, slide-subtopic): Add `toc' option. * src/guile/skribilo/package/slide/base.scm (make-subtopic-list): Filter topic nodes whose `:toc' is true. --- NEWS | 2 ++ doc/user/slide.skb | 55 +++++++++++++++---------------- src/guile/skribilo/package/slide.scm | 6 ++-- src/guile/skribilo/package/slide/base.scm | 3 +- 4 files changed, 34 insertions(+), 32 deletions(-) diff --git a/NEWS b/NEWS index 816bc90..1b6286e 100644 --- a/NEWS +++ b/NEWS @@ -25,6 +25,8 @@ These harmless warnings looked like: Namely, `slide-outline-title' and `slide-outline-{active,inactive}-color'. See manual for details. +** The `:toc' option of `slide' determines whether to include it in the outline + * New in Skribilo 0.9.0 (user-visible changes compared to Skribe 1.2d) diff --git a/doc/user/slide.skb b/doc/user/slide.skb index fa1534f..92d3f43 100644 --- a/doc/user/slide.skb +++ b/doc/user/slide.skb @@ -80,50 +80,47 @@ Skribe to generate slides for the LaTeX prosper package.]) (p [A ,(code "slide") function call creates a slide.]) (doc-markup 'slide - `((:title [The title of the slide.]) - (:number [The number of the slide (a boolean or an integer).]) - (:toc [This argument controls if the slide must -be referenced in the ,(mark :mark "toc" "table of contents").]) - (:vspace [The boolean ,(code "#f") or an integer representing + `((:title ,[The title of the slide.]) + (:number ,[The number of the slide (a boolean or an integer).]) + (:toc ,[This argument controls if the slide must be +referenced in the ,(ref :mark "toc" :text "table of contents") and the +outline slide that introduces a ,(markup-ref "slide-topic") (see +below).]) + (:vspace ,[The boolean ,(code "#f") or an integer representing the vertical space size between the title and the body of the slide.]) - (:vfill [A boolean that is used to control whether a LaTeX + (:vfill ,[A boolean that is used to control whether a LaTeX ,(code "\\vfill") is issued at the end of the slide.]) - (:transition [The boolean ,(code "#f") or a symbol in the + (:transition ,[The boolean ,(code "#f") or a symbol in the list ,(code "(split blinds box wipe dissolve glitter)").]) - (:bg [The background color of the slide.]) - (:image [The background image of the slide.])) + (:bg ,[The background color of the slide.]) + (:image ,[The background image of the slide.])) :source "skribilo/package/slide.scm") (p [Optionally, one may group slides into ,(emph [topics]) and ,(emph [subtopics]). Topics and subtopics are just logical grouping under a given title that are meant to provide structure to a set of -slides. With their ,(code [:outline?]) option, these two markups can be +slides. With their ,(param :outline?) option, these two markups can be used to automatically produce an outline at the beginning of each new -(sub)topic, so that the audience knows what the talk is heading to.]) +(sub)topic, which reminds the audience of the current position within +the talk.]) (doc-markup 'slide-topic - `((:title [The title of a topic.]) - (:outline? [A boolean (i.e., ,(code [#t]) or ,(code + `((:title ,[The title of a topic.]) + (:outline? ,[A boolean (i.e., ,(code [#t]) or ,(code [#f])) telling whether an outline should be produced at the beginning of this topic. The outline will typically list the titles of the different -topics, as well as the titles of the slides under the current topic.]) - (:unfold? [If ,(code [#t]), then the outline will also -show the contents of the current topic.])) +topics, as well as the titles of the slides under the current topic. +Note that ,(markup-ref "slide")s whose ,(param :toc) option is ,(code +[#f]) will not be shown in the outline.]) + (:unfold? ,[If ,(code [#t]), then the outline will also +show the contents of the current topic.]) + (:toc ,[This argument controls if the slide must be +referenced in the ,(ref :mark "toc" :text "table of contents") and the +outline slide that introduces a ,(markup-ref "slide-topic") (see +below).])) + :others '(slide-subtopic) :source "skribilo/package/slide.scm") - - (p [The ,(code [slide-subtopic]) markup is similar:]) - (doc-markup 'slide-subtopic - `((:title [The title of a subtopic.]) - (:outline? [A boolean (i.e., ,(code [#t]) or ,(code -[#f])) telling whether an outline should be produced at the beginning of -this subtopic. The outline will typically list the titles of the -different subtopics, as well as the titles of the slides under the -current subtopic.]) - (:unfold? [If ,(code [#t]), then the outline will also -show the contents of the current subtopic.])) - :source "skribilo/package/slide.scm") - (p [This package understands the following additional customs (see Section ,(ref :subsection "Engine Customs" :page #t)): diff --git a/src/guile/skribilo/package/slide.scm b/src/guile/skribilo/package/slide.scm index 86cfb90..050ed6a 100644 --- a/src/guile/skribilo/package/slide.scm +++ b/src/guile/skribilo/package/slide.scm @@ -252,7 +252,7 @@ ;* slide-topic ... */ ;*---------------------------------------------------------------------*/ (define-markup (slide-topic :rest opt - :key title (outline? #t) (unfold? #t) + :key title (outline? #t) (unfold? #t) (toc #t) (ident #f) (class #f)) (new container (markup 'slide-topic) @@ -262,6 +262,7 @@ (loc &invocation-location) (options `((:outline? ,outline?) (:unfold? ,unfold?) + (:toc ,toc) ,@(the-options opt :outline? :unfold? :class))) (body (the-body opt)))) @@ -269,7 +270,7 @@ ;* slide-subtopic ... */ ;*---------------------------------------------------------------------*/ (define-markup (slide-subtopic :rest opt - :key title (outline? #f) (unfold? #f) + :key title (outline? #f) (unfold? #f) (toc #t) (ident #f) (class #f)) (new container (markup 'slide-subtopic) @@ -279,6 +280,7 @@ (loc &invocation-location) (options `((:outline? ,outline?) (:unfold? ,unfold?) + (:toc ,toc) ,@(the-options opt :outline? :class))) (body (the-body opt)))) diff --git a/src/guile/skribilo/package/slide/base.scm b/src/guile/skribilo/package/slide/base.scm index 45657c5..cb50ca1 100644 --- a/src/guile/skribilo/package/slide/base.scm +++ b/src/guile/skribilo/package/slide/base.scm @@ -104,7 +104,8 @@ (filter (lambda (n) (and (markup? n) (member (markup-markup n) - subtopic-types))) + subtopic-types) + (markup-option n :toc))) (markup-body node)))))))) (define (make-topic-list current-topic recurse? make-entry-proc) -- cgit v1.2.3