texlive[60810] Master/texmf-dist: incgraph (20oct21)

commits+karl at tug.org commits+karl at tug.org
Wed Oct 20 23:16:12 CEST 2021


Revision: 60810
          http://tug.org/svn/texlive?view=revision&revision=60810
Author:   karl
Date:     2021-10-20 23:16:12 +0200 (Wed, 20 Oct 2021)
Log Message:
-----------
incgraph (20oct21)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/incgraph/incgraph-example-a.pdf
    trunk/Master/texmf-dist/doc/latex/incgraph/incgraph-example-b.pdf
    trunk/Master/texmf-dist/doc/latex/incgraph/incgraph-example-c.pdf
    trunk/Master/texmf-dist/doc/latex/incgraph/incgraph.pdf
    trunk/Master/texmf-dist/doc/latex/incgraph/incgraph.tex
    trunk/Master/texmf-dist/tex/latex/incgraph/incgraph.sty

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/latex/incgraph/CHANGES.md
    trunk/Master/texmf-dist/doc/latex/incgraph/README.md
    trunk/Master/texmf-dist/doc/latex/incgraph/incgraph-doc.sty

Removed Paths:
-------------
    trunk/Master/texmf-dist/doc/latex/incgraph/CHANGES
    trunk/Master/texmf-dist/doc/latex/incgraph/README

Deleted: trunk/Master/texmf-dist/doc/latex/incgraph/CHANGES
===================================================================
--- trunk/Master/texmf-dist/doc/latex/incgraph/CHANGES	2021-10-19 23:49:23 UTC (rev 60809)
+++ trunk/Master/texmf-dist/doc/latex/incgraph/CHANGES	2021-10-20 21:16:12 UTC (rev 60810)
@@ -1,62 +0,0 @@
-%% The LaTeX package incgraph - version 1.12 (2015/03/12)
-%%
-%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2012-2015 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
-%% -------------------------------------------------------------------------------------------
-%%
-%% This work may be distributed and/or modified under the
-%% conditions of the LaTeX Project Public License, either version 1.3
-%% of this license or (at your option) any later version.
-%% The latest version of this license is in
-%%   http://www.latex-project.org/lppl.txt
-%% and version 1.3 or later is part of all distributions of LaTeX
-%% version 2005/12/01 or later.
-%%
-%% This work has the LPPL maintenance status `author-maintained'.
-%%
-%% This work consists of all files listed in README
-%%
-
-version 1.00 (2012/06/21): initial public release
-
-version 1.01 (2012/07/04):
-- the code of the hypertarget setting is rewritten to place it at
-  the top left corner of the page (previously it was placed at the
-  top left corner of the text area).
-- new macro '\igrtargetset' to set hypertarget values manually
-- new key 'target' to set hypertarget values manually
-
-version 1.02 (2012/07/06):
-- bug fixed in '\igrboxtikz' which caused a small shift.
-- key 'nohyper' renamed to 'no hyper'
-- new macro '\igrboxtikzcenter' to support tikz pictures with a centered box.
-- option key 'include command' now has a default.
-- new feature to overlay included graphics with tikz picture code
-  using the new option keys 'overlay', 'overlay page number at',
-  'overlay page number at bottom', 'overlay page number at top',
-  'no overlay'.
-
-version 1.10 (2012/09/28):
-- overlay code and graphics inclusion decoupled internally
-- interlineskip problem fixed
-- output macro implementation rewritten
-- new macro '\igrcenterfit' for an arbitrary paper size
-- new user interface environment 'inctext' to support
-  arbitrary internal graphics
-- documentation structure changed
-- introduction of various paper format options with the key 'paper'
-- new 'landscape' and 'portrait' keys
-- new keys 'currentpaper', 'graphicspaper' and 'documentpaper'
-  to replace the deprecated keys 'page' and 'center'
-- various internal code changes
-
-version 1.11 (2013/01/16):
-- bug fixed: positioning on even pages for twosided documents
-- bug fixed: option 'paper=document' could not be used inside the preamble
-- added clearpage at begin of inctext
-
-version 1.12 (2015/03/12):
-- ugly pictures of the documentation exchanged by not so ugly ones.
-- new options:
-  'left border', 'bottom border', 'right border', 'top border',
-  'horizontal border', 'vertical border', 'border'

Added: trunk/Master/texmf-dist/doc/latex/incgraph/CHANGES.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/incgraph/CHANGES.md	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/incgraph/CHANGES.md	2021-10-20 21:16:12 UTC (rev 60810)
@@ -0,0 +1,138 @@
+# Changelog
+All notable changes to this project will be documented in this file.
+
+The format is based on
+[Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
+and this project adheres to
+[Semantic Versioning](http://semver.org/spec/v2.0.0.html).
+
+## [Unreleased]
+
+### Added
+### Changed
+### Deprecated
+### Removed
+### Fixed
+### Security
+
+
+
+## [1.2.0] - 2021-10-20
+
+### Added
+- Option `overlay page number options` (issue #2)
+- `\igrGetPageSize`
+- `\igrPageWidth`
+- `\igrPageHeight`
+- `\igrSetPageSize`
+- `\igrGetLastPage`
+- `\igrLastPage`
+- Adding/Guessing file name extensions (issue #1):
+    - Option `extensions`
+    - Option `extensions add`
+    - Option `extensions from graphics`
+    - Option `ignore on not found with extensions`
+    - Option `ignore on not found with extensions*`
+- Option `no existence check`
+
+### Changed
+- Changelog moved from CHANGES to CHANGES.md and adapted to
+  [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
+- From now on version numbers adhere to
+  [Semantic Versioning](http://semver.org/spec/v2.0.0.html)
+- Readme moved from README to README.md and adapted to  
+- Documentation code revised
+- Internal package creation process modernized (invisible to the user)
+- Adaption of paper size made compatible with lualatex
+- Implementation of `\incgraph` and `\incmultigraph` changed (to LaTeX3)
+
+### Fixed
+- Documentation typos corrected (issue #3)
+- `\incgraph` ignored option settings for not existing files.
+
+
+
+## [1.12] - 2015-03-12
+
+### Added
+- Option `left border`
+- Option `bottom border`
+- Option `right border`
+- Option `top border`
+- Option `horizontal border`
+- Option `vertical border`
+- Option `border`
+
+### Changed
+- ugly pictures of the documentation exchanged by not so ugly ones.
+
+
+
+## [1.11] - 2013-01-16
+
+### Added
+- added `clearpage` at begin of `inctext`
+
+### Fixed
+- Positioning on even pages for twosided documents
+- Option `paper=document` could not be used inside the preamble
+
+
+
+## [1.10] - 2012-09-28
+
+### Added
+- new macro `\igrcenterfit` for an arbitrary paper size
+- new user interface environment `inctext` to support
+  arbitrary internal graphics
+- introduction of various paper format options with the key `paper`
+- new `landscape` and `portrait` keys
+- new keys `currentpaper`, `graphicspaper` and `documentpaper`
+  to replace the deprecated keys `page` and `center`
+
+### Changed
+- overlay code and graphics inclusion decoupled internally
+- output macro implementation rewritten
+- documentation structure changed
+- various internal code changes
+
+### Fixed
+- interlineskip problem fixed
+
+
+
+## [1.02] - 2012-07-06
+
+### Added
+- new macro `\igrboxtikzcenter` to support tikz pictures with a centered box.
+- new feature to overlay included graphics with tikz picture code
+  using the new option keys `overlay`, `overlay page number at`,
+  `overlay page number at bottom`, `overlay page number at top`,
+  `no overlay`.
+
+### Changed
+- key `nohyper` renamed to `no hyper`
+- option key `include command` now has a default.
+
+### Fixed
+- bug fixed in `\igrboxtikz` which caused a small shift.
+
+
+
+## [1.01] - 2012-07-04
+
+### Added
+- new macro `\igrtargetset` to set hypertarget values manually
+- new key `target` to set hypertarget values manually
+
+### Changed
+- the code of the hypertarget setting is rewritten to place it at
+  the top left corner of the page (previously it was placed at the
+  top left corner of the text area).
+
+
+
+## [1.00] - 2012-06-21
+
+### Added
+- initial public release


Property changes on: trunk/Master/texmf-dist/doc/latex/incgraph/CHANGES.md
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Deleted: trunk/Master/texmf-dist/doc/latex/incgraph/README
===================================================================
--- trunk/Master/texmf-dist/doc/latex/incgraph/README	2021-10-19 23:49:23 UTC (rev 60809)
+++ trunk/Master/texmf-dist/doc/latex/incgraph/README	2021-10-20 21:16:12 UTC (rev 60810)
@@ -1,52 +0,0 @@
-%% The LaTeX package incgraph - version 1.12 (2015/03/12)
-%%
-%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2012-2015 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
-%% -------------------------------------------------------------------------------------------
-%%
-%% This work may be distributed and/or modified under the
-%% conditions of the LaTeX Project Public License, either version 1.3
-%% of this license or (at your option) any later version.
-%% The latest version of this license is in
-%%   http://www.latex-project.org/lppl.txt
-%% and version 1.3 or later is part of all distributions of LaTeX
-%% version 2005/12/01 or later.
-%%
-%% This work has the LPPL maintenance status `author-maintained'.
-%%
-%% This work consists of all files listed in README
-%%
-
-incgraph provides tools for including graphics on full paper size. The graphics
-can be centered for a given paper format or the paper may be resized to the
-graphics dimensions. The main use case for the package incgraph is to transform
-one or many scans or taken pictures to a PDF document. It can also be applied
-for full paper size LaTeX created graphics. The package incgraph provides a tool
-box with basic macros and a convenience user interface which wraps the
-well-known includegraphics. Also, bookmarking is especially supported.
-
-Contents of the package
-=======================
-  'README'                    this file
-  'CHANGES'                   log of changes (history)
-  'incgraph.sty'              LaTeX package file (style file)
-  'incgraph.pdf'              documentation for csvsimple
-  'incgraph.tex'              source code of the documentation
-  'incgraph-example-a.tex'    example file A for package usage
-  'incgraph-example-a.pdf'    compiled example A
-  'incgraph-example-b.tex'    example file B for package usage
-  'incgraph-example-b.pdf'    compiled example B
-  'incgraph-example-c.tex'    example file C for package usage
-  'incgraph-example-c.pdf'    compiled example C
-  'example.jpg'               example image file
-  'exaimage-0001.png'         example image file
-  'exaimage-0037.png'         example image file
-  'exaimage-0123.png'         example image file
-
-Installation
-============
-Copy the contents of the 'incgraph.tds.zip' from CTAN to your local TeX file tree.
-
-Alternatively, put the files to their respective locations within the TeX installation:
-  'incgraph.sty'     ->  /tex/latex/incgraph
-  all other files    ->  /doc/latex/incgraph

Added: trunk/Master/texmf-dist/doc/latex/incgraph/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/incgraph/README.md	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/incgraph/README.md	2021-10-20 21:16:12 UTC (rev 60810)
@@ -0,0 +1,55 @@
+# The LaTeX package incgraph - version 1.2.0 (2021/10/20)
+
+
+> Copyright (c) 2012-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+
+> This work may be distributed and/or modified under the
+> conditions of the LaTeX Project Public License, either version 1.3
+> of this license or (at your option) any later version.
+> The latest version of this license is in
+>   http://www.latex-project.org/lppl.txt
+> and version 1.3 or later is part of all distributions of LaTeX
+> version 2005/12/01 or later.
+
+> This work has the LPPL maintenance status `author-maintained`.
+
+> This work consists of all files listed in README.md
+
+
+`incgraph` provides tools for including graphics on full paper size. The graphics
+can be centered for a given paper format or the paper may be resized to the
+graphics dimensions. The main use case for the package `incgraph` is to transform
+one or many scans or taken pictures to a PDF document. It can also be applied
+for full paper size *LaTeX* created graphics. The package `incgraph` provides a tool
+box with basic macros and a convenience user interface which wraps the
+well-known `includegraphics`. Also, bookmarking is especially supported.
+
+
+## Contents of the package
+
+-  `README.md`                 this file
+-  `CHANGES.md`                log of changes (history)
+-  `incgraph.sty`              LaTeX package file (style file)
+-  `incgraph.pdf`              documentation for csvsimple
+-  `incgraph.tex`              source code of the documentation
+-  `incgraph-doc.sty`          style file of the documentation
+-  `incgraph-example-a.tex`    example file A for package usage
+-  `incgraph-example-a.pdf`    compiled example A
+-  `incgraph-example-b.tex`    example file B for package usage
+-  `incgraph-example-b.pdf`    compiled example B
+-  `incgraph-example-c.tex`    example file C for package usage
+-  `incgraph-example-c.pdf`    compiled example C
+-  `example.jpg`               example image file
+-  `exaimage-0001.png`         example image file
+-  `exaimage-0037.png`         example image file
+-  `exaimage-0123.png`         example image file
+
+
+## Installation
+
+Copy the contents of the `incgraph.tds.zip` from CTAN to your local TeX file tree.
+
+Alternatively, put the files to their respective locations within the TeX installation:
+
+-  `incgraph.sty`         ->  /tex/latex/incgraph
+-  all other files        ->  /doc/latex/incgraph


Property changes on: trunk/Master/texmf-dist/doc/latex/incgraph/README.md
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/incgraph/incgraph-doc.sty
===================================================================
--- trunk/Master/texmf-dist/doc/latex/incgraph/incgraph-doc.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/incgraph/incgraph-doc.sty	2021-10-20 21:16:12 UTC (rev 60810)
@@ -0,0 +1,140 @@
+% \LaTeX-Main\
+% !TeX encoding=UTF-8
+%% The LaTeX package incgraph - version 1.2.0 (2021/10/20)
+%% incgraph.tex: Manual
+%%
+%% -------------------------------------------------------------------------------------------
+%% Copyright (c) 2012-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% -------------------------------------------------------------------------------------------
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%%   http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `author-maintained'.
+%%
+%% This work consists of all files listed in README
+%%
+\def\version{1.2.0}%
+\def\datum{2021/10/20}%
+
+\IfFileExists{incgraph-doc.cfg}{\input{incgraph-doc.cfg}}{}\providecommand\igrpkgprefix{}
+
+\RequirePackage[T1]{fontenc}
+\RequirePackage[english]{babel}
+\RequirePackage{lmodern,parskip,array,makeidx}
+\RequirePackage{amsmath,amssymb}
+\RequirePackage[svgnames,table,hyperref]{xcolor}
+\RequirePackage{tikz}
+
+\RequirePackage[bookmarks,raiselinks,pageanchor,hyperindex,colorlinks]{hyperref}
+\urlstyle{sf}
+\RequirePackage{cleveref}
+
+\RequirePackage[a4paper,left=2.5cm,right=2.5cm,top=1.5cm,bottom=1.5cm,
+    marginparsep=3mm,marginparwidth=18mm,
+    headheight=0mm,headsep=0cm,
+    footskip=1.5cm,includeheadfoot]{geometry}
+\RequirePackage{fancyhdr}
+\fancyhf{}
+\fancyfoot[C]{\thepage}%
+\renewcommand{\headrulewidth}{0pt}
+\renewcommand{\footrulewidth}{0pt}
+\pagestyle{fancy}
+\tolerance=2000%
+\setlength{\emergencystretch}{20pt}%
+
+\RequirePackage[many,minted,documentation]{tcolorbox}
+\RequirePackage{csquotes}
+\RequirePackage[style=numeric-comp,sorting=nyt,
+  maxnames=8,minnames=8,abbreviate=false,backend=biber]{biblatex}
+\DeclareFieldFormat{url}{\newline\url{#1}}%
+\DeclareListFormat{language}{}%
+\setlength{\bibitemsep}{\smallskipamount}
+\addbibresource{\jobname.bib}
+
+\tcbset{skin=enhanced,
+  doc head={colback=yellow!10!white,interior style=fill},
+  doc head key={colback=magenta!5!white,interior style=fill},
+  color key=DarkViolet,
+  color value=Teal,
+  color color=Teal,
+  color counter=Orange!85!black,
+  color length=Orange!85!black,
+  index colorize,
+  index annotate,
+  beforeafter example/.style={
+    before skip=4pt plus 2pt minus 1pt,
+    after skip=8pt plus 4pt minus 2pt
+  },
+}
+\renewcommand*{\tcbdocnew}[1]{\textcolor{green!50!black}{\sffamily\bfseries N} #1}
+\renewcommand*{\tcbdocupdated}[1]{\textcolor{blue!75!black}{\sffamily\bfseries U} #1}
+
+\RequirePackage{\igrpkgprefix incgraph}
+
+\hypersetup{
+  pdftitle={Manual for the incgraph package},
+  pdfauthor={Thomas F. Sturm},
+  pdfsubject={graphics inclusion},
+  pdfkeywords={graphics inclusion page}
+}
+
+\RequirePackage{tikz,multicol}
+
+\tcbset{
+  docexample/.style={bicolor,
+    beforeafter example,
+    fonttitle=\bfseries,
+    fontlower=\footnotesize,
+    colframe=Navy!50!ExampleFrame,
+    colback=Navy!5!ExampleBack!50!white,
+    colbacklower=ExampleBack!5!white,
+    drop fuzzy shadow,
+    listing engine=minted,
+    documentation minted style=colorful,
+    documentation minted options={fontsize=\footnotesize},
+    },
+  example/.style={
+    docexample,
+    listing only,
+    before title={\hypersetup{linkcolor=white}},
+  },
+}
+
+\tcbmakedocSubKey{docIgrKey}{igr}
+\tcbmakedocSubKeys{docIgrKeys}{igr}
+
+\newcounter{texexp}
+
+\newtcblisting[use counter=texexp]{texexptitled}[3][]{%
+  example,
+  title={Example~\thetcbcounter: #2},
+  listing file={\jobname.\thetcbcounter.listing},
+  label={#3},#1
+}
+
+\newtcbinputlisting[use counter from=texexptitled]{\inputexamplelisting}[3][]{
+  example,
+  title={Example~\thetcbcounter: \texttt{#2}},
+  listing file={#2},
+  label={#3},#1
+}
+
+\newcommand{\inputlisting}[1]{\input{\jobname.#1.listing}}
+\newcommand{\inputlastlisting}{\inputlisting{\thetexexp}}
+
+\def\tikzname{Ti\emph{k}Z}
+
+\makeindex
+
+\ExplSyntaxOn
+\sys_if_engine_pdftex:T
+  {
+    \pdfsuppresswarningpagegroup=1
+  }
+\ExplSyntaxOff


Property changes on: trunk/Master/texmf-dist/doc/latex/incgraph/incgraph-doc.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/latex/incgraph/incgraph-example-a.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/incgraph/incgraph-example-b.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/incgraph/incgraph-example-c.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/incgraph/incgraph.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/incgraph/incgraph.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/incgraph/incgraph.tex	2021-10-19 23:49:23 UTC (rev 60809)
+++ trunk/Master/texmf-dist/doc/latex/incgraph/incgraph.tex	2021-10-20 21:16:12 UTC (rev 60810)
@@ -1,9 +1,10 @@
 % \LaTeX-Main\
-%% The LaTeX package incgraph - version 1.12 (2015/03/12)
+% !TeX encoding=UTF-8
+%% The LaTeX package incgraph - version 1.2.0 (2021/10/20)
 %% incgraph.tex: Manual
 %%
 %% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2012-2013 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2012-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
 %% -------------------------------------------------------------------------------------------
 %%
 %% This work may be distributed and/or modified under the
@@ -20,113 +21,9 @@
 %%
 \documentclass[a4paper,11pt]{ltxdoc}
 
-\usepackage[T1]{fontenc}
-\usepackage[latin1]{inputenc}
-\usepackage[english]{babel}
-\usepackage{lmodern,parskip,array,ifthen,calc,makeidx}
-\usepackage{amsmath,amssymb}
-\usepackage[svgnames,table,hyperref]{xcolor}
-\usepackage{tikz}
-\usepackage[pdftex,bookmarks,raiselinks,pageanchor,hyperindex,colorlinks]{hyperref}
-\urlstyle{sf}
+\usepackage{incgraph-doc}
 
-\usepackage[a4paper,left=2.5cm,right=2.5cm,top=1.5cm,bottom=1.5cm,
-    marginparsep=3mm,marginparwidth=18mm,
-    headheight=0mm,headsep=0cm,
-    footskip=1.5cm,includeheadfoot]{geometry}
-\usepackage{fancyhdr}
-\fancyhf{}
-\fancyfoot[C]{\thepage}%
-\renewcommand{\headrulewidth}{0pt}
-\renewcommand{\footrulewidth}{0pt}
-\pagestyle{fancy}
-\tolerance=2000%
-\setlength{\emergencystretch}{20pt}%
 
-\RequirePackage{csquotes}
-\RequirePackage[style=numeric-comp,sorting=nyt,
-  maxnames=8,minnames=8,abbreviate=false,backend=biber]{biblatex}
-\DeclareFieldFormat{url}{\newline\url{#1}}%
-\DeclareListFormat{language}{}%
-\setlength{\bibitemsep}{\smallskipamount}
-\addbibresource{\jobname.bib}
-
-\usepackage[many,listings,documentation]{tcolorbox}
-
-\tcbset{skin=enhanced,
-  doc head={colback=yellow!10!white,interior style=fill},
-  doc head key={colback=magenta!5!white,interior style=fill},
-  color key=DarkViolet,
-  color value=Teal,
-  color color=Teal,
-  color counter=Orange!85!black,
-  color length=Orange!85!black,
-  index colorize,
-  index annotate,
-  %external/externalizer=tcolorbox.doc.externalizer,
-}
-\renewcommand*{\tcbdocnew}[1]{\textcolor{green!50!black}{\sffamily\bfseries N} #1}
-\renewcommand*{\tcbdocupdated}[1]{\textcolor{blue!75!black}{\sffamily\bfseries U} #1}
-
-\usepackage{incgraph}
-
-\hypersetup{
-  pdftitle={Manual for the incgraph package},
-  pdfauthor={Thomas F. Sturm},
-  pdfsubject={graphics inclusion},
-  pdfkeywords={graphics inclusion page}
-}
-
-\usepackage{tikz,multicol}
-
-\lstdefinestyle{mydocumentation}{style=tcbdocumentation,
-  classoffset=0,
-  texcsstyle=\color{blue},
-  % LaTeX and other packages
-  moretexcs={arrayrulecolor,draw,path,fill,includegraphics,ifthenelse,isodd,lipsum,path,pgfkeysalso,foreach},
-  classoffset=1,
-  moretexcs={%
-    incgraph,incmultigraph,n,ni,nn,nt,igrset,igrpage,igrcenter,igrcenterfit,
-    igrtargetset,igrboxset,igrboxcenter,igrpagestyle,igrboxtikz,igrboxtikzpage,
-    igrboxtikzcenter,igrsetmatchvalue,igrsetmatches,igrifmatch,igrmakezerofill,
-    },
-  texcsstyle=\color{Definition}\bfseries,
-  classoffset=2,
-  keywordstyle=\color{Option}\bfseries,
-  % option list
-  morekeywords={%
-    },
-  classoffset=0% restore default
-  }
-
-\tcbset{documentation listing style=mydocumentation,%
-  docexample/.style={enhanced,colframe=Navy!50!ExampleFrame,colback=Navy!5!ExampleBack,fontlower=\footnotesize,
-    bicolor,colbacklower=ExampleBack!5!white,drop fuzzy shadow},
-}
-
-\tcbmakedocSubKey{docIgrKey}{igr}
-
-\newcounter{texexp}
-
-\tcbset{
-  example/.code 2 args={\refstepcounter{texexp}%
-  \pgfkeysalso{label={#2},docexample,listing style=mydocumentation,fonttitle=\bfseries,title={Example \thetexexp: #1}}},
-}
-
-\newenvironment{texexptitled}[3][]{%
-  \hypersetup{linkcolor=white}%
-  \tcbset{example={#2}{#3},listing file={\jobname.\thetexexp.listing},#1}%
-  \tcblisting{}}{\endtcblisting}
-
-
-\newcommand{\inputlisting}[1]{\input{\jobname.#1.listing}}
-\newcommand{\inputlastlisting}{\inputlisting{\thetexexp}}
-
-\def\version{1.12}%
-\def\datum{2015/03/12}%
-\makeindex
-
-
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \begin{document}
 \begin{center}
@@ -140,7 +37,10 @@
 {\large Thomas F.~Sturm%
   \footnote{Prof.~Dr.~Dr.~Thomas F.~Sturm, Institut f\"{u}r Mathematik und Informatik,
     Universit\"{a}t der Bundeswehr M\"{u}nchen, D-85577 Neubiberg, Germany;
-     email: \href{mailto:thomas.sturm at unibw.de}{thomas.sturm at unibw.de}} }
+     email: \href{mailto:thomas.sturm at unibw.de}{thomas.sturm at unibw.de}}\par\medskip
+\normalsize\url{https://www.ctan.org/pkg/incgraph}\par
+\url{https://github.com/T-F-S/incgraph}
+}
 \end{center}
 \bigskip
 \begin{absquote}
@@ -185,11 +85,13 @@
 or taken pictures to a PDF document. Optionally, the included graphics can
 be commented with bookmarks for the resulting PDF document.
 
-The well-known |graphicx| package \cite{carlisle:1999a} allows the inclusion
+The well-known |graphicx| package \cite{carlisle:graphics} allows the inclusion
 of several types of external graphics files. The convenience user interface
 of |incgraph| described in Section \ref{sec:interface} relies on this package and adds
 assistance for the described purpose. Note that the package is designed for and
-tested with |pdflatex| to produce PDF directly. Some features like the paper
+tested with |pdflatex| to produce PDF directly. Also, the package is
+intended to harmonize with |lualatex|.
+Some features like the paper
 resizing may not be applicable for other work-flows.
 
 Many of the features of the convenience user interface can be used directly
@@ -197,7 +99,7 @@
 as a 'basic tool box' in Section \ref{sec:basictoolbox}.
 
 If this package does not aid your intended purpose, you may take a look
-at the |pdfpages| package \cite{matthias:2012a} which also supports the insertion of
+at the |pdfpages| package \cite{matthias:pdfpages} which also supports the insertion of
 external multi-page PDF documents.
 
 
@@ -208,10 +110,10 @@
 \end{dispListing}
 
 The package |incgraph| loads the package
-|pgfkeys| \cite{tantau:2013a}. If no options are given, it also
-loads the packages |pgf|, |pgffor| \cite{tantau:2013a},
-the package |graphicx| \cite{carlisle:1999a}, and the
-package |bookmark| \cite{oberdiek:2011a}.
+|pgfkeys| \cite{tantau:tikz}. If no options are given, it also
+loads the packages |pgf|, |pgffor| \cite{tantau:tikz},
+the package |graphicx| \cite{carlisle:graphics}, and the
+package |bookmark| \cite{oberdiek:bookmark}.
 
 \begin{itemize}
 \item The option |nopgf| prevents the loading of |pgf| and |pgffor|.\\
@@ -231,13 +133,13 @@
 intended to avoid possible option clashes the easy way.
 
 
-
+\clearpage
 %--------------------------------------
 \section{User Interface}\label{sec:interface}
 
 \subsection{Inclusion Macros for External Graphics}
 The macros of this section rely on the |\includegraphics| command from
-the package |graphicx| \cite{carlisle:1999a}.
+the package |graphicx| \cite{carlisle:graphics}.
 %Section \ref{sec:basictoolbox} describes more basic commands.
 
 \begin{docCommand}{incgraph}{\oarg{options}\oarg{graphics options}\marg{file name}}
@@ -247,22 +149,22 @@
   The applicable \meta{options} are listed in Section \ref{sec:keys}.
   If \meta{graphics options} are given, these are added to the options for
   the underlying |\includegraphics| command. See the documentation of
-  |graphicx| \cite{carlisle:1999a} for a list of applicable \meta{graphics options}.
+  |graphicx| \cite{carlisle:graphics} for a list of applicable \meta{graphics options}.
 
 
-\begin{texexptitled}[listing only,before={\par\medskip}]%
+\begin{texexptitled}%
   {The hand-drawn example (centered); see page~\pageref{exacenter}}{exacenter.listing}
 \incgraph[paper=current,label={exacenter},overlay page number at bottom,
   bookmark={The hand-drawn example (centered)}]{example.jpg}
 \end{texexptitled}
 
-\begin{texexptitled}[listing only,before={\par\medskip}]%
+\begin{texexptitled}%
   {The hand-drawn example (resized page); see page~\pageref{exaresized}}{exaresized.listing}
 \incgraph[paper=graphics,label={exaresized},
   bookmark={The hand-drawn example (resized page)}]{example.jpg}
 \end{texexptitled}
 
-\begin{texexptitled}[listing only,before={\par\medskip}]%
+\begin{texexptitled}%
   {The hand-drawn example (rotated and oversized); see page~\pageref{exarotated}}{exarotated.listing}
 \incgraph[paper=current,label={exarotated},target=oversized,
   bookmark={The hand-drawn example (rotated and oversized)}]%
@@ -279,8 +181,8 @@
   The applicable \meta{options} are listed in Section \ref{sec:keys}.
   If \meta{graphics options} are given, these are added to the options for
   the underlying |\includegraphics| command. See the documentation of
-  |graphicx| \cite{carlisle:1999a} for a list of applicable \meta{graphics options}.\\
-  The \meta{list} may contain any construction allowed for the |\foreach| statement \cite{tantau:2013a},
+  |graphicx| \cite{carlisle:graphics} for a list of applicable \meta{graphics options}.\\
+  The \meta{list} may contain any construction allowed for the |\foreach| statement \cite{tantau:tikz},
   especially a list of numbers.
   The elements of the list can be used inside the \meta{file name pattern}
   with the following macros:
@@ -297,7 +199,7 @@
   \end{itemize}
   In the default behavior, non existing files are ignored.
 
-\begin{texexptitled}[listing only,before={\par\medskip}]%
+\begin{texexptitled}%
   {A series of pictures; see from page~\pageref{exaseries.1}. The image files
     exaimage-0001.png to exaimage-0150.png are included but only three
     of them exist.}{exaseries.listing}
@@ -315,7 +217,7 @@
   The applicable \meta{options} are listed in Section \ref{sec:keys}.
 
 
-\begin{texexptitled}[listing only,before={\par\medskip}]%
+\begin{texexptitled}%
   {Some text on a shrunk paper; see page~\pageref{inctext1}}{inctext1.listing}
 \begin{inctext}[paper=graphics,label={inctext1},bookmark={A huge ABC}]
   \Huge ABC
@@ -323,7 +225,7 @@
 \end{texexptitled}
 
 
-\begin{texexptitled}[listing only,before={\par\medskip}]%
+\begin{texexptitled}%
   {A tikzpicture as text content; see page~\pageref{inctext2}}{inctext2.listing}
 \begin{inctext}[paper=a6,landscape,label={inctext2},bookmark={Graph},
     overlay page number at bottom=8mm]
@@ -397,7 +299,7 @@
   |b0|, |b1|, |b2|, |b3|, |b4|, |b5|, |b6|, |b7|, |b8|, |b9|, |b10|,
   |c0|, |c1|, |c2|, |c3|, |c4|, |c5|, |c6|, |c7|, |c8|, |c9|, |c10|,
   |d0|, |d1|, |d2|, |d3|, |d4|, |d5|, |d6|, |d7|,
-  executive, letter, legal, ledger.
+  |executive|, |letter|, |legal|, |ledger|.
 \end{docIgrKey}
 
 \begin{docIgrKey}{landscape}{}{no value}
@@ -437,10 +339,10 @@
 \subsection{Graphics Inclusion}
 
 \begin{docIgrKey}{options}{=\marg{graphics options}}{no default, initially empty}
-  The \meta{graphics options} are applied to the underlying |\includegraphics| command.
+  The \meta{graphics options} are applied to the underlying \docAuxCommand*{includegraphics} command.
   See the documentation of
-  |graphicx| \cite{carlisle:1999a} for a list of applicable \meta{graphics options}.
-\begin{texexptitled}[listing only,before={\par\medskip}]%
+  |graphicx| \cite{carlisle:graphics} for a list of applicable \meta{graphics options}.
+\begin{texexptitled}%
   {A resized image; see page~\pageref{exagraphresize}}{exagraphresize.listing}
 \igrset{options={width=10cm,height=10cm}, paper=graphics,
   overlay page number at top=5mm
@@ -453,31 +355,116 @@
 
 \begin{docIgrKey}{options add}{=\marg{graphics options}}{no default, initially empty}
   The \meta{graphics options} are added to the current list of options
-  for the underlying |\includegraphics| command.
+  for the underlying \docAuxCommand*{includegraphics} command.
 \end{docIgrKey}
 
 
 \begin{docIgrKey}{include command}{\colOpt{=\meta{macro}}}{default and initially \cs{includegraphics}}
-  Replaces the internally used \cs{includegraphics} command by the given \meta{macro}.
-  Note that \meta{macro} has to have the same signature as \cs{includegraphics},
+  Replaces the internally used \docAuxCommand*{includegraphics} command by the given \meta{macro}.
+  Note that \meta{macro} has to have the same signature as \docAuxCommand*{includegraphics},
   i.\,e.\ it has to take two arguments where the first argument is optional.
 \end{docIgrKey}
 
 \begin{docIgrKey}{existence check}{=\meta{macro}}{no default}
-  Replaces the internally used \cs{IfFileExists} command by the given \meta{macro}.
-  Note that \meta{macro} has to have the same signature as \cs{IfFileExists},
+  Replaces the internally used \docAuxCommand*{IfFileExists}
+  (in truth \docAuxCommand*{file_if_exist:nTF})
+  command by the given \meta{macro}.
+  Note that \meta{macro} has to have the same signature as \docAuxCommand*{IfFileExists},
   i.\,e.\ it has to take three arguments.
 \end{docIgrKey}
 
-\begin{docIgrKey}{fail on not found}{}{no value}
-  Stops the compilation with an error if the included file does not exist.
-\end{docIgrKey}
+\begin{docIgrKeys}[
+    doc parameter   = {},
+    doc description = {no value}
+  ]
+  {
+    {
+      doc name = no existence check,
+      doc new  = 2021-10-16,
+    },
+    {
+      doc name = fail on not found,
+    },
+  }
+  Omits any existence checks by the package, i.e. the underlying
+  \docAuxCommand*{includegraphics} is called directly any may
+  stop the compilation with an error if the included file does not exist.
+  Both options are equal, but the newer \refKey{/igr/no existence check}
+  is considered to be more comprehensible.
+\end{docIgrKeys}
 
 \begin{docIgrKey}{ignore on not found}{}{no value, initially set}
-  Not existing included files are ignored without warning.
+  Not existing included files are ignored without warning. This is the default
+  setting and is intended to be used with fragmentary file lists.
 \end{docIgrKey}
 
+\clearpage
 
+\begin{docIgrKeys}[
+    doc parameter   = \colOpt{=\marg{extension list}},
+    doc description = {initially unset},
+    doc new  = 2021-10-16,
+  ]
+  {
+    {
+      doc name = ignore on not found with extensions,
+    },
+    {
+      doc name = ignore on not found with extensions*,
+    },
+  }
+  Tests, if the included file with an added \emph{extension} exists and
+  performs the inclusion on existence. Otherwise, included files are ignored without warning.
+  Tested \emph{extensions} are taken from the optional comma separated \meta{extension list}
+  or (exclusively) from the configured list from \refKey{/igr/extensions} and friends
+  (only, if \meta{extension list} is not given).\par
+  \refKey{/igr/ignore on not found with extensions*} also tests, if the included
+  file without added \emph{extension} exists and takes it on existence.\par
+  Note that if a file is included with a given extension, this extension is not
+  replaced by the listed extension, but prolonged with it.\par
+  These options are intended for mixed file lists, e.g. |.jpg| and |.png|, or
+  unkown type file lists.
+  Note that if you \emph{know} the (singular) extension of your files, you are
+  encouraged to use \refKey{/igr/ignore on not found} instead for performance reasons.
+\begin{dispListing}
+\incmultigraph[ignore on not found with extensions={.jpg,.png}]{myfile\n}{1,...,100}
+  % includes e.g. `myfile1.jpg`, `myfile2.png`, `myfile42.jpg`, ...
+\incmultigraph[ignore on not found with extensions={.jpg,.png}]{myfile\n.xy}{1,...,100}
+  % includes e.g. `myfile1.xy.jpg`, `myfile2.xy.png`, `myfile42.xy.jpg`, ...
+\incgraph[ignore on not found with extensions={.jpg,.png}]{myfile}
+  % tests `myfile.jpg` and `myfile.png` for existence (and inclusion)
+\incgraph[ignore on not found with extensions*={.jpg,.png}]{myfile}
+  % tests `myfile`, `myfile.jpg`, and `myfile.png` for existence (and inclusion)
+\incmultigraph[ignore on not found with extensions]{myfile\n}{1,...,100}
+  % includes files with extensions given by /igr/extensions
+\end{dispListing}
+\end{docIgrKeys}
+
+
+\begin{docIgrKey}[][doc new=2021-10-16]{extensions}{=\marg{extension list}}{initially |.jpg,.png|}
+  Specifies a comma separated \meta{extension list} to be used in combination with
+  \refKey{/igr/ignore on not found with extensions}.
+\end{docIgrKey}
+
+
+\begin{docIgrKey}[][doc new=2021-10-16]{extensions add}{=\marg{extension list}}{initially unset}
+  Adds a comma separated \meta{extension list} to an already defined list from
+  \refKey{/igr/extensions}.
+\end{docIgrKey}
+
+
+\begin{docIgrKey}[][doc new=2021-10-16]{extensions from graphics}{}{initially unset}
+  Takes the list of extensions from \docAuxCommand*{DeclareGraphicsExtensions}
+  of the |graphics| \cite{carlisle:graphics} package as setup for \refKey{/igr/extensions}.
+  While this looks like the most comfortable options, this can significantely
+  increase compilation time when used for fragmentary file lists, because
+  every non-existing file from the file list will induce a lot of existence checks.
+  Also note that this options uses internals from |graphics| and is not
+  guaranteed to work with future versions of |graphics|.
+\end{docIgrKey}
+
+
+\clearpage
 \subsection{Hypertargets, Labels, and Bookmarks}
 
 \begin{docIgrKey}{hyper}{}{no value, initially set}
@@ -515,8 +502,8 @@
 \begin{docIgrKey}{bookmark options}{=\marg{bookmark options}}{no default, initially empty}
   Sets the options for a bookmark.
   See the documentation of
-  |bookmark| \cite{oberdiek:2011a} for a list of applicable \meta{bookmark options}.
-\begin{texexptitled}[listing only,before={\par\medskip}]%
+  |bookmark| \cite{oberdiek:bookmark} for a list of applicable \meta{bookmark options}.
+\begin{texexptitled}%
   {Bookmark options; see page~\pageref{exabookmark}}{exabookmark.listing}
 % not every PDF reader will show the effect!
 \igrset{bookmark options={bold,color={red}},currentpaper}
@@ -528,7 +515,7 @@
 \begin{docIgrKey}{bookmark heading}{=\meta{text}}{no default, initially empty}
   For \refCom{incmultigraph}, an additional bookmark with the given \meta{text}
   is set as a heading before the images are included.
-\begin{texexptitled}[listing only,before={\par\medskip}]%
+\begin{texexptitled}%
   {A series of pictures; see from page~\pageref{exaheading.1}}{exaheading.listing}
 \incmultigraph[zerofill=4,currentpaper,
   bookmark heading={A series of pictures},
@@ -542,7 +529,7 @@
 \begin{docIgrKey}{bookmark heading options}{=\marg{bookmark options}}{no default, initially empty}
   Sets the options for a \refKey{/igr/bookmark heading}.
   See the documentation of
-  |bookmark| \cite{oberdiek:2011a} for a list of applicable \meta{bookmark options}.
+  |bookmark| \cite{oberdiek:bookmark} for a list of applicable \meta{bookmark options}.
 \end{docIgrKey}
 
 \clearpage
@@ -593,15 +580,15 @@
   \refKey{/igr/if match set}, and
   \refKey{/igr/if match set bookmark}.
 
-\begin{tcblisting}{docexample,listing only}
+\begin{dispListing}
 \igrset{set matches={
   foo = bar,
     1 = A very red image,
    37 = A not so centered number,
   123 = A greenish example}}
-\end{tcblisting}
+\end{dispListing}
 \end{docIgrKey}
-\tcbuselistingtext
+\tcbusetemp
 
 \begin{docIgrKey}{if match code}{=\marg{key}\marg{then}\marg{else}}{no default}
   If the \meta{key} was defined by \refKey{/igr/set matches},
@@ -626,7 +613,7 @@
   the corresponding value is put in the
   macro |\igrmatchvalue| and the current PDF bookmark is set to \meta{then}.
   If the \meta{key} is unknown, the current PDF bookmark is set to \meta{else}.
-\begin{texexptitled}[listing only,before={\par\medskip}]%
+\begin{texexptitled}%
   {Map and match example; see from page~\pageref{examatch.1}}{examatch.listing}
 \incmultigraph[zerofill=4,paper=graphics,
   bookmark heading={Map and match example},
@@ -651,12 +638,12 @@
 
 \begin{docIgrKey}{overlay}{=\marg{tikz code}}{no default, initially unset}
   Introduces arbitrary \meta{tikz code} to be drawn over the included image.
-  Note that the |tikz| package \cite{tantau:2013a} has to be loaded separately.
+  Note that the \tikzname\ package \cite{tantau:tikz} has to be loaded separately.
   To support positioning inside the picture, two |tikz| nodes named
   |box| and |page| are defined. |box| takes the dimensions of the included image
   and |page| takes the dimensions of the image or of the page depending on the usage of
   \refKey{/igr/paper}.
-\begin{texexptitled}[listing only,before={\par\medskip}]%
+\begin{texexptitled}%
   {Overlay; see page~\pageref{overlay}}{overlay.listing}
 \igrset{bookmark options={level=subsection}, paper=current}
 \incgraph[bookmark={Picture with overlay},label={overlay},
@@ -694,11 +681,21 @@
   and the result on page~\pageref{exagraphresize}.
 \end{docIgrKey}
 
+
+\begin{docIgrKey}[][doc new=2021-10-11]{overlay page number options}{=\marg{tikz options}}{no default, initially\\
+  \texttt{fill opacity=0.35,draw opacity=0.5,text opacity=1,inner xsep=1em,\\
+     rounded corners,fill=white,draw=black}}
+  Defines the \tikzname\ node style for drawing the page number with one
+  of the options above, e.g. \refKey{/igr/overlay page number at}
+\end{docIgrKey}
+
+
 \begin{docIgrKey}{no overlay}{}{no value, initially set}
   Removes the overlay setting.
 \end{docIgrKey}
 
 
+\clearpage
 \subsection{Miscellaneous}
 
 
@@ -742,10 +739,13 @@
 All included images are automatically bookmarked with the page number and
 the file name of the source image.
 
-\def\thecurrentexample{\jobname-example-a.tex}
-\tcbinputlisting{listing file=\thecurrentexample,listing only,
-  example={\texttt{\thecurrentexample}}{somescans}}
 
+\inputexamplelisting{\jobname-example-a.tex}{somescans}
+
+%\def\thecurrentexample{\jobname-example-a.tex}
+%\tcbinputlisting{listing file=\thecurrentexample,listing only,
+%  example={\texttt{\thecurrentexample}}{somescans}}
+
 The compiled result of this stand-alone source code is not found in this document but as
 a separate file in the documentation directory of the package.
 
@@ -769,10 +769,13 @@
 Note that the bookmarks of the multi-page part are matched with the numbers
 contained in the file names of |exaimage-0001.png| to |exaimage-0150.png|.
 
-\def\thecurrentexample{\jobname-example-b.tex}
-\tcbinputlisting{listing file=\thecurrentexample,listing only,
-  example={\texttt{\thecurrentexample}}{picturebook}}
 
+\inputexamplelisting{\jobname-example-b.tex}{picturebook}
+
+%\def\thecurrentexample{\jobname-example-b.tex}
+%\tcbinputlisting{listing file=\thecurrentexample,listing only,
+%  example={\texttt{\thecurrentexample}}{picturebook}}
+
 The compiled result of this stand-alone source code is not found in this document but as
 a separate file in the documentation directory of the package.
 
@@ -780,7 +783,7 @@
 \clearpage
 \subsection{Reformatting from Letter to DIN A4 (and vice versa)}
 In this scenario, we assume to have a PDF document with the 'wrong' paper size.
-Here, |incgraph-example-a.pdf| has the letter format, but DIN A4 paper
+Here, |incgraph-example-a.pdf| has the letter format, but A4 paper
 is needed. |incgraph| is used to reformat to the desired paper size.
 Of course, it also works the other way around.
 
@@ -793,10 +796,13 @@
 |\includegraphics| macro.
 
 
-\def\thecurrentexample{\jobname-example-c.tex}
-\tcbinputlisting{listing file=\thecurrentexample,listing only,
- example={\texttt{\thecurrentexample}}{reformatting}}
+\inputexamplelisting{\jobname-example-c.tex}{reformatting}
 
+%\def\thecurrentexample{\jobname-example-c.tex}
+%\tcbinputlisting{listing file=\thecurrentexample,listing only,
+% example={\texttt{\thecurrentexample}}{reformatting}}
+
+
 The compiled result of this stand-alone source code is not found in this document but as
 a separate file in the documentation directory of the package.
 
@@ -817,7 +823,7 @@
 picture is put inside an \refEnv{inctext} environment which puts the drawing
 on a separate page which gets the dimensions of the drawing.
 
-\begin{texexptitled}[listing only]{Creation of a special text page (resized)}{fullpaperdrawing1}
+\begin{texexptitled}{Creation of a special text page (resized)}{fullpaperdrawing1}
 \begin{inctext}[paper=graphics, bookmark=My special text page (resized)]
 \begin{tikzpicture}%
   \coordinate (A) at (0,0); \coordinate (B) at (16,16);
@@ -848,7 +854,7 @@
 directly inside the |tikzpicture|.
 
 
-\begin{texexptitled}[listing only]{Creation of a special text page (fitted)}{fullpaperdrawing2}
+\begin{texexptitled}{Creation of a special text page (fitted)}{fullpaperdrawing2}
 \begin{inctext}[paper=current, target=mytarget,
   bookmark=My special text page (fitted)]
 \begin{tikzpicture}%
@@ -885,6 +891,59 @@
 user interface described in Section \ref{sec:interface} and Section \ref{sec:keys}.
 
 
+\subsection{Page Size Commands}
+
+The following macros are auxiliary tools which wrap corresponding length registers
+from |pdflatex| and |lualatex|.
+
+\begin{docCommand}[doc new=2021-10-12]{igrGetPageSize}{}
+  Reads the current page dimensions and stores them into the macros
+  \refCom{igrPageWidth} and \refCom{igrPageHeight}.
+\end{docCommand}
+
+\begin{docCommand}[doc new=2021-10-12]{igrPageWidth}{}
+  After using \refCom{igrGetPageSize}, \refCom{igrPageWidth} contains
+  the current page width. This is |\pdfpagewidth| for |pdflatex|,
+  |\pagewidth| for |lualatex| and a choice of |\pdfpagewidth| or |\paperwidth|
+  for other engines.
+\end{docCommand}
+
+\begin{docCommand}[doc new=2021-10-12]{igrPageHeight}{}
+  After using \refCom{igrGetPageSize}, \refCom{igrPageHeight} contains
+  the current page height. This is |\pdfpageheight| for |pdflatex|,
+  |\pageheight| for |lualatex| and a choice of |\pdfpageheight| or |\paperheight|
+  for other engines.
+\end{docCommand}
+
+
+\begin{docCommand}[doc new=2021-10-12]{igrSetPageSize}{\marg{width}\marg{height}}
+  Sets the current page dimensions to \meta{width} and \meta{height}.
+  In depends on the used engine, if a call to this command has success or
+  not. This should work for |pdflatex| and |lualatex|.
+\end{docCommand}
+
+
+\subsection{Last Page Commands (Number of Pages)}
+
+The following macros are auxiliary tools which wrap corresponding functions
+from |pdflatex| and |lualatex|.
+
+\begin{docCommand}[doc new=2021-10-18]{igrGetLastPage}{\marg{file}}
+  Reads the last page (page count) from the given (PDF-)\meta{file}
+  and stores it into the macro \refCom{igrLastPage}.
+\end{docCommand}
+
+
+\begin{docCommand}[doc new=2021-10-18]{igrLastPage}{}
+  After using \refCom{igrGetLastPage}, \refCom{igrLastPage} contains
+  the last page of the currently tested file.
+  This is |\pdflastximagepages| for |pdflatex|,
+  |\lastsavedimageresourcepages| for |lualatex| and simply $1$
+  for other engines.
+\end{docCommand}
+
+
+\clearpage
 \subsection{Full Page Commands}
 
 \begin{docCommand}{igrpage}{\marg{text}}
@@ -967,7 +1026,7 @@
 \clearpage
 \begin{docCommand}{igrboxtikz}{}
   The current content of the |\igrbox| is embedded into a |\node| command
-  from the |tikz| package \cite{tantau:2013a} which has to be loaded separately.
+  from the |tikz| package \cite{tantau:tikz} which has to be loaded separately.
   Also, the bounding box is adjusted to the |\igrbox|.\\
   To support positioning inside the picture, two |tikz| nodes named
   |box| and |page| are defined which both take the dimensions of the |\igrbox|.
@@ -1002,7 +1061,7 @@
 
 \begin{docCommand}{igrboxtikzcenter}{}
   The current content of the |\igrbox| is embedded into a |\node| command
-  from the |tikz| package \cite{tantau:2013a} which has to be loaded separately.
+  from the |tikz| package \cite{tantau:tikz} which has to be loaded separately.
   This node is placed in the center of a bounding box which takes the current
   page dimensions. Afterwards, |\igrBoxWidth| and |\igrBoxHeight| are
   redefined to the dimensions of the total page.\\
@@ -1037,7 +1096,7 @@
 \igrsetmatchvalue{my key A}{my value A}
 \def\keytester#1{\igrifmatch{#1}{Hurray: '\igrmatchvalue'}{'#1' unknown}}
 
-\keytester{foo}\\
+\keytester{something}\\
 \keytester{my key A}
 \end{dispExample}
 \end{docCommand}
@@ -1050,7 +1109,7 @@
 \igrsetmatches{my key A = my value A, bar = Shakespeare}
 \def\keytester#1{\igrifmatch{#1}{Hurray: '\igrmatchvalue'}{'#1' unknown}}
 
-\keytester{foo}\\
+\keytester{something}\\
 \keytester{bar}\\
 \keytester{my key A}
 \end{dispExample}
@@ -1117,33 +1176,33 @@
 % Do not follow this bad example ...
 \begin{tcbverbatimwrite}{\jobname.bib}
 
- at manual{tantau:2013a,
+ at manual{tantau:tikz,
    author    = {Till Tantau},
    title     = {The TikZ and PGF Packages},
-   subtitle  = {Manual for version 3.0.0},
-   url       = {http://sourceforge.net/projects/pgf/},
-   date      = {2013-12-20},
+   subtitle  = {Manual for version 3.1.9a},
+   url       = {https://mirrors.ctan.org/graphics/pgf/base/doc/pgfmanual.pdf},
+   date      = {2021-05-15},
 }
 
- at manual{carlisle:1999a,
-   author    = {D. P. Carlisle and S. P. Q. Rahtz},
-   title     = {The graphicx package},
-   url       = {http://mirror.ctan.org/macros/latex/required/graphics/},
-   date      = {1999-02-16},
+ at manual{carlisle:graphics,
+   author    = {D. P. Carlisle},
+   title     = {Packages in the ‘graphics’ bundle},
+   url       = {https://mirrors.ctan.org/macros/latex/required/graphics/grfguide.pdf},
+   date      = {2021-03-05},
    }
 
- at manual{matthias:2012a,
+ at manual{matthias:pdfpages,
    author    = {Andreas Matthias},
    title     = {The pdfpages Package},
-   url       = {http://mirror.ctan.org/macros/latex/contrib/pdfpages/pdfpages.pdf},
-   date      = {2012-04-03},
+   url       = {https://mirrors.ctan.org/macros/latex/contrib/pdfpages/pdfpages.pdf},
+   date      = {2021-03-06},
 }
 
- at manual{oberdiek:2011a,
+ at manual{oberdiek:bookmark,
   author    = {Heiko Oberdiek},
   title     = {The bookmark Package},
-  url       = {http://mirror.ctan.org/macros/latex/contrib/oberdiek/bookmark.pdf},
-  date      = {2011-12-02},
+  url       = {https://mirrors.ctan.org/macros/latex/contrib/bookmark/bookmark.pdf},
+  date      = {2020-11-06},
 }
 
 \end{tcbverbatimwrite}

Modified: trunk/Master/texmf-dist/tex/latex/incgraph/incgraph.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/incgraph/incgraph.sty	2021-10-19 23:49:23 UTC (rev 60809)
+++ trunk/Master/texmf-dist/tex/latex/incgraph/incgraph.sty	2021-10-20 21:16:12 UTC (rev 60810)
@@ -1,8 +1,8 @@
-%% The LaTeX package incgraph - version 1.12 (2015/03/12)
+%% The LaTeX package incgraph - version 1.2.0 (2021/10/20)
 %% incgraph.sty: Graphics inclusion page
 %%
 %% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2012-2015 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% Copyright (c) 2012-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
 %% -------------------------------------------------------------------------------------------
 %%
 %% This work may be distributed and/or modified under the
@@ -18,7 +18,7 @@
 %% This work consists of all files listed in README
 %%
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{incgraph}[2015/03/12 version 1.12 LaTeX special graphics inclusion]
+\ProvidesPackage{incgraph}[2021/10/20 version 1.2.0 LaTeX special graphics inclusion]
 
 \DeclareOption{pgf}{\def\igrreq at pgf{\RequirePackage{pgf}[2008/01/15]\RequirePackage{pgffor}}}%
 \DeclareOption{nopgf}{\def\igrreq at pgf{}}%
@@ -44,9 +44,82 @@
 \newdimen\igr at length
 \newcounter{igrtarget}
 
+\ExplSyntaxOn
+
+\sys_if_engine_pdftex:TF
+  {
+    \NewDocumentCommand \igrGetPageSize {}
+      {
+        \cs_gset_nopar:Npx \igrPageWidth  { \the\pdfpagewidth  }
+        \cs_gset_nopar:Npx \igrPageHeight { \the\pdfpageheight }
+      }
+    \NewDocumentCommand \igrSetPageSize { m m }
+      {
+        \pdfpagewidth  #1
+        \pdfpageheight #2
+      }
+    \NewDocumentCommand \igrGetLastPage { m }
+      {
+        \pdfximage{#1}
+        \cs_gset_nopar:Npx \igrLastPage { \the\pdflastximagepages }
+      }
+  }
+  {
+    \sys_if_engine_luatex:TF
+      {
+        \NewDocumentCommand \igrGetPageSize {}
+          {
+            \cs_gset_nopar:Npx \igrPageWidth  { \the\pagewidth  }
+            \cs_gset_nopar:Npx \igrPageHeight { \the\pageheight }
+          }
+        \NewDocumentCommand \igrSetPageSize { m m }
+          {
+            \pagewidth  #1
+            \pageheight #2
+          }
+        \NewDocumentCommand \igrGetLastPage { m }
+          {
+            \saveimageresource{#1}
+            \cs_gset_nopar:Npx \igrLastPage { \the\lastsavedimageresourcepages }
+          }
+      }
+      {
+        \cs_if_exist:NTF \pdfpagewidth
+          {
+            \NewDocumentCommand \igrGetPageSize {}
+              {
+                \cs_gset_nopar:Npx \igrPageWidth  { \the\pdfpagewidth  }
+                \cs_gset_nopar:Npx \igrPageHeight { \the\pdfpageheight }
+              }
+            \NewDocumentCommand \igrSetPageSize { m m }
+              {
+                \pdfpagewidth  #1
+                \pdfpageheight #2
+              }
+          }
+          {
+            \NewDocumentCommand \igrGetPageSize {}
+              {
+                \cs_gset_nopar:Npx \igrPageWidth  { \the\paperwidth  }
+                \cs_gset_nopar:Npx \igrPageHeight { \the\paperheight }
+              }
+            \NewDocumentCommand \igrSetPageSize { m m }
+              {
+              }
+          }
+        \NewDocumentCommand \igrGetLastPage { m }
+          {
+            \cs_gset_nopar:Npx \igrLastPage { 1 }
+          }
+      }
+  }
+
+\ExplSyntaxOff
+
 \AtBeginDocument{%
-  \edef\igrOrginalPageWidth{\the\pdfpagewidth}%
-  \edef\igrOrginalPageHeight{\the\pdfpageheight}%
+  \igrGetPageSize%
+  \let\igrOrginalPageWidth\igrPageWidth%
+  \let\igrOrginalPageHeight\igrPageHeight%
 }
 
 \def\igr at target@auto{%
@@ -60,7 +133,7 @@
 
 \let\igr at target@next=\igr at target@auto
 
-\def\igrtargetset#1{%
+\NewDocumentCommand\igrtargetset{m}{%
   \def\igr at usertarget{#1}%
   \let\igr at target@next=\igr at target@user%
 }
@@ -100,10 +173,7 @@
   \fi%
 }
 
-\long\def\igrboxset#1{%
-  \igr at nextAutoTarget%
-  \setbox\igrbox\color at hbox#1\color at endbox%
-  \igr at rebox%
+\def\igr at get@box at dimensions{%
   \igr at length=\wd\igrbox%
   \edef\igrBoxWidth{\the\igr at length}%
   \igr at length=\ht\igrbox%
@@ -114,11 +184,18 @@
   \edef\igrBoxHeight{\the\igr at length}%
 }
 
+\NewDocumentCommand\igrboxset{+m}{%
+  \igr at nextAutoTarget%
+  \setbox\igrbox\color at hbox#1\color at endbox%
+  \igr at rebox%
+  \igr at get@box at dimensions%
+}
 
+
 \def\igr at hyper{\hypertarget{\igrAutoTarget}{}}
-\def\igr at empty{}
 
-\def\igrboxcenter{%
+\NewDocumentCommand\igrboxcenter{}{%
+  \igrGetPageSize%
   \thispagestyle{\igrpagestyle}%
   %
   \igr at length=-1in%
@@ -128,7 +205,7 @@
   \advance\igr at length by -\headsep%
   \edef\igr at offy@top{\the\igr at length}%
   %
-  \igr at length=\pdfpageheight%
+  \igr at length=\igrPageHeight%
   \advance\igr at length by -\igrBoxHeight%
   \divide\igr at length by 2%
   \edef\igr at offy@abs{\the\igr at length}%
@@ -146,7 +223,7 @@
   \fi%
   \edef\igr at offx@left{\the\igr at length}%
   %
-  \igr at length=\pdfpagewidth%
+  \igr at length=\igrPageWidth%
   \advance\igr at length by -\igrBoxWidth%
   \divide\igr at length by 2%
   \advance\igr at length by \igr at offx@left%
@@ -160,7 +237,7 @@
   \break%
 }
 
-\def\igrboxtikz{%
+\NewDocumentCommand\igrboxtikz{}{%
   \path[use as bounding box] (0,0) rectangle (\igrBoxWidth,\igrBoxHeight);
   \node[line width=0mm,inner sep=0,rectangle,above right] (box) at (0,0) {\box\igrbox};
   \node[minimum width=\igrBoxWidth,minimum height=\igrBoxHeight,line width=0mm,inner sep=0mm,above right] (page) at (0,0) {};%
@@ -168,11 +245,12 @@
 
 \let\igrboxtikzpage=\igrboxtikz
 
-\def\igrboxtikzcenter{%
-  \path[use as bounding box] (0,0) rectangle (\pdfpagewidth,\pdfpageheight);
-  \node[line width=0mm,inner sep=0,rectangle,above right] (box) at ({(\pdfpagewidth-\igrBoxWidth)/2},{(\pdfpageheight-\igrBoxHeight)/2}) {\box\igrbox};
-  \edef\igrBoxWidth{\the\pdfpagewidth}%
-  \edef\igrBoxHeight{\the\pdfpageheight}%
+\NewDocumentCommand\igrboxtikzcenter{}{%
+  \igrGetPageSize%
+  \path[use as bounding box] (0,0) rectangle (\igrPageWidth,\igrPageHeight);
+  \node[line width=0mm,inner sep=0,rectangle,above right] (box) at ({(\igrPageWidth-\igrBoxWidth)/2},{(\igrPageHeight-\igrBoxHeight)/2}) {\box\igrbox};
+  \let\igrBoxWidth\igrPageWidth%
+  \let\igrBoxHeight\igrPageHeight%
   \node[minimum width=\igrBoxWidth,minimum height=\igrBoxHeight,line width=0mm,inner sep=0mm,above right] (page) at (0,0) {};%
 }
 
@@ -186,16 +264,15 @@
 % Output macros
 
 \def\igr at out@resize#1#2{%
-  \edef\igrCurrentPageWidth{\the\pdfpagewidth}%
-  \edef\igrCurrentPageHeight{\the\pdfpageheight}%
+  \igrGetPageSize%
+  \let\igrCurrentPageWidth\igrPageWidth%
+  \let\igrCurrentPageHeight\igrPageHeight%
   \eject%
-  \pdfpagewidth=#1%
-  \pdfpageheight=#2%
+  \igrSetPageSize{#1}{#2}%
   \igr at overlay%
   \edef\theigrpage{\thepage}%
   \igrboxcenter%
-  \pdfpagewidth=\igrCurrentPageWidth%
-  \pdfpageheight=\igrCurrentPageHeight%
+  \igrSetPageSize{\igrCurrentPageWidth}{\igrCurrentPageHeight}%
 }
 
 \def\igr at out@center at fit@port{%
@@ -222,7 +299,9 @@
 }
 
 \def\igr at out@center at land{%
-  \edef\igr at temp@w{\the\pdfpagewidth}\edef\igr at temp@h{\the\pdfpageheight}%
+  \igrGetPageSize%
+  \let\igr at temp@w\igrPageWidth%
+  \let\igr at temp@h\igrPageHeight%
   \igr at out@resize{\igr at temp@h}{\igr at temp@w}%
 }
 
@@ -232,17 +311,17 @@
 
 % Toolbox output
 
-\long\def\igrcenterfit#1#2#3{%
+\NewDocumentCommand\igrcenterfit{mm+m}{%
   \igrboxset{#3}%
   \igr at out@resize{#1}{#2}%
 }
 
-\long\def\igrpage#1{%
+\NewDocumentCommand\igrpage{+m}{%
   \igrboxset{#1}%
   \igr at out@page%
 }
 
-\long\def\igrcenter#1{%
+\NewDocumentCommand\igrcenter{+m}{%
   \igrboxset{#1}%
   \igr at out@center at port%
 }
@@ -250,87 +329,247 @@
 
 % include macros
 
-\def\incgraph{%
-  \@ifnextchar[{\inc at graph}{\inc at graph[]}}
+\ExplSyntaxOn
 
-\def\inc at graph[#1]{%
-  \@ifnextchar[{\inc@@graph[#1]}{\inc@@graph[#1][]}}
 
-\long\def\inc@@graph[#1][#2]#3{%
-  \begingroup%
-  \def\nt{#3}%
-  \igr at if@file at exists{\nt}{%
-    \igrset{#1}%
-    \igr at match@hook%
-    \edef\igr at incgraph{\noexpand\igr at include@graphics[\igr at options,#2]}%
-    \igrboxset{\igr at incgraph{\nt}\ifx\igr at label@text\igr at empty\else\label{\igr at label@text}\fi}%
-    \igr at output%
-    \ifx\igr at bookmark@text\igr at empty\else%
-    \edef\igr at bookmark{\noexpand\bookmark[\igr at bookmark@options,dest=\noexpand\igrAutoTarget]}%
-    \igr at bookmark{\igr at bookmark@text}\fi%
-  }{}%
-  \endgroup%
-}
+\bool_new:N \g__incgra_first_include
+\bool_new:N \g__incgra_multi_include
+\clist_new:N \l__incgra_extensions_clist
+\tl_new:N \l__incgra_bookmark_heading_options_tl
+\tl_new:N \l__incgra_bookmark_heading_text_tl
+\tl_new:N \l__incgra_bookmark_options_tl
+\tl_new:N \l__incgra_bookmark_text_tl
+\tl_new:N \l__incgra_label_text_tl
+\tl_new:N \l__incgra_options_tl
 
-\def\igr at bookmark@heading{%
-  \global\let\igr at process@label=\igr at empty%
-  \ifx\igr at bookmark@heading at text\igr at empty\else%
-  \edef\igr at bookmark{\noexpand\bookmark[\igr at bookmark@heading at options,dest=\noexpand\igrAutoTarget]}%
-  \igr at bookmark{\igr at bookmark@heading at text}\fi%
-  \global\let\igr at process@bookmark at heading=\igr at empty%
-}
 
-\def\incmultigraph{%
-  \@ifnextchar[{\inc at multigraph}{\inc at multigraph[]}}
+\cs_new_protected_nopar:Npn \__incgra_if_file_exist_extensions:nTF #1
+  {
+    \bool_set_false:N \l_tmpa_bool
+    \clist_map_inline:Nn \l__incgra_extensions_clist
+      {
+        \file_if_exist:nTF { #1 ##1 }
+          {
+            \tl_put_right:Nn \nt {##1}
+            \bool_set_true:N \l_tmpa_bool
+            \clist_map_break:
+          }
+      }
+    \bool_if:NTF \l_tmpa_bool
+  }
 
-\def\inc at multigraph[#1]{%
-  \@ifnextchar[{\inc@@multigraph[#1]}{\inc@@multigraph[#1][]}}
 
-\long\def\inc@@multigraph[#1][#2]#3#4{%
-  \begingroup%
-  \igrset{#1}%
-  \ifx\igr at label@text\igr at empty\global\let\igr at process@label=\igr at empty\else%
-    \global\def\igr at process@label{\label{\igr at label@text}}\fi%
-  \global\let\igr at process@bookmark at heading=\igr at bookmark@heading%
-  \foreach \n [count=\ni] in {#4} {%
-    \edef\nn{\igr at zero@fill{\n}}%
-    \def\nt{#3}%
-    \igr at if@file at exists{\nt}{%
-      \igr at match@hook%
-      \edef\igr at incgraph{\noexpand\igr at include@graphics[\igr at options,#2]}%
-      \igrboxset{\igr at incgraph{\nt}\igr at process@label}%
-      \igr at output%
-      \igr at process@bookmark at heading%
-      \ifx\igr at bookmark@text\igr at empty\else%
-      \edef\igr at bookmark{\noexpand\bookmark[\igr at bookmark@options,dest=\noexpand\igrAutoTarget]}%
-      \igr at bookmark{\igr at bookmark@text}\fi%
-  }{}}\endgroup%
-}
+\cs_new_protected_nopar:Npn \__incgra_if_file_exist_extensions_star:nTF #1#2#3
+  {
+    \file_if_exist:nTF { #1 }
+      {
+        #2
+      }
+      {
+        \__incgra_if_file_exist_extensions:nTF {#1}{#2}{#3}
+      }
+  }
 
 
-\newenvironment{inctext}[1][]{%
-  \igrset{#1}%
-  \igr at match@hook%
-  \igr at nextAutoTarget%
-  \clearpage\begin{lrbox}{\igrbox}%
-}{%
-  \unskip\ifx\igr at label@text\igr at empty\else\label{\igr at label@text}\fi\end{lrbox}%
-  \igr at rebox%
-  \igr at length=\wd\igrbox%
-  \edef\igrBoxWidth{\the\igr at length}%
-  \igr at length=\ht\igrbox%
-  \edef\igrBoxht{\the\igr at length}%
-  \igr at length=\dp\igrbox%
-  \edef\igrBoxdp{\the\igr at length}%
-  \advance\igr at length by \igrBoxht%
-  \edef\igrBoxHeight{\the\igr at length}%
-  \igr at output%
-  \ifx\igr at bookmark@text\igr at empty\else%
-  \edef\igr at bookmark{\noexpand\bookmark[\igr at bookmark@options,dest=\noexpand\igrAutoTarget]}%
-  \igr at bookmark{\igr at bookmark@text}\fi%
-}
+\cs_new_protected_nopar:Npn \__incgra_includegraphics:nn #1#2
+  {
+    \igr at match@hook
 
+    \tl_set:Nn       \l_tmpa_tl { \__incgra_include_graphics:w [ }
+    \tl_put_right:NV \l_tmpa_tl \l__incgra_options_tl
+    \tl_put_right:Nn \l_tmpa_tl { ,#1] }
 
+    \bool_if:NTF \g__incgra_multi_include
+      {
+        \bool_if:NTF \g__incgra_first_include
+          {
+            \tl_if_empty:NTF \l__incgra_label_text_tl
+              {
+                \igrboxset{\l_tmpa_tl{#2}}
+              }
+              {
+                \igrboxset{\l_tmpa_tl{#2}\label{\l__incgra_label_text_tl}}
+              }
+            \igr at output
+            \tl_if_empty:NF \l__incgra_bookmark_heading_text_tl
+              {
+                \tl_set:Nn       \l_tmpa_tl { \bookmark[ }
+                \tl_put_right:NV \l_tmpa_tl \l__incgra_bookmark_heading_options_tl
+                \tl_put_right:Nn \l_tmpa_tl { ,dest=\igrAutoTarget] }
+                \l_tmpa_tl { \l__incgra_bookmark_heading_text_tl }
+              }
+            \bool_gset_false:N \g__incgra_first_include
+          }
+          {
+            \igrboxset{\l_tmpa_tl{#2}}
+            \igr at output
+          }
+      }
+      {
+        \tl_if_empty:NTF \l__incgra_label_text_tl
+          {
+            \igrboxset{\l_tmpa_tl{#2}}
+          }
+          {
+            \igrboxset{\l_tmpa_tl{#2}
+            \label{\l__incgra_label_text_tl}}
+          }
+        \igr at output
+      }
+    \tl_if_empty:NF \l__incgra_bookmark_text_tl
+      {
+        \tl_set:Nn       \l_tmpa_tl { \bookmark[ }
+        \tl_put_right:NV \l_tmpa_tl \l__incgra_bookmark_options_tl
+        \tl_put_right:Nn \l_tmpa_tl { ,dest=\igrAutoTarget] }
+        \l_tmpa_tl{\l__incgra_bookmark_text_tl}
+      }
+  }
+
+\cs_generate_variant:Nn \__incgra_includegraphics:nn { nV }
+
+
+\NewDocumentCommand \incgraph { +O{} O{} m }
+  {
+    \group_begin:
+    \igrset{#1}
+    \bool_gset_false:N \g__incgra_multi_include
+    \tl_clear_new:N \nt
+    \tl_set:Nn \nt {#3}
+    \__incgra_if_file_exist:nTF{#3}
+      {
+        \__incgra_includegraphics:nV {#2} \nt
+      }
+      {}
+    \group_end:
+  }
+
+
+\NewDocumentCommand \incmultigraph { +O{} O{} m m }
+  {
+    \group_begin:
+    \igrset{#1}
+    \bool_gset_true:N \g__incgra_multi_include
+    \bool_gset_true:N \g__incgra_first_include
+    \tl_clear_new:N \nt
+    \tl_clear_new:N \nn
+    \foreach \n [count=\ni] in {#4}
+      {
+        \tl_set:Nn \nt {#3}
+        \tl_set:Nx \nn {\igr at zero@fill{\n}}
+        \__incgra_if_file_exist:nTF{#3}
+          {
+            \__incgra_includegraphics:nV {#2} \nt
+          }
+          {}
+      }
+    \group_end:
+  }
+
+
+\NewDocumentEnvironment{inctext}{ +O{} }
+  {
+    \igrset{#1}
+    \igr at match@hook
+    \igr at nextAutoTarget
+    \clearpage
+    \begin{lrbox}{\igrbox}
+  }
+  {
+    \unskip
+    \tl_if_empty:NF \l__incgra_label_text_tl
+      {
+        \label{\l__incgra_label_text_tl}
+      }
+    \end{lrbox}
+    \igr at rebox
+    \igr at get@box at dimensions
+    \igr at output
+    \tl_if_empty:NF \l__incgra_bookmark_text_tl
+      {
+        \tl_set:Nn       \l_tmpa_tl { \bookmark[ }
+        \tl_put_right:NV \l_tmpa_tl \l__incgra_bookmark_options_tl
+        \tl_put_right:Nn \l_tmpa_tl { ,dest=\igrAutoTarget] }
+        \l_tmpa_tl { \l__incgra_bookmark_text_tl }
+      }
+  }
+
+
+\igrset
+  {
+    include~command/.code =
+      {
+        \cs_set_eq:NN \__incgra_include_graphics:w #1
+      },
+    include~command/.default = \includegraphics,
+    extensions/.code =
+      {
+        \clist_set:Nn \l__incgra_extensions_clist {#1}
+      },
+    extensions~add/.code =
+      {
+        \clist_put_right:Nn \l__incgra_extensions_clist {#1}
+      },
+    extensions~from~graphics/.code=
+      {
+        \cs_if_exist:NT \Gin at extensions
+          {
+            \clist_set:NV \l__incgra_extensions_clist \Gin at extensions
+          }
+      },
+    existence~check/.code =
+      {
+        \cs_set_eq:NN \__incgra_if_file_exist:nTF #1
+      },
+    ignore~on~not~found/.style =
+      {
+        existence~check = \file_if_exist:nTF
+      },
+    ignore~on~not~found~with~extensions/.code =
+      {
+        \cs_set_eq:NN \__incgra_if_file_exist:nTF \__incgra_if_file_exist_extensions:nTF
+        \quark_if_nil:NF { #1 }
+          {
+            \clist_set:Nn \l__incgra_extensions_clist {#1}
+          }
+      },
+    ignore~on~not~found~with~extensions/.default = \q_nil,
+    ignore~on~not~found~with~extensions*/.code =
+      {
+        \cs_set_eq:NN \__incgra_if_file_exist:nTF \__incgra_if_file_exist_extensions_star:nTF
+        \quark_if_nil:NF { #1 }
+          {
+            \clist_set:Nn \l__incgra_extensions_clist {#1}
+          }
+      },
+    ignore~on~not~found~with~extensions*/.default = \q_nil,
+    no~existence~check/.style =
+      {
+        existence~check = \use_ii:nnn
+      },
+    fail~on~not~found/.style = no~existence~check,
+    options/.store~in = \l__incgra_options_tl,
+    options~add/.code =
+      {
+        \tl_if_empty:NTF \l__incgra_options_tl
+          {
+            \tl_set:Nn \l__incgra_options_tl { #1 }
+          }
+          {
+            \tl_put_right:Nn \l__incgra_options_tl { ,#1 }
+          }
+      },
+    bookmark/.store~in                 = \l__incgra_bookmark_text_tl,
+    bookmark~options/.store~in         = \l__incgra_bookmark_options_tl,
+    bookmark~heading/.store~in         = \l__incgra_bookmark_heading_text_tl,
+    bookmark~heading~options/.store~in = \l__incgra_bookmark_heading_options_tl,
+    label/.store~in                    = \l__incgra_label_text_tl,
+  }
+
+\ExplSyntaxOff
+
+
+
+
 \def\igr at make@zerofill#1#2#3#4#5#6#7#8#9{%
   \def\igr at zerofill##1{%
     \ifnum##1<10 #1%
@@ -347,7 +586,7 @@
   }%
 }
 
-\def\igrmakezerofill#1#2{%
+\NewDocumentCommand\igrmakezerofill{mm}{%
   \def\igr at zerofill##1{##1}%
   \ifcase#2\or\or\igr at make@zerofill{0}{}{}{}{}{}{}{}{}%
   \or\igr at make@zerofill{00}{0}{}{}{}{}{}{}{}%
@@ -362,11 +601,11 @@
   \let#1=\igr at zerofill%
 }
 
-\newcommand{\igrsetmatchvalue}[2]{%
+\NewDocumentCommand\igrsetmatchvalue{mm}{%
   \pgfkeyssetvalue{/igrmatch/#1}{#2}%
 }
 
-\newcommand{\igrifmatch}[3]{%
+\NewExpandableDocumentCommand\igrifmatch{mmm}{%
   \pgfkeysifdefined{/igrmatch/#1}{%
     \pgfkeysgetvalue{/igrmatch/#1}{\igrmatchvalue}#2}{#3}%
 }
@@ -378,41 +617,26 @@
   }%
 }
 
-\newcommand{\igrsetmatches}[1]{\pgfkeys{/igrsetmatch/.cd,#1}}
+\NewDocumentCommand\igrsetmatches{m}{\pgfkeys{/igrsetmatch/.cd,#1}}
 
-\newcommand{\igr at no@existence at check}[3]{#2}
 
-
 \igrset{%
-  options/.store in=\igr at options,
-  options add/.code={%
-      \toks0=\expandafter{\igr at options}%
-      \def\temp{#1}\toks1=\expandafter{\temp}%
-      \edef\igr at options{\the\toks0,\the\toks1}},
-  bookmark/.store in=\igr at bookmark@text,
-  bookmark options/.store in=\igr at bookmark@options,
-  bookmark heading/.store in=\igr at bookmark@heading at text,
-  bookmark heading options/.store in=\igr at bookmark@heading at options,
-  label/.store in=\igr at label@text,
   zerofill/.code={\igrmakezerofill{\igr at zero@fill}{#1}},
   set matches/.code=\igrsetmatches{#1},
   hyper/.code={\let\igr at hypertarget=\igr at hyper},
-  no hyper/.code={\let\igr at hypertarget=\igr at empty},
+  no hyper/.code={\def\igr at hypertarget{}},
   if match code/.code args={#1#2#3}{\def\igr at match@hook{\igrifmatch{#1}{#2}{#3}}},
   if match set/.style args={#1#2#3}{if match code={#1}{\igrset{#2}}{\igrset{#3}}},
   if match set bookmark/.style args={#1#2#3}{if match code={#1}{\igrset{bookmark={#2}}}{\igrset{bookmark={#3}}}},
-  disable match/.code={\let\igr at match@hook=\igr at empty},
-  include command/.code={\let\igr at include@graphics=#1},
-  include command/.default=\includegraphics,
-  existence check/.code={\let\igr at if@file at exists=#1},
-  fail on not found/.style={existence check=\igr at no@existence at check},
-  ignore on not found/.style={existence check=\IfFileExists},
+  disable match/.code={\def\igr at match@hook{}},
   pagestyle/.store in=\igrpagestyle,
   target/.code={\igrtargetset{#1}},
   overlay at code/.store in=\igr at tikz@hook,
   overlay/.code={\let\igr at overlay=\igr at overlay@on\igrset{overlay at code={#1}}},
-  overlay page number at/.style={overlay={\node[fill opacity=0.35,draw opacity=0.5,text opacity=1,
-    inner xsep=1em,rounded corners,fill=white,draw=black] at (#1) {\thepage};}},
+  overlay page number options/.store in=\igr at overlay@pagenumber at options,
+  overlay page number at/.style={overlay={%
+    \expandafter\node\expandafter[\igr at overlay@pagenumber at options]
+      at (#1) {\thepage};}},
   overlay page number at top/.style={overlay page number at={\igrBoxWidth/2,\igrBoxHeight-#1}},
   overlay page number at top/.default=1.5cm,
   overlay page number at bottom/.style={overlay page number at={\igrBoxWidth/2,#1}},
@@ -492,11 +716,13 @@
   disable match,
   include command,
   ignore on not found,
+  extensions={.jpg,.png},
   pagestyle=empty,
   overlay at code=,
   no overlay,
   portrait,
   border=0pt,
+  overlay page number options={fill opacity=0.35,draw opacity=0.5,text opacity=1,
+    inner xsep=1em,rounded corners,fill=white,draw=black},
 }
 
-



More information about the tex-live-commits mailing list.