Copyright © 2001 - 2007 Michael Wiedmann
| Revision History | |
|---|---|
| Revision 0.1.20 | 2007-12-27 |
| Added chapter Slide Show Help. | |
| Revision 0.1.0 | 2004-03-22 |
| Source format switched to DocBook XML (V4.3). Using DocBook XSL Stylesheets (V1.73.2), and DB2LaTeX XSL Stylesheets (V0.8pre1+20040315) for generating the various output formats. | |
| Revision 0.0.1 | 2001-03-10 |
| Initial release. | |
Table of Contents
List of Figures
List of Examples
Preparing a presentation usually means creating some sort of slides. The more LCD projectors get common in working environments, the more comes to mind creating such presentation material as a screen version, which can be viewed using a LCD projector or at least a computer screen. As a side effect such presentations can usually easily be presented on a website.
This document tries to show some possible solutions for creating screen based presentations. Most of the listed solutions are LaTeX-based because I personally prefer LaTeX - and derived tools - over other documentation systems. So called Office Solutions are not listed.
This list for sure is far from being complete. If you know of any other solution please let me know so that I can include it in this document. Contributions are very welcome.
The presented solutions are divided in three groups: PDF Based Solutions, HTML Based Solutions, and Other Solutions. In case a specific solution would fit in more than one group, I tried to choose the most appropriate one. An additional chapter Todo lists all the tools which I haven't had time yet to look at. The chapter Hints and Tricks will list interesting hints and tricks for creating presentations.
Table of Contents
This chapter lists tools which generate PDF as their main output format. Some of them might be able to generate other output formats too (like PS).
“AxPoint is a presentation making tool from the makers of Apache AxKit. It allows you to build beautiful presentations using a simple XML description format. ”
Example 1.1. AxPoint Example
<?xml version="1.0"?>
<slideshow>
<title>AxKit</title>
<metadata>
<speaker>Matt Sergeant</speaker>
<email>matt@axkit.com</email>
<organisation>AxKit.com Ltd</organisation>
<link>http://axkit.com/</link>
<logo scale="0.4">ax_logo.png</logo>
<background>redbg.png</background>
</metadata>
<slide transition="dissolve">
<title href="http://www.xml.com/">Introduction</title>
<point level="1" href="http://xmlperl.com">Perl's XML Capabilities</point>
<point level="1">A long bullet point line for testing the line
wrapping capabilities which should make this look OK</point>
<point level="1">AxKit static sites</point>
<point level="1">AxKit dynamic sites (XSP)</point>
<point level="1">Advanced <colour name="red">AxKit</colour></point>
<source_code>
<color name="blue">Foo!</color>
</source_code>
</slide>
<slide default-transition="replace">
<title>Table Example</title>
<table>
<row>
<col width="40%">
<source-code>
Some code;
in the
++ first; # column
that {
maybe we
want to comment();
on...
}
</source-code>
<point>and a point here...</point>
<source-code>followed by more code</source-code>
<point>and another point</point>
</col>
<col width="60%">
<point>Notice how we did this...</point>
<point>And how we can add stuff over here!</point>
<source-code>include <ing.h> //code</source-code>
</col>
</row>
</table>
<!-- Now some SVG! -->
<rect x="100" y="100" width="50" height="100" style="stroke: black"/>
<circle cx="50" cy="50" r="240"/>
<ellipse cx="100" cy="50" rx="30" ry="60" style="fill: aqua;
stroke: red; stroke-width: 5"/>
<text x="200" y="200" style="stroke: black; fill: none;
font: italic 24pt serif">A Cat</text>
</slide>
<slideset>
<title>XML with Perl Introduction</title>
<slide>
<title>A very long <i>title that</i> should show how word
<i>wrapping in the title</i> tag hopefully works
properly today</title>
<point level="1">SAX-like API</point>
<point level="1">register callback handler methods</point>
<point level="2">start tag</point>
<point level="2">end tag</point>
<point level="2">characters</point>
<point level="2">comments</point>
<point level="2">processing instructions</point>
<source_code>
<?pi here?>
</source_code>
<point level="2">... and more</point>
<point level="1">Non validating XML parser</point>
<point level="1">dies (throws an exception) on bad XML</point>
</slide>
<slide>
<title>XML::Parser code</title>
<source_code>
my $p = XML::Parser->new(
<i> Handlers => {
Start => \&start_tag,
End => \&end_tag,
# add more handlers here
});
</i>
$p->parsefile("foo.xml");
<color name="green">exit(0);</color>
sub start_tag {
my ($expat, $tag, %attribs) = @_;
print "Start tag: $tag\n";
}
sub end_tag {
my ($expat, $tag) = @_;
print "End tag: $tag\n";
}
</source_code>
</slide>
<slide>
<title>XML::XPath Implementation</title>
<point level="1">XML::Parser and SAX parsers build an
in-memory tree</point>
<point level="1">Hand-built parser for XPath syntax
(rather than YACC based parser)</point>
<point level="1">Garbage Collection yet still has
circular references (and works on Perl 5.005)</point>
<image>pointers.png</image>
</slide>
</slideset>
<slide>
<title>Conclusions</title>
<point level="1" transition="dissolve">Perl and XML are a
powerful combination</point>
<point level="1" transition="replace">XPath and XSLT add
to the mix...</point>
<point level="1" transition="glitter">AxKit can reduce your
long term costs</point>
<point level="2" transition="dissolve">In site re-design</point>
<point level="2" transition="box">and in content re-purposing</point>
<point level="1" transition="wipe">Open Source equal to
commercial alternatives</point>
<image transition="dissolve">world_map-960.png</image>
</slide>
<slide>
<title>Resources and contact</title>
<point level="1">AxKit: http://axkit.org/</point>
<point level="1">CPAN: http://search.cpan.org</point>
<point level="1">libxml and libxslt: http://www.xmlsoft.org</point>
<point level="1">Sablotron: http://www.gingerall.com</point>
<point level="1">XPath and XSLT Tutorials: http://zvon.org</point>
</slide>
</slideshow>
See Figure 1.1,
“AxPoint example”.
“beamer -- A LaTeX class to produce beamer presentations ”
Example 1.2. beamer example
\documentclass{beamer}
\usepackage{beamerthemesplit}
\title{Example Presentation Created with the Beamer Package}
\author{Till Tantau}
\date{\today}
\begin{document}
\frame{\titlepage}
\section[Outline]{}
\frame{\tableofcontents}
\section{Introduction}
\subsection{Overview of the Beamer Class}
\frame
{
\frametitle{Features of the Beamer Class}
\begin{itemize}
\item<1-> Normal LaTeX class.
\item<2-> Easy overlays.
\item<3-> No external programs needed.
\end{itemize}
}
\end{document}
See
Figure 1.2, “beamer example: title page in Acrobat
Reader”.
foiltex is a LaTeX document class which lets you create foils using most of the available LaTeX commands and environments.
Different options let you specify head and/or foot rules, title
pages, etc. The macro \MyLogo
together with the graphics
or graphicx package let's
you put some graphic as the logo on every page (placed at the left
part of the footline).
Processing a foiltex sourcefile using LaTeX creates DVI output in the usual way, using pdfTeX (pdfLaTeX) allows you to create high quality PDF output. With latex2html and the FoilHTML package (look for it at your nearest CTAN mirror) you can create HTML output from your foiltex source files.
Example 1.3. foiltex Example
\documentclass[a4paper,landscape,headrule]{foils}
\usepackage[latin1]{inputenc}
\usepackage{graphicx}
\title{Some Title}
\author{Some User \texttt{<some.user@some.net>}}
\date{Apr 01, 2001}
\MyLogo{}
\rightfooter{}
\leftheader{Project Presentation}
\rightheader{Project Title\quad\textsf{\tiny[\thepage]}}
\begin{document}
\maketitle
\begin{abstract}
foo foo foo foo foo foo foo foo foo foo foo foo foo
foo foo foo foo foo foo foo foo foo foo foo foo foo
\end{abstract}
\foilhead{Introduction}
\begin{itemize}
\item Topic 1
\item Topic 2
\item ...
\end{itemize}
\foilhead{Overview}
\begin{center}
\includegraphics{overview.eps}
\end{center}
\end{document}
See
Figure 1.3, “foiltex example: title page in Acrobat
Reader”.
“HA-prosper is based on the prosper class but adds a lot new possibilities and implements some bug fixes for prosper. The main features of HA-prosper are the automatically generated table of contents, portrait slides support and the possibility to include notes in your presentation. But there are a lot more features which are described in full detail in the manual. ”
Example 1.4. HA-prosper Example
\documentclass[pdf,distiller]{prosper}
\usepackage[toc,highlight,HA]{HA-prosper}
\title{Introduction to the HA-prosper package}
\subtitle{A package for use with prosper}
\author{Hendri Adriaens\\
\institution{CentER}\\
\institution{\href{http://center.uvt.nl/phd_stud/adriaens}
{http://center.uvt.nl/phd\string_stud/adriaens}}}
\DefaultTransition{Wipe}
\TitleSlideNav{FullScreen}
\NormalSlideNav{ShowBookmarks}
\LeftFoot{\href{http://center.uvt.nl/phd_stud/adriaens}{Hendri Adriaens}, \today}
\RightFoot{Introduction to the HA-prosper package}
\begin{document}
\maketitle
\tsectionandpart{Introduction}
\overlays{2}{
\begin{slide}{Welcome}
\begin{itemstep}
\item Welcome to the introduction of the HA-prosper package.
\item The main features of HA-prosper are:
\begin{itemize}
\item table of contents;
\item portrait slides support;
\item notes;
\item prosper bug solutions.
\end{itemize}
\end{itemstep}
\end{slide}
}
\end{document}
See Figure 1.4,
“HA-prosper example: titlepage slide”, Figure 1.5,
“HA-prosper example: introduction slide”, and
Figure 1.6,
“HA-prosper example: welcome slide”.
http://stuwww.uvt.nl/~hendri/downloads/haprosper.html
HA-prosper is available on CTAN (http://www.ctan.org/tex-archive/help/Catalogue/entries/ha-prosper.html) and in MiKTeX (http://www.miktex.org).
“ifmslide provides both: getting a presentation
with pdfLaTeX and printouts with LaTeX and - as a side effect -
simple production of your slides using your favourite DVI-viewer.
You don't need PPower4 to get all
these nice effects with page-transitions and stepwise building of
the pages. All you need is TeXPower
and hyperref.sty for the links and
buttons etc. ifmslide makes use of
the special features of the classes seminar and powersem (part of TeXPower). ”
Example 1.5. ifmslide Example
\documentclass[a4paper,KOMA,landscape]{powersem}
\usepackage[button]{ifmslide}
\begin{document}
\sffamily
\orgname{}
\title{\begin{minipage}[t]{0.98\textwidth}\begin{center}
{\mdseries ifmslide Example}\\[1ex]
Enhanced presentations with (PDF)\LaTeX{}\\
combining the TeXPower, hyperref and seminar-packages\\
\end{center}\end{minipage}}
\author{\scalebox{1}[1.3]{Michael Wiedmann}}
\address{\href{mailto:mw@miwie.in-berlin.de}%
{mw@miwie.in-berlin.de}}
\begin{slide}
\maketitle
\end{slide}
\end{document}
See
Figure 1.7, “ifmslide example: title page in Acrobat
Reader”.
The content of this section is heavily based on the contribution of Jan Hlavacek.
IPE is a vector graphics editor integrated with pdflatex, with strong support for creating multi-page incerementally built pdf presentations. It uses pdflatex to typeset text elements and math formulas on the page. It is especially useful if your presentation has a lot of graphics or if you desire a complete control over the location of your text elements on the page.
Example 1.6. IPE xml file
<ipe version="60020" creator="Ipe 6.0 preview 20" media="0 0 800 600"> <info created="D:20041029041427" modified="D:20041029042906" title="Sample IPE Presentation" author="Egon Ipse" subject="IPE presentation" keywords="IPE, pdflatex, screen presentation" pagemode="fullscreen"/> <ipestyle name="presentation"> <linewidth name="normal" value="1.2"/> <linewidth name="heavier" value="2.4"/> <linewidth name="fat" value="3.6"/> <linewidth name="ultrafat" value="6"/> ... <text stroke="black" pos="232 264" type="label" width="17.85" height="20.778" depth="5.79" valign="bottom" transformable="yes" size="normal">$f$</text> <text stroke="black" pos="416 212" type="minipage" width="352" height="20.778" depth="5.79" valign="top" transformable="yes" size="normal">This line will get an arrow</text> <mark layer="delta" stroke="black" pos="96 320" shape="2" size="large"/> </page> </ipe>
KeyJnote is a simple presentation program that displays slideshows of image files (JPEG, PNG, TIFF and BMP) or PDF documents. Rendering is done via OpenGL, which allows for some ceye candy effects.
“pdfscreen package helps to redesign the pdf output of your normal documents fit to be read in a computer monitor while retaining the freedom to format it for conventional printing. This has been brought about by redefining the margins and page height/width and related dimensions to fit into that of the computer screen. By changing the options to print you can switch the package to format the document in the conventional way as your class file dictates. ”
Users familiar with LaTeX will not have any difficulties in using this package.
Example 1.7. pdfscreen Example
\documentclass[a4paper,11pt]{article}
\usepackage{xspace,colortbl}
\usepackage[screen,panelleft,gray,paneltoc]{pdfscreen}
\margins{.75in}{.75in}{.75in}{.75in}
\screensize{6.25in}{8in}
\begin{document}
\begin{screen}
\title{\color{section0}\Huge Some Title}
\end{screen}
\begin{print}
\title{\HugeSome Title}
\end{print}
\author{\color{section1}\Large Michael Wiedmann\\
{\small\href{mailto:mw@miwie.in-berlin.de}
{\color{section1}\texttt{mw@miwie.in-berlin.de}}}}
\maketitle
\begin{screen}
\vfill
\end{screen}
\begin{abstract}
\noindent
foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo
foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo
foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo
\end{abstract}
\begin{print}
\tableofcontents
\end{print}
\begin{screen}
\vfill
\end{screen}
\begin{slide}
\begin{itemize}
\item item 1
\item item 2
\item item 3
\end{itemize}
\end{slide}
\begin{slide}
\begin{itemize}
\item item 1
\item item 2
\item item 3
\end{itemize}
\end{slide}
\end{document}
See
Figure 1.9, “pdfscreen example: title page in Acrobat
Reader”.
Copyright (c) 1999, 2000 C. V. Radhakrishnan
“ This package may be distributed under the terms of the LaTeX Project Public License, as described in lppl.txt in the base LaTeX distribution. Either version 1.0 or, at your option, any later version. ”
There is also a version which can be used with LyX. See http://www.math.tau.ac.il/~dekelts/lyx/pdfscreen.tar.gz
(based on an outdated version of pdfscreen.sty).
PPower4 is a post processor for LaTeX files to build pages step by step.
PPower4 provides a small
LaTeX package (pause.sty) which let's
the user insert small coloured spots (using the command
\pause) in the PDF file where a break
should be make during display. During postprocessing PPower4 removes these coloured chunks
and adjusts the page number. This leads to the impression that the
same page is displayed step by step.
Additional packages are provided for setting background colours
(background.sty) and page transitions
(pagetrans.tex) - this actually is a
feature of hyperref.sty and can be
used with any LaTeX based solution.
“Prosper is a LaTeX class for writing transparencies. It is written on top of the seminar class by Timothy Van Zandt. It aims at offering an environment for easily creating slides for both presentations with an overhead projector and a video projector. Slides prepared for a presentation with a computer and a video projector may integrate animation effects, incremental display, and such. ”
Example 1.9. prosper Example
\documentclass[slideColor,colorBG,pdf,azure]{prosper}
\usepackage{textcomp}
\title{The \texttt{Prosper} Class}
\subtitle{Producing Slides with \LaTeX}
\author{John Doe}
\email{jd@eval.com}
\institution{The Evaluation Company}
\slideCaption{Slides with \texttt{Prosper}/\LaTeX}
\begin{document}
\maketitle
\overlays{3}{
\begin{slide}{Introduction}
The \texttt{Prosper} class translates into two different formats:
\begin{itemize}
\item Adobe\textregistered\ \it{Postscript}\texttrademark
\item Adobe\textregistered\ \it{Portable Document Format}
\texttrademark\ (PDF)
\end{itemize}
The compilation process:\\
\fromSlide*{1}{\fbox{\LaTeX}}%
\fromSlide*{2}{$\rightarrow$ \fbox{DVI}}%
\fromSlide*{3}{$\rightarrow$ \fbox{PostScript} or \fbox{PDF}}%
\end{slide}
}
\end{document}
See Figure 1.10,
“prosper example: page in Acrobat Reader”.
graphicx.sty, seminar.sty, hyperref.sty
Slide styles need PSTricks and AMSLaTeX (amssymb)
Recent version of Ghostscript (version >= 6.0) to produce PDF
HA-Prosper The HA-prosper package for LaTeX provides a way to make nice looking slides using LaTeX. This gives you the opportunity to copy and paste formulas from your papers directly into the presentation. The package has been based on the prosper class but offers a lot of new possibilities and some bug fixes.
Prosper-make allows you to easily generate your Prosper presentation in the most common formats.
ppr-prv stands for
"Prosper Preview". The aim of this class is to produce a printable
version of the slides written with Prosper, with two slides per
page.
DTU-style for prosper compatible with the DTU (Department of Mechanical Engineering, Technical university of Denmark) Powerpoint style.
Wiki Prosper is a WikiWikiWeb dedicated to the use of the LaTeX Prosper style.
“RaySlides macros provide LaTeX2e commands for making overhead slides (transparencies) within the article style. The underlying philosophy for these commands recognizes both the resources of the article style for slide preparation as well as the practical inconvenience of accesing these resources for overhead slides. Consequently, RaySlides simply supplements the article style with macros specialized for designing and formatting slides. This approach retains the commands and familiarity of the article style while providing an interface for slides. ”
Example 1.10. RaySlides Example
\documentclass{article}
\usepackage{rayslides}
\ezmakehead{0.6in}
{}
{}
{\LARGE\emph{\rayslides\ Macros: \\ Summary}}
\ezmakefoot{1cm}
{\smallskip
\textrm{\copyright}\ R.A. McKendall 1994,1998\\ University of Pennsylvania}
{\textbf{\thepage}/\pageref{lastpage}}
{\jobname.tex\\ rayslides.sty}
\writelpfile
\slideframe
\newcommand {\cs} [1] {\textmd{\texttt{\string#1}}}
\renewcommand{\arg} [1] {\textmd{\texttt{\{#1\}}}} % required argument
\begin {document}
%--- Slide 1 ---
\titlepageslide
{\rayslides \\ \LaTeXe{} Macros for Overhead Slides \\
\texttt{rayslides.sty (2.0)}}
{Raymond A McKendall}
{Computer and Information Science \\ University of Pennsylvania \\
Philadelphia, PA}
{Summary Manual \\ June 1998}
%--- Slide 2 ---
\newslide{Overview}
\begin{point}{Purpose}
Use \rayslides\ package to make overhead slides
(transparencies) within \LaTeXe's article class:
\subdetail{\cs{\documentclass}\arg{article}}
\subdetail{\cs{\usepackage}\arg{rayslides}}
Read this manual\footnote{%
\texttt{/pkg/doc/tex/RaySlidesSummary.tex}}
for a summary of the main macros.
Read the \LaTeX\ source for examples.
Read the user's guide\footnote{%
\texttt{/pkg/doc/tex/RaySlidesGuide.ps}}
for a complete description of the macros.
\end{point}
%--- Slide 3 ---
\newslide{Page Layout}
\begin{point}{Horizontal layout}
Left margin. Body. Right margin.
\end{point}
\begin{pointNlist}{Vertical layout}
\item Top margin -- empty space along top of page
\item Head -- runner along top of page
\item Top separation -- space between head and body
\item Body -- main contents of slide
\item Bottom separation -- space between body and foot
\item Foot -- runner along bottom of page
\item Bottom margin -- empty space along bottom of page
\end{pointNlist}
\end{document}
See Figure 1.11,
“rayslides example: title page” and Figure 1.12,
“rayslides example: second page”.
PythonPoint is a demo application of the ReportLab toolkit, a Python library for creating PDF documents. It uses an XML source format which gets converted directly to PDF output.
An experimental DTD (Document Type Definition) is available from the author of this document. It can be used to validate your source file using an XML parser.
Example 1.11. PythonPoint Example
\documentclass[a4paper,landscape,headrule]{foils}
<?xml version="1.0" encoding="iso-8859-1" standalone="no" ?>
<!DOCTYPE presentation SYSTEM "pythonpoint.dtd">
<presentation filename='reportlab.pdf'>
<title>PythonPoint Example</title>
<author>Michael Wiedmann</author>
<subject>Reportlab Pythonpoint Example</subject>
<section name = 'Main'>
<rectangle x="20" y="20" width="96" height="555" fill="(0,0,0.8)"/>
<fixedimage x="20" y="510" width="96" height="64"
filename="leftlogo.gif"/>
<infostring align="right" x="800" y= "36" size="14" >
»%(title)s, page %(page)s«
</infostring>
<slide id="Slide001" title="Introduction" effectname='Wipe'>
<frame x="120" y="72" width="700" height="468"
leftmargin="36" rightmargin="36">
<para style='Heading1'>Welcome to PythonPoint</para>
<para style='BodyText'>...a library for creating presentation
slides.
</para>
<para style='BodyText'>
<i>PythonPoint</i> lets you create attractive and consistent
presentation slides on any platform. It is a demo app built
on top of the PDFgen PDF library and the PLATYPUS Page Layout
library. Essentially, it converts slides in an XML format to PDF.
</para>
<para style='BodyText'>It can be used right now to create
slide shows, but will undoubtedly change and evolve. Read on
for a tutorial...
</para>
</frame>
</slide>
</section>
</presentation>
See
Figure 1.13, “PythonPoint example: page in Acrobat
Reader”.
The experimental DTD can be found at: http://www.miwie.org/pythonpoint/
PDF Seminar is a simple style file designed for seminar presentations. It provides pop-up menus for page selections and for basic navigation (such as next page, previous page etc.). All of the menus are built on PDF forms and thus the package is suitable for use only with PDF viewers than can handle PDF forms (such as Adobe Acrobat Reader).
COPYRIGHT 1993, by Timothy Van Zandt, tvz@Princeton.EDU
Copying of part or all of any file in the seminar.sty
package is allowed under the following conditions only:
(1) You may freely distribute unchanged copies of the
files. Please include the documentation when you do so.
(2) You may modify a renamed copy of any file, but only
for personal use or use within an organization.
(3) You may copy fragments from the files, for personal
use or for use in a macro package for distribution,
as long as credit is given where credit is due.
“This is a short introduction to the slidenotes packes. This LaTeX class generates either slides, slides and notes, or collection of notes. Slides may be in landscape or portrait layout, or both. Various frame types are supported... ”
Example 1.12. slidenotes Example
\documentclass[notes,portrait,rules]{slidenotes}
\title{Introduction to the \textsf{slidenotes} class}
\author{John Doe}
\date{26.7.2001}
\begin{document}
\maketitle
\begin{slide}[Introduction]
The \textsf{slidenotes} class provides the following main features:
\begin{itemize}
\item choosing between slides, slides+notes, collection of slides
\item landscape or portrait layout (also mixed)
\item various slide frames
\end{itemize}
\slidesubtitle{Other features}
\begin{itemize}
\item notes in smaller font than slides (optional)
\item vertical centering of slides
\end{itemize}
\end{slide}
\begin{note}
\cue{Main Feature}
This is a short introduction to the \textsf{slidenotes} packes.
This \LaTeX class generates either slides, slides and notes,
or collection of notes. Slides may be in landscape or portrait
layout, or both. Various frame types are supported\ldots
\cue{Other Features}
Notes may be typeset in a smaller font than the slides' font.
Various option exist for the vertical side position\ldots
\end{note}
\end{document}
See Figure 1.14, “slidenotes example: sample page” and Figure 1.15, “slidenotes example: sample page with notes”.
“slideshow is a small macro package which simplifies the process of creating slide-show style presentations using plain metapost and ghostscript. The package assists in producing slides with dimensions 6.4 inches wide by 4.8 inches high, which the user is then expected to convert into a pdf file using ghostscript as a PS distiller. ”
Example 1.13. slideshow Example
input pathalong;
input slideshow;
author("Patrick TJ McPhee");
title("Introducing slide-show macros");
keywords("presentations metapost");
copyright("Copyright 2001 Patrick TJ McPhee. You may redistribute and
modify for any purpose, but must acknowledge significant quotation.");
continue;
nextfig;
defaultscale := 2;
draw textunder((0,.5in){up}..{right}(2in,1in), "Introducing")
shifted (1in,3in) withcolor textcolour;
endfig;
nextfig;
blabel.rt("Slide Show Macros", (2in,2in));
endfig;
defaultscale := 1;
nextfig;
draw pathalong((0,.5in){up}..{right}(2in,1in), "by Patrick TJ McPhee")
shifted (1in,3in) withcolor textcolour;
hyperdest("Start");
endfig;
discontinue;
header("Rationale");
bpoint("Primarily an intellectual exercise");
bpoint("But may be useful for graphics-intensive presentations
which don't use much text");
bpoint("Slideshow provides support for this irritating style
of bullet presentation");
bpoint("And writes out some pdfmarks, which you would otherwise
have to look up yourself");
...
picture lt, mp, dvi, gs, postp, vres, pres, fpres;
lt := procbox("laTeX") shifted (.05 lawidth, .2laheight);
mp := procbox("metapost") shifted (.05 lawidth, .1laheight);
dvi := procbox("DVI processor") shifted (.2 lawidth, .15laheight);
vres := resultbox("viewable result") shifted (.4 lawidth, .15 laheight);
gs := procbox("distiller") shifted (.65 lawidth, .15laheight);
pres := resultbox("presentation") shifted (.8 lawidth, .15laheight);
postp := procbox("post-processor") shifted (.7 lawidth, .3laheight);
fpres := resultbox("final presentation") shifted (.45 lawidth, .3laheight);
nextfig;
bullet.in("text prepared with laTeX");
draw lt withcolor white;
endfig;
nextfig;
bullet.in("graphics prepared with metapost (okay, 2 components)");
draw mp withcolor red;
endfig;
nextfig;
bullet.in("which are combined with dvi processing software");
pickup thin nib;
drawarrow (.5[lrcorner mp,urcorner mp]){right}..{right}
(.5[llcorner dvi,ulcorner dvi]) withcolor .25[red,white];
drawarrow (.5[lrcorner lt,urcorner lt]){right}..{right}
(.5[llcorner dvi,ulcorner dvi]) withcolor .25[white,red];
draw dvi withcolor .5[white,red];
endfig;
nextfig;
bullet.in("the resulting postscript is viewable, but must
be distilled into the presentation");
pickup thin nib;
drawarrow (.5[lrcorner dvi,urcorner dvi])..(.5[llcorner vres,ulcorner vres])
withcolor .1[.5[red,white],green];
draw vres withcolor .5[.5[white,red],green];
endfig;
...
nextfig;
pickup thin nib;
drawarrow (.5[llcorner postp,ulcorner postp])..(.5[lrcorner fpres,urcorner fpres])
withcolor .95[green,white];
draw fpres withcolor white;
endfig;
discontinue;
...
discontinue;
header("Limitations");
bpoint("Metapost doesn't handle text very well");
bpoint("It's difficult to include non-metapost graphics (e.g., bit-maps)");
bpoint("There's no provision for producing print-only versions of the information");
bpoint("There's no concept of presentation styles");
bpoint("It generally requires some configuration of ghostscript and metapost, especially if you use math");
bpoint("The other methods for producing presentations using TeX-family tools aren't as complicated as I suggested");
bpoint.in("I personally use my own plain-TeX style with just TeX, metapost, and dvipdfm");
...
nextfig;
hyperlabel(breaktowidth("Thanks for sticking to the end. Click on this text to start over.", .5lawidth)(ignore), (.5lawidth, .5laheight), "Start");
endfig;
end
See Figure 1.16,
“slideshow example”.
“The TeXPower bundle contains style
and class files for creating dynamic online presentations with
LaTeX. The heart of the bundle is the package texpower.sty which implements some commands for
presentation effects. This includes page transitions, color
highlighting and displaying pages incrementally. ”
Example 1.14. TexPower Example
\documentclass[landscape]{foils}
\usepackage{fixseminar}
\usepackage[display]{texpower}
\begin{document}
\title{The \code{texpower} / {\normalfont \texttt{foils} Demo}}
\author{Stephan Lehmke\\\code{mailto:Stephan.Lehmke@cs.uni-dortmund.de}}
\maketitle
\foilhead{A list environment}
\pause
\stepwise
{
\begin{description}
\item[foo.] \step{bar.}
\step{\item[baz.]} \step{qux.}
\end{description}
}
\foilhead{An aligned equation}
\pause
\parstepwise
{
\begin{eqnarray}
\sum_{i=1}^{n} i & \step{=} & \restep{1 + 2 + \cdots + (n-1) + n}\\
& \step{=} & \restep{1 + n + 2 + (n-1) + \cdots}\\
& \step{=} & \restep
{
\switch
{
\vphantom{\underbrace{(1 + n) +
\cdots + (1 + n)}_{\times\frac{n}{2}}}%
(1 + n) + \cdots + (1 + n)%
}
{\underbrace{(1 + n) + \cdots + (1 + n)}_{\times\frac{n}{2}}}%
}
\\
& \step{=} & \restep{\frac{(1 + n)\step{{}\cdot n}}{\restep{2}}}
\end{eqnarray}
}
\end{document}
See
Figure 1.17, “TexPower example: title page in Acrobat
Reader” and
Figure 1.18, “TexPower example: partial displayed page
2”.
“The purpose of the web package is to create a page layout for documents meant for screen presentation, whether over the WWW or classroom/conference presentations, in PDF. Such documents are not (necessarily) intended to be printed; consequently, the page layout is, in some sense, optimized for screen viewing. ”
Example 1.15. web.sty Example
\documentclass{article}
\usepackage[pdftex]{web}
\title{Some Title}
\author{\href{mailto:mw@miwie.in-berlin.de}{Michael Wiedmann}}
\university{Private Organization}
\email{mw@miwie.in-berlin.de}
\version{1.0}
\copyrightyears{2001}
\begin{document}
\maketitle
\tableofcontents
\section{First Section}
\begin{description}
\item [item1]description 1
\item [item2]description 2
\end{description}
\section{Another Section}
\begin{itemize}
\item item 1
\item item 2
\item item 3
\end{itemize}
\end{document}
See
Figure 1.19, “web.sty example: title page in Acrobat
Reader” and Figure 1.20,
“web.sty example: page in Acrobat Reader”.
Table of Contents
This chapter lists tools which generate HTML as their main output format. Some of them might be able to generate other output formats too (like PS).
“dbslide is a package of files that allows you to create screen presentations, overheads, and handouts from a DocBook SGML document. ”
Example 2.1. DocBook dbslide Example
<!DOCTYPE Book PUBLIC "-//OASIS//DTD DocBook V4.1//EN">
<book>
<bookinfo>
<author>
<firstname>Michael</firstname>
<surname>Wiedmann</surname>
<affiliation>
<address format="linespecific">mw@miwie.in-berlin.de</address>
</affiliation>
</author>
<title>DocBook dbslide Example</title>
</bookinfo>
<chapter>
<title>Abstract</title>
<para>A very simple demonstration of dbslide</para>
<itemizedlist>
<listitem>
<para>item 1</para>
</listitem>
<listitem>
<para>item 2</para>
</listitem>
</itemizedlist>
</chapter>
<chapter>
<title>Key features</title>
<simplesect>
<title>Features</title>
<itemizedlist>
<listitem>
<para>feature 1</para>
</listitem>
<listitem>
<para>feature 2</para>
</listitem>
<listitem>
<para>feature 3</para>
</listitem>
</itemizedlist>
</simplesect>
</chapter>
</book>
Norman Walsh created this DTD (Document Type Definition) as a customization of his “Simplified DocBook XML DTD” (see http://nwalsh.com/slides/). Included are XSL stylesheets for producing HTML output.
Example 2.2. DocBook slides Example
<!DOCTYPE slides PUBLIC "-//Norman Walsh//DTD Slides XML V2.0//EN"
"./slides.dtd">
<slides>
<slidesinfo>
<title>DocBook <emphasis>slides</emphasis> Example</title>
<author>
<firstname>Michael</firstname>
<surname>Wiedmann</surname>
</author>
<date>2001-06-20</date>
<copyright>
<year>2001</year>
<holder>Michael Wiedmann</holder>
</copyright>
<abstract>
<para>This is a very simple example for the use
of the new DocBook slides DTD (V2.0a1) and
accompanying XSL stylesheets.
</para>
<para>This is the <emphasis>frames</emphasis>
version, but there is also an XSL stylesheet
for a non-framed version.
</para>
<para>A very simple stylesheet for converting to
<emphasis>Formatting Objects</emphasis> for further
procession using a FO-Processor is also included.
</para>
</abstract>
<legalnotice>
<title>Legal Notice</title>
<para>Some legal notice</para>
</legalnotice>
</slidesinfo>
<foil>
<title>First Slide</title>
<itemizedlist>
<listitem>
<para>item 1</para>
</listitem>
<listitem>
<para>item 2</para>
</listitem>
<listitem>
<para>item 3</para>
</listitem>
</itemizedlist>
</foil>
<foil>
<title>Second Slide</title>
<variablelist>
<varlistentry>
<term>term 1</term>
<listitem>
<para>description 1</para>
</listitem>
</varlistentry>
<varlistentry>
<term>term 2</term>
<listitem>
<para>description 2</para>
</listitem>
</varlistentry>
<varlistentry>
<term>term 3</term>
<listitem>
<para>description 3</para>
</listitem>
</varlistentry>
</variablelist>
</foil>
</slides>
See Figure 2.1,
“slides example: title page in Netscape” and
Figure 2.2,
“slides example: first page in Netscape”.
Because slides are a customization of the Simplified DocBook XML DTD you need to install this package too (not necessarily because the package contains a flattended version of the slides DTD).
To process the XML slide files an XSLT processor like
XT, Saxon, xsltproc
etc. is necessary.
[DocBook is] Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999 HaL Computer Systems, Inc., O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software Corporation, and the Organization for the Advancement of Structured Information Standards (OASIS).
Same license as DocBook:
Permission to use, copy, modify and distribute the DocBook DTD and its accompanying documentation for any purpose and without fee is hereby granted in perpetuity, provided that the above copyright notice and this paragraph appear in all copies. The copyright holders make no representation about the suitability of the DTD for any purpose. It is provided "as is" without expressed or implied warranty.
“Latex2slides is a simple graphical program that produces a set of HTML/JPEG slides from a TeX or LaTeX source. Each Postscript page is converted to a JPEG image using ImageMagick's convert. The program then makes one HTML page for each JPEG (or slide), and an index.html page. As a result, each page in your slide presentation corresponds to one of the Postscript pages you would obtain from the LaTeX source. ”
Table of Contents
This chapter lists tools which generate output formats other than PDF and/or HTML.
“DFBPoint is a simple presentation viewer that uses the DirectFB graphics library to draw to the Linux framebuffer ”
“The presentation is defined in an XML file (as described below) and refers to external data (images, fonts) via relative or absolute filenames. Relative filenames are interpreted relative to the directory the XML file lives. ”
Example 3.1. DFBPoint Example
<?xml version='1.0' encoding='iso-8859-1'?>
<slides bgcolor="#222266" fgcolor="#9999FF"
bullet="bullet.png"
face="decker.ttf" size="42"
x="40" y="40"
screen_width="1024" screen_height="768">
<slide>
<header fgcolor="#ff00cc" size="96">DFBPoint</header>
<text></text>
<text>DFBPoint is a slide viewer for presentations</text>
<text></text>
<text>Slides are defined in a simple XML syntax</text>
<text>DirectFB is used for fast rendering</text>
</slide>
<slide bgcolor="#333333" fgcolor="#0033cc">
<header fgcolor="#ff00cc" size="80">DFBPoint</header>
<text>Foreground and background colors can be set</text>
<text fgcolor="#22FF22">per slide or per line</text>
<text></text>
<text>Various font encodings are supported.</text>
<text>Here are some strange letters: ÄÖÜäöüß</text>
</slide>
<slide bgimage="bg.png">
<header fgcolor="#ff00cc" size="80">DFBPoint</header>
<text>Supports background images</text>
<text>and arbitrarily placed images or videos</text>
<image x="20" y="300">wilber_stoned.png</image>
<image x="200" y="300" width="400">wilber_stoned.png</image>
</slide>
<slide effect="slide top" bgimage="bg.png">
<header fgcolor="#220066" size="80">Effects</header>
<text>Slides can slide in ...</text>
</slide>
<slide effect="slide bottom left" bgimage="bg.png">
<header fgcolor="#220066" size="80">Effects</header>
<text>... from all directions ...</text>
</slide>
<slide effect="blend" bgimage="bg.png">
<header fgcolor="#220066" size="80">Effects</header>
<text>... or fade in ...</text>
</slide>
<slide effect="slide top right, blend">
<header fgcolor="#ff00cc" size="80">Effects</header>
<text>... or both.</text>
</slide>
<slide bgimage="bg.png">
<header fgcolor="#ff00cc" size="80">Actions</header>
<text>Commands can be bound to function keys</text>
<listitem size="60">Press F1 to start df_neo</listitem>
<listitem size="60">Press F2 to start df_andi</listitem>
<action key="F1">df_neo</action>
<action key="F2">df_andi</action>
</slide>
</slides>
“This is mechapoint, my simple presentation player written in C++. Mechapoint uses an XML file format, and displays it's graphics using Evas, the very funky, optionally OpenGL-accelerated canvas library from the Enlightenment project. ”
Example 3.2. mechapoint Example
<?xml version="1.0"?>
<mechapoint width="400" height="300">
<page>
<rectangle>
<move x="0" y="0" />
<resize w="400" h="300" />
<color r="255" g="255" b="255" a="255" />
</rectangle>
<image filename="flower.png">
<move x="100" y="50" />
<resize w="150" h="100" />
<imagefill w="150" h="100" />
</image>
<group>
<ellipse w="10">
<move x="52" y="82" />
<color r="0" g="0" b="0" a="100" />
</ellipse>
<ellipse w="10">
<move x="50" y="80" />
<color r="255" g="0" b="0" a="255" />
</ellipse>
</group>
<group>
<text font="notepad" size="30" value="mechafoo!">
<move x="102" y="82" />
<color r="0" g="0" b="0" a="80" />
</text>
<text font="notepad" size="30" value="mechafoo!">
<move x="100" y="80" />
<color r="0" g="0" b="150" a="255" />
</text>
</group>
</page>
<page>
<gradient_box>
<move x="0" y="0" />
<resize w="400" h="300" />
<add_color r="100" g="100" b="255" a="255" />
<add_color r="255" g="255" b="255" a="255" />
</gradient_box>
<rectangle>
<move x="50" y="50" />
<resize w="300" h="200" />
<color r="255" g="255" b="255" a="100" />
</rectangle>
<textbox font="notepad" size="15" x="50" y="50" width="300">
<para post_indent="100" first_indent="0" indent="100">
This is a paragraph of foo. It contains quite a lot of
information about foo and bar.
</para>
<para align="centre">Para 2</para>
<para></para>
<para align="right">Another para :)</para>
</textbox>
</page>
<page>
<gradient_box>
<move x="0" y="0" />
<resize w="400" h="300" />
<add_color r="100" g="100" b="255" a="255" />
<add_color r="255" g="255" b="255" a="255" />
</gradient_box>
<textbox font="notepad" size="20" x="20" y="20" width="360">
<para align="centre">Welcome to Mechapoint!</para>
</textbox>
<group>
<rectangle>
<move x="21" y="51" />
<resize w="360" h="2" />
<color a="100" />
</rectangle>
<rectangle>
<move x="20" y="50" />
<resize w="360" h="2" />
<color a="100" />
<color r="255" g="255" b="255" a="255" />
</rectangle>
</group>
<textbox font="Times_New_Roman" size="10" x="20" y="60" width="360">
<para>Welcome to Mechapoint, a simple presentation program
for Unix/Linux systems.
</para>
<para>Mechapoint reads presentation files, which are formatted
in an XML format, and displays them using an Evas canvas.
By harnessing the powerful display technology of Evas,
Mechapoint allows you to create impressive graphical
presentations with ease. Also, using XML allows you to use
standard tools like XSLT to streamline your workload.
</para>
<para>normal bit<font color="#ff00007f">special bit</font>
more normal bits
</para>
<para><font face="Webdings">=</font> bullet 1</para>
</textbox>
</page>
</mechapoint>
“Magic Point is an X11 based presentation tool. It is designed to make simple presentations easy while to make complicated presentations possible. Its presentation file (whose suffix is typically .mgp) is just text so that you can create presentation files quickly with your favorite editor (e.g. Emacs, vi). ”
Example 3.3. mgp Example
%include "default.mgp"
%deffont "standard" tfont "Apgabk.TTF"
%deffont "standard" tfont "trebuc.ttf"
%deffont "standard" tfont "Ressurec.ttf"
%page
%nodefault
%font "standard"
%back "white"
%center
%image "openl2.ppm"
%size 2, fore "black"
...
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
%nodefault
%left
%font "standard"
%size 5, fore "black"
Die Debian Geschichte:
%right
%image "logo-50.jpg", image "debian.jpg"
%left, size 4, fore "black"
· Projektstart durch Ian Murdock und andere im August 1993
(Version 0.01...0.90)
· in dieser Zeit gab es nur eine Handvoll Entwickler
· Die offiziellen Versionen:
%size 3
- v1.1 ("buzz"): Juni 1996 (474 Pakete)
- v1.2 ("rex"): Dezember 1996 (848 Pakete)
- v1.3 ("bo"): Juli 1997 (974 Pakete)
- v2.0 ("hamm"): Juli 1998 (>1500 Pakete)
- v2.1 ("slink"): März 1999 (~2250 Pakete)
- v2.2 ("potato"): August 2000 (>4000 Pakete)
- v2.2 r2 ("potato"): Dezember 2000 (>4000 Pakete)
- v2.3 ("woody"): ??? (bisher fast 6200 Pakete)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
See Figure 3.1,
“mgp example in Acrobat Reader”.
Copyright (C) 1997 and 1998 WIDE Project.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the project nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
See http://puchol.com/cpg/software/mgp/ for some examples of templates for mgp.