%% %% This is file `ppt-slides.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% ppt-slides.dtx (with options: `package') %% (The MIT License) %% %% Copyright (c) 2021-2024 Yegor Bugayenko %% %% Permission is hereby granted, free of charge, to any person obtaining a copy %% of this software and associated documentation files (the 'Software'), to deal %% in the Software without restriction, including without limitation the rights %% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell %% copies of the Software, and to permit persons to whom the Software is %% furnished to do so, subject to the following conditions: %% %% The above copyright notice and this permission notice shall be included in all %% copies or substantial portions of the Software. %% %% THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR %% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, %% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE %% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER %% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, %% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE %% SOFTWARE. \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{ppt-slides} [2024-05-02 0.3.3 Slide Decks a la Power Point] \RequirePackage{pgfopts} \makeatletter \pgfkeys{ /ppt-slides/.is family, /ppt-slides, template/.estore in = \ppt@template, template/.default = 9x6, scheme/.estore in = \ppt@scheme, directory/.estore in = \ppt@directory, directory/.default = , nominutes/.estore in = \ppt@nominutes, directory } \ProcessPgfPackageOptions{/ppt-slides} \makeatother \makeatletter\ifdefined\ppt@template \input{\ppt@directory ppt-templates/ppt-\ppt@template.tex} \else \message{^^Jppt: No template is loaded, because the 'template' option is not specified} \fi\makeatother \makeatletter\ifdefined\ppt@scheme \RequirePackage{xcolor} \input{\ppt@directory ppt-schemes/ppt-\ppt@scheme.tex} \else \message{^^Jppt: No color scheme is loaded, because the 'scheme' option is not specified} \fi\makeatother \RequirePackage{ifthen} \RequirePackage{href-ul} \RequirePackage{pagecolor} \RequirePackage{varwidth} \RequirePackage{qrcode} \RequirePackage{tikz} \RequirePackage{tikzpagenodes} \RequirePackage[inline]{enumitem} \RequirePackage{crumbs} \RequirePackage{calc} \RequirePackage{tabularx} \RequirePackage{seqsplit} \newenvironment{pptMiddle} {\vspace*{\fill}} {\vspace*{\fill}} \newcommand\pptBanner[2][green]{% \par% {\setlength{\fboxsep}{6pt}% \colorbox{#1}{\color{\thepagecolor}\large #2}}% \par% } \newcommand\pptChapter[2][]{% \crumbection[#1]{#2}% \begin{pptMiddle}% {\large\ttfamily Chapter \#\the\value{section}:}% \newline% \rotatebox{1}{\pptBanner[blue]{\LARGE#2}}% \end{pptMiddle}% } \newcommand\pptSection[2][]{% \subcrumbection[#1]{#2}% \pptHeader{#2}% } \newcommand\pptHeader[1]{% \vspace*{-0.75in}\hspace*{-0.5in}% \rotatebox{1}{\pptBanner[orange]{\Large #1}}\vspace*{0.15in}% \par% } \newcommand\pptTitle[2]{% {\pptBanner{\Huge #1}}% \def\param{#2}% \ifx\param\empty\else% {\pptBanner{\large #2}}% \fi% } \newcommand*\pptTOC{} \newcommand\pptToc[1][]{% \renewcommand*\pptTOC{}% \print{% \def\param{#1}% \ifx\param\empty\else% \pptBanner{#1}% \fi% \tikz{% \node (z) {% \begin{varwidth}{\textwidth}% \ifx\pptTOC\empty\else% \begin{itemize}[label={}] \pptTOC \end{itemize} \fi% \end{varwidth}% };% \path [draw=blue,line width=4pt] (z.north west) -- (z.south west);% }% }% \begin{@empty}% \renewcommand\crumb[2]{% \ifx\pptTOC\empty\else\ifdefined\click\click[0]\fi\fi \gappto\pptTOC{\item ##2} } \crumbs \end{@empty}% \ifdefined\flush\flush[1]\fi% } \newcommand\pptQuote[4][]{% \begin{tabularx}{\columnwidth}{c>{\raggedright\arraybackslash}X}% \raisebox{\dimexpr-\height+\ht\strutbox}{ \parbox{0.25\textwidth+2pt}{% \raggedright% \pptPic{0.25}{#2}% \def\person{#1}% \ifx\person\empty\else% \par% \small% \person% \fi% }% }% &% ``#3{}''% \def\param{#4}% \ifx\param\empty\else% \par\vspace*{1em}% \small% --- \param% \par% \fi% \\% \end{tabularx}% } \newcommand\pptPic[2]{% {% \setlength{\fboxsep}{0pt}% \setlength{\fboxrule}{1pt}% \fcolorbox{gray}{white}{% \includegraphics[width=#1\columnwidth]{#2}% }% }% } \newcommand\pptPin[2][right]{% \begin{tikzpicture}[remember picture,overlay]% \ifthenelse{\equal{#1}{left}}% {% \node[anchor=north east] at ($(current page text area.north west) - (24pt, 18pt)$) {% \begin{minipage}{0.25\textwidth}% \raggedleft #2% \end{minipage}% };% }% {% \node[anchor=north east] at (current page text area.north east) {% \begin{minipage}{0.25\textwidth}% \raggedright #2% \end{minipage}% };% }% \end{tikzpicture}% } \newcommand\pptThought[1]{% \begin{pptMiddle}% \tikz{% \node [inner sep=18pt] (z) {% \begin{varwidth}{0.8\textwidth}% \raggedright\Large #1% \end{varwidth}% }; \path [draw=green,line width=8pt] (z.north west) -- (z.south west); }% \end{pptMiddle}% } \newcommand\pptSnippet[2][\small]{% \begin{samepage}% #1\verbatiminput{#2}% \end{samepage}% } \newcommand\pptQR[2][2in]{% \tikz{% \node[draw=white]{% \href{#2}{% \qrcode[height=#1]{#2}% }% }% }% } \newcommand\pptPinQR[2][right]{% \pptPin[#1]{% \begin{minipage}{1.4in}% \raggedleft% \pptQR[1in]{#2}% \\[3pt] \ttfamily\fontsize{8pt}{10pt}\selectfont% \seqsplit{#2} \href{#2}{$\rightarrow$}% \\ \end{minipage}% }% } \newenvironment{pptWideOne} {\begin{adjustwidth}{-2in}{-1in}} {\end{adjustwidth}} \newenvironment{pptWide}[1] {\begin{pptWideOne}\begin{multicols}{#1}} {\end{multicols}\end{pptWideOne}} \endinput %% %% End of file `ppt-slides.sty'.