diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/beamer/base/beamerbasetoc.sty |
Initial commit
Diffstat (limited to 'macros/latex/contrib/beamer/base/beamerbasetoc.sty')
-rw-r--r-- | macros/latex/contrib/beamer/base/beamerbasetoc.sty | 219 |
1 files changed, 219 insertions, 0 deletions
diff --git a/macros/latex/contrib/beamer/base/beamerbasetoc.sty b/macros/latex/contrib/beamer/base/beamerbasetoc.sty new file mode 100644 index 0000000000..9b39d707e0 --- /dev/null +++ b/macros/latex/contrib/beamer/base/beamerbasetoc.sty @@ -0,0 +1,219 @@ +% Copyright 2003--2007 by Till Tantau +% Copyright 2010 by Vedran Mileti\'c +% Copyright 2012,2013,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> + +% +% Local counters/ifs/dimensions +% +\newif\ifbeamer@pausesections +\newif\ifbeamer@pausesubsections + +% +% +% Table of Contents Format +% +% + +\def\beamer@toc@sectionstyle#1{\beamer@toc@process\beamer@toc@cs\beamer@toc@os#1//} +\def\beamer@toc@subsectionstyle#1{\beamer@toc@sprocess\beamer@toc@css\beamer@toc@oss\beamer@toc@ooss#1///} +\def\beamer@toc@subsubsectionstyle#1{\beamer@toc@ssprocess\beamer@toc@csss\beamer@toc@osss\beamer@toc@oosss\beamer@toc@ooosss#1////} + +\define@key{beamertoc}{sectionstyle}{\beamer@toc@sectionstyle{#1}} +\define@key{beamertoc}{subsectionstyle}{\beamer@toc@subsectionstyle{#1}} +\define@key{beamertoc}{subsubsectionstyle}{\beamer@toc@subsubsectionstyle{#1}} +\def\beamer@toc@process#1#2#3/#4/{% + \ifblank{#4}{\def#1{#3}\def#2{#3}}{\def#1{#3}\def#2{#4}\@gobble}} + +\def\beamer@toc@sprocess#1#2#3#4/#5/#6/{% + \ifblank{#5}% + {\def#1{#4}\def#2{#4}\def#3{#4}} + {\ifblank{#6} + {\def#1{#4}\def#2{#5}\def#3{#5}\@gobble} + {\def#1{#4}\def#2{#5}\def#3{#6}\@gobbletwo}}} + +\def\beamer@toc@ssprocess#1#2#3#4#5/#6/#7/#8/{% + \ifblank{#6}% + {\def#1{#5}\def#2{#5}\def#3{#5}\def#4{#5}} + {\ifblank{#7} + {\def#1{#5}\def#2{#6}\def#3{#6}\def#4{#6}\@gobble} + {\ifblank{#8} + {\def#1{#5}\def#2{#6}\def#3{#7}\def#4{#7}\@gobbletwo} + {\def#1{#5}\def#2{#6}\def#3{#7}\def#4{#8}\expandafter\@gobble\@gobbletwo}}}% no gobblethree? +} + +\define@key{beamertoc}{pausesections}[true]{\beamer@pausesectionstrue} +\define@key{beamertoc}{pausesubsections}[true]{\beamer@pausesubsectionstrue} + +\define@key{beamertoc}{currentsection}[]{\beamer@toc@sectionstyle{show/shaded}\beamer@toc@subsectionstyle{show/show/shaded}\beamer@toc@subsubsectionstyle{show/show/shaded}} +\define@key{beamertoc}{currentsubsection}[]{\beamer@toc@subsectionstyle{show/shaded}\beamer@toc@subsubsectionstyle{show/shaded}} +\define@key{beamertoc}{hideallsubsections}[]{\beamer@toc@subsectionstyle{hide}\beamer@toc@subsubsectionstyle{hide}} +\define@key{beamertoc}{hideothersubsections}[]{\beamer@toc@subsectionstyle{show/show/hide}\beamer@toc@subsubsectionstyle{show/shaded/hide}} + +\define@key{beamertoc}{part}{\beamer@showpartnumber=#1\relax} +\define@key{beamertoc}{sections}{\beamer@parsetocsections#1[]} +\define@key{beamertoc}{firstsection}{\beamer@sectionadjust=-#1\relax\advance\beamer@sectionadjust by 1\relax} +\def\beamer@parsetocsections{\@ifnextchar<\beamer@@parsetocsections\beamer@@@parsetocsections} +\def\beamer@@parsetocsections#1[]{\def\beamer@tocsections{#1}} +\def\beamer@@@parsetocsections#1[]{\def\beamer@tocsections{<all:#1>}} + +\def\tableofcontents{\@ifnextchar[{\beamer@tableofcontents}{\beamer@tableofcontents[]}} +\def\beamer@tableofcontents[#1]{% + \def\beamer@toc@cs{show}% + \def\beamer@toc@os{show}% + \def\beamer@toc@css{show}% + \def\beamer@toc@oss{show}% + \def\beamer@toc@ooss{show}% + \def\beamer@toc@csss{show}% + \def\beamer@toc@osss{show}% + \def\beamer@toc@oosss{show}% + \def\beamer@toc@ooosss{show}% + \beamer@showpartnumber=\c@part% + \beamer@pausesectionsfalse% + \beamer@pausesubsectionsfalse% + \def\beamer@tocsections{<*>}% + \setkeys{beamertoc}{firstsection=1}% + \setkeys{beamertoc}{#1}% + \vspace*{-.5em}{\makeatletter% + \pause[0]% + \@input{\jobname.toc}% + \vfill}% + } + +\renewcommand\addcontentsline[3]{\addtocontents{#1}{\protect\contentsline{#2}{#3}}} + +\def\beamer@tocaction@show#1{\usebeamertemplate**{#1}} +\def\beamer@tocaction@shaded#1{\usebeamertemplate**{#1 shaded}} +\def\beamer@tocaction@hide#1{} + +\def\beamer@tocact#1#2{\csname beamer@tocaction@#1\endcsname{#2}} + +\def\beamer@tocifnothide#1{\csname beamer@tocinvcheck@#1\endcsname} +\let\beamer@tocinvcheck@hide\@gobble +\let\beamer@tocinvcheck@show\@firstofone +\let\beamer@tocinvcheck@shaded\@firstofone + +\def\beamer@hidetext{hide} + +\def\sectionintoc{} +\def\beamer@sectionintoc#1#2#3#4#5{% + \ifnum\c@tocdepth>0% + \ifnum#4=\beamer@showpartnumber% + { + \beamer@saveanother% + \gdef\beamer@todo{}% + \beamer@slideinframe=#1\relax% + \expandafter\only\beamer@tocsections{\gdef\beamer@todo{% + \beamer@tempcount=#5\relax% + \advance\beamer@tempcount by\beamer@sectionadjust% + \ifnum\beamer@tempcount>0 + \edef\inserttocsectionnumber{\the\beamer@tempcount}% + \else + \def\inserttocsectionnumber{}% + \fi% + \def\inserttocsection{\hyperlink{Navigation#3}{#2}}% + \beamer@tocifnothide{\ifnum\c@section=#1\beamer@toc@cs\else\beamer@toc@os\fi}% + {% + \ifbeamer@pausesections\pause\fi% + \ifx\beamer@toc@ooss\beamer@hidetext + \vskip1.5em + \else + \vfill + \fi + {% + \hbox{\vbox{% + \def\beamer@breakhere{\\}% + \beamer@tocact{\ifnum\c@section=#1\beamer@toc@cs\else\beamer@toc@os\fi}{section in toc}}}% + \par% + }% + }% + }% + }% + \beamer@restoreanother% + } + \beamer@todo% + \fi\fi% +} + +\def\subsectionintoc{} +\long\def\beamer@subsectionintoc#1#2#3#4#5#6{% + \ifnum\c@tocdepth>1% + \ifnum#5=\beamer@showpartnumber% + {% + \beamer@saveanother% + \gdef\beamer@todo{}% + \beamer@slideinframe=#1\relax% + \expandafter\only\beamer@tocsections{\gdef\beamer@todo{% + \ifbeamer@pausesubsections\pause\fi% + \beamer@tempcount=#6% + \advance\beamer@tempcount by\beamer@sectionadjust% + \edef\inserttocsectionnumber{\the\beamer@tempcount}% + \def\inserttocsubsectionnumber{#2}% + \def\inserttocsubsection{\hyperlink{Navigation#4}{#3}}% + \beamer@tocifnothide{\ifnum\c@section=#1\beamer@toc@css\else\beamer@toc@oss\fi}% + {% + \def\beamer@breakhere{\\}% + \beamer@tocact{\ifnum\c@section=#1\ifnum\c@subsection=#2\beamer@toc@css\else\beamer@toc@oss\fi\else\beamer@toc@ooss\fi} + {subsection in toc}% + }% + }}% + \beamer@restoreanother% + }% + \beamer@todo% + \fi\fi% +} + +\def\subsubsectionintoc{} +\long\def\beamer@subsubsectionintoc#1#2#3#4#5#6#7{% + \ifnum\c@tocdepth>2% + \ifnum#6=\beamer@showpartnumber% + { + \beamer@saveanother% + \gdef\beamer@todo{}% + \beamer@slideinframe=#1\relax% + \expandafter\only\beamer@tocsections{\gdef\beamer@todo{% + \ifbeamer@pausesubsections\pause\fi% + \beamer@tempcount=#7% + \advance\beamer@tempcount by\beamer@sectionadjust% + \edef\inserttocsectionnumber{\the\beamer@tempcount}% + \def\inserttocsubsectionnumber{#2}% + \def\inserttocsubsubsectionnumber{#3}% + \def\inserttocsubsubsection{\hyperlink{Navigation#5}{#4}}% + \beamer@tocifnothide{\ifnum\c@section=#1\beamer@toc@csss\else\beamer@toc@osss\fi}% + {% + \def\beamer@breakhere{\\}% + \beamer@tocact{\ifnum\c@section=#1\ifnum\c@subsection=#2\ifnum\c@subsubsection=#3\beamer@toc@csss\else\beamer@toc@osss\fi\else\beamer@toc@oosss\fi\else\beamer@toc@ooosss\fi} + {subsubsection in toc}% + }% + }}% + \beamer@restoreanother% + } + \beamer@todo% + \fi\fi% +} + +\mode +<article> +{ + \long\def\beamer@sectionintoc#1#2#3#4#5{} + \long\def\beamer@subsectionintoc#1#2#3#4#5#6{} + \long\def\beamer@subsubsectionintoc#1#2#3#4#5#6#7{} + \AtBeginDocument{ + \let\beamer@origtableofcontents=\tableofcontents + \renewcommand{\tableofcontents}[1][]{\beamer@origtableofcontents} + } +} + + +\mode +<all> |