texlive[60150] Master: graphicscache (3aug21)

commits+karl at tug.org commits+karl at tug.org
Tue Aug 3 22:44:46 CEST 2021


Revision: 60150
          http://tug.org/svn/texlive?view=revision&revision=60150
Author:   karl
Date:     2021-08-03 22:44:46 +0200 (Tue, 03 Aug 2021)
Log Message:
-----------
graphicscache (3aug21)

Modified Paths:
--------------
    trunk/Master/tlpkg/bin/tlpkg-ctan-check
    trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/latex/graphicscache/
    trunk/Master/texmf-dist/doc/latex/graphicscache/LICENSE
    trunk/Master/texmf-dist/doc/latex/graphicscache/README.md
    trunk/Master/texmf-dist/doc/latex/graphicscache/graphicscache.pdf
    trunk/Master/texmf-dist/source/latex/graphicscache/
    trunk/Master/texmf-dist/source/latex/graphicscache/graphicscache.dtx
    trunk/Master/texmf-dist/source/latex/graphicscache/graphicscache.ins
    trunk/Master/texmf-dist/tex/latex/graphicscache/
    trunk/Master/texmf-dist/tex/latex/graphicscache/graphicscache.sty
    trunk/Master/tlpkg/tlpsrc/graphicscache.tlpsrc

Added: trunk/Master/texmf-dist/doc/latex/graphicscache/LICENSE
===================================================================
--- trunk/Master/texmf-dist/doc/latex/graphicscache/LICENSE	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/graphicscache/LICENSE	2021-08-03 20:44:46 UTC (rev 60150)
@@ -0,0 +1,29 @@
+BSD 3-Clause License
+
+Copyright (c) 2018, Max Schwarz
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+
+* Neither the name of the copyright holder nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Added: trunk/Master/texmf-dist/doc/latex/graphicscache/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/graphicscache/README.md	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/graphicscache/README.md	2021-08-03 20:44:46 UTC (rev 60150)
@@ -0,0 +1,72 @@
+# graphicscache
+
+This LaTeX package provides caching of `\includegraphics` calls, with several
+useful effects:
+
+* Recompilations are much faster (10x speedup observed)
+* Images can be postprocessed with `ghostscript` before inclusion, thus:
+  * Automatic downscaling to specified DPI
+  * Automatic JPEG compression with configurable quality
+  * Much smaller files (e.g. 10MB instead of 150MB)!
+
+Note: Due to the one-by-one invocation of `pdflatex` and `ghostscript` for
+each graphics element, the first compilation is typically slower than usual.
+
+Note: graphicscache needs the `\write18` call (also called shell escape). This
+is a security risk if you have untrusted TeX sources.
+
+graphicscache supports **PDFLaTeX** and **LuaLaTeX**, **XeLaTeX** is not supported.
+
+## Quickstart
+
+Compile the package using
+
+    latex graphicscache.ins
+
+to generate the file `graphicscache.sty`, which you should place in your TeX
+input path. On Unix systems, this can be done by:
+
+    mkdir -p ~/texmf/tex/latex/graphicscache
+    cp graphicscache.sty ~/texmf/tex/latex/graphicscache/
+    texhash
+
+Or just drop the graphicscache.sty next to your TeX document.
+
+Activate caching with
+
+    \usepackage{graphicscache}
+
+and you are finished. Remember to compile your document with `-shell-escape`,
+like
+
+    pdflatex -shell-escape paper.tex
+
+Most LaTeX editors allow you to enable shell escape in their settings.
+
+Your PDF should now re-compile faster and be significantly smaller!
+
+## Releasing
+
+Another feature is creating a "release" tarball containing your TeX sources
+and the downscaled images. **NOTE**: This is not required for using the caching
+& compression features of graphicscache!
+
+Just use the `release.sh` shell script in your source
+directory. In this case it is recommended to place the `graphicscache.sty` file
+in your source tree, since your release target will probably not have it.
+
+    # first copy graphicscache.sty and release.sh into your paper directory
+    cp ...
+    
+    # then release!
+    bash release.sh paper.tex
+
+After checking `test_release/submission.pdf`, the file `release.tar` can be uploaded
+to arXiv (they will extract it automatically).
+
+## Documentation
+
+For more information, check the package documentation, which you can generate
+with:
+
+    pdflatex graphicscache.dtx


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

Index: trunk/Master/texmf-dist/doc/latex/graphicscache/graphicscache.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/graphicscache/graphicscache.pdf	2021-08-02 23:48:45 UTC (rev 60149)
+++ trunk/Master/texmf-dist/doc/latex/graphicscache/graphicscache.pdf	2021-08-03 20:44:46 UTC (rev 60150)

Property changes on: trunk/Master/texmf-dist/doc/latex/graphicscache/graphicscache.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/source/latex/graphicscache/graphicscache.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/graphicscache/graphicscache.dtx	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex/graphicscache/graphicscache.dtx	2021-08-03 20:44:46 UTC (rev 60150)
@@ -0,0 +1,596 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2021 by Max Schwarz <max.schwarz at online.de>
+% ---------------------------------------------------------------------------
+% This work may be distributed and/or modified under the
+% conditions of the BSD 3-clause license. See LICENSE for details.
+%
+% The Current Maintainer of this work is Max Schwarz.
+%
+% This work consists of the files graphicscache.dtx and graphicscache.ins
+% and the derived filebase graphicscache.sty.
+%
+% \fi
+%
+% \iffalse
+%<*driver>
+\ProvidesFile{graphicscache.dtx}
+%</driver>
+%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+%<package>\ProvidesPackage{graphicscache}
+%<*package>
+    [2021/08/02 v0.3 Cache includegraphics calls]
+%</package>
+%
+%<*driver>
+\documentclass[a4paper,11pt]{ydoc}
+\usepackage{ydoc-expl}
+% \usepackage{graphicscache}
+\usepackage[capitalize]{cleveref}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\begin{document}
+  \DocInput{graphicscache.dtx}
+  \PrintChanges
+  \PrintIndex
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{0}
+%
+% \CharacterTable
+%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%   Digits        \0\1\2\3\4\5\6\7\8\9
+%   Exclamation   \!     Double quote  \"     Hash (number) \#
+%   Dollar        \$     Percent       \%     Ampersand     \&
+%   Acute accent  \'     Left paren    \(     Right paren   \)
+%   Asterisk      \*     Plus          \+     Comma         \,
+%   Minus         \-     Point         \.     Solidus       \/
+%   Colon         \:     Semicolon     \;     Less than     \<
+%   Equals        \=     Greater than  \>     Question mark \?
+%   Commercial at \@     Left bracket  \[     Backslash     \\
+%   Right bracket \]     Circumflex    \^     Underscore    \_
+%   Grave accent  \`     Left brace    \{     Vertical bar  \|
+%   Right brace   \}     Tilde         \~}
+%
+%
+% \changes{v0.1}{2018/10/03}{Initial version}
+% \changes{v0.2}{2021/04/08}{Better compatibility with different graphicx versions}
+% \changes{v0.3}{2021/08/02}{Added cachedir option}
+%
+% \DoNotIndex{\newcommand,\newenvironment}
+%
+% \providecommand*{\url}{\texttt}
+% \GetFileInfo{graphicscache.dtx}
+% \title{The \textsf{graphicscache} package}
+% \author{Max Schwarz \\ \url{max.schwarz at online.de}}
+% \date{\fileversion~from \filedate}
+%
+% \maketitle
+%
+% \section{Introduction}
+%
+% The \texttt{graphicx} package offers the versatile |\includegraphics| command,
+% which offers image transformations like scaling, cropping, rotation, etc.
+% However, these transformations have to be performed on every compilation of
+% the document. Users can avoid this with the |draft| option at the cost of
+% not seeing the images.
+%
+% Furthermore, images are always included as-is with full resolution, even if
+% they are shown at a very small actual size. This increases compilation time
+% again and leads to large output files. A typical solution is to resize the
+% input images to a lower resolution---but here, the user has to manually
+% calculate or guess the required resolution. What we really want is to specify
+% a \textit{document DPI}, which automatically leads to the correct image
+% resolution. This is possible using post-processing tools like ghostscript,
+% but these do not help with compilation times and are typically not applicable
+% for preprint servers or journals which require LaTeX sources.
+%
+% |graphicscache| aims to solve these problems by decoupling the rendering
+% of images from the actual inclusion. Images are rendered to the correct size
+% using a separate |pdflatex| call, post-processed with ghostscript, and then
+% included as PDF. As a bonus, the resulting PDF is cached, resulting in very
+% fast recompilation times.
+%
+% \section{Usage}
+%
+% |graphicscache| requires the usage of the |\write18| call (also called shell
+% escape). For |pdflatex|, you have to specify the |-shell-escape| argument
+% during compilation. After enabling shell-escape, simply call
+%
+% \begin{example}
+%   |\usepackage{graphicscache}|
+% \end{example}
+%
+% to enable caching.
+%
+% |graphicscache| overrides the |\includegraphics| command so that you can use
+% it as usual. Internally, it calculates a hash from the |includegraphics|
+% arguments and the package options to generate a cache key.
+% If you change the input image file or the options, the file will be
+% automatically rendered again.
+%
+% \textbf{Note:} The first compilation process might take a while, since the
+% cached PDFs are generated one-by-one.
+%
+% \subsection{Generated files}
+%
+% |graphicscache| will create a folder called |graphicscache| in the compilation
+% directory. Additionally, latex output files under the jobname
+% |graphicscacheout| will be created. All of these files and folders are
+% temporary and can be deleted safely (at the cost of re-creating the cache).
+%
+% \subsection{Package options}
+%
+% \DescribeKey{compress}'=false|flat|jpeg'
+% Specifies the image compression algorithm. If |false|, the ghostscript call
+% is skipped, thus embedding the image at its original resolution and format.
+% If |flat|, the lossless |FlatEncode| algorithm is chosen. Finally, |jpeg|
+% indicates that JPEG encoding using |DCTEncode| is to be performed.
+%
+% \textbf{Note:} In the |flat| case, the images are still downsampled to match
+% the DPI specified using the |dpi| key.
+%
+% \DescribeKey{dpi}'='<number>
+% Controls the image resolution in dots per inch. The default value is 300.
+% This option only takes effect if |compress| is not |false|.
+%
+% \DescribeKey{qfactor}'='<number>
+% This controls the quality parameter of the JPEG encoder (see |compress|).
+% Smaller values give higher quality. The default value is 0.15, which
+% corresponds to the ``Maximum'' setting mentioned by Adobe.
+%
+% \DescribeKey{listing}'=true|false'
+% If enabled, |graphicscache| will write an extra |.graphicscache| file with
+% mappings from |includegraphics| arguments to cache files. This can be used
+% to produce a version of the TeX source code that directly references the
+% PDF files instead of the original sources.
+%
+% \DescribeKey{render}'=true|false'
+% Controls whether rendering is allowed. The default is |true|. If |false|,
+% |graphicscache| is not allowed to create new cache files. Instead, it will
+% attempt to use the appropriate cache file. If it does not exist,
+% |graphicscache| will fall back to |graphicx| in-place rendering.
+% This can be used to perform a final release (see \cref{sec:release}).
+%
+% \DescribeKey{cachedir}'='<dir>
+% This key can be used to move the cache directory to another location.
+% The default value is |graphicscache|.
+%
+% \subsection{Macros}
+%
+% \DescribeMacro{\includegraphics}[args]{path}
+% This behaves exactly like the original |graphicx| |\includegraphics|.
+% However, only a limited number of keys in |args| is supported at the moment:
+% |width|, |height|, |trim|, |clip|, |angle|, |origin|, |keepaspectratio|,
+% |scale|. In addition, you can specify any of the package options above
+% here as well. For example, you might want to disable compression for
+% a particular image with
+%
+% \begin{example}
+%   |\includegraphics[width=...,compress=false]{...}|.
+% \end{example}
+%
+% \StopEventually{}
+%
+% \section{Tips \& Tricks}
+% \subsection{Releasing your manuscript}
+% \label{sec:release}
+%
+% In case you want to upload your manuscript to a journal or preprint server,
+% you can use |graphicscache| to make your work easier:
+% \begin{enumerate}
+%  \item Use |latexpand| to strip comments and flatten your tex sources into
+%        one file (optional).
+%  \item Compile the file as usual to generate the cache files.
+%  \item Compile the file again with the |-recorder| command line option.
+%        Here, we want to hide accesses of the original image files
+%        (|render=false|), but changing the package options will change the
+%        cache hash. For this purpose, |graphicspath| also reacts to a global
+%        definition of |\graphicscache at inhibit|, which has the same effect as
+%        |render=false|.
+%  \item The generated |.fls| file will contain all cache files that are needed
+%        to compile your manuscript. Package them and your |.tex| file.
+% \end{enumerate}
+%
+% This process is automated in the |release.sh| script included in the
+% distribution.
+%
+% \section{Implementation}
+%
+% \iffalse
+%<*package>
+% \fi
+%
+%    \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}[1994/06/01]
+\ProvidesPackage{graphicscache}[2018/10/02 Graphics Cache]
+\RequirePackage{graphicx}
+\RequirePackage{xstring}
+\RequirePackage{filemod}
+\RequirePackage{letltxmacro}
+\RequirePackage{pgfopts}
+\RequirePackage{ifplatform}
+\RequirePackage{pdftexcmds}
+\RequirePackage{ltxcmds}
+\newif\ifgraphicscache at render
+\newif\ifgraphicscache at compress
+\newif\ifgraphicscache at listing
+\newif\ifgraphicscache at hashshortnames
+\def\graphicscache at graphicsargs{}
+\newlength\graphicscache at tmplen
+\newcommand{\graphicscache at addarg}[1]{%
+  \ifx\graphicscache at graphicsargs\empty
+    \edef\graphicscache at graphicsargs{#1}%
+  \else
+    \edef\graphicscache at graphicsargs{\graphicscache at graphicsargs,#1}%
+  \fi
+}
+\pgfkeys{
+  /graphicscache/.cd,
+  render/.is if=graphicscache at render,
+  render=true,
+%    \end{macrocode}
+%    \begin{macrocode}
+  cachedir/.store in=\graphicscache at cachedir,
+  cachedir={graphicscache},
+%    \end{macrocode}
+%    \begin{macrocode}
+  compress/.is choice,
+  compress/false/.code={\graphicscache at compressfalse},
+  compress/jpeg/.code={\graphicscache at compresstrue \def\graphicscache at compress@mode{DCTEncode}},
+  compress/flat/.code={\graphicscache at compresstrue \def\graphicscache at compress@mode{FlatEncode}},
+  compress=jpeg,
+%    \end{macrocode}
+%    \begin{macrocode}
+  dpi/.store in=\graphicscache at dpi,
+  dpi=300,
+%    \end{macrocode}
+%    \begin{macrocode}
+  qfactor/.store in=\graphicscache at qfactor,
+  qfactor={0.15},
+%    \end{macrocode}
+%    \begin{macrocode}
+  hashshortnames/.is if=graphicscache at hashshortnames,
+  hashshortnames=false,
+%    \end{macrocode}
+% We now define the list of supported graphicx arguments:
+%    \begin{macrocode}
+  width/.code={%
+    \setlength\graphicscache at tmplen{#1}%
+    \graphicscache at addarg{width=\the\graphicscache at tmplen}%
+  },
+  height/.code={%
+    \setlength\graphicscache at tmplen{#1}%
+    \graphicscache at addarg{height=\the\graphicscache at tmplen}%
+  },
+  trim/.code={\graphicscache at addarg{trim=#1}},
+  clip/.code={\graphicscache at addarg{clip}},
+  angle/.code={%
+    \edef\graphicscache at tmp{#1}%
+    \graphicscache at addarg{angle=\graphicscache at tmp}%
+  },
+  origin/.code={\graphicscache at addarg{origin=#1}},
+  keepaspectratio/.code={\graphicscache at addarg{keepaspectratio}},
+  scale/.code={%
+    \edef\graphicscache at tmp{#1}%
+    \graphicscache at addarg{scale=\graphicscache at tmp}%
+  },
+  page/.code={%
+    \edef\graphicscache at tmp{#1}%
+    \graphicscache at addarg{page=\graphicscache at tmp}%
+  },
+  listing/.is if=graphicscache at listing,
+  listing=false,
+%
+% adjustbox package
+%
+  frame/.code={%
+    \edef\graphicscache at tmp{#1}%
+    \graphicscache at addarg{frame=\graphicscache at tmp}%
+  },
+  valign/.code={%
+    \edef\graphicscache at tmp{#1}%
+    \graphicscache at addarg{valign=\graphicscache at tmp}%
+  },
+  raise/.code={%
+    \edef\graphicscache at tmp{#1}%
+    \graphicscache at addarg{raise=\graphicscache at tmp}%
+  },
+}
+\ProcessPgfOptions{/graphicscache}\relax
+\ifdefined\graphicscache at inhibit
+  \pgfkeys{/graphicscache/render=false}%
+\fi
+\ifgraphicscache at listing
+  \newwrite\graphicscache at listout
+  \immediate\openout\graphicscache at listout=\jobname.graphicscache
+\fi
+%    \end{macrocode}
+%
+% \begin{macro}{\graphicscache at dorender}
+%    Here, we actually perform the rendering. Sadly, this is quite complex due
+%    to cross-platform support.
+%    \begin{macrocode}
+\newcommand{\graphicscache at dorender}{%
+  \message{Rendering \graphicscache at outputhash: \graphicscache at fname\space with args: \graphicscache at graphicsargs\space (master file)}%
+  \ifwindows
+    \immediate\write18{md "\graphicscache at cachedir" 2>NUL}%
+  \else
+    \immediate\write18{mkdir -p "\graphicscache at cachedir"}%
+  \fi
+%    \end{macrocode}
+% First, render the graphics.
+%    \begin{macrocode}
+  \ifwindows
+    \immediate\write18{del /q \graphicscache at cachedir\string\graphicscacheout.pdf}
+    \immediate\write18{pdflatex
+      -jobname graphicscacheout
+      -interaction nonstopmode
+      -output-directory "\graphicscache at cachedir"
+      "\string\documentclass{standalone}
+      \string\usepackage{graphicx}
+      \string\usepackage[export]{adjustbox}
+      \string\begin{document}\string\includegraphics[\graphicscache at graphicsargs]{\graphicscache at fname}\string\end{document}"
+    }%
+    \IfFileExists{\graphicscache at cachedir/graphicscacheout.pdf}{}{%
+      \PackageError{graphicscache}{External pdflatex call failed (see above)}{}%
+      \def\graphicscache at output{}%
+    }
+  \else
+    \immediate\write18{pdflatex
+      -jobname graphicscacheout
+      -interaction nonstopmode
+      -output-directory "\graphicscache at cachedir"
+      '\string\documentclass{standalone}
+      \string\usepackage{graphicx}
+      \string\usepackage[export]{adjustbox}
+      \string\begin{document}\string\includegraphics[\graphicscache at graphicsargs]{\graphicscache at fname}\string\end{document}'
+      > /dev/null || rm "\graphicscache at cachedir/graphicscacheout.pdf"
+    }%
+  \fi
+%    \end{macrocode}
+% Now, call ghostscript for compression---if required, otherwise just copy the
+% file.
+%    \begin{macrocode}
+  \ifgraphicscache at compress
+    \message{With compression: \graphicscache at compress@mode}%
+    \ifwindows
+      \immediate\write18{mgs
+        -sOutputFile=\graphicscache at output\space
+        -sDEVICE=pdfwrite
+        -dCompatibilityLevel=1.4
+        -dPDFSETTINGS=/prepress
+        -dNOPAUSE -dQUIET -dBATCH
+        -c ".setpdfwrite <<
+          /AutoFilterColorImages false
+          /EncodeColorImages true
+          /ColorImageFilter /\graphicscache at compress@mode\space
+          /ColorImageDict << /ColorTransform 1 /QFactor \graphicscache at qfactor\space /Blend 1 /HSamples [1 1 1 1] /VSamples [1 1 1 1] >>
+          /ColorImageResolution \graphicscache at dpi\space
+          /AutoFilterGrayImages false
+          /EncodeGrayImages true
+          /GrayImageFilter /\graphicscache at compress@mode\space
+          /GrayImageDict << /ColorTransform 1 /QFactor \graphicscache at qfactor\space /Blend 1 /HSamples [1 1 1 1] /VSamples [1 1 1 1] >>
+          /GrayImageResolution \graphicscache at dpi\space
+        >> setdistillerparams"
+        -f \graphicscache at cachedir\string\graphicscacheout.pdf
+      }%
+    \else
+      \immediate\write18{gs
+        -sOutputFile=\graphicscache at output\space
+        -sDEVICE=pdfwrite
+        -dCompatibilityLevel=1.4
+        -dPDFSETTINGS=/prepress
+        -dNOPAUSE -dQUIET -dBATCH
+        -c '.setpdfwrite <<
+          /AutoFilterColorImages false
+          /EncodeColorImages true
+          /ColorImageFilter /\graphicscache at compress@mode\space
+          /ColorImageDict << /ColorTransform 1 /QFactor \graphicscache at qfactor\space /Blend 1 /HSamples [1 1 1 1] /VSamples [1 1 1 1] >>
+          /ColorImageResolution \graphicscache at dpi\space
+          /AutoFilterGrayImages false
+          /EncodeGrayImages true
+          /GrayImageFilter /\graphicscache at compress@mode\space
+          /GrayImageDict << /ColorTransform 1 /QFactor \graphicscache at qfactor\space /Blend 1 /HSamples [1 1 1 1] /VSamples [1 1 1 1] >>
+          /GrayImageResolution \graphicscache at dpi\space
+        >> setdistillerparams'
+        -f \graphicscache at cachedir/graphicscacheout.pdf || rm \graphicscache at output
+      }%
+    \fi
+  \else
+    \message{Direct}%
+    \ifwindows
+      \immediate\write18{
+        copy \graphicscache at cachedir\string\graphicscacheout.pdf \graphicscache at output
+      }%
+    \else
+      \immediate\write18{
+        cp \graphicscache at cachedir/graphicscacheout.pdf \graphicscache at output
+      }%
+    \fi
+  \fi
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% save original |\includegraphics|
+%    \begin{macrocode}
+\LetLtxMacro\graphicscache at includegraphics\includegraphics%
+\newcommand\graphicscache at native{%
+  \expandafter\graphicscache at includegraphics\expandafter[\graphicscache at graphicsargs]{\graphicscache at fname}%
+}
+%    \end{macrocode}
+%
+% \begin{macro}{\graphicscache at work}
+%    This macro performs the update check: Do we need to render the file again
+%    or can we just include the cached version?
+%    \begin{macrocode}
+\newcommand{\graphicscache at work}{%
+  \ifgraphicscache at render
+%    \end{macrocode}
+% Check if output file exists and is newer than input
+%    \begin{macrocode}
+    \filemodcmp{\graphicscache at fname}{\graphicscache at output}{% input is newer
+      \graphicscache at dorender%
+    }{% Output is newer
+      \message{Already have \graphicscache at outputhash: \graphicscache at fname}%
+    }%
+%    \end{macrocode}
+% If it still does not exist, we are likely in a strange environment
+% (e.g. tabu). In that case, fall back to original includegraphics.
+%    \begin{macrocode}
+    \filemodcmp{\graphicscache at fname}{\graphicscache at output}{% input is newer/output does not exist
+      \graphicscache at native
+    }{% otherwise, use the generated file!
+      \graphicscache at includegraphics{\graphicscache at output}%
+    }%
+  \else
+%    \end{macrocode}
+% Here, we just look if the output file exists. If not, fall back to
+% original includegraphics.
+%    \begin{macrocode}
+    \IfFileExists{\graphicscache at output}{%
+      \graphicscache at includegraphics{\graphicscache at output}%
+    }{%
+      \PackageWarning{graphicscache}{Could not find cache file \graphicscache at output, for \graphicscache at fname, falling back to native...}{}%
+      \graphicscache at native
+    }%
+  \fi
+}
+%    \end{macrocode}
+%  \end{macro}
+%  \begin{macro}{\graphicscache at getfname}
+%    This macro resolves base names (i.e. includegraphics arguments with or
+%    without extensions) to relative paths.
+%    \begin{macrocode}
+\catcode`\*=11
+\newif\ifgraphicscache at exists
+\newcommand{\graphicscache at getfname}[1]{%
+  \ifx\detokenize\@undefined\else
+    \edef\Gin at extensions{\detokenize\expandafter{\Gin at extensions}}%
+  \fi
+  \begingroup
+  \global\graphicscache at existstrue
+  \let\input at path\Ginput at path
+  \ltx at ifpackagelater{graphics}{2017/06/26}{%
+    \set at curr@file{#1}%
+    \expandafter\filename at parse\expandafter{\@curr at file}%
+    \ifx\filename at ext\Gin at gzext
+      \expandafter\filename at parse\expandafter{\filename at base}%
+      \ifx\filename at ext\relax
+        \let\filename at ext\Gin at gzext
+      \else
+        \edef\Gin at ext{\Gin at ext\Gin at sepdefault\Gin at gzext}%
+      \fi
+    \fi
+  }{%
+    \filename at parse{#1}%
+  }%
+  \ifx\filename at ext\relax
+    \@for\Gin at temp:=\Gin at extensions\do{%
+      \ifx\Gin at ext\relax
+        \Gin at getbase\Gin at temp
+      \fi}%
+  \else
+    \Gin at getbase{\Gin at sepdefault\filename at ext}%
+    \ltx at ifpackagelater{graphics}{2017/06/26}{%
+      \ifx\Gin at ext\relax
+      \let\Gin at savedbase\filename at base
+      \let\Gin at savedext\filename at ext
+        \edef\filename at base{\filename at base\Gin at sepdefault\filename at ext}%
+        \let\filename at ext\relax
+         \@for\Gin at temp:=\Gin at extensions\do{%
+            \ifx\Gin at ext\relax
+              \Gin at getbase\Gin at temp
+            \fi}%
+        \ifx\Gin at ext\relax
+          \let\filename at base\Gin at savedbase
+          \let\filename at ext\Gin at savedext
+        \fi
+      \fi
+    }{}%
+  \fi
+  \ifx\Gin at ext\relax
+    \global\graphicscache at existsfalse
+  \else
+    \@ifundefined{Gin at rule@\Gin at ext}%
+      {\global\graphicscache at existsfalse}%
+      {}%
+  \fi
+  \ifgraphicscache at exists
+    \xdef\graphicscache at fname{\Gin at base\Gin at ext}%
+  \fi
+  \endgroup
+}
+\catcode`\*=12
+%    \end{macrocode}
+%  \end{macro}
+%  \begin{macro}{\includegraphics}
+%    Main entry point.
+%    \begin{macrocode}
+\renewcommand{\includegraphics}[2][]{%
+  \begingroup
+  \expandarg
+%    \end{macrocode}
+% Hash everything!
+%    \begin{macrocode}
+  \edef\graphicscache at options{\@nameuse{opt at graphicscache.sty}}%
+  \pgfkeys{/graphicscache/.cd,#1}%
+%    \end{macrocode}
+% If we are rendering, we need the actual filename, so that we can check
+% modification times. Otherwise, just assume the file exists, |\includegraphics|
+% will throw an error itself otherwise.
+%    \begin{macrocode}
+  \ifgraphicscache at render
+    \graphicscache at getfname{#2}%
+  \else
+    \edef\graphicscache at fname{#2}%
+    \graphicscache at existstrue
+  \fi
+  \ifgraphicscache at exists
+    \ifgraphicscache at hashshortnames
+      \edef\graphicscache at hashedname{#2}%
+    \else
+      \edef\graphicscache at hashedname{\graphicscache at fname}%
+    \fi
+    \edef\graphicscache at outputhash{\pdf at mdfivesum{\graphicscache at options\graphicscache at graphicsargs\graphicscache at hashedname}}%
+    \edef\graphicscache at output{\graphicscache at cachedir/\graphicscache at outputhash.pdf}%
+    \ifgraphicscache at listing
+      \message{graphicscache: includegraphics\{#2\} => \graphicscache at output}%
+      \immediate\write\graphicscache at listout{#2 \graphicscache at fname\space \graphicscache at output}%
+    \fi
+    \graphicscache at work
+  \else
+    \PackageError{graphicscache}{Could not find file #2}{}%
+  \fi
+  \endgroup
+}
+%    \end{macrocode}
+%  \end{macro}
+%  \begin{macro}{\includegraphicscache}
+%    \begin{macrocode}
+\newcommand{\includegraphicscache}[3][]{%
+  \begingroup
+  \expandarg
+  \pgfkeys{/graphicscache/.cd,#2}%
+  \includegraphics[#1]{#3}%
+  \endgroup
+}
+%    \end{macrocode}
+% \end{macro}
+%
+%    \begin{macrocode}
+\endinput
+%    \end{macrocode}
+
+%
+% \iffalse
+%</package>
+% \fi
+%
+% \Finale
+\endinput


Property changes on: trunk/Master/texmf-dist/source/latex/graphicscache/graphicscache.dtx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/source/latex/graphicscache/graphicscache.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/graphicscache/graphicscache.ins	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex/graphicscache/graphicscache.ins	2021-08-03 20:44:46 UTC (rev 60150)
@@ -0,0 +1,35 @@
+\input docstrip.tex
+\keepsilent
+
+\usedir{tex/latex/graphicscache}
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 2021 by Max Schwarz <max.schwarz at online.de>
+based on the sty2dtx template by Scott Pakin <scott+dtx at pakin.org>.
+
+This file may be distributed and/or modified under the conditions of
+the BSD 3-clause license (see LICENSE).
+
+\endpreamble
+
+\generate{\file{graphicscache.sty}{\from{graphicscache.dtx}{package}}}
+
+\obeyspaces
+\Msg{***************************************************************}
+\Msg{*                                                             *}
+\Msg{* To finish the installation you have to move the following   *}
+\Msg{* file into a directory searched by TeX:                      *}
+\Msg{*                                                             *}
+\Msg{*     graphicscache.sty                                       *}
+\Msg{*                                                             *}
+\Msg{* To produce the documentation run the file graphicscache.dtx *}
+\Msg{* through LaTeX.                                              *}
+\Msg{*                                                             *}
+\Msg{* Happy TeXing!                                               *}
+\Msg{*                                                             *}
+\Msg{***************************************************************}
+
+\endbatchfile

Added: trunk/Master/texmf-dist/tex/latex/graphicscache/graphicscache.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/graphicscache/graphicscache.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/graphicscache/graphicscache.sty	2021-08-03 20:44:46 UTC (rev 60150)
@@ -0,0 +1,322 @@
+%%
+%% This is file `graphicscache.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% graphicscache.dtx  (with options: `package')
+%% 
+%% This is a generated file.
+%% 
+%% Copyright (C) 2021 by Max Schwarz <max.schwarz at online.de>
+%% based on the sty2dtx template by Scott Pakin <scott+dtx at pakin.org>.
+%% 
+%% This file may be distributed and/or modified under the conditions of
+%% the BSD 3-clause license (see LICENSE).
+%% 
+\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+\ProvidesPackage{graphicscache}
+    [2021/08/02 v0.3 Cache includegraphics calls]
+\NeedsTeXFormat{LaTeX2e}[1994/06/01]
+\ProvidesPackage{graphicscache}[2018/10/02 Graphics Cache]
+\RequirePackage{graphicx}
+\RequirePackage{xstring}
+\RequirePackage{filemod}
+\RequirePackage{letltxmacro}
+\RequirePackage{pgfopts}
+\RequirePackage{ifplatform}
+\RequirePackage{pdftexcmds}
+\RequirePackage{ltxcmds}
+\newif\ifgraphicscache at render
+\newif\ifgraphicscache at compress
+\newif\ifgraphicscache at listing
+\newif\ifgraphicscache at hashshortnames
+\def\graphicscache at graphicsargs{}
+\newlength\graphicscache at tmplen
+\newcommand{\graphicscache at addarg}[1]{%
+  \ifx\graphicscache at graphicsargs\empty
+    \edef\graphicscache at graphicsargs{#1}%
+  \else
+    \edef\graphicscache at graphicsargs{\graphicscache at graphicsargs,#1}%
+  \fi
+}
+\pgfkeys{
+  /graphicscache/.cd,
+  render/.is if=graphicscache at render,
+  render=true,
+  cachedir/.store in=\graphicscache at cachedir,
+  cachedir={graphicscache},
+  compress/.is choice,
+  compress/false/.code={\graphicscache at compressfalse},
+  compress/jpeg/.code={\graphicscache at compresstrue \def\graphicscache at compress@mode{DCTEncode}},
+  compress/flat/.code={\graphicscache at compresstrue \def\graphicscache at compress@mode{FlatEncode}},
+  compress=jpeg,
+  dpi/.store in=\graphicscache at dpi,
+  dpi=300,
+  qfactor/.store in=\graphicscache at qfactor,
+  qfactor={0.15},
+  hashshortnames/.is if=graphicscache at hashshortnames,
+  hashshortnames=false,
+  width/.code={%
+    \setlength\graphicscache at tmplen{#1}%
+    \graphicscache at addarg{width=\the\graphicscache at tmplen}%
+  },
+  height/.code={%
+    \setlength\graphicscache at tmplen{#1}%
+    \graphicscache at addarg{height=\the\graphicscache at tmplen}%
+  },
+  trim/.code={\graphicscache at addarg{trim=#1}},
+  clip/.code={\graphicscache at addarg{clip}},
+  angle/.code={%
+    \edef\graphicscache at tmp{#1}%
+    \graphicscache at addarg{angle=\graphicscache at tmp}%
+  },
+  origin/.code={\graphicscache at addarg{origin=#1}},
+  keepaspectratio/.code={\graphicscache at addarg{keepaspectratio}},
+  scale/.code={%
+    \edef\graphicscache at tmp{#1}%
+    \graphicscache at addarg{scale=\graphicscache at tmp}%
+  },
+  page/.code={%
+    \edef\graphicscache at tmp{#1}%
+    \graphicscache at addarg{page=\graphicscache at tmp}%
+  },
+  listing/.is if=graphicscache at listing,
+  listing=false,
+  frame/.code={%
+    \edef\graphicscache at tmp{#1}%
+    \graphicscache at addarg{frame=\graphicscache at tmp}%
+  },
+  valign/.code={%
+    \edef\graphicscache at tmp{#1}%
+    \graphicscache at addarg{valign=\graphicscache at tmp}%
+  },
+  raise/.code={%
+    \edef\graphicscache at tmp{#1}%
+    \graphicscache at addarg{raise=\graphicscache at tmp}%
+  },
+}
+\ProcessPgfOptions{/graphicscache}\relax
+\ifdefined\graphicscache at inhibit
+  \pgfkeys{/graphicscache/render=false}%
+\fi
+\ifgraphicscache at listing
+  \newwrite\graphicscache at listout
+  \immediate\openout\graphicscache at listout=\jobname.graphicscache
+\fi
+\newcommand{\graphicscache at dorender}{%
+  \message{Rendering \graphicscache at outputhash: \graphicscache at fname\space with args: \graphicscache at graphicsargs\space (master file)}%
+  \ifwindows
+    \immediate\write18{md "\graphicscache at cachedir" 2>NUL}%
+  \else
+    \immediate\write18{mkdir -p "\graphicscache at cachedir"}%
+  \fi
+  \ifwindows
+    \immediate\write18{del /q \graphicscache at cachedir\string\graphicscacheout.pdf}
+    \immediate\write18{pdflatex
+      -jobname graphicscacheout
+      -interaction nonstopmode
+      -output-directory "\graphicscache at cachedir"
+      "\string\documentclass{standalone}
+      \string\usepackage{graphicx}
+      \string\usepackage[export]{adjustbox}
+      \string\begin{document}\string\includegraphics[\graphicscache at graphicsargs]{\graphicscache at fname}\string\end{document}"
+    }%
+    \IfFileExists{\graphicscache at cachedir/graphicscacheout.pdf}{}{%
+      \PackageError{graphicscache}{External pdflatex call failed (see above)}{}%
+      \def\graphicscache at output{}%
+    }
+  \else
+    \immediate\write18{pdflatex
+      -jobname graphicscacheout
+      -interaction nonstopmode
+      -output-directory "\graphicscache at cachedir"
+      '\string\documentclass{standalone}
+      \string\usepackage{graphicx}
+      \string\usepackage[export]{adjustbox}
+      \string\begin{document}\string\includegraphics[\graphicscache at graphicsargs]{\graphicscache at fname}\string\end{document}'
+      > /dev/null || rm "\graphicscache at cachedir/graphicscacheout.pdf"
+    }%
+  \fi
+  \ifgraphicscache at compress
+    \message{With compression: \graphicscache at compress@mode}%
+    \ifwindows
+      \immediate\write18{mgs
+        -sOutputFile=\graphicscache at output\space
+        -sDEVICE=pdfwrite
+        -dCompatibilityLevel=1.4
+        -dPDFSETTINGS=/prepress
+        -dNOPAUSE -dQUIET -dBATCH
+        -c ".setpdfwrite <<
+          /AutoFilterColorImages false
+          /EncodeColorImages true
+          /ColorImageFilter /\graphicscache at compress@mode\space
+          /ColorImageDict << /ColorTransform 1 /QFactor \graphicscache at qfactor\space /Blend 1 /HSamples [1 1 1 1] /VSamples [1 1 1 1] >>
+          /ColorImageResolution \graphicscache at dpi\space
+          /AutoFilterGrayImages false
+          /EncodeGrayImages true
+          /GrayImageFilter /\graphicscache at compress@mode\space
+          /GrayImageDict << /ColorTransform 1 /QFactor \graphicscache at qfactor\space /Blend 1 /HSamples [1 1 1 1] /VSamples [1 1 1 1] >>
+          /GrayImageResolution \graphicscache at dpi\space
+        >> setdistillerparams"
+        -f \graphicscache at cachedir\string\graphicscacheout.pdf
+      }%
+    \else
+      \immediate\write18{gs
+        -sOutputFile=\graphicscache at output\space
+        -sDEVICE=pdfwrite
+        -dCompatibilityLevel=1.4
+        -dPDFSETTINGS=/prepress
+        -dNOPAUSE -dQUIET -dBATCH
+        -c '.setpdfwrite <<
+          /AutoFilterColorImages false
+          /EncodeColorImages true
+          /ColorImageFilter /\graphicscache at compress@mode\space
+          /ColorImageDict << /ColorTransform 1 /QFactor \graphicscache at qfactor\space /Blend 1 /HSamples [1 1 1 1] /VSamples [1 1 1 1] >>
+          /ColorImageResolution \graphicscache at dpi\space
+          /AutoFilterGrayImages false
+          /EncodeGrayImages true
+          /GrayImageFilter /\graphicscache at compress@mode\space
+          /GrayImageDict << /ColorTransform 1 /QFactor \graphicscache at qfactor\space /Blend 1 /HSamples [1 1 1 1] /VSamples [1 1 1 1] >>
+          /GrayImageResolution \graphicscache at dpi\space
+        >> setdistillerparams'
+        -f \graphicscache at cachedir/graphicscacheout.pdf || rm \graphicscache at output
+      }%
+    \fi
+  \else
+    \message{Direct}%
+    \ifwindows
+      \immediate\write18{
+        copy \graphicscache at cachedir\string\graphicscacheout.pdf \graphicscache at output
+      }%
+    \else
+      \immediate\write18{
+        cp \graphicscache at cachedir/graphicscacheout.pdf \graphicscache at output
+      }%
+    \fi
+  \fi
+}
+\LetLtxMacro\graphicscache at includegraphics\includegraphics%
+\newcommand\graphicscache at native{%
+  \expandafter\graphicscache at includegraphics\expandafter[\graphicscache at graphicsargs]{\graphicscache at fname}%
+}
+\newcommand{\graphicscache at work}{%
+  \ifgraphicscache at render
+    \filemodcmp{\graphicscache at fname}{\graphicscache at output}{% input is newer
+      \graphicscache at dorender%
+    }{% Output is newer
+      \message{Already have \graphicscache at outputhash: \graphicscache at fname}%
+    }%
+    \filemodcmp{\graphicscache at fname}{\graphicscache at output}{% input is newer/output does not exist
+      \graphicscache at native
+    }{% otherwise, use the generated file!
+      \graphicscache at includegraphics{\graphicscache at output}%
+    }%
+  \else
+    \IfFileExists{\graphicscache at output}{%
+      \graphicscache at includegraphics{\graphicscache at output}%
+    }{%
+      \PackageWarning{graphicscache}{Could not find cache file \graphicscache at output, for \graphicscache at fname, falling back to native...}{}%
+      \graphicscache at native
+    }%
+  \fi
+}
+\catcode`\*=11
+\newif\ifgraphicscache at exists
+\newcommand{\graphicscache at getfname}[1]{%
+  \ifx\detokenize\@undefined\else
+    \edef\Gin at extensions{\detokenize\expandafter{\Gin at extensions}}%
+  \fi
+  \begingroup
+  \global\graphicscache at existstrue
+  \let\input at path\Ginput at path
+  \ltx at ifpackagelater{graphics}{2017/06/26}{%
+    \set at curr@file{#1}%
+    \expandafter\filename at parse\expandafter{\@curr at file}%
+    \ifx\filename at ext\Gin at gzext
+      \expandafter\filename at parse\expandafter{\filename at base}%
+      \ifx\filename at ext\relax
+        \let\filename at ext\Gin at gzext
+      \else
+        \edef\Gin at ext{\Gin at ext\Gin at sepdefault\Gin at gzext}%
+      \fi
+    \fi
+  }{%
+    \filename at parse{#1}%
+  }%
+  \ifx\filename at ext\relax
+    \@for\Gin at temp:=\Gin at extensions\do{%
+      \ifx\Gin at ext\relax
+        \Gin at getbase\Gin at temp
+      \fi}%
+  \else
+    \Gin at getbase{\Gin at sepdefault\filename at ext}%
+    \ltx at ifpackagelater{graphics}{2017/06/26}{%
+      \ifx\Gin at ext\relax
+      \let\Gin at savedbase\filename at base
+      \let\Gin at savedext\filename at ext
+        \edef\filename at base{\filename at base\Gin at sepdefault\filename at ext}%
+        \let\filename at ext\relax
+         \@for\Gin at temp:=\Gin at extensions\do{%
+            \ifx\Gin at ext\relax
+              \Gin at getbase\Gin at temp
+            \fi}%
+        \ifx\Gin at ext\relax
+          \let\filename at base\Gin at savedbase
+          \let\filename at ext\Gin at savedext
+        \fi
+      \fi
+    }{}%
+  \fi
+  \ifx\Gin at ext\relax
+    \global\graphicscache at existsfalse
+  \else
+    \@ifundefined{Gin at rule@\Gin at ext}%
+      {\global\graphicscache at existsfalse}%
+      {}%
+  \fi
+  \ifgraphicscache at exists
+    \xdef\graphicscache at fname{\Gin at base\Gin at ext}%
+  \fi
+  \endgroup
+}
+\catcode`\*=12
+\renewcommand{\includegraphics}[2][]{%
+  \begingroup
+  \expandarg
+  \edef\graphicscache at options{\@nameuse{opt at graphicscache.sty}}%
+  \pgfkeys{/graphicscache/.cd,#1}%
+  \ifgraphicscache at render
+    \graphicscache at getfname{#2}%
+  \else
+    \edef\graphicscache at fname{#2}%
+    \graphicscache at existstrue
+  \fi
+  \ifgraphicscache at exists
+    \ifgraphicscache at hashshortnames
+      \edef\graphicscache at hashedname{#2}%
+    \else
+      \edef\graphicscache at hashedname{\graphicscache at fname}%
+    \fi
+    \edef\graphicscache at outputhash{\pdf at mdfivesum{\graphicscache at options\graphicscache at graphicsargs\graphicscache at hashedname}}%
+    \edef\graphicscache at output{\graphicscache at cachedir/\graphicscache at outputhash.pdf}%
+    \ifgraphicscache at listing
+      \message{graphicscache: includegraphics\{#2\} => \graphicscache at output}%
+      \immediate\write\graphicscache at listout{#2 \graphicscache at fname\space \graphicscache at output}%
+    \fi
+    \graphicscache at work
+  \else
+    \PackageError{graphicscache}{Could not find file #2}{}%
+  \fi
+  \endgroup
+}
+\newcommand{\includegraphicscache}[3][]{%
+  \begingroup
+  \expandarg
+  \pgfkeys{/graphicscache/.cd,#2}%
+  \includegraphics[#1]{#3}%
+  \endgroup
+}
+\endinput
+%%
+%% End of file `graphicscache.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/graphicscache/graphicscache.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	2021-08-02 23:48:45 UTC (rev 60149)
+++ trunk/Master/tlpkg/bin/tlpkg-ctan-check	2021-08-03 20:44:46 UTC (rev 60150)
@@ -369,7 +369,7 @@
     grabbox gradientframe gradstudentresume grafcet grant
     graph35 graphbox graphics
     graphics-cfg graphics-def graphics-pln
-    graphicx-psmin graphicxbox graphicxpsd
+    graphicx-psmin graphicscache graphicxbox graphicxpsd
     graphpaper graphviz grayhints greek-fontenc greek-inputenc
     greekdates greektex greektonoi greenpoint gregoriotex
     grfext grffile grfpaste

Modified: trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
===================================================================
--- trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc	2021-08-02 23:48:45 UTC (rev 60149)
+++ trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc	2021-08-03 20:44:46 UTC (rev 60150)
@@ -575,6 +575,7 @@
 depend gmverb
 depend grabbox
 depend graphbox
+depend graphicscache
 depend graphicx-psmin
 depend graphicxbox
 depend graphpaper

Added: trunk/Master/tlpkg/tlpsrc/graphicscache.tlpsrc
===================================================================


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