summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/beamer/base/beamerbasecolor.sty
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/beamer/base/beamerbasecolor.sty
Initial commit
Diffstat (limited to 'macros/latex/contrib/beamer/base/beamerbasecolor.sty')
-rw-r--r--macros/latex/contrib/beamer/base/beamerbasecolor.sty409
1 files changed, 409 insertions, 0 deletions
diff --git a/macros/latex/contrib/beamer/base/beamerbasecolor.sty b/macros/latex/contrib/beamer/base/beamerbasecolor.sty
new file mode 100644
index 0000000000..099df8c845
--- /dev/null
+++ b/macros/latex/contrib/beamer/base/beamerbasecolor.sty
@@ -0,0 +1,409 @@
+% Copyright 2003--2007 by Till Tantau
+% Copyright 2010 by Vedran Mileti\'c
+% Copyright 2015 by Vedran Mileti\'c, Joseph Wright
+% Copyright 2017,2018 by Louis Stuart, Joseph Wright
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+%
+% See the file doc/licenses/LICENSE for more details.
+
+\mode
+<presentation>
+
+%
+% Color theme stuff
+%
+
+\define@key{beamerthc}{fg}
+ {\expandafter\def\csname beamer@thcfg@\beamer@temp\endcsname{\def\beamer@thc@fg{#1}}}
+\define@key{beamerthc}{bg}
+ {\expandafter\def\csname beamer@thcbg@\beamer@temp\endcsname{\def\beamer@thc@bg{#1}}}
+\define@key{beamerthc}{parent}
+ {\expandafter\def\csname beamer@thcinherits@\beamer@temp\endcsname{%
+ \@for\@temp:={#1}\do{\expandafter\beamer@thc@docolor\expandafter{\@temp}}}}
+\define@key{beamerthc}{use}
+ {\expandafter\def\csname beamer@thcuse@\beamer@temp\endcsname{%
+ \@for\@temp:={#1}\do{\expandafter\beamer@thc@usecolor\expandafter{\@temp}}}}
+
+\def\beamer@thc@prepcolor{%
+ \let\beamer@thc@fg=\@empty%
+ \let\beamer@thc@bg=\@empty%
+}
+
+\def\beamer@thc@docolor#1{%
+ \csname beamer@thcuse@#1\endcsname%
+ \csname beamer@thcinherits@#1\endcsname%
+ \csname beamer@thcfg@#1\endcsname%
+ \csname beamer@thcbg@#1\endcsname%
+}
+
+\def\beamer@thc@usecolor#1{%
+ \begingroup%
+ \beamer@thc@prepcolor%
+ \beamer@thc@docolor{#1}%
+ \ifx\beamer@thc@fg\@empty\def\beamer@thc@fg{fg}\fi%
+ \ifx\beamer@thc@bg\@empty\def\beamer@thc@bg{bg}\fi%
+ \global\let\beamer@thc@gfg\beamer@thc@fg%
+ \global\let\beamer@thc@gbg\beamer@thc@bg%
+ \globalcolorstrue%
+ \colorlet{#1.fg}{\beamer@thc@gfg}%
+ \colorlet{#1.bg}{\beamer@thc@gbg}%
+ \endgroup%
+}
+
+\def\setbeamercolor{\@ifstar{\beamer@clearbeamercolor}{\beamer@setbeamercolor}}
+
+\newcommand\beamer@clearbeamercolor[2]{%
+ \def\beamer@temp{#1}%
+ \expandafter\let\csname beamer@thcfg@#1\endcsname=\relax%
+ \expandafter\let\csname beamer@thcbg@#1\endcsname=\relax%
+ \setkeys{beamerthc}{use={},parent={}}%
+ \setkeys{beamerthc}{#2}%
+}
+\newcommand\beamer@setbeamercolor[2]{%
+ \def\beamer@temp{#1}%
+ \setkeys{beamerthc}{#2}%
+}
+
+\newcommand\ifbeamercolorempty[2][]{%
+ \beamer@thc@prepcolor%
+ \beamer@thc@docolor{#2}%
+ \expandafter\ifx\csname beamer@thc@#1\endcsname\@empty%
+ \expandafter\@firstoftwo%
+ \else%
+ \expandafter\@secondoftwo%
+ \fi%
+}
+
+
+\def\usebeamercolor{\@ifstar{\beamer@usebeamercolor[fg]{normal text}\beamer@usebeamercolor}{\beamer@usebeamercolor}}
+\newcommand\beamer@usebeamercolor[2][]{%
+ \beamer@thc@prepcolor%
+ \beamer@thc@docolor{#2}%
+ \ifx\beamer@thc@fg\@empty%
+ \@namelet{\string\color@ temp@fg}{\string\color@ fg}%
+ \else%
+ \colorlet{temp@fg}{\csname beamer@thc@fg\endcsname}%
+ \fi%
+ \ifx\beamer@thc@bg\@empty%
+ \@namelet{\string\color@ temp@bg}{\string\color@ bg}%
+ \else%
+ \colorlet{temp@bg}{\csname beamer@thc@bg\endcsname}%
+ \fi%
+ \@namelet{\string\color@ parent.fg}{\string\color@ fg}%
+ \@namelet{\string\color@ parent.bg}{\string\color@ bg}%
+ \@namelet{\string\color@ fg}{\string\color@ temp@fg}%
+ \@namelet{\string\color@ bg}{\string\color@ temp@bg}%
+ \begingroup%
+ \global\@namelet{\string\color@ #2.fg}{\string\color@ temp@fg}%
+ \global\@namelet{\string\color@ #2.bg}{\string\color@ temp@bg}%
+ \endgroup%
+ \def\beamer@temp{#1}%
+ \ifx\beamer@temp\@empty%
+ \else%
+ \color{#1}%
+ \fi%
+}
+
+\colorlet{fg}{black}
+\colorlet{bg}{white}
+
+\mode
+<article>
+{
+ \newcommand\setbeamercolor{\@ifstar{\@gobbletwo}{\@gobbletwo}}
+ \newcommand\usebeamercolor{\@ifstar{\beamer@optgog}{\beamer@optgog}}
+ \newcommand\beamer@optgog[2][]{}
+}
+
+
+
+%
+% Colored boxes
+%
+
+\define@key{beamercolbox}{wd}{\def\beamer@colbox@wd{#1}}
+\define@key{beamercolbox}{ht}{\def\beamer@colbox@ht{#1}}
+\define@key{beamercolbox}{dp}{\def\beamer@colbox@dp{#1}}
+\define@key{beamercolbox}{leftskip}{\def\beamer@colbox@ls{#1}}
+\define@key{beamercolbox}{rightskip}{\def\beamer@colbox@rs{#1}}
+\define@key{beamercolbox}{left}[0pt]{\def\beamer@colbox@ls{0pt}\def\beamer@colbox@rs{#1 plus1fill}}
+\define@key{beamercolbox}{center}[0pt]{\def\beamer@colbox@ls{#1 plus1fill}\def\beamer@colbox@rs{#1 plus1fill}}
+\define@key{beamercolbox}{right}[0pt]{\def\beamer@colbox@ls{#1 plus1fill}\def\beamer@colbox@rs{0pt}}
+\define@key{beamercolbox}{sep}{\def\beamer@colbox@sep{#1}}
+\define@key{beamercolbox}{colsep}{\def\beamer@colbox@colsep{#1}}
+\define@key{beamercolbox}{colsep*}{\def\beamer@colbox@colseps{#1}}
+\define@key{beamercolbox}{shadow}[true]{\def\beamer@colbox@shadow{#1}}
+\define@key{beamercolbox}{rounded}{\csname beamer@colbox@rounded#1\endcsname}
+\define@key{beamercolbox}{ignorebg}[true]{\csname beamer@colbox@ignorebg#1\endcsname}
+\define@key{beamercolbox}{vmode}[]{\def\beamer@vmode{}}
+
+\newif\ifbeamer@colbox@rounded
+\newif\ifbeamer@colbox@ignorebg
+
+\newenvironment{beamercolorbox}[2][]{%
+ \def\beamer@vmode{\leavevmode}%
+ \setkeys{beamercolbox}{wd=\textwidth,ht={},dp={},%
+ leftskip=0pt,rightskip=0pt plus1fil,%
+ sep=0pt,colsep=0pt,colsep*=0pt,%
+ shadow=false,rounded=false,ignorebg=false}%
+ \setkeys{beamercolbox}{#1}%
+ \ifbeamercolorempty[bg]{#2}{\@tempswafalse}{\@tempswatrue}%
+ \ifbeamer@colbox@ignorebg\@tempswafalse\fi%
+ \def\beamer@colbox@color{#2}%
+ \setbox\beamer@tempbox=\hbox\bgroup\color@begingroup
+ \ifbeamer@colbox@ignorebg%
+ \colorlet{beamer@temp@color}{bg}%
+ \usebeamercolor[fg]{#2}%
+ \colorlet{bg}{beamer@temp@color}%
+ \else%
+ \usebeamercolor[fg]{#2}%
+ \fi%
+ \vbox\bgroup%
+ \hsize=\beamer@colbox@wd%
+ \@arrayparboxrestore%
+ \leftskip=\beamer@colbox@ls%
+ \ifdim\beamer@colbox@sep>\z@\advance\leftskip\beamer@colbox@sep\fi%
+ \rightskip=\beamer@colbox@rs%
+ \ifdim\beamer@colbox@sep>\z@\advance\rightskip\beamer@colbox@sep\fi%
+ \if@tempswa\ifdim\beamer@colbox@colsep>\z@%
+ \advance\leftskip by\beamer@colbox@colsep%
+ \advance\rightskip by\beamer@colbox@colsep%
+ \vskip\beamer@colbox@colsep%
+ \fi%
+ \ifdim\beamer@colbox@colseps>\z@\vskip\beamer@colbox@colseps\fi%
+ \fi%
+ \ifdim\beamer@colbox@sep>\z@\vskip\beamer@colbox@sep\fi%
+ \beamer@vmode\ignorespaces}{%
+ \ifdim\beamer@colbox@sep>\z@\vskip\beamer@colbox@sep\fi%
+ \if@tempswa
+ \ifdim\beamer@colbox@colsep>\z@\vskip\beamer@colbox@colsep\fi%
+ \ifdim\beamer@colbox@colseps>\z@\vskip\beamer@colbox@colseps\fi%
+ \fi%
+ \egroup\color@endgroup\egroup%
+ \ifx\beamer@colbox@ht\@empty\else\ht\beamer@tempbox=\beamer@colbox@ht\fi%
+ \ifx\beamer@colbox@dp\@empty\else\dp\beamer@tempbox=\beamer@colbox@dp\fi%
+ \ifbeamer@colbox@rounded%
+ \if@tempswa%
+ \begin{beamerboxesrounded}[%
+ shadow=\beamer@colbox@shadow,%
+ lower=\beamer@colbox@color,%
+ upper=normal text,%
+ width=\beamer@colbox@wd]{}%
+ \box\beamer@tempbox%
+ \end{beamerboxesrounded}%
+ \else%
+ \ifdim\wd\beamer@tempbox>\textwidth%
+ \setbox\beamer@tempbox=\hbox to\textwidth{\hss\box\beamer@tempbox\hss}%
+ \fi%
+ \box\beamer@tempbox%
+ \fi%
+ \else%
+ \if@tempswa\setbox\beamer@tempbox=\hbox{%
+ \usebeamercolor{\beamer@colbox@color}%
+ \hskip-\beamer@colbox@colseps%
+ \fboxsep=\z@\colorbox{bg}{%
+ \hskip\beamer@colbox@colseps%
+ \box\beamer@tempbox%
+ \hskip\beamer@colbox@colseps%
+ }%
+ \hskip-\beamer@colbox@colseps%
+ }\fi%
+ \ifdim\wd\beamer@tempbox>\textwidth%
+ \setbox\beamer@tempbox=\hbox to\textwidth{\hskip0pt minus\beamer@leftmargin\relax\box\beamer@tempbox\hskip0pt minus\beamer@leftmargin\relax}%
+ \fi%
+ \box\beamer@tempbox%
+ \fi%
+}
+
+\mode
+<article>
+{
+ \newenvironment{beamercolorbox}[2][]{}{}
+}
+
+
+%
+% Install these colors at the start of the document
+%
+
+\AtBeginDocument{
+ \usebeamercolor*{alerted text} % Define these colors
+ \usebeamercolor*{example text} % Define these colors
+ \usebeamercolor*{structure} % Define these colors
+ \usebeamercolor{normal text}
+ \color{fg}
+ \def\normalcolor{\color{normal text.fg}}
+}
+
+
+
+
+%
+% Math mode color hackery
+%
+
+\newcommand\beamer@setmathcolor{%
+ \usebeamercolor{math text inlined}%
+ \ifbeamercolorempty[fg]{math text inlined}{}{\color{fg}}}
+
+\newcommand\donotcoloroutermaths{%
+ \everymath\expandafter\expandafter\expandafter{%
+ \expandafter\donotcoloroutermaths@aux\the\everymath
+ \beamer@setmathcolor\beamer@setmathcolor\beamer@stop
+ \everymath\expandafter{\the\everymath\beamer@setmathcolor}%
+ }%
+}
+\newcommand\donotcoloroutermaths@aux{}
+\long\def\donotcoloroutermaths@aux
+ #1\beamer@setmathcolor#2\beamer@setmathcolor#3\beamer@stop{%
+ #1#2%
+ }
+
+\newcommand\beamer@setdisplaymathcolor{%
+ \usebeamercolor{math text displayed}%
+ \ifbeamercolorempty[fg]{math text displayed}{}{\color{fg}\aftergroup\ignorespaces}}%
+
+\newcommand\donotcolorouterdisplaymaths{%
+ \everydisplay\expandafter\expandafter\expandafter{%
+ \expandafter\donotcolorouterdisplaymaths@aux\the\everydisplay
+ \beamer@setdisplaymathcolor\beamer@setdisplaymathcolor\beamer@stop
+ \everydisplay\expandafter{\the\everydisplay\beamer@setdisplaymathcolor}%
+ }%
+}
+\newcommand\donotcolorouterdisplaymaths@aux{}
+\long\def\donotcolorouterdisplaymaths@aux
+ #1\beamer@setdisplaymathcolor#2\beamer@setdisplaymathcolor#3\beamer@stop{%
+ #1#2%
+ }
+
+\AtBeginDocument
+{
+ \everymath\expandafter{\the\everymath\beamer@setmathcolor}
+ \everydisplay\expandafter{\the\everydisplay\beamer@setdisplaymathcolor}
+}
+
+\AtBeginDocument{
+ % Fix $ usage in tabular:
+ \let\beamer@orig@tabular=\@tabular
+ \def\@tabular{\donotcoloroutermaths\beamer@orig@tabular}
+
+ % Fix $ usage in underline:
+ \let\beamer@orig@underline=\underline
+ \def\underline#1{{\donotcoloroutermaths\beamer@orig@underline{#1}}}
+
+ % Fix $ usage in underline:
+ \let\beamer@orig@@textsubscript=\@textsubscript
+ \def\@textsubscript#1{{\donotcoloroutermaths\beamer@orig@@textsubscript{#1}}}
+ \let\beamer@orig@@textsuperscript=\@textsuperscript
+ \def\@textsuperscript#1{{\donotcoloroutermaths\beamer@orig@@textsuperscript{#1}}}
+
+ % Fix $ usage in parbox:
+ \let\beamer@orig@pboxswture=\@pboxswtrue
+ \def\@pboxswtrue{\donotcoloroutermaths\beamer@orig@pboxswture}
+
+ % Fix $$ usage in align:
+ \let\beamer@orig@start@align=\start@align
+ \def\start@align{\donotcolorouterdisplaymaths\donotcoloroutermaths\beamer@setdisplaymathcolor\beamer@orig@start@align}
+
+ % Fix $$ usage in gather:
+ \let\beamer@orig@start@gather=\start@gather
+ \def\start@gather{\donotcolorouterdisplaymaths\donotcoloroutermaths\beamer@setdisplaymathcolor\beamer@orig@start@gather}
+
+ % Fix $$ usage in multicolumn:
+ \let\beamer@orig@start@multline=\start@multline
+ \def\start@multline{\donotcolorouterdisplaymaths\donotcoloroutermaths\beamer@setdisplaymathcolor\beamer@orig@start@multline}
+
+ % Fix $$ usage in eqnarray:
+ \let\beamer@orig@eqnarray=\eqnarray
+ \def\eqnarray{\donotcolorouterdisplaymaths\donotcoloroutermaths\beamer@setdisplaymathcolor\beamer@orig@eqnarray}
+
+ % Fix \text:
+ \let\beamer@orig@text@=\text@
+ \def\text@#1{{\ifbeamercolorempty[fg]{normal text in math text}{}{\usebeamercolor[fg]{normal text in math text}}\beamer@orig@text@{#1}}}
+}
+
+%
+% Allow mixins to survive groups:
+%
+
+\let\beamerorig@set@color=\set@color
+\let\beamerorig@reset@color=\reset@color
+
+\edef\beamer@zeropt{\the\z@}
+
+\def\beamer@current@colorhook{}
+
+\def\set@color{%
+ \edef\beamer@current@colorhook{\beamer@colorhook}%
+ \beamerorig@set@color}
+\def\reset@color{%
+ \beamer@lastskip=\lastskip%
+ \edef\beamer@lastskiptexta{\the\lastskip}%
+ \ifx\beamer@lastskiptexta\beamer@zeropt\else%
+ \ifvmode\unskip\fi%
+ \ifhmode\unskip\fi%
+ \fi%
+ \ifx\beamer@current@colorhook\beamer@colorhook%
+ \beamerorig@reset@color%
+ \else% mixin changed -> recalculate
+ \colorlet{beamer@tempcolor}{.}%
+ \applycolormixins{beamer@tempcolor}%
+ \@namelet{current@color}{\string\color@beamer@tempcolor}%
+ \beamerorig@reset@color%
+ \pgfsys@color@unstacked{beamer@tempcolor}%
+ \fi%
+ \ifx\beamer@lastskiptexta\beamer@zeropt%
+ \else%
+ \ifvmode\vskip\beamer@lastskip\fi%
+ \ifhmode\hskip\beamer@lastskip\fi%
+ \fi%
+}
+
+
+
+% compatibility:
+
+\AtBeginDocument{
+ \colorlet{structure}{structure.fg}
+ \colorlet{beamerstructure}{structure.fg}
+ \colorlet{averagebackgroundcolor}{normal text.bg}
+}
+
+\mode
+<article>
+{
+ \def\beamersetaveragebackground#1{}
+
+ \ifbeamer@articlexcolor
+ \colorlet{averagebackgroundcolor}{white}
+ \fi
+}
+
+\colorlet{alert}{red!95!black}
+\definecolor{structure}{rgb}{0.2,0.2,0.7} % dummy -- not used
+
+\colorlet{beameralert}{alert}
+\colorlet{beamerexample}{green!50!black}
+\colorlet{beamerstructure}{structure} % dummy
+
+\mode
+<article>
+{
+ \ifbeamer@articlexcolor
+ \definecolor{alert}{rgb}{1,0,0}
+
+ \colorlet{beameralert}{alert}
+ \colorlet{beamerexample}{green!50!black}
+ \colorlet{beamerstructure}{black}
+ \colorlet{structure}{beamerstructure}
+ \fi
+
+}
+
+
+\mode
+<all>