diff options
-rw-r--r-- | Master/texmf-dist/doc/latex/talk/README | 10 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/talk/example.tex | 63 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/talk/talkdoc.pdf | bin | 117210 -> 141703 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/talk/talkdoc.tex | 65 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/talk/Makefile | 11 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/talk/sidebars.sty | 99 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/talk/talk.cls | 71 |
7 files changed, 204 insertions, 115 deletions
diff --git a/Master/texmf-dist/doc/latex/talk/README b/Master/texmf-dist/doc/latex/talk/README index 6c2b4923625..63cdd61c365 100644 --- a/Master/texmf-dist/doc/latex/talk/README +++ b/Master/texmf-dist/doc/latex/talk/README @@ -30,7 +30,6 @@ Requirements The talk class requires the packages amsmath, - graphicx, pgf, multido, hyperref. @@ -66,3 +65,12 @@ v. 1.0.2: - Problem with the papersize in screen mode under pdflatex fixed. +v. 1.1: + +- talk is now compatible with and requires pgf version 1.18. + +- talk no longer requires the graphicx package. + +- \@makeslide is now executed inside a pgfpicture environment. Existing style + packages may have to be adapted. + diff --git a/Master/texmf-dist/doc/latex/talk/example.tex b/Master/texmf-dist/doc/latex/talk/example.tex new file mode 100644 index 00000000000..3cadee32c3c --- /dev/null +++ b/Master/texmf-dist/doc/latex/talk/example.tex @@ -0,0 +1,63 @@ +\documentclass[12pt,screen]{talk} +%\documentclass[12pt,slides]{talk} +%\documentclass[12pt,notes]{talk} + +\usepackage{sidebars} + +\slidesmag{1.5} + +\title{My Test Talk} +\author[John Smith]{John Smith\thanks{Some bloke.}} + + +\begin{document} + +\begin{slide}[plain]{} + \maketitle +\end{slide} +\begin{slide}[outline]{My Table of Contents} + \tableofcontents +\end{slide} + +\section{First Section} + +\begin{slide}{My Title} + Stuff.\footnote{My footnote} +\end{slide} +\begin{notes} + Some notes about this slide. +\end{notes} + +\subsection{First Subsection} +\begin{slide}{Another Title} + More stuff. +\end{slide} +\begin{slide}{Yet Another Title} + Even more stuff. +\end{slide} + +\subsection{Second Subsection} +\begin{slide}{First Slide in Second Subsection} + Blah blah bla... +\end{slide} + +\section{Second Section} + +\begin{slide}{A Slide in Section Two} + ...you get the idea. +\end{slide} + +\subsection{Subsection 2.1} +\begin{multislide}{3}{Multislide Example} + A few bullet points: + \begin{itemize} + \item Bullet 1 + \fromslide{2}{\item Bullet 2} + {\onlyslide*{3}{\color{red}}\item Bullet 3} + \end{itemize} + \onlyslide*{1}{You can only see bullets 1 and 3.}% + \onlyslide*{2}{You can see all bullets.} + \onlyslide*{3}{Now bullet 3 is red.} +\end{multislide} + +\end{document} diff --git a/Master/texmf-dist/doc/latex/talk/talkdoc.pdf b/Master/texmf-dist/doc/latex/talk/talkdoc.pdf Binary files differindex fda4be1bf2a..e6151637094 100644 --- a/Master/texmf-dist/doc/latex/talk/talkdoc.pdf +++ b/Master/texmf-dist/doc/latex/talk/talkdoc.pdf diff --git a/Master/texmf-dist/doc/latex/talk/talkdoc.tex b/Master/texmf-dist/doc/latex/talk/talkdoc.tex index 4fd0b1aa7b6..cc633b52ef4 100644 --- a/Master/texmf-dist/doc/latex/talk/talkdoc.tex +++ b/Master/texmf-dist/doc/latex/talk/talkdoc.tex @@ -65,8 +65,8 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % -The \pkg{talk} class requires the packages \pkg{amsmath}, \pkg{graphicx}, -\pkg{pgf}, \pkg{multido} and \pkg{hyperref}. They can all be obtained from +The \pkg{talk} class requires the packages \pkg{amsmath}, \pkg{pgf} version 1.18 +or above, \pkg{multido} and \pkg{hyperref}. They can all be obtained from \begin{quote} |http://www.ctan.org|. \end{quote} @@ -524,22 +524,26 @@ The |slide| and |multislide| environments store the slide title in the macro the various |\@make|\ldots\ commands you can therefore use |\@slidetitle| and |\@slidebody| to insert the title and body of the current slide. -\DescribeMacro{\@makeslide} -In the |screen| or |slides| mode the |slide| and |multislide| environments call -the |\@makeslide| command, which should produce an LR box of width |\slidewidth| -and height |\slideheight| that contains the actual slide. In the |slides| mode -the output of |\@makeslide| is centered on the page and scaled by the factor -specified in the last call of the |\slidesmag| command. If the |rotate| option -is enabled it is also rotated by 90 degrees in the counterclockwise direction. +\DescribeMacro{\@makeslide} All the graphical wizardry in \pkg{talk} is done by +the \pkg{pgf} package. To generate a slide the |slide| environment executes the +macro |\@makeslide| inside a |pgfpicture| environment. Before the call to +|\@makeslide| it executes several commands that set the bounding box of the +picture to a box of width |\slidewidth| and height |\slideheight| and scales and +rotates the picture in accordance with the on the compilation mode and class +options. The |\@makeslide| macro should therefore expand to a sequence of valid +\pkg{pgf} commands which draw the slide inside a box of width |\slidewidth| and +height |\slideheight|, with the origin located at the lower-left corner. +\DescribeMacro{\@slidebox} To obtain an LR box containing the properly +scaled and rotated slide you can use the |\@slidebox| macro. \DescribeMacro{\@makenotesslide} If you compile in the |notes| mode the |slide| and |multislide| environments call |\@makenotesslide| to insert the current slide. By default the -|\@makenotesslide| command simply centers the output of |\@makeslide| +|\@makenotesslide| command simply centers the |\@slidebox| horizontally: \begin{quote} |\newcommand{\@makenotesslide}{|\\ - | \par\hspace*{\fill}\@makeslide\hspace*{\fill}\par|\\ + | \par\hspace*{\fill}\@slidebox\hspace*{\fill}\par|\\ |}| \end{quote} You can change this behaviour by redefining the |\@makenotesslide| command. For @@ -554,29 +558,20 @@ in your style definition. To change the way the slides appear in the |screen| and |slides| mode you could redefine the |\@makeslide| command. However, usually you'll want to draw the -slide background with some graphics package like \pkg{pgf} and then typeset the -contents of the slide in a parbox of width |\slidewidth| and height -|\slideheight| placed on top of that picture. -\DescribeMacro{\@makeslidebackground}\DescribeMacro{\@makeslidecontent} The -\pkg{talk} class faciliates this task by allowing you to customise the commands -|\@makeslidebackground| and |\@makeslidecontent|. The default definition for -|\@makeslide| is -\begin{quote} - |\newcommand{\@makeslide}{|\\ - | \begin{pgfpicture}{0pt}{0pt}{0pt}{0pt}|\\ - | \@makeslidebackground|\\ - | \end{pgfpicture}|\\ - | \parbox[b][\slideheight][t]{\slidewidth}{|\\ - | \@makeslidecontent|\\ - | }|\\ - |}| -\end{quote} -Thus the |\@makeslidebackground| macro should expand to a series of \pkg{pgf} -commands that draw the background of the slide. Note that the origin of the -\pkg{pgf} coordinate system is at the lower left-hand corner of the slide. The -|\@makeslidecontent| macro should expand to whatever you want to put in the -parbox. Here, you start with the current point in the upper left corner of the -slide. +slide background with \pkg{pgf} and then typeset the contents of the slide in a +minipage of width |\slidewidth| and height |\slideheight| placed on top of that +picture. +\DescribeMacro{\@makeslidebackground}\DescribeMacro{\@makeslidecontent} +Therefore the \pkg{talk} class provides two macros |\@makeslidebackground| and +|\@makeslidecontent| and a default definition for |\@makeslide| which does +exactly the above: It executes |\@makeslidebackground| inside a |pgfpicture| +environment, then covers the slide with a minipage of width |\slidewidth| and +height |\slideheight| and then executes the |\@makeslidecontent| inside the +minipage environment. Thus the |\@makeslidebackground| macro should expand to a +series of \pkg{pgf} commands that draw the background of the slide, with the +origin at the lower-left corner. The |\@makeslidecontent| macro should expand to +whatever you want to put in the minipage. Here, you start with the current point +in the upper left corner of the slide. In this way \pkg{talk} gives you complete artistic freedom in the design of your slides: It lets you define the macros that generate the slides while contents @@ -718,7 +713,7 @@ email to \bigskip \begin{flushright} - Martin Wiebusch, 31.07.2005 + Martin Wiebusch, \today \end{flushright} \end{document} diff --git a/Master/texmf-dist/source/latex/talk/Makefile b/Master/texmf-dist/source/latex/talk/Makefile index 170cc77d11a..8bc7aa86e58 100644 --- a/Master/texmf-dist/source/latex/talk/Makefile +++ b/Master/texmf-dist/source/latex/talk/Makefile @@ -1,11 +1,12 @@ MF=Makefile -INSTALLDIR=${HOME}/tex +INSTALLDIR=${HOME}/share/texmf/tex/latex SRC=\ talk.cls \ sidebars.sty \ -talkdoc.tex +talkdoc.tex \ +example.tex OTHER=\ README @@ -18,12 +19,12 @@ TAR=talk.tar.gz all: $(DOC) $(DOC): talkdoc.tex - latex talkdoc.tex && latex talkdoc.tex && dvipdf talkdoc.dvi + pdflatex talkdoc.tex && pdflatex talkdoc.tex backup: $(MF) $(SRC) $(DOC) $(OTHER) rm -f $(TAR) tar zcvf $(TAR) $(MF) $(SRC) $(DOC) $(OTHER) install: talk.cls sidebars.sty - cp talk.cls $(INSTALLDIR)/talk.cls - cp sidebars.sty $(INSTALLDIR)/sidebars.sty + install talk.cls $(INSTALLDIR)/talk.cls + install sidebars.sty $(INSTALLDIR)/sidebars.sty diff --git a/Master/texmf-dist/tex/latex/talk/sidebars.sty b/Master/texmf-dist/tex/latex/talk/sidebars.sty index 6bdd35ecb97..ecff124bda7 100644 --- a/Master/texmf-dist/tex/latex/talk/sidebars.sty +++ b/Master/texmf-dist/tex/latex/talk/sidebars.sty @@ -33,41 +33,40 @@ \sidebartitlecolor{0,0,0.7} \@newslidestyle{normal}{% - \renewcommand{\@makeslidebackground}{% - \color{sb@bg} - \pgfrect[fill]{\pgfpoint\z@\z@}{\pgfpoint\slidewidth\slideheight}% - \color{sb@sb}% - \pgfrect[fill]{\pgfpoint{5in}\z@}{\pgfpoint{1in}\slideheight}% - \@ifscreen{}{% - \color{black}% - \pgfrect[stroke]{\pgfpoint\z@\z@}{\pgfpoint\slidewidth\slideheight}% - }% - }% - \renewcommand{\@makeslidecontent}{% - \begin{pgfpicture}\z@\z@\z@\z@ - \pgfputat{\pgfpoint{5.1in}{-0.2in}}{% - \pgfbox[left,top]{% - \begin{minipage}[t][4.2in]{0.8in}% - \sffamily\tiny% - {\centering\tiny\sffamily\textcolor{sb@sbt}{\@shorttitle}\par% - \vspace{1em}\@shortauthor\par\vspace{2em}}% - {\parskip=0.8em\@tableofcontents}% - {\vfill\hspace*{\fill}p. \theslidelabel\hspace*{\fill}}% - \end{minipage}% - }% + \renewcommand{\@makeslide}{% + \begin{pgfscope} + \color{sb@bg} + \pgfrect[fill]{\pgfpoint\z@\z@}{\pgfpoint\slidewidth\slideheight}% + \color{sb@sb}% + \pgfrect[fill]{\pgfpoint{5in}\z@}{\pgfpoint{1in}\slideheight}% + \@ifscreen{}{% + \color{black}% + \pgfrect[stroke]{\pgfpoint\z@\z@}{\pgfpoint\slidewidth\slideheight}% }% - \pgfputat{\pgfpoint{0.2in}{-0.2in}}{% - \pgfbox[left,top]{% - \begin{minipage}[t][4.1in]{4.6in}% - \sffamily{\color{sb@title}\LARGE\@slidetitle\par}% - \vspace*{1.5em plus 1fill}% - \parskip=1.5ex plus0.5ex minus0.5ex\@slidebody\par% - \vspace*{0pt plus 1fill}% - \end{minipage}% - }% + \end{pgfscope} + % + \pgfputat{\pgfpoint{5.1in}{4.3in}}{% + \pgfbox[left,top]{% + \begin{minipage}[t][4.2in]{0.8in}% + \sffamily\tiny% + {\centering\tiny\sffamily\textcolor{sb@sbt}{\@shorttitle}\par% + \vspace{1em}\@shortauthor\par\vspace{2em}}% + {\parskip=0.8em\@tableofcontents}% + {\vfill\hspace*{\fill}p. \theslidelabel\hspace*{\fill}}% + \end{minipage}% }% - \end{pgfpicture} - } + }% + \pgfputat{\pgfpoint{0.2in}{4.3in}}{% + \pgfbox[left,top]{% + \begin{minipage}[t][4.1in]{4.6in}% + \sffamily{\color{sb@title}\LARGE\@slidetitle\par}% + \vspace*{1.5em plus 1fill}% + \parskip=1.5ex plus0.5ex minus0.5ex\@slidebody\par% + \vspace*{0pt plus 1fill}% + \end{minipage}% + }% + }% + }% \renewcommand{\@maketocsection}[3]{% \raggedright\noindent% \@ifcurrentsection{##1}{% @@ -91,27 +90,31 @@ \@newslidestyle{plain}{% \renewcommand{\@makeslidebackground}{% - \color{sb@bg} - \pgfrect[fill]{\pgfpoint\z@\z@}{\pgfpoint\slidewidth\slideheight}% - \@ifscreen{}{% - \color{black}% - \pgfrect[stroke]{\pgfpoint\z@\z@}{\pgfpoint\slidewidth\slideheight}% - }% + \begin{pgfscope} + \color{sb@bg} + \pgfrect[fill]{\pgfpoint\z@\z@}{\pgfpoint\slidewidth\slideheight}% + \@ifscreen{}{% + \color{black}% + \pgfrect[stroke]{\pgfpoint\z@\z@}{\pgfpoint\slidewidth\slideheight}% + }% + \end{pgfscope} }% \renewcommand{\@makeslidecontent}{\vspace*{\fill}\@slidebody\vspace*{\fill}}% } \@newslidestyle{outline}{% \renewcommand{\@makeslidebackground}{% - \color{sb@bg} - \pgfrect[fill]{\pgfpoint\z@\z@}{\pgfpoint\slidewidth\slideheight}% - \color{sb@sb} - \pgfrect[fill]{\pgfpoint\z@\z@}{\pgfpoint{0.5in}\slideheight}% - \pgfrect[fill]{\pgfpoint{5.5in}\z@}{\pgfpoint{0.5in}\slideheight}% - \@ifscreen{}{% - \color{black}% - \pgfrect[stroke]{\pgfpoint\z@\z@}{\pgfpoint\slidewidth\slideheight}% - }% + \begin{pgfscope} + \color{sb@bg} + \pgfrect[fill]{\pgfpoint\z@\z@}{\pgfpoint\slidewidth\slideheight}% + \color{sb@sb} + \pgfrect[fill]{\pgfpoint\z@\z@}{\pgfpoint{0.5in}\slideheight}% + \pgfrect[fill]{\pgfpoint{5.5in}\z@}{\pgfpoint{0.5in}\slideheight}% + \@ifscreen{}{% + \color{black}% + \pgfrect[stroke]{\pgfpoint\z@\z@}{\pgfpoint\slidewidth\slideheight}% + }% + \end{pgfscope}% }% \renewcommand{\@makeslidecontent}{% \vspace{0.2in}% diff --git a/Master/texmf-dist/tex/latex/talk/talk.cls b/Master/texmf-dist/tex/latex/talk/talk.cls index 1e9831b33e0..aed90baf644 100644 --- a/Master/texmf-dist/tex/latex/talk/talk.cls +++ b/Master/texmf-dist/tex/latex/talk/talk.cls @@ -12,7 +12,7 @@ \NeedsTeXFormat{LaTeX2e}[1995/12/01] -\ProvidesClass{talk}[2006/07/11 v1.0.2] +\ProvidesClass{talk}[2006/07/11 v1.1] \def\pres@dt@notes{notes} \def\pres@dt@slides{slides} @@ -83,6 +83,8 @@ % \newlength{\slidewidth} \newlength{\slideheight} +\newlength{\pres@hadjust} +\newlength{\pres@vadjust} \def\pres@currentslidestyle{} \def\pres@oldslidestyle{} \def\@slidetitle{} @@ -162,20 +164,20 @@ \def\pres@defaultslidebackground{% \pgfsetlinewidth{0.8pt} \color{black} - \pgfrect[stroke]{\pgfpoint\z@\z@}{\pgfpoint\slidewidth\slideheight} + \pgfrect[stroke]{\pgfpointorigin}{\pgfpoint\slidewidth\slideheight} } \def\pres@restoredefaults{% \gdef\@makeslidecontent{\pres@defaultslide} \gdef\@makeslidebackground{\pres@defaultslidebackground} \gdef\@makeslide{% - \begin{pgfpicture}\z@\z@\z@\z@% - \@makeslidebackground% - \end{pgfpicture}% - \begin{minipage}[b][\slideheight][t]{\slidewidth}% - \@makeslidecontent% - \end{minipage}% + \@makeslidebackground% + \pgfputat{\pgfpointorigin}{\pgfbox[left,bottom]{% + \begin{minipage}[b][\slideheight][t]{\slidewidth}% + \@makeslidecontent% + \end{minipage}% + }}% } - \gdef\@makenotesslide{\par\hspace*{\fill}\@makeslide\hspace*{\fill}\par} + \gdef\@makenotesslide{\par\hspace*{\fill}\@slidebox\hspace*{\fill}\par} \gdef\@maketocsection##1##2##3{} \gdef\@maketocsubsection##1##2##3##4{} } @@ -184,25 +186,39 @@ % the slide environment % +\def\@slidebox{% + \begin{pgfpicture} + \@ifslides{% + \pgftransformscale{\pres@slidesmag}% + \if@pres@rotate + \pgftransformrotate{90}% + \fi + }{}% + \pgfpathrectangle{\pgfpointorigin}{\pgfpoint\slidewidth\slideheight}% + \pgfusepath{use as bounding box}% + \pgflowlevelsynccm% + \@makeslide + \end{pgfpicture}% +} + \@ifnotes{\def\pres@makeslide{\noindent\@makenotesslide}}{} \@ifslides{% \def\pres@makeslide{% \vspace*{\fill}% + \vspace{2\pres@vadjust} \noindent% \hspace*{\fill}% - \scalebox{\pres@slidesmag}{% - \if@pres@rotate% - \rotatebox[origin=c]{90}{\@makeslide}% - \else% - \@makeslide% - \fi% - }% + \hspace{2\pres@hadjust} + \@slidebox% \hspace*{\fill}% \vspace*{\fill}% \newpage% }% }{} -\@ifscreen{\def\pres@makeslide{\noindent\@makeslide\newpage}}{} +\@ifscreen{\def\pres@makeslide{% + \noindent\@slidebox% + \newpage% +}}{} \def\slide{\@ifnextchar[{\@@slide}{\@slide}} \long\def\@@slide[#1]#2{% @@ -308,13 +324,7 @@ \vspace*{\fill}% \noindent% \hspace*{\fill}% - \scalebox{\pres@slidesmag}{% - \if@pres@rotate% - \rotatebox[origin=c]{90}{\@makeslide}% - \else% - \@makeslide% - \fi% - }% + \@slidebox% \hspace*{\fill}% \vspace*{\fill}% \newpage% @@ -327,8 +337,7 @@ \def\theslidelabel{\thesubslide} \multido{}{\pres@msmax}{% \refstepcounter{subslide} - \noindent% - \@makeslide% + \noindent\@slidebox% \newpage% }% }% @@ -387,6 +396,16 @@ \@ifslides{\pres@removemargins}{}% } \def\slidesmag#1{\gdef\pres@slidesmag{#1}} +\def\slidesadjust#1#2{% + \if@pres@rotate + \setlength{\pres@hadjust}{#2}% + \setlength{\pres@vadjust}{#1}% + \setlength{\pres@vadjust}{-\pres@vadjust}% + \else + \setlength{\pres@hadjust}{#1}% + \setlength{\pres@vadjust}{#2}% + \fi +} \@slidesize{4in}{3in} \@ifnotes{}{\pagestyle{empty}} |