%D \module %D [ file=s-present-funny, % was s-pre-03 %D version=1998.09.06, %D title=\CONTEXT\ Style File, %D subtitle=Presentation Environment Funny, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \startmodule[present-funny] %D This is the third environment for typesetting interactive presentations. I used %D this style for a talk on \TEX\ and \JAVASCRIPT\ at \TUG98, mainly because I %D didn't want to use the same style three times. Therefore this is a rather simple, %D silly style. \usemodule[pre-general] %D \macros %D {setupbodyfont} %D %D We use a large bodyfont. Combined with the fancy %D background, this does not leave that much room for text, but %D presentations should use much text anyway. \doifelsemode {asintended} { \setupbodyfont[ludicaot,14.4pt] } { \setupbodyfont[pagella,14.4pt] } %D \macros %D {setuppapersize,setuplayout,setupinteractionscreen} %D %D The page dimensions are set to size \type {S6}, being 600pt by 450pt. We use wide %D margins and discard headers and footers. We also launch the document full screen. \setuppapersize [S6][S6] \setuplayout [width=middle, height=middle, topspace=75pt, backspace=100pt, header=0pt, footer=0pt] \setupinteractionscreen [option=max] %D \macros %D {definecolor} %D %D Next, color support is turned on and a dark red color is defined. Other red %D shades will be derived from this one color. \definecolor [PageColor] [black] \definecolor [BackgroundColor] [s=.85] \definecolor [OrnamentColor] [r=.75] \definecolor [PositionColor] [s=.55] %D \macros %D {setupinteraction} %D %D We turn on interaction mode and use the same color for hyperlinks and redundant %D hyperlinks (the ones that point to the current page). \setupinteraction [state=start, contrastcolor=OrnamentColor, color=OrnamentColor] %D \macros %D {defineoverlay, setupbackgrounds} %D %D The joke in this presentation is the elliptical shape of which the bottom part %D includes a page indication. \defineoverlay [PageShape][\useMPgraphic{PageShape}] \startuseMPgraphic{PageShape} StartPage ; path p ; pair pa, pb ; numeric len ; color contrastcolor ; fill Page withcolor \MPcolor {PageColor} ; pickup pencircle rotated 45 xscaled 10pt yscaled 20pt ; p := Page enlarged (-10pt,-15pt) superellipsed .8 ; p := p shifted (-1.5pt,0) ; % looks better fill p withcolor \MPcolor{BackgroundColor} ; draw p withcolor \MPcolor{OrnamentColor} ; contrastcolor = \MPcolor{PositionColor} ; if (RealPageNumber > 0) and (NOfPages > 0): draw point 5 of p withcolor contrastcolor ; draw point 7 of p withcolor contrastcolor ; len := 2/NOfPages ; pa := point (5+len* RealPageNumber ) of p ; pb := point (5+len*(RealPageNumber-1)) of p ; draw (p cutafter pa) cutbefore pb withcolor contrastcolor ; fi ; StopPage ; \stopuseMPgraphic %D We use the viewer provided feature to go to the previous or next page. \defineoverlay[PrevButton][\overlaybutton{PreviousPage}] \defineoverlay[NextButton][\overlaybutton{NextPage}] \setupbackgrounds [page] [background={PageShape,PrevButton}] \setupbackgrounds [text][text] [background=NextButton] % or using hard coded next/prev pages: % % \defineoverlay[PrevButton][\overlaybutton{previouspage}] % \defineoverlay[NextButton][\overlaybutton{nextpage}] % % \setupbackgrounds[state=repeat] % \setupbackground[text][text][background=NextButton] % % or simply (using an repeated layer): % % \setupbackground[text][background=NextButton] %D \macros %D {definehead, setuphead} %D %D Like the other presentation styles, we use \type {\Topic} instead of \type %D {\chapters}. This time we don't provide an additional sectioning. So we have: %D %D \starttyping %D \TitlePage{How nice} %D %D \Topics{This is about ...} %D %D \Topic{The first one} %D %D \Topic{Another one} %D \stoptyping \definehead [Topic] [chapter] \definehead [Nopic] [title] \setuphead [Topic,Nopic] [after={\blank[3*medium]}, number=no, style=\bfb, page=yes, alternative=middle] \setuplist [Topic] [alternative=g, interaction=all, before=, after=] \let\Subject\Topic %D The tables of contents is associated with \type {\Topics}. \unexpanded\def\Topics#1% {\Nopic[Topics]{#1} \placelist[Topic][criterium=all]} \unexpanded\def\Subjects {} %D Instead of \type {\TitlePage}, one can use the pair \type {\StartTitlePage} -- %D \type {\StopTitlePage}: %D %D \starttyping %D \StartTitlePage %D A Self Made Title %D \StopTitlePage %D \stoptyping \unexpanded\def\StartTitlePage {\startstandardmakeup \bfd\setupinterlinespace \setupalign[middle] \vfil \enforced\protected\def\\{\vfil\bfb\setupinterlinespace}} \unexpanded\def\StopTitlePage {\vfil\vfil\vfil \stopstandardmakeup} \unexpanded\def\TitlePage#1% {\StartTitlePage#1\StopTitlePage} \stopmodule \continueifinputfile{s-present-funny.mkiv} \usemodule[present-common] \inputpresentationfile{examples/present-funny-001.tex}