From 04011b83848893891b4410633f50179ff4acae8a Mon Sep 17 00:00:00 2001 From: Urbain Vaes Date: Tue, 11 Oct 2022 14:18:09 +0200 Subject: Initial commit --- pdfpc-commands.sty | 163 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 163 insertions(+) create mode 100644 pdfpc-commands.sty (limited to 'pdfpc-commands.sty') diff --git a/pdfpc-commands.sty b/pdfpc-commands.sty new file mode 100644 index 0000000..0bb1410 --- /dev/null +++ b/pdfpc-commands.sty @@ -0,0 +1,163 @@ +% Package: textpos is required for textblock* +\usepackage[absolute,overlay]{textpos} + + +% fullFrameMovie +% +% Arguments: +% +% [optional]: movie-options, seperated by & +% Supported options: loop, start=N, end=N, autostart +% Default: autostart&loop +% +% 1. Movie file +% 2. Poster image +% 3. Any text on the slide, or nothing (e.g. {}) +% +% Example: +% \fullFrameMovie[loop&autostart]{apollo17.avi}{apollo17.jpg}{\copyrightText{Apollo 17, NASA}} +% +\newcommand{\fullFrameMovie}[4][autostart&loop] +{ + { + \setbeamercolor{background canvas}{bg=black} + + + % to make this work for both horizontally filled and vertically filled images, we create an absolutely + % positioned textblock* that we force to be the width of the slide. + % we then place it at (0,0), and then create a box inside of it to ensure that it's always 95% of the vertical + % height of the frame. Once we have created an absolutely positioned and sized box, it doesn't matter what + % goes inside -- it will always be vertically and horizontally centered + \frame[plain] + { + \begin{textblock*}{\paperwidth}(0\paperwidth,0\paperheight) + \centering + \vbox to 0.95\paperheight { + \vfil{ + \href{run:#2?autostart}{\includegraphics[width=\paperwidth,height=0.95\paperheight,keepaspectratio]{#3}} + } + \vfil + } + \end{textblock*} + #4 + } + } +} + +% inlineMovie +% +% Arguments: +% +% [optional]: movie-options, seperated by & +% Supported options: loop, start=N, end=N, autostart +% Default: autostart&loop +% +% 1. Movie file +% 2. Poster image +% 3. size command, such as width=\textwidth +% +% Example: +% \inlineMovie[loop&autostart&start=5&stop=12]{apollo17.avi}{apollo17.jpg}{height=0.7\textheight} +% +\newcommand{\inlineMovie}[4][autostart&loop] +{ + \href{run:#2?#1}{\includegraphics[#4]{#3}} +} + + +% copyrightText +% +% Produces small text on the right side of the screen, useful for +% stating copyright or other small notes in movies or images +% +% Arguments: +% +% [optional]: text color +% Default: white +% +% 1. Text to be displayed +% +% Example: +% \copyrightText{Full frame image of: Apollo 17, NASA} +% +\newcommand\copyrightText[2][white]{% + \begin{textblock*}{\paperwidth}(0\paperwidth,.97\paperheight)% + \hfill\textcolor{#1}{\tiny#2}\hspace{20pt} + \end{textblock*} +} + +% fullFrameImageZoomed +% +% Produces a slide that contains a full frame image. Scales down the image +% to fit if the aspect ratio of the slide does not match the image. +% +% Arguments: +% +% [optional]: color of text on page +% Default: white +% +% 1. Path to image file +% 2. Any additional content on the frame +% +% Example: +% \fullFrameImageZoomed{apollo17.jpg}{\copyrightText{Full frame image of: Apollo 17, NASA}} +% +\newcommand{\fullFrameImage}[3][white] +{ + { + \setbeamercolor{normal text}{bg=black,fg=#1} + + + % to make this work for both horizontally filled and vertically filled images, we create an absolutely + % positioned textblock* that we force to be the width of the slide. + % we then place it at (0,0), and then create a box inside of it to ensure that it's always 95% of the vertical + % height of the frame. Once we have created an absolutely positioned and sized box, it doesn't matter what + % goes inside -- it will always be vertically and horizontally centered + \frame + { + \begin{textblock*}{\paperwidth}(0\paperwidth,0\paperheight) + \centering + \vbox to 0.95\paperheight { + \vfil{ + \includegraphics[width=\paperwidth,height=0.95\paperheight,keepaspectratio]{#2} + } + \vfil + } + \end{textblock*} + #3 + } + } +} + +% fullFrameImageZoomed +% +% Produces a slide that contains a full frame image. If the aspect ratio +% of the image does not match the slide, it crops the image. +% +% Arguments: +% +% [optional]: color of text on page +% Default: black +% +% 1. Path to image file +% 2. Any additional content on the frame +% +% Example: +% \fullFrameImageZoomed{apollo17.jpg}{\copyrightText{Full frame image of: Apollo 17, NASA}} +% +\newcommand{\fullFrameImageZoomed}[3][black] +{ + { + \usebackgroundtemplate{\includegraphics[height=\paperheight]{#2}} + \setbeamercolor{normal text}{bg=black,fg=#1} + \frame + { + #3 + } + } +} + + + + + -- cgit v1.2.3