diff options
Diffstat (limited to 'Master/texmf-dist/doc/latex/powerdot')
14 files changed, 2775 insertions, 264 deletions
diff --git a/Master/texmf-dist/doc/latex/powerdot/README b/Master/texmf-dist/doc/latex/powerdot/README index d256a8a20bf..ef1214af8d1 100644 --- a/Master/texmf-dist/doc/latex/powerdot/README +++ b/Master/texmf-dist/doc/latex/powerdot/README @@ -1,4 +1,4 @@ -powerdot v1.4a +powerdot v1.4d -------------- powerdot is a presentation class for LaTeX that allows for the quick @@ -43,8 +43,3 @@ The latest version of this license is in and version 1.3 or later is part of all distributions of LaTeX version 2003/12/01 or later. -This work has the LPPL maintenance status "maintained". - -This Current Maintainer of this work is Hendri Adriaens. - -This work consists of all files listed in manifest.txt. diff --git a/Master/texmf-dist/doc/latex/powerdot/RunDoc b/Master/texmf-dist/doc/latex/powerdot/RunDoc index 4e50d2388be..4abc92e07e2 100644 --- a/Master/texmf-dist/doc/latex/powerdot/RunDoc +++ b/Master/texmf-dist/doc/latex/powerdot/RunDoc @@ -5,7 +5,7 @@ # other style name) to generate .001 and .002 files which # will be included by the documentation. -latex powerdot.dtx +latex powerdot.tex latex "\def\style{default}\input{powerdot-styleexample}" latex "\def\style{default}\input{powerdot-styleexample}" @@ -75,20 +75,22 @@ latex powerdot.dtx latex "\def\style{upen}\input{powerdot-styleexample}" dvips -i powerdot-styleexample -o powerdot-styleexample-upen.ps -latex powerdot.dtx -latex powerdot.dtx +latex powerdot.tex +latex powerdot.tex 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 +latex powerdot.tex +latex powerdot.tex dvips powerdot.dvi ps2pdf powerdot.ps -rm *.aux *.log *.i?? *.g?? - latex powerdotDE.tex latex powerdotDE.tex +rm *.aux *.log *.i?? *.g?? *.toc *.dvi *.blg *.ps *.bm *.bbl +rm powerdot-styleexample-* + + # If you also want to generate the source code documentation, # remove \OnlyDescription from the preamble of powerdot.dtx # prior to compiling the source. diff --git a/Master/texmf-dist/doc/latex/powerdot/manifest.txt b/Master/texmf-dist/doc/latex/powerdot/manifest.txt index fc0046eecb2..1e08f6602c0 100644 --- a/Master/texmf-dist/doc/latex/powerdot/manifest.txt +++ b/Master/texmf-dist/doc/latex/powerdot/manifest.txt @@ -4,10 +4,6 @@ powerdot manifest This work consists of the file: - powerdot.dtx - -and derived files: - powerdot.cls powerdot-styletest.tex powerdot-styleexample.tex @@ -73,5 +69,3 @@ CTAN:/macros/latex/contrib/powerdot/distrib: official location |- powerdot-klope.sty : /tex/latex/powerdot |- powerdot-jefka.sty : /tex/latex/powerdot `- powerdot-pazik.sty : /tex/latex/powerdot - | - `- powerdot.dtx : /source/latex/powerdot diff --git a/Master/texmf-dist/doc/latex/powerdot/pdpream.ble b/Master/texmf-dist/doc/latex/powerdot/pdpream.ble deleted file mode 100644 index 370d97f565e..00000000000 --- a/Master/texmf-dist/doc/latex/powerdot/pdpream.ble +++ /dev/null @@ -1,174 +0,0 @@ -%% -%% This is file `pdpream.ble', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% powerdot.dtx (with options: `preamble') -%% -%% --------------------------------------------------------------- -%% Copyright (C) 2005-2010 Hendri Adriaens and Christopher Ellison -%% --------------------------------------------------------------- -%% -%% Version 1.4a 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. -%% -%% This work has the LPPL maintenance status "maintained". -%% -%% This Current Maintainer of this work is Hendri Adriaens. -%% -%% This work consists of all files listed in manifest.txt. -%% -\usepackage{url} -\usepackage{fourier} -\usepackage{xcolor} -\usepackage{enumitem} -\usepackage{graphicx} -\usepackage{pst-char} -\usepackage{listings} -\usepackage{array} -\usepackage{xkeyval} -\usepackage[section]{placeins} -\addtolength\textheight{2cm} -\addtolength\topmargin{-1cm} -\lstnewenvironment{command}{% - \lstset{columns=flexible,frame=single,backgroundcolor=\color{blue!20},% - xleftmargin=\fboxsep,xrightmargin=\fboxsep,escapeinside=`',gobble=1}}{} -\lstnewenvironment{example}[1][]{% - \lstset{basicstyle=\footnotesize\ttfamily,columns=flexible,frame=single,% - backgroundcolor=\color{yellow!20},xleftmargin=\fboxsep,% - xrightmargin=\fboxsep,gobble=1,% - }\lstset{#1}}{} -\def\mktitledecor{% - \rput[tl]{90}(-5.5,-26.51){% - \psline[linewidth=1pt](0,1.5)(\paperheight,1.5)% - \rput[lB](.075\paperheight,.5){\pscharpath[linecolor=blue!50,% - fillcolor=yellow!20,fillstyle=solid,linewidth=.5pt]% - {\Huge\bfseries\sffamily powerdot}% - }% - \rput[rB](.925\paperheight,.5){\pscharpath[linecolor=blue!50,% - fillcolor=yellow!20,fillstyle=solid,linewidth=.5pt]% - {\Huge\bfseries Documentation}% - }% - \psline[linewidth=1pt](0,0)(\paperheight,0)% - }% -} -\makeatletter -\def\option#1{% - \XKV@for@n{#1}\pd@tempa{% - \fcolorbox{black}{red!20}{\texttt\pd@tempa}\quad - }% - \vspace*{.2cm}% -} -\def\tableofcontents{\@starttoc{toc}} -\renewenvironment{theglossary}{% - \section*{Version history}% - For more information on bug fixes, typeset the source code - documentation (see section~\ref{sec:source}).\par\medskip - \GlossaryParms \let\item\@idxitem \ignorespaces -}{}% -\def\DescribeMacros{\leavevmode\@bsphack - \begingroup\MakePrivateLetters\Describe@Macros} -\def\Describe@Macros#1{\endgroup\strut - \marginpar{\raggedleft - \def\@tempa{#1}\count@\z@ - \XKV@for@o\@tempa\@tempa{% - \ifnum\count@>\z@\\\fi\advance\count@\@ne - \MacroFont\expandafter\string\@tempa - \expandafter\SpecialUsageIndex\expandafter{\@tempa}% - }}% - \@esphack\ignorespaces -} -\def\DescribeOption#1{\leavevmode\@bsphack - \marginpar{\raggedleft\PrintDescribeOption{#1}}% - \SpecialOptionIndex{#1}\@esphack\ignorespaces} -\def\PrintDescribeOption#1{\strut\emph{option}\\\MacroFont #1\ } -\def\SpecialOptionIndex#1{\@bsphack - \index{#1\actualchar{\protect\ttfamily#1} - (option)\encapchar usage}\@esphack} -\def\DescribeOptions#1{\leavevmode\@bsphack - \marginpar{\raggedleft\strut\emph{options}% - \@for\@tempa:=#1\do{% - \\\strut\MacroFont\@tempa\SpecialOptionIndex\@tempa - }}\@esphack\ignorespaces} -\def\SpecialEnvIndex#1{\@bsphack - \index{#1\actualchar{\protect\ttfamily#1} - (environment)\encapchar usage}\@esphack} -\def\changes@#1#2#3{% - \protected@edef\@tempa{% - \noexpand\glossary{\textbf{#1}\hfill\emph{(#2)}% - \levelchar - \ifx\saved@macroname\@empty - \space\actualchar\generalname - \else - \expandafter\@gobble\saved@macroname - \actualchar\string\verb\quotechar*% - \verbatimchar\saved@macroname\verbatimchar - \fi - :\levelchar #3}% - }% - \@tempa\endgroup\@esphack -} -\makeatother -\def\PrintChangesX{% - \begingroup - \let\efill\relax - \PrintChanges - \endgroup -} -\def\PrintIndexX{% - \begingroup - \setcounter{IndexColumns}{2} - \setlength{\columnsep}{18pt}% - \setlength{\columnseprule}{.4pt}% - \PrintIndex - \endgroup -} -\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}} -\RecordChanges -\CodelineIndex -\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}.}}% -} -\endinput -%% -%% End of file `pdpream.ble'. diff --git a/Master/texmf-dist/doc/latex/powerdot/powerdot-example1.pdf b/Master/texmf-dist/doc/latex/powerdot/powerdot-example1.pdf Binary files differnew file mode 100644 index 00000000000..2049764d1ea --- /dev/null +++ b/Master/texmf-dist/doc/latex/powerdot/powerdot-example1.pdf diff --git a/Master/texmf-dist/doc/latex/powerdot/powerdot-example1.tex b/Master/texmf-dist/doc/latex/powerdot/powerdot-example1.tex index 04f70e49ad8..40c97bcc5e6 100644 --- a/Master/texmf-dist/doc/latex/powerdot/powerdot-example1.tex +++ b/Master/texmf-dist/doc/latex/powerdot/powerdot-example1.tex @@ -1,17 +1,9 @@ %% %% This is file `powerdot-example1.tex', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% powerdot.dtx (with options: `pdexample1') -%% %% --------------------------------------------------------------- %% Copyright (C) 2005-2010 Hendri Adriaens and Christopher Ellison %% --------------------------------------------------------------- %% -%% Version 1.4a 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. @@ -20,12 +12,6 @@ %% and version 1.3 or later is part of all distributions of LaTeX %% version 2003/12/01 or later. %% -%% This work has the LPPL maintenance status "maintained". -%% -%% This Current Maintainer of this work is Hendri Adriaens. -%% -%% This work consists of all files listed in manifest.txt. -%% \documentclass{powerdot} \title{powerdot example 1} diff --git a/Master/texmf-dist/doc/latex/powerdot/powerdot-example2.pdf b/Master/texmf-dist/doc/latex/powerdot/powerdot-example2.pdf Binary files differnew file mode 100644 index 00000000000..a3b1fd5ab6c --- /dev/null +++ b/Master/texmf-dist/doc/latex/powerdot/powerdot-example2.pdf diff --git a/Master/texmf-dist/doc/latex/powerdot/powerdot-example2.tex b/Master/texmf-dist/doc/latex/powerdot/powerdot-example2.tex index 97d44e58853..8d8403be397 100644 --- a/Master/texmf-dist/doc/latex/powerdot/powerdot-example2.tex +++ b/Master/texmf-dist/doc/latex/powerdot/powerdot-example2.tex @@ -1,17 +1,9 @@ %% %% This is file `powerdot-example2.tex', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% powerdot.dtx (with options: `pdexample2') -%% %% --------------------------------------------------------------- %% Copyright (C) 2005-2010 Hendri Adriaens and Christopher Ellison %% --------------------------------------------------------------- %% -%% Version 1.4a 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. @@ -20,12 +12,6 @@ %% and version 1.3 or later is part of all distributions of LaTeX %% version 2003/12/01 or later. %% -%% This work has the LPPL maintenance status "maintained". -%% -%% This Current Maintainer of this work is Hendri Adriaens. -%% -%% This work consists of all files listed in manifest.txt. -%% \documentclass[ size=12pt, style=ikeda, @@ -44,6 +30,7 @@ \pdsetup{ lf=Example 2, + cf=\today, rf=for powerdot, trans=Wipe, theslide=slide~\arabic{slide}, diff --git a/Master/texmf-dist/doc/latex/powerdot/powerdot-example3.pdf b/Master/texmf-dist/doc/latex/powerdot/powerdot-example3.pdf Binary files differnew file mode 100644 index 00000000000..ecf49830cd6 --- /dev/null +++ b/Master/texmf-dist/doc/latex/powerdot/powerdot-example3.pdf diff --git a/Master/texmf-dist/doc/latex/powerdot/powerdot-example3.tex b/Master/texmf-dist/doc/latex/powerdot/powerdot-example3.tex index 00ae3b68c5f..fed59471afd 100644 --- a/Master/texmf-dist/doc/latex/powerdot/powerdot-example3.tex +++ b/Master/texmf-dist/doc/latex/powerdot/powerdot-example3.tex @@ -1,17 +1,10 @@ %% %% This is file `powerdot-example3.tex', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% powerdot.dtx (with options: `pdexample3') -%% + %% --------------------------------------------------------------- %% Copyright (C) 2005-2010 Hendri Adriaens and Christopher Ellison %% --------------------------------------------------------------- %% -%% Version 1.4a 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. @@ -20,13 +13,8 @@ %% and version 1.3 or later is part of all distributions of LaTeX %% version 2003/12/01 or later. %% -%% This work has the LPPL maintenance status "maintained". -%% -%% This Current Maintainer of this work is Hendri Adriaens. -%% -%% This work consists of all files listed in manifest.txt. -%% -\documentclass[style=klope,clock,hlsections]{powerdot} +\documentclass[style=klope,%clock, + hlsections]{powerdot} \usepackage{amsmath} \usepackage{pst-node} @@ -35,12 +23,12 @@ \lstnewenvironment{example}[1][]{% \lstset{basicstyle=\footnotesize\ttfamily,columns=flexible,% frame=single,backgroundcolor=\color{yellow!20},% - xleftmargin=\fboxsep,xrightmargin=\fboxsep,gobble=1% + xleftmargin=\fboxsep,xrightmargin=\fboxsep%,gobble=1 }\lstset{#1}}{} \lstnewenvironment{examplesmall}[1][]{% \lstset{basicstyle=\tiny\ttfamily,columns=flexible,% frame=single,backgroundcolor=\color{yellow!20},% - xleftmargin=\fboxsep,xrightmargin=\fboxsep,gobble=2% + xleftmargin=\fboxsep,xrightmargin=\fboxsep%,gobble=2 }\lstset{#1}}{} \title{powerdot example 3 --- verbatim and random dots} @@ -48,6 +36,7 @@ \pdsetup{ lf=Example 3, + cf=\today, rf=for powerdot, palette=Spring, randomdots, diff --git a/Master/texmf-dist/doc/latex/powerdot/powerdot-styleexample.tex b/Master/texmf-dist/doc/latex/powerdot/powerdot-styleexample.tex index f57dd298adc..4b83a312fa9 100644 --- a/Master/texmf-dist/doc/latex/powerdot/powerdot-styleexample.tex +++ b/Master/texmf-dist/doc/latex/powerdot/powerdot-styleexample.tex @@ -1,17 +1,9 @@ %% %% This is file `powerdot-styleexample.tex', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% powerdot.dtx (with options: `pdstyleexample') -%% %% --------------------------------------------------------------- %% Copyright (C) 2005-2010 Hendri Adriaens and Christopher Ellison %% --------------------------------------------------------------- %% -%% Version 1.4a 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. @@ -20,11 +12,8 @@ %% and version 1.3 or later is part of all distributions of LaTeX %% version 2003/12/01 or later. %% -%% This work has the LPPL maintenance status "maintained". -%% -%% This Current Maintainer of this work is Hendri Adriaens. +%% This work has the LPPL maintenance status "unmaintained". %% -%% This work consists of all files listed in manifest.txt. %% \documentclass[paper=letterpaper,style=\style]{powerdot} \title{Example of the \style\ style} diff --git a/Master/texmf-dist/doc/latex/powerdot/powerdot-styletest.tex b/Master/texmf-dist/doc/latex/powerdot/powerdot-styletest.tex index 981adc6db0a..8473c415572 100644 --- a/Master/texmf-dist/doc/latex/powerdot/powerdot-styletest.tex +++ b/Master/texmf-dist/doc/latex/powerdot/powerdot-styletest.tex @@ -1,17 +1,9 @@ %% %% This is file `powerdot-styletest.tex', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% powerdot.dtx (with options: `pdstyletest') -%% %% --------------------------------------------------------------- %% Copyright (C) 2005-2010 Hendri Adriaens and Christopher Ellison %% --------------------------------------------------------------- %% -%% Version 1.4a 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. @@ -20,12 +12,7 @@ %% and version 1.3 or later is part of all distributions of LaTeX %% version 2003/12/01 or later. %% -%% This work has the LPPL maintenance status "maintained". -%% -%% This Current Maintainer of this work is Hendri Adriaens. -%% -%% This work consists of all files listed in manifest.txt. -%% +%% This work has the LPPL maintenance status "unmaintained". %% %% For testing, enter your style below. %% Switch on only one paper/orient option at a time. diff --git a/Master/texmf-dist/doc/latex/powerdot/powerdot.pdf b/Master/texmf-dist/doc/latex/powerdot/powerdot.pdf Binary files differindex 86007709714..8ddfc20bbf4 100644 --- a/Master/texmf-dist/doc/latex/powerdot/powerdot.pdf +++ b/Master/texmf-dist/doc/latex/powerdot/powerdot.pdf diff --git a/Master/texmf-dist/doc/latex/powerdot/powerdot.tex b/Master/texmf-dist/doc/latex/powerdot/powerdot.tex new file mode 100644 index 00000000000..7b1a02bee08 --- /dev/null +++ b/Master/texmf-dist/doc/latex/powerdot/powerdot.tex @@ -0,0 +1,2756 @@ +%% --------------------------------------------------------------- +%% Copyright (C) 2005-2010 Hendri Adriaens and Christopher Ellison +%% --------------------------------------------------------------- +%% +%% Version 1.4d 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. +%% +%% This work has the LPPL maintenance status "unmaintained". +%% +\documentclass[a4paper]{ltxdoc} + +\usepackage{url} +\usepackage{fourier} +\usepackage{xcolor} +\usepackage{enumitem} +\usepackage{graphicx} +\usepackage{pst-char} +\usepackage{listings} +\usepackage{array} +\usepackage{xkeyval} +\usepackage[section]{placeins} +\addtolength\textheight{2cm} +\addtolength\topmargin{-1cm} +\lstnewenvironment{command}{% + \lstset{columns=flexible,frame=single,backgroundcolor=\color{blue!20},% + xleftmargin=\fboxsep,xrightmargin=\fboxsep,escapeinside=`',gobble=1}}{} +\lstnewenvironment{example}[1][]{% + \lstset{basicstyle=\footnotesize\ttfamily,columns=flexible,frame=single,% + backgroundcolor=\color{yellow!20},xleftmargin=\fboxsep,% + xrightmargin=\fboxsep,gobble=1,% + language=[LaTeX]TeX,keywordstyle=\color{blue},% + moretexcs=[1]{color,ProvidesPackage},% + moretexcs=[2]{onslide,pause,pdsetup,maketitle,tableofcontents},% + texcsstyle=[2]\color{red}% + }\lstset{#1}}{} +\def\mktitledecor{% + \rput[tl]{90}(-5.5,-26.51){% + \psline[linewidth=1pt](0,1.5)(\paperheight,1.5)% + \rput[lB](.075\paperheight,.5){\pscharpath[linecolor=blue!50,% + fillcolor=yellow!20,fillstyle=solid,linewidth=.5pt]% + {\Huge\bfseries\sffamily powerdot}% + }% + \rput[rB](.925\paperheight,.5){\pscharpath[linecolor=blue!50,% + fillcolor=yellow!20,fillstyle=solid,linewidth=.5pt]% + {\Huge\bfseries Documentation}% + }% + \psline[linewidth=1pt](0,0)(\paperheight,0)% + }% +} +\makeatletter +\def\option#1{% + \XKV@for@n{#1}\pd@tempa{% + \fcolorbox{black}{red!20}{\texttt\pd@tempa}\quad + }% + \vspace*{.2cm}% +} +\def\tableofcontents{\@starttoc{toc}} +\renewenvironment{theglossary}{% + \section*{Version history}% + For more information on bug fixes, typeset the source code + documentation (see section~\ref{sec:source}).\par\medskip + \GlossaryParms \let\item\@idxitem \ignorespaces +}{}% +\def\DescribeMacros{\leavevmode\@bsphack + \begingroup\MakePrivateLetters\Describe@Macros} +\def\Describe@Macros#1{\endgroup\strut + \marginpar{\raggedleft + \def\@tempa{#1}\count@\z@ + \XKV@for@o\@tempa\@tempa{% + \ifnum\count@>\z@\\\fi\advance\count@\@ne + \MacroFont\expandafter\string\@tempa + \expandafter\SpecialUsageIndex\expandafter{\@tempa}% + }}% + \@esphack\ignorespaces +} +\def\DescribeOption#1{\leavevmode\@bsphack + \marginpar{\raggedleft\PrintDescribeOption{#1}}% + \SpecialOptionIndex{#1}\@esphack\ignorespaces} +\def\PrintDescribeOption#1{\strut\emph{option}\\\MacroFont #1\ } +\def\SpecialOptionIndex#1{\@bsphack + \index{#1\actualchar{\protect\ttfamily#1} + (option)\encapchar usage}\@esphack} +\def\DescribeOptions#1{\leavevmode\@bsphack + \marginpar{\raggedleft\strut\emph{options}% + \@for\@tempa:=#1\do{% + \\\strut\MacroFont\@tempa\SpecialOptionIndex\@tempa + }}\@esphack\ignorespaces} +\def\SpecialEnvIndex#1{\@bsphack + \index{#1\actualchar{\protect\ttfamily#1} + (environment)\encapchar usage}\@esphack} +\def\changes@#1#2#3{% + \protected@edef\@tempa{% + \noexpand\glossary{\textbf{#1}\hfill\emph{(#2)}% + \levelchar + \ifx\saved@macroname\@empty + \space\actualchar\generalname + \else + \expandafter\@gobble\saved@macroname + \actualchar\string\verb\quotechar*% + \verbatimchar\saved@macroname\verbatimchar + \fi + :\levelchar #3}% + }% + \@tempa\endgroup\@esphack +} +\makeatother +\def\PrintChangesX{% + \begingroup + \let\efill\relax + \PrintChanges + \endgroup +} +\def\PrintIndexX{% + \begingroup + \setcounter{IndexColumns}{2} + \setlength{\columnsep}{18pt}% + \setlength{\columnseprule}{.4pt}% + \PrintIndex + \endgroup +} +\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}} +\RecordChanges +\CodelineIndex +\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}.}}% +} + +\def\fileversion{v1.4b} +\def\filedate{2010/10/07} + + \changes{v1.0}{2005/09/04}{Initial release} + \changes{v1.1}{2005/09/19}{Fixed some small bugs} + \changes{v1.1}{2005/09/19}{Added \texttt{tocsecindent} and + \texttt{tocslideindent} options} + \changes{v1.1}{2005/09/19}{Added \pf{elcolors}, \pf{aggie}, \pf{husky} + and \pf{sailor} styles} + \changes{v1.1}{2005/09/19}{Changed \texttt{size\protect\equals 10} + to \texttt{size\protect\equals 10pt}} + \changes{v1.1}{2005/09/19}{Added \LyX\ layout, description and example} + \changes{v1.1}{2005/09/19}{Added graphical examples of styles to documentation} + \changes{v1.1}{2005/09/19}{Improved section title handling} + \changes{v1.1}{2005/09/19}{\texttt{blackslide} options adds hyperlink + to slide and section titles} + \changes{v1.1}{2005/09/19}{Extended FAQ} + \changes{v1.1}{2005/09/19}{Improved \pf{tycja}, \pf{ciment} and \pf{fyma} styles} + \changes{v1.2}{2005/10/09}{Added \pf{upen} and \pf{bframe} styles} + \changes{v1.2}{2005/10/09}{Solved some small bugs} + \changes{v1.2}{2005/10/09}{Simplified coding of most styles} + \changes{v1.2}{2005/10/09}{Speeded up compilations} + \changes{v1.3}{2005/12/06}{Solved some small bugs} + \changes{v1.3}{2005/12/06}{Improved \texttt{figure} and \texttt{table} handling} + \changes{v1.3}{2005/12/06}{Added \pf{horatio}, \pf{paintings}, \pf{klope}, \pf{jefka} + and \pf{pazik} styles} + \changes{v1.3}{2005/12/06}{Added palettes feature} + \changes{v1.3}{2005/12/06}{Added random dots feature} + \changes{v1.3}{2005/12/06}{Added optional argument to \cs{maketitle}} + \changes{v1.3}{2005/12/06}{Added clock feature} + \changes{v1.3}{2005/12/06}{Updated all styles} + \changes{v1.3}{2005/12/06}{Added palettes to \pf{default}, \pf{fyma} and \pf{sailor} styles} + \changes{v1.3}{2005/12/06}{Revised docs} + \changes{v1.3}{2005/12/06}{Updated \LyX\ example and information} + \changes{v1.3}{2005/12/06}{Cleaned up options} + \changes{v1.3}{2005/12/06}{Added possibility to create horizontal table of contents} + \changes{v1.3}{2005/12/06}{Added logo feature} + \changes{v1.3}{2005/12/06}{Added examples and example file} + \changes{v1.3}{2005/12/06}{Added two slide processing methods to do verbatim on slides easily} + \changes{v1.4}{2005/12/10}{Moved \texttt{lf} and \texttt{rf} keys from + \texttt{global} to \texttt{glslide} family} + \changes{v1.4}{2005/12/10}{Added \texttt{cf} option} + \changes{v1.4}{2005/12/10}{Updated styles} + \changes{v1.4}{2005/12/10}{Solved some small bugs} + \changes{v1.4}{2005/12/10}{Moved footers out of slide box in handout mode} + \changes{v1.4a}{2010/10/07}{fixed bug with geometry 5.x (hv)} + \changes{v1.4b}{2010/11/16}{fixed bug with centered footnote (hv)} + \changes{v1.4c}{2010/11/16}{fixed bug with missing macros for centered footer (hv)} + \changes{v1.4d}{2012/12/03}{fixed missleading comment header of powerdot.cls (hv)} + + +\begin{document} +%\let\Section\section\def\section*#1{\Section*{#1}\addcontentsline{toc}{section}{#1}} +\title{\vspace*{-2cm}\mktitledecor The \pf{powerdot} class +\thanks{This class can be downloaded from the CTAN mirrors: +\texttt{/macros/latex/contrib/powerdot}. See \texttt{powerdot.dtx} for +information on installing \pf{powerdot} into your \LaTeX\ +distribution and for the license of this class.}} +\author{Hendri Adriaens\and Christopher Ellison} +\date{\fileversion\ (\filedate)} +\maketitle + +\begin{abstract}\noindent +\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} + +\begin{multicols}{2} +[\section*{Contents} +\setlength{\columnseprule}{.4pt} +\setlength{\columnsep}{18pt}] +\tableofcontents +\end{multicols} + +\newpage +\section{Introduction}\label{sec:intro} +This class gives you the possibility to easily create professionally +looking slides. The class is designed to make the development of +presentations as simple as possible so that you can concentrate on +the actual content instead of keeping yourself busy with technical +details. Of course, some knowledge of \LaTeX\ is still required +though. + +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. + +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. + +The document structure of a presentation is always the same. You can +find it in the example below. + +\begin{example} + \documentclass[<class options>]{powerdot} + \pdsetup{<presentation options>} + \begin{document} + \begin{slide}{a slide} + Contents of the slide. + \end{slide} + \section{first section} + \begin{slide}[<slide options>]{another slide} + Contents of the slide. + \end{slide} + \begin{note}{personal note} + The note. + \end{note} + \end{document} +\end{example} + +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}. + +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 +|\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. + +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. + +\section{Setting up the presentation}\label{sec:setup} +This section will describe all options that are available to control +the output of the presentation and the looks of it. + +\subsection{Document class options}\label{sec:classopts} We will +start with the class options that are typed in the |\documentclass| +command as a comma-separated list. For each option, the preset +value\footnote{The value that will be used when you don't use the +option.} 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. + +\DescribeOption{mode} +This options controls the kind of output that we want to produce. +The preset value is |present|. +\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. +\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 |\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{description} + +\DescribeOption{paper} This option has three possible values. The +preset value is |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} +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 |\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 |\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 |\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 |\arabic{slide}~/~\pageref*{lastslide}|, +which could appear like |5/22|. Notice that the |\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 |\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 |\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|, |\slidewidth|, |0pt|, |\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 |\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 |\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 |\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 |\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 |\and| for +separating multiple authors. See a \LaTeX\ manual \cite{companion} +for more information on commands such as |\title| and |\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 |\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 |\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 |\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 |\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 |\item| command has an extra \emph{optional} argument in +\pf{powerdot} which allows for creating overlays in a more flexible +way then |\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 |\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 |\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 |\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 |\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 |\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 |\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, |\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 |\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 |\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 |\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 |\includegraphics| command is defined by the \pf{graphicx} +package \cite{graphics}. The |\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 |\slideheight| and |\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 |\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 |\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 |\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 |\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 |\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 |\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 |\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 |\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 |\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 |\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 |\savevalue| and |\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 |\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-<style_name>.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 |\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 |\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 |\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 |\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 |\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 |\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 |\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 |\pd@@rf| will contain the content of the right footer defined +by the user via the |\pdsetup| command. Similarly, |\pd@@lf| +contains the content of the left footer. The above declaration +checks whether the footer and |\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 |\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 |\pd@tocslide| or |\pd@tocsection|, \pf{powerdot} +continues building the entry by passing it through |\pd@tocdisplay|, +when the entry needs to be displayed only, or |\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, |\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 |\onslide|, |\pause| +(see section~\ref{sec:overlays}) and |\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 |\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}' |\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 |\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 |\pd@slidetitle| macro is used to typeset the slide title on +slides. This macro is comparable to for instance |\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 |\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 |\pd@slidetitle|. + +\DescribeOptions{sectemp,widesectemp} +The |\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 |\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 |\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 |\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 |\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 |\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 |\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 |\pause|. Use |\onslide| instead. See +section~\ref{sec:onslide}. +\question My \pf{pstricks} nodes appear on all overlays. Also: color +doesn't seem to work with |\onslide|. +\answer Some PostScript tricks like nodes and color do not work with +|\onslide|. Use |\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 |\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 |\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 |\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 |\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 |\end{slide}| in a +macro, the process will fail as it relies on finding |\end{slide}| +in the input stream without doing expansions. Often a work around +can be found though. Have a look for instance at how |\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 |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} + |