%\iffalse %<*package> %% \CharacterTable %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z %% Digits \0\1\2\3\4\5\6\7\8\9 %% Exclamation \! Double quote \" Hash (number) \# %% Dollar \$ Percent \% Ampersand \& %% Acute accent \' Left paren \( Right paren \) %% Asterisk \* Plus \+ Comma \, %% Minus \- Point \. Solidus \/ %% Colon \: Semicolon \; Less than \< %% Equals \= Greater than \> Question mark \? %% Commercial at \@ Left bracket \[ Backslash \\ %% Right bracket \] Circumflex \^ Underscore \_ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} % %\fi %\iffalse % Doc-Source file to use with LaTeX2e % % This file is part of pdfpc. % Copyright (C) 2020 Evgeny Stambulchik % % This program is free software; you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by % the Free Software Foundation; either version 3 of the License, or % (at your option) any later version. % % This program is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License along % with this program; if not, write to the Free Software Foundation, Inc., % 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. % ------------------------------------------------------------------------------------------- % % Allow for defining some meta data and simple textual notes for use % with the pdfpc presentation application . % % ------------------------------------------------------------------------------------------- % % Inspired by Carsten Brandt's . % % ------------------------------------------------------------------------------------------- % % Please report bugs and other problems as well as suggestions for improvements % to the issue tracker at github % % ------------------------------------------------------------------------------------------- %\fi % % Identify the package and force \LaTeXe: % \begin{macrocode} \ProvidesPackage{pdfpc}[2019/12/03 v0.2.1 PDFPC] \NeedsTeXFormat{LaTeX2e} % \end{macrocode} % % Require additional packages needed by \sty{pdfpc}: % \begin{macrocode} \RequirePackage{kvoptions} \RequirePackage{xstring} \RequirePackage{pdfcomment} \RequirePackage{hyperxmp} % \end{macrocode} % \SetupKeyvalOptions{ family=PDFPC, prefix=PDFPC@ } % \DeclareStringOption{duration} \DeclareStringOption{starttime} \DeclareStringOption{endtime} \DeclareStringOption{enduserslide} \DeclareStringOption{lastminutes} \DeclareBoolOption{overridenote} \DeclareStringOption{notesposition} \DeclareDefaultOption{\@unknownoptionerror} % \ProcessKeyvalOptions* % \ifx\PDFPC@duration\@empty \else \IfInteger{\PDFPC@duration}{} {\PackageWarningNoLine{pdfpc}{`duration' should be an integer}}% \fi % \ifx\PDFPC@enduserslide\@empty \else \IfInteger{\PDFPC@enduserslide}{} {\PackageWarningNoLine{pdfpc}{`enduserslide' should be an integer}}% \fi % \ifx\PDFPC@lastminutes\@empty \else \IfInteger{\PDFPC@lastminutes}{} {\PackageWarningNoLine{pdfpc}{`lastminutes' should be an integer}}% \fi % \ifPDFPC@overridenote \renewcommand{\note}[2][]{% \IfStrEq{#1}{item}% % Imitate a bullet {\pdfpcnote{* #2}}% {\pdfpcnote{#2}}% }% \fi % \def\pdfpc@notespositionauto{auto}% \ifx\PDFPC@notesposition\@empty% \def\PDFPC@notesposition{auto}% \fi% % % Guesswork for beamer/pgfpages notes % \begin{macrocode} \ifx\PDFPC@notesposition\pdfpc@notespositionauto% \def\PDFPC@notesposition{none}% \def\pdfpc@onepaperheight{\paperheight}% \def\pdfpc@twopaperheight{2\paperheight}% \def\pdfpc@onepaperwidth{\paperwidth}% \def\pdfpc@twopaperwidth{2\paperwidth}% \def\pdfpc@pagecenter{\pgfpoint{.5\paperwidth}{.5\paperheight}}% \ifx\pgfpageoptiontwoheight\pdfpc@onepaperheight% \ifx\pgfpageoptiontwowidth\pdfpc@twopaperwidth% \ifx\pgfpageoptionfirstcenter\pdfpc@pagecenter% \def\PDFPC@notesposition{right}% \else% \def\PDFPC@notesposition{left}% \fi% \fi% \fi% \ifx\pgfpageoptiontwoheight\pdfpc@twopaperheight% \ifx\pgfpageoptiontwowidth\pdfpc@onepaperwidth% \ifx\pgfpageoptionfirstcenter\pdfpc@pagecenter% \def\PDFPC@notesposition{top}% \else% \def\PDFPC@notesposition{bottom}% \fi% \fi% \fi% \fi% % \end{macrocode} % % Our schema % \begin{macrocode} \newcommand*{\pdfpc@schema}{% \hyxmp@add@to@xml{% ______^^J% }% \hyxmp@add@simple{pdfpc:Duration}{\PDFPC@duration}% \hyxmp@add@simple{pdfpc:StartTime}{\PDFPC@starttime}% \hyxmp@add@simple{pdfpc:EndTime}{\PDFPC@endtime}% \hyxmp@add@simple{pdfpc:EndUserSlide}{\PDFPC@enduserslide}% \hyxmp@add@simple{pdfpc:LastMinutes}{\PDFPC@lastminutes}% \hyxmp@add@simple{pdfpc:NotesPosition}{\PDFPC@notesposition}% \hyxmp@add@to@xml{% ______^^J% }% } % % Piggybacking on the hyperxmp schema... % \begin{macrocode} \let\oldhyxmp@pdf@schema\hyxmp@pdf@schema \renewcommand{\hyxmp@pdf@schema}{{\oldhyxmp@pdf@schema}{\pdfpc@schema}} % \end{macrocode} % Note command % \begin{macrocode} \newcommand{\pdfpcnote}[1]{\pdfmargincomment{#1}} % \end{macrocode} % \endinput