summary refs log tree commit diff
path: root/doc/user/slide.skb
diff options
context:
space:
mode:
authorLudovic Court`es2006-10-11 07:43:47 +0000
committerLudovic Court`es2006-10-11 07:43:47 +0000
commitd4360259d60722eaa175a483f792fce7b8c66d97 (patch)
tree622cc21b820e3dd4616890bc9ccba74de6637d8a /doc/user/slide.skb
parentfc42fe56a57eace2dbdb31574c2e161f0eacf839 (diff)
downloadskribilo-d4360259d60722eaa175a483f792fce7b8c66d97.tar.gz
skribilo-d4360259d60722eaa175a483f792fce7b8c66d97.tar.lz
skribilo-d4360259d60722eaa175a483f792fce7b8c66d97.zip
slide: Propagate the `outline?' parameter in `slide-(sub)?topic'.
* src/guile/skribilo/package/slide.scm (slide-topic): Propagate the
  `outline?' parameter as an option.
  (slide-subtopic): Likewise.

git-archimport-id: skribilo@sv.gnu.org--2006/skribilo--devo--1.2--patch-1
Diffstat (limited to 'doc/user/slide.skb')
-rw-r--r--doc/user/slide.skb132
1 files changed, 109 insertions, 23 deletions
diff --git a/doc/user/slide.skb b/doc/user/slide.skb
index c1111ee..3e903ad 100644
--- a/doc/user/slide.skb
+++ b/doc/user/slide.skb
@@ -1,19 +1,64 @@
-;*=====================================================================*/
-;*    serrano/prgm/project/skribe/doc/user/slide.skb                   */
-;*    -------------------------------------------------------------    */
-;*    Author      :  Manuel Serrano                                    */
-;*    Creation    :  Fri Jan  9 06:37:47 2004                          */
-;*    Last change :  Thu Feb 26 21:00:04 2004 (eg)                     */
-;*    Copyright   :  2004 Manuel Serrano                               */
-;*    -------------------------------------------------------------    */
-;*    Slides                                                           */
-;*=====================================================================*/
-(skribe-load "slide.skr")
+;;; slide.skb  --  Slides
+;;;
+;;; Copyright 2004  Manuel Serrano
+;;; Copyright 2006  Ludovic Courtès <ludovic.courtes@laas.fr>
+;;;
+;;;
+;;; This program is free software; you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 2 of the License, or
+;;; (at your option) any later version.
+;;;
+;;; This program is distributed in the hope that it will be useful,
+;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program; if not, write to the Free Software
+;;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+;;; USA.
+
+
+;*---------------------------------------------------------------------*/
+;*    dummy-slide-set-output ...                                       */
+;*---------------------------------------------------------------------*/
+(define dummy-slide-set-output
+   (lambda (n e)
+      (let* ((a (markup-option n :author))
+	     (t (markup-option n :title))
+	     (b (markup-body n))
+	     (ta (table (tr (map (lambda (n)
+				    (td :valign 'top :align 'center n))
+	                         (if (list? a) a (list a)))))))
+	 (skribe-eval (center (bold t)) e)
+	 (skribe-eval (center ta) e)
+	 (output b e))))
+
+(define dummy-slide-output
+   (lambda (n e)
+      (let* ((t (markup-option n :title))
+	     (b (markup-body n)))
+	 (skribe-eval (bold t) e)
+	 (output b e))))
+
+(define dummy-slide-vspace-output
+   (lambda (n e)
+     (skribe-eval (linebreak) e)
+     (skribe-eval (center (tt "[vspace]")) e)
+     (skribe-eval (linebreak) e)))
+
+(define dummy-slide-embed-output
+   (lambda (n e)
+     (skribe-eval (linebreak) e)
+     (skribe-eval (tt (or (markup-option n :alt)
+			  (markup-option n :command)))
+		  e)))
 
 ;*---------------------------------------------------------------------*/
 ;*    Computer programs                                                */
 ;*---------------------------------------------------------------------*/
-(chapter :title "Slide Package" 
+(chapter :title "Slide Package"
 
    (p [
 This chapter describes the facilities Skribe offers authoring slides.
@@ -27,7 +72,7 @@ second one tells Skribe to generate slides for the LaTeX prosper package.])
 ;*---------------------------------------------------------------------*/
 ;*    slide ... @label slide@                                          */
 ;*---------------------------------------------------------------------*/
-(section :title "Slide"
+(section :title "Slides and Slide Topics"
    
    (p [A ,(code "slide") function call creates a slide.])
    
@@ -44,7 +89,33 @@ the vertical space size between the title and the body of the slide.])
 list ,(code "(split blinds box wipe dissolve glitter)").])
 		 (:bg [The background color of the slide.])
 		 (:image [The background image of the slide.]))
-	       :source "../skr/slide.skr"))
+	       :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
+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.])
+   
+   (doc-markup 'slide-topic
+	       `((: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.]))
+	       :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.]))
+	       :source "skribilo/package/slide.scm"))
 
 ;*---------------------------------------------------------------------*/
 ;*    slide-pause                                                      */
@@ -52,12 +123,12 @@ list ,(code "(split blinds box wipe dissolve glitter)").])
 (section :title "Pause"
    
    (p [A ,(code "slide-pause") function call introduces a pause in the slide
-projection.])
+projection.  This may not be supported by all engines.])
    
    (doc-markup 'slide-pause
 	       '()
 	       :common-args '()
-	       :source "../skr/slide.skr"))
+	       :source "skribilo/package/slide.scm"))
 
 ;*---------------------------------------------------------------------*/
 ;*    slide-vspace ...                                                 */
@@ -70,7 +141,7 @@ projection.])
 	       '((:unit [The unit of the space.])
 		 (#!rest val [The size of the vertical space.]))
 	       :common-args '()
-	       :source "../skr/slide.skr"))
+	       :source "skribilo/package/slide.scm"))
 
 ;*---------------------------------------------------------------------*/
 ;*    slide-embed ...                                                  */
@@ -92,7 +163,7 @@ to the embedded application.])
 		 (:alt [An alternative Skribe expression to be used if the
 output format does not support embedded application.]))
 	       :common-args '()
-	       :source "../skr/slide.skr"))
+	       :source "skribilo/package/slide.scm"))
 
 ;*---------------------------------------------------------------------*/
 ;*    Example                                                          */
@@ -101,14 +172,29 @@ output format does not support embedded application.]))
    (p [Here is a complete example of Skribe slides:])
    
    (if (and (engine-format? "html") 
-	    (not (equal? (engine-custom html-engine 'html-variant) "html4")))
+	    (not (equal? (engine-custom (find-engine 'html) 'html-variant)
+	         "html4")))
        ;; Show the example and its result
        (example-produce
-         (example :legend "Example of Skribe slides"
+         (example :legend "Example of Skribilo slides"
 		  (prgm :file "src/slides.skb"))
-	 (disp (include "src/slides.skb")))
+	 (disp
+	  (processor :combinator
+		     (lambda (e1 e2)
+		       (let ((e (copy-engine 'document-engine e2)))
+			 (markup-writer 'document e
+					:options '(:title :author :ending)
+					:action dummy-slide-set-output)
+			 (markup-writer 'slide e
+					:options '(:title :ident
+						   :number :toc :vspace)
+					:action dummy-slide-output)
+			 (markup-writer 'slide-vspace
+					:action dummy-slide-vspace-output)
+			 (markup-writer 'slide-embed
+					:action dummy-slide-embed-output)
+			 e))
+		     (include "src/slides.skb"))))
        ;; Show only the example (i.e. don't produce a document in a document)
        (example :legend "Example of Skribe slides"
 	       (prgm :file "src/slides.skb")))))
-   
-