texlive[68958] Master: pdfannotations (24nov23)
commits+karl at tug.org
commits+karl at tug.org
Fri Nov 24 22:12:32 CET 2023
Revision: 68958
https://tug.org/svn/texlive?view=revision&revision=68958
Author: karl
Date: 2023-11-24 22:12:32 +0100 (Fri, 24 Nov 2023)
Log Message:
-----------
pdfannotations (24nov23)
Modified Paths:
--------------
trunk/Master/tlpkg/bin/tlpkg-ctan-check
trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
Added Paths:
-----------
trunk/Master/texmf-dist/doc/latex/pdfannotations/
trunk/Master/texmf-dist/doc/latex/pdfannotations/3.1.README.tex
trunk/Master/texmf-dist/doc/latex/pdfannotations/README.txt
trunk/Master/texmf-dist/doc/latex/pdfannotations/pdfannotations.tex
trunk/Master/texmf-dist/tex/latex/pdfannotations/
trunk/Master/texmf-dist/tex/latex/pdfannotations/pdfannotations.cls
trunk/Master/texmf-dist/tex/latex/pdfannotations/pdfannotations.sty
trunk/Master/tlpkg/tlpsrc/pdfannotations.tlpsrc
Added: trunk/Master/texmf-dist/doc/latex/pdfannotations/3.1.README.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/pdfannotations/3.1.README.tex (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/pdfannotations/3.1.README.tex 2023-11-24 21:12:32 UTC (rev 68958)
@@ -0,0 +1,267 @@
+\documentclass{article}
+\usepackage{hyperref}
+\usepackage{geometry}
+\usepackage{enumitem}
+\geometry{margin=1in}
+
+\title{README FOR pdfannotations PACKAGE}
+\date{Version: 3.1\\Date: 2023-11-22}
+\author{}
+
+\begin{document}
+\maketitle
+
+\section*{Overview}
+pdfannotations is a \LaTeX{} package designed for annotating PDF slides with \LaTeX{} elements, adding interludes, and including code snippets. In its latest version, the package has been enhanced with improved error handling and debug logging for more robust and informative user interaction. It offers a flexible way to enhance PDF presentation slides with additional \LaTeX{} content. The package utilizes \LaTeX3 syntax and requires the pdf\LaTeX{} compiler.
+
+\section*{Features and Usage}
+The pdfannotations package includes the following commands and environments:
+\begin{enumerate}
+ \item \textbf{slideannotate:}
+ \begin{itemize}
+ \item Syntax: \texttt{\textbackslash begin\{slideannotate\}\{PDF Number-Slide Number\} ... \textbackslash end\{slideannotate\}}
+ \item Allows annotations directly onto PDF slides.
+ \item Supports math and \LaTeX{} markup.
+ \item Limitation: Content does not extend to multiple pages.
+ \end{itemize}
+ \item \textbf{slideinterlude:}
+ \begin{itemize}
+ \item Syntax: \texttt{\textbackslash begin\{slideinterlude\}\{PDF Number-Slide Number\} ... \textbackslash end\{slideinterlude\}}
+ \item Inserts interludes between slides for additional content.
+ \item Supports math, \LaTeX{} markup, and programming code.
+ \item For short code snippets, \texttt{\{verbatim\}} can be used.
+ \end{itemize}
+ \item \textbf{\textbackslash annotatepdf:}
+ \begin{itemize}
+ \item Syntax: \texttt{\textbackslash annotatepdf\{PDF Number\}}
+ \item Invokes the annotation process for a specified PDF.
+ \end{itemize}
+ \item \textbf{\textbackslash labelgraphics:}
+ \begin{itemize}
+ \item Syntax: \texttt{\textbackslash labelgraphics[options]\{filename\}}
+ \item Includes graphics with filename labels.
+ \end{itemize}
+ \item \textbf{\textbackslash suppressslide:}
+ \begin{itemize}
+ \item Syntax: \texttt{\textbackslash suppressslide\{PDF Number-Slide Number\}}
+ \item Suppresses specific slides.
+ \end{itemize}
+ \item \textbf{\textbackslash includecode:}
+ \begin{itemize}
+ \item Syntax: \texttt{\textbackslash includecode[options]\{filename\}}
+ \item Includes external code with syntax highlighting.
+ \item Auto-detects language formatting by file extension.
+ \item \texttt{\{verbatim\}} recommended for short snippets within \texttt{\{slideinterlude\}}.
+ \end{itemize}
+ \item \textbf{\textbackslash listpdfs:}
+ \begin{itemize}
+ \item Lists all PDFs and their index numbers as specified in the user configuration.
+ \end{itemize}
+\end{enumerate}
+
+\section*{User Configuration}
+Customize document metadata and settings by modifying the variables in the user configuration section at the top of the package code.
+
+Here are the descriptions for each part of the user configuration section of your script:
+\begin{itemize}
+ \item \texttt{\textbackslash newcommand\{\textbackslash MyTitle\}\{...\}}: Defines the document's title.
+ \item \texttt{\textbackslash newcommand\{\textbackslash MyAuthor\}\{...\}}: Sets the author's name for the document.
+ \item \texttt{\textbackslash newcommand\{\textbackslash MyDate\}\{...\}}: Defines the date associated with the document.
+ \item \texttt{\textbackslash newcommand\{\textbackslash FirstSectionName\}\{...\}}: Sets the name of the first section or chapter.
+ \item \texttt{\textbackslash newcommand\{\textbackslash PDFMaxWidth\}\{0.80\textbackslash textwidth\}}: Specifies the maximum width for included PDF pages.
+ \item \texttt{\textbackslash newcommand\{\textbackslash MaxInterludes\}\{20\}}
+
+: Sets the maximum number of interludes allowed in the document.
+ \item \texttt{\textbackslash newcommand\{\textbackslash PDFList\}\{"Career.pdf"\}}: Creates a list of PDF files to be used in the document.
+\end{itemize}
+
+\section*{System Requirements}
+\begin{itemize}
+ \item \LaTeX3 syntax.
+ \item pdf\LaTeX{} compiler.
+\end{itemize}
+
+\section*{Successfully Tested With Packages}
+\begin{itemize}
+ \item \texttt{mathtools} - Enhances mathematical content presentation and formatting.
+ \item \texttt{cancel} - Allows simple cancellation lines in math formulas.
+ \item \texttt{booktabs} - For professional-looking tables.
+ \item \texttt{array} - Extends options for table column formats.
+ \item \texttt{longtable} - For creating multi-page tables.
+ \item \texttt{mathrsfs} - Provides mathematical script font.
+ \item \texttt{scrlayer-scrpage} - For creating and managing headers and footers.
+ \item \texttt{xcolor} - For driver-independent use of color.
+ \item \texttt{listings} - For formatting source code listings.
+ \item \texttt{seqsplit} - For splitting long sequences of characters.
+ \item \texttt{enumitem} - For customizing layout of lists.
+ \item \texttt{adjustbox} - For dynamic sizing of content.
+\end{itemize}
+
+\section*{Minimal Example}
+\begin{verbatim}
+\documentclass{article}
+\usepackage{pdfannotations}
+
+% Start of User configuration section
+% -----------------------------------
+
+% Document metadata
+\newcommand{\MyTitle}{UCSanDiegoX Probability and Statistics in Data Science using Python: Topic 3: Counting}
+\newcommand{\MyAuthor}{Chevan Nanayakkara}
+\newcommand{\MyDate}{November 2023}
+\newcommand{\FirstSectionName}{Lecture Notes: Topic 3 Counting}
+
+% User variables
+\newcommand{\PDFMaxWidth}{0.80\textwidth}
+\newcommand{\MaxInterludes}{20}
+\newcommand{\PDFList}{"Career.pdf"}
+
+% Variable Documentation:
+% PDFMaxWidth: a user-configurable command in LaTeX that sets a global
+% PDFMaxWidth: maximum width for included PDF documents, ensuring they are scaled
+% PDFMaxWidth: appropriately to fit within the specified width of the text area.
+% PDFMaxWidth: This command is particularly useful for consistently resizing
+% PDFMaxWidth: larger PDF pages to maintain a uniform and visually appealing
+% PDFMaxWidth: layout in the document.
+
+% MaxInterludes: Define the maximum number of interludes
+
+% PDFList: User-defined list of PDFs
+% PDFList: Ensure there are no spaces between the commas and each filename
+% PDFList: Ensure each filename ends in .pdf
+% PDFList: An empty string {""} is not supported and the document will not compile
+% PDFList: No string is supported {}
+
+% Define expandable commands for title, author, and date to use in headers/footers
+\NewExpandableDocumentCommand{\thetitle}{}{\MyTitle}
+\NewExpandableDocumentCommand{\theauthor}{}{\MyAuthor}
+\NewExpandableDocumentCommand{\thedate}{}{\MyDate}
+
+% --------------------------
+% End of User configuration section
+
+\begin{document}
+
+\begin{slideannotate}{1-2}
+Annotation for slide 2 of the first PDF.
+\end{slideannotate}
+
+\begin{slideinterlude}{1-3}
+Interlude with \LaTeX{} markup and math like \( E = mc^2 \).
+\includecode{example.py}
+\end{slideinterlude}
+
+\annotatepdf{1}
+\listpdfs
+
+\end{document}
+\end{verbatim}
+(Replace "example.py" with a real file path.)
+
+\subsection*{GitHub Repository}
+\url{https://github.com/chevannanayakkara/pdfannotations}
+
+\subsection*{License}
+Free with no warranty under the LaTeX Project Public License (LPPL) version 1.3c.
+
+\section*{Changelog}
+
+\begin{itemize}
+ \item \textbf{Version 3.1 (2023-11-22):}
+ \begin{itemize}
+ \item Introduced `PDFMaxWidth` for dynamic scaling of included PDF documents.
+ \end{itemize}
+
+ \item \textbf{Version 3.0 (2023-11-21):}
+ \begin{itemize}
+ \item Improved error trapping and messages for empty or malformed PDF List.
+ \item Provided verbose messages in the document for out of bounds indexes for \texttt{\textbackslash annotatepdf} and \texttt{\textbackslash listpdfs}.
+ \item Added detailed debug log information, search for "PDFAnnotations".
+ \end{itemize}
+
+ \item \textbf{Version 2.4.1 (2023-11-15):}
+ \begin{itemize}
+ \item Added new command \texttt{\textbackslash listpdfs} that shows all PDFs and their index number for use with the \texttt{\textbackslash annotatepdf} command.
+ \end{itemize}
+
+ \item \textbf{Version 2.3 (2023-11-10):}
+ \begin{itemize}
+ \item Brought all user-specified variables to the top of the preamble for easier customization.
+ \item Added \texttt{\textbackslash listpdfs} command to list all PDFs and their index numbers.
+ \end{itemize}
+
+ \item \textbf{Version 2.2.3 (2023-11-08):}
+ \begin{itemize}
+ \item Added packages booktabs and longtable for table environment support.
+ \item Reformatted the entire document for improved readability and structure.
+ \end{itemize}
+
+ \item \textbf{Version 2.2.2 (2023-11-07):}
+ \begin{itemize}
+ \item Removed the changelog from the code to be included in the README file instead.
+ \end{itemize}
+
+ \item \textbf{Version 2.2.1 (2023-11-06):}
+ \begin{itemize}
+ \item Modified when \texttt{\textbackslash clearpage} is invoked to make slide transitions more natural.
+ \end{itemize}
+
+ \item \textbf{Version 2.2:}
+ \begin{itemize}
+ \item Moved title, author, and date to user-specified variables.
+ \item Ensured that full text is used without stripping spaces.
+ \item Reorganized the code and added comments to sections for clarity.
+ \end{itemize}
+
+ \item \textbf{Version 2.1:}
+ \begin{itemize}
+ \item Added syntax highlighting and line numbers for included Python code blocks.
+ \item Language formatting is auto-detected by the included file's extension.
+ \end{itemize}
+
+ \item \textbf{Version 2.0:}
+ \begin{itemize}
+ \item Added functionality to include multi-line code from an external file into the \{slideinterlude\} environment.
+ \end{itemize}
+
+ \item \textbf{Version 1.9.1:}
+ \begin{itemize}
+ \item Fixed a bug in \texttt{\textbackslash labelgraphics} where the interlude format was not preserved.
+ \end{itemize}
+
+ \item \textbf{Version 1.9:}
+ \begin{itemize}
+ \item Introduced \texttt{\textbackslash suppressslide\{x-y\}} command to exclude specific slides from being displayed.
+ \end{itemize}
+
+ \item \textbf{Version 1.8:}
+ \begin{itemize}
+ \item Introduced \texttt{\textbackslash labelgraphics} to auto-display image filename below the image.
+ \end{itemize}
+
+ \item \textbf{Version 1.7.1:}
+ \begin{itemize}
+ \item Changed interlude slide labels to: "Slide Interlude".
+ \end{itemize}
+
+ \item \textbf{Version 1.7:}
+ \begin{itemize}
+ \item Added auto-detection of the number of pages in PDFs.
+ \end{itemize}
+
+ \item \textbf{Version 1.6:}
+ \begin{itemize}
+ \item Grouped user-specified variables.
+ \item Cleaned up code and eliminated redundant elements.
+ \end{itemize}
+
+ \item \textbf{Version 1.5:}
+ \begin{itemize}
+ \item Converted \texttt{\textbackslash begin\{slideannotate\}} command to slideannotate environment.
+ \end{itemize}
+\end{itemize}
+
+
+Note: This README complements the full documentation available on GitHub.
+
+\end{document}
\ No newline at end of file
Property changes on: trunk/Master/texmf-dist/doc/latex/pdfannotations/3.1.README.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/pdfannotations/README.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex/pdfannotations/README.txt (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/pdfannotations/README.txt 2023-11-24 21:12:32 UTC (rev 68958)
@@ -0,0 +1,236 @@
+README FOR pdfannotations PACKAGE
+=================================
+
+Version: 3.1
+Date: 2023-11-22
+
+Overview
+--------
+pdfannotations is a LaTeX package designed for annotating PDF slides with LaTeX elements, adding interludes, and including code snippets. In its latest version, the package has been enhanced with improved error handling and debug logging for more robust and informative user interaction. It offers a flexible way to enhance PDF presentation slides with additional LaTeX content. The package utilizes LaTeX3 syntax and requires the pdfLaTeX compiler.
+
+Features and Usage
+------------------
+The pdfannotations package includes the following commands and environments:
+
+1. slideannotate:
+ - Syntax: \begin{slideannotate}{PDF Number-Slide Number} ... \end{slideannotate}
+ - Allows annotations directly onto PDF slides.
+ - Supports math and LaTeX markup.
+ - Limitation: Content does not extend to multiple pages.
+
+2. slideinterlude:
+ - Syntax: \begin{slideinterlude}{PDF Number-Slide Number} ... \end{slideinterlude}
+ - Inserts interludes between slides for additional content.
+ - Supports math, LaTeX markup, and programming code.
+ - For short code snippets, {verbatim} can be used.
+
+3. \annotatepdf:
+ - Syntax: \annotatepdf{PDF Number}
+ - Invokes the annotation process for a specified PDF.
+
+4. \labelgraphics:
+ - Syntax: \labelgraphics[options]{filename}
+ - Includes graphics with filename labels.
+
+5. \suppressslide:
+ - Syntax: \suppressslide{PDF Number-Slide Number}
+ - Suppresses specific slides.
+
+6. \includecode:
+ - Syntax: \includecode[options]{filename}
+ - Includes external code with syntax highlighting.
+ - Auto-detects language formatting by file extension.
+ - {verbatim} recommended for short snippets within {slideinterlude}.
+
+7. \listpdfs:
+ - Lists all PDFs and their index numbers as specified in the user configuration.
+
+
+
+User Configuration
+------------------
+Customize document metadata and settings by modifying the variables in the user configuration section at the top of the package code.
+
+Here are the descriptions for each part of the user configuration section of your script:
+
+- `\newcommand{\MyTitle}{...}`: This command defines the title of your document.
+
+- `\newcommand{\MyAuthor}{...}`: This command sets the author's name for the document.
+
+- `\newcommand{\MyDate}{...}`: This command defines the date associated with the document.
+
+- `\newcommand{\FirstSectionName}{...}`: This command sets the name of the first section or chapter in your document.
+
+- `\newcommand{\PDFMaxWidth}{0.80\textwidth}`: This command specifies the maximum width for included PDF pages as a percentage of the text width of the document. Here, it's set to 80% of the text width. This ensures that included PDFs are scaled appropriately to fit within this width.
+
+- `\newcommand{\MaxInterludes}{20}`: This command sets the maximum number of interludes (breaks or separate sections) allowed in the document. The value `20` can be adjusted based on the number of interludes you plan to include.
+
+- `\newcommand{\PDFList}{"Career.pdf"}`: This command creates a list of PDF files to be used in the document. It's currently set to include only one file, "Career.pdf." This list can be modified to include multiple PDFs by separating the filenames with commas within the curly braces.
+
+These commands provide a customizable framework for your document, allowing you to easily adjust key elements like the title, author, date, and specific document settings.
+
+System Requirements
+-------------------
+- LaTeX3 syntax.
+- pdfLaTeX compiler.
+
+Successfully Tested With Packages
+---------------------------------
+{mathtools} - Enhances the presentation and formatting of mathematical content in documents. Provides various tools and utilities that extend the capabilities of amsmath.
+
+{cancel} - Allows for the placement of simple cancellation lines through parts of mathematics formulas. Useful for demonstrating the process of simplifying expressions.
+
+{booktabs} - Provides additional commands to enhance the quality of tables in LaTeX documents. Known for enabling the creation of more professional-looking tables without vertical separators.
+
+{array} - Extends the options for column formats within tables, offering greater flexibility and control over the layout and presentation of table content.
+
+{longtable} - Facilitates the creation of tables that continue over multiple pages. This package is essential for handling large tables that do not fit on a single page.
+
+{mathrsfs} - Offers access to the mathematical script font for use in LaTeX documents. Ideal for typesetting script-style mathematical expressions.
+
+{mathtools} (listed twice, so the same description applies) - Enhances the presentation and formatting of mathematical content in documents.
+
+{scrlayer-scrpage} - Provides user-friendly interfaces for creating and managing headers and footers in documents. It's a component of the KOMA-Script bundle.
+
+{xcolor} - Allows for easy driver-independent use of color in LaTeX documents. It supports various color models and offers a range of utilities for color manipulation.
+
+{listings} - Used for formatting source code listings with syntax highlighting. Supports a wide range of programming languages and offers customization options.
+
+{seqsplit} - Useful for splitting long sequences of characters, typically in situations where long strings need to be broken down to fit into the layout without overflowing the margins.
+
+{enumitem} - Provides control over the layout of itemize, enumerate, and description environments. It allows for easy customization of labels and spacing in lists.
+
+{adjustbox} - Offers an environment and macros to adjust general content (boxes). Particularly useful for scaling, resizing, trimming, or constraining content dimensions such as images or tables.
+
+Minimal Example
+---------------
+\documentclass{article}
+\usepackage{pdfannotations}
+
+% Start of User configuration section
+% -----------------------------------
+
+% Document metadata
+\newcommand{\MyTitle}{UCSanDiegoX Probability and Statistics in Data Science using Python: Topic 3: Counting}
+\newcommand{\MyAuthor}{Chevan Nanayakkara}
+\newcommand{\MyDate}{November 2023}
+\newcommand{\FirstSectionName}{Lecture Notes: Topic 3 Counting}
+
+% User variables
+\newcommand{\PDFMaxWidth}{0.80\textwidth}
+\newcommand{\MaxInterludes}{20}
+\newcommand{\PDFList}{"Career.pdf"}
+
+% Variable Documentation:
+% PDFMaxWidth: a user-configurable command in LaTeX that sets a global
+% PDFMaxWidth: maximum width for included PDF documents, ensuring they are scaled
+% PDFMaxWidth: appropriately to fit within the specified width of the text area.
+% PDFMaxWidth: This command is particularly useful for consistently resizing
+% PDFMaxWidth: larger PDF pages to maintain a uniform and visually appealing
+% PDFMaxWidth: layout in the document.
+
+% MaxInterludes: Define the maximum number of interludes
+
+% PDFList: User-defined list of PDFs
+% PDFList: Ensure there are no spaces between the commas and each filename
+% PDFList: Ensure each filename ends in .pdf
+% PDFList: An empty string {""} is not supported and the document will not compile
+% PDFList: No string is supported {}
+
+% Define expandable commands for title, author, and date to use in headers/footers
+\NewExpandableDocumentCommand{\thetitle}{}{\MyTitle}
+\NewExpandableDocumentCommand{\theauthor}{}{\MyAuthor}
+\NewExpandableDocumentCommand{\thedate}{}{\MyDate}
+
+% --------------------------
+% End of User configuration section
+
+\begin{document}
+
+\begin{slideannotate}{1-2}
+Annotation for slide 2 of the first PDF.
+\end{slideannotate}
+
+\begin{slideinterlude}{1-3}
+Interlude with \LaTeX{} markup and math like \( E = mc^2 \).
+\includecode{example.py}
+\end{slideinterlude}
+
+\annotatepdf{1}
+\listpdfs
+
+\end{document}
+(Replace "example.py" with a real file path.)
+
+GitHub Repository: https://github.com/chevannanayakkara/pdfannotations
+
+License
+-------
+Free with no warranty under the LaTeX Project Public License (LPPL) version 1.3c.
+
+Note: This README complements the full documentation available on GitHub.
+
+Changelog
+---------
+
+Version 3.1 (2023-11-22):
+- Introduced `PDFMaxWidth` for dynamic scaling of included PDF documents.
+
+Version 3.0 (2023-11-21):
+- Improved error trapping and messages for empty or malformed PDF List.
+- Provided verbose messages in the document for out of bounds indexes for \annotatepdf and \listpdfs
+- Added detailed debug log information, search for "PDFAnnotations"
+
+
+Version 2.4.1 (2023-11-15):
+- Added new command \listpdfs that shows all PDFs and their index number for use with the \annotatepdf command.
+
+Version 2.3 (2023-11-10):
+- Brought all user-specified variables to the top of the preamble for easier customization.
+- Added \listpdfs command to list all PDFs and their index numbers.
+
+Version 2.2.3 (2023-11-08):
+- Added packages booktabs and longtable for table environment support.
+- Reformatted the entire document for improved readability and structure.
+
+Version 2.2.2 (2023-11-07):
+- Removed the changelog from the code to be included in the README file instead.
+
+Version 2.2.1 (2023-11-06):
+- Modified when \clearpage is invoked to make slide transitions more natural.
+
+Version 2.2:
+- Moved title, author, and date to user-specified variables.
+- Ensured that full text is used without stripping spaces.
+- Reorganized the code and added comments to sections for clarity.
+
+Version 2.1:
+- Added syntax highlighting and line numbers for included Python code blocks.
+- Language formatting is auto-detected by the included file's extension.
+
+Version 2.0:
+- Added functionality to include multi-line code from an external file into the {slideinterlude} environment.
+
+Version 1.9.1:
+- Fixed a bug in \labelgraphics where the interlude format was not preserved.
+
+Version 1.9:
+- Introduced \suppressslide{x
+
+-y} command to exclude specific slides from being displayed.
+
+Version 1.8:
+- Introduced \labelgraphics to auto-display image filename below the image.
+
+Version 1.7.1:
+- Changed interlude slide labels to: "Slide Interlude".
+
+Version 1.7:
+- Added auto-detection of the number of pages in PDFs.
+
+Version 1.6:
+- Grouped user-specified variables.
+- Cleaned up code and eliminated redundant elements.
+
+Version 1.5:
+- Converted \begin{slideannotate} command to slideannotate environment.
\ No newline at end of file
Property changes on: trunk/Master/texmf-dist/doc/latex/pdfannotations/README.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/pdfannotations/pdfannotations.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/pdfannotations/pdfannotations.tex (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/pdfannotations/pdfannotations.tex 2023-11-24 21:12:32 UTC (rev 68958)
@@ -0,0 +1,70 @@
+% LaTeX3, pdfLaTeX
+% Version: 3.1
+% Date: 2023-11-22
+
+% Start of User configuration section
+% -----------------------------------
+
+% Document metadata
+\newcommand{\MyTitle}{Your Title Here}
+\newcommand{\MyAuthor}{Your Name Here}
+\newcommand{\MyDate}{Document Date Here}
+\newcommand{\FirstSectionName}{First Section Title Here}
+
+% PDF Max Width settings
+\newcommand{\PDFMaxWidth}{0.80\textwidth} % Sets max width for included PDFs
+
+% Maximum number of interludes in the document
+\newcommand{\MaxInterludes}{20}
+
+% List of PDFs to be included in the document
+\newcommand{\PDFList}{"document1.pdf","document2.pdf"}
+
+% User configuration documentation
+% ...
+
+% End of User configuration section
+% ----------------------------------
+
+% Using the custom pdfannotations document class
+\documentclass[10pt,letterpaper]{pdfannotations}
+
+\begin{document}
+
+% Setting up the title, author, and date
+\title{\MyTitle}
+\author{\MyAuthor}
+\date{\MyDate}
+
+% Generating the title
+\maketitle
+
+% Customizing list labels
+\renewcommand{\labelitemii}{$\square$}
+\renewcommand{\labelitemiii}{$\ast$}
+
+% Setting page style
+\pagestyle{empty}
+
+% Generating the table of contents
+\setcounter{secnumdepth}{0}
+\tableofcontents
+\newpage
+
+% Listing the included PDFs
+\section{List of PDFs}
+\listpdfs
+
+\newpage
+
+% Starting the main content section
+\section{\FirstSectionName}
+% Your main content goes here
+\annotatepdf{1}
+\annotatepdf{2}
+
+% Concluding section
+\section{Conclusion or Final Remarks}
+
+% End of the document
+\end{document}
Property changes on: trunk/Master/texmf-dist/doc/latex/pdfannotations/pdfannotations.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/pdfannotations/pdfannotations.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/pdfannotations/pdfannotations.cls (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/pdfannotations/pdfannotations.cls 2023-11-24 21:12:32 UTC (rev 68958)
@@ -0,0 +1,33 @@
+% pdfannotations.cls
+\ProvidesClass{pdfannotations}[2023/11/22 v3.1 PDF Annotations Document Class]
+
+% This class file extends the standard 'article' class
+% to integrate the 'pdfannotations' package functionalities.
+% It is designed to facilitate easy annotation of PDF slides,
+% inclusion of interludes, and rendering of code snippets
+% within LaTeX documents, particularly for academic and
+% presentation purposes.
+
+% Load base class (article, report, book, etc.)
+% The 'article' class is chosen for its versatility and
+% general applicability for a wide range of documents.
+\LoadClass{article}
+
+% Load your package
+% The 'pdfannotations' package provides the core functionality
+% for this document class. It should be kept up-to-date with
+% the latest version of the package.
+\RequirePackage{pdfannotations}
+
+% Additional settings or modifications for the document class
+% This section can be used to define class-specific settings
+% such as default margins, header/footer styles, or any other
+% global settings that should be applied to documents using
+% this class.
+
+% Example customization (uncomment to use):
+% \setlength{\parindent}{0pt} % Remove paragraph indentation
+% \setlength{\parskip}{1em} % Add space between paragraphs
+
+% End of pdfannotations.cls
+
Property changes on: trunk/Master/texmf-dist/tex/latex/pdfannotations/pdfannotations.cls
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/pdfannotations/pdfannotations.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/pdfannotations/pdfannotations.sty (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/pdfannotations/pdfannotations.sty 2023-11-24 21:12:32 UTC (rev 68958)
@@ -0,0 +1,136 @@
+% pdfannotations.sty
+% Provides the pdfannotations package for annotating PDF slides with LaTeX elements.
+\ProvidesPackage{pdfannotations}[2023/11/22 v3.1 PDF Annotations Package]
+
+% Essential Packages
+% ------------------
+
+% Graphics and design
+\RequirePackage{graphicx} % For including graphics
+\RequirePackage{xcolor} % For defining custom colors
+\RequirePackage{listings} % For code formatting in documents
+
+% LaTeX3 Programming Syntax
+% -------------------------
+\RequirePackage{xparse} % For defining LaTeX commands
+\RequirePackage{expl3} % For LaTeX3 syntax
+
+% PDF Handling and Hyperlinking
+% -----------------------------
+\RequirePackage[bookmarksopen=true, colorlinks=true, linkcolor=blue, citecolor=blue, urlcolor=blue]{hyperref} % For hyperlinking
+\RequirePackage{pdfpages} % For including PDF pages
+
+% Custom Colors Definition
+% ------------------------
+% These colors are used for syntax highlighting and other styling purposes.
+\definecolor{codegreen}{rgb}{0,0.6,0}
+\definecolor{codegray}{rgb}{0.5,0.5,0.5}
+\definecolor{codepurple}{rgb}{0.58,0,0.82}
+\definecolor{backcolour}{rgb}{0.95,0.95,0.92}
+\definecolor{codeblue}{rgb}{0.25,0.5,0.5}
+
+% Python Code Style Configuration
+% -------------------------------
+% This style is applied for Python code listings.
+\lstdefinestyle{pythonstyle}{
+ language=Python,
+ backgroundcolor=\color{backcolour},
+ commentstyle=\color{codegreen},
+ keywordstyle=\color{codeblue},
+ numberstyle=\tiny\color{codegray},
+ stringstyle=\color{codepurple},
+ basicstyle=\ttfamily\small,
+ breakatwhitespace=false,
+ breaklines=true,
+ captionpos=b,
+ keepspaces=true,
+ numbers=left,
+ numbersep=5pt,
+ showspaces=false,
+ showstringspaces=false,
+ showtabs=false,
+ tabsize=2
+}
+\lstset{style=pythonstyle}
+
+% LaTeX3 Syntax Activation
+\ExplSyntaxOn
+
+% Internal Variables and Counters
+% -------------------------------
+\newcounter{currentslide}
+\newcounter{totalpdfpages}
+\newcounter{currentpdfindex}
+\newcommand{\currentpdfname}{}
+\prop_new:N \g_slide_annotations_prop
+\prop_new:N \g_interludes_prop
+\tl_new:N \l_slideinterlude_content_tl
+\tl_new:N \l_slideannotate_content_tl
+\prop_new:N \g_suppressed_slides_prop
+\int_new:N \g_max_interludes_int
+\seq_new:N \g_pdf_pages_seq
+\seq_new:N \g_pdf_files_seq
+\fp_new:N \g_pdf_max_width_fp
+
+% Setting the Global Variable for Maximum PDF Width
+\fp_gset:Nn \g_pdf_max_width_fp { \dim_to_fp:n {\PDFMaxWidth} }
+
+% Log Function for Sequence Contents
+\cs_new_protected:Nn \__log_seq_contents:n
+{
+ \seq_map_inline:Nn #1
+ {
+ \iow_log:n { PDFAnnotations:~--~\tl_to_str:n {#1} }
+ }
+}
+
+% Populate PDF Sequence from User-Defined List
+\clist_if_empty:NTF \PDFList
+ {
+ \iow_log:n { PDFAnnotations:~\PDFList~is~genuinely~empty. }
+ \seq_clear:N \g_pdf_files_seq
+ \seq_clear:N \g_pdf_pages_seq
+ }
+ {
+ \iow_log:n { PDFAnnotations:~\PDFList~contains~items,~processing. }
+ \clist_map_inline:Nn \PDFList
+ {
+ \tl_set:Nn \l_tmpa_tl {#1}
+ \tl_trim_spaces:N \l_tmpa_tl
+ \tl_if_empty:NF \l_tmpa_tl
+ {
+ \seq_gput_right:Nx \g_pdf_files_seq {\exp_args:No \detokenize \l_tmpa_tl}
+ \iow_log:n { PDFAnnotations:~added~file:~\tl_to_str:n {\l_tmpa_tl} }
+ }
+ }
+ \iow_log:n { PDFAnnotations:~\g_pdf_files_seq~final~contents: }
+ \__log_seq_contents:n \g_pdf_files_seq
+ }
+
+% Auto-Detection of PDF Pages
+\cs_new_protected:Nn \__get_pdf_pages:n
+{
+ \
+
+iow_log:n { PDFAnnotations:~getting~page~count~for~file:~#1 }
+ \exp_args:Nx \pdfximage {#1}
+ \seq_gput_right:Nx \g_pdf_pages_seq {\the\pdflastximagepages}
+ \iow_log:n { PDFAnnotations:~file~#1~has~\the\pdflastximagepages~pages. }
+}
+
+% Process Each File in the Sequence
+\seq_map_inline:Nn \g_pdf_files_seq
+{
+ \iow_log:n { PDFAnnotations:~processing~file:~#1 }
+ \__get_pdf_pages:n {#1}
+ \iow_log:n { PDFAnnotations:~processed~file:~#1 }
+}
+
+\iow_log:n { PDFAnnotations:~\g_pdf_files_seq~final~contents: }
+\__log_seq_contents:n \g_pdf_files_seq
+\iow_log:n { PDFAnnotations:~\g_pdf_pages_seq~final~contents: }
+\__log_seq_contents:n \g_pdf_pages_seq
+
+\ExplSyntaxOff
+
+% End of pdfannotations.sty
\ No newline at end of file
Property changes on: trunk/Master/texmf-dist/tex/latex/pdfannotations/pdfannotations.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/tlpkg/bin/tlpkg-ctan-check
===================================================================
--- trunk/Master/tlpkg/bin/tlpkg-ctan-check 2023-11-24 21:11:08 UTC (rev 68957)
+++ trunk/Master/tlpkg/bin/tlpkg-ctan-check 2023-11-24 21:12:32 UTC (rev 68958)
@@ -634,7 +634,7 @@
patch patchcmd patgen2-tutorial path pauldoc pawpict pax
pbalance pbibtex-base pbox pb-diagram pbibtex-manual pbsheet
pdf14
- pdf-trans pdfarticle pdfbook2
+ pdf-trans pdfannotations pdfarticle pdfbook2
pdfcol pdfcolfoot pdfcolmk pdfcomment pdfcprot pdfcrop
pdfescape pdfextra pdfjam
pdflatexpicscale pdflscape
Modified: trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
===================================================================
--- trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc 2023-11-24 21:11:08 UTC (rev 68957)
+++ trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc 2023-11-24 21:12:32 UTC (rev 68958)
@@ -1044,6 +1044,7 @@
depend pbox
depend pbsheet
depend pdf14
+depend pdfannotations
depend pdfcol
depend pdfcolmk
depend pdfcomment
Added: trunk/Master/tlpkg/tlpsrc/pdfannotations.tlpsrc
===================================================================
More information about the tex-live-commits
mailing list.