summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/generic/lecturer/ltr-steps.tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2010-09-27 00:42:32 +0000
committerKarl Berry <karl@freefriends.org>2010-09-27 00:42:32 +0000
commitb8f7c3e06dcf0481a2f50e396adb10609eda43f1 (patch)
tree517f0565ad955910d13c8c9318ae3666282226d8 /Master/texmf-dist/doc/generic/lecturer/ltr-steps.tex
parent8c65eb5b73f80e0fcaa70910c1011adfa024d106 (diff)
lecturer (26sep10)
git-svn-id: svn://tug.org/texlive/trunk@19909 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/generic/lecturer/ltr-steps.tex')
-rw-r--r--Master/texmf-dist/doc/generic/lecturer/ltr-steps.tex202
1 files changed, 202 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/generic/lecturer/ltr-steps.tex b/Master/texmf-dist/doc/generic/lecturer/ltr-steps.tex
new file mode 100644
index 00000000000..eb2424aadcc
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/lecturer/ltr-steps.tex
@@ -0,0 +1,202 @@
+% This file is part of the Lecturer package.
+% Paul Isambert -- July 2010.
+%
+% ATTRIBUTES
+%
+\def\ltr@step_restrictions{%
+ vskip hskip everyvstep everyhstep left right
+ transition handout visible group color font on off pdftitle }
+\ltr@boolean_attr{step:handout}
+\ltr@boolean_attr{step:visible}
+\ltr@boolean_attr{step:group}
+\ltr@setattribute step:handout;=true
+\defactiveparameter step {%
+ \ltr@delete_empty{#1:font}%
+ }%
+
+\def\ltr@step_clear{%
+ \ifltr@step_open
+ \ltr@ifattribute ltr@inner_step:font;
+ {\ltr@usevalueor ltr@inner_slide:font;{\ltr@usevalue job:font;}}{}%
+ \ltr@ifvalue ltr@inner_step:group; = true
+ {\endgroup}{}%
+ \ltr@passvalueand{\reverse\iffemptystring}ltr@inner_step:color;
+ {{\pdfcolorstack0 pop}}{}%
+ \pdfliteral direct {EMC}%
+ \ltr@setattribute ltr@inner_step:meta; = step
+ \passexpanded{\ltr@attribute_deletion{ltr@inner_step}}\ltr@step_restrictions
+ \fi
+ }
+\passexpandednobraces{\restrictparameter step ltr@inner_step:}\ltr@step_restrictions\par
+\ltr@boolean_attr{ltr@inner_step:handout}
+\ltr@boolean_attr{ltr@inner_step:visible}
+\ltr@boolean_attr{ltr@inner_step:group}
+
+\long\def\setstep#1#2\par{%
+ \ltr@setstep_do{#2}{#1}%
+ }%
+\newfor\ltr@setstep_do{1}#2{%
+ \ltr@ifattribute {ltr@\commandtoname#2@inner_step}:meta;
+ {\setparameter{ltr@\commandtoname#2@inner_step}:}
+ {\ltr@setstep_new{#2}}%
+ #1\par
+ }
+\def\ltr@setstep_new#1{%
+ \def#1{%
+ \ltr@step_clear
+ \ltr@setattribute ltr@inner_step:meta;={ltr@\commandtoname#1@inner_step}
+ \ltr@step_do}%
+ \passexpandednobraces{\restrictparameter {ltr@\commandtoname#1@inner_step}:}\ltr@step_restrictions\par
+ \ltr@boolean_attr{{ltr@\commandtoname#1@inner_step}:visible}%
+ \ltr@boolean_attr{{ltr@\commandtoname#1@inner_step}:handout}%
+ \ltr@boolean_attr{{ltr@\commandtoname#1@inner_step}:group}%
+ \defactiveparameter{ltr@\commandtoname#1@inner_step}{%
+ \ltr@delete_empty{##1:font}%
+ }%
+ \setparameter{ltr@\commandtoname#1@inner_step}:
+ meta = step
+ }
+\setparameter ltr@inner_step:
+ meta = step
+
+%
+%
+%
+%
+%
+% The \step command.
+%
+\newif\ifltr@step_open
+\newcount\ltr@steps_count
+\newcount\ltr@activesteps_count
+\def\step{%
+ % Close the current step, if any.
+ \ltr@step_clear
+ \ltr@step_do
+ }
+% Steps created with \newstep goes there directly.
+\def\ltr@step_do{%
+ \global\ltr@step_opentrue
+ \ifnextnospace[{\ltr@step_create}{\ltr@step_create[]}%
+ }
+
+\newif\ifltr@step_standalone
+%
+% For the options.
+%
+\newif\ifltr@step_named
+\def\ltr@stepcheck_useatom#1{%
+ \ltr@step_namedtrue
+ \reverse\iffcs{ltr@step_objnum:#1_\the\slideno}
+ {\pdfobj reserveobjnum%
+ \xdefcs{ltr@step_objnum:#1_\the\slideno}{\the\pdflastobj\spacecs}}%
+ \global\lettocs\ltr@step_current{ltr@step_objnum:#1_\the\slideno}%
+ }
+\def\ltr@stepcheck_usepair#1#2{}
+%
+\def\ltr@step_useatom#1{%
+ \ifstring{#1}{here}
+ {\ltr@error{You can't name a step `here', it's a keyword}}
+ {\def\ltr@step_ref{#1}%
+ \iffemptycommand\ltr@step_pdftitle{\def\ltr@step_pdftitle{#1}}}%
+ }
+\def\ltr@step_usepair#1#2{%
+ \ifstring{#1}{on}
+ {\ltr@step_standalonefalse\ltr@step_onoff{on}{#2 }}
+ {\ifstring{#1}{off}
+ {\ltr@step_onoff{off}{#2 }}
+ {\ifstring{#1}{pdftitle}
+ {\def\ltr@step_pdftitle{#2}}
+ {\ltr@setattribute ltr@inner_step:#1;={#2} }}}%
+ }
+\def\ltr@step_usepair#1#2{%
+ \ifstring{#1}{pdftitle}
+ {\def\ltr@step_pdftitle{#2}}
+ {\ltr@setattribute ltr@inner_step:#1;={#2} }%
+ }
+\def\ltr@step_onoff#1#2{%
+ \reverse\iffemptystring{#2}
+ {\ltr@step_onoffloop{#1}{#2 }}%
+ }
+\newfornoempty\ltr@step_onoffloop{1}#2 {%
+ \ifstring{#2}{here}{\ltr@step_standalonetrue}{%
+ \ifcs{ltr@step_#2:#1}
+ {\global\eaddrightcs}
+ {\xdefcs}
+ {ltr@step_#2:#1}{\ltr@step_current 0 R }}%
+ % Add the object to ltr@step_OCG:on/off
+ }
+\def\ltr@step_current{}
+\def\ltr@step_create[#1]{%
+ \global\advance\ltr@steps_count1
+ \ltr@step_namedfalse
+ \ltr@option_launchloop{stepcheck}{#1}%
+ \unless\ifltr@step_named
+ \pdfobj reserveobjnum
+ \xdef\ltr@step_current{\the\pdflastobj\spacecs}%
+ \fi
+ \def\ltr@step_ref{}\def\ltr@step_pdftitle{}%
+ \ltr@step_standalonefalse
+ \ltr@option_launchloop{step}{#1}%
+ \ltr@delete_empty{ltr@inner_step:font}%
+ \ltr@passvalueor{\ltr@step_onoff{on}}ltr@inner_step:on;\ltr@step_standalonetrue
+ \ltr@passvalue{\ltr@step_onoff{off}}ltr@inner_step:off;%
+ \immediate\pdfobj useobjnum\ltr@step_current {%
+ << /Type/OCG /Name(%
+ \ifemptycommand\ltr@step_ref
+ {\ifemptycommand\ltr@step_pdftitle
+ {[step \the\ltr@steps_count]}
+ {\ltr@step_pdftitle}}%
+ {\ltr@step_pdftitle}) >>
+ }%
+ % ... and, if the object has a reference name, it might be referenced,
+ % so its object number now returns its name.
+ \reverse\iffemptycommand\ltr@step_ref{\global\letcs{ltr@step_\ltr@step_current:name}\ltr@step_ref}%
+ % According to the value to the attribute "handout" or "visible"
+ % this group has base state ON or OFF (see catalog).
+ \ltr@ifvalue job:mode; = handout
+ {\ltr@ifvalue ltr@inner_step:handout; = true
+ {\addvisibleOCG{\ltr@step_current}}
+ {\addOCG{\ltr@step_current}}}
+ {\ltr@ifvalue ltr@inner_step:visible; = true
+ {\addvisibleOCG{\ltr@step_current}\ltr@step_standalonefalse}
+ {\addOCG{\ltr@step_current}}}%
+ % Link the step to the OCG.
+ \addproperties{ltr@step_\the\ltr@steps_count:content}{\ltr@step_current}%
+ % If the step appears by itself, it is added it to the list to
+ % be chained in the output routine, and its transition is stored, if any.
+ \ifltr@step_standalone
+ \global\advance\ltr@activesteps_count1
+ \global\eaddright\ltr@page_steplist{\ltr@step_current,}%
+ \iffcs{ltr@inner_transition:\ltr@usevalueor ltr@inner_step:transition;{ltr@no_value}}
+ {\xdefcs{ltr@step_\ltr@step_current:transition}{%
+ \usecs{ltr@inner_transition:\ltr@usevalueor ltr@inner_step:transition;{ltr@no_value}} 0 R}}%
+ \fi
+ % The step is opened, and the every...'s released.
+ \pdfliteral direct {/OC/ltr@step_\the\ltr@steps_count:content BDC}%
+ \ltr@ifvalue ltr@inner_step:group; = true
+ {\begingroup}{}%
+ \ltr@passvalueand{\reverse\iffemptystring}ltr@inner_step:color;
+ {{\pdfcolorstack0 push {\ltr@passvalue\ltr@color_use ltr@inner_step:color;}}}{}%
+ \ltr@usevalue ltr@inner_step:font;%
+ \ifvmode
+ \ltr@settovalue\vskip ltr@inner_step:vskip;%
+ \leftskip=0pt \rightskip=0pt plus 1fill\relax
+ \ltr@ifcasevalue ltr@inner_slide:hpos;
+ \val ff \rightskip=0pt
+ \val rr \leftskip=0pt plus 1fill\relax
+ \val rf \leftskip=0pt plus 1fill\rightskip=0pt
+ \endval
+ \ltr@settovalue{\advance\leftskip}ltr@inner_step:left;%
+ \ltr@settovalue{\advance\rightskip}ltr@inner_step:right;%
+ \ltr@usevalue ltr@inner_step:everyvstep;%
+ \else
+ \ifhmode
+ \ltr@settovalue\hskip ltr@inner_step:hskip;%
+ \ltr@usevalue ltr@inner_step:everyhstep;%
+ \fi
+ \fi
+ \ignorespaces
+ }
+
+\endinput \ No newline at end of file