memoize-extract(1) User Manual memoize-extract(1)
NAME
memoize-extract.pl, memoize-extract.py - Extract extern pages out of
the PDF
SYNOPSIS
memoize-extract.pl [OPTIONS] document.mmz
memoize-extract.py [OPTIONS] document.mmz
DESCRIPTION
memoize-extract is a script accompanying Memoize, a TeX package which
allows the author to reuse the results of compilation-intensive code
such as TikZ pictures.
Memoize dumps the created externs (boxes containing the typeset
material to be reused) onto their own pages in the produced PDF file.
It is the job of memoize-extract to extract these extern pages into
separate PDF files. At subsequent compilations, Memoize will include
those extern files into the document, without compiling their source
again.
Memoize communicates with memoize-extract through file document.mmz.
When document.tex is compiled to produce document.pdf, Memoize produces
document.mmz, which records which pages in the produced document are
extern pages and to which extern files they should be extracted.
Therefore, after compiling document.tex, the externs should be
extracted by memoize-extract document.mmz.
document.mmz may also be given as document* or document.tex. When
environment variable TEXMF_OUTPUT_DIRECTORY is set, this filename is
relative to the output directory specified by this variable.
document.mmz also records the expected width and height of each extern.
In case of a mismatch, memoize-extract refuses to extract the page and
removes the extern file if it already exist, and prints a warning
message to the standard error. The script also refuses to extract the
page if a (c)c-memo associated to the extern does not exist. See also
section SECURITY.
The Perl (.pl) and the Python (.py) version of the script are
functionally equivalent. The Perl script requires library PDF::API2
<https://metacpan.org/pod/PDF::API2>, and the Python script requires
library pdfrw2 <https://pypi.org/project/pdfrw2>.
OPTIONS
-P, --pdf filename.pdf
The externs will be extracted from filename.pdf. By default,
they are extracted from document.pdf.
-p, --prune
Remove the extern pages from the PDF after extraction.
-k, --keep
Do not modify the document.mmz to mark the externs as extracted.
By default, they are commented out to prevent double extraction.
-F, --format latex|plain|context
When this option is given, the script assumes that it was called
from within a TeX compilation of a document in the given format:
it prefixes all output by the script name, and creates a log
file document.mmz.log, which receives any extraction-related
warnings and errors.
-f, --force
Extract the extern even if the size-check fails.
-q, --quiet
Don't describe what's happening.
-m, --mkdir
A paranoid mkdir -p. (No extraction occurs, document.mmz is
interpreted as a directory name, which may end in any suffix; no
suffix mangling is performed.)
-V, --version
Show the Memoize version number and exit.
-h, --help
Show help and exit.
SECURITY
This script respects the restrictions on file input and output imposed
by the TeX configuration, more precisely, the variables openin_any and
openout_any of the kpathsea library (https://tug.org/kpathsea). You
can inspect the values of these variables by executing kpsewhich
-var-value=openin_any and kpsewhich -var-value=openout_any. The
interpretation is as follows:
a (or y or 1) any
Allows any file to be opened.
r (or n or 0) restricted
Means disallowing special file names.
p (or any other value) paranoid
Means being really paranoid: disallowing special file names and
restricting input/output files to be in or below the working
directory or the directory specified by TEXMFOUTPUT or
TEXMF_OUTPUT_DIRECTORY. TEXMFOUTPUT may be set either in
texmf.cnf (e.g. by tlmgr) or as an environment variable.
TEXMF_OUTPUT_DIRECTORY may only be set as an environment
variables; it is automatically set by TeX when called by
-output-directory option (starting in TeXLive 2024).
EXIT STATUS
0 The externs were successfully extracted. This exit code is
returned even if no externs need to be extracted, or if
document.mmz does not exist.
10 A warning also reported back to the compilation when given
option --format. Currently, either: (i) size-mismatch; (ii) a
non-existing associated (c)c-memo file; or (iii) unavailable
kpsewhich.
11 An error also reported back to the compilation when given option
--format. Currently, either: (i) a corrupted document PDF, or
(ii) a kpathsea permission error.
Other exit codes are as produced by the underlying scripting language
(Perl of Python).
SEE ALSO
Memoize manual <https://ctan.org/pkg/memoize>, section 6.6.1.
memoize-extract of Memoize v1.4.1
December 2, 2024 memoize-extract(1)
texlive-pictures 74487 - Generated Thu Mar 13 09:13:25 CDT 2025
