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