;*=====================================================================*/ ;* 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") ;*---------------------------------------------------------------------*/ ;* 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" (p [ This chapter describes the facilities Skribe offers authoring slides. In order to access the functionalities described in this chapter, it is require to introduce a ,(code [(skribe-load "slides.skr")]) expression at the beginning of the document. The Slide package supports two ,(markup-ref "skribe-load") user options: ,(param :advi) and ,(param :prosper). The first one tells Skribe to generate slides for the Advi presenter. The second one tells Skribe to generate slides for the LaTeX prosper package.]) ;*---------------------------------------------------------------------*/ ;* slide ... @label slide@ */ ;*---------------------------------------------------------------------*/ (section :title "Slide" (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 the vertical space size between the title and the body of the slide.]) (: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 list ,(code "(split blinds box wipe dissolve glitter)").]) (:bg [The background color of the slide.]) (:image [The background image of the slide.])) :source "skribilo/package/slide.scm")) ;*---------------------------------------------------------------------*/ ;* slide-pause */ ;*---------------------------------------------------------------------*/ (section :title "Pause" (p [A ,(code "slide-pause") function call introduces a pause in the slide projection.]) (doc-markup 'slide-pause '() :common-args '() :source "skribilo/package/slide.scm")) ;*---------------------------------------------------------------------*/ ;* slide-vspace ... */ ;*---------------------------------------------------------------------*/ (section :title "Slide Vertical Space" (p [The ,(code "slide-vspace") introduces a vertical space in the slide.]) (doc-markup 'slide-vspace '((:unit [The unit of the space.]) (#!rest val [The size of the vertical space.])) :common-args '() :source "skribilo/package/slide.scm")) ;*---------------------------------------------------------------------*/ ;* slide-embed ... */ ;*---------------------------------------------------------------------*/ (section :title "Slide Embed Applications" (p [Embed an application inside a slide.]) (doc-markup 'slide-embed `((:command [The binary file for running the embedded application.]) (:geometry-opt [The name of the geometry option to be sent to the embedded application.]) (:geometry [The geometry value to be sent.]) (:rgeometry [A relative geometry to be sent.]) (:transient-opt [The name of the transient option to be sent to the embedded application.]) (:transient [The transient value to be sent.]) (:alt [An alternative Skribe expression to be used if the output format does not support embedded application.])) :common-args '() :source "skribilo/package/slide.scm")) ;*---------------------------------------------------------------------*/ ;* Example */ ;*---------------------------------------------------------------------*/ (section :title "Example" (p [Here is a complete example of Skribe slides:]) (if (and (engine-format? "html") (not (equal? (engine-custom (find-engine 'html) 'html-variant) "html4"))) ;; Show the example and its result (example-produce (example :legend "Example of Skribilo slides" (prgm :file "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")))))