diff options
Diffstat (limited to 'macros/latex/contrib/pdfpc')
-rw-r--r-- | macros/latex/contrib/pdfpc/README.md | 35 | ||||
-rw-r--r-- | macros/latex/contrib/pdfpc/pdfpc.dtx | 179 | ||||
-rw-r--r-- | macros/latex/contrib/pdfpc/pdfpc.ins | 38 |
3 files changed, 252 insertions, 0 deletions
diff --git a/macros/latex/contrib/pdfpc/README.md b/macros/latex/contrib/pdfpc/README.md new file mode 100644 index 0000000000..15d8df9ba3 --- /dev/null +++ b/macros/latex/contrib/pdfpc/README.md @@ -0,0 +1,35 @@ +# pdfpc + +This packages allows to define additional meta data within +the PDF file which can be interpreted by the pdf presenter +console (pdfpc) program. + +## Dependencies + +`pdfpc` depends on these packages: +[`kvoptions`](https://ctan.org/pkg/kvoptions), +[`xstring`](https://ctan.org/pkg/xstring), +[`pdfcomment`](https://ctan.org/pkg/pdfcomment), +[`hyperxmp`](https://ctan.org/pkg/hyperxmp) + +## Usage + +It's best to read the [`pdfpc`](https://github.com/pdfpc/pdfpc) documentation +for `pdfpc` integration. + +## License + +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. + diff --git a/macros/latex/contrib/pdfpc/pdfpc.dtx b/macros/latex/contrib/pdfpc/pdfpc.dtx new file mode 100644 index 0000000000..4177554186 --- /dev/null +++ b/macros/latex/contrib/pdfpc/pdfpc.dtx @@ -0,0 +1,179 @@ +%\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 \~} +%</package> +%\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 <https://pdfpc.github.io>. +% +% ------------------------------------------------------------------------------------------- +% +% Inspired by Carsten Brandt's <https://github.com/cebe/pdfpc-latex-notes>. +% +% ------------------------------------------------------------------------------------------- +% +% Please report bugs and other problems as well as suggestions for improvements +% to the issue tracker at github <https://github.com/pdfpc/pdfpc/> +% +% ------------------------------------------------------------------------------------------- +%\fi +% +% Identify the package and force \LaTeXe: +% \begin{macrocode} +\ProvidesPackage{pdfpc}[2019/12/03 v0.2 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@duration\@empty +\ifx\PDFPC@enduserslide\@empty +\else + \IfInteger{\PDFPC@enduserslide}{} + {\PackageWarningNoLine{pdfpc}{`enduserslide' should be an integer}}% +\fi +% +\ifx\PDFPC@duration\@empty +\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{% +______<rdf:Description xmlns:pdfpc="https://github.com/pdfpc/pdfpc">^^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{% +______</rdf:Description>^^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 diff --git a/macros/latex/contrib/pdfpc/pdfpc.ins b/macros/latex/contrib/pdfpc/pdfpc.ins new file mode 100644 index 0000000000..905306c93e --- /dev/null +++ b/macros/latex/contrib/pdfpc/pdfpc.ins @@ -0,0 +1,38 @@ +\input docstrip + +\preamble + pdfpc.dtx + Copyright (C) 2020 Evgeny Stambulchik + + This file is part of pdfpc. + + 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. + + This work consists of the files pdfpc.dtx, pdfpc.ins, and the derived file + pdfpc.sty + +\endpreamble + +\askforoverwritefalse + +\generate +{% + \file{pdfpc.sty}{% + \usepreamble\defaultpreamble + \usepostamble\defaultpostamble + \from{pdfpc.dtx}{pdfpc.sty,package}% + }% +} +\endbatchfile |