From de198304d35970fbd7c1bbb4cb80bca97ba6e27b Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 19 Sep 2011 23:44:11 +0000 Subject: powerdot 1.4h (19sep11) git-svn-id: svn://tug.org/texlive/trunk@24021 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/powerdot/Changes | 2 +- .../powerdot/doc-source/images/powerdot-default.ps | 109 - Master/texmf-dist/doc/latex/powerdot/powerdot.pdf | Bin 521703 -> 541173 bytes Master/texmf-dist/doc/latex/powerdot/powerdot.tex | 16 +- .../doc/latex/powerdot/powerdotSlide.pdf | Bin 0 -> 99791 bytes .../doc/latex/powerdot/powerdotSlide.tex | 2635 ++++++++++++++++++++ Master/texmf-dist/tex/latex/powerdot/powerdot.cls | 26 +- 7 files changed, 2667 insertions(+), 121 deletions(-) delete mode 100644 Master/texmf-dist/doc/latex/powerdot/doc-source/images/powerdot-default.ps create mode 100644 Master/texmf-dist/doc/latex/powerdot/powerdotSlide.pdf create mode 100644 Master/texmf-dist/doc/latex/powerdot/powerdotSlide.tex diff --git a/Master/texmf-dist/doc/latex/powerdot/Changes b/Master/texmf-dist/doc/latex/powerdot/Changes index d4682cbe76b..a30cc9e51e5 100644 --- a/Master/texmf-dist/doc/latex/powerdot/Changes +++ b/Master/texmf-dist/doc/latex/powerdot/Changes @@ -1,5 +1,5 @@ powerdot.cls -------- -1.4h 2011-05-17 - readded envronment blackslide +1.4h 2011-09-15 - fix for the latest enumitem 1.4g 2011-04-25 - load enumitem version 2.2 - allow paper size smartboard diff --git a/Master/texmf-dist/doc/latex/powerdot/doc-source/images/powerdot-default.ps b/Master/texmf-dist/doc/latex/powerdot/doc-source/images/powerdot-default.ps deleted file mode 100644 index 2a8a22c4a3d..00000000000 --- a/Master/texmf-dist/doc/latex/powerdot/doc-source/images/powerdot-default.ps +++ /dev/null @@ -1,109 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Creator: jpeg2ps V1.8 by Thomas Merz -%%Title: flower.jpg -%%CreationDate: Thu Sep 04 15:25:36 2003 -%%BoundingBox: 20 20 592 284 -%%DocumentData: Clean7Bit -%%LanguageLevel: 2 -%%EndComments -%%BeginProlog -%%EndProlog -%%Page: 1 1 -/languagelevel where {pop languagelevel 2 lt}{true} ifelse { - (JPEG file 'flower.jpg' needs PostScript Level 2!\n) dup print flush - /Helvetica findfont 20 scalefont setfont 100 100 moveto show showpage stop -} if -save -/RawData currentfile /ASCII85Decode filter def -/Data RawData << >> /DCTDecode filter def -20 20 translate -572.00 264.00 scale -/DeviceRGB setcolorspace -{ << /ImageType 1 - /Width 130 - /Height 60 - /ImageMatrix [ 130 0 0 -60 0 60 ] - /DataSource Data - /BitsPerComponent 8 - /Decode [0 1 0 1 0 1] - >> image - Data closefile - RawData flushfile - showpage - restore -} exec -s4IA0!"_al8O`[\!WW42!+Z'0s6K^t7!3!TGlRjF"98E%49,B]mJm__A8bpg!+`k -F!!!'"gAlm,"p>&3"U##5"U58;"U58@#R1J=$Od@L$OR4L&.AsU$k*OU$k!!*-(!sAf5#6P)2z!3i0a0iV'F%ECEM4R3JWWi>,8CHg_9kS*;\nkSU ->bX*1h2^q&HDh7!!EE,":553z!!*'3!WsT#&d1Kt'*[l6EIjf-16JiXdIBOJ1DJf -B,S^O`g&MN`!<<05!tbMt!:(f:P\/(]CAkV"H=Pldo3Re8T<1>XN3Z:X6s;cH_#n -are&,T53dks\9SG$Zl5G#oW3*g6DlV0*;Q"Dmm:LhSB?`Xim1@:M<4\dbIWfbJ8[ -Z2Wb>WrU:KT\H0AcE]4Cdt2ZEZ&_ci]542OhlYL#G%QbasVUdYZCKE>TE4bne-\m -o0'UR7FhZnKC`hAN((=`[JX\Ten:'QLe_S->qt>/VIqq];k^sGN?=?(11jG?2L/4 -W7kH4<'jZ3L0Lm6iA:*rD6ADd1-F5had59Rc$&74PFHU_$:WdN'UKH*;PJgW&?0f -L:kQ:F,7Va,q.+si!:`leK2B7)fp8+*T@=0e&dDf[;K3cF-6H85!(ke7N.Tqie]#_n[a2d+dl -ruE!Sd#6LZ44/YXl/2A\3%\P>][-6=c[dh+lVDWHFf!bIX"@l>A5*6TLtMg"R:WG -?mM0RZB=#r(bku*a2ujo88Mn2@QtXHjWN!@/g4/af(4*CF-4M4GkSZBi(0OE?K=' -"U+B8R1;)?rPnF#Lbq]]?!IL^g//JLP4DE1gZjBIGpu=m/Mbo;_P+SK6AF.G9u\Y -g7I'_EUSk&mT,U]UN5oTck)I;1%!,B#1.H;f5DRc;6+]C).$r8tB -En'kOLgG:MBN[b^oB#mDeVHmo[4@in*LWeQEe? -#J_dSJrLX*D^u\?emhGa)2f+PJfj"?>3]=;74hrrA:k'ffd%lP@c1G_NFT -pQVXJ>"Vh]*#/1QT%G$k2HTF98hGt+dt]f`,1&'dH+1/gjXs36d-QA<;Zh3=\3Y( -P'W%b-6c)O'5C>,r?KZ?FZhf"aXgE]]aX1E\>(K=MHR6LjI#/tl:3!"S+cORqR\A -1*?GfR(cCjBMj#WHU#G=EL\$E@!J7,4;7s0K1),:8_?m@49i`,/Er5RdQou4Kc8f -HG^[\)b4ZdOO>pVEb$\Y0/NNCfN<>]:1,VQTG,V+L5UbA-EN`h^qV9HNsJ81A,&g -0u$Z2P$OtRpPB2:kggek.%?2 -@CN^cAS=V%LrD!RE]l,V!,#hsGqAPQl&7!WFR-%NXrK^Q]Z-j]B7.R8q=Q6">`@RQD(F8)M3f]N -_OT$I6ZKh*?-pdCoiB9-l(7c'5-=j:u*WkVB<40-2mg4]nr<#6QJC6;_V_Q%W5b6 -[_ZI@)>V-69dM1-[KcGuFI=h)A9_F_e\FbU't4.[,m43!=m;m@Y(f6tj;B]FIYkh -<:?Y>d0H"+.Fp]eUEUcZ?Gu+o_7fH%46IBIe_s-B2,8DkZ&bID+O^%7.4dT, --.7m7ZI>$74c*\&Og)9/dbVe;^eMih&i/*[8F-BnoQ??A))SL6&:qmX0/Y8.e^*Tcrr?;$a$4n2PE*(@"i9EJ2Y?'N#U#o0Dd% -71(P.mfEI^fi1CE';%:$UInL@hLSAZq2>?B)V9f773#Sa%/fP(1PVKmU8, -3IZ0LT[.M6CTG-*R\2c-qQ3EOcNU=N<+"I&mt1jk`ssINg2nFk2OpG.[`q#,Yg[* -cD)S)(r0:r5&!^[32`2lU<.Wel=P'6+Hb:b'TF7=WSVmr&A,dDDBrL2d -q;"dK63LFYZEWWHLCIL-q+LA(TVk68^m4$V)\VB'%G76+4Xd`,(>/0WT?'9p=c0h -YH0D8;ld2piiDAIbA!@\(A'#?"7@F6-'E5kNr9+4dB`fAU?e@/'''e@4Ve>WTh-D -5PE@)uN'G6%g[4I(Sc7e&CZ,n;LK -gj^03#"laJpqCCQ7OYihZP3&NNKd1G.g`C/kC%1liOW#APUGo3@G@eBKeA%gk:UO -h)BVjCkQr>=K#_O]2+*V1.S]>INQCDlP -+mB/pMf3)H>>D,AN"^f5;*a^Ma@>uFk_ZL^UVnP62Y,2pBcKe0;9KeLRQ#7iZO." -N?lpZ9H9,bj7TVp[:&+!>q)tl(s-=A#>2DPm[c`O8Q@40LLA,Oekq%B;.C>4C -NcNs9UV;[e[@3Xo9(d89=t/O.j<&A;GQGZ)5q+tc7s<[Ou,Hb.?`ERdY62I4GM9i -[$o@;Q"Hg;T+E\3FE$9/Dn!S6,[/rS6BG$;QrLp%!%@)*o1*-^G(#S.,\!4bZLtb -/)kkAcdXcn7=VIpjp93n:_fg8.@2&gT*L_I=4V]'C60# -M=\-QTAfqA.?Yq47_/N8r5P(nO -.L4CaK6d1su\`=nTi*iR3^KLH>A.G#M@;DiF-K,8>8Qo(p5s[7TD'-)Va\HdmifAE)?G@Co^+'VpLO8t\pO.KNGaP>,7+*/'9`Gi4W$b/N\eT=ITr(@ -J'Y[4+hu,g[6hm,C85B*0C;,S8a3b%\iJ#bF2c]h630i_lEu:rf:QL`A0D_.7=Bm -FY,_21q>u!W-7[gW)0f$IE)CY,ZEp"=WE0M+;M?mY^4qaJ^iS[/U-eIe3R>njZn& -7"2$VUIjUP/gXXp?$Ma@"_VtHg0"KCM4[WAikYAhFl[92cO^^<#Q!*oeppg3MIVp -?X*K$].J=G6*k33!V^R7<&ZPS,Rb:]Q.7Ot$(_\QIirLLM:*j"2EfPVFRB>7*jc5 -/eBp@*fFdZ#V6!rRlYI/OgU'.S.:o@_D.cD0[qN*os>f3^,938+oC*_sdELLI/I0 --u:N!I8DJlO=+Z-72hS?LN29q`h\8PE:R%5(d(bmDHALPAR3S^!ec>#tg]onIcJ,%!dl` -]%l%#(_APEA]N/GW7TQ$`.qn=b#dBYXm7oHeoo5`i3pg0N04Me>H%`?W;-KA<`QF -GmpWZ!Y[grNkLoOB?>BS?P#sKQ?E\"9l\@jHgQ]8gEr@:L3n[5F2RDg'.0+I564l -noX/l&!o_J)"UGQoLLXM^`%GnLp?#rGhVe.L7d[NR?d"RW'2\f6[1'>VScBuT,X0 -.RaX-Tku^QtGu.0i]Q1-3SD:t';ZC@eGS8/s^EP;MY3Xts8f=q$!m!3E8aCOXhX/ -_hipL.[e+-*gF"nm*e$9F[qS=iu(Y<:-Fa)FKoIh[_4h"LVR8k^6&?p&,?St.%L;;4` -o:)q#%X7S:'r-L\Y4Oe]W^n`f1md:F-nO#E8X`IIf*UnF5;[lODZ7fdT:KeYf)^T -=`;X`$ -npG'aXliDYR_,9-htDtU\l>!F(LZ;R3,@gDYD,ODg88V[d@>J'kjKQf=Vg.>l@e: -p(Pb]a!)e7aF.ZDFB;sFABpUDk>WOg-SeC:[<+b!ni.t>!CNh+ -%%EOF diff --git a/Master/texmf-dist/doc/latex/powerdot/powerdot.pdf b/Master/texmf-dist/doc/latex/powerdot/powerdot.pdf index 320299fa50f..be535eb5a24 100644 Binary files a/Master/texmf-dist/doc/latex/powerdot/powerdot.pdf and b/Master/texmf-dist/doc/latex/powerdot/powerdot.pdf differ diff --git a/Master/texmf-dist/doc/latex/powerdot/powerdot.tex b/Master/texmf-dist/doc/latex/powerdot/powerdot.tex index 800307c1b88..e0e38b9fdbc 100644 --- a/Master/texmf-dist/doc/latex/powerdot/powerdot.tex +++ b/Master/texmf-dist/doc/latex/powerdot/powerdot.tex @@ -951,7 +951,21 @@ Now, every item will be displayed in the \emph{inactive color}\index{inactive color|usage} (which is defined by the style that you use), and the item's font color will become the active one on the overlay that it would normally appear on. The default -behavior is given by |type=0|. +behavior is given by |type=0|. It is still possible to pass +optional arguments to \pf{enumitem} via the second optional argument: + +\begin{example} + \begin{slide}{Type 1 itemize} + \begin{enumerate}[type=1][label=\romani*)] + \item A \pause + \item B \pause + \item C + \end{enumerate} + \end{slide} +\end{example} +Take care, that this must always be the second optional argument! +It is possible to leave the first one empty, which is valid only for \pf{powerdot}. + Lists can also be nested to create complicated structures. When a list is nested, it inherits the setting of the |type| option from diff --git a/Master/texmf-dist/doc/latex/powerdot/powerdotSlide.pdf b/Master/texmf-dist/doc/latex/powerdot/powerdotSlide.pdf new file mode 100644 index 00000000000..a6be633fea8 Binary files /dev/null and b/Master/texmf-dist/doc/latex/powerdot/powerdotSlide.pdf differ diff --git a/Master/texmf-dist/doc/latex/powerdot/powerdotSlide.tex b/Master/texmf-dist/doc/latex/powerdot/powerdotSlide.tex new file mode 100644 index 00000000000..e095b47c20e --- /dev/null +++ b/Master/texmf-dist/doc/latex/powerdot/powerdotSlide.tex @@ -0,0 +1,2635 @@ +%% +%% This documentation is prepared by Herbert Voss +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2003/12/01 or later. +%% +\documentclass{powerdot} +\usepackage{url} +\usepackage{fourier} +\usepackage{graphicx} +\usepackage{listings} +\usepackage{array} +\def\Lcs#1{\texttt{\textbackslash#1}} +\lstnewenvironment{command}{% + \lstset{columns=flexible,frame=single,backgroundcolor=\color{blue!20},% + xleftmargin=\fboxsep,xrightmargin=\fboxsep,escapeinside=`',gobble=1}}{} +\lstdefinestyle{example}{% + basicstyle=\footnotesize\ttfamily,columns=flexible,frame=single,% + backgroundcolor=\color{yellow!20},xleftmargin=\fboxsep,% + xrightmargin=\fboxsep,% + language=[LaTeX]TeX,keywordstyle=\color{blue},% + moretexcs=[1]{color,ProvidesPackage},% + moretexcs=[2]{onslide,pause,pdsetup,maketitle,tableofcontents},% + texcsstyle=[2]\color{red}} +\makeatletter +\def\option#1{% + \XKV@for@n{#1}\pd@tempa{% + \fcolorbox{black}{red!20}{\texttt\pd@tempa}\quad + }% + \vspace*{.2cm}% +} +\def\larg#1{{\ttfamily\char`\<}\meta{#1}{\ttfamily\char`\>}} +\def\LyX{L\kern-.1667em\lower.25em\hbox{Y}\kern-.125emX\@} +\def\LyXarrow{\leavevmode\,$\triangleright$\,\allowbreak} +\let\pf\textsf +\def\equals{=} +\setcounter{tocdepth}{2} +\newcolumntype{d}{c|l} +\newcolumntype{e}{c|c|c|c} +\newcolumntype{f}{l|p{8cm}} +\newcounter{FAQ} +\def\question{% + \stepcounter{FAQ}% + \parskip4pt plus 2pt minus 1pt + \itemsep4pt plus 2pt minus 1pt + \parsep4pt plus 2pt minus 1pt + \item[\textbf{Q\arabic{FAQ}}]% +} +\def\answer{% + \parskip0pt + \itemsep0pt + \parsep0pt + \item[\textbf{A\arabic{FAQ}}]% +} +\def\styleexample#1{% + \IfFileExists{powerdot-styleexample-#1.001}{% + \IfFileExists{powerdot-styleexample-#1.002}{% + \hspace*{\stretch{1}}% + \fbox{\includegraphics[scale=.16,angle=-90,clip]% + {powerdot-styleexample-#1.001}}% + \hspace*{\stretch{2}}% + \fbox{\includegraphics[scale=.16,angle=-90,clip]% + {powerdot-styleexample-#1.002}}% + \hspace*{\stretch{1}}\par + }{\textbf{No example files found for style \pf{#1}.}}% + }{\textbf{No example files found for style \pf{#1}.}}% +} +\makeatother + +\def\fileversion{v1.4e} +\def\filedate{2010/12/18} + +\title{The \pf{powerdot} class} +\author{Hendri Adriaens\and Christopher Ellison\and Herbert Vo\ss} +\date{\fileversion\ (\filedate)} + +\begin{document} + +\maketitle + +\begin{slide}{Abstract} +\begin{abstract} +\pf{powerdot} is a presentation class for \LaTeX\ that allows for +the quick and easy development of professional presentations. It +comes with many tools that enhance presentations and aid the +presenter. Examples are automatic overlays, personal notes and a +handout mode. To view a presentation, DVI, PS or PDF output can be +used. A powerful template system is available to easily develop new +styles. A \LyX\ layout file is provided. +\end{abstract} +\end{slide} + +\begin{slide}{Contents} +\tableofcontents +\end{slide} + +\section{Introduction} +\begin{slide}{Introduction}\label{sec:intro} +This class builds on and extends the \pf{prosper} class +\cite{prosper} and the \pf{HA-prosper} package \cite{HA-prosper}. +The \pf{HA-prosper} package was initially intended to extend +\pf{prosper} and correct some bugs and problems of that class. As +developments on that package progressed, it was found that +unfortunately, not all of the problems could be overcome with the +package. That discovery was the start of a new project set up to +make a new class to replace the \pf{prosper} plus \pf{HA-prosper} +combination. You're currently reading the result of that project.\pause + +The remainder of this section will be devoted to giving a feel of +what the \pf{powerdot} presentation source looks like and giving an +overview of this documentation.\pause + +The document structure of a presentation is always the same. You can +find it in the example below. +\end{slide} + + +\begin{slide}[method=direct]{Example} +\begin{lstlisting}[style=example] +\documentclass[]{powerdot} +\pdsetup{} +\begin{document} + \begin{slide}{a slide} + Contents of the slide. + \end{slide} + \section{first section} + \begin{slide}[]{another slide} + Contents of the slide. + \end{slide} + \begin{note}{personal note} + The note. + \end{note} +\end{document} +\end{lstlisting} + +\end{slide} + + +\begin{slide}[method=direct]{} +There are several elements that define the document structure. First +of all, the class accepts some class options that control the output +of the class, for instance, paper type and style. These class +options will be discussed in section~\ref{sec:classopts}. Then there +are presentation specific options which control some of the elements +of the presentation globally, for instance, the footers. These will +be discussed in section~\ref{sec:pdsetup}. +\end{slide} + +\begin{slide}[method=direct]{} +Once the setup has been decided on, you can use the slide +environment to produce slides (see section~\ref{sec:slides}) and the +note environment to produce notes that go with the slides (see +section~\ref{sec:notes}). You can use overlays to display material +in steps. This is described in section~\ref{sec:overlays}. The +\verb=\section= command provides a way to structure your presentation. +This is discussed in section~\ref{sec:structure}. +Section~\ref{sec:styles} will show an overview of the styles that +come with this class and the characteristics of each style. +Section~\ref{sec:compiling} will tell you more about how to produce +output. This section contains important information on required +packages. +\end{slide} + +\begin{slide}[method=direct]{} +Section~\ref{sec:writestyle} is mostly interesting for people that +want to develop their own style for this class or want to modify an +existing style. Section~\ref{sec:lyx} explains how \LyX\ +\cite{LyXWeb} can be used to create \pf{powerdot} presentations. +This documentation concludes with a section devoted to questions +(section~\ref{sec:questions}), like `Where can I find examples?'. It +also tells you where to turn to in case your questions are still not +solved. +\end{slide} + + +\section{Setting up the presentation}\label{sec:setup} +\subsection{Document class options}\label{sec:classopts} +\begin{slide}{Document class options} +This section will describe all options that are available to control +the output of the presentation and the looks of it. \pause + +We will +start with the class options that are typed in the \Lcs{documentclass} +command as a comma-separated list. For each option, the preset +value will be mentioned in the description. This is the value +that will be used if you decide to not give a value to the option or +not use the option at all. The value that will be used when you don't use the +option. +\end{slide} + +\begin{slide}{} +This options controls the kind of output that we want to produce. +The preset value is \texttt{present}.\pause +\begin{description} +\item\option{mode=present} +This mode is used when you want to create the actual presentation. It +will enable overlays and transition effects. You can read more about +overlays in section~\ref{sec:overlays}. +\item\option{mode=print}\\ +This mode can be used when printing the slides including their visual +markup, but without any overlay or transition effects. +\item\option{mode=handout}\\ +This mode will produce a black and white overview of your slides that +can be used to make personal notes on, for distribution to students, +a personal guide during your talk, etcetera. +\end{description} +\end{slide} + +\begin{slide}{} +This options controls the kind of output that we want to produce. +The preset value is \texttt{present}.\pause +\begin{description} +\item\option{nopagebreaks}\\ +By default, the handout mode produces a document with two slides per +page. If you want to fit more slides on a page, specify this option +in the \Lcs{documentclass} command and \pf{powerdot} will let \LaTeX\ +decide on the places to insert a page break, namely when a page is +full. +\end{description} +\end{slide} + + +\begin{slide}{} +\begin{description} +\item\option{paper} This option has three possible values. The +preset value is \texttt{screen}. +\begin{description} +\item\option{paper=screen}\\ +This is a special format with screen optimized ratio (4/3). The +actual page dimensions will be 8.25 inch by 11 inch. This paper format +is not available for print or handout mode. In these modes, \pf{powerdot} +will switch to a4 paper and put a warning that it did this in the +log file of your presentation. +\item\option{paper=a4paper}\\ +A4 paper will be used for the presentation or handout. +\item\option{paper=letterpaper}\\ +Letter size paper will be used. +\end{description} +\end{description} +\end{slide} + +\end{document} + +Some important information with respect to paper size, compiling and +viewing presentations is available in section~\ref{sec:compiling}. + +\DescribeOption{orient} This controls the orientation of the +presentation. The preset value is |landscape|. +\begin{description} +\item\option{orient=landscape}\\ +The presentation will be in landscape format. This value is not +available in handout mode. In that mode, \pf{powerdot} will switch +to portrait orientation and will warn you about this in the log +file. +\item\option{orient=portrait}\\ This produces slides in portrait +format. Notice that not all styles support portrait orientation. Please +refer to section~\ref{sec:styles} for information about which styles +do support the portrait orientation. +\end{description} + +\DescribeOption{display} This controls the production of slides and +notes. The preset value is |slides|. +\begin{description} +\item\option{display=slides}\\ +This will only typeset the slides in your presentation. +\item\option{display=slidesnotes}\\ +This will typeset both the slides and the notes in your +presentation. See also section~\ref{sec:notes} for more information +about notes. +\item\option{display=notes}\\ +This will typeset the notes only. +\end{description} + +Here are some more options to control the output. +\begin{description} +\item\DescribeOption{size}\option{size}\\ +This is the size of the normal text font in points. Possible values +are 8pt, 9pt, 10pt, 11pt, 12pt, 14pt, 17pt and 20pt and the preset +value is 11pt.\footnote{Note that sizes other than 10pt, 11pt and +12pt are non-standard and it is assumed that you have the +\pf{extsizes} bundle \cite{extsizes} installed, which provides these +sizes.} +\item\DescribeOption{style}\option{style}\\ +This controls the style to be loaded for the presentation. By +default, the \pf{default} style will be loaded. For more styles, see +section~\ref{sec:styles}. +\item\DescribeOption{fleqn}\option{fleqn}\\ +This option makes equations flushed left. It does the same as the +equally named option for the article class. +\item\DescribeOption{leqno}\option{leqno}\\ +Put equation numbers at the left. Also the same as in the article +class. +\item\DescribeOption{nopsheader}\option{nopsheader}\\ +By default, \pf{powerdot} will write a postscript command to the ps +file to make sure that post processors like ps2pdf know which paper +to use without the need to specify it on the command line. See also +section~\ref{sec:compiling}. If you experience problems with post +processing or printing or you want to specify the paper size in the +post processing steps yourself, use this option. +\item\DescribeOption{hlentries}\option{hlentries}\\ +This highlights table of contents entries when the entry matches +with the current slide and its preset value is |true|. See also +section~\ref{sec:structure}. If you don't want highlighting of table +of contents entries (for instance in print mode), use +|hlentries=false|. +\item\DescribeOption{hlsections}\option{hlsections}\\ +This highlights table of contents sections when the section matches +with the current section in the presentation and is preset to |false|. +See also section~\ref{sec:structure}. Specifying this +option turns highlighting of sections on. This could be useful when +you are using a style that implements a split table of contents. +\item\DescribeOption{blackslide}\option{blackslide}\\ +This option inserts a black slide in the presentation on page 1 and +will automatically advance to page 2 when opening the presentation +in a PDF viewer like Acrobat (Reader). The option also inserts a +link behind every slide or section title that brings you to the +black slide when clicked. When you click anywhere in the black +slide, you will go back to the originating slide. This option can be +used to temporarily pause a presentation, for instance, to do a +proof on the black board. +\item\DescribeOptions{clock}\option{clock}\\ +This displays a small digital clock on slides which you can use to +check the time left for your presentation. +\end{description} + +Here is an example of a \Lcs{documentclass} command. +\begin{example} + \documentclass[ + size=12pt, + paper=screen, + mode=present, + display=slidesnotes, + style=tycja, + nopagebreaks, + blackslide, + fleqn + ]{powerdot} +\end{example} +This example sets up a presentation in \pf{tycja} style, with a black +slide, normal size 12 points and flushed left equations. +\begin{example} + \documentclass[ + size=12pt, + paper=letterpaper, + mode=handout, + display=slidesnotes, + style=tycja, + nopagebreaks, + blackslide, + fleqn + ]{powerdot} +\end{example} +Changing the |paper} and |mode} options, now produces a handout with +possibly more than two slides per page due to the |nopagebreaks| +option. + +\subsection{Setup options}\label{sec:pdsetup} +\DescribeMacro{\pdsetup} +There are several extra options that can help customizing your +presentation. These options are not available via the +|\documentclass} command. This has a technical reason.\footnote{The +interested reader is referred to the section about the \pf{xkvltxp} +package in the \pf{xkeyval} package documentation \cite{xkeyval}.} +We distinguish two types of options. Options that can only be set +globally (acting for the entire presentation) using the \Lcs{pdsetup| +command and options that can be accessed both globally (via +|\pdsetup|) and locally (via slide environments, see section~\ref{sec:slides}). + +\subsubsection{Global options}\label{sec:gopts} +This section describes options that can only be used globally in the +preamble of your presentation via the \Lcs{pdsetup} command. +\begin{description} +\item\DescribeOption{palette}\option{palette}\\ +This specifies the palette to be used. A palette is a set of colors +defined by a style. To find out which palettes are defined by each +style, see section~\ref{sec:styles}. +\item\DescribeOption{theslide}\option{theslide}\\ +This option controls how the slide number appears on the slide. This +is preset to the value \Lcs{arabic{slide}~/~\pageref*{lastslide}|, +which could appear like |5/22|. Notice that the \Lcs{arabic{slide}| +typesets the number of the current slide and that +|\pageref*{lastslide}} typesets the number of the last +slide.\footnote{We use the starred version of \cs{pageref} which is +defined by \pf{hyperref} and does not create a link to the page that +it is referring to.} +\item\DescribeOption{thenote}\option{thenote}\\ +This is similar to the |theslide} option, but typesets the slide +numbers of notes. The preset value is +|note~\arabic{note}~of~slide~\arabic{slide}} and \Lcs{arabic{note}| +here typesets the number of the current note that goes with the +current slide. This could appear like |note 2 of slide 7|. +\item\DescribeOption{counters}\option{counters}\\ +The |counters} option lists counters that you might want to protect +on overlays. As material on overlays (see +section~\ref{sec:overlays}) is processed multiple times, also +\LaTeX\ counters, like the |equation} counter, might be increased +too often. To avoid that your equations get different numbers on +every overlay, use this option. The |equation|, |table|, |figure|, +|footnote} and |mpfootnote} counters are already protected for you. +If you use extra counters, for instance for theorems, list them in +this option. Example: +\begin{example} + counters={theorem,lemma} +\end{example} +\item\DescribeOption{list}\option{list}\\ +This option takes a list of options that will be passed on to the +\pf{enumitem} package that controls the layout of lists created by +the |enumerate} and |itemize} environments. Example: +\begin{example} + list={labelsep=1em,leftmargin=*,itemsep=0pt,topsep=5pt,parsep=0pt} +\end{example} +See for more information on controlling the layout of lists the +\pf{enumitem} package \cite{enumitem}. +\item\DescribeOptions{enumerate,itemize}\option{enumerate,itemize}\\ +As the |list} option, but only control |enumerate} and |itemize| +environments respectively. +\end{description} + +\subsubsection{Global and local options}\label{sec:glopts} +This section describes options that can be used both globally via +|\pdsetup} and locally via slide environments (see section~\ref{sec:slides}). +\begin{description} +\item\DescribeOptions{lf,cf,rf}\option{lf,cf,rf}\\ +This determines the content of the left, center and right footers. +These are preset to empty. +\item\DescribeOption{trans}\option{trans}\\ +This option sets the default transition effect to be used in the +presentation. These transition effects only work after compiling the +presentation to PDF format. See also section~\ref{sec:compiling}. +The following transition effects are supported: |Split|, |Blinds|, +|Box|, |Wipe|, |Dissolve|, |Glitter} and |Replace|. When you are using +a viewer that understands PDF 1.5, you can also use |Fly|, |Push|, +|Cover|, |Uncover} or |Fade|. It is important to notice that most +viewers are case sensitive, so, for instance, |box} will not work. + +The preset effect is |Replace} which just replaces one slide with +another when browsing the slides. Note that some PDF viewers (like +Acrobat Reader 5 and higher) only produce the transition effect in +full screen mode. If you want to use a custom transition effect that +is not listed in the list above (for instance, a wipe effect with a +custom wipe direction), then that is possible. However, +\pf{powerdot} will put a warning in your log file that the effect +that you have chosen, might not work in the PDF viewer. Here is an +example that does work. +\begin{example} + trans=Wipe /Di 0 +\end{example} +In Acrobat (Reader), this wipes from left to right instead of the +default top to bottom. For more information, see a PDF Reference +Manual. +\item\DescribeOption{method}\option{method}\\ +This option can be used when a slide contains special material that +does not get treated in the `usual' way by \LaTeX. Verbatim material +is an example of this. Possible values are |normal} (the preset value), +|direct} and |file|. We will come back to this option in detail in +section~\ref{sec:verbatim}. +\item\DescribeOptions{logohook,logopos,logocmd}\option{logohook,logopos,logocmd}\\ +If |logopos} is specified, a logo defined by the value of the +|logocmd} option will be put on slides. The position can be +specified relative to the width and height of the slide. |{0,0}} is +the lower left corner of the paper and |{\slidewidth,\slideheight}| +is the upper right corner. For positioning the logo, the \Lcs{rput| +command of \pf{pstricks} \cite{PSTricksWeb,PSTricks} is used. This +command also allows to specify the point of the logo that should be +positioned there. This point can be entered via the |logohook| +option and can take the values |tl|, |t|, |tr|, |r|, |Br|, |br|, +|b|, |bl|, |Bl|, |l|, |B} and |c|. For more information about +|\rput|, consult the \pf{pstricks} documentation. Here is an example +that integrates the flower of the \pf{default} style into the +\pf{husky} style. +\begin{example} + \documentclass[style=husky]{powerdot} + \pdsetup{ + logohook=t, + logopos={.088\slidewidth,.99\slideheight}, + logocmd={\includegraphics[height=.08\slideheight]{powerdot-default.ps}} + } + \begin{document} + ... + \end{document} +\end{example} +The preset value for |logohook} is |tl|. +\end{description} + +A special feature of \pf{powerdot}, which can be used to make +presentations come alive, is the use of random dots. These dots will +be placed anywhere on your slides and use the colors defined by the +palette that you use. Overlays will carry the same dots. This +feature uses |random.tex} \cite{random}. Several options are +available to control the appearance of the random dots. +\begin{description} +\item\DescribeOption{randomdots}\option{randomdots}\\ +By default, random dots are turned off. If this option is set to +|true|, random dots will be generated. |false} will turn off the +feature. When no value is submitted to the option, |true} will be +used. +\item\DescribeOptions{dmindots,dmaxdots}\option{dmindots,dmaxdots}\\ +The number of dots per slide is also random. These options set the +minimum and maximum dots per slide. Preset values are |5} and |40|, +respectively. +\item\DescribeOptions{dminsize,dmaxsize}\option{dminsize,dmaxsize}\\ +The minimum and maximum radius of the dots. Preset values are |5pt| +and |40pt|, respectively. +\item\DescribeOptions{dminwidth,dmaxwidth,dminheight,dmaxheight} +\option{dminwidth,dmaxwidth,dminheight,dmaxheight}\\ +These options determine the area on the slide that can be used for +the random dots. These values are preset such that dots go anywhere +on the slide, but you might want to adjust these such that, for +instance, dots can only appear in the text area. The preset values +are |0pt|, \Lcs{slidewidth|, |0pt|, \Lcs{slideheight|. + +Here is an example that allows dots in a smaller rectangle on the +slide. +\begin{example} + \pdsetup{ + dminwidth=.1\slidewidth,dmaxwidth=.9\slidewidth, + dminheight=.2\slideheight,dmaxheight=.8\slideheight + } +\end{example} +\item\DescribeOption{dbright}\option{dbright}\\ +This option can be used to adjust the brightness of the dots. The +number should be an integer between -100 and 100. If the number is +negative, the color will be adjusted towards black, with -100 giving +black. If the number is positive, the color will be adjusted towards +white, with 100 giving white. With a light background, you may want +to choose |bright} to be positive. With a dark background, you may +want to set it negative. The preset value is |60|, meaning a mixture +of 40\ of the original color and 60\ white. +\item\DescribeOption{dprop}\option{dprop}\\ +This option is used for passing extra parameters to the \Lcs{psdot| +command, which creates the random dots. You could, for instance, +change the style of the dots or the line width. See for more +information about \Lcs{psdot} the \pf{pstricks} documentation +\cite{PSTricksWeb,PSTricks}. \pf{powerdot} defines two extra dot +styles that can be used for the random dots. These styles are +|ocircle} (open circle) and |osquare} (open square). +\end{description} + +Here are two examples for the use of random dots. +\begin{example} + \pdsetup{ + randomdots,dminwidth=.2\slidewidth + } +\end{example} +This turns on random dots and doesn't use the left 20\ of the slide +for placing random dots. +\begin{example} + \pdsetup{ + randomdots,dprop={dotstyle=ocircle,linewidth=.5pt}, + dminsize=500pt,dmaxsize=600pt,dmindots=2,dmaxdots=5 + } +\end{example} +This example puts at most 5 big circles on slides. These circles do +not fit on the slides and you will only see parts of them in the +shape of curves. + +\subsubsection{\cs{pdsetup} example} +Here is an example of a \Lcs{pdsetup} command that one could use to set up +the presentation. +\begin{example} + \pdsetup{ + lf=My first presentation, + rf=For some conference, + trans=Wipe, + theslide=\arabic{slide}, + randomdots,dmaxdots=80 + } +\end{example} +This sets the left and right footers and will initialize the +transition effect to |Wipe|. Further, slide numbers will not include +the number of the last slide, but only the number of the current +slide. Finally, slides will be covered with at most 80 random dots. + +A small note is necessary with respect to the appearance of footers. +The slide number (controlled by the |theslide} option) will be added +to a footer. Most styles add it too the right footer. If both the +footer and the slide number are non empty, |~--~} will be inserted +in between them to separate them. Styles might modify this default +behavior however. + +\section{Making slides}\label{sec:slides} +\subsection{The title slide}\label{sec:titleslide} +\DescribeMacro{\title} +\DescribeMacro{\author} +\DescribeMacro{\and} +\DescribeMacro{\date} +\DescribeMacro{\maketitle} +The title slide is created by the \Lcs{maketitle} command. +\begin{command} + `\cs{maketitle}\oarg{options}' +\end{command} +Its use is the same as in the standard \LaTeX\ document classes. The +optional argument \meta{options} can contain any option from +section~\ref{sec:glopts}. Specifying such an option in the +|\maketitle} command will only have an effect on the title slide and +not on other slides. See an example below. +\begin{example} + \documentclass{powerdot} + \title{Title} + \author{You \and me} + \date{October 7, 2010} + \begin{document} + \maketitle + ... + \end{document} +\end{example} +The |author|, |title} and |date} declarations provide the text to be +used when making a title page. The design of the title page is +specific to the style in use. Notice the use of \Lcs{and} for +separating multiple authors. See a \LaTeX\ manual \cite{companion} +for more information on commands such as \Lcs{title} and \Lcs{author|. + +\subsection{Other slides}\label{sec:otherslides} +\DescribeEnv{slide} The centerpiece of every presentation is the +slide. In \pf{powerdot}, the content of each slide is placed in a +|slide} environment. +\begin{command} + `\cs{begin}\texttt{\{slide\}}\oarg{options}\marg{slide title}' + `\meta{body}' + `\cs{end}\texttt{\{slide\}}' +\end{command} + +In section~\ref{sec:overlays} we'll see how to give some life to the +slides, but for now, let's look at a simple example. +\begin{example} + \begin{slide}{First slide} + Hello World. + \end{slide} +\end{example} +The slide environment has one required argument, namely the slide +title. When a slide is created, the slide title is used to create an +entry in the table of contents and in the list of bookmarks. The +table of contents is a listing of the slides and section titles in +the presentation that appears on each slide. + +The table of contents is clickable (when the presentation is +compiled into PDF) and serves as a nice way to jump from location to +location within the presentation. The bookmark list is only present +when compilation is taken all the way to the PDF file format. It +also serves as a table of contents, but this list does not appear on +\textit{any} of the slides, but in a separate window in a PDF +viewer. In the example above, the entries in both table contents and +the list of bookmarks would be titled |First slide|. + +The \meta{options} for the |slide} environment can contain any +option listed in section~\ref{sec:glopts}. Additionally, the +following options can be used. +\begin{description} +\item\DescribeOption{toc}\option{toc}\\ +When specified, the value is used for the entry in the table of +contents; otherwise, the slide title is used. If |toc=} is +specified, then no entry is created. +\item\DescribeOption{bm}\option{bm}\\ +When specified, the value is used for the bookmark entry; otherwise, +the slide title is used. If |bm=} is specified, then no entry is +created. +\end{description} + +These optional arguments are especially useful when the title of a +slide is extremely long or when the title contains \LaTeX\ commands +that do not render correctly in the bookmarks.\footnote{The +bookmarking procedure uses \cs{pdfstringdef} from the \pf{hyperref} +package, and it can process accented characters such as \cs{"i}.} +When specifying entries, be sure to hide special characters `|,|' +and `|=|' between curly brackets `|{|' and `|}|'. Let's look at an +example that uses these optional arguments. +\begin{example} + \begin{slide}[toc=,bm={LaTeX, i*i=-1}]{\color{red}\LaTeX, $i^2=-1$} + My slide contents. + \end{slide} +\end{example} + +In this example, the slide title will appear as {\color{red}\LaTeX, +$i^2=-1$}. This text will not render correctly in a bookmark entry. +An attempt is made to correct this, but often, the correction does +not produce an equivalent text. This particular title would be +rendered in the bookmark list as |redLaTeX, i2=-1|. On the other +hand, the manually specified bookmark entry is rendered as: +|LaTeX, i*i=-1|. Notice, no entry is created in the table of contents, +because of the use of |toc=|. + +In addition to the |slide} environment, each individual style can +define its own environments. Many styles have a |wideslide| +environment. The idea is that one might have information that does +not fit nicely on a slide with a table of contents listed, as this +consumes some space. In such cases, it is preferable to use a slide +that does not list the table of contents. The |wideslide| +environment provides this functionality and has more space for the +actual slide content. See section~\ref{sec:styles} for information +on the various environments provided by the styles. + +\section{Overlays}\label{sec:overlays} +It is often the case that you don't want all the information on the +slide to appear at once. Rather, the information should appear one +item at a time. In \pf{powerdot}, this is achieved with overlays. +Each slide can be comprised of many overlays, and the overlays are +displayed one at a time. + +\subsection{The \cs{pause} command}\label{sec:pause} +\DescribeMacro{\pause} The easiest way to display information +sequentially is to use the \Lcs{pause} command. +\begin{command} + `\cs{pause}\oarg{number}' +\end{command} +Below is a simple example: +\begin{example} + \begin{slide}{Simple overlay} + power\pause dot + \end{slide} +\end{example} +The slide's information is displayed and continues until the +|\pause} command is encountered. No further output within the same +slide is displayed until the click of the mouse or the touch of the +keyboard. Then, the content will continue to display until all the +information is displayed or until another \Lcs{pause} command is +encountered. In this example, |power} is displayed on the first +overlay, and |powerdot} is the displayed on the second overlay. The +|\pause} command is often used within the |itemize} and |enumerate| +environments. For example, +\begin{example} + \begin{slide}{Multiple pauses} + power\pause dot \pause + \begin{itemize} + \item Let me pause\ldots \pause + \item \ldots while I talk \pause and chew bubble gum. \pause + \item Perhaps you'll be persuaded. + \item Perhaps not. + \end{itemize} + \end{slide} +\end{example} +Since \Lcs{pause} was used before the |itemize} environment, no item +will appear until the third overlay. Then, each item will be +displayed one at a time, each on their own overlay. More information +on using lists will follow in the next section. + +The optional argument of the \Lcs{pause} command specifies the number +of overlays to pause. An example usage is: +\begin{example} + \begin{slide}{Pause longer} + \begin{itemize} + \item A \pause + \item B \pause[2] + \item C + \end{itemize} + \end{slide} +\end{example} +In the example above, item |C} will appear on the fourth overlay. +The usefulness of this option will become more apparent in the next +section; so we will revisit a similar example at that time. + +\subsection{List environments}\label{sec:lists} +The list environments, |itemize} and |enumerate|, have special +treatments in \pf{powerdot}. They have an optional argument that +will be taken care off by the \pf{enumitem} package (see +\cite{enumitem}). \pf{powerdot} supplies an extra key for this +optional argument. In the examples that follow, features will be +described using the |itemize} environment but they also apply to the +|enumerate} environment. + +Here is the typical usage of the |itemize} environment: +\begin{example} + \begin{slide}{Basic itemize} + \begin{itemize} + \item A \pause + \item B \pause + \item C + \end{itemize} + \end{slide} +\end{example} +The display is simple, each item appears one at a time with each +overlay. + +\DescribeOption{type} +Suppose we wanted every item to show, but we only wanted one item to +appear `active' at once. This can be accomplished via the |type| +option for the |itemize} environment. The preset value is |0|. +\begin{example} + \begin{slide}{Type 1 itemize} + \begin{itemize}[type=1] + \item A \pause + \item B \pause + \item C + \end{itemize} + \end{slide} +\end{example} +Now, every item will be displayed in the \emph{inactive +color}\index{inactive color|usage} (which is defined by the style +that you use), and the item's font color will become the active one +on the overlay that it would normally appear on. The default +behavior is given by |type=0|. + +Lists can also be nested to create complicated structures. When a +list is nested, it inherits the setting of the |type} option from +the `parent' list, but that can be overruled by specifying the +|type} option in the optional argument of the nested list. We +present here one example, but many more can be created by nesting +lists of different types in different ways. +\begin{example} + \begin{slide}{Nested lists} + \begin{itemize} + \item A\pause + \begin{itemize}[type=1] + \item B\pause + \end{itemize} + \item C + \end{itemize} + \end{slide} +\end{example} +This displays |A} and |B} on the first overlay, but |B} is inactive. +On overlay 2, |B} will become active and on overlay 3, |C} will +become visible. + +\subsection{The \cs{item} command} +\DescribeMacro{\item} +The \Lcs{item} command has an extra \emph{optional} argument in +\pf{powerdot} which allows for creating overlays in a more flexible +way then \Lcs{pause} provides. +\begin{command} + `\cs{item}\oarg{label}\larg{overlays}' +\end{command} +This optional argument should contain an overlay specification +stating on which overlays you want the item to appear. This +specification is a comma separated list where each item can used the +notation as in table \ref{tab:item}. +\begin{table}[htb]\centering +\begin{tabular}{d} +Syntax&Meaning\\\hline +\texttt{x}&Only overlay \texttt{x}\\ +\texttt{-x}&All overlays up to and including \texttt{x}\\ +\texttt{x-}&All overlays from \texttt{x}, including \texttt{x}\\ +\texttt{x-y}&All overlays from \texttt{x} to \texttt{y}, +including \texttt{x} and \texttt{y}\\ +\end{tabular} +\caption{\cs{item} and \cs{onslide} notation}\label{tab:item} +\end{table} +The \meta{label} argument is the standard optional argument for +|\item} in \LaTeX. A \LaTeX\ manual \cite{companion} can tell you +more about this argument. + +Here is an example. +\begin{example} + \begin{slide}{Active itemize} + \begin{itemize}[type=1] + \item<1> A + \item<2> B + \item<3> C + \end{itemize} + \end{slide} +\end{example} +Here we have said that |A} should only be active on overlay 1, |B| +should only be active on overlay 2, and |C} should only be active on +overlay 3. Again, when the item is not active, it appears in the +inactive color because of |type=1|. + +If |type=0} is specified and if each item is given an overlay +option, then each item will appear only when it is active. When the +item is not active, then it will not show on the slide at all. More +examples demonstrating the syntax for \meta{overlays} will be +discussed in the next section. + +\subsection{The \cs{onslide} command}\label{sec:onslide} +\DescribeMacro{\onslide} Overlays can also be achieved using the +|\onslide} command. +\begin{command} + `\cs{onslide}\marg{overlays}\marg{text}' +\end{command} +This command takes an \meta{overlays} specification as first +argument and the \meta{text} to apply it to as second argument. The +\meta{overlays} on which the text will appear are specified as a +comma separated list with syntax as in table \ref{tab:item}. We +start off with a simple example. +\begin{example} + \begin{slide}{Simple onslide} + \onslide{1,2}{power}\onslide{2}{dot} + \end{slide} +\end{example} +We have instructed |power} to appear on overlays one and two, and +|dot} to appear only on overlay two. As you might guess, this +example has the same output as our first \Lcs{pause} example. Yet, it +is clearly the case that our syntax is more complicated. However, +this slight ``complication'' also allows for much more flexibility. + +\DescribeMacro{\onslide+}Consider the above example with the +following modifications: +\begin{example} + \begin{slide}{Simple onslide+} + \texttt{onslide }: \onslide{1}{power}\onslide{2}{dot}\\ + \texttt{onslide+}: \onslide+{1}{power}\onslide+{2}{dot} + \end{slide} +\end{example} +The \Lcs{onslide+} command displays its content in a different manner +altogether. Now, |dot} appears on every overlay, but it is in +inactive color\index{inactive color|usage} and matches the normal +font color \textit{only} on overlay two. This is comparable to the +|type=1} behavior for lists (see section~\ref{sec:lists}). + +When executing this example, we will also notice that the \Lcs{onslide| +command does hide material, but still reserves the right amount of +space for it: on overlay 2, the |dot|s appear right above each +other. The next command does not reserve space. + +\DescribeMacro{\onslide*} Instead of hiding and reserving space +(|\onslide|) or putting \meta{text} in the inactive color +(|\onslide+|) when the overlay doesn't match \meta{overlays}, this +command just eats the material altogether. To understand the +differences, consider the following example: +\begin{example} + \begin{slide}{Simple onslide*} + \texttt{onslide }: \onslide{1}{power}\onslide{2}{dot}\\ + \texttt{onslide+}: \onslide+{1}{power}\onslide+{2}{dot}\\ + \texttt{onslide*}: \onslide*{1}{power}\onslide*{2}{dot} + \end{slide} +\end{example} +The output of the first two lines, we are already familiar with. The +third line displays |power} on overlay 1 and |dot} on overlay 2, but +no space for |power} is reserved on overlay 2. Hence |dot} will +start on the cursor position that |power} started on overlay 1 and +it is not aligned below the other two |dots|. + +We finish with an example of the syntax that is possible with +|\item} and \Lcs{onslide|. Remember that these commands take a comma +separated list for the \meta{overlays} specification and that each +element can used the syntax as explained in table \ref{tab:item}. +The various variations are demonstrated in the example below. +\begin{example} + \begin{slide}{Lists} + \onslide{10}{on overlay 10 only}\par + \onslide{-5}{on every overlay before and including overlay 5}\par + \onslide{5-}{on every overlay after and including overlay 5}\par + \onslide{2-5}{on overlays 2 through 5, inclusive}\par + \onslide{-3,5-7,9-}{on every overlay except overlays 4 and 8} + \end{slide} +\end{example} + +\subsection{Relative overlays} +Sometimes it is a pain to keep track of when an item should appear +or become active. You might, for example, just care that some text +appears on the overlay \textit{after} some other item. This +functionality is provided through the use of relative overlays which +should not be used outside list environments that use \Lcs{item|. Let's +consider a simple, illuminating example. +\begin{example} + \begin{slide}{Relative overlays} + \begin{itemize} + \item A \pause + \item B \onslide{+1}{(visible 1 overlay after B)}\pause + \item C \onslide{+2-}{(appears 2 overlays after C, visible until the end)} + \pause + \item D \onslide{+1-6}{(appears 1 overlay after D, visible until overlay 6)} + \pause + \item E \pause + \item F \pause + \item G \onslide{+1-+3}{(appears 1 overlay after G for 3 overlays)}\pause + \item H \pause + \item I \pause + \item J \pause + \item K + \End{itemize} + \end{slide} +\end{example} +As you can see, we still use \Lcs{onslide|. The only change is with the +syntax of the list of overlays. Now, we can specify a `|+|' symbol +in the list. In its simplest usage, \Lcs{onslide{+1}} will make text +display one overlay after the overlay it would \textit{normally} +appear on. You can still use the syntax in table \ref{tab:item}. +These are demonstrated in the above example. Notice, +|\onslide{+1-6}} means that the text will appear one overlay after +the overlay it would normally appear on and that the text should +remain shown until overlay seven. To make text appear for a range of +relative overlays, see the final demonstration in the above example. + +\section{Presentation structure}\label{sec:structure} +\subsection{Making sections}\label{sec:section} +\DescribeMacro{\section} +This section describes the \Lcs{section} command which provides a way +to structure a presentation. +\begin{command} + `\cs{section}\oarg{options}\marg{section title}' +\end{command} +This command will produce a slide with \meta{section title} on it +and will also use this text to create sections in the table of +contents and in the bookmarks list. There are several \meta{options} +to control its output. + +\DescribeOption{tocsection} This option controls the creation of a +section in the table of contents. The preset value is |true|. +\begin{description} +\item\option{tocsection=true}\\ +This does create a section in the table of contents. This means that +all following slides, until the next section, will be nested under +this section. +\item\option{tocsection=false}\\ +This does not create a section in the table of contents and hence +the section will be listed as an ordinary slide. +\item\option{tocsection=hidden}\\ +This does create a section in the table of contents, but this is +only visible when you view a slide that is part of this section. +This could be used to append a section to the presentation which you +can discuss if there is some extra time. +\end{description} + +\DescribeOption{slide} This option controls whether the \Lcs{section| +command creates a slide. The preset value is |true|. +\begin{description} +\item\option{slide=true}\\ +A slide is created. +\item\option{slide=false}\\ +No slide will be created. If also |tocsection} is |false|, the +|\section} command doesn't do anything. If it does create a table of +contents section (|tocsection=} |true} or |hidden|), its link will +point to the first slide in the section as the section itself +doesn't have a slide. +\end{description} + +\DescribeOption{template} This option can be used to make the +section slide with another template. By default, a normal |slide| +environment is used to create the section slide, but if a style +offers other templates that could be used for this purpose (for +instance, the |wideslide} environment), then you can use this option +to select that template. See section~\ref{sec:styles} for an +overview of the available templates with every style. + +Finally, all options available to normal slides are available to +slides created by \Lcs{section} as well (see section~\ref{sec:slides}). +However, when the section does make a |tocsection|, |toc=} or |bm=| +won't remove the table of contents entry or the bookmark +respectively. + +\subsection{Making an overview}\label{sec:tableofcontents} +\DescribeMacro{\tableofcontents} +This command creates an overview of your presentation and can only +be used on a slide. +\begin{command} + `\cs{tableofcontents}\oarg{options}' +\end{command} +There are several \meta{options} to control the output of this +command. + +\DescribeOption{type} +This option controls whether certain material (depending on the +input in the |content} option below) will be hidden or displayed in +the inactive color\index{inactive color|usage}. The preset value is +|0|. Compare with the |type} option for list environments +(section~\ref{sec:lists}). + +\begin{description} +\item\option{type=0}\\ +When material is not of the requested type as specified in the +|content} option, it will be hidden. +\item\option{type=1}\\ +As |type=0|, but instead of hiding material, it will be typeset in +the inactive color. +\end{description} + +\DescribeOption{content} +The |content} option controls which elements will be included in the +overview. The preset value is |all|. The description below assumes +that |type=0} was chosen, but the alternative text for |type=1} can +easily be deduced. + +\begin{description} +\item\option{content=all}\\ +This will display a full overview of your presentation including all +sections and slides, except the slides in hidden sections (see +section~\ref{sec:section}). +\item\option{content=sections}\\ +This displays only the sections in the presentation. +\item\option{content=currentsection}\\ +This displays the current section only. +\item\option{content=future}\\ +This displays all content starting from the current slide. +\item\option{content=futuresections}\\ +This displays all sections, starting from the current section. +\end{description} + +We finish this section with a small example that will demonstrate +how you can make a presentation that contains an overall overview of +sections in the presentation, giving a general idea of the content, +and per section a detailed overview of the slides in that section. +\begin{example} + \begin{slide}[toc=,bm=]{Overview} + \tableofcontents[content=sections] + \end{slide} + \section{First section} + \begin{slide}[toc=,bm=]{Overview of the first section} + \tableofcontents[content=currentsection,type=1] + \end{slide} + \begin{slide}{Some slide} + \end{slide} + \section{Second section} + ... +\end{example} + +\section{Miscellaneous} +\subsection{Notes}\label{sec:notes} +\DescribeEnv{note} +The |note} environment can be used to make personal notes that +accompany a slide. You can control displaying notes using the +|display} option (see section~\ref{sec:classopts}). Here is an +example. +\begin{example} + \begin{slide}{Chewing gum} + ... + \end{slide} + \begin{note}{Reminder for chewing gum} + Don't forget to mention that chewing gum is sticky. + \end{note} +\end{example} + +\subsection{Empty slides}\label{sec:emptyslides} +\DescribeEnv{emptyslide} +The |emptyslide} environment creates a totally empty slide. The text +box on the slide can be used for special things like displaying +photos. This allows for creating a dia show. Example: +\begin{example} + \begin{emptyslide}{} + \centering + \vspace{\stretch{1}} + \includegraphics[height=0.8\slideheight]{me_chewing_gum.eps} + \vspace{\stretch{1}} + \end{emptyslide} +\end{example} +The \Lcs{includegraphics} command is defined by the \pf{graphicx} +package \cite{graphics}. The \Lcs{stretch} command is used to +vertically center the picture. Both commands are described in your +favorite \LaTeX\ manual, for instance \cite{companion}. Note that +you can use the lengths \Lcs{slideheight} and \Lcs{slidewidth} to scale +pictures to fit nicely on the slide. + +\subsection{Bibliography slide}\label{sec:bib} +\DescribeEnv{thebibliography} +\pf{powerdot} redefines the standard \pf{article} +|thebibliography} environment to suppress the creation of a section +heading and running headers. All other properties are maintained. +You can do either of the next two (depending whether you are +using BiB\TeX\ or not):\\ +\begin{minipage}[t]{.49\linewidth} +\begin{example} + \begin{slide}{Slide} + \cite{someone} + \end{slide} + \begin{slide}{References} + \begin{thebibliography}{1} + \bibitem{someone} Article of someone. + \end{thebibliography} + \end{slide} +\end{example} +\end{minipage}\hfill +\begin{minipage}[t]{.49\linewidth} +\begin{example} + \begin{slide}{Slide} + \cite{someone} + \end{slide} + \begin{slide}{References} + \bibliographystyle{plain} + \bibliography{YourBib} + \end{slide} +\end{example} +\end{minipage} + +In case you have a big reference list that you want to spread over +multiple slides, have a look at the packages \pf{natbib} and +\pf{bibentry} \cite{natbib}. Using both packages allows you to do: +\begin{example} + \begin{slide}{References (1)} + \bibliographystyle{plain} + \nobibliography{YourBib} + \bibentry{someone1} + \bibentry{someone2} + \end{slide} + \begin{slide}{References (2)} + \bibentry{someone3} + \end{slide} +\end{example} +Have a look at your favorite \LaTeX\ manual for more information +about citations and bibliographies. + +\subsection{Verbatim on slides}\label{sec:verbatim}\DescribeOption{verbatim} +\pf{powerdot} has three different methods of processing slides, from +which two have mainly been developed to make the inclusion of +verbatim content\footnote{And other content that needs catcode +changes when processing.} on slides easier. These methods can be +accessed by the |method} key which is available in slide +environments and the \Lcs{pdsetup} command (see +section~\ref{sec:glopts}). +\begin{description} +\item\option{method=normal}\\ +This is the preset method for processing slides. It is fast and +allows for overlays, but it does not allow for +verbatim.\footnote{Except when it has been saved in a box outside +the slide.} +\item\option{method=direct}\\ +This method is also fast, but does not allow for overlays. Overlays +will silently be disabled. However, it does allow for verbatim +content on slides. +\item\option{method=file}\\ +This method uses a temporary file to export the slide body to and +read it back in. This method does allow for verbatim content and +overlays, but could be slow when many slides use this method because +the filesystem is used. +\end{description} + +Below is an example demonstrating the use of all three different +methods of slide processing. +\begin{example} + \documentclass{powerdot} + \usepackage{listings} + \lstnewenvironment{code}{ + \lstset{frame=single,escapeinside=`', + backgroundcolor=\color{yellow!20}, + basicstyle=\footnotesize\ttfamily} + }{} + \begin{document} + \begin{slide}{Slide 1} + Normal \pause content. + \end{slide} + \begin{slide}[method=direct]{Slide 2} + Steps 1 and 2: + \begin{code} + compute a;`\pause' + compute b; + \end{code} + \end{slide} + \begin{slide}[method=file]{Slide 3} + Steps 1 and 2: + \begin{code} + compute a;`\pause' + compute b; + \end{code} + \end{slide} + \end{document} +\end{example} +The first slide shows the default behavior for normal content. It +produces two overlays. The second slide does not produce overlays, +despite the use of the \Lcs{pause} command. This command has been +disabled by choosing the |direct} method to process the verbatim +content. The third slide has the same body as the second slide, but +now does create two overlays, because the method using a temporary +file has been chosen. Notice that we used \Lcs{pause} inside the listing, +but that it can also be used outside the listing. + +\subsection{The \cs{twocolumn} command}\label{sec:twocolumn} +\DescribeMacro{\twocolumn} +The \Lcs{twocolumn} macro allows to split content into two columns. +\begin{command} + `\cs{twocolumn}\oarg{options}\marg{left}\marg{right}' +\end{command} +This typesets \meta{left} and \meta{right} in two columns. The +dimensions of those columns can be controlled by \meta{options}. +Below are the available options. +\begin{description} +\item\DescribeOption{lineheight}\option{lineheight}\\ +If |lineheight} is specified, a line of the specified height will be +created using \Lcs{psline} in between the two columns. Example: +|lineheight=6cm|. +\item\DescribeOption{lineprop}\option{lineprop}\\ +Any \pf{pstricks} declaration to specify the line properties. Example: +\begin{example} + lineprop={linestyle=dotted,linewidth=3pt} +\end{example} +\item\DescribeOptions{lfrheight,lfrprop}\option{lfrheight,lfrprop}\\ +The first creates a frame of the specified height around the left +column. The second is as |lineprop|, but for the left frame. +\item\DescribeOptions{rfrheight,rfrprop}\option{rfrheight,rfrprop}\\ +As |lfrheight} and |lfrprop|, but for the right frame. +\item\DescribeOptions{lcolwidth,rcolwidth}\option{lcolwidth,rcolwidth}\\ +Width of the left and right columns. Both are preset to: |0.47\linewidth|. +\item\DescribeOption{frsep}\option{frsep}\\ +Space between text and the frames. Preset: |1.5mm|. +\item\DescribeOption{colsep}\option{colsep}\\ +Space between the two columns. Preset: |0.06\linewidth|. +\item\DescribeOption{topsep}\option{topsep}\\ +The extra space (additional to \Lcs{baselineskip|) between text above +the columns and the text within the columns. Preset: |0cm|. +\item\DescribeOption{bottomsep}\option{bottomsep}\\ +Idem for the bottom of the columns. Preset: |0cm|. +\item\DescribeOption{indent}\option{indent}\\ +Horizontal indent left to the left column. Preset: |0cm|. +\end{description} +The dimensions described above are represented graphically in +figure \ref{fig:twocolumndim}. +\begin{figure}[htb] +\centering +\begin{pspicture}(0,.5)(13,10.5) +\psline(0,0.5)(0,10) +\rput[tl](.05,9.95){Top} +\psframe[dimen=middle](1,9)(7,2) +\psline{C-C}(8.5,9)(11,9) +\psline{C-C}(8.5,2)(8.5,9) +\psline{C-C}(8.5,2)(11,2) +\qdisk(1.7,8.3){.1cm} +\psset{linestyle=dashed} +\psline{C-C}(1.7,8.3)(6.3,8.3) +\psline{C-C}(1.7,8.3)(1.7,3) +\psline{C-C}(6.3,5)(6.3,8.3) +\psline{C-C}(11,9)(12,9) +\psline{C-C}(11,2)(12,2) +\psline{C-C}(11,7)(12,7) +\psline{C-C}(9.2,8.3)(12,8.3) +\psline{C-C}(9.2,8.3)(9.2,3) +\rput[tl](1.75,8.25){Left column text} +\rput[tl](9.25,8.25){Right column text} +\rput[tl](.05,1){Bottom} +\psset{linestyle=dotted,dotsep=2pt} +\psline(0,8.3)(1.7,8.3) +\psline(0,9.6)(1,9.6) +\psline(0,2)(1,2) +\psline(0,1.1)(1,1.1) +\psset{linestyle=solid} +\psline{<->}(.2,8.33)(.2,9.57) +\psline{<->}(4,8.33)(4,8.97) +\psline{<->}(1.73,7)(6.27,7) +\psline{<->}(1.03,6.5)(1.67,6.5) +\psline{<->}(0.03,5.5)(1.67,5.5) +\psline{<->}(6.33,7.4)(9.17,7.4) +\psline{<->}(8.53,6.5)(9.17,6.5) +\psline{<->}(6.33,6.5)(6.97,6.5) +\psline{<->}(10.7,8.33)(10.7,8.97) +\psline{<->}(7.3,8.97)(7.3,2.03) +\psline{<->}(.2,1.13)(.2,1.97) +\psline{->}(1.7,9.3)(1.7,8.45) +\psline{<-}(9.23,7)(11,7) +\cput(4,6.6){\small 1} +\cput(11.1,6.6){\small 2} +\cput(8,7){\small 3} +\cput(7.7,3){\small 4} +\cput(4.4,8.65){\small 5} +\cput(1.35,6.1){\small 5} +\cput(8.85,6.1){\small 5} +\cput(11.1,8.65){\small 5} +\cput(6.65,6.1){\small 5} +\cput(0.6,8.95){\small 6} +\cput(0.6,5.1){\small 7} +\cput(0.6,1.55){\small 8} +\cput(1.7,9.6){\small 9} +\end{pspicture} +\begin{tabular}{c p{4cm}cl} +\multicolumn{4}{c}{Meaning of the labels}\\\hline +1&|lcolwidth|&5&|frsep|\\ +2&|rcolwidth|&6&|topsep|\\ +3&|colsep|&7&|indent|\\ +4&|lfrheight|, |rfrheight|,&8&|bottomsep|\\ +&|lineheight|&9&Reference point +\end{tabular} +\caption{Two-column dimensions.}\label{fig:twocolumndim} +\end{figure} +Important to notice is that the \Lcs{twocolumn} macro uses the current +cursor position as the reference point to position the first line of +text of the left column (see also figure \ref{fig:twocolumndim}). This +means that optional frames can extend to the text on the previous +line. Use for instance |topsep=0.3cm} in that case to add extra +space between the two lines of text. The preset value of |topsep| +is based on the situation that there is no text on top of the two +columns. In that case, it is best to locate the first line of text +of the left column at the same spot as text that is not created by +|\twocolumn} on other slides. The setting |topsep=0cm} does exactly +this. However, with a combination of |topsep} and |indent} you can +change this behavior and position the first line of text of the left +column anywhere you want. + +The \Lcs{twocolumn} macro computes the height of the construction to +position text below the construction correctly. The computation is +done by taking the maximum height of |lfrheight|, |rfrheight|, +|lineheight} (if specified) and the left and right column content. +Hence when frames nor a line is requested, |bottomsep} is the +vertical space between the lowest line of text in the columns and +the text below the columns (additional to \Lcs{baselineskip|). Here is +an example. +\begin{example} + \begin{slide}{Two columns} + Here are two columns. + \twocolumn[ + lfrprop={linestyle=dotted,linewidth=3pt}, + lfrheight=4cm,rfrheight=5cm,lineheight=3cm,topsep=0.3cm + ]{left}{right} + Those were two columns. + \end{slide} +\end{example} +Note that the use of the \pf{xkeyval} commands \Lcs{savevalue} and +|\usevalue} \index{savevalue=\verb!*+\savevalue+|usage} +\index{usevalue=\verb!*+\usevalue+|usage} could be handy here, for +instance for copying the properties of the left frame to the right +frame. This avoids typing them twice and avoids making errors +resulting in different frames. See an example below. +\begin{example} + \twocolumn[ + \savevalue{lfrheight}=3cm, + \savevalue{lfrprop}={ + linestyle=dotted,framearc=.2,linewidth=3pt}, + rfrheight=\usevalue{lfrheight}, + rfrprop=\usevalue{lfrprop} + ]{left}{right} +\end{example} +See the \pf{xkeyval} documentation \cite{xkeyval} for more +information about \Lcs{savevalue} and \Lcs{usevalue|. + +\section{Available styles}\label{sec:styles} +\pf{powerdot} comes with a number of styles which are listed in the +overview below. The characteristics of each style are described +shortly and a sample of a title slide and a normal slide is provided +for each style. Styles support the |wideslide} environment, have a +table of contents on the left part of the paper in landscape +orientation and on the bottom part in portrait orientation and +support portrait orientation unless states otherwise. +\begin{description} +\item\pf{default}\\ +This style provides six different palettes. A flower in the top left +corner decorates the slides for all palettes. The default palette is +\texttt{blue} which has as main colors light blue and white. You can +see an example of that palette below. Other available palettes are +\texttt{red}, \texttt{green}, \texttt{yellow}, \texttt{brown} and +\texttt{purple}.\\ +\styleexample{default} +\item\pf{simple}\\ +This is a simple style in black and white. This style could be +useful if you want to print your slides.\\ +\styleexample{simple} +\item\pf{tycja}\\ +This style is set in shades of yellow and dark blue. The table of +contents on slides is on the right side of the paper in landscape +orientation and on the bottom part in portrait.\\ +\styleexample{tycja} +\item\pf{ikeda}\\ +This style uses dark shades of red and blue and a light text color. +It has nice patterns on the slide for decoration.\\ +\styleexample{ikeda} +\item\pf{fyma}\\ +This style was originally created by Laurent Jacques for +\pf{prosper}. Based on that style, he created a version for +\pf{HA-prosper} with extended features. With his kind permission, +this style has been converted by Shun'ichi J. Amano for +\pf{powerdot}. The style has an elegant design with a light blue and +white gradient background in the default \texttt{blue} palette. +Other available palettes are \texttt{green}, \texttt{gray}, +\texttt{brown} and \texttt{orange}. It has special templates for +sections on slides and sections on wide slides. Below is a sample of +the blue palette.\\ +\styleexample{fyma} +\item\pf{ciment}\\ +This style was originally created by Mathieu Goutelle for +\pf{prosper} and \pf{HA-prosper}. With his kind permission, this style +has been converted for \pf{powerdot}. The style has a background +that is hatched with light gray horizontal lines. Titles and table +of contents highlighting are done with dark red.\\ +\styleexample{ciment} +\item\pf{elcolors}\\ +This is a style using light shades of the elementary colors red, +blue and yellow.\\ +\styleexample{elcolors} +\item\pf{aggie}\\ +This style was created by Jack Stalnaker for \pf{HA-prosper} and he +has converted this style for \pf{powerdot}. The style uses dark red +and light brown colors.\\ +\styleexample{aggie} +\item\pf{husky}\\ +This style is created by Jack Stalnaker and has a background of +light gray sun beams combined with dark red highlights.\\ +\styleexample{husky} +\item\pf{sailor}\\ +This style is contributed by Mael Hill\'ereau and supplies five +different palettes: \texttt{Sea} (the default), \texttt{River}, +\texttt{Wine}, \texttt{Chocolate} and \texttt{Cocktail}. Below is a +sample of the palette \texttt{Sea}.\\ +\styleexample{sailor} +\item\pf{upen}\\ +This style has a nice dark blue background and text in yellow. It is +contributed by Piskala Upendran.\\ +\styleexample{upen} +\item\pf{bframe}\\ +The \pf{bframe} style has blue frames on the slide in which text is +positioned. The style is contributed by Piskala Upendran.\\ +\styleexample{bframe} +\item\pf{horatio}\\ +The \pf{horatio} style has been contributed by Michael Lundholm and +is a more conservative blue style.\\ +\styleexample{horatio} +\item\pf{paintings}\\ +This is a simple style without a table of contents on slides. It has +been contributed by Thomas Koepsell and provides 10 different +palettes. The colors used in the palettes are drawn from famous +paintings.\footnote{The style defines a color \texttt{pdcolor7} +which is not used in the style but comes from the same painting and +complements the other colors. It can be used, for example, to +highlight text against the main background color.} If you are +interested, open the style file to read which paintings have been +used. The available palettes are: \texttt{Syndics} (the default), +\texttt{Skater}, \texttt{GoldenGate}, \texttt{Lamentation}, +\texttt{HolyWood}, \texttt{Europa}, \texttt{Moitessier}, +\texttt{MayThird}, \texttt{PearlEarring} and \texttt{Charon} (all +case sensitive). Below is a sample of the \texttt{Syndics} +palette.\\ +\styleexample{paintings} +\item\pf{klope}\\ +The \pf{klope} style implements a horizontal table of contents that +only lists the sections. The style is available in the following +palettes: \texttt{Spring}, \texttt{PastelFlower}, \texttt{BlueWater} +and \texttt{BlackWhite}. The \texttt{Spring} palette is the default +and you can see a sample of that below.\\ +\styleexample{klope} +\item\pf{jefka}\\ +The \pf{jefka} style comes with four palettes: \texttt{brown} (the +default), \texttt{seagreen}, \texttt{blue} and \texttt{white}. Below +you see a sample of the \texttt{brown} palette.\\ +\styleexample{jefka} +\item\pf{pazik}\\ +This style is available in two palettes: \texttt{red} and +\texttt{brown}. Below is a sample of the default \texttt{red} +palette.\\ +\styleexample{pazik} +\end{description} + +\section{Compiling your presentation}\label{sec:compiling} +\subsection{Dependencies}\label{sec:dependencies} +In table \ref{tab:dependencies} is a list of packages that +\pf{powerdot} uses to perform specific tasks. Dependencies of +packages in this table are not listed. In the table, `required' +means that you should have a version \emph{at least} as new as +listed and `tested' means that \pf{powerdot} was tested with this +version, but that it could equally well work with an older or newer +version than the one listed in the table. So, when trying to solve +an error, first concentrate on solving version issues for the +`required' packages. To find out which version of a package you are +currently using, put \Lcs{listfiles} on the first line of your +document, run it with \LaTeX, open the |.log} file and read the file +list (see a \LaTeX\ manual for more information). If you need to +update a package, you can get it from CTAN \cite{CTAN}. +\begin{table}[htb] +\centering +\begin{tabular}{e} +Package/file & Version & Date & Required/tested\\\hline +\pf{xkeyval} \cite{xkeyval} & 2.5c & 2005/07/10 & required\\ +\texttt{pstricks.sty} \cite{PSTricksWeb,PSTricks} & 0.2l & 2004/05/12 & required\\ +\pf{xcolor} \cite{xcolor} & 1.11 & 2004/05/09 & required\\ +\pf{enumitem} \cite{enumitem} & 1.0 & 2004/07/19 & required\\ +\pf{article} class & 1.4f & 2004/02/16 & tested\\ +\pf{geometry} \cite{geometry} & 5.x & 2010/10/07 & tested\\ +\pf{hyperref} \cite{hyperref} & 6.74m & 2003/11/30 & tested\\ +\pf{graphicx} \cite{graphics} & 1.0f & 1999/02/16 & tested\\ +\pf{verbatim} & 1.5q & 2003/08/22 & tested +\end{tabular} +\caption{Dependencies}\label{tab:dependencies} +\end{table} + +\subsection{Creating and viewing output}\label{sec:creation} +To compile your presentation, run it with \LaTeX. The DVI that is +produced this way can be viewed with MiK\TeX's DVI viewer +YAP.\footnote{Unless you are using \pf{pstricks-add} which distorts +the coordinate system in DVI.} Unfortunately, xdvi and kdvi (kile) +do not support all PostScript specials and hence these will display +the presentation incorrectly. If your DVI viewer does support +this, make sure that your DVI display settings match that of the +presentation. In case you are using the |screen} paper, you should +set the DVI display setting to using the letter paper format. If +your DVI viewer allows for custom paper formats, use 8.25 inch by 11 +inch. + +Note that certain things that are produced with PostScript or PDF +techniques will not work in a DVI viewer. Examples are hiding of +material via postscript layers (as is done, for instance, by +|\pause|, see section~\ref{sec:overlays}) and hyperlinks, for +instance in the table of contents. + +If you want to produce a postscript document, run dvips over the DVI +\emph{without any particular command line options related to +orientation or paper size}. \pf{powerdot} will write information to +the DVI file that helps dvips and ps2pdf (ghostscript) to create a +proper document. If you have some reason that this does not work for +you and you want to specify the paper and orientation yourself, you +should use the |nopsheader} option that is described in +section~\ref{sec:setup}. The PostScript document could, for +instance, be used to put multiple slides on a page using the |psnup| +utility. + +To create a PDF document for your presentation, run ps2pdf over the +PS file created with dvips. Also here, you can \emph{leave out any +command line arguments related to paper size or orientation}. If +this is problematic for you somehow, use the |nopsheader} option as +before and specify the paper and orientation at each intermediate +step yourself. + +\section{Creating your own style}\label{sec:writestyle} +\subsection{General information} +Writing or customizing \pf{powerdot} styles is simple. If you want +to modify a style or build a new one, locate the style that you want +to use as basis in your \TeX\ tree (styles are named as +|powerdot-.sty|), copy that and rename it as to avoid +license\footnote{The \LaTeX\ Public Project License requires +renaming files when modifying them, see +\url{http://www.latex-project.org/lppl}.} or naming conflicts. You +might want to install the new style in your local \TeX\ tree to be +able to access it from any place on your hard drive. See your +\LaTeX\ distribution for more information. + +Once that has been taken care of, we can start creating the style. +We strongly recommend to study a style file (for example, +|powerdot-default.sty|) while reading the remainder of this section +as it provides good examples for the content of this section. + +A style has several components. We describe these components below. +\begin{description} +\item\textbf{Identification and packages}\\ +This identifies the package in the log of a presentation and loads +all required packages. The \pf{default} style contains something like: +\begin{example} + \NeedsTeXFormat{LaTeX2e}[1995/12/01] + \ProvidesPackage{powerdot-default}[2005/10/09 v1.2 default style (HA)] + \RequirePackage{pifont} +\end{example} +See for more information about these commands a \LaTeX\ manual, for +instance \cite{companion}. +\item\textbf{Palette or color definitions}\\ +This section contains the definitions of palettes or colors that you +want to use in the style. \pf{powerdot} uses \pf{xcolor} (via +\pf{pstricks}). Hence, for more information about colors, see the +\pf{xcolor} documentation. We will discuss palettes in more detail +in section~\ref{sec:defpals}. +\item\textbf{Template definitions}\\ +We will come back to this in sections~\ref{sec:deftemps} +to~\ref{sec:defbg}. +\item\textbf{Custom declarations}\\ +These can include anything that you want to be part of the style. +The \pf{default} style, for instance, includes definitions for the labels +in list environments like |itemize} and some initializations for +lists in general (done with \Lcs{pdsetup|, see +section~\ref{sec:pdsetup}). This part could also include some +customizations as described in section~\ref{sec:specialtemps}. +\item\textbf{Font initializations}\\ +This initializes font definitions (which can be done by +loading a package like \pf{helvet}). +\end{description} + +\subsection{Defining palettes}\label{sec:defpals} +We will be defining templates formally in +section~\ref{sec:deftemps}. For now, it's enough to have the general +idea that a template controls the design of a slide. Palettes are +sets of colors that color a template or design. A palette does not +change the overall design of a template. + +\DescribeMacro{\pddefinepalettes} +The following command can be used to define palettes for your style. +\begin{command} + `\cs{pddefinepalettes}\marg{name1}\marg{cmds1}\dots' +\end{command} +This macro takes \emph{any} even number of mandatory arguments with +a minimum of two. For every \meta{name}, a set of \meta{commands} +can be given which define the palette with name \meta{name}. These +commands can define colors with names |pdcolor1|, |pdcolor2|, +etcetera. These colors can be used when designing the template (see +section~\ref{sec:deftemps}). |pdcolor1} will always be used as text +color. + +The user can access these palettes via the |palette} key for the +|\pdsetup} command (see section~\ref{sec:pdsetup}). If the user does +not specify a palette, the first palette defined when compiling the +presentation, will be used. Here is an example for defining 2 +palettes. +\begin{example} + \pddefinepalettes{reds}{ + \definecolor{pdcolor1}{rgb}{1,0,0} + \definecolor{pdcolor2}{rgb}{1,.1,0} + \definecolor{pdcolor3}{rgb}{1,.2,0} + }{greens}{ + \definecolor{pdcolor1}{rgb}{0,1,0} + \definecolor{pdcolor2}{rgb}{.1,1,0} + \definecolor{pdcolor3}{rgb}{.2,1,0} + } +\end{example} +In this example, the |reds} palette is the default one. For more +information about \Lcs{definecolor|, see the documentation of the +\pf{xcolor} package \cite{xcolor}. + +Notice that it is not necessary to use the names |pdcolor2|, +|pdcolor3} etcetera as color names. But if these colors are defined, +\pf{powerdot} will use them, for instance, in the random dots +feature (see section~\ref{sec:glopts}). The flexibility adds extra +possibilities in setting up templates and palettes. See for an +example of its use, the \pf{klope} style. + +\subsection{Defining templates}\label{sec:deftemps} +We start off with a definition of what a template is. A template is +a collection of settings for slide components together with custom +definitions, which controls the visual appearance of a slide. A +style can contain multiple templates. + +\begin{command} + `\cs{pddefinetemplate}\oarg{basis}\marg{name}\marg{options}\marg{commands}' +\end{command} +\DescribeMacro{\pddefinetemplate} +This defines the environment \meta{name} to produce a slide with +characteristics determined by \meta{basis}, \meta{options} and +\meta{commands}. We will discuss these elements in more detail +in the coming sections. + +If you want to create several templates that differ only slightly +from each other, define a \meta{basis} template, and then use it to +define other templates. All \meta{options} and \meta{commands} for +the new template \meta{name} will be appended to the existing list +of \meta{options} and \meta{commands} from the \meta{basis} +template. + +Make sure you choose a \emph{proper} name for the template, and +avoid redefining existing templates or environments. \pf{powerdot} +defines |blackslide|, |note} and |emptyslide} internally, so you +shouldn't use these names unless you know what you're doing. +Furthermore, each style needs to define at least the templates +|slide} and |titleslide|. The |titleslide} environment will be used +to create the title slide and |slide} will (by default) also be used +to create section slides. Titles and sections are a bit special in +the way they use the \meta{options} and will be discussed in more +detail in section~\ref{sec:specialtemps}. + +\subsection{Controlling setup} +\DescribeOption{ifsetup} +The \meta{options} (keys) are described in the following sections. +You can control how these options apply to the various setups by +using the |ifsetup} key. Any key appearing before the first +|ifsetup} declaration in \meta{options} will apply to every possible +setup. Once the |ifsetup} key is used, then all subsequent key +declarations will apply \textit{only} to the setups declared in the +|ifsetup} key. The |ifsetup} key can be used multiple times. + +By possible setups, we mean the allowed values of the |mode|, +|paper|, |orient|, and |display} keys that are described in +section~\ref{sec:classopts}. If a value (or values!) for any of +these four keys is not specified in a |ifsetup} declaration, then +all subsequent key declarations will apply to any layout of that +type. Consider the following as an example. +\begin{example}[numbers=left,numberstyle=\tiny\ttfamily, + escapeinside=`',numbersep=1em,xleftmargin=1em] + ... + textpos={.2\slidewidth,.3\slideheight}, + ifsetup={portrait,screen}, + textpos={.3\slidewidth,.2\slideheight} + ... + ifsetup=landscape, + ... + ifsetup, + ... +\end{example} +Assuming there was no |ifsetup} declaration before the first +|textpos} declaration, this first |textpos} will apply to every +possible setup. However, for the screen format in portrait +orientation, the next |textpos} declaration will be used. In fact, +all declarations that appear until we switch to the next |ifsetup| +(which specifies all paper sorts and only landscape orientation) +will be used in the portrait screen layout. All keys after the next +|ifsetup} declaration will be used in landscape orientation, +\emph{with any paper, mode and display}. If, after declaring some +specializations, you want to switch back to settings that apply to +all possible setups, set |ifsetup} to empty as is done in the +example. All subsequent declarations will then again be applied +under any setup. + +The following command is a stand-alone implementation of the +mechanism described above. It allows you to control the setup +outside the \meta{options} argument of the \Lcs{pddefinetemplate| +command. +\begin{command} + `\cs{pdifsetup}\marg{desired}\marg{true}\marg{false}' +\end{command} +\DescribeMacro{\pdifsetup} +This macro executes \meta{true} when the setup that the user chose +matches with the \meta{desired} setup, \meta{false} in all other cases. +For instance, if the user has chosen landscape, then +\begin{example} + \pdifsetup{landscape}{yes}{no} +\end{example} +will typeset |yes|. If the user would have chosen portrait instead, +then |no} would have been typeset. + +This macro can be used to check setup requests from the user and, +for instance, generate an error if a certain setup is not supported +by your style. \pf{powerdot} provides one predefined error message +which can be used in one of the first lines of your style. +\begin{command} + `\cs{pd@noportrait}' +\end{command} +\DescribeMacro{\pd@noportrait} +This macro generates an error when the user requests portrait +orientation. Notice that the handout mode only works in portrait +orientation. This macro takes that into account and doesn't generate +an error in the case that the user requested a handout. + +\subsection{Main components}\label{sec:maincomps} +The \meta{options} control several key components of a slide. Every +component has several properties. A key that can be used in the +\meta{options} argument is the name of the component postfixed by +its property that you want to control. + +The components |title|, |text|, |toc|, |stoc} and |ntoc} have +properties |hook|, |pos|, |width} and |font|. Additionally, the +|text} component has a |height} property. The components |lf|, |cf} and +|rf} have properties |hook|, |pos|, |temp} and |font|. Hence, +examples of valid keys are |titlefont|, |tocpos} and |lftemp|. All +components and properties will be discussed below. + +Here is an overview of the components that can be controlled from +the \meta{options} argument in \Lcs{pddefinetemplate|. +\begin{description} +\item\DescribeOption{title-}\option{title-}\\ +The slide title. +\item\DescribeOption{text-}\option{text-}\\ +The main text box on the slide. +\item\DescribeOption{toc-}\option{toc-}\\ +The (full) table of contents on a slide containing sections and +slides. +\item\DescribeOption{stoc-}\option{stoc-}\\ +This is a table of contents containing only the sections. See also +|ntoc} below. +\item\DescribeOption{ntoc-}\option{ntoc-}\\ +This is a table of contents containing only the entries for the +active section. Together with |stoc|, this can be used to create a +split table of contents. In a particular template, one would usually +have a |toc|, a combination of |stoc} and |ntoc} or no table of +contents at all. +\item\DescribeOptions{lf-,cf-,rf-}\option{lf-,cf-,rf-}\\ +The left, center and right footers. +\end{description} + +Notice that all positioning of components described above will be +done with \Lcs{rput} from \pf{pstricks} \cite{PSTricksWeb,PSTricks} +internally. See the \pf{pstricks} documentation for more information +about this command. It should also be noted that all components +(except |lf|, |cf} and |rf|) put their content in a |minipage| +environment. + +Now we list all properties of the components listed above and +describe what they mean. Remember that keys are formed by combining +a component name and a property. + +\begin{description} +\item\DescribeOption{-hook}\option{-hook}\\ +This option defines the \Lcs{rput} hook that will be used when +positioning the item. This can be |tl|, |t|, |tr|, |r|, |Br|, |br|, +|b|, |bl|, |Bl|, |l|, |B} and |c|. See the \pf{pstricks} +documentation for more information. +\item\DescribeOption{-pos}\option{-pos}\\ +This defines the position of the |hook} on the paper. The lower left +corner of the paper is given by the point |{0,0}} and the upper right +corner by the point |{\slidewidth,\slideheight}|. So if you want to +position the main text box at 20\ from the left edge and 30\ from +the top edge of the paper, you have to do the following. +\begin{example} + textpos={.2\slidewidth,.7\slideheight} +\end{example} +If the position of any component has not been specified, this +component will not be placed on the slide. This gives an opportunity +to design slides without footers or table of contents, for instance. +\item\DescribeOption{-width}\option{-width}\\ +The width of the component. All component positioned by +\pf{powerdot} will be put in a surrounding |minipage} environment. +The |width} property determines the width of the |minipage|. Example: +\begin{example} + textwidth=.7\slidewidth +\end{example} +This property does not exist for the |lf|, |cf} and |rf} components. +\item\DescribeOption{-height}\option{-height}\\ +This option is only available for the |text} component. In other +words, for this property, there is only one key, namely +|textheight|. This can be used to specify the height of the +|minipage} used for the main text. This does not imply that users +are restricted to this length or that \pf{powerdot} does automatic +slide breaking. This height is only used for vertical alignments of +material, for instance by footnotes. The preset value is +|\slideheight|. +\item\DescribeOption{-font}\option{-font}\\ +This will be inserted just before the text that is about to be +typeset. This can be used to declare deviations from the main text +font and color. It can be a font declaration, like +|\large\bfseries|, but can also contain other things like +|\color{red}} or \Lcs{raggedright|. +\item\DescribeOption{-temp}\option{-temp}\\ +This property is only available for the footers (|lf|, |cf} and |rf|) and +can be used to change the template of the footers. This means that +you can, for instance, add content to the footer, besides the +content specified by the user. The default declaration by +\pf{powerdot} is the following. +\begin{example} + rftemp=\pd@@rf\ifx\pd@@rf\@empty + \else\ifx\theslide\@empty\else\ -- \fi\fi\theslide +\end{example} +Here \Lcs{pd@@rf} will contain the content of the right footer defined +by the user via the \Lcs{pdsetup} command. Similarly, \Lcs{pd@@lf| +contains the content of the left footer. The above declaration +checks whether the footer and \Lcs{theslide} are both non-empty and if +so, it inserts } -- } to separate both. +\item\DescribeOption{-orient}\option{-orient}\\ +This property is only available for the |toc|, |stoc} and |ntoc| +components. This property can be |h} or |v} and determines the +orientation of the table of contents. The preset is |v|. See +also section~\ref{sec:slidetoc} for more information about the +construction of the table of contents. +\end{description} + +\subsection{Slide toc}\label{sec:slidetoc} +The small table of contents that is placed on slides can be +controlled by four macros and several options. + +\DescribeMacro{\pd@tocslide} +\DescribeMacro{\pd@tocsection} +These macros take one argument. When building the table of contents, +\pf{powerdot} first passes the content through \Lcs{pd@tocslide} or +|\pd@tocsection|, depending on the type of entry that it is building +at that moment. You could, for instance, do +\begin{example} + \def\pd@tocslide#1{$\bullet$\ #1} + \def\pd@tocsection#1{#1} +\end{example} +which will prefix all normal entries (not the sections) with a +bullet. By default, these two macros are defined to just pass on +their argument. + +\DescribeMacro{\pd@tocdisplay} +\DescribeMacro{\pd@tochighlight} +These two macros also take one argument. After processing an entry +with the command \Lcs{pd@tocslide} or \Lcs{pd@tocsection|, \pf{powerdot} +continues building the entry by passing it through \Lcs{pd@tocdisplay|, +when the entry needs to be displayed only, or \Lcs{pd@tochighlight|, +when the entry needs to be highlighted. These macros are a little +more involved and take care of putting the content in the proper +font and color in a |minipage|. Further, \Lcs{pd@tochighlight} also +puts a box around the item. + +Notice, that by default, both the separate table of contents entries +as well as the table of contents as a whole are typeset in +|minipage} environments by these macros, in case the table of +contents is vertical. The |-width} properties then determines the +width of the table of contents and, together with |tocsecindent} and +|tocslideindent} (see below) the width of the individual entries. If +it is horizontal, only the separate entries will be in |minipage|s +and the table of contents itself not and the |-width} properties +determine only the width of the individual entries (together with +|tocsecindent} and |tocslideindent|). + +Several aspects of the process of generating the table of contents +can be controlled via the keys that are available in the +|\pddefinetemplate} command that will be described below. If these +keys do not provide enough handles to do what you want, you might +need to have a look at the two macros in the source and decide to +rewrite them in your style as to fit your needs. An example can be +found in the \pf{fyma} style. + +\begin{description} +\item\DescribeOption{tocfrsep}\option{tocfrsep}\\ +This length is the distance between the box around the content +created by the |minipage} and the highlight frame box created by +|\pd@tochighlight|. Preset: |0.5mm|. +\item\DescribeOption{tocsecsep}\option{tocsecsep}\\ +The distance inserted before a section (unless it is the +first element in the table of contents). Preset: |2ex|. +Notice that if the orientation of the table of contents is set to +vertical, this length creates a vertical skip, otherwise, it creates +a horizontal skip. +\item\DescribeOption{tocslidesep}\option{tocslidesep}\\ +The distance inserted before other entries (unless it is the +first element in the table of contents). Preset: |0ex|. Like +|tocsecsep|, the effect of this length depends on the orientation of +the table of contents. +\item\DescribeOption{tocsecindent}\option{tocsecindent}\\ +The horizontal space left to a section entry. Preset: |0pt|. +\item\DescribeOption{tocslideindent}\option{tocslideindent}\\ +The horizontal space left to a slide entry. The horizontal skip will +not be inserted left to slide entries that appear before the first +section. Preset: |0pt|. +\item\DescribeOption{tocsecm}\option{tocsecm}\\ +This is inserted just before typesetting a section. This can be used +to mark a section, for instance with a line as in the \pf{default} +style. Preset: empty. +\item\DescribeOption{toctcolor}\option{toctcolor}\\ +This is the text color used for non-highlighted elements in the +table of contents. Preset: |black|. +\item\DescribeOption{tochltcolor}\option{tochltcolor}\\ +This is the text color used for highlighted elements in the table of +contents. Preset: |white|. +\item\DescribeOption{tochlcolor}\option{tochlcolor}\\ +This is the color used for the frame behind highlighted elements. +Preset: |black|. +\end{description} + +\subsection{Miscellaneous options}\label{sec:miscoptions} +There are some options that fall outside of the scope of the previous +sections. These will be discussed here. + +\begin{description} +\item\DescribeOption{iacolor}\option{iacolor}\\ +The |iacolor} option can be used to specify the color that is used +for inactive things, produced for instance by \Lcs{onslide|, \Lcs{pause| +(see section~\ref{sec:overlays}) and \Lcs{tableofcontents} (see +section~\ref{sec:tableofcontents}). As \pf{xcolor} is used by +\pf{powerdot}, one can use special notation here, like +\begin{example} + iacolor=black!20 +\end{example} +The preset value for this key is |lightgray|. +\end{description} + +The following options control the digital clock (see +section~\ref{sec:classopts}). The clock is a form text field with +dynamic content, driven by a javascript via \pf{hyperref} text +fields. Some options for the clock work similarly as for, for +instance, the title component, but there are also special options. +\begin{description} +\item\DescribeOptions{clockhook,clockpos}\option{clockhook,clockpos}\\ +These work in the same way as the |-hook} and |-pos} properties +discussed in section~\ref{sec:maincomps}. The preset value of +|clockhook} is |tr|. +\item\DescribeOptions{clockwidth,clockheight}\option{clockwidth,clockheight}\\ +These control the width and height of the text field containing the +clock. Preset values come from \pf{hyperref} and are |3cm} and +|\baselineskip|, respectively. +\item\DescribeOption{clockcharsize}\option{clockcharsize}\\ +The size of characters of the clock. Preset: |14pt|. +\item\DescribeOption{clockalign}\option{clockalign}\\ +The alignment of the clock in the text field. |0} is left-aligned, +|1} is centered and |2} is right aligned. Preset is |2|. +\item\DescribeOption{clockcolor}\option{clockcolor}\\ +This determines the text color of the clock. The value should be a +named color. The preset value is |black|. +\end{description} + +\subsection{Template presets} +Below, we have copied the preset setting for the keys described +above. These will be used if you didn't supply other input for these +keys in a particular template. If the preset value meets your +needs, you don't have to specify it again in your style. +\begin{example} + titlehook=Bl,titlepos=,titlewidth=\slidewidth, + titlefont=\raggedright,texthook=tl,textpos=, + textwidth=\slidewidth,textfont=\raggedright, + textheight=\slideheight, + tochook=tl,tocpos=,tocwidth=.2\slidewidth, + tocfont=\tiny\raggedright, + stochook=tl,stocpos=,stocwidth=.2\slidewidth, + stocfont=\tiny\raggedright, + ntochook=tl,ntocpos=,ntocwidth=.2\slidewidth, + ntocfont=\tiny\raggedright, + tocorient=v,stocorient=v,ntocorient=v, + tocfrsep=.5mm,tocsecsep=2ex,tocslidesep=0ex, + tocsecm=,toctcolor=black,tochlcolor=black,tochltcolor=white, + tocsecindent=0pt,tocslideindent=0pt, + lfhook=Bl,lfpos=,lffont=\scriptsize,lftemp=\pd@@lf, + cfhook=B,cfpos=,cffont=\scriptsize,cftemp=\pd@@cf, + rfhook=Br,rfpos=,rffont=\scriptsize,rftemp=\pd@@rf\ifx\pd@@rf + \@empty\else\ifx\theslide\@empty\else\ -- \fi\fi\theslide, + iacolor=lightgray, + clockhook=tr,clockpos=,clockwidth=3cm,clockheight=\baselineskip, + clockcharsize=14pt,clockalign=2,clockcolor=black +\end{example} + +\subsection{The background}\label{sec:defbg} +This leaves only one argument of the \Lcs{pddefinetemplate} macro +undiscussed. This is the \meta{commands} argument. This argument can +contain any code that you want to execute \textit{after} setting the +options and \textit{before} building the slide components like the +slide title, main text, and footers. This argument is designed to +contain declarations that will build the background of a template +using, for instance, \pf{pstricks}, but it can also hold other +commands you might need for building your template. + +Important to notice is that these commands may not create \TeX\ +material as that might destroy the construction of the slide. So, if +you want to place the word `Hello' in the bottom left corner of the +slide, don't type `Hello', but make its width, height and depth +equal to zero, for instance by using \pf{pstricks}' \Lcs{rput|. +\begin{example} + \rput[bl](0,0){Hello} +\end{example} + +\subsection{Title slide, titles and sections}\label{sec:specialtemps} +As mentioned before, the style that you write needs to define at +least the templates |slide} and |titleslide|. The latter treats some +of the keys in a special way. Besides, a section slide is also done +in a special way. + +The title slide (made with \Lcs{maketitle|) puts the title with +author(s) and date in the main text box. This means that you have to +supply a position for the main text box (|textpos|). It will use the +main text font for the text (together with declarations in the +|textfont} key) for the author(s) and the date. But it will use the +declarations in |titlefont} for the title of the presentation. This +is done so that title and author(s) form a coherent block and to +make sure that long titles can push down the author(s) instead of +overwriting it. + +\DescribeMacro{\pd@slidetitle} +The \Lcs{pd@slidetitle} macro is used to typeset the slide title on +slides. This macro is comparable to for instance \Lcs{pd@tocslide|. The +macro takes one argument which is the slide title in the right font +and formatting. By default, this macro just passes on the content +for typesetting, but you could redefine this macro so do something +with its input prior to typesetting it. An example is in the +\pf{fyma} style which underlines the title after putting it in a +|minipage} to support multi line titles. + +\DescribeMacros{\pd@title,\pd@sectiontitle} +These macros are similar to \Lcs{pd@slidetitle} and typeset the title +on the title slide and the title on section slides respectively. By +default, these also pass there argument (which is the presentation +title or section title), but these can be redefined to do something +with the input prior to typesetting it, just as \Lcs{pd@slidetitle|. + +\DescribeOptions{sectemp,widesectemp} +The \Lcs{section} command uses (by default) the |slide} environment and +puts the section title in the title box with font |titlefont|. If +you want to change the default use of the |slide} environment for +sections to, for instance, the |sectionslide} environment or any +other especially designed section template, change the section +template preset in your style, using +\begin{example} + \setkeys[pd]{section}{sectemp=sectionslide} +\end{example} +This means that if the user asks for |template=slide} in the +|\section} command, the |sectionslide} environment will be used +silently. To avoid surprises, |sectionslide} should preferably be +based on the |slide} environment. + +A similar option is available in case the user asks for +|template=wideslide|. One could for instance do the following. +\begin{example} + \setkeys[pd]{section}{widesectemp=sectionwideslide} +\end{example} +Whenever the user requests a |wideslide} to be used for a +|\section|, instead, the |sectionwideslide} environment will be +used. Other input to the |template} key by the user does not get a +special treatment. + +Notice that these keys are available in the |section} family of keys +and that you cannot use them in the \Lcs{pddefinetemplate} command. + +\subsection{Testing the style}\label{sec:styletest} +\pf{powerdot} has a test file that should test most of the style. +This test file can be produced by running \LaTeX\ over +|powerdot.dtx|. This generates |powerdot-styletest.tex} which will +help you with the testing job. Feel free to contact us when you +would like to contribute your style to \pf{powerdot}. See also +section~\ref{sec:questions}. + +\section{Using \LyX\ for presentations}\label{sec:lyx} +\LyX\ \cite{LyXWeb} is a WYSIWYM (What You See Is What You Mean) +document processor based on \LaTeX. It supports standard \LaTeX\ +classes but needs special files, called layout files, in order to +support non-standard classes such as \pf{powerdot}. + +To start using \LyX\ for \pf{powerdot} presentations, copy the +layout file |powerdot.layout} to the \LyX\ layout directory. You can +find this file in the doc tree of your \LaTeX\ installation: +\url{texmf/doc/latex/powerdot}. If you can't find it there, download +it from \url{CTAN:/macros/latex/contrib/powerdot}. Once that is +done, reconfigure \LyX\ (\texttt{Edit\LyXarrow Reconfigure} and +restart \LyX\ afterwards). Now you can use the \pf{powerdot} +document class as any other supported class. Go to +\texttt{Layout\LyXarrow Document} and select \texttt{powerdot +presentation} as document class. For more information, see the \LyX\ +documentation, which is accessible from the |Help} menu. + +\subsection{How to use the layout} +The \pf{powerdot} \LyX\ layout provides some environments\footnote{Don't +confuse these with \LaTeX\ environments.} which can be used in \LyX. +Some of these environments (for instance |Title} or |Itemize|) are +natural to use since they exist also in the standard document +classes such as \pf{article}. For more information on these standard +environments, see the \LyX\ documentation. + +This section will explain how to use the \pf{powerdot} specific +environments |Slide|, |WideSlide|, |EmptySlide} and |Note|. These +environments correspond to the \pf{powerdot} environments |slide|, +|emptyslide|, |wideslide} and |note|. + +We start with a simple example. The following \LaTeX\ code +\begin{example} + \begin{slide}{Slide title} + Slide content. + \end{slide} +\end{example} +can be obtained using the following \LyX\ environments. The right +column represents the text typed into the \LyX\ window and the left +column represents the environment applied to this text). +\begin{example} + Slide Slide title + Standard Slide content. + EndSlide +\end{example} +Some remarks concerning this example. +\begin{itemize}[leftmargin=0pt,itemsep=0pt,parsep=0pt] +\item You can use the environment menu (under the menu bar, top-left +corner) to change the environment applied to text. +\item The slide title should be typed on the line of the |Slide| +environment. +\item |EndSlide} finishes the slide and its line is left blank. +\end{itemize} + +In the \LyX\ window, the |Slide} environment (that is, the slide +title) is displayed in magenta, the |WideSlide} style in green, the +|EmptySlide} style in cyan and the |Note} style in red and hence +these are easily identifiable. + +Here is another example. +\begin{example} + \begin{slide}{First slide title} + The first slide. + \end{slide} + \begin{note}{First note title} + The first note, concerning slide 1. + \end{note} + \begin{slide}{Second slide title} + The second slide. + \end{slide} +\end{example} +This can be done in \LyX\ in the following way. +\begin{example} + Slide First slide title + Standard The first slide. + Note First note title + Standard The first note, concerning slide 1. + Slide Second slide title + Standard The second slide. + EndSlide +\end{example} +This example demonstrates that it is often sufficient to insert the +|EndSlide} style after the last slide or note only. Only when you +want certain material not to be part of a slide, you need to finish +the preceding slide manually using the |EndSlide} style. Example: +\begin{example} + Slide First slide title + Standard The first slide. + EndSlide + [ERT box with some material] + Slide Second slide title + ... +\end{example} + +Options can be passed to slide environments by using +\texttt{Insert\LyXarrow Short title} in front of the slide title. +The following example uses the |direct} method (see +section~\ref{sec:verbatim}) in the short title argument (delimited by +square brackets) to allow for a |lstlisting} environment (defined by +the \pf{listings} package) within the slide content. +\begin{example} + Slide [method=direct]Example of LaTeX source code + Standard Here's the \HelloWorld command: + [ERT box: + \lstset{language=[LaTeX]TeX} + \begin{lstlisting} + \newcommand{\HelloWorld}{Hello World!} + \end{lstlisting} + ] + EndSlide +\end{example} +Note that you are not obliged to use a |verbatim} environment to +type the \Lcs{HelloWord} text into the \LyX\ window because \LyX\ +directly supports standard verbatim.\footnote{\LyX\ translates +special characters into their corresponding \LaTeX\ command. For +instance, the backslash character is translated into +\cs{textbackslash{}}. Resulting, the font is not the same as in true +verbatim and you might want to change that via the +\texttt{Layout\LyXarrow Character} dialog.} Consequently, the use of +the slide processing methods |direct} and |file} is not necessary +when you need standard verbatim, but it is necessary when doing more +advanced things, like in the example above. + +\subsection{Support of syntax} +This section lists options, commands and environments that are +supported through the \LyX\ interface directly, without using an ERT +box (\TeX-mode). + +All class options (see section~\ref{sec:classopts}) are supported +via the \texttt{Layout\LyXarrow Document} dialog (|Layout} pane). +Options for the \Lcs{pdsetup} command (see section~\ref{sec:setup}) +should be specified in the |Preamble} pane of the +\texttt{Layout\LyXarrow Document} dialog. + +Table \ref{tab:lyxcommands} lists the \pf{powerdot} commands that +are supported in \LyX. +\begin{table}[htb] +\centering +\begin{tabular}{f} +Command & Method in \LyX\\\hline +\cs{title} & Use \texttt{Title} environment.\\ +\cs{author} & Use \texttt{Author} environment.\\ +\cs{date} & Use \texttt{Date} environment.\\ +\cs{maketitle} & Managed directly by \LyX.\\ +\cs{section} & Use the \texttt{Section} environment. Options to this +command (see section~\ref{sec:section}) can be specified using +\texttt{Insert\LyXarrow Short title} in front of the section title.\\ +\cs{tableofcontents} & Use \texttt{Insert\LyXarrow Lists \& +TOC\LyXarrow Table of contents}. You will need an ERT box if you +want to use the optional argument, see below. +\end{tabular} +\caption{Supported \pf{powerdot} commands in \LyX}\label{tab:lyxcommands} +\end{table} +Table \ref{tab:lyxenvs} lists the \pf{powerdot} environments that, +besides the earlier discussed |slide|, |wideslide|, |note} and +|emptyslide} environments, are supported in \LyX. +\begin{table}[htb] +\centering +\begin{tabular}{f} +Environment & Method in \LyX\\\hline +\texttt{itemize} & Use \texttt{Itemize} and \texttt{ItemizeType1} +environments. The latter will create a list with |type=1} (see +section~\ref{sec:lists}).\\ +\texttt{enumerate} & Use \texttt{Enumerate} and +\texttt{EnumerateType1} environments.\\ +\texttt{thebibliography} & Use \texttt{Bibliography} environment. +\end{tabular} +\caption{Supported \pf{powerdot} environments in \LyX}\label{tab:lyxenvs} +\end{table} +Table \ref{tab:lyxERT} lists commands that can only be done by using +an ERT box (via \texttt{Insert\LyXarrow TeX}). +\begin{table}[ht] +\centering +\begin{tabular}{f} +Command & Method in \LyX\\\hline +\cs{and} & Within \texttt{Author} environment.\\ +\cs{pause} & \\ +\cs{item} & An ERT box is only required for the optional argument, +not mandatory for overlays specifications.\\ +\cs{onslide} & And the versions \cs{onslide+} and \cs{onslide*}.\\ +\cs{twocolumn} & \\ +\cs{tableofcontents} & Only when using the optional argument. +\end{tabular} +\caption{\pf{powerdot} commands needing an ERT box in \LyX}\label{tab:lyxERT} +\end{table} +Note that you may use the clipboard in order to repeat often used +commands like \Lcs{pause|. Finally, table \ref{tab:lyxadd} lists +additional commands and environments that are supported by the layout. +\begin{table}[htb] +\centering +\begin{tabular}{f} +Env./Command & Method in \LyX\\\hline +\texttt{quote} & Use \texttt{Quote} environment.\\ +\texttt{quotation} & Use \texttt{Quotation} environment.\\ +\texttt{verse} & Use \texttt{Verse} environment.\\ +\cs{caption} & Use \texttt{Caption} environment within standard +float environments. +\end{tabular} +\caption{Additional environments for \LyX}\label{tab:lyxadd} +\end{table} + +\subsection{Compiling with \LyX} +First of all, make sure that you have also read +section~\ref{sec:compiling}. Then, in order to get a proper +PostScript or PDF file, you have to set your \LyX\ document +properties depending on which paper and orientation you want. When +your \LyX\ document is open, go to the \texttt{Layout\LyXarrow +Document} dialog. In the \texttt{Layout} pane, put the |nopsheader|, +|orient} and |paper} keys as class options (see +section~\ref{sec:classopts} for a description). Then, go to the +|Paper} pane and select corresponding paper size and orientation +(you may choose |letter} paper in the case you set |paper=screen} in +the class options). Finally, go to the |View} (or +\texttt{File\LyXarrow Export}) menu and select your output +(PostScript or PDF). + +\subsection{Extending the layout} +If you have created a custom style (see section~\ref{sec:writestyle}) +which defines custom templates, you may want to extend the layout +file\footnote{The LPPL dictates to rename a file if you modify it as +to avoid confusion.} so that these templates are also supported in +\LyX. The explanation below assumes that you have defined a template +called |sunnyslide|. + +To support this new template in \LyX, you have to use the following +command. +\begin{command} + `\cs{pddefinelyxtemplate}\meta{cs}\marg{template}' +\end{command} +\DescribeMacro{\pddefinelyxtemplate} +This will define the control sequence \meta{cs} such that it will +create a slide with template \meta{template} (which has been defined +using \Lcs{pddefinetemplate|. This new control sequence can be used in +the layout file as follows. +\begin{example} + # SunnySlide environment definition + Style SunnySlide + CopyStyle Slide + LatexName lyxend\lyxsunnyslide + Font + Color Yellow + EndFont + Preamble + \pddefinelyxtemplate\lyxsunnyslide{sunnyslide} + EndPreamble + End +\end{example} +Note that you must begin the |LatexName} field with |lyxend|. The +definition of the \LyX\ template has been inserted in between +|Preamble} and |EndPreamble} which assures that the new \LyX\ +environment will work in every presentation. After modifying the +layout file, don't forget to restart \LyX. See for more information +about creating \LyX\ environments, the documentation of \LyX\ in the +|Help} menu. + +\section{Questions}\label{sec:questions} +\subsection{Frequently Asked Questions}\label{sec:FAQ} +This section is devoted to Frequently Asked Questions. Please read +it carefully; your problem might be solved by this section. +\begin{itemize}[leftmargin=0pt] +\question +Does \pf{powerdot} have example files? Where can I find them? +\answer +\pf{powerdot} comes with several examples that should be in the doc +tree of your \LaTeX\ installation. More precisely: +\url{texmf/doc/latex/powerdot}. If you can't find them there, +download them from \url{CTAN:/macros/latex/contrib/powerdot} +\cite{CTAN}. +\question I'm getting errors or unexpected output when compiling +the simplest example! +\answer Did you read section~\ref{sec:compiling}? +\question I made a typo in the slide code, ran the file, got an +error, corrected the typo and reran, but now get an error that +doesn't go away. +\answer Remove the |.bm} and |.toc} files and try again. +\question \Lcs{pause} does not work in the |align|\footnote{There are +several environments doing similar things as \texttt{align}. Another +example is the \texttt{split} environment, but more (often from the +\pf{amsmath} package) can cause similar trouble for \cs{pause}.} +environment. +\answer |align} does several tricky things, which make it impossible +to use \Lcs{pause|. Use \Lcs{onslide} instead. See +section~\ref{sec:onslide}. +\question My \pf{pstricks} nodes appear on all overlays. Also: color +doesn't seem to work with \Lcs{onslide|. +\answer Some PostScript tricks like nodes and color do not work with +|\onslide|. Use \Lcs{onslide*} instead. See an example below. +\begin{example} + \documentclass{powerdot} + \usepackage{pst-node} + \begin{document} + \begin{slide}{Color} + \onslide*{2}{\cnode(0,-5pt){2pt}{A}} + This is {\onslide*{2-}{\color{red}} red} text. + \onslide*{2}{\cnode(0,-5pt){2pt}{B}} + \onslide{2}{\ncline{A}{B}} + \end{slide} + \end{document} +\end{example} +\question Do I need to edit style files to change a style a bit? +\answer No, you do not need to edit any style file. You can change +any part of a certain style using the \Lcs{pddefinetemplate} and +|\pddefinepalettes} commands. Here is an example that removes the +left and right footers from the \pf{default} style, places the slide +number in the center footer and adds another palette. +\begin{example} + \documentclass{powerdot} + \pddefinetemplate[slide]{slide}{ + lfpos=,rfpos=,cftemp=\theslide + }{} + \pddefinepalettes{mypalette}{ + \definecolor{pdcolor1}{rgb}{.27,.31,.44} + \definecolor{pdcolor2}{rgb}{.85,.85,.92} + \definecolor{pdcolor3}{rgb}{.8,.75,.98} + } + \pdsetup{palette=mypalette} + \begin{document} + \begin{slide}{Title} + \end{slide} + \end{document} +\end{example} +See section~\ref{sec:writestyle} for more information about these +two commands. +\question Can I contribute to this project? +\answer +Certainly. If you find bugs\footnote{Make sure that you confirm that +the bug is really caused by \pf{powerdot} and not by another package +that you use.} or typos, please send a message to the mailinglist +(see section~\ref{sec:mailinglist}). If you have developed your own +style that is distinct from existing styles and would like to see it +included in \pf{powerdot}, please inform us by private e-mail and we +will consider your contribution. Notice that included contributions +will fall under the overall \pf{powerdot} license and copyright +notice, but that your name will be included in the documentation +when you make a contribution. This is done to guarantee that we can +adapt files if maintenance is needed. +\end{itemize} + +If your question has not been answered at this point, advance to the +next section to read where to find more answers. + +\subsection{Mailinglist}\label{sec:mailinglist} +\pf{powerdot} has a mailinglist from \url{freelists.org} and has its +website here: +\begin{center} +\url{http://www.freelists.org/list/powerdot} +\end{center} +There is a link to `List Archive'. Please search this archive before +posting a question. Your problem might already have been solved in +the past. + +If that is not the case, use the box on the page to type your e-mail +address, choose the action `Subscribe' and click `Go!'. Then follow +the instructions that arrive to you by e-mail. At a certain moment, +you can login for the first time using an authorization code sent to +you by e-mail. After logging in, you can create a password for +future sessions using the `Main Menu' button. The other buttons +provide you some info and options for your account. + +When you are all set, you can write to the list by sending an e-mail +to +\begin{center} +\url{powerdot [at] freelists [dot] org} +\end{center} + +When writing to the list, please keep in mind the following very +important issues. +\begin{enumerate}[leftmargin=0pt,itemsep=0pt,parsep=0pt] +\item We are volunteers! +\item Keep your questions related to \pf{powerdot}. +\item Always supply a \emph{minimal} example demonstrating your +problem. +\item Don't send big files over the list. +\end{enumerate} + +We hope you will enjoy this service. + +\section{Source code documentation}\label{sec:source} +In case you want regenerate the package files from the source or +want to have a look at the source code description, locate +|powerdot.dtx|, search in the file for \Lcs{OnlyDescription} and remove +that and do +\begin{example} + latex powerdot.dtx + latex powerdot.dtx + bibtex powerdot + makeindex -s gglo.ist -o powerdot.gls powerdot.glo + makeindex -s gind.ist -o powerdot.ind powerdot.idx + latex powerdot.dtx + latex powerdot.dtx +\end{example} + +\StopEventually{} + +\section{Implementation}\label{sec:imple} +\subsection{General construction} +This section explains the general idea of the class, how paper +dimensions are chosen and how slides are created. We start with the +paper. + +This class uses the same idea as \pf{prosper} and \pf{HA-prosper}, +namely that we create a background with \pf{pstricks} and position +text on it using \Lcs{rput} and some |minipage} environments. This is +easier than writing a dedicated output routine that can handle all +the material, but doesn't break pages when we don't want that. So, +when starting to write the class, we first investigated how to deal +with landscape slides and paper dimensions. + +The job of making landscape slides can be done using \pf{geometry}. +The paper dimension was more of a problem. As \LaTeX\ doesn't have +the huge fonts that we need for presentations, we need to scale the +usual fonts somehow. This could be done by using unusual paper +dimensions (as \pf{beamer} does) and hence relying on ps2pdf to cut +off all the redundant material. But this doesn't produce a usable +DVI or PS file. Instead, it was chosen to use DVI magnification. The +entire slide is magnified by a factor of 2 and only the top left +quarter of the paper is used (but you will never notice that due to +the magnification). As we already decided to place all material in +|minipage|s using \Lcs{rput|, we didn't need the page anymore and it +was easiest to use \pf{geometry} to just remove the page margins +altogether so that the bottom left corner would be |(0,0)} and the +top right corner |(\slidewidth,\slideheight)|. + +One extra remark on the paper type is necessary. We found that most +common configurations of dvips use the |A4size} code when A4 +dimensions are found. This code doesn't write an explicit PostScript +paper command in the PS document and hence programs using this PS +(like ps2pdf) don't know what paper to use and revert to the +default, which is letter paper in most cases. This, of course, is +something that we don't want and hence, \pf{powerdot} will write +these commands to the PS itself as to guarantee proper post +processing of the PS. + +Now that we made the decisions on how to create proper DVI, PS and +PDF output, the next task was to create an easy interface to +overlays. To avoid counting the overlays as is necessary with +\pf{prosper}, we implemented a system that first collects the entire +body of an environment in a macro which can be reused multiple +times. During execution of the body, the overlay commands like +|\onslide} will keep a record of the biggest number that they find +and that is the number of overlays to produce. Getting the body of +the environment is done by collecting all material up to the next +|\end} occurrence. If that control sequence has the proper argument +(namely the slide that we started with), then we stop scanning and +start processing the slide. With normal use, you will not notice +this, but when doing special tricks like hiding \Lcs{end{slide}} in a +macro, the process will fail as it relies on finding \Lcs{end\{slide\}} +in the input stream without doing expansions. Often a work around +can be found though. Have a look for instance at how \Lcs{section| +creates a slide. + +The next task was to provide a simple way to create templates. As +the class is based on the idea of having a background with some +material spread out over it, the template system follows this idea. +One argument can be used to create the background, the other +argument controls, via keys and options, several properties of the +material that should be placed. By adding an \verb=ifsetup= key, full +control could be gained over the design of the template in every +possible setup chosen by the user. + +The final task for the class was to fill in all the `details'. All +the mechanisms were present, but sometimes they should not be +active. For instance, overlays should not be created in handout +mode. Other things to add to the class were counter protection on +overlays, handles to the layout of the slide number, footnotes, a +bibliography environment, empty slides, etcetera. + +We hope that this section has made clear a little bit what you will +be seeing when reading the next section with coding and why we chose +to do it this way. + +\bibliographystyle{plain} +\bibliography{powerdot} + +\section*{Acknowledgements} +The authors are grateful to Mael Hill\'ereau for contributing the +\LyX\ layout file and description. Further, we like to thank all +style contributors (see section~\ref{sec:styles}). Moreover, we wish +to thank everyone who contributed to this package in any other +way.\\[1em] +\hspace*{\stretch{1}} +\begin{minipage}{.9\linewidth} +Ramon van den Akker, Pavel \v C\'i\v zek, Darren Dale, Hans Marius +Eikseth, Morten H\o gholm, Andr\'as Horv\'ath, Laurent Jacques, Akira +Kakuto, Uwe Kern, Kyanh, Theo Stewart, Don P. Story and Herbert Vo\ss. +\end{minipage} +\hspace*{\stretch{1}}\\[1em] +We hope not to have forgotten anyone. + +\PrintChangesX\PrintIndexX + +\end{document} + diff --git a/Master/texmf-dist/tex/latex/powerdot/powerdot.cls b/Master/texmf-dist/tex/latex/powerdot/powerdot.cls index 3e45762e92f..c6b69dfe0d1 100644 --- a/Master/texmf-dist/tex/latex/powerdot/powerdot.cls +++ b/Master/texmf-dist/tex/latex/powerdot/powerdot.cls @@ -5,7 +5,7 @@ %% Copyright (C) 2005-2011 Hendri Adriaens and Christopher Ellison %% --------------------------------------------------------------- %% -%% Version 1.4g prepared by Herbert Voss +%% Version 1.4h prepared by Herbert Voss %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3 @@ -18,7 +18,7 @@ %% This work has the LPPL maintenance status "unmaintained". %% \NeedsTeXFormat{LaTeX2e}[1995/12/01] -\ProvidesClass{powerdot}[2011/05/17 v1.4h powerdot presentation class (HA,CE)] +\ProvidesClass{powerdot}[2011/09/15 v1.4h powerdot presentation class (HA,CE)] \newif\ifpd@overlay \newif\ifpd@section \newif\ifpd@ifsetup @@ -153,6 +153,20 @@ \RequirePackage{pstricks}[2004/05/12] \RequirePackage{xcolor}[2004/05/09] \RequirePackage{enumitem}[2007/03/12] +%% Fix for latest enumitem %%% 20110915 hv ------------------------------- +\let\orig@enumerate\enumerate +\def\enumerate{\@ifnextchar[\enumerate@i{\enumerate@i[]}} +\def\enumerate@i[#1]{\@ifnextchar[{\enumerate@ii[#1]}{\enumerate@ii[#1][]}} +\def\enumerate@ii[#1][#2]{% + \ifx\relax#1\relax\else\setkeys{enumitem}{#1}\fi% + \orig@enumerate[#2]} +\let\orig@itemize\itemize +\def\itemize{\@ifnextchar[\itemize@i{\itemize@i[]}} +\def\itemize@i[#1]{\@ifnextchar[{\itemize@ii[#1]}{\itemize@ii[#1][]}} +\def\itemize@ii[#1][#2]{% + \ifx\relax#1\relax\else\setkeys{enumitem}{#1}\fi% + \orig@itemize[#2]} +%% ------------------------------------------------------------------------- \RequirePackage{verbatim} \ifnum\pd@mode<2 \pagestyle{empty} @@ -728,14 +742,6 @@ \rput[cm](.5\slidewidth,.5\slideheight){% \Acrobatmenu{GoBack}{\setlength\fboxsep{10cm}\fbox{GoBack}}}}% } -\pddefinetemplate{blackslide}{}{% - \addtocounter{slide}\m@ne - \hyper@anchorstart{blackslide}\hyper@anchorend - \psframe*[linecolor=black](0,0)(\slidewidth,\slideheight)% - {\color{black}% - \rput[cm](.5\slidewidth,.5\slideheight){% - \Acrobatmenu{GoBack}{\setlength\fboxsep{10cm}\fbox{GoBack}}}}% -} \pddefinetemplate{emptyslide}{textpos={0,\slideheight}}{} \let\pd@orig@maketitle\maketitle \def\maketitle{\@testopt\pd@maketitle{}} -- cgit v1.2.3