summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/spot
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2010-09-22 23:34:23 +0000
committerKarl Berry <karl@freefriends.org>2010-09-22 23:34:23 +0000
commita00a7b047313bab600673186a730290a60224e3f (patch)
tree004767209d6189750f72b2089265e4d1f018366d /Master/texmf-dist/tex/latex/spot
parenta0629a00f219c5aff1afa12f157b7845bac8c1dd (diff)
new breamer package spot (22sep10)
git-svn-id: svn://tug.org/texlive/trunk@19844 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/spot')
-rw-r--r--Master/texmf-dist/tex/latex/spot/spot.sty203
1 files changed, 203 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/spot/spot.sty b/Master/texmf-dist/tex/latex/spot/spot.sty
new file mode 100644
index 00000000000..f82652c01fd
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/spot/spot.sty
@@ -0,0 +1,203 @@
+%%
+%% This is file `spot.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% spot.dtx (with options: `package')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2010 by Anders Hendrickson <ahendric@cord.edu>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+\ProvidesPackage{spot}
+ [2010/09/21 v1.0 Spotlight highlighting]
+\RequirePackage{tikz}
+\usetikzlibrary{shapes}
+\usetikzlibrary{fadings}
+\newif\ifspot@beamer
+\@ifundefined{beamer@frameslide}{\spot@beamerfalse}{\spot@beamertrue}
+\let\xa=\expandafter
+\ifspot@beamer
+ \g@addto@macro\beamer@frameslide{\spot@everybeginframe@hook}
+ \let\spot@oldmaterial=\endbeamer@frameslide
+ \def\spot@newmaterial{%
+ \spot@endframe@hook%
+ \gdef\spot@endframe@hook{}%
+ \spot@everyendframe@hook}
+ \xa\xa\xa\def
+ \xa\xa\xa\endbeamer@frameslide
+ \xa\xa\xa{%
+ \xa\spot@newmaterial\spot@oldmaterial}%
+ \def\spot@endframe@hook{}
+ \def\spot@everyendframe@hook{}
+ \def\spot@everybeginframe@hook{}
+ \long\def\AtEndFrame#1{\g@addto@macro\spot@endframe@hook{#1}}
+ \long\def\AtEveryEndFrame#1{\g@addto@macro\spot@everyendframe@hook{#1}}
+ \long\def\AtEveryBeginFrame#1{\g@addto@macro\spot@everybeginframe@hook{#1}}
+\else
+ \RequirePackage{afterpage}
+\fi
+\def\spotlightcolor{spotlightgold}
+\def\setspotlightcolor#1{\xdef\spotlightcolor{#1}}
+\def\resetspotlightcolor{\gdef\spotlightcolor{spotlightgold}}
+\def\spotlightnodeoptions{}
+\def\setspotlightstyle#1{\g@addto@macro\spotlightnodeoptions{#1, }}
+\def\resetspotlightstyle{\gdef\spotlightnodeoptions{}}
+\definecolor{spotlightgold}{RGB}{255,204,51}
+\tikzfading[name=spot@fade,
+ inner color=transparent!0,
+ outer color=transparent!60]
+\newcount\c@spot@spots
+\c@spot@spots=1
+\ifspot@beamer
+ \AtEveryBeginFrame{\global\c@spot@spots=1\relax}
+\else
+ \afterpage{\global\c@spot@spots=1\relax}
+\fi
+\newif\ifspot@star
+\spot@starfalse
+\def\spot{\@ifnextchar*{\spot@star}{\spot@nostar}}
+\def\spot@star#1{\global\spot@startrue\spot@nostar}
+\def\spot@nostar{%
+ \@ifnextchar<{\spot@in}{\spot@in<1->}%
+}
+\def\spot@in<#1>{%
+ \@ifnextchar({\spot@inte<#1>}%
+ {\spot@inte<#1>(spot@dummynode)}%
+}
+\def\spot@inte<#1>(#2){%
+ \@ifnextchar[{\spot@intern<#1>(#2)}{\spot@intern<#1>(#2)[]}%
+}
+\def\spot@intern<#1>(#2)[#3]#4{%
+ \edef\spot@totaloptions{fill=\spotlightcolor, \spotlightnodeoptions, #3}%
+ \xa\spot@internal\xa[\spot@totaloptions]<#1>(#2){#4}%
+}
+\def\spot@internal[#1]<#2>(#3)#4{%
+ \ifspot@beamer%
+ \spot@internal@beamer<#2>(#3)[#1]{#4}%
+ \else%
+ \spot@internal@static<#2>(#3)[#1]{#4}%
+ \fi%
+}
+\def\spot@internal@beamer<#1>(#2)[#3]#4{%
+ \@ifundefined{spot@box@\romannumeral\c@spot@spots}%
+ {\xa\newbox\csname spot@box@\romannumeral\c@spot@spots\endcsname}{}%
+ \ifmmode
+ \global\xa\setbox\csname spot@box@\romannumeral\c@spot@spots\endcsname=\hbox{$#4$}%
+ \else
+ \global\xa\setbox\csname spot@box@\romannumeral\c@spot@spots\endcsname=\hbox{#4}%
+ \fi
+ \xa\let\xa\spot@currentbox\csname spot@box@\romannumeral\c@spot@spots\endcsname%
+ \tikz[remember picture, baseline]{
+ \alt<#1>{\path[use as bounding box]
+ node[anchor=base, inner sep=0, outer sep=0, opacity=0]
+ (spot@\romannumeral\c@spot@spots) {\usebox\spot@currentbox};
+ \path (spot@\romannumeral\c@spot@spots)
+ node[anchor=center, outer sep=0,
+ shape=ellipse, inner sep=0.5ex,
+ #3, opacity=0] (#2) {\usebox\spot@currentbox};}
+ {\path node[anchor=base, inner sep=0, outer sep=0, opacity=1]
+ (#2) {\usebox\spot@currentbox};}
+ }%
+ \alt<#1>{\xa\spot@savepaint\xa{\romannumeral\c@spot@spots}[#3]}%
+ {\AtEndFrame{\rule{0pt}{0pt}}}%
+ \global\advance\c@spot@spots by 1\relax%
+}
+\def\spot@savepaint#1[#2]{%
+ \AtEndFrame{\spot@paintspot(spot@#1)[#2]{\usebox{\csname spot@box@#1\endcsname}}}%
+}
+\def\spot@paintspot(#1)[#2]#3{%
+ \begin{tikzpicture}[remember picture, overlay, baseline]
+ \path (#1) node[anchor=center, outer sep=0,
+ shape=ellipse, inner sep=0.5ex, text opacity=1,
+ path fading=spot@fade, text=black, #2] {#3};
+ \end{tikzpicture}%
+}
+\gdef\spot@savedpaintcommands{}
+\def\dospots{%
+ \marginpar{\spot@savedpaintcommands}%
+ \gdef\spot@savedpaintcommands{}%
+}
+\def\dospotsheader{%
+ \spot@savedpaintcommands%
+ \gdef\spot@savedpaintcommands{}%
+}
+\let\dospotsfooter=\dospotsheader
+\def\spot@internal@static<#1>(#2)[#3]#4{%
+ \@ifundefined{spot@box@\romannumeral\c@spot@spots}%
+ {\xa\newbox\csname spot@box@\romannumeral\c@spot@spots\endcsname}{}%
+ \ifmmode
+ \global\xa\setbox\csname spot@box@\romannumeral\c@spot@spots\endcsname=\hbox{$#4$}%
+ \else
+ \global\xa\setbox\csname spot@box@\romannumeral\c@spot@spots\endcsname=\hbox{#4}%
+ \fi
+ \xa\let\xa\spot@currentbox\csname spot@box@\romannumeral\c@spot@spots\endcsname%
+ \tikz[remember picture, baseline]{
+ \path[use as bounding box]
+ node[anchor=base, inner sep=0, outer sep=0, opacity=0]
+ (spot@\romannumeral\c@spot@spots) {\usebox\spot@currentbox};
+ \path (spot@\romannumeral\c@spot@spots)
+ node[anchor=center, inner sep=0, outer sep=0,
+ shape=ellipse, inner sep=0.5ex,
+ #3, opacity=0] (#2) {\usebox\spot@currentbox};
+ }%
+ \xa\spot@static@savepaint\xa{\romannumeral\c@spot@spots}[#3]%
+ \global\advance\c@spot@spots by 1\relax%
+ \global\spot@starfalse%
+}
+\def\spot@static@savepaint#1[#2]{%
+ \def\spot@saveit{%
+ \g@addto@macro\spot@savedpaintcommands{%
+ \spot@paintspot(spot@#1)[#2]{\usebox{\csname spot@box@#1\endcsname}}}%
+ \afterpage{\spot@checkforlostspots}%
+ }%
+ \ifspot@star
+ \spot@saveit
+ \else
+ \ifinner
+ \spot@saveit
+ \else
+ \ifmmode
+ \spot@saveit
+ \else
+ \marginpar{\spot@paintspot(spot@#1)[#2]{\usebox{\csname spot@box@#1\endcsname}}}%
+ \dospots
+ \fi
+ \fi
+ \fi
+}
+\def\spot@checkforlostspots{%
+ \def\spot@empty{}%
+ \ifx\spot@savedpaintcommands\spot@empty%
+ \relax%
+ \else%
+ \bgroup
+ \advance\count0 by -1
+ \PackageError{spot}%
+ {A \protect\dospots\space command is missing
+ from page \the\count0.\MessageBreak
+ Some highlighted text will not appear in the output}%
+ {If the last \protect\spot\space command on a
+ page is issued in math mode or a \MessageBreak
+ TeX inner mode (such as a tabular environment),
+ it must be followed by a \MessageBreak
+ \protect\dospots\space command somewhere later
+ on the page, outside such a mode.\MessageBreak
+ You could also put \protect\dospotsheader\space
+ in a header or footer on each page.}
+ \egroup
+ \fi%
+}
+\endinput
+%%
+%% End of file `spot.sty'.