aboutsummaryrefslogtreecommitdiff
;*=====================================================================*/
;*    serrano/prgm/project/skribe/examples/slide/skb/slides.skb        */
;*    -------------------------------------------------------------    */
;*    Author      :  Manuel Serrano                                    */
;*    Creation    :  Wed Oct  8 16:04:59 2003                          */
;*    Last change :  Fri Oct 24 13:32:37 2003 (serrano)                */
;*    Copyright   :  2003 Manuel Serrano                               */
;*    -------------------------------------------------------------    */
;*    Skribe slide example                                             */
;*=====================================================================*/

;*---------------------------------------------------------------------*/
;*    Style                                                            */
;*---------------------------------------------------------------------*/
(case *mode*
   ((advi)
    (skribe-load "slide.skr" :advi #t))
   ((prosper)
    (skribe-load "slide.skr" :prosper #t))
   (else
    (skribe-load "slide.skr")))

(skribe-load "local.skr")

;*---------------------------------------------------------------------*/
;*    latex configuration ...                                          */
;*---------------------------------------------------------------------*/
(let ((le (find-engine 'latex)))
   (engine-custom-set! le 'transition 'slide)
   (engine-custom-set! le 'usepackage
		       (string-append (engine-custom le 'usepackage)
				      "\\usepackage{pstricks,pst-node,pst-text,pst-3d}\n")))

;*---------------------------------------------------------------------*/
;*    sk-expression ...                                                */
;*---------------------------------------------------------------------*/
(define (sk-expression)
   (it "sk-expression"))
(define (sk-expressions)
   (it "sk-expressions"))

;*---------------------------------------------------------------------*/
;*    The document                                                     */
;*---------------------------------------------------------------------*/
(document 
:title (red (sf (font :size +2. "This is Skribe!")))
:author (author :name (it (magenta "Manuel Serrano, Erick Gallesio"))
		:affiliation [Inria Sophia Antipolis, University of Nice]
		:address (list "" (tt (skribe-url))))

;*---------------------------------------------------------------------*/
;*    First slide                                                      */
;*---------------------------------------------------------------------*/
(include "ex/skribe.skb")

;* {*---------------------------------------------------------------------*} */
;* {*    Overview                                                         *} */
;* {*---------------------------------------------------------------------*} */
;* (slide :title "Skribe overview"                                     */
;*        (center (image :width 90. :file "fig/overview.fig")))        */

;* {*---------------------------------------------------------------------*} */
;* {*    Examples                                                         *} */
;* {*---------------------------------------------------------------------*} */
;* (if (or (skribe-mgp?) (and (skribe-tex?) *skribe-slide-advi*))      */
;*     (slide :title "Skribe examples"                                 */
;*                                                                     */
;* 	   (%embed :geometry *xterm.geo* *xterm*)                      */
;* 	   (%embed :geometry *xdvi.geo* *xdvi*)                        */
;*                                                                     */
;* 	   (st [1 Skribe document, 2 targets:])                        */
;*                                                                     */
;* 	   (%vspace 0.0)                                               */
;* 	   (itemize (item [A ,(sc [Nroff]) target:]))                  */
;* 	   (%vspace 3)                                                 */
;* 	   (itemize (item [A ,(sc [Dvi]) target:]))))                  */

;* {*---------------------------------------------------------------------*} */
;* {*    Skribe gallery                                                   *} */
;* {*---------------------------------------------------------------------*} */
;* {*--- math ------------------------------------------------------------*} */
;* (slide :title "Gallery (1/2)"                                       */
;*                                                                     */
;* (st [Math skills:])                                                 */
;* (itemize (item [A ,(LaTeX) math formula in:]))                      */
;* (p (font :size -3                                                   */
;* 	 (color :bg *display-bg*                                       */
;* 		(center                                                */
;* 		 (hook :after                                          */
;* 		       (lambda ()                                      */
;* 			  (if (skribe-tex?)                            */
;* 			      (display "\\(\\sum_{i=1}^{n} x_{i} = \\int_{0}^{1} f\\)") */
;* 			      (display "&#8721;<sub><font size='-2'>i=1</font></sub><sup><font size='-2'>i=1</font></sup> = &#8747;<sub><font size='-2'>0</font></sub><sup><font size='-2'>1</font></sup>f")))))))) */
;* (itemize (item [Denotational semantics:]))                          */
;* (p (font :size -3                                                   */
;* 	  (color :bg *display-bg*                                      */
;* 		 (prgm :language denotation :monospace (skribe-html?)  */
;* 		       (map (lambda (d)                                */
;* 			       (from-file "scm/eval.scm" :definition d)) */
;* 			    '("ev-lambda1" "ev-funcall1"))))))         */
;* (itemize (item [SOS rule:]))                                        */
;* (p (font :size -4                                                   */
;* 	 (color :bg *display-bg*                                       */
;* 		(labeled-component                                     */
;* 		 "Assignment"                                          */
;* 		 (rule                                                 */
;* 		  (evaluate "exp" "sched, env" "val" "sched', env'")   */
;* 		  (rewrite "var = exp, sched, env" (TERM) "nothing, sched', env'<var = val>"))))))) */
;* 	                                                               */
;* {*--- misc ------------------------------------------------------------*} */
;* (slide :title "Gallery (2/2)"                                       */
;*                                                                     */
;* (st [Misc:])                                                        */
;* (itemize (item [A computer program:]))                              */
;* (p (font :size -1 (prgm :bg *example-bg* :language c :lnum 1 (from-file "ex/C-code.c")))) */
;* (itemize (item [Images:                                             */
;* ,(p (image :width 75 :height 50 :file "img/img.jpg")                */
;*     (hook :after (lambda ()                                         */
;* 		    (cond                                              */
;* 		       ((skribe-tex?)                                  */
;* 			(display "\\ \\ \\ \\ "))                      */
;* 		       (else                                           */
;* 			(display "    ")))))                           */
;*     (image :width 25 :height 50 :file "img/img.jpg")                */
;*     (hook :after (lambda ()                                         */
;* 		    (cond                                              */
;* 		       ((skribe-tex?)                                  */
;* 			(display "\\ \\ \\ \\ "))                      */
;* 		       (else                                           */
;* 			(display "    ")))))                           */
;*     (image :width 150 :height 50 :file "img/img.jpg"))])))          */
;*                                                                     */
;*---------------------------------------------------------------------*/
;*    Syntax                                                           */
;*---------------------------------------------------------------------*/
(slide :title "Skribe Syntax" :vspace 0.3

(st [,(sk-expression):])

(slide-pause)
(itemize (item [An ,(emph "atom") (a ,(red (it "string")), a ,(red (it "number")), ...)] (slide-pause))
	 (item [A ,(emph "list") of ,(!latex "{\\rnode{NA}{$1}}" (sk-expressions))] (slide-pause))
	 (item [A ,(emph "text") (,(red (tt [ ,(char "[")... ,(blue [,(char ",")(,(it "<expr>"))]) ...,(char "]") ])))] (slide-pause)))

(slide-vspace 0.3)
(p [,(!latex "{\\rnode{NB}{$1}}" (st [Example:]))
    ,(slide-pause)
    ,(!latex "{\\nccurve[linecolor=red,angleA=90,angleB=270]{->}{NB}{NA}}")
    ,(skribe-prgm :fsize 0 (source :file "ex/syntax.scr"))])

(p [is equivalent to:
    ,(slide-pause)
    ,(skribe-prgm :fsize 0 [(list "text goodies: " (bold "bold") "and" (it "italic") ".")])]))

;* {*---------------------------------------------------------------------*} */
;* {*    Skribe documents                                                 *} */
;* {*---------------------------------------------------------------------*} */
;* (slide :title "Skribe Documents (1/2)" :vspace 0.5                  */
;*                                                                     */
;* (st [Skribe Document Structure:])                                   */
;* (p (skribe-prgm [,(from-file "ex/skel.scr")])))                     */
;*                                                                     */
;* {*--- markup ----------------------------------------------------------*} */
;* (slide :title "Skribe Documents (2/2)" :vspace 0.5                  */
;* (st [XML markup:])                                                  */
;* (p (prgm :language xml :bg *example-bg* [                           */
;* <elmt1 attr="val">                                                  */
;*    Some text                                                        */
;*    <elmt2>                                                          */
;*        for the example                                              */
;*    </elmt2>                                                         */
;* </elmt1>]))                                                         */
;* (%vspace 0.3)                                                       */
;* (st [Sc-markup:])                                                   */
;* (p (skribe-prgm [,(from-file "ex/xml.scr")])))                      */
;*                                                                     */
;* {*---------------------------------------------------------------------*} */
;* {*    Libraries                                                        *} */
;* {*---------------------------------------------------------------------*} */
;* (slide :title "Skribe Libraries"                                    */
;*                                                                     */
;* (st [A set of libraries containing the ,(q "usual") facilities. For instance:]) */
;*                                                                     */
;* (p (skribe-prgm [,(from-file "ex/itemize.scr")]))                   */
;* (%vspace 0.1)                                                       */
;* (st [Produces the following output text:])                          */
;* (center (color :bg *display-bg* (font :size -2 (include "ex/itemize.scr"))))) */
;*                                                                     */
;* {*---------------------------------------------------------------------*} */
;* {*    Dynamic texts                                                    *} */
;* {*---------------------------------------------------------------------*} */
;* (slide :title "Dynamic texts (1/3)" :vspace 0.2                     */
;*                                                                     */
;* (st [Let us assume the factorial table:])                           */
;* (%vspace 0.5)                                                       */
;*                                                                     */
;* (center (font :size -1 (color :bg *display-bg* (include "ex/fact.scr"))))) */
;*                                                                     */
;* {*--- dynamic texts: the usual solution -------------------------------*} */
;* (slide :title "Dynamic texts (2/3)"                                 */
;*                                                                     */
;* (st [The usual solution:])                                          */
;* (p (skribe-prgm :fsize -1 (from-file "ex/factb.scr"))))             */
;*                                                                     */
;* {*--- dynamic texts: a better solution --------------------------------*} */
;* (slide :title "Dynamic texts (3/3)"                                 */
;*                                                                     */
;* (st [A better solution:])                                           */
;* (p (skribe-prgm (from-file "ex/fact.scr"))))                        */
;*                                                                     */
;* {*---------------------------------------------------------------------*} */
;* {*    Introspection                                                    *} */
;* {*---------------------------------------------------------------------*} */
;* {*--- Introspection ---------------------------------------------------*} */
;* (slide :title "Introspection"                                       */
;*                                                                     */
;* (color :bg *image-bg*                                               */
;*  (center (image :width 1. :file "fig/skribe.fig"))))                */
;*                                                                     */
;* {*--- Number of slides ------------------------------------------------*} */
;* (slide :title "Introspection: an example (1/2)"                     */
;*                                                                     */
;* (p (color :bg *display-bg* (include "ex/slide.scr"))))              */
;*                                                                     */
;* {*--- Number of slides (2/2) ------------------------------------------*} */
;* (slide :title "Introspection: an example (2/2)" :vspace 0.5         */
;*                                                                     */
;* (st [The previous output is produced with:])                        */
;* (p (skribe-prgm (from-file "ex/slide.scr"))))                       */
;*                                                                     */
;* {*---------------------------------------------------------------------*} */
;* {*    Conditional evaluation                                           *} */
;* {*---------------------------------------------------------------------*} */
;* (slide :title "Conditional evaluation" :vspace 0.5                  */
;*                                                                     */
;* (st [Some features are dependent of the target format:])            */
;* (itemize (item [Only specific back-ends may support specific features]) */
;* 	 (item [It is in charge of the back-ends to implement          */
;*                 ,(emph "reasonable") behaviors for unsupported features.  */
;*                  Examples:                                          */
;*                  ,(itemize (item [Hyper links])                     */
;* 			   (item [Images])                             */
;* 			   (item [...]))])                             */
;* 	 (item [Skribe enables conditional evaluation:                 */
;*                  ,(itemize (item [according to the target format])  */
;* 			   (item [enabling target format commands]))]))) */
;*                                                                     */
;* {*---------------------------------------------------------------------*} */
;* {*    Extensibility                                                    *} */
;* {*---------------------------------------------------------------------*} */
;* (slide :title "Extensibility"                                       */
;*                                                                     */
;* (st [User level:])                                                  */
;* (itemize (item [New markups can be defined in a document])          */
;* 	 (item [A markup is a Skribe (Scheme) function])               */
;* 	 (item [Example: the ,(code "(%pause)") slide facility:]))     */
;*                                                                     */
;* (p (skribe-prgm [                                                   */
;* (define (%pause)                                                    */
;*    (cond                                                            */
;*       ((skribe-mgp?) (hook :after (lambda () (display "%pause"))))  */
;*       ((skribe-advi-tex?) (hook :after (lambda () (print "\\adviwait")))) */
;*       (else (linebreak))))]))                                       */
;* (%pause)                                                            */
;*                                                                     */
;* (st [System level:])                                                */
;* (itemize (item [New back-ends can be dynamically added])            */
;* 	 (item [The ,(sc-ast) can be extended])))                      */
;*                                                                     */
;* {*---------------------------------------------------------------------*} */
;* {*    Conclusion                                                       *} */
;* {*---------------------------------------------------------------------*} */
;* (slide :title "Conclusion" :vspace 0.5                              */
;*                                                                     */
;* (st [Status:])                                                      */
;* (itemize (item [Available on-line: ,(ref :url (skribe-url))])       */
;* 	 (item [Available since a couple of months])                   */
;* 	 (item [Used, by the authors, on a daily basis])               */
;* 	 (item [,(magenta (bold [Still too young])) ,(symbol '=>)      */
;*           ,(itemize (item [Very few styles have been implemented])  */
;* 		    (item [It is still necessary to be aware of the    */
;*                            targets idiosyncrasies])                 */
;* 		    (item [Difficult to tame the fix-point             */
;*                            iteration of the computation model]))])))) */
         
)