%  This file is part of pdfpc.
%  Copyright (C) 2023 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/>
%
%  -----------------------------------------------------------------------------
\documentclass[11pt]{ltxdoc}

\usepackage{iftex}

\usepackage[english]{babel}

\usepackage{hyperref}

\usepackage{enumitem}

\newcommand*{\sty}[1]{\textsf{#1}}
\def\param#1%
{\textit{\rmfamily\mdseries\ensuremath{\langle}#1\ensuremath{\rangle}}}


\title{The \sty{pdfpc} package \\
       {\large\url{https://github.com/pdfpc/latex-pdfpc}}}
\author{Evgeny Stambulchik}
\date{2023/10/21 (v0.7.1)}

\hypersetup{pdftitle={The pdfpc package}, pdfauthor={Evgeny Stambulchik}}

\setlist{noitemsep}

\begin{document}
\maketitle
\thispagestyle{empty}

\begin{abstract}
This package provides a convenient way to specify notes and to define certain meta properties of the presentation when used with \href{https://pdfpc.github.io}{PDF Presenter Console (\texttt{pdfpc})}, a GPLv3+ licensed multi-monitor PDF presentation viewer application available on GitHub\footnote{\url{https://pdfpc.github.io}}.
\end{abstract}


\clearpage

\section*{Dependencies and other requirements}

\sty{pdfpc} requires the use of \LaTeXe.

It depends on the following packages:

\begin{itemize}
    \sffamily
    \item kvoptions
    \item xstring
    \item iftex
    \item hyperxmp
\end{itemize}

When using LuaTeX, it additionally depends on these packages:

\begin{itemize}
    \sffamily
    \item stringenc
    \item pdftexcmds
\end{itemize}


\section*{License}

\textcopyright\ 2020--2023 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 work consists of the following files:

\begin{itemize}
    \item ``pdfpc.sty''
    \item ``pdfpc-doc.tex''
    \item ``pdfpc-doc.pdf'' \emph{(compiled)}
\end{itemize}


\clearpage

\part{The documentation}
\section*{Loading \sty{pdfpc}}

Load \sty{pdfpc} by adding \cmd{\usepackage[\param{options}]\{pdfpc\}} to your preamble.
The following options may be given as comma-separated list:

\begin{table}[h]
\centering
\begin{tabular}{ l l }
    \hline
    Package option & Equivalent \texttt{pdfpc} flag \\
    \hline
    \texttt{duration=\textit{value}}          & \texttt{--duration=\textit{value}} \\
    \texttt{starttime=\textit{value}}         & \texttt{--start-time=\textit{value}} \\
    \texttt{endtime=\textit{value}}           & \texttt{--end-time=\textit{value}} \\
    \texttt{lastminutes=\textit{value}}       & \texttt{--last-minutes=\textit{value}} \\
    \texttt{enduserslide=\textit{value}}      & \\
    \texttt{notesposition=\textit{value}}     & \texttt{--notes=\textit{value}} \\
    \texttt{disablemarkdown}                  & \texttt{--note-format=plain} \\
    \texttt{hidenotes}                        & \\
    \texttt{overridenote}                     & \\
    \texttt{defaulttransition=\textit{value}} & \texttt{--page-transition=\textit{value}} \\
    \hline
\end{tabular}
\end{table}

Options should be given as a comma-separated list.
All options, aside from \texttt{overridenote}, can alternatively be set via a command of the form \cmd{\pdfpcsetup\{\param{option1=value1}[,~\ldots]\}}.

The meaning and possible values of most of these options are documented in the \textit{pdfpc(1)} man page, provided by the \texttt{pdfpc} program.
The rest are explained below.

To add a note to a slide, use \cmd{\pdfpcnote\{Text of a note\}}, which also supports Beamer's overlay specifications\footnote{See sections 3.10 and 9.2 of the \texttt{beamer} package documentation.}.
A line break in the body of the note can be inserted with \cmd{\\}.
To preserve a whitespace, e.g., to indent a nested list, preceed it by a backslash.
The notes are rendered according to the Markdown syntax by default.
If you prefer the plain text format (which was the case with \texttt{pdfpc}-4.4 and below), use the \texttt{disablemarkdown} option.

The pdfpc package can be used standalone or together with Beamer.
In the later case, it may be desirable to continue using the \cmd{\note} command.
To this end, the \texttt{overridenote} option should be provided.
Note, however, that this will work only in simple cases.

If you prefer full-featured Beamer notes rendered alongside the presentation (as with \cmd{\setbeameroption\{show notes on second screen\}}), the pdfpc package will autodetect this, so using the \texttt{--notes} command-line option is unnecessary.
To override the autodetection, use the \texttt{notesposition} option, accepting the same values (right/left/top/bottom/none) that Beamer natively supports.

When sharing slides, one may want to omit the (potentially private) notes, by using the \texttt{hidenotes} option.
Enabling it will disable notes, including Beamer notes if \texttt{overridenote} was specified.

Finally, be aware that some features are unsupported by old versions of the \texttt{pdfpc} console.
In particular, the \texttt{defaulttransition} option requires version 4.5 or later.

\StopEventually{%
    \clearpage
    \PrintChanges}
\clearpage

\Finale
\end{document}
