%D \module %D [ file=simpleslides-s-SideToc, %D version=2010.02.09, %D title=\CONTEXT\ Style File, %D subtitle=Presentation Module --- SideToc style, %D author=Aditya Mahajan and Thomas A. Schmitz, %D date=\currentdate, %D copyright={Aditya Mahajan and Thomas A. Schmitz}] %C %C Copyright 2010 Aditya Mahajan and Thomas A. Schmitz %C This file may be distributed under the GNU General Public License v. 2.0. %D This file provides the \quotation{SideToc} style for the presentation %D module. It is loaded at runtime. \writestatus{simpleslides}{loading Side Toc style} \startmodule[simpleslides-s-SideToc] \unprotect %D We create different layouts for the title page, horizontal, and vertical %D slides. \setuplayout [simpleslides:layout:vertical] [width=fit, leftmargin=3.5cm, rightmargin=0cm, leftmargindistance=1cm, rightmargindistance=0pt, height=fit, header=0cm, footer=0cm, topspace=1cm, backspace=5cm, % cutspace=4cm, bottomspace=0cm, bottom=0pt, location=middle] \setuplayout [simpleslides:layout:horizontal] [width=fit, leftmargin=3.5cm, rightmargin=0cm, leftmargindistance=1cm, rightmargindistance=0pt, height=fit, header=0.1cm, headerdistance=1.7cm, footer=0cm, topspace=1cm, backspace=5cm, % cutspace=4cm, bottomspace=0cm, bottom=0pt, location=middle] \setuplayout [simpleslides:layout:title] [width=fit, leftmargin=0cm, rightmargin=0cm, height=fit, header=0cm, footer=0cm, topspace=1cm, backspace=1cm, bottomspace=0cm, bottom=0pt, location=middle] \setupcombinations[distance=0.75cm] %D The interesting part of this presentation style is the "Topic" list which is %D typeset in the left margin. It is inspired by something Hans did in %D s-pre-19. The Difference is that I wanted the Topic to be independent from %D SlideTitle macro. This way, several slides can be combined into one Topic. % \definelayer % [Topiclayer] % [width=2.5cm, % height=\paperheight] % % \defineoverlay % [simpleslides:background:ornament] % [\setlayer[Topiclayer]{\completelist[MyTopic]} % \startsetups tlayer % \setlayer[Topiclayer]{\completelist[MyTopics]} %\stopsetups %D These macros are used for placing figures/pictures: \define\NormalHeight {\textheight} \define\NormalWidth {.476\textwidth} \define\PictureFrameHeight {\textheight} \define\PictureFrameWidth {.476\textwidth} \setuplayer [simpleslides:layer:slidetitle] [x=5cm] %D We define our color scheme \enablemode[\moduleparameter{simpleslides}{color}] \startmode[dark] \definecolor [simpleslides:backgroundcolor] [s=.9] \definecolor [simpleslides:altcontrastcolor] [b=.6] \definecolor [simpleslides:contrastcolor] [s=.3] \definecolor [simpleslides:itemize:color] [simpleslides:altcontrastcolor] \define[3]\FancyEntry{% \doifelse \rawstructurelistfirst \MyMark% {\framed[width=3.5cm, height=4ex, align=middle, frame=off, framecolor=red, background=color, backgroundcolor=simpleslides:altcontrastcolor, foregroundcolor=simpleslides:backgroundcolor] {\switchtobodyfont[13pt]#1}}% fancy layout {\framed[width=3.5cm, height=4ex, align=middle, frame=off, framecolor=red, foregroundcolor=simpleslides:backgroundcolor] {\switchtobodyfont[13pt]#1}}% normal layout } \stopmode \startmode[light] \definecolor [simpleslides:altcontrastcolor] [r=1,g=0.5,b=0] \definecolor [simpleslides:contrastcolor] [s=0.95] \definecolor [simpleslides:textcolor] [s=0] \definecolor [simpleslides:itemize:color] [simpleslides:altcontrastcolor] \define[3]\FancyEntry {\doifelse{#1}{\MyMark} % {\framed[width=3.5cm, height=4ex, frame=off, align=middle, foregroundcolor=simpleslides:altcontrastcolor] {\switchtobodyfont[13pt]\bf Y #1}}% fancy layout {\framed[width=3.5cm, height=4ex, align=middle, frame=off, framecolor=red, foregroundcolor=simpleslides:altcontrastcolor] {\switchtobodyfont[13pt] X #1}}% normal layout } \stopmode %D Here are the main macros for defining and typesetting the Topic list: \definelist[MyTopics][criterium=all] \def\MyMark{} \def\Topic% %{\relax} {\dosingleargument\doTopic} \def\doTopic[#1]{ \gdef\MyMark{#1}% \writetolist[MyTopics][location=none]{#1}{}% } \setuplist[MyTopics] [pagenumber=no, alternative=command, command=\FancyEntry] \setuptexttexts[margin][\vbox{\placelist[MyTopics]}][] %D We use \METAPOST to draw the background. \startuseMPgraphic{simpleslides:MP:title} StartPage ; save middle ; path middle ; fill Page withcolor \MPcolor{simpleslides:contrastcolor} ; middle = Page enlarged -1.5cm ; fill middle withcolor \MPcolor{simpleslides:altcontrastcolor} ; StopPage ; \stopuseMPgraphic \startuseMPgraphic{simpleslides:MP:horizontal} StartPage ; save a, b, c ; numeric a, b, c ; a = 4.5cm ; b = 0.5cm ; c = 2.2cm ; z[1] = ulcorner Page shifted (a,0) ; z[2] = llcorner Page shifted (a,0) ; z[3] = ulcorner Page shifted (0,-c) ; z[4] = urcorner Page shifted (0,-c) ; z[5] = llcorner Page shifted (0,b) ; z[6] = lrcorner Page shifted (0,b) ; z[7] = ulcorner Page shifted (a,-c) ; z[8] = llcorner Page shifted (a,b) ; save p ; path p[] ; p[1] = ulcorner Page -- z[1] -- z[2] -- llcorner Page -- cycle ; p[2] = ulcorner Page -- urcorner Page -- z[4] -- z[3] -- cycle ; p[3] = llcorner Page -- lrcorner Page -- z[6] -- z[5] -- cycle ; p[4] = ulcorner Page -- z[1] -- z[7] -- z[3] -- cycle ; p[5] = llcorner Page -- z[5] -- z[8] -- z[2] -- cycle ; fill Page withcolor \MPcolor{simpleslides:backgroundcolor} ; fill p[1] withcolor \MPcolor{simpleslides:contrastcolor} ; fill p[2] withcolor \MPcolor{simpleslides:contrastcolor} ; fill p[3] withcolor \MPcolor{simpleslides:contrastcolor} ; fill p[4] withcolor \MPcolor{simpleslides:altcontrastcolor} ; fill p[5] withcolor \MPcolor{simpleslides:altcontrastcolor} ; StopPage ; \stopuseMPgraphic \startuseMPgraphic{simpleslides:MP:vertical} StartPage ; save a, b ; numeric a, b ; a = 4.5cm ; b = 0.5cm ; z[1] = ulcorner Page shifted (a,0) ; z[2] = llcorner Page shifted (a,0) ; z[3] = ulcorner Page shifted (0,-b) ; z[4] = urcorner Page shifted (0,-b) ; z[5] = llcorner Page shifted (0,b) ; z[6] = lrcorner Page shifted (0,b) ; z[7] = ulcorner Page shifted (a,-b) ; z[8] = llcorner Page shifted (a,b) ; save p ; path p[] ; p[1] = ulcorner Page -- z[1] -- z[2] -- llcorner Page -- cycle ; p[2] = ulcorner Page -- urcorner Page -- z[4] -- z[3] -- cycle ; p[3] = llcorner Page -- lrcorner Page -- z[6] -- z[5] -- cycle ; p[4] = ulcorner Page -- z[1] -- z[7] -- z[3] -- cycle ; p[5] = llcorner Page -- z[5] -- z[8] -- z[2] -- cycle ; fill Page withcolor \MPcolor{simpleslides:backgroundcolor} ; fill p[1] withcolor \MPcolor{simpleslides:contrastcolor} ; fill p[2] withcolor \MPcolor{simpleslides:contrastcolor} ; fill p[3] withcolor \MPcolor{simpleslides:contrastcolor} ; fill p[4] withcolor \MPcolor{simpleslides:altcontrastcolor} ; fill p[5] withcolor \MPcolor{simpleslides:altcontrastcolor} ; StopPage ; \stopuseMPgraphic %D We define these backgrounds as overlays: \defineoverlay [simpleslides:background:horizontal] [\useMPgraphic{simpleslides:MP:horizontal}] \defineoverlay [simpleslides:background:vertical] [\useMPgraphic{simpleslides:MP:vertical}] \defineoverlay [simpleslides:background:title] [\useMPgraphic{simpleslides:MP:title}] %D We want the title to placed in color. \setupTitle [\c!title=, \c!author=, \c!date=\currentdate, \c!headstyle=, \c!headcolor={simpleslides:backgroundcolor}, \c!align=middle, \c!before=\vfill, \c!after=\vfill, \c!title\c!style={\switchtobodyfont[\TitleSize]}, \c!title\c!color=simpleslides:backgroundcolor, \c!title\c!align=middle, \c!author\c!style=, \c!author\c!color=simpleslides:backgroundcolor, \c!author\c!align=middle, \c!date\c!style=, \c!date\c!color=simpleslides:backgroundcolor, \c!date\c!align=middle, \c!before\c!title=, \c!before\c!author=, \c!before\c!date=, \c!after\c!title={\blank[1*line]}, \c!after\c!author={\blank[2*line]}, \c!after\c!date=] %D We want the slide title on the top \setupSlideTitle [\c!after=, \c!alternative=layer, \c!width=\textwidth, \c!height=2.5cm, \c!color=simpleslides:backgroundcolor] %D The symbol for the first level of itemizations. \definesymbol[1][\useMPgraphic{simpleslides:itemize:square}] %\setupitemize[1][inmargin][color=simpleslides:backgroundcolor] \protect \stopmodule \endinput % Write Macro "Topic" % This macro takes a keyword and appends it to a list (a LUA table?), at the same % time, it puts the keywords into a MPvariable. The complete list is written in % MP to the left of the slide; the current Topic written white on blue, the % others black on gray.