From 14af3f447439750920f754792b89f113d019076a Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Tue, 22 May 2007 17:41:52 +0000 Subject: texpower update git-svn-id: svn://tug.org/texlive/trunk@4334 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/source/latex/texpower/Makefile | 10 + .../texmf-dist/source/latex/texpower/powersem.dtx | 4 +- .../source/latex/texpower/texpower-addons.dtx | 494 +-------------- .../source/latex/texpower/texpower-cfg.dtx | 4 +- .../source/latex/texpower/texpower-doc.dtx | 684 ++++++--------------- .../texmf-dist/source/latex/texpower/texpower.dtx | 347 ++++++++--- .../texmf-dist/source/latex/texpower/tpbundle.ins | 18 +- .../texmf-dist/source/latex/texpower/tplists.dtx | 666 ++++++++++++++++++++ 8 files changed, 1120 insertions(+), 1107 deletions(-) create mode 100644 Master/texmf-dist/source/latex/texpower/tplists.dtx (limited to 'Master/texmf-dist/source/latex/texpower') diff --git a/Master/texmf-dist/source/latex/texpower/Makefile b/Master/texmf-dist/source/latex/texpower/Makefile index 2090f272cac..c49ea019425 100644 --- a/Master/texmf-dist/source/latex/texpower/Makefile +++ b/Master/texmf-dist/source/latex/texpower/Makefile @@ -12,6 +12,7 @@ help: @echo ' - manual: Builds the user docs ' @echo ' - doc: Builds texpower package docs ' @echo ' - doc-powersem: Builds powersem class docs ' + @echo ' - doc-tplists: Builds tplists docs ' @echo ' - clean: Remove all generate/junk files ' @echo '**********************************************' @@ -24,6 +25,8 @@ unpack: @echo ' % make doc ' @echo ' To make powersem class implementation docs ' @echo ' % make doc-powersem ' + @echo ' To make tplists package docs ' + @echo ' % make doc-tplists ' @echo '**********************************************' all: unpack doc doc-powersem manual @@ -43,6 +46,13 @@ doc-powersem: makeindex -s gglo.ist -o powersem.gls powersem.glo makeindex -s gind.ist -o powersem.ind powersem.idx pdflatex powersem.dtx + +doc-tplists: + pdflatex tplists.dtx + pdflatex tplists.dtx + makeindex -s gglo.ist -o tplists.gls tplists.glo + makeindex -s gind.ist -o tplists.ind tplists.idx + pdflatex tplists.dtx manual: manual.tex pdflatex manual.tex diff --git a/Master/texmf-dist/source/latex/texpower/powersem.dtx b/Master/texmf-dist/source/latex/texpower/powersem.dtx index a1283eca455..9aa23d72baf 100644 --- a/Master/texmf-dist/source/latex/texpower/powersem.dtx +++ b/Master/texmf-dist/source/latex/texpower/powersem.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -------------------------------------------------------------- -% TeXPower bundle - dynamic online presentations with LaTeX +% Part of the TeXPower bundle % Copyright (C) 1999-2004 Stephan Lehmke % % This program is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ % GNU General Public License for more details. % -------------------------------------------------------------- % -% powersem.dtx,v 1.2 2004/07/27 12:09:32 hansfn Exp +% powersem.dtx,v 1.3 2005/03/28 22:31:01 hansfn Exp % % \fi % diff --git a/Master/texmf-dist/source/latex/texpower/texpower-addons.dtx b/Master/texmf-dist/source/latex/texpower/texpower-addons.dtx index 56f04d69829..0177aea101f 100644 --- a/Master/texmf-dist/source/latex/texpower/texpower-addons.dtx +++ b/Master/texmf-dist/source/latex/texpower/texpower-addons.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -------------------------------------------------------------- -% TeXPower bundle - dynamic online presentations with LaTeX +% Part of the TeXPower bundle % Copyright (C) 1999-2004 Stephan Lehmke % % This program is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ % GNU General Public License for more details. % -------------------------------------------------------------- % -% texpower-addons.dtx,v 1.2 2004/07/27 11:39:45 hansfn Exp +% texpower-addons.dtx,v 1.3 2005/03/28 22:36:05 hansfn Exp % % \fi % @@ -1241,496 +1241,6 @@ }{} %KEEPCOMMENTS % -% =============================================================================== -%<*tplists> -%< to stop and fix the nested list. - } - \else\iftpl@instepenv - \begin{#1} - \renewcommand{\item}{\tpl@dimstep\tpl@origitem}% - #2 - \end{#1}% - \else - \iftpl@inpausestepenv\let\liststepwise=\stepwise\fi - \liststepwise{% - \begin{#1} - \iftpl@inpausestepenv\else - \iftpl@instepenv\else\let\tpl@origitem=\item\fi - \fi - \tpl@instepenvtrue - \tpl@indimenvtrue - \renewcommand{\item}{\tpl@dimstep\tpl@origitem}% - #2 - \end{#1}} - \fi\fi -} - -\newcommand\@dimitem[1]{% - \@dimlist{olditemize}{#1}} -\newcommand\@dimenum[1]{% - \@dimlist{oldenumerate}{#1}} -\ifthenelse{\boolean{tpl@eqlist}}{% -\newcommand\@dimeqlist[1]{% - \@dimlist{oldeqlist}{#1}} -\newcommand\@dimcompacteqlist[1]{% - \@dimlist{compacteqlist}{#1}} -}{} -\ifthenelse{\boolean{tpl@paralist}}{% -\newcommand\@dimcompactitem[1]{% - \@dimlist{oldcompactitem}{#1}} -\newcommand\@dimcompactenum[1]{% - \@dimlist{oldcompactenum}{#1}} -}{} - -%%% Defining stepped - itemize / enumerate / eqlist / -%%% compact itemize / compact enumerate / compact eqlist - environments. -\newenvironment{stepitem}[1][0cm]{% - \tpl@addmargin{#1} - \tpl@collect@body\@stepitem}% - {\global\@ignoretrue} -\newenvironment{stepenum}[1][0cm]{% - \tpl@addmargin{#1} - \tpl@collect@body\@stepenum}% - {\global\@ignoretrue} -\ifthenelse{\boolean{tpl@eqlist}}{% -\newenvironment{stepeqlist}[1][0cm]{% - \tpl@collect@body\@stepeqlist}% - {\global\@ignoretrue} -\newenvironment{stepcompacteqlist}[1][0cm]{% - \tpl@collect@body\@stepcompacteqlist}% - {\global\@ignoretrue} -}{} -\ifthenelse{\boolean{tpl@paralist}}{% -\newenvironment{stepcompactitem}[1][0cm]{% - \tpl@addmargin{#1} - \tpl@collect@body\@stepcompactitem}% - {\global\@ignoretrue} -\newenvironment{stepcompactenum}[1][0cm]{% - \tpl@addmargin{#1} - \tpl@collect@body\@stepcompactenum}% - {\global\@ignoretrue} -}{} - -\ifthenelse{\boolean{tpl@pausestep}}{% -% Using \pause for step* lists -\newcommand\@steplist[2]{% - \iftpl@inflipenv - \PackageError{tplists}{% - flip* followed by step* environment does NOT work \MessageBreak - when the pausestep option is used}{% - Do not continue! Type to stop and fix the nested list. - } - \else\iftpl@indimenv - \PackageError{tplists}{% - dim* followed by step* environment does NOT work \MessageBreak - when the pausestep option is used}{% - Do not continue! Type to stop and fix the nested list. - } - \else - \begin{#1} - \iftpl@inpausestepenv\else\let\tpl@origitem=\item\fi - \tpl@inpausestepenvtrue - \renewcommand{\item}{\pause\tpl@origitem}% - #2 - \end{#1} - \fi\fi -} -}{ -% Using \liststepwise for step* lists -\newcommand\@steplist[2]{% - \iftpl@inflipenv - \begin{#1} - \renewcommand{\item}{\tpl@flipstep\tpl@origitem} - #2 - \end{#1}% - \else\iftpl@indimenv - \begin{#1} - \renewcommand{\item}{\dstep\tpl@origitem}% - #2 - \end{#1}% - \else\iftpl@instepenv - \begin{#1} - \renewcommand{\item}{\vstep\tpl@origitem}% - #2 - \end{#1}% - \else - \liststepwise{% - \begin{#1} - \iftpl@instepenv\else\let\tpl@origitem=\item\fi - \tpl@instepenvtrue - \renewcommand{\item}{\vstep\tpl@origitem}% - #2 - \end{#1}} - \fi\fi\fi -} -} - -\newcommand\@stepitem[1]{% - \@steplist{olditemize}{#1}} -\newcommand\@stepenum[1]{% - \@steplist{oldenumerate}{#1}} -\ifthenelse{\boolean{tpl@eqlist}}{% -\newcommand\@stepeqlist[1]{% - \@steplist{oldeqlist}{#1}} -\newcommand\@stepcompacteqlist[1]{% - \@steplist{compacteqlist}{#1}} -}{} -\ifthenelse{\boolean{tpl@paralist}}{% -\newcommand\@stepcompactitem[1]{% - \@steplist{oldcompactitem}{#1}} -\newcommand\@stepcompactenum[1]{% - \@steplist{oldcompactenum}{#1}} -}{} - -%%% Defining compact eqlist -\newenvironment{compacteqlist}[1][0cm]{% - % \tpl@addmargin{#1} - \begin{eqlist}[\parsep0pt\itemsep0pt]}% - {\end{eqlist}} - - -%%% Redefining enumerate and itemize to handle changes made by -%%% introducing steps and leftmargini-option. -\renewenvironment{enumerate}[1][0cm]{% - \tpl@addmargin{#1} - \begin{oldenumerate} - \iftpl@instepenv - \renewcommand{\item}{\tpl@origitem}% - \fi - }% - {\end{oldenumerate}} - -\renewenvironment{itemize}[1][0cm]{% - \tpl@addmargin{#1} - \begin{olditemize} - \iftpl@instepenv - \renewcommand{\item}{\tpl@origitem}% - \fi - }% - {\end{olditemize}} - -%%% Redefining compactenum and compactitem to handle changes made by -%%% introducing steps and leftmargini-option. -\ifthenelse{\boolean{tpl@paralist}}{% -\renewenvironment{compactenum}[1][0cm]{% - \tpl@addmargin{#1} - \begin{oldcompactenum} - \iftpl@instepenv - \renewcommand{\item}{\tpl@origitem}% - \fi - }% - {\end{oldcompactenum}} - -\renewenvironment{compactitem}[1][0cm]{% - \tpl@addmargin{#1} - \begin{oldcompactitem} - \iftpl@instepenv - \renewcommand{\item}{\tpl@origitem}% - \fi - }% - {\end{oldcompactitem}} -}{} -%KEEPCOMMENTS -% %======================================================================================================================= %<*tppstcol> %<\ProvidesFile{FAQ-display.tex}% %\ProvidesFile{FAQ-printout.tex}% -% [2004/07/27 TeXPower FAQ] +% [2005/04/07 TeXPower FAQ] % %\ProvidesFile{manual.tex}% -% [2004/07/27 TeXPower manual] +% [2005/04/07 TeXPower manual] %\ProvidesFile{fulldemo.tex}% -% [2004/07/27 TeXPower full demo and manual] +% [2005/04/07 TeXPower full demo and manual] % %\ProvidesFile{bckwrdexample.tex}% %\ProvidesFile{bgndexample.tex}% @@ -62,9 +63,18 @@ %\ProvidesFile{slidesdemo.tex}% %\ProvidesFile{spanelexample.tex}% %\ProvidesFile{tabexample.tex}% -% [2004/07/27 TeXPower example file] -% [2004/07/27 TeXPower example file] -% [2004/07/27 TeXPower example file] +%\ProvidesFile{verbexample.tex}% +% [2005/04/07 TeXPower example file] +% [2005/04/07 TeXPower example file] +% [2005/04/07 TeXPower example file] +% +%<*version> +%< % % \CheckSum{0} % @@ -87,17 +97,11 @@ %<*config> %< -% -% v0.0.1 Mar 22, 2000: First version for the pre-alpha release of TeXPower. -% \hypersetup{baseurl={http://texpower.sourceforge.net/doc/}} \hypersetup{pdfsubject={Documentation and Examples for the texpower package}} \hypersetup{pdfauthor={Stephan Lehmke}} @@ -137,18 +141,6 @@ % Document class powersem, based on seminar.cls for simulating ppower via latex+distiller (instead of pdflatex). % {powersem} -%----------------------------------------------------------------------------------------------------------------- -% -% First part of the preamble of TeXPower demos. -% -%----------------------------------------------------------------------------------------------------------------- -% Autor: Stephan Lehmke -% -% v0.0.1 Mar 20, 2000: First version for the pre-alpha release of TeXPower. -% v0.0.2 Mar 21, 2000: Remedying an incompatibility between LaTeX releases concerning the implementation of -% \@iiiparbox (Apr 11: this code is now part of texpower.sty). -% v0.0.3 Apr 11, 2000: Color emphasis code moved into texpower. -% %----------------------------------------------------------------------------------------------------------------- % Set slide margins rather small for maximum use of space. This is a demo, remember. @@ -202,24 +194,10 @@ \let\name=\textsc -% Second part of the preamble of TeXPower demos. -% -%----------------------------------------------------------------------------------------------------------------- -% Autor: Stephan Lehmke -% -% v0.0.1 Mar 20, 2000: First version for the pre-alpha release of TeXPower. -% v0.0.2 Mar 22, 2000: Now loading the config file. -% v0.0.3 Mar 29, 2000: texpower doesn't load hyperref any more; there's now a package fixseminar. -% v0.0.4 Apr 19, 2000: Added \slidetitle command. -% v0.0.5 Sep 11, 2000: Added plainpages=false to the hyperref options to get correct page anchors. -% v0.0.5 Sep 11, 2002: Slight changes to title page. -% - - %----------------------------------------------------------------------------------------------------------------- % We load hyperref and fixseminar which fixes some problems with seminar. % -\usepackage[plainpages=false,bookmarksopen,colorlinks,urlcolor=red,pdfpagemode=FullScreen]{hyperref} +\usepackage[ps2pdf,plainpages=false,bookmarksopen,colorlinks,urlcolor=red,pdfpagemode=FullScreen]{hyperref} \usepackage{fixseminar} %----------------------------------------------------------------------------------------------------------------- @@ -293,34 +271,7 @@ %================================================================================================================= %<*faq-disp> %< -% -% v0.0.1 May 31, 2000: First version for the pre-alpha release of TeXPower. -% -% v0.0.2 Jun 14, 2000: Changed slidesmag to 4 so slides look less `squeezed'. The `display' version is for demonstrating -% effects, not a template for `real' presentations. -% -%----------------------------------------------------------------------------------------------------------------- % Enable all color emphasis and highlighting options; use a light background and slifonts. \PassOptionsToPackage{coloremph,colormath,colorhighlight,lightbackground}{texpower} @@ -358,16 +309,6 @@ %================================================================================================================= %<*faq-print> %< -% -% v0.0.1 May 31, 2000: First version for the pre-alpha release of TeXPower. -% \documentclass[12pt]{scrartcl} @@ -448,22 +389,6 @@ %================================================================================================================= %<*faq> %< -% -% v0.0.1 May 31, 2000: First version for the pre-alpha release of TeXPower. -% -% v0.0.2 Jun 9, 2000: Some additions in the `problems' and `how to' section. -% -% v0.0.3 Jun 15, 2000: Additions in the `usage', `how to', and `problems' sections. -% -% v0.0.4 Jun 22, 2000: Additions in the `usage' and `problems' section. -% -% v0.0.5 May 15, 2003: Update related to move to SourceForge.net. -% -\def\docversion{v0.0.5 of May 15, 2003} -\def\tpversion{v0.0.9d of May 15, 2003} \providecommand{\vanishcolor}{} @@ -475,7 +400,7 @@ \makeslidetitle {% Frequently asked questions list% - \thanks{FAQ \docversion\ for \TeX Power \tpversion\ (alpha).}% + \thanks{FAQ for \TeX Power \tpversion .}% }% \setcounter{firststep}{0} @@ -1068,18 +993,6 @@ to release the counter \code{mycounter}. %================================================================================================================= %<*manual> %< -% -% v0.0.1 Mar 20, 2000: First version for the pre-alpha release of TeXPower. -% -% v0.0.2 Apr 11, 2000: Now producing a document which is meant for printing on paper. -% \documentclass[12pt]{scrartcl} @@ -1176,49 +1089,6 @@ to release the counter \code{mycounter}. %================================================================================================================= %<*fulldemo> %< -% -% v0.0.1 Oct 26, 1999: seven examples completed; parts of inline documentation -% -% v0.0.2 Feb 18, 2000: inline documentation of examples completed -% -% v0.0.3 Mar 1, 2000: added examples for \pause and page transitions; Documentation section started -% -% v0.0.4 Mar 10, 2000: Documentation for the first pre-alpha release completed -% -% v0.0.5 Mar 20, 2000: Documentation split into several files to reduce compilation problems; tested with pdflatex -% -% v0.0.6 May 2, 2000: Some small changes in preparation of the update to TeXpower v0.0.7. -% -% v0.0.7 May 24, 2000: Some small changes in preparation of the update to TeXpower v0.0.8. -% -% v0.0.8 Aug 29, 2000: Added backgroundstyle command for the update to TeXpower v0.0.9. -% - - -%----------------------------------------------------------------------------------------------------------------- - -% Version info -\def\tpversion{v0.0.9d of May 15, 2003 (alpha)} % Enable all color emphasis and highlighting options; use a light background and slifonts. @@ -1244,6 +1114,7 @@ to release the counter \code{mycounter}. {% Yes. % PsTricks is used for creating the picture example. + \usepackage[noxcolor]{pstricks} \usepackage{pstcol} \usepackage{pst-node} @@ -1323,12 +1194,12 @@ to release the counter \code{mycounter}. \newslide \minisec{Disclaimer} - This is a \emph{alpha} release of the \TeX Power bundle. + This is still work inprogress. During the subsequent error correction and extension of the functionality, the syntax and implementation of the macros described here are liable to change. - The transformation to the dtx format is also not completed. + Even though we are using dtx-files, these are still not fully documented dtx-files. \newslide @@ -1422,44 +1293,11 @@ to release the counter \code{mycounter}. %================================================================================================================= %<*docu> %< -% -% v0.0.1 Mar 20, 2000: First version for the pre-alpha release of TeXPower. -% -% v0.0.2 Mar 29, 2000: Added `usage and basic options' section. -% -% v0.0.3 Apr 04, 2000: Added `Color Emphasis and Highlighting' section. -% -% v0.0.4 Apr 12, 2000: A lot of small additions in preparation of the update to TeXpower v0.0.7. -% -% v0.0.5 May 31, 2000: Updated for TeXpower v0.0.8. -% -% v0.0.6 Jun 09, 2000: Some updates for TeXpower v0.0.8b. -% -% v0.0.6a Jun 13, 2000: Some updates for TeXpower v0.0.8c. -% -% v0.0.6b Jun 23, 2000: Some updates for TeXpower v0.0.8e. -% -% v0.0.6c Jul 25, 2000: Some updates for TeXpower v0.0.8g. Colors section rewritten for new color management kernel. -% -% v0.0.7 May 15, 2003: Added index and updates for TeXpower v0.0.9d. -% -% v0.0.8 July 27, 2004: Added the "Miscellaneous commands" section. Moved the tpslifonts doc into tpslifonts.dtx. -% -%----------------------------------------------------------------------------------------------------------------- -% -\def\docversion{v0.0.8 of July 27, 2004} -\def\tpversion{v0.1b of July 27, 2004} \makeslidetitle {% Documentation% - \thanks{Documentation \docversion\ for \TeX Power \tpversion\ (alpha).}% + \thanks{Documentation for \TeX Power \tpversion .}% }% The \TeX Power bundle contains style and class files for creating dynamic online presentations with \LaTeX. @@ -1491,9 +1329,6 @@ The other, more sophisticated examples demonstrate the expressive power of the \code{texpower} package. Look at the commented code of these examples to find out how to achieve special effects and create your own presentation effects with \TeX Power. -For the first \emph{alpha} release, this documentation will be completed. For the first \emph{beta} release, when the -code is a little more stable, the \code{texpower} package will be made into a properly documented \code{.dtx} file. - \newslide %----------------------------------------------------------------------------------------------------------------- @@ -1554,11 +1389,22 @@ This way, not only `visible' page contents will be duplicated, but also some `in side effects. For instance, a \macroname{section} command creates a whatsit for writing the table of contents entry. Duplicating this -whatsit will also duplicate the toc entry. +whatsit will also duplicate the toc entry. So, whatsit items effecting file access are inhibited when duplicating page +material. \newslide -So, whatsit items effecting file access are inhibited when duplicating page material. +The current version of \code{texpower} is a little smarter when handling whatsits. Some commands (related to writing to +files and hyperlinks) are made stepwise-aware. This means that links can point to the actual subpage where the +anchor is and not to the last (sub)page of an incremental page. However, if you want the old behaviour just use +\begin{description} +\item[\present{option: \code{oldfiltering}}]\indexpckopt{texpower}{oldfiltering} switches on the old + (pre 0.2) very aggressive/robust filtering of whatsits. +\end{description} +The \code{oldfiltering} can be turned on and off inside the document using \macroname{oldfilteringon/off}. This command is +useful if \code{texpower} isn't smart enough... + +\newslide A second type of whatsits is created by \TeX's \macroname{special} command which is used for instance for color management. Some drivers, like \code{dvips} and \code{textures}, use a color stack which is controlled by @@ -1641,6 +1487,10 @@ There are some boolean registers provided and set automatically by \code{texpowe \subsection{Miscellaneous commands}\label{Sec:MiscCmd} Some important commands that don't fit in the latter sections: \begin{description} +\item[\present{\macroname{oldfilteringon}}]\indexmacro{oldfilteringon} + reverts to the old (pre v0.2) aggressive/robust filtering of whatsits. +\item[\present{\macroname{oldfilteringoff}}]\indexmacro{oldfilteringoff} + turns on the new better treatment of whatsits. \item[\present{\commandapp{currentpagevalue}{\carg{value}}}]\indexmacro{currentpagevalue} sets how to find the number of the current page, \commandapp{value}{page} is default. Used to name the hyper target on the first subpage of every page. Also used in the @@ -1653,6 +1503,17 @@ Some important commands that don't fit in the latter sections: \newslide +\subsection{Page Anchors}\label{Sec:PageAnch} + +For each physical page \TeX Power (when in display mode) makes a number of subpages - this is +the dynamics. For convenience \TeX Power defines an anchor to the first subpage of physical page n, +\code{firstpage.n}\indexcode{firstpage.n}. The standard page anchor for physical page n, +\code{page.n}\indexcode{page.n}, points to the last subpage of physical page n. If you want to +link to any other subpage just insert a \macroname{hyperlink} in the standard way assuming you haven't +turned on the old filtering (\ref{Sec:Dupl}). + +\newslide + \subsection{Dependencies on other packages} \code{textpower} always loads the packages \code{ifthen} and \code{calc}, as the extended command syntax provided by these is indispensable for the macros to work. They are in the \code{base} and \code{tools} area of the \LaTeX{} @@ -1693,8 +1554,8 @@ The following packages are neccessary for certain features of \code{texpower}: \subsection{What else is part of the \TeX Power bundle?} Besides the package \code{texpower} (which is described here), there are four more packages, \code{tpslifonts}, \code{fixseminar}, \code{automata} and -\code{tplists}, and one document class, -\code{powersem}, in the \TeX Power bundle which so far have no documentation +\code{tplists}, and one document class, \code{powersem}, in the \TeX Power bundle. +Except for \code{tpslifonts} and \code{tplists} these files have no documentation of their own. They will be described in this section until they are turned into \code{dtx} files producing their own documentation. @@ -1811,7 +1672,7 @@ automata are supported so far. \minisec{The package \code{tplists}}\indexfile{tplists}{package} Experimental package providing easy dynamic lists. Currently there are stepped, flipped and dimmed versions of itemize and enumerate (and corresponding lists from the \code{eqlist} and \code{paralist} package). For more information -and an example read the start of the file \code{tplists.sty}. +and an example, compile (and then read) the file \code{tplists.dtx}. \newslide @@ -1910,8 +1771,8 @@ and an example read the start of the file \code{tplists.sty}. \emph{completely} into \carg{contents}, where \macroname{step} can be used freely (see \nameref{Sec:Ex}). \item As \carg{contents} is read as a macro argument, constructs involving \concept{catcode} changes (like - \macroname{verb} or language switches) won't work in \carg{contents}. Using a suggestion by \name{Ross - Moore}, I hope to remedy this until the \emph{alpha} release. + \macroname{verb} or language switches) won't work in \carg{contents} \textbf{unless} you use the + \code{fragilesteps} environment (\ref{Sec:fragilesteps}). \newslide @@ -1935,13 +1796,19 @@ and an example read the start of the file \code{tplists.sty}. Commands accessing toc files and such (like \macroname{section}) are taken care of by the whatsit suppression mechanism (compare section \ref{Sec:Dupl}). + \end{enumerate} - Labels and hyperlinks work sort of (giving a lot of warnings though). + \newslide + + \subsection{\code{fragilesteps} environment}\label{Sec:fragilesteps}% - I will try to remedy remaining problems until the first \emph{alpha} release. - \end{enumerate} + The \code{fragilesteps}\indexcode{fragilesteps} environment is a wrapper around \macroname{stepwise} + that makes it possible to use verbatim. The code for this environment is based on similar code from beamer - an + excellent presentation class written by Till Tantau - thanks! Using the \code{fragilesteps} environment + enables the use of the \code{listings} package to display code line by line. There are some examples in + \code{verbexample.tex}. - \newslide + \newslide \subsection{\macroname{boxedsteps} and \macroname{nonboxedsteps}}\label{Sec:boxedsteps}% By default, \carg{stepcontents} belonging to a \macroname{step} which is not yet `active' are ignored altogether. This @@ -1988,11 +1855,9 @@ and an example read the start of the file \code{tplists.sty}. \subsection{Custom versions of \macroname{stepwise}}% Sometimes, it might happen that vertical spacing is different on every page of a sequence generated by - \macroname{stepwise}, making lines `wobble'. + \macroname{stepwise}, making lines `wobble'. This is usually fixed if you use \macroname{liststepwise} or + \macroname{parstepwise} (described below) in stead of \macroname{stepwise}. - This is caused by interactions between different ways vertical spacing is added to the page. Hopefully, problems - caused this way can be reduced until the first \emph{alpha} release. - \newslide There are two custom versions of \macroname{stepwise} which should produce better vertical spacing. @@ -3557,32 +3422,9 @@ and an example read the start of the file \code{tplists.sty}. %<*bckwrdexample> %< -% -% v0.0.1 Mar 20, 2000: First version for the pre-alpha release of TeXPower. -% -% v0.0.2 Apr 26, 2000: Some small changes in preparation of the update to TeXpower v0.0.7. -% -% v0.0.3 May 18, 2000: New file name to avoid confusion with ``background''. -% %----------------------------------------------------------------------------------------------------------------- % Set background color to black and use slifonts. @@ -3682,23 +3524,9 @@ and an example read the start of the file \code{tplists.sty}. %<*bgndexample> %< -% -% v0.0.1 Aug 10, 2000: First version for the pre-alpha release of TeXPower. -% -% v0.0.2 Apr 29, 2003: Adapted to TeXPower v0.0.9c. -% -%COMMENT %----------------------------------------------------------------------------------------------------------------- % Use slifonts and a dark background. @@ -3746,16 +3574,6 @@ and an example read the start of the file \code{tplists.sty}. % %<*bgndexample-src> %< -% -% v0.0.1 Aug 12, 2000: First version for the pre-alpha release of TeXPower. -% -% v0.0.2 Apr 29, 2003: Adapted to TeXPower v0.0.9c. -% -%----------------------------------------------------------------------------------------------------------------- -% - \centerslidestrue \title{The \TeX Power bundle\\[2ex]{\normalfont Structured @@ -4091,33 +3909,9 @@ Applications of gradients: %<*divexample> %< -% -% v0.0.1 Mar 20, 2000: First version for the pre-alpha release of TeXPower. -% -% v0.0.2 Apr 26, 2000: Some small changes in preparation of the update to TeXpower v0.0.7. -% -% v0.0.3 May 18, 2000: New file name. -% - %----------------------------------------------------------------------------------------------------------------- % We input the generic preamble. @@ -4196,9 +3990,7 @@ Applications of gradients: %================================================================================================================= %<*fancyexample> %< %< -% -% v0.0.1 May 25, 2000: First version for the pre-alpha release of TeXPower. -% \documentclass[landscape]{foils} @@ -4550,39 +4337,9 @@ Applications of gradients: %<*hilitexample> %< -% -% v0.0.1 Mar 20, 2000: First version for the pre-alpha release of TeXPower. -% -% v0.0.2 Apr 27, 2000: Some small changes in preparation of the update to TeXpower v0.0.7. -% Added demo for \highlighttext. -% Itemize demo now checks whether color is activated. -% -% v0.0.3 May 26, 2000: Added an example for how to make the text in a paragraph `stand out' from the background. -% -% v0.0.4 Jun 07, 2000: Now using \hidedimmed and \highlightenhanced. -% -% v0.0.5 Jul 19, 2000: stepitemize example rewritten for TeXPower v0.0.8g. -% - %----------------------------------------------------------------------------------------------------------------- % Use slifonts. @@ -4732,17 +4489,10 @@ Instead of displaying incrementally, we can just `flip through' some items by hi %<*ifmslidemo> %< -% -% v0.0.1 May 25, 2000: First version for the pre-alpha release of TeXPower. -% -% v0.0.2 Jul 31, 2000: Slightly updated for ifmslide v0.43. -% \documentclass[KOMA,landscape,display]{powersem} @@ -4942,38 +4692,9 @@ Instead of displaying incrementally, we can just `flip through' some items by hi %<*mathexample> %< -% -% v0.0.1 Mar 20, 2000: First version for the pre-alpha release of TeXPower. -% -% v0.0.2 Apr 19, 2000: Using \bstep instead of \boxedsteps. -% -% v0.0.3 Apr 27, 2000: Some small changes in preparation of the update to TeXpower v0.0.7. -% -% v0.0.4 May 24, 2000: texpower 0.0.8 now supports equation numbers in the argument of \stepwise, so align* was -% changed to align. -% - - - %----------------------------------------------------------------------------------------------------------------- % Enable all color emphasis and highlighting options. Use white background and slifonts. @@ -5027,7 +4748,7 @@ Instead of displaying incrementally, we can just `flip through' some items by hi % frame is reduced. \setlength{\highlightboxsep}{1pt}% % - \begin{align} + \begin{align*} \lefteqn {% \min @@ -5155,7 +4876,7 @@ Instead of displaying incrementally, we can just `flip through' some items by hi \right) \right) } - \end{align} + \end{align*} }% \newslide %KEEPCOMMENTS @@ -5164,26 +4885,9 @@ Instead of displaying incrementally, we can just `flip through' some items by hi %<*panelexample> %< -% -% v0.1 Nov 14, 2000: First version for the pre-alpha release of TeXPower. -% -% v0.2 May 02, 2003: English version. -% - %------------------------------------------------------------------------------ % Enable all color emphasis and highlighting options. Use white % background and slifonts. @@ -5451,33 +5155,9 @@ Instead of displaying incrementally, we can just `flip through' some items by hi %<*parexample> %< -% -% v0.0.1 Mar 20, 2000: First version for the pre-alpha release of TeXPower. -% -% v0.0.2 Apr 27, 2000: Some small changes in preparation of the update to TeXpower v0.0.7. -% -% v0.0.3 May 26, 2000: Added an example for \hidetext. -% - %----------------------------------------------------------------------------------------------------------------- % Use slifonts. @@ -5563,18 +5243,11 @@ Instead of displaying incrementally, we can just `flip through' some items by hi %<*pdfscrdemo> %< -% -% v0.0.1 May 25, 2000: First version for the pre-alpha release of TeXPower. -% -% v0.0.2 Jul 31, 2000: Slightly updated for PDFScreen v.1.5. -% \documentclass[12pt]{article} @@ -5773,15 +5446,10 @@ Instead of displaying incrementally, we can just `flip through' some items by hi %<*pdfslidemo> %< -% -% v0.0.1 May 25, 2000: First version for the pre-alpha release of TeXPower. -% \documentclass{article} @@ -5979,32 +5647,9 @@ Instead of displaying incrementally, we can just `flip through' some items by hi %<*picexample> %< -% -% v0.0.1 Mar 20, 2000: First version for the pre-alpha release of TeXPower. -% -% v0.0.2 Apr 27, 2000: Some small changes in preparation of the update to TeXpower v0.0.7. -% %----------------------------------------------------------------------------------------------------------------- % Use slifonts and a dark background. @@ -6021,6 +5666,7 @@ Instead of displaying incrementally, we can just `flip through' some items by hi {% Yes. % PsTricks (sic) is used for creating the picture example. + \usepackage[noxcolor]{pstricks} \usepackage{pstcol} \usepackage{pst-node} @@ -6053,19 +5699,12 @@ Instead of displaying incrementally, we can just `flip through' some items by hi %================================================================================================================= %<*picltxexample> %< -% -% v0.0.1 Mar 21, 2000: First version for the pre-alpha release of TeXPower. -% -% v0.0.2 Apr 19, 2000: Using \bstep instead of \boxedsteps. -% -% v0.0.3 Apr 28, 2000: Some small changes in preparation of the update to TeXpower v0.0.7. -% % % This has nothing to do with \stepwise, just setting up the picture... @@ -6079,15 +5718,15 @@ Instead of displaying incrementally, we can just `flip through' some items by hi % % In the following picture, picture items are built incrementally. % - % \stepwise generates a sequence of slides, all alike. The only difference ist that on every slide, one more of the + % \parstepwise generates a sequence of slides, all alike. The only difference ist that on every slide, one more of the % \step commands occurring in the argument of \stepwise are `activated'. This way the stuff inside the argument of - % \stepwise is gone through `step by step'. + % \parstepwise is gone through `step by step'. (\parstepwise is a special case of \stepwise.) % {% \setlength{\unitlength}{1.35\semcm}% \footnotesize% \setlength{\fboxsep}{1.5pt}% - \stepwise + \parstepwise {% \begin{center} \begin{picture}(12,13)(-7,-16) @@ -6179,16 +5818,6 @@ Instead of displaying incrementally, we can just `flip through' some items by hi % % This file is input by others. Don't compile it separately. % -%----------------------------------------------------------------------------------------------------------------- -% Autor: Stephan Lehmke -% -% v0.0.1 Mar 21, 2000: First version for the pre-alpha release of TeXPower. -% -% v0.0.2 Apr 19, 2000: Using \bstep instead of \boxedsteps. -% -% v0.0.3 Apr 28, 2000: Some small changes in preparation of the update to TeXpower v0.0.7. -% - %----------------------------------------------------------------------------------------------------------------- % % This has nothing to do with \stepwise, just setting up the picture... @@ -6206,11 +5835,11 @@ Instead of displaying incrementally, we can just `flip through' some items by hi % % In the following picture, picture items are built incrementally. % -% \stepwise generates a sequence of slides, all alike. The only difference ist that on every slide, one more of the +% \parstepwise generates a sequence of slides, all alike. The only difference ist that on every slide, one more of the % \step commands occurring in the argument of \stepwise are `activated'. This way the stuff inside the argument of -% \stepwise is gone through `step by step'. +% \parstepwise is gone through `step by step'. (\parstepwise is a special case of \stepwise.) % -\stepwise +\parstepwise {% \begin{center} \large @@ -6291,16 +5920,11 @@ Instead of displaying incrementally, we can just `flip through' some items by hi %<*pp4sldemo> %< -% -% v0.0.1 May 25, 2000: First version for the pre-alpha release of TeXPower. -% \documentclass[landscape]{foils} @@ -6491,11 +6115,9 @@ Instead of displaying incrementally, we can just `flip through' some items by hi %================================================================================================================= %<*prosperdemo> %< %< -% -% v0.0.1 Jun 02, 2000: First version for the pre-alpha release of TeXPower. -% -% v0.0.2 May 26, 2003: Slightly adapted to new version of fixseminar. -% \documentclass[portrait,semrot]{seminar} @@ -6757,18 +6372,10 @@ Instead of displaying incrementally, we can just `flip through' some items by hi %<*simpledemo> %< -% -% v0.0.1 Apr 17, 2000: First version for the pre-alpha release of TeXPower. -% -% v0.0.2 May 24, 2000: texpower 0.0.8 now supports equation numbers in the argument of \stepwise, so eqnarray* was -% changed to eqnarray. -% \documentclass[12pt]{article} @@ -6954,15 +6561,10 @@ Instead of displaying incrementally, we can just `flip through' some items by hi %<*slidesdemo> %< -% -% v0.0.1 May 25, 2000: First version for the pre-alpha release of TeXPower. -% \documentclass[landscape]{slides} @@ -7171,16 +6773,16 @@ Instead of displaying incrementally, we can just `flip through' some items by hi %<*spanelexample> %< %< -% -% v0.0.1 Mar 20, 2000: First version for the pre-alpha release of TeXPower. -% -% v0.0.2 Apr 27, 2000: Some small changes in preparation of the update to TeXpower v0.0.7. -% - %----------------------------------------------------------------------------------------------------------------- % Use slifonts. @@ -7326,13 +6906,9 @@ and with plain replace page transition % \newcommand{\tabend}{\\\hline}% - \stepwise - {% - \hrule height 0pt\relax% This is neccessary to avoid a glitch in vertical spacing. Don't ask me why. I'll try to get - % this right until the first alpha version. + \liststepwise{% \begin{center} - \step - {% + \step{% \begin{tabular}{|l|l|l|} \hline They can & be built & line by line% @@ -7359,6 +6935,77 @@ and with plain replace page transition %KEEPCOMMENTS % %================================================================================================================= +%<*verbexample> +%< +%================================================================================================================= %<*end> \end{slide} \end{document} @@ -7645,6 +7292,17 @@ showpage %%EOF %KEEPCOMMENTS % +%<*dummy-java> +%< %================================================================================================================= % % Local Variables: diff --git a/Master/texmf-dist/source/latex/texpower/texpower.dtx b/Master/texmf-dist/source/latex/texpower/texpower.dtx index 71fc0b0fd57..5817e06bcb9 100644 --- a/Master/texmf-dist/source/latex/texpower/texpower.dtx +++ b/Master/texmf-dist/source/latex/texpower/texpower.dtx @@ -1,7 +1,8 @@ % \iffalse meta-comment % -------------------------------------------------------------- -% TeXPower bundle - dynamic online presentations with LaTeX +% Part of the TeXPower bundle % Copyright (C) 1999-2004 Stephan Lehmke +% Copyright (C) 2003-2005 Hans Fredrik Nordhaug % % This program is free software; you can redistribute it and/or % modify it under the terms of the GNU General Public License @@ -14,7 +15,7 @@ % GNU General Public License for more details. % -------------------------------------------------------------- % -% texpower.dtx,v 1.2 2004/07/27 12:04:20 hansfn Exp +% texpower.dtx,v 1.13 2005/04/09 23:37:36 hansfn Exp % % \fi % @@ -26,7 +27,7 @@ %\NeedsTeXFormat{LaTeX2e} %\ProvidesPackage{texpower} %<*texpower> - [2004/07/27 v0.1b Create Dynamic Presentations with LaTeX.] + [2005/04/08 v0.2 Create Dynamic Presentations with LaTeX.] % % %<*driver> @@ -43,7 +44,7 @@ % % \fi % -% \CheckSum{5679} +% \CheckSum{5957} % % \CharacterTable % {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z @@ -84,13 +85,14 @@ % % \section{Disclaimer} % -% This is a alpha release of the texpower package. +% This is still work in progress. % % During the subsequent error correction and extension of the % functionality, the syntax and implementation of the macros are % liable to change. % -% The transformation to the dtx format is also not completed. +% Even though we are using dtx-files, these are still not fully +% documented dtx-files. % % \StopEventually{\PrintChanges\PrintIndex} % @@ -226,6 +228,11 @@ % % \changes{v0.1b}{2004/07/27}{Moved to dtx format. No other code changes.} % +% \changes{v0.2}{2005/04/07}{Fixed bugs \#1029803 and \#1073319 reported at SourceForge. +% Made the handling of whatsits smarter (making write to file and hyperref +% commands) stepwise-aware. Added option/command to turn on/off the old +% aggressive/robust filtering. Added fragilesteps environment.} +% % We need the programming tools provided by these packages. % \begin{macrocode} \RequirePackage{ifthen} @@ -257,6 +264,13 @@ \newboolean{fixcolorstack@TP} \DeclareOption{fixcolorstack}{\setboolean{fixcolorstack@TP}{true}} % \end{macrocode} +% The option oldfiltering reverts to the old (pre v0.2) aggressive/robust filtering of whatsits. +% \begin{macrocode} +\newboolean{oldfiltering@TP} +\DeclareOption{oldfiltering}{\setboolean{oldfiltering@TP}{true}} +\newcommand{\oldfilteringon}{\setboolean{oldfiltering@TP}{true}} +\newcommand{\oldfilteringoff}{\setboolean{oldfiltering@TP}{false}} +% \end{macrocode} % The option nineminutes sets the page duration of every single page to a high value (of about nine minutes; this seems % to be a hardcoded upper limit in acrobat 5; see below). This way, a setting in acrobat reader's fullscreen dialogue % is masked. Otherwise, pages without an explicit page duration setting don't get any page duration setting at all, so @@ -348,26 +362,22 @@ % The switch |\ifpdf| is to determine whether pdfLaTeX is being run and outputting pdf, using Heiko Oberdiek's faultproof % pdf detector: % \begin{macrocode} -\IfFileExists{ifpdf.sty} -{% - \RequirePackage{ifpdf}% - } -{% - \@ifundefined{pdftrue} - {% - \expandafter\newif\csname ifpdf\endcsname - \ifx\pdfoutput\undefined - \else - \ifx\pdfoutput\relax - \else - \ifcase\pdfoutput - \else - \pdftrue - \fi - \fi - \fi - }{}% - } +\@ifundefined{pdftrue}{ +\IfFileExists{ifpdf.sty}{\RequirePackage{ifpdf}}{% + \expandafter\newif\csname ifpdf\endcsname + \ifx\pdfoutput\undefined + \else + \ifx\pdfoutput\relax + \else + \ifcase\pdfoutput + \else + \pdftrue + \fi + \fi + \fi + } +}{% \ifpdf is defined - nothing to do +} \ifpdf\setboolean{psspecialsallowed}{false}\fi % \end{macrocode} @@ -2542,7 +2552,7 @@ \define@key{bgnd@TP}{rightpanelwidth}{\mklength@TP{\bgndrightpanelwidth@TP}{#1}} % \end{macrocode} % -% \subsubsection{Implementation of \textbackslash backgroundstyle} +% \subsubsection{Implementation of \cs{backgroundstyle}} % % In this box, the constructed background is stored. This box is placed behind every page at |\shipout| time by the kernel % (see below). @@ -2674,7 +2684,9 @@ }% \fi }% matches \ifthenelse{\equal{\bgndtoppanelheight@TP}{}} - {}% Yes. Nothing to do. + {% Yes. + \let\toppanelheight=\bgndtoppanelheight@TP% Overwrite panel settings - use user-supplied value. + } \ifthenelse{\equal{\bgndbottompanelheight@TP}{}}% Has the bottom panel height been set? {% No. Guess default. \ifx\bottompanelcontents@TP\empty% Is the bottom panel defined? @@ -2693,7 +2705,9 @@ }% \fi }% matches \ifthenelse{\equal{\bgndbottompanelheight@TP}{}} - {}% Yes. Nothing to do. + {% Yes. + \let\bottompanelheight=\bgndbottompanelheight@TP% Overwrite panel settings - use user-supplied value. + } \mklength@TP{\bgndleftpanelheight@TP}% Calculate remaining space in the center. {\TPpageheight-\bgndtoppanelheight@TP-\bgndbottompanelheight@TP}% \let\bgndrightpanelheight@TP=\bgndleftpanelheight@TP% Height of left and right panels is equal. @@ -2715,7 +2729,9 @@ }% \fi }% matches \ifthenelse{\equal{\bgndleftpanelwidth@TP}{}} - {}% Yes. Nothing to do. + {% Yes. + \let\leftpanelwidth=\bgndleftpanelwidth@TP% Overwrite panel settings - use user-supplied value. + } \ifthenelse{\equal{\bgndrightpanelwidth@TP}{}}% Has the right panel width been set? {% No. Guess default. \ifx\rightpanelcontents@TP\empty% Is the panel defined? @@ -2734,7 +2750,9 @@ }% \fi }% matches \ifthenelse{\equal{\bgndrightpanelwidth@TP}{}} - {}% Yes. Nothing to do. + {% Yes. + \let\rightpanelwidth=\bgndrightpanelwidth@TP% Overwrite panel settings - use user-supplied value. + } }% matches \ifthenelse{\boolean{hpanels@TP}} {% No. Vertical panels are `outer', horizontal panels are `inner'. \let\bgndleftpanelheight@TP=\TPpageheight% Full height for vertical panels. @@ -2757,7 +2775,9 @@ }% \fi }% matches \ifthenelse{\equal{\bgndleftpanelwidth@TP}{}} - {}% Yes. Nothing to do. + {% Yes. + \let\leftpanelwidth=\bgndleftpanelwidth@TP% Overwrite panel settings - use user-supplied value. + } \ifthenelse{\equal{\bgndrightpanelwidth@TP}{}}% Has the right panel width been set? {% No. Guess default. \ifx\rightpanelcontents@TP\empty% Is the panel defined? @@ -2776,7 +2796,9 @@ }% \fi }% matches \ifthenelse{\equal{\bgndrightpanelwidth@TP}{}} - {}% Yes. Nothing to do. + {% Yes. + \let\rightpanelwidth=\bgndrightpanelwidth@TP% Overwrite panel settings - use user-supplied value. + } \mklength@TP{\bgndtoppanelwidth@TP}% Calculate remaining space in the center. {\TPpagewidth-\bgndleftpanelwidth@TP-\bgndrightpanelwidth@TP}% \let\bgndbottompanelwidth@TP=\bgndtoppanelwidth@TP% Width of top and bottom panels is equal. @@ -2798,7 +2820,9 @@ }% \fi }% matches \ifthenelse{\equal{\bgndtoppanelheight@TP}{}} - {}% Yes. Nothing to do. + {% Yes. + \let\toppanelheight=\bgndtoppanelheight@TP% Overwrite panel settings - use user-supplied value. + } \ifthenelse{\equal{\bgndbottompanelheight@TP}{}}% Has the bottom panel height been set? {% No. Guess default. \ifx\bottompanelcontents@TP\empty% Is the panel defined? @@ -2817,7 +2841,9 @@ }% \fi }% matches \ifthenelse{\equal{\bgndbottompanelheight@TP}{}} - {}% Yes. Nothing to do. + {% Yes. + \let\bottompanelheight=\bgndbottompanelheight@TP% Overwrite panel settings - use user-supplied value. + } }% matches second argument of \ifthenelse{\boolean{hpanels@TP}} }% matches \newcommand{\initpanels@TP}[1]{ % \end{macrocode} @@ -3655,7 +3681,7 @@ % % The code for overloading |\shipout| is derived from everyshi.sty with permission by Martin Schroeder. % -% \subsubsection{Overload \textbackslash shipout} +% \subsubsection{Overload \cs{shipout}} % % Overloading is done at the beginning of the document just in case some other package messes with |\shipout|. % \begin{macrocode} @@ -3702,7 +3728,7 @@ }% % \end{macrocode} % -% \subsubsection{The kernel functions to be executed at \textbackslash shipout} +% \subsubsection{The kernel functions to be executed at \cs{shipout}} % % |\AtShipout{}| will save || in a special place where it is executed at the time of the next |\shipout| (and % then deleted). Needless to say it should not produce any output. This is mainly for placing anchors in a controlled way @@ -3931,7 +3957,7 @@ }% matches \AtBeginDocument % \end{macrocode} % -% \subsubsection{Kernel functions for overloading \textbackslash output} +% \subsubsection{Kernel functions for overloading \cs{output}} % % This is the `inner kernel' which lies behind all dynamic effects. % @@ -3986,6 +4012,46 @@ % \begin{macrocode} \@ifclassloaded{seminar}{\pausesafecounter{slide}}{} % \end{macrocode} +% Making some commands stepwise-aware (if we are in display modus) so we avoid duplicates +% when not using the old aggressive/robust filtering of whatsits. +% \begin{macrocode} +\ifthenelse{\boolean{display}}{% + \AtBeginDocument{\@ifpackageloaded{hyperref}{% + \let\hyper@anchor@TP=\hyper@anchor + \long\def\hyper@@anchor#1#2{% + %%% \ifthenelse{\boolean{instepwise@TP}}% + \ifthenelse{\boolean{instepwise@TP} \AND \NOT \boolean{oldfiltering@TP}}% + {\ifthenelse{\NOT \boolean{instep@TP}}% + {\ifthenelse{\value{step}=\value{firststep}}{\@hyper@@anchor#1\relax#2\relax}{}}% + {\ifthenelse{\boolean{active} \AND \boolean{firstactivation}}% + {\@hyper@@anchor#1\relax#2\relax}{}}% End \ifthenelse{\boolean{active} ... + }% End \ifthenelse{\NOT \boolean{instep@TP}} + {\@hyper@@anchor#1\relax#2\relax}% End \ifthenelse{\boolean{instepwise@TP}} + } + \let\hyper@anchorstart@TP=\hyper@anchorstart + \def\hyper@anchorstart#1{% + \ifthenelse{\boolean{instepwise@TP} \AND \NOT \boolean{oldfiltering@TP}}% + {\ifthenelse{\NOT \boolean{instep@TP}}% + {\ifthenelse{\value{step}=\value{firststep}}{\hyper@anchorstart@TP{#1}}{}}% + {\ifthenelse{\boolean{active} \AND \boolean{firstactivation}}% + {\hyper@anchorstart@TP{#1}}{}}% End \ifthenelse{\boolean{active} ... + }% End \ifthenelse{\NOT \boolean{instep@TP}} + {\hyper@anchorstart@TP{#1}}% End \ifthenelse{\boolean{instepwise@TP}} + } + }{}}% End \AtBeginDocument{\@ifpackageloaded{hyperref}{ + % Changing \protected@write to avoid duplicates in aux-file + \let\protected@write@TP=\protected@write + \long\def\protected@write#1#2#3{% + \ifthenelse{\boolean{instepwise@TP} \AND \NOT \boolean{oldfiltering@TP}}% + {\ifthenelse{\NOT \boolean{instep@TP}}% + {\ifthenelse{\value{step}=\value{firststep}}{\protected@write@TP{#1}{#2}{#3}}{}}% + {\ifthenelse{\boolean{active} \AND \boolean{firstactivation}}% + {\protected@write@TP{#1}{#2}{#3}}{}}% End \ifthenelse{\boolean{active} ... + }% End \ifthenelse{\NOT \boolean{instep@TP}} + {\protected@write@TP{#1}{#2}{#3}}% End \ifthenelse{\boolean{instepwise@TP}} + }% +}{}% End \ifthenelse{\boolean{display}} +% \end{macrocode} % Save the current page contents to the box |\mempageconts@TP| by overloading and triggering |\output|. Footnotes are also % saved. The saved page contents are used by |\pause| and all |\stepwise| variants for making duplicates of page contents. % \begin{macrocode} @@ -4005,7 +4071,7 @@ } % \end{macrocode} % -% \subsection{Kernel functions for re-inserting page contents} +% \subsubsection{Kernel functions for re-inserting page contents} % % Used by |\pause| and also by variants of |\stepwise|. % @@ -4015,7 +4081,14 @@ % \end{macrocode} % Interpretation of |\filterpage@TP| for duplicate pages. Assigned by |\outputduplicate@TP|. % \begin{macrocode} -\newcommand{\filterwhatsits@TP}{\global\setbox\@cclv=\hbox{\leaders\copy\@cclv\hskip\wd\@cclv}} +\newcommand{\filterwhatsits@TP}{% + \ifthenelse{\boolean{oldfiltering@TP}}% + {\global\setbox\@cclv=\hbox{\leaders\copy\@cclv\hskip\wd\@cclv}}% Old aggressive/robust filtering + {}% No filtering - handled by \insertfilterwhatsits@TP and stepwise aware commands. +} +\newcommand{\insertfilterwhatsits@TP}{% + \global\setbox\tempbox@TP=\hbox{\leaders\copy\tempbox@TP\hskip\wd\tempbox@TP}% +} % \end{macrocode} % Insert saved page contents for the first time. % \begin{macrocode} @@ -4043,7 +4116,12 @@ \global\skip\footins=\skip\memfootins@TP \global\count\footins=\count\memfootins@TP \global\dimen\footins=\dimen\memfootins@TP - \unvcopy\mempageconts@TP% Output the vbox's contents. + \ifthenelse{\boolean{oldfiltering@TP}}% + {\unvcopy\mempageconts@TP}% + {\setbox\tempbox@TP=\vbox{\unvcopy\mempageconts@TP}% + \insertfilterwhatsits@TP + \copy\tempbox@TP% + } } % \end{macrocode} % @@ -4062,7 +4140,7 @@ }% % \end{macrocode} % -% \subsubsection{Implementation of \textbackslash pause} +% \subsubsection{Implementation of \cs{pause}} % % |\pause| ends the current paragraph, ships out the current page, starts a new page and copies whatever was on the % current page onto the new page, where typesetting is resumed. This will create the effect of a `pause' in the @@ -4084,7 +4162,7 @@ }% % \end{macrocode} % -% \subsection{Implementing \cs{stepwise} and all functions surrounding it} +% \subsubsection{Implementing \cs{stepwise} and all functions surrounding it} % % General usage: |\stepwise{}| % @@ -4182,9 +4260,9 @@ \let\displayidentical=\@iden % \end{macrocode} % -% \subsubsection[Custom commands for `hiding' \textbackslash stepcontents ...]% -% {Custom commands for `hiding' \textbackslash stepcontents at the time -% the corresponding \textbackslash step is not active.} +% \subsubsection[Custom commands for `hiding' stepcontents ...]% +% {Custom commands for `hiding' stepcontents at the time +% the corresponding \cs{step} is not active.} % Hiding stuff is not as easy as it seems... % Often, it is desirable that an appropriate amount of `space' is left where something is hidden, in case something % visible follows or the hidden stuff is part of an alignment structure. Even if this is not the case, completely @@ -4234,81 +4312,93 @@ % \begin{macrocode} \AtBeginDocument% {% - \@ifpackageloaded{soul}% Can we use the soul package? - {% - \@ifpackagelater{soul}{2002/05/28}% Correct version? - {% Yes. Let's define the necessary macros. - \DeclareRobustCommand*\hidetext - {% - \leavevmode% To prevent \phantom from inserting an hbox into the vertical list. + \@ifpackageloaded{soul}{% + \@ifpackagelater{soul}{2002/05/28}{ + \DeclareRobustCommand*\hidetext{% +% \end{macrocode} +% To prevent \cs{phantom} from inserting an hbox into the vertical list. +% \begin{macrocode} + \leavevmode \SOUL@setup - \def\SOUL@everytoken{\phantom{\the\SOUL@token\SOUL@setkern\SOUL@charkern}}% Make current token `invisible'. +% \end{macrocode} +% Make current token `invisible'. +% \begin{macrocode} + \def\SOUL@everytoken{\phantom{\the\SOUL@token\SOUL@setkern\SOUL@charkern}} \def\SOUL@everyhyphen {% \discretionary {% \unkern - \phantom{\SOUL@setkern\SOUL@hyphkern\char\hyphenchar\font}% Output an `invisible' hyphen if needed. +% \end{macrocode} +% Output an `invisible' hyphen if needed. +% \begin{macrocode} + \phantom{\SOUL@setkern\SOUL@hyphkern\char\hyphenchar\font}% }{}{}% }% \SOUL@% }% - }% - {% No. Encourage people to update. + }{ +% \end{macrocode} +% Too old soul package - encourage people to update. +% \begin{macrocode} \PackageInfo{texpower} {Package soul too old.\MessageBreak Command \string\hidetext\space disabled}% - \let\hidetext=\hidephantom% \hidephantom is a sorry excuse for \hidetext... +% \end{macrocode} +% Using \cs{hidephantom} which is a sorry excuse for \cs{hidetext}. +% \begin{macrocode} + \let\hidetext=\hidephantom }% - }% - {% No. In this case, there is no useful definition for \hidetext. + }{ \PackageInfo{texpower} {Package soul not loaded.\MessageBreak Command \string\hidetext\space disabled}% - \let\hidetext=\hidephantom% \hidephantom is a sorry excuse for \hidetext... + \let\hidetext=\hidephantom }% } % \end{macrocode} % % Helper command to switch to `dimmed' textcolor or mathcolor (if in math mode and colormath option is set). % \begin{macrocode} -\ifthenelse{\boolean{colormath@TP}}% Should we color math? -{% Yes. +\ifthenelse{\boolean{colormath@TP}}{% \newcommand{\commitcolor@TP} % \end{macrocode} % Switch to mathcolor if in math mode, to textcolor otherwise. % \begin{macrocode} {\textcolor{\ifmmode mathcolor\else textcolor\fi}} - } -{% No. - \newcommand{\commitcolor@TP}{\textcolor{textcolor}}% Switch to textcolor. +}{ + \newcommand{\commitcolor@TP}{\textcolor{textcolor}} } % \end{macrocode} % % The command |\hidedimmed| doesn't really make its argument `invisible'. Instead, it dims all colors so the argument % `fades' into the background. % \begin{macrocode} -\ifthenelse{\boolean{TPcolor}}% Can we use colors at all? -{% Yes. - \newcommand{\hidedimmed}[1]% Make argument appear in `dimmed' colors. - {% - {% A group makes the color changes local. - \ifthenelse{\boolean{instepwise@TP}}{\usecolorset{stwcolors}}{}% Just in case we currently are in dimmed mode... - \dimcolors% Dim colors. - \commitcolor@TP{#1}% Switch on dimmed color. - }% - }% +\ifthenelse{\boolean{TPcolor}}{ + \newcommand{\hidedimmed}[1]{% +% \end{macrocode} +% Adding a group to make the color changes local. +% \begin{macrocode} + { +% \end{macrocode} +% Just in case we currently are in dimmed mode. +% \begin{macrocode} + \ifthenelse{\boolean{instepwise@TP}}{\usecolorset{stwcolors}}{}% + \dimcolors + \commitcolor@TP{#1} + } } -{\let\hidedimmed=\displayidentical}% No. Disable this command. +}{ + \let\hidedimmed=\displayidentical +} % \end{macrocode} % % The command |\hidevanish| makes its argument `invisible' by switching to the background color. Of course, this only -% works if the background is uniformly colored. +% works if the background is uniformly colored. If we don't use colors, we just use \cs{hidephantom}. % \begin{macrocode} -\ifthenelse{\boolean{TPcolor}}% Can we use colors at all? -{% Yes. - \newcommand{\hidevanish}[1]% Make argument `vanish' by changing colors. - {\textcolor{\vanishcolor}{\vanishcolors#1}} - } -{\let\hidevanish=\hidephantom}% No. Use \hidephantom instead. +\ifthenelse{\boolean{TPcolor}}{ + \newcommand{\hidevanish}[1]{\textcolor{\vanishcolor}{\vanishcolors#1}} +}{ + \let\hidevanish=\hidephantom +} % \end{macrocode} % % \subsubsection{Displaying and hiding of step contents} @@ -4510,7 +4600,7 @@ {\let\highlightenhanced=\displayidentical}% No. Disable this command. % \end{macrocode} % -% \subsubsection{Implementation of \textbackslash step, \textbackslash switch and relatives} +% \subsubsection{Implementation of \cs{step}, \cs{switch} and relatives} % % |\step| takes two optional arguments for influencing the mode of activation, like this: % @@ -4703,6 +4793,7 @@ \newcommand{\@switch@TP}[2] {% \global\advance\c@stepcommand by 1\relax% This execution of \switch is counted. + \setboolean{instep@TP}{true}% Set indicator. % % If the verbose option is set, type out some accounting information which can be used for debugging. \ifthenelse{\boolean{verbose@TP}} @@ -4746,6 +4837,7 @@ }% End of \s@step@TPcheck % \let\afterstep=\o@afterstep@TP% Restore the definition of \afterstep. + \setboolean{instep@TP}{false}% Set indicator. }% End of the definition of \@switch@TP. % \end{macrocode} % @@ -5035,17 +5127,18 @@ % \begin{macrocode} \newcommand{\@@overlays@TP}[2] {% - \setcounter{substep}{0}% Initialize substep counter. + \setcounter{substep}{1}% Initialize substep counter. \leavevmode% Make sure that \rlap doesn't insert anything in the vertical list. - \whiledo{\value{substep}<#1}% Iterate times. + \whiledo{\value{substep}<#1}% Iterate times (since we start at 1). {% - \stepcounter{substep}% \expandafter\switch\optarg@ov@TP{}{\ifthenelse{\boolean{firstactivation}}{\mbox{#2}}{\rlap{#2}}}% + \stepcounter{substep}% }% + \expandafter\switch\optarg@ov@TP{}{\mbox{#2}}% Always using \mbox for last overlay. } % \end{macrocode} % -% \subsubsection{Implementation of \textbackslash stepwise} +% \subsubsection{Implementation of \cs{stepwise}} % % Every variant of |\stepwise| takes an optional argument, like this % @@ -5231,6 +5324,10 @@ % \begin{macrocode} \newboolean{instepwise@TP} % \end{macrocode} +% The boolean |instep@TP| indicates whether we are inside a |\step| command. +% \begin{macrocode} +\newboolean{instep@TP} +% \end{macrocode} % |\@stepwise@TP| implements the functionality of |\stepwise|. It is called by |\stepwise| after checking for the star. % \begin{macrocode} \newcommand{\@stepwise@TP}[2][] @@ -5339,10 +5436,78 @@ \repeat \endgroup \global\c@firststep=\c@o@fs@TP\relax% Restore default value of counter firststep. -}% End of the definition of \@stepwise@TP +} +% \end{macrocode} +% +% \subsubsection{Implementation of the fragilesteps environment} +% +% Defining fragilesteps - an environment for fragile/verbatim stuff. +% The code is contributed by Till Tantau, the author of the excellent +% presentation class beamer. +% +% \begin{macrocode} +\newenvironment{fragilesteps}{% + \def\texpower@verbatimfilename{\jobname-texpower.vrb}% + \immediate\openout\texpower@verbatimfileout=\texpower@verbatimfilename% + \texpower@verbatimreadframe% +} +{% + \immediate\closeout\texpower@verbatimfileout% + \stepwise{\input{\texpower@verbatimfilename}}% +} +% \end{macrocode} +% Internals used in the fragilesteps environment. +% \begin{macrocode} +\newwrite\texpower@verbatimfileout + +\def\texpower@verbatimreadframe{% + \begingroup% + \let\do\@makeother\dospecials% + \count@=127% + \@whilenum\count@<255 \do{% + \advance\count@ by 1% + \catcode\count@=11% + }% + \@makeother\^^L% and whatever other special cases + \endlinechar`\^^M \catcode`\^^M=12 \texpower@processframefirstline} + +{\catcode`\^^M=12\endlinechar=-1% + \long\gdef\texpower@processframefirstline#1^^M{% + \def\texpower@test{#1}% + \ifx\texpower@test\texpower@stopframefirst% + \let\next=\texpower@endfragilesteps% + \else + \ifx\texpower@test\@empty% + \else% + \@temptokena={#1}% + \immediate\write\texpower@verbatimfileout{\the\@temptokena}% + \fi% + \let\next=\texpower@processframeline% + \fi% + \next% + } + \long\gdef\texpower@processframeline#1^^M{% + \def\texpower@test{#1}% + \ifx\texpower@test\texpower@stopframe% + \let\next=\texpower@endfragilesteps% + \else + \immediate\write\texpower@verbatimfileout{#1}% + \fi% + \next% + } +} + +{ + \escapechar=-1\relax% + \xdef\texpower@stopframe{\string\\end\string\{fragilesteps\string\}} + \xdef\texpower@stopframefirst{\noexpand\end\string\{fragilesteps\string\}} +} + +\def\texpower@endfragilesteps{\endgroup\end{fragilesteps}} % \end{macrocode} % -% Input system-specific settings (if existing). +% \subsubsection{Input system-specific settings} +% If file exists. % \begin{macrocode} \InputIfFileExists{tpsettings.cfg}{}{} % \end{macrocode} diff --git a/Master/texmf-dist/source/latex/texpower/tpbundle.ins b/Master/texmf-dist/source/latex/texpower/tpbundle.ins index 6478aeee52c..366ac0df094 100644 --- a/Master/texmf-dist/source/latex/texpower/tpbundle.ins +++ b/Master/texmf-dist/source/latex/texpower/tpbundle.ins @@ -2,6 +2,7 @@ %% -------------------------------------------------------------- %% TeXPower bundle - dynamic online presentations with LaTeX %% Copyright (C) 1999-2004 Stephan Lehmke +%% Copyright (C) 2003-2005 Hans Fredrik Nordhaug %% %% This program is free software; you can redistribute it and/or %% modify it under the terms of the GNU General Public License @@ -14,7 +15,7 @@ %% GNU General Public License for more details. %% -------------------------------------------------------------- %% -%% tpbundle.ins,v 1.2 2004/07/27 11:38:08 hansfn Exp +%% tpbundle.ins,v 1.6 2005/04/06 22:28:21 hansfn Exp %% %% --------------- start of docstrip commands ------------------ %% @@ -26,6 +27,7 @@ -------------------------------------------------------------- TeXPower bundle - dynamic online presentations with LaTeX Copyright (C) 1999-2004 Stephan Lehmke +Copyright (C) 2003-2005 Hans Fredrik Nordhaug This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -56,15 +58,15 @@ given in the file `00readme.txt'. % \file{automata.sty}{\from{texpower-addons.dtx}{automata}} \file{fixseminar.sty}{\from{texpower-addons.dtx}{fixseminar}} - \file{tplists.sty}{\from{texpower-addons.dtx}{tplists}} + \file{tplists.sty}{\from{tplists.dtx}{tplists}} \file{tppstcol.sty}{\from{texpower-addons.dtx}{tppstcol}} \file{tpsem-a4.sty}{\from{texpower-addons.dtx}{tpsem-a4}} % - \file{FAQ-display.tex}{\from{texpower-doc.dtx}{faq-disp,faq,end}} - \file{FAQ-printout.tex}{\from{texpower-doc.dtx}{faq-print,faq,enddoc}} + \file{FAQ-display.tex}{\from{texpower-doc.dtx}{version,faq-disp,faq,end}} + \file{FAQ-printout.tex}{\from{texpower-doc.dtx}{version,faq-print,faq,enddoc}} % - \file{manual.tex}{\from{texpower-doc.dtx}{manual,docu,enddoc}} - \file{fulldemo.tex}{\from{texpower-doc.dtx}{fulldemo} + \file{manual.tex}{\from{texpower-doc.dtx}{version,manual,docu,enddoc}} + \file{fulldemo.tex}{\from{texpower-doc.dtx}{version,fulldemo} \from{texpower-doc.dtx}{picexample-src} \from{texpower-doc.dtx}{tabexample-src} \from{texpower-doc.dtx}{mathexample-src} @@ -77,7 +79,7 @@ given in the file `00readme.txt'. \file{bckwrdexample.tex}{\from{texpower-doc.dtx}{bckwrdexample,bckwrdexample-src,end}} \file{bgndexample.tex}{\from{texpower-doc.dtx}{bgndexample,bgndexample-src,end}} \file{divexample.tex}{\from{texpower-doc.dtx}{divexample,divexample-src,end}} - \file{fancystep.tex}{\from{texpower-doc.dtx}{fancystep}} + \file{fancyexample.tex}{\from{texpower-doc.dtx}{fancyexample}} \file{foilsdemo.tex}{\from{texpower-doc.dtx}{foilsdemo}} \file{hilitexample.tex}{\from{texpower-doc.dtx}{hilitexample,hilitexample-src,end}} \file{ifmslidemo.tex}{\from{texpower-doc.dtx}{ifmslidemo}} @@ -96,6 +98,7 @@ given in the file `00readme.txt'. \file{slidesdemo.tex}{\from{texpower-doc.dtx}{slidesdemo}} \file{spanelexample.tex}{\from{texpower-doc.dtx}{spanelexample}} \file{tabexample.tex}{\from{texpower-doc.dtx}{tabexample,tabexample-src,end}} + \file{verbexample.tex}{\from{texpower-doc.dtx}{verbexample}} % \file{__TPcfg.tex}{\from{texpower-doc.dtx}{config}} \file{__TPpreamble.tex}{\from{texpower-doc.dtx}{preamble}} @@ -108,6 +111,7 @@ given in the file `00readme.txt'. \file{fig-1.mps}{\from{texpower-doc.dtx}{fig-1}} \file{fig-2.mps}{\from{texpower-doc.dtx}{fig-2}} \file{fig-3.mps}{\from{texpower-doc.dtx}{fig-3}} + \file{dummy.java}{\from{texpower-doc.dtx}{dummy-java}} } \ifToplevel{ diff --git a/Master/texmf-dist/source/latex/texpower/tplists.dtx b/Master/texmf-dist/source/latex/texpower/tplists.dtx new file mode 100644 index 00000000000..0af0b5e5813 --- /dev/null +++ b/Master/texmf-dist/source/latex/texpower/tplists.dtx @@ -0,0 +1,666 @@ +%% +% \iffalse meta-comment +% -------------------------------------------------------------- +% Part of the TeXPower bundle +% Copyright (C) 2003-2005 Hans Fredrik Nordhaug +% +% This program is free software; you can redistribute it and/or +% modify it under the terms of the GNU General Public License +% as published by the Free Software Foundation; either version 2 +% of the License, or (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% -------------------------------------------------------------- +% +% tplists.dtx,v 1.6 2005/04/07 21:43:07 hansfn Exp +% +% \fi +% +% \iffalse +% +%<*driver> +\ProvidesFile{tplists.dtx} +% +%\NeedsTeXFormat{LaTeX2e} +%\ProvidesPackage{tplists} +%<*tplists> + [2005/04/07 v0.2 Easy Dynamic Lists using TeXPower] +% +% +%<*driver> +\documentclass{ltxdoc} +\EnableCrossrefs +\CodelineIndex +\RecordChanges +\begin{document} + \DocInput{tplists.dtx} +\end{document} +% +% +% \fi +% +% \CheckSum{634} +% +% \CharacterTable +% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +% +% \GetFileInfo{tplists.dtx} +% +% \DoNotIndex{\newcommand,\newenvironment} +% +% \title{The \textsf{tplists} package\thanks{This document +% corresponds to \textsf{tplists}~\fileversion, dated \filedate.}} +% \author{ Hans Fredrik Nordhaug \\ \texttt{hans@nordhaug.priv.no}} +% +% \maketitle +% +% \tableofcontents +% +% \section{Introduction} +% +% The package provides easy dynamic lists. The following +% environments/lists are available +% \begin{enumerate} +% \item |stepenum|, |stepitem|, |stepdesc|, |stepeqlist|, |stepcompactenum| +% |stepcompactitem| and |stepcompacteqlist|. +% \item |flipenum|, |flipitem|, |flipdesc|, |flipeqlist|, |flipcompactenum|, +% |flipcompactitem|, and |flipcompacteqlist| +% \item |dimenum|, |dimitem|, |dimdesc|, |dimeqlist|, |dimcompactenum|, +% |dimcompactitem|, and |dimcompacteqlist| +% \end{enumerate} +% where |step| is short for stepped, |flip| for flipped and |dim| for dimmed. +% The packages |paralist| and |eqlist| must be loaded before this package to +% use the *eqlist and *compact* lists. |enum|, |item| and |desc| is of course +% short for |enumerate|, |itemize| and |description| respectively. +% +% \section{User interface} +% +% The package is loaded in the normal fashion, eg: |\usepackage{tplists}| The package +% works better (the lists look better) if TeXPower uses colors. +% +% All lists (except *eqlist) takes an optional parameter adding to the indent +% of the list. Note that dim* and flip* lists do not nest, and that step* lists +% inside dim*/flip* will behave as a dim*/flip* list respectively. +% (The normal |itemize|, |enumerate| and |description| lists are modified so they accept the +% optional parameter and work nested with the new lists.) +% +% Example: +% +% \begin{verbatim} +% \documentclass[a4paper]{article} +% \usepackage[darkbackground,display]{texpower} +% \usepackage{tplists} +% \begin{document} +% \begin{flipitem}[2cm] +% \item Before +% \begin{enumerate}[1cm] +% \item An item +% \item Another item +% \end{enumerate} +% \item After +% \end{flipitem} +% \end{document} +% \end{verbatim} +% +% \section{Description of package options} +% +% The following options exist: +% \begin{description} +% \item[|pausestep|] makes step* lists use |\pause|% +% \item[|noflipendstep|] avoids the extra step at the end of a flipped list. +% \end{description} +% +% All options can be set anywhere in the document using a setup command, for example +% |\tplsetup{pausestep,noflipendstep=false}|. If the keys in the setup command have no +% value true is assumed. +% +% \section{Issues} +% +% The step* lists use |\vstep| (as default) which give weird results with +% structured backgrounds. Using the pausestep option fixes this, but then you +% can't nest step* lists inside dim* or flip* lists. There are also some +% unresolved problems when using french babel. +% +% \StopEventually{\PrintChanges\PrintIndex} +% +% \section{Implementation} +% +% \changes{v0.1}{2003/10/03}{First public release.} +% +% \changes{v0.1a}{2003/10/04}{Removed redefinition of eqlist (since it didn't work).} +% +% \changes{v0.1b}{2003/10/07}{Corrected some typos in this documentation. +% Added option pausestep and made dim* (and all variants of flip*) lists work without +% colors by using boldface for active items.} +% +% \changes{v0.2}{2005/04/07}{Added flipdesc, stepdesc, dimdesc environments for +% easy dynamic description lists. Improved behaviour when not in display mode. +% Fixed step lists behaviour when in display mode, but without colors. Added +% noflipendstep option and a setup command to enable setting of all options +% anywhere in the document } +% +% \subsection{Loading of packages} +% +% \begin{macrocode} +\RequirePackage{texpower} +% \end{macrocode} +% Compact enum/item. +% \begin{macrocode} +\newboolean{tpl@paralist} +\@ifpackageloaded{paralist}{\setboolean{tpl@paralist}{true}}{} +% \end{macrocode} +% Lists with equal indentation. +% \begin{macrocode} +\newboolean{tpl@eqlist} +\@ifpackageloaded{eqlist}{\setboolean{tpl@eqlist}{true}}{} +% \end{macrocode} +% +% \subsection{Defining options} +% +% Use |\pause| for steplists (too avoid problems with structured backgrounds). +% \begin{macrocode} +\newboolean{tpl@pausestep} +\DeclareOption{pausestep}{\setboolean{tpl@pausestep}{true}} +% \end{macrocode} +% Don't add an extra step at the end of a flipped list. +% \begin{macrocode} +\newboolean{tpl@noflipendstep} +\DeclareOption{noflipendstep}{\setboolean{tpl@noflipendstep}{true}} + +\ProcessOptions +% \end{macrocode} +% Defining setup command to enable change of options anywhere in the document. +% \begin{macrocode} +\define@key{tpl}{pausestep}[true]{% + \setboolean{tpl@pausestep}{#1} +} +\define@key{tpl}{noflipendstep}[true]{% + \setboolean{tpl@noflipendstep}{#1} +} +\newcommand*{\tplsetup}{\setkeys{tpl}} +% \end{macrocode} +% +% \subsection{Flipped/dimmed/stepped lists/environments} +% +% |\iftpl@instepenv| indicates if we are in some kind of stepped list +% environment. |\iftpl@indimenv| / |\tpl@inflipenv| indicates that we are +% using one of the stepwise environments from texpower (that doesn't +% nest). |\iftpl@inpausestepenv| indicates that we are in a stepped +% list that uses |\pause|. +% +% using |tpl@| as prefix for internals. +% \begin{macrocode} +\newif\iftpl@instepenv \tpl@instepenvfalse +\newif\iftpl@inpausestepenv \tpl@inpausestepenvfalse +\newif\iftpl@indimenv \tpl@indimenvfalse +\newif\iftpl@inflipenv \tpl@inflipenvfalse +\let\oldenumerate=\enumerate +\let\olditemize=\itemize +\let\olddescription=\description +\let\endoldenumerate=\endenumerate +\let\endolditemize=\enditemize +\let\endolddescription=\enddescription +\ifthenelse{\boolean{tpl@eqlist}}{% +\let\oldeqlist=\eqlist +\let\endoldeqlist=\endeqlist +}{} +\ifthenelse{\boolean{tpl@paralist}}{% +\let\oldcompactenum=\compactenum +\let\oldcompactitem=\compactitem +\let\endoldcompactenum=\endcompactenum +\let\endoldcompactitem=\endcompactitem +}{} +% \end{macrocode} +% +% Defining |\tpl@collect@body| - command used to scan the list +% environments. Definition borrowed from 'amsmath.sty' - slightly +% modified to allow for 'long' arguments +% \begin{macrocode} +\let\tpl@nx\noexpand +\let\tpl@xp\expandafter +\newtoks\tpl@emptytoks +\newtoks\tpl@envbody +\long\def\tpl@addto@envbody#1{\global\tpl@envbody\tpl@xp{\the\tpl@envbody#1}} +\def\tpl@collect@body#1{% + \tpl@envbody{\tpl@xp#1\tpl@xp{\the\tpl@envbody}}% + \edef\tpl@process@envbody{\the\tpl@envbody\tpl@nx\end{\@currenvir}}% + \tpl@envbody\tpl@emptytoks \def\begin@stack{b}% + \begingroup + \tpl@xp\let\csname\@currenvir\endcsname\tpl@collect@@body + \edef\tpl@process@envbody{\tpl@xp\tpl@nx\csname\@currenvir\endcsname}% + \tpl@process@envbody +} +\long\def\tpl@push@begins#1\begin#2{% + \ifx\end#2\else b\tpl@xp\tpl@push@begins\fi +} +\long\def\tpl@collect@@body#1\end#2{% + \edef\begin@stack{\tpl@push@begins#1\begin\end \tpl@xp\@gobble\begin@stack}% + \ifx\@empty\begin@stack + \endgroup + \@checkend{#2}% + \tpl@addto@envbody{#1}% + \else + \tpl@addto@envbody{#1\end{#2}}% + \fi + \tpl@process@envbody +} +% \end{macrocode} +% +% Defining command |\tpl@addmargin| used to add a length to +% the leftmargin of the current level in a list. +% \begin{macrocode} +\def\tpl@addmargin#1{% + \advance\@listdepth 1 + \addtolength{\csname leftmargin\romannumeral\@listdepth\endcsname}{#1} + \advance\@listdepth -1 +} + +\ifthenelse{\boolean{display}}{% +% +% Defining a flipped step command if we are in display mode. +% Note that |\tpl@flipstep| takes no argument. +% \begin{macrocode} +\ifthenelse{\boolean{TPcolor}}% Can we use colors? +{% Yes. In this case highlighting is implemented by switching color. + \def\tpl@flipstep{% + \step{\ifthenelse{\boolean{firstactivation}}% + {\color{textcolor}}% + {\color{inactivecolor}}% + }% + }% +} +{% No. In this case highlighting is implemented by putting the item in boldface. + \def\tpl@flipstep{% + \step{\ifthenelse{\boolean{firstactivation}}{\bfseries}{\mdseries}} + }% +} +% \end{macrocode} +% +% Defining a dimmed step command if we are in display mode. +% Note that |\tpl@dimstep| takes no argument. +% \begin{macrocode} +\ifthenelse{\boolean{TPcolor}}% Can we use colors? +{% Yes. In this case highlighting is implemented by using \dstep + \def\tpl@dimstep{\dstep}% +} +{% No. In this case highlighting is implemented by putting the item in boldface. + \def\tpl@dimstep{% + \step{\bfseries}% + \ifthenelse{\boolean{active}}{}{\mdseries}% + }% +} +% \end{macrocode} +% +% Defining a (normal) step command if we are in display mode. +% Note that |\tpl@step| takes no argument. +% \begin{macrocode} +\ifthenelse{\boolean{TPcolor}}% Can we use colors? +{% Yes. In this case stepping is implemented by using \vstep + \def\tpl@step{\vstep}% +} +{% No. In this case stepping is implemented using \pause + \def\tpl@step{\pause}% +} +% \end{macrocode} +% TeXPower not in display mode - no need for a dimmed/flipped/normal step command. +% \begin{macrocode} +}{% \boolean{display} is false +\def\tpl@flipstep{\relax}% +\def\tpl@dimstep{\relax}% +\def\tpl@step{\relax}% +} +% \end{macrocode} +% +% Defining flipped stepped - itemize / description / enumerate / eqlist +% compact itemize / compact enumerate / compact eqlist - environments. +% \begin{macrocode} +\newenvironment{flipitem}[1][0cm]{% + \tpl@addmargin{#1} + \tpl@collect@body\@flipitem}% + {\global\@ignoretrue} +\newenvironment{flipdesc}[1][0cm]{% + \tpl@addmargin{#1} + \tpl@collect@body\@flipdesc}% + {\global\@ignoretrue} +\newenvironment{flipenum}[1][0cm]{% + \tpl@addmargin{#1} + \tpl@collect@body\@flipenum}% + {\global\@ignoretrue} +\ifthenelse{\boolean{tpl@eqlist}}{% +\newenvironment{flipeqlist}[1][0cm]{% + \tpl@collect@body\@flipeqlist}% + {\global\@ignoretrue} +\newenvironment{flipcompacteqlist}[1][0cm]{% + \tpl@collect@body\@flipcompacteqlist}% + {\global\@ignoretrue} +}{} +\ifthenelse{\boolean{tpl@paralist}}{% +\newenvironment{flipcompactitem}[1][0cm]{% + \tpl@addmargin{#1} + \tpl@collect@body\@flipcompactitem}% + {\global\@ignoretrue} +\newenvironment{flipcompactenum}[1][0cm]{% + \tpl@addmargin{#1} + \tpl@collect@body\@flipcompactenum}% + {\global\@ignoretrue} +}{} + +\newcommand\@fliplist[2]{% + \iftpl@indimenv + \PackageError{tplists}{% + dim* and flip* environments do NOT nest}{% + Do not continue! Type 'q' to stop and fix the nested list. + } + \else\iftpl@instepenv + \begin{#1} + \let\hidestepcontents=\displaystepcontents + \renewcommand{\item}{\tpl@flipstep\tpl@origitem}% + #2 + \end{#1}% + \else + \iftpl@inpausestepenv\let\liststepwise=\stepwise\fi + \liststepwise[\let\hidestepcontents=\displaystepcontents]{% + \begin{#1} + \iftpl@inpausestepenv\else + \iftpl@instepenv\else\let\tpl@origitem=\item\fi + \fi + \tpl@instepenvtrue + \tpl@inflipenvtrue + \renewcommand{\item}{\tpl@flipstep\tpl@origitem}% + #2 + \ifthenelse{\boolean{tpl@noflipendstep}}{}{\step{}}% + \end{#1}} + \fi\fi +} + +\newcommand\@flipitem[1]{% + \@fliplist{olditemize}{#1}} +\newcommand\@flipdesc[1]{% + \@fliplist{olddescription}{#1}} +\newcommand\@flipenum[1]{% + \@fliplist{oldenumerate}{#1}} +\ifthenelse{\boolean{tpl@eqlist}}{% +\newcommand\@flipeqlist[1]{% + \@fliplist{oldeqlist}{#1}} +\newcommand\@flipcompacteqlist[1]{% + \@fliplist{compacteqlist}{#1}} +}{} +\ifthenelse{\boolean{tpl@paralist}}{% +\newcommand\@flipcompactitem[1]{% + \@fliplist{oldcompactitem}{#1}} +\newcommand\@flipcompactenum[1]{% + \@fliplist{oldcompactenum}{#1}} +}{} +% \end{macrocode} +% +% Defining dimmed stepped - itemize / description / enumerate / eqlist / +% compact itemize / compact enumerate / compact eqlist - environments. +% \begin{macrocode} +\newenvironment{dimitem}[1][0cm]{% + \tpl@addmargin{#1} + \tpl@collect@body\@dimitem}% + {\global\@ignoretrue} +\newenvironment{dimdesc}[1][0cm]{% + \tpl@addmargin{#1} + \tpl@collect@body\@dimdesc}% + {\global\@ignoretrue} +\newenvironment{dimenum}[1][0cm]{% + \tpl@addmargin{#1} + \tpl@collect@body\@dimenum}% + {\global\@ignoretrue} +\ifthenelse{\boolean{tpl@eqlist}}{% +\newenvironment{dimeqlist}[1][0cm]{% + \tpl@collect@body\@dimeqlist}% + {\global\@ignoretrue} +\newenvironment{dimcompacteqlist}[1][0cm]{% + \tpl@collect@body\@dimcompacteqlist}% + {\global\@ignoretrue} +}{} +\ifthenelse{\boolean{tpl@paralist}}{% +\newenvironment{dimcompactitem}[1][0cm]{% + \tpl@addmargin{#1} + \tpl@collect@body\@dimcompactitem}% + {\global\@ignoretrue} +\newenvironment{dimcompactenum}[1][0cm]{% + \tpl@addmargin{#1} + \tpl@collect@body\@dimcompactenum}% + {\global\@ignoretrue} +}{} + +\newcommand\@dimlist[2]{% + \iftpl@inflipenv + \PackageError{tplists}{% + dim* and flip* environments do NOT nest}{% + Do not continue! Type to stop and fix the nested list. + } + \else\iftpl@instepenv + \begin{#1} + \renewcommand{\item}{\tpl@dimstep\tpl@origitem}% + #2 + \end{#1}% + \else + \iftpl@inpausestepenv\let\liststepwise=\stepwise\fi + \liststepwise{% + \begin{#1} + \iftpl@inpausestepenv\else + \iftpl@instepenv\else\let\tpl@origitem=\item\fi + \fi + \tpl@instepenvtrue + \tpl@indimenvtrue + \renewcommand{\item}{\tpl@dimstep\tpl@origitem}% + #2 + \end{#1}} + \fi\fi +} + +\newcommand\@dimitem[1]{% + \@dimlist{olditemize}{#1}} +\newcommand\@dimdesc[1]{% + \@dimlist{olddescription}{#1}} +\newcommand\@dimenum[1]{% + \@dimlist{oldenumerate}{#1}} +\ifthenelse{\boolean{tpl@eqlist}}{% +\newcommand\@dimeqlist[1]{% + \@dimlist{oldeqlist}{#1}} +\newcommand\@dimcompacteqlist[1]{% + \@dimlist{compacteqlist}{#1}} +}{} +\ifthenelse{\boolean{tpl@paralist}}{% +\newcommand\@dimcompactitem[1]{% + \@dimlist{oldcompactitem}{#1}} +\newcommand\@dimcompactenum[1]{% + \@dimlist{oldcompactenum}{#1}} +}{} +% \end{macrocode} +% +% Defining stepped - itemize / description / enumerate / eqlist / +% compact itemize / compact enumerate / compact eqlist - environments. +% \begin{macrocode} +\newenvironment{stepitem}[1][0cm]{% + \tpl@addmargin{#1} + \tpl@collect@body\@stepitem}% + {\global\@ignoretrue} +\newenvironment{stepdesc}[1][0cm]{% + \tpl@addmargin{#1} + \tpl@collect@body\@stepdesc}% + {\global\@ignoretrue} +\newenvironment{stepenum}[1][0cm]{% + \tpl@addmargin{#1} + \tpl@collect@body\@stepenum}% + {\global\@ignoretrue} +\ifthenelse{\boolean{tpl@eqlist}}{% +\newenvironment{stepeqlist}[1][0cm]{% + \tpl@collect@body\@stepeqlist}% + {\global\@ignoretrue} +\newenvironment{stepcompacteqlist}[1][0cm]{% + \tpl@collect@body\@stepcompacteqlist}% + {\global\@ignoretrue} +}{} +\ifthenelse{\boolean{tpl@paralist}}{% +\newenvironment{stepcompactitem}[1][0cm]{% + \tpl@addmargin{#1} + \tpl@collect@body\@stepcompactitem}% + {\global\@ignoretrue} +\newenvironment{stepcompactenum}[1][0cm]{% + \tpl@addmargin{#1} + \tpl@collect@body\@stepcompactenum}% + {\global\@ignoretrue} +}{} +% \end{macrocode} +% Using |\pause| for step* lists if |tpl@pausestep| is true +% \begin{macrocode} +\newcommand\@steplist[2]{% +\ifthenelse{\boolean{tpl@pausestep}}{% + \iftpl@inflipenv + \PackageError{tplists}{% + flip* followed by step* environment does NOT work \MessageBreak + when the pausestep option is used}{% + Do not continue! Type to stop and fix the nested list. + } + \else\iftpl@indimenv + \PackageError{tplists}{% + dim* followed by step* environment does NOT work \MessageBreak + when the pausestep option is used}{% + Do not continue! Type to stop and fix the nested list. + } + \else + \begin{#1} + \iftpl@inpausestepenv\else\let\tpl@origitem=\item\fi + \tpl@inpausestepenvtrue + \renewcommand{\item}{\pause\tpl@origitem}% + #2 + \end{#1} + \fi\fi +}{ +% \end{macrocode} +% Using |\liststepwise| for step* lists if |tpl@pausestep| is false +% \begin{macrocode} + \iftpl@inflipenv + \begin{#1} + \renewcommand{\item}{\tpl@flipstep\tpl@origitem} + #2 + \end{#1}% + \else\iftpl@indimenv + \begin{#1} + \renewcommand{\item}{\dstep\tpl@origitem}% + #2 + \end{#1}% + \else\iftpl@instepenv + \begin{#1} + \renewcommand{\item}{\tpl@step\tpl@origitem}% + #2 + \end{#1}% + \else + \liststepwise{% + \begin{#1} + \iftpl@instepenv\else\let\tpl@origitem=\item\fi + \tpl@instepenvtrue + \renewcommand{\item}{\tpl@step\tpl@origitem}% + #2 + \end{#1}} + \fi\fi\fi +} +} + +\newcommand\@stepitem[1]{% + \@steplist{olditemize}{#1}} +\newcommand\@stepdesc[1]{% + \@steplist{olddescription}{#1}} +\newcommand\@stepenum[1]{% + \@steplist{oldenumerate}{#1}} +\ifthenelse{\boolean{tpl@eqlist}}{% +\newcommand\@stepeqlist[1]{% + \@steplist{oldeqlist}{#1}} +\newcommand\@stepcompacteqlist[1]{% + \@steplist{compacteqlist}{#1}} +}{} +\ifthenelse{\boolean{tpl@paralist}}{% +\newcommand\@stepcompactitem[1]{% + \@steplist{oldcompactitem}{#1}} +\newcommand\@stepcompactenum[1]{% + \@steplist{oldcompactenum}{#1}} +}{} +% \end{macrocode} +% +% Defining compact eqlist +% \begin{macrocode} +\newenvironment{compacteqlist}[1][0cm]{% + % \tpl@addmargin{#1} + \begin{eqlist}[\parsep0pt\itemsep0pt]}% + {\end{eqlist}} +% \end{macrocode} +% +% Redefining enumerate, itemize and description to handle changes made by +% introducing steps and leftmargini-option. +% \begin{macrocode} +\renewenvironment{enumerate}[1][0cm]{% + \tpl@addmargin{#1} + \begin{oldenumerate} + \iftpl@instepenv + \renewcommand{\item}{\tpl@origitem}% + \fi + }% + {\end{oldenumerate}} + +\renewenvironment{itemize}[1][0cm]{% + \tpl@addmargin{#1} + \begin{olditemize} + \iftpl@instepenv + \renewcommand{\item}{\tpl@origitem}% + \fi + }% + {\end{olditemize}} + +\renewenvironment{description}[1][0cm]{% + % \tpl@addmargin{#1} % Has no effect - FIXME + \begin{olddescription} + \iftpl@instepenv + \renewcommand{\item}{\tpl@origitem}% + \fi + }% + {\end{olddescription}} +% \end{macrocode} +% +% Redefining compactenum and compactitem to handle changes made by +% introducing steps and leftmargini-option. +% \begin{macrocode} +\ifthenelse{\boolean{tpl@paralist}}{% +\renewenvironment{compactenum}[1][0cm]{% + \tpl@addmargin{#1} + \begin{oldcompactenum} + \iftpl@instepenv + \renewcommand{\item}{\tpl@origitem}% + \fi + }% + {\end{oldcompactenum}} + +\renewenvironment{compactitem}[1][0cm]{% + \tpl@addmargin{#1} + \begin{oldcompactitem} + \iftpl@instepenv + \renewcommand{\item}{\tpl@origitem}% + \fi + }% + {\end{oldcompactitem}} +}{} +% \end{macrocode} + +% \Finale +\endinput -- cgit v1.2.3