diff options
Diffstat (limited to 'tex/context/modules/common/s-pre-01.tex')
-rw-r--r-- | tex/context/modules/common/s-pre-01.tex | 404 |
1 files changed, 404 insertions, 0 deletions
diff --git a/tex/context/modules/common/s-pre-01.tex b/tex/context/modules/common/s-pre-01.tex new file mode 100644 index 000000000..89c5642f9 --- /dev/null +++ b/tex/context/modules/common/s-pre-01.tex @@ -0,0 +1,404 @@ +%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 |