10. Skribilo User Manual — Slide Package

This chapter describes the facilities Skribilo offers authoring slides. As usual, in order to access the functionalities described in this chapter, the `(use-modules (skribilo package slide))` expression must be introduced at the beginning of the document.

### 10.1 Slides and Slide Topics

A `slide` function call creates a slide.

prototype
`(slide :title [:image] [:bg] [:transition] [:vfill] [:vspace] [:number #t] [:toc #t] [:class] [:ident])`
optionenginesdescription
:identhtml lout latex context info xml The node identifier.
:classhtml lout latex context info xml The node class.
:titlehtml lout latex The title of the slide.
:numberhtml lout latex The number of the slide (a boolean or an integer).
:tochtml lout latex This argument controls if the slide must be referenced in the table of contents and the outline slide that introduces a `slide-topic` (see below).
:vspacelatex The boolean `#f` or an integer representing the vertical space size between the title and the body of the slide.
:vfilllatex A boolean that is used to control whether a LaTeX `\vfill` is issued at the end of the slide.
:transitionhtml latex The boolean `#f` or a symbol in the list `(split blinds box wipe dissolve glitter)`.
:bghtml The background color of the slide.
:imagelatex The background image of the slide.

Optionally, one may group slides into topics and 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 :outline? option, these two markups can be used to automatically produce an outline at the beginning of each new (sub)topic, which reminds the audience of the current position within the talk.

prototype
`(slide-topic :title [:class] [:ident] [:toc #t] [:unfold? #t] [:outline? #t])`
`(slide-subtopic :title [:class] [:ident] [:toc #t] [:unfold?] [:outline?])`
optionenginesdescription
:identhtml lout latex context info xml The node identifier.
:classhtml lout latex context info xml The node class.
:titlehtml lout latex context info xml The title of a topic.
:outline?html lout latex context info xml A boolean (i.e., `#t` or `#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. Note that `slide`s whose :toc option is `#f` will not be shown in the outline.
:unfold?lout latex context info xml If `#t`, then the outline will also show the contents of the current topic.
:tocThis argument controls if the slide must be referenced in the table of contents and the outline slide that introduces a `slide-topic` (see below).

This package understands the following additional customs (see Section Engine Customs):

slide-outline-title
The title of outline slides. By default, no title is produced.
slide-outline-active-color
The color in which the current slide topic is displayed in outline slides.
slide-outline-inactive-color
The color in which inactive slide topics are displayed in outline slides.

### 10.2 Pause

A `slide-pause` function call introduces a pause in the slide projection. This may not be supported by all engines.

prototype
`(slide-pause)`

### 10.3 Slide Vertical Space

The `slide-vspace` introduces a vertical space in the slide.

prototype
`(slide-vspace [:unit 'cm] val)`
optionenginesdescription
:unitlout latex The unit of the space.
argumentdescription
`val`The size of the vertical space.

### 10.4 Slide Embed Applications

Embed an application inside a slide.

prototype
`(slide-embed :command [:alt] [:transient-opt] [:transient] [:rgeometry] [:geometry] [:geometry-opt "-geometry"] [:arguments '()])`
optionenginesdescription
:commandlout latex The binary file for running the embedded application.
:argumentslout Additional arguments to be passed to the application (a list of strings).
:geometry-opthtml lout latex context info xml The name of the geometry option to be sent to the embedded application.
:geometrylout latex The geometry value to be sent.
:rgeometrylatex A relative geometry to be sent.
:transient-optlatex The name of the transient option to be sent to the embedded application.
:transientlatex The transient value to be sent.
:althtml lout latex context info xml An alternative Skribilo expression to be used if the output format does not support embedded application.

### 10.5 Example

Here is a complete example of Skribilo slides:

 ```(use-modules (skribilo package slide)) (document :title (color :fg "red" (sf "Skribilo Slides")) :author (author :name (it [Bob Smith]) :affiliation [The Organization] :address (ref :url "http://example.org/")) (slide :title "Table of Contents" :number #f ;; "Manually" produce a list of the slides. This works by traversing ;; the whole document tree, looking for `slide' nodes. (p (resolve (lambda (n e env) (let ((slides (search-down (lambda (n) (is-markup? n 'slide)) (ast-document n)))) (itemize (map (lambda (n) (item (ref :handle (handle n) :text (markup-option n :text)))) slides))))))) (slide :title "Introduction" :vspace 0.3 (p [This is a simple slide, not grouped in any topic.])) (slide-topic :title "Interactive Features" :outline? #t (slide :title "X11 Clients" :toc #t :vspace 0.3 (itemize (item "xlock") (item "xeyes") (item "xterm"))) (slide :title "Xclock" :toc #t :vspace 0.3 (center (sf (underline "The Unix xclock client"))) (slide-vspace 0.3) (slide-pause) (slide-embed :command "xlock" :alt (frame "Can't run embedded application"))))) ```
Ex. 41: Example of Skribilo slides

... produces:

Skribilo Slides

Introduction

This is a simple slide, not grouped in any topic.

## Interactive Features

X11 Clients
• xlock
• xeyes
• xterm
Xclock
The Unix xclock client

 Can't run embedded application