%D \module %D [ file=s-pre-01, %D version=1997.07.22, %D title=\CONTEXT\ Style File, %D subtitle=Presentation Environment 1, %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. %D This environment can be used to typeset interactive %D presentations. This module was first used at the 1997 \TUG\ %D meeting. \usemodule[pre-general] %D \macros %D {language} %D %D Because this module is defined in english, we default to the %D english hyphenation patterns and labels too. \language [en] %D \macros %D {setupbodyfont,setuplayout} %D %D For screen reading, a Lucida Bright font looks nice. We use %D a 14.4 point bodyfont for the main text, but switch back to %D 12 points for ornaments. \startmode[asintended] \setupbodyfont[lbr] \stopmode \setupbodyfont[14.4pt] \setuplayout [style=smallbodyfont] %D \macros %D {setupcolors,definecolor} %D %D Screen presentations without color just look dull, so we %D enable color support. We define ourselves a yellowish %D backgroundcolor and a not too dark blue interactioncolor. \setupcolors [state=start] \definecolor [BackgroundColor] [r=1, g=1, b=.7] \definecolor [InteractionColor] [r=.1, g=.5, b=.8] \definecolor [ContrastColor] [r=.9, g=.5, b=.2] %D \macros %D {setuppapersize,setuplayout,setupinteractionscreen} %D %D %D We use a nice large screen, and dedicate the right edge and %D bottom part to navigational tools. We automatically set %D the width and height of the page and start up full screen. \setuppapersize [S6][S6] \setuplayout [topspace=12pt, header=0pt, footer=0pt, height=402pt, % 450 - 12 - 15 - 12 - 12 + 3 bottomdistance=15pt, bottom=12pt, backspace=12pt, margin=0pt, width=fit, edgedistance=12pt, rightedge=96pt] \setupinteractionscreen [option=max] %D \macros %D {setupbackgrounds} %D %D We set the pagecolor to yellow except the part of the screen %D that is used to display the running text. By seting the %D offset to 3pt the text will not touch the yellow parts. We %D do not set the depth. \setupbackgrounds [page] [background=color, backgroundcolor=BackgroundColor, offset=3pt] \setupbackgrounds [text][text] [background=color, backgroundcolor=white] %D I considered the next setup too, but finaly decided to %D comment it out. %D %D \starttyping %D \setupbackgrounds %D [bottom][text] %D [frame=on, %D framecolor=white] %D \stoptyping %D \macros %D {setupinteraction} %D %D We did not enable interactive text support yet, so let's do %D that now. We force page reference to circumvent problems %D with named destinations in buggy viewers. \setupinteraction [page=yes, color=InteractionColor, contrastcolor=ContrastColor, menu=on, state=start] %D \macros %D {setupinteractionmenu,startinteractionmenu} %D %D At the bottom of the screen we show two navigational bars. %D At the left we show the subpage bar, at the right we use a %D non default backward|/|forward bar. \setupinteractionmenu [bottom] [leftoffset=-3pt, rightoffset=-3pt] \startinteractionmenu[bottom] \txt \InteractionBar \\ \txt \InteractionButtons \\ \stopinteractionmenu %D \macros %D {interactionbar} %D %D The left bar gets a white border (on the yellow background). %D Because we don't want to typeset an empty frame when no %D subpage bar is shown, we check for the number of subpages. \def\InteractionBar% {\ifnum\nofsubpages>1 \framed [framecolor=white,rulethickness=1pt, height=\bottomheight,strut=no] {\interactionbar[alternative=f,width=.5\makeupwidth,height=1ex]} \fi} %D \macros %D {setupinteractionbar, interactionbuttons} %D %D The right hand buttons enable us to jump backward and forward, %D as well as to the previous and next jump. We also enable to %D close the presentation. \setupinteractionbar [framecolor=white,rulethickness=1pt, height=\bottomheight,strut=no] \def\InteractionButtons% {\interactionbuttons [width=15em] [PreviousJump,NextJump, firstpage, firstsubpage,previouspage,nextpage,lastsubpage, lastpage, CloseDocument]} %D \macros %D {StartTitlePage, TitlePage} %D %D The titlepage is rather simple and can be typeset in two %D ways: %D %D \starttyping %D \StartTitlePage %D text \\ text \\ text %D \StopTitlepage %D \stoptyping %D %D or more straightforward: %D %D \starttyping %D \TitlePage{text\\text\\text} %D \stoptyping %D %D The first alternative can be used for more complicated %D title pages. \def\StartTitlePage% {\startstandardmakeup \bfd\setupinterlinespace \setupalign[middle] \vfil \let\\=\vfil} \def\StopTitlePage% {\vfil\vfil\vfil \stopstandardmakeup} \def\TitlePage#1% {\StartTitlePage#1\StopTitlePage} %D \macros %D {TitlePage, Topics, Topic, Subject} %D %D A presentation after loading this module looks like: %D %D \starttyping %D \TitlePage {About Whatever\\Topics} %D %D \Topics {Todays Talk} %D %D \Topic {Some topic} %D %D \Subject {Alfa} %D %D ..... %D %D \Subject {Beta} %D %D ..... %D \stoptyping %D \macros %D {definehead} %D %D The commands \type{\Topic} and \type{\Subject} are defined %D as copies of head. We use \type{\Nopic} for internal %D purposes. \definehead [Topic] [chapter] \definehead [Subject] [section] \definehead [Nopic] [title] %D \macros %D {setuphead} %D %D Because chapters and sections do not make sense in %D presentations, we use our own command for typesetting the %D titles. Sectionnumbers are of course hidden from viewing. %D Each topic is followed by a list of subjects that belong %D to the topic. \setuphead [Topic, Nopic, Subject] [command=\HeadLine, page=yes, style=\tfb, after=\blank, sectionnumber=no] \setuphead [Topic] [after=\PlaceSubjectList] \setuphead [Subject] [continue=no] %D \macros %D {framed, midalined} %D %D The command used to typeset the head lines is rather simple. %D We just center the framed title. The frame macro optimizes %D the alignment and at the same time enables us to typeset a %D nice colored rule. \def\HeadLine#1#2% {\midaligned {\framed [framecolor=BackgroundColor,rulethickness=1pt, width=.8\hsize,align=middle,strut=no] {#2}}} %D \macros %D {setuplist} %D %D The subject list is automatically placed. We center each %D subject line by using one of the default alternatives (g). We %D could have said: %D %D \starttyping %D \setuplist %D [Subject] %D [alternative=none, %D command=\SubjectListLine, %D interaction=all] %D %D \def\SubjectListLine#1#2#3% %D {\midaligned{#2}} %D \stoptyping %D %D But why should we complicate things when we can use %D alternative~\type{g}. The test is only needed if one %D does not automatically goes a new page with each subject. \def\PlaceSubjectList% {\blank \determinelistcharacteristics[Subject] % \ifnum\utilitylistlength>0 \placelist[Subject] \fi} \doifmode{*list}{\placelist[Subject]}} \setuplist [Subject, Topic] [alternative=g, interaction=all, before=, after=] % %D \macros % %D {setuptexttexts} % %D % %D The topics will be listed in the right edge, using: % % \setuptexttexts % [edge] % [][\TopicList] %D \macros %D {setuplist, placelist,startinteractionmenu} %D %D The actual topic list is typeset using a \type{\vbox}. We %D have to specify \type{criteriumcriterium=all} because otherwise no %D list will be typeset. (By default lists are typeset %D locally.) \startinteractionmenu[right] \placelist [Topic] [alternative=f, % command, % none, maxwidth=\hsize, width=\hsize, offset=0pt, criterium=all, align=left, style=\setsmallbodyfont\bfx] \stopinteractionmenu \def\Topics#1% temporary hack {\Nopic{#1} \placelist[Topic][criterium=all]} \def\Subjects% {} %D \macros %D {setuptexttexts, button} %D %D During a presentation, we want to use the cursor to point to %D parts of the text. Furthermore we want to be able to jump to %D the next page, without the need to move the cursor on buttons. %D Therefore we make the text part of the screen into an %D invisible button. \setuptexttexts [\GotoNextPage][] \def\GotoNextPage {\button[width=\hsize,height=\vsize,frame=off]{}[nextpage]} %D \macros %D {setupsubpagenumber} %D %D The left bottom navigation bar shows the subpages, which will %D be counted by text. One can change this in the preentation %D itself by saying \type {[way=byTopic]}. \setupsubpagenumber [way=bytext, % Topic, state=start] \doifnotmode{demo}{\endinput} %D The (rather silly) demo section. \starttext \TitlePage{Title Page\\pre-original} \Topics{Some Nice Quotes} \Topic{A Few} \Subject{Knuth} \input knuth \Subject{Tufte} \input tufte \Topic{Some More} \Subject{Zapf} \input zapf \Subject{Bryson} \input bryson \stoptext