summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc')
-rw-r--r--Master/texmf-dist/doc/generic/mkjobtexmf/README48
-rw-r--r--Master/texmf-dist/doc/generic/mkjobtexmf/mkjobtexmf.html385
-rw-r--r--Master/texmf-dist/doc/generic/mkjobtexmf/mkjobtexmf.ltx52
-rw-r--r--Master/texmf-dist/doc/generic/mkjobtexmf/mkjobtexmf.man407
-rw-r--r--Master/texmf-dist/doc/generic/mkjobtexmf/mkjobtexmf.pdfbin0 -> 107050 bytes
-rw-r--r--Master/texmf-dist/doc/generic/mkjobtexmf/mkjobtexmf.txt255
6 files changed, 1147 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/generic/mkjobtexmf/README b/Master/texmf-dist/doc/generic/mkjobtexmf/README
new file mode 100644
index 00000000000..022057eff50
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/mkjobtexmf/README
@@ -0,0 +1,48 @@
+README for mkjobtexmf 2007/09/06 v0.5
+
+Copyright 2007 by Heiko Oberdiek
+
+License
+=======
+The file is part of project mkjobtexmf.
+It's free software; you may redistribute it and/or
+modify it under the same terms as Perl itself
+(Perl Artistic License/GNU General Public License, version 2).
+
+Requirements
+============
+* Perl
+
+Documentation
+=============
+The source of the documentation is embedded as POD data
+in the Perl script mkjobtexmf.pl. The documentation is
+available in various formats:
+* Manual page: mkjobtexmf.man
+* PDF file: mkjobtexmf.pdf
+* HTML file: mkjobtexmf.html
+* Text file: mkjobtexmf.txt
+And program option --man displays the documentation on
+the screen.
+
+Installation
+============
+* Unix:
+ GNU autoconf was used, thus you can try:
+ ./configure
+ make install
+ It should install the script and manual page.
+ The other documentation files can be installed manually.
+
+* Manually:
+ * mkjobtexmf.pl: Install the file as `mkjobtexmf' in a directory
+ that is listed in environment variable `PATH', e.g.
+ /usr/local/bin/mkjobtexmf
+ * mkjobtexmf.man: Install the manual page as `mkjobtexmf.1'
+ in the appropriate directory, e.g.:
+ /usr/local/man/man1/mkjobtexmf.1
+ * mkjobtexmf.pdf, mkjobtexmf.html, mkjobtexmf.html, README:
+ Install them where you find them, for example in directory:
+ /usr/local/share/doc/mkjobtexmf/
+
+See the documentation for further information.
diff --git a/Master/texmf-dist/doc/generic/mkjobtexmf/mkjobtexmf.html b/Master/texmf-dist/doc/generic/mkjobtexmf/mkjobtexmf.html
new file mode 100644
index 00000000000..18ba07e8b89
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/mkjobtexmf/mkjobtexmf.html
@@ -0,0 +1,385 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>mkjobtexmf -- Generate a texmf tree for a particular job</title>
+<link rev="made" href="mailto:feedback@suse.de" />
+</head>
+
+<body style="background-color: white">
+
+<p><a name="__index__"></a></p>
+<!-- INDEX BEGIN -->
+
+<ul>
+
+ <li><a href="#name">NAME</a></li>
+ <li><a href="#synopsis">SYNOPSIS</a></li>
+ <li><a href="#description">DESCRIPTION</a></li>
+ <ul>
+
+ <li><a href="#running_the_program">Running the program</a></li>
+ <li><a href="#file_recording">File recording</a></li>
+ <li><a href="#analyze_and_link_copy_found_files">Analyze and link/copy found files</a></li>
+ </ul>
+
+ <li><a href="#options">OPTIONS</a></li>
+ <li><a href="#examples">EXAMPLES</a></li>
+ <li><a href="#unsolved_issues__caveats__todos">UNSOLVED ISSUES, CAVEATS, TODOS</a></li>
+ <li><a href="#files">FILES</a></li>
+ <li><a href="#author">AUTHOR</a></li>
+ <li><a href="#copyright_and_license">COPYRIGHT AND LICENSE</a></li>
+ <li><a href="#history">HISTORY</a></li>
+</ul>
+<!-- INDEX END -->
+
+<hr />
+<p>
+</p>
+<h1><a name="name">NAME</a></h1>
+<p>mkjobtexmf -- Generate a texmf tree for a particular job</p>
+<p>
+</p>
+<hr />
+<h1><a name="synopsis">SYNOPSIS</a></h1>
+<p>The progam <strong>mkjobtexmf</strong> runs a program and tries to
+find the used file names. Two methods are available,
+option <code>-recorder</code> of TeX (Web2C) or the program <strong>strace</strong>.</p>
+<p>Then it generates a directory with a texmf tree. It checks
+the found files and tries sort them in this texmf tree.</p>
+<p>It can be used for archiving purposes or to speed up
+following TeX runs.</p>
+<pre>
+ mkjobtexmf [options]</pre>
+<p>This runs TeX that can be configured by options.
+Both methods for getting the used file names are available.</p>
+<pre>
+ mkjobtexmf [options] -- &lt;cmd&gt; [args]</pre>
+<p>The latter form runs program <em>cmd</em> with arguments <em>args</em>
+instead of TeX. As method only program <strong>strace</strong> is available.</p>
+<p>Options:</p>
+<pre>
+ --jobname &lt;name&gt; Name of the job (mandatory).
+ Usually this is the TeX file
+ without extension
+ --texname &lt;file&gt; Input file for TeX. Default is the
+ job name with extension '.tex'
+ --texopt &lt;option&gt; Option for TeX run
+ --destdir &lt;directory&gt; Destination directory,
+ default is `&lt;jobname&gt;.mjt'
+ --output Add also output files
+ --strace Use strace instead of TeX's
+ option -recorder
+ --copy Copy files instead of creating
+ symbol links
+ --flat Junk paths, do not make directories
+ inside the destination directory
+ --cmd-tex &lt;cmd&gt; Command for the TeX compiler
+ --cmd-kpsewhich &lt;cmd&gt; Command for kpsewhich
+ --cmd-texhash &lt;cmd&gt; Command for texhash
+ --cmd-strace &lt;cmd&gt; Command for strace
+ --verbose Verbose output
+ --help Brief help message
+ --man Full documentation</pre>
+<p>
+</p>
+<hr />
+<h1><a name="description">DESCRIPTION</a></h1>
+<p>
+</p>
+<h2><a name="running_the_program">Running the program</a></h2>
+<p>First <strong>mkjobtexmf</strong> runs a program, usually TeX. The TeX compiler
+is configured by option <strong>--cmd-tex</strong>. Option <strong>--texname</strong> can
+be used, if the file name extension differs from <em>.tex</em>:</p>
+<pre>
+ mkjobtexmf --jobname foo --texname foo.ltx</pre>
+<p>Even more complicate cases are possible:</p>
+<pre>
+ mkjobtexmf --jobname foo --texname '\def\abc{...}\input{foo}'</pre>
+<p>If another program than TeX should be used (dvips, ...),
+then this program can be given after <code>--</code>:</p>
+<pre>
+ mkjobtexmf --jobname foo -- dvips foo</pre>
+<p>
+</p>
+<h2><a name="file_recording">File recording</a></h2>
+<p>Two methods are available to get the used file names:</p>
+<dl>
+<dt><strong><a name="item_recorder_of_tex">Recorder of TeX</a></strong><br />
+</dt>
+<dd>
+Some TeX distributions (e.g. Web2C) support the option <strong>-recorder</strong>
+for its TeX compilers. Then the TeX compiler generates a file with
+extension <em>.fls</em> that records the used input and output files.
+</dd>
+<p></p>
+<dt><strong><a name="item_program_strace">Program strace</a></strong><br />
+</dt>
+<dd>
+This program traces system calls and signals. It is used here
+to log the used files.
+</dd>
+<p></p></dl>
+<p>
+</p>
+<h2><a name="analyze_and_link_copy_found_files">Analyze and link/copy found files</a></h2>
+<p>The result directory <em><em>jobname</em>.mjt</em> is generated. Inside the
+result TEXMF tree is created. Each found file is compared against
+a list of paths of TEXMF trees. If a match is found, the file is
+linked/copied into the TEXMF tree. The list of paths is generated by
+program <strong>kpsewhich</strong>.</p>
+<p>If the file cannot be mapped to a TEXMF tree and the file is
+a relative file name, then it is directly linked/copied into the
+result directory <em><em>jobname</em>.mjt</em>. Absolute file names
+are not supported and neither paths with links to parent directories.</p>
+<p>Symbolic links are created by default. The files are copied
+if option --copy is given or symbolic linking is not available.</p>
+<p>
+</p>
+<hr />
+<h1><a name="options">OPTIONS</a></h1>
+<dl>
+<dt><strong><a name="item__2d_2djobname_3djobname"><strong>--jobname</strong>=<em>jobname</em></a></strong><br />
+</dt>
+<dd>
+It is the name of the job. `&lt;jobname&gt;.tex' serves as default for
+the TeX file and &lt;jobname&gt; is used for naming various directories
+and files. See section <a href="#files">FILES</a>.
+</dd>
+<p></p>
+<dt><strong><a name="item__2d_2dtexname_3dname"><strong>--texname</strong>=<em>name</em></a></strong><br />
+</dt>
+<dd>
+The name of the TeX input file, if it differs from &lt;jobname&gt;.tex.
+</dd>
+<p></p>
+<dt><strong><a name="item__2d_2dtexopt_3dopt"><strong>--texopt</strong>=<em>opt</em></a></strong><br />
+</dt>
+<dd>
+Additional option for the TeX compiler, examples are --ini or
+--shell-escape. This option can be given more than once.
+</dd>
+<p></p>
+<dt><strong><a name="item__2d_2ddestdir_3ddirectory"><strong>--destdir</strong>=<em>directory</em></a></strong><br />
+</dt>
+<dd>
+Specifies the name of the destination directory where the result
+is collected. As default a directory is generated in the current
+directory with the job name and extension `.mjt'.
+</dd>
+<p></p>
+<dt><strong><a name="item__2d_2doutput"><strong>--output</strong></a></strong><br />
+</dt>
+<dd>
+Also add output files.
+</dd>
+<p></p>
+<dt><strong><a name="item__2d_2dstrace"><strong>--strace</strong></a></strong><br />
+</dt>
+<dd>
+Use method with program <strong>strace</strong>, see <a href="#description">DESCRIPTION</a>.
+</dd>
+<p></p>
+<dt><strong><a name="item__2d_2dcopy"><strong>--copy</strong></a></strong><br />
+</dt>
+<dd>
+Files are copied instead of creating symbolic links.
+</dd>
+<p></p>
+<dt><strong><a name="item__2d_2dflat"><strong>--flat</strong></a></strong><br />
+</dt>
+<dd>
+Files are linked or copied without path elements.
+The destination directory will contain a flat list of
+files or links without directory.
+</dd>
+<dd>
+<p>The files `ls-R' and `aliases' are ignored.</p>
+</dd>
+<p></p>
+<dt><strong><a name="item__2d_2dcmd_2dtex_3dcmd"><strong>--cmd-tex</strong>=<em>cmd</em></a></strong><br />
+</dt>
+<dd>
+Command for the TeX compiler. Default is pdflatex.
+</dd>
+<p></p>
+<dt><strong><a name="item__2d_2dcmd_2dkpsewhich_3dcmd"><strong>--cmd-kpsewhich</strong>=<em>cmd</em></a></strong><br />
+</dt>
+<dd>
+Command for kpsewhich.
+</dd>
+<p></p>
+<dt><strong><a name="item__2d_2dcmd_2dtexhash_3dcmd"><strong>--cmd-texhash</strong>=<em>cmd</em></a></strong><br />
+</dt>
+<dd>
+Command for updating the file name database of the generated
+texmf tree. Default is texmf.
+</dd>
+<p></p>
+<dt><strong><a name="item__2d_2dcmd_2dstrace_3dcmd"><strong>--cmd-strace</strong>=<em>cmd</em></a></strong><br />
+</dt>
+<dd>
+Command for strace.
+</dd>
+<p></p>
+<dt><strong><a name="item__2d_2dverbose"><strong>--verbose</strong></a></strong><br />
+</dt>
+<dd>
+Verbose messages.
+</dd>
+<p></p>
+<dt><strong><a name="item__2d_2dhelp"><strong>--help</strong></a></strong><br />
+</dt>
+<dd>
+Display help screen.
+</dd>
+<p></p></dl>
+<p>
+</p>
+<hr />
+<h1><a name="examples">EXAMPLES</a></h1>
+<p>TeX file <em>test.tex</em> using TeX's recorder method:</p>
+<pre>
+ mkjobtexmf --jobname test</pre>
+<p>TeX file <em>test.tex</em> using LaTeX:</p>
+<pre>
+ mkjobtexmf --jobname test --cmd-tex latex</pre>
+<p>Format generation:</p>
+<pre>
+ mkjobtexmf --jobname test --texopt -ini --texname pdflatex.ini</pre>
+<p>Example, how the new texmf tree (Linux/bash) can be used:</p>
+<pre>
+ TEXMF=!!test.mjt/texmf pdflatex test</pre>
+<p>Example for generating a zip archive (Linux/bash):</p>
+<pre>
+ (cd test.mjt &amp;&amp; zip -9r ../test .)</pre>
+<p>Example for generating a tar archive:</p>
+<pre>
+ tar cjhvf test.tar.bz2 -C test.mjt .</pre>
+<p>
+</p>
+<hr />
+<h1><a name="unsolved_issues__caveats__todos">UNSOLVED ISSUES, CAVEATS, TODOS</a></h1>
+<dl>
+<dt><strong><a name="item_experimental_software">Experimental software</a></strong><br />
+</dt>
+<dd>
+Options, defaults, how the program works might change in
+future versions.
+</dd>
+<p></p>
+<dt><strong><a name="item_texmf_2ecnf"><em>texmf.cnf</em></a></strong><br />
+</dt>
+<dd>
+Currently the method with <strong>strace</strong> records this files.
+TeX's recorder does not. Useful are <em>texmf.cnf</em> files for
+variable settings. Because we have just one TEXMF tree,
+the path sections should probably rewritten.
+</dd>
+<p></p>
+<dt><strong><a name="item_settings_in_environment_variables">Settings in environment variables</a></strong><br />
+</dt>
+<dd>
+They are not stored at all.
+</dd>
+<p></p>
+<dt><strong><a name="item_collisions">Collisions</a></strong><br />
+</dt>
+<dd>
+The program uses one destination directory and at most
+one TEXMF tree for the result. However, the source files
+can come from different directories and TEXMF trees.
+Therefore name collisions are possible.
+</dd>
+<dd>
+<p>The program follows the strategy not to delete files
+in the destination directory. That allows to collect files
+from differnt runs. Thus collisions are resolved
+in the manner that the first entry that is made in
+the destination directory wins.</p>
+</dd>
+<p></p>
+<dt><strong><a name="item_configuration_file">Configuration file</a></strong><br />
+</dt>
+<dd>
+It would save the user from retyping the same options again and again.
+</dd>
+<p></p>
+<dt><strong><a name="item_uncomplete_recording">Uncomplete recording</a></strong><br />
+</dt>
+<dd>
+Bugs in TeX's file recording might result in incomplete
+file recording (e.g. pdfTeX 1.40.3 does not record .pfb and
+.pk files).
+</dd>
+<p></p>
+<dt><strong><a name="item__2e_2e_2e">...</a></strong><br />
+</dt>
+</dl>
+<p>
+</p>
+<hr />
+<h1><a name="files">FILES</a></h1>
+<dl>
+<dt><strong><a name="item__3cjobname_3e_2emjt_2f"><em>&lt;jobname&gt;.mjt/</em></a></strong><br />
+</dt>
+<dd>
+Directory where the resulting texmf tree and symbol links
+are stored. It can be changed by option --destdir.
+</dd>
+<p></p>
+<dt><strong><a name="item__3cjobname_3e_2efls"><em>&lt;jobname&gt;.fls</em></a></strong><br />
+</dt>
+<dd>
+Name of TeX's recorder file.
+</dd>
+<p></p>
+<dt><strong><a name="item__3cjobname_3e_2estrace"><em>&lt;jobname&gt;.strace</em></a></strong><br />
+</dt>
+<dd>
+Log file where the result of <strong>strace</strong> is stored.
+</dd>
+<p></p></dl>
+<p>
+</p>
+<hr />
+<h1><a name="author">AUTHOR</a></h1>
+<p>Heiko Oberdiek, email: oberdiek at uni-freiburg.de</p>
+<p>
+</p>
+<hr />
+<h1><a name="copyright_and_license">COPYRIGHT AND LICENSE</a></h1>
+<p>Copyright 2007 by Heiko Oberdiek.</p>
+<p>This library is free software; you may redistribute it and/or
+modify it under the same terms as Perl itself
+(Perl Artistic License/GNU General Public License, version 2).</p>
+<p>
+</p>
+<hr />
+<h1><a name="history">HISTORY</a></h1>
+<ol>
+<li><strong><a name="item__2f04_2f16_v0_2e1">/04/16 v0.1</a></strong><br />
+</li>
+* First experimental version.
+<p></p>
+<li><strong><a name="item__2f05_2f09_v0_2e2">/05/09 v0.2</a></strong><br />
+</li>
+* Typo in option name fixed.
+<p></p>
+<li><strong><a name="item__2f09_2f03_v0_2e3">/09/03 v0.3</a></strong><br />
+</li>
+* New options: --copy, --flat, --destdir
+<p></p>
+<li><strong><a name="item__2f09_2f04_v0_2e4">/09/04 v0.4</a></strong><br />
+</li>
+* Bug fix in map_files_texmf.
+<p></p>
+<li><strong><a name="item__2f09_2f06_v0_2e5">/09/06 v0.5</a></strong><br />
+</li>
+* Support for `configure' added.
+ (Thanks to Norbert Preining for writing a first version of
+ the configure stuff.)
+<p></p></ol>
+
+</body>
+
+</html>
diff --git a/Master/texmf-dist/doc/generic/mkjobtexmf/mkjobtexmf.ltx b/Master/texmf-dist/doc/generic/mkjobtexmf/mkjobtexmf.ltx
new file mode 100644
index 00000000000..ce4e37a6d0b
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/mkjobtexmf/mkjobtexmf.ltx
@@ -0,0 +1,52 @@
+% mkjobtexmf.ltx
+%
+% Copyright 2007 by Heiko Oberdiek.
+%
+% The file is part of project mkjobtexmf.
+% It's free software; you may redistribute it and/or
+% modify it under the same terms as Perl itself
+% (Perl Artistic License/GNU General Public License, version 2).
+
+\documentclass[a4paper]{article}
+
+\providecommand*{\DATE}{2007/09/06}
+\providecommand*{\VERSION}{0.5}
+
+\usepackage{makeidx}
+\makeindex
+
+\usepackage{hyperref}
+\hypersetup{
+ colorlinks,
+ pdfauthor={Heiko Oberdiek},
+ pdftitle={mkjobtexmf},
+}
+
+\usepackage{bookmark}
+\bookmarksetup{
+ open,
+}
+
+\author{Heiko Oberdiek}
+\title{Program \textsf{mkjobtexmf}}
+\date{\DATE\space v\VERSION}
+
+\makeatletter
+\let\org@section\section
+\def\section{\@ifstar\org@section\org@section}
+\makeatother
+
+% ignore minor overfull \hbox warnings
+\setlength{\hfuzz}{1.5pt}
+
+\begin{document}
+
+\maketitle
+
+\tableofcontents
+
+\input{mkjobtexmf.tex}
+
+\printindex
+
+\end{document}
diff --git a/Master/texmf-dist/doc/generic/mkjobtexmf/mkjobtexmf.man b/Master/texmf-dist/doc/generic/mkjobtexmf/mkjobtexmf.man
new file mode 100644
index 00000000000..58086652c0e
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/mkjobtexmf/mkjobtexmf.man
@@ -0,0 +1,407 @@
+.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.13
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sh \" Subsection heading
+.br
+.if t .Sp
+.ne 5
+.PP
+\fB\\$1\fR
+.PP
+..
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" Set up some character translations and predefined strings. \*(-- will
+.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
+.\" double quote, and \*(R" will give a right double quote. | will give a
+.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
+.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
+.\" expand to `' in nroff, nothing in troff, for use with C<>.
+.tr \(*W-|\(bv\*(Tr
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.ie n \{\
+. ds -- \(*W-
+. ds PI pi
+. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
+. ds L" ""
+. ds R" ""
+. ds C` ""
+. ds C' ""
+'br\}
+.el\{\
+. ds -- \|\(em\|
+. ds PI \(*p
+. ds L" ``
+. ds R" ''
+'br\}
+.\"
+.\" If the F register is turned on, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
+.\" entries marked with X<> in POD. Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.if \nF \{\
+. de IX
+. tm Index:\\$1\t\\n%\t"\\$2"
+..
+. nr % 0
+. rr F
+.\}
+.\"
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.hy 0
+.if n .na
+.\"
+.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
+.\" Fear. Run. Save yourself. No user-serviceable parts.
+. \" fudge factors for nroff and troff
+.if n \{\
+. ds #H 0
+. ds #V .8m
+. ds #F .3m
+. ds #[ \f1
+. ds #] \fP
+.\}
+.if t \{\
+. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+. ds #V .6m
+. ds #F 0
+. ds #[ \&
+. ds #] \&
+.\}
+. \" simple accents for nroff and troff
+.if n \{\
+. ds ' \&
+. ds ` \&
+. ds ^ \&
+. ds , \&
+. ds ~ ~
+. ds /
+.\}
+.if t \{\
+. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+.\}
+. \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+. \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+. \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+. ds : e
+. ds 8 ss
+. ds o a
+. ds d- d\h'-1'\(ga
+. ds D- D\h'-1'\(hy
+. ds th \o'bp'
+. ds Th \o'LP'
+. ds ae ae
+. ds Ae AE
+.\}
+.rm #[ #] #H #V #F C
+.\" ========================================================================
+.\"
+.IX Title "MKJOBTEXMF 1"
+.TH MKJOBTEXMF 1 "2007-09-06" "perl v5.8.1" "User Contributed Perl Documentation"
+.SH "NAME"
+mkjobtexmf \-\- Generate a texmf tree for a particular job
+.SH "SYNOPSIS"
+.IX Header "SYNOPSIS"
+The progam \fBmkjobtexmf\fR runs a program and tries to
+find the used file names. Two methods are available,
+option \f(CW\*(C`\-recorder\*(C'\fR of TeX (Web2C) or the program \fBstrace\fR.
+.PP
+Then it generates a directory with a texmf tree. It checks
+the found files and tries sort them in this texmf tree.
+.PP
+It can be used for archiving purposes or to speed up
+following TeX runs.
+.PP
+.Vb 1
+\& mkjobtexmf [options]
+.Ve
+.PP
+This runs TeX that can be configured by options.
+Both methods for getting the used file names are available.
+.PP
+.Vb 1
+\& mkjobtexmf [options] -- <cmd> [args]
+.Ve
+.PP
+The latter form runs program \fIcmd\fR with arguments \fIargs\fR
+instead of TeX. As method only program \fBstrace\fR is available.
+.PP
+Options:
+.PP
+.Vb 22
+\& --jobname <name> Name of the job (mandatory).
+\& Usually this is the TeX file
+\& without extension
+\& --texname <file> Input file for TeX. Default is the
+\& job name with extension '.tex'
+\& --texopt <option> Option for TeX run
+\& --destdir <directory> Destination directory,
+\& default is `<jobname>.mjt'
+\& --output Add also output files
+\& --strace Use strace instead of TeX's
+\& option -recorder
+\& --copy Copy files instead of creating
+\& symbol links
+\& --flat Junk paths, do not make directories
+\& inside the destination directory
+\& --cmd-tex <cmd> Command for the TeX compiler
+\& --cmd-kpsewhich <cmd> Command for kpsewhich
+\& --cmd-texhash <cmd> Command for texhash
+\& --cmd-strace <cmd> Command for strace
+\& --verbose Verbose output
+\& --help Brief help message
+\& --man Full documentation
+.Ve
+.SH "DESCRIPTION"
+.IX Header "DESCRIPTION"
+.Sh "Running the program"
+.IX Subsection "Running the program"
+First \fBmkjobtexmf\fR runs a program, usually TeX. The TeX compiler
+is configured by option \fB\-\-cmd\-tex\fR. Option \fB\-\-texname\fR can
+be used, if the file name extension differs from \fI.tex\fR:
+.PP
+.Vb 1
+\& mkjobtexmf --jobname foo --texname foo.ltx
+.Ve
+.PP
+Even more complicate cases are possible:
+.PP
+.Vb 1
+\& mkjobtexmf --jobname foo --texname '\edef\eabc{...}\einput{foo}'
+.Ve
+.PP
+If another program than TeX should be used (dvips, ...),
+then this program can be given after \f(CW\*(C`\-\-\*(C'\fR:
+.PP
+.Vb 1
+\& mkjobtexmf --jobname foo -- dvips foo
+.Ve
+.Sh "File recording"
+.IX Subsection "File recording"
+Two methods are available to get the used file names:
+.IP "Recorder of TeX" 4
+.IX Item "Recorder of TeX"
+Some TeX distributions (e.g. Web2C) support the option \fB\-recorder\fR
+for its TeX compilers. Then the TeX compiler generates a file with
+extension \fI.fls\fR that records the used input and output files.
+.IP "Program strace" 4
+.IX Item "Program strace"
+This program traces system calls and signals. It is used here
+to log the used files.
+.Sh "Analyze and link/copy found files"
+.IX Subsection "Analyze and link/copy found files"
+The result directory \fI\fIjobname\fI.mjt\fR is generated. Inside the
+result \s-1TEXMF\s0 tree is created. Each found file is compared against
+a list of paths of \s-1TEXMF\s0 trees. If a match is found, the file is
+linked/copied into the \s-1TEXMF\s0 tree. The list of paths is generated by
+program \fBkpsewhich\fR.
+.PP
+If the file cannot be mapped to a \s-1TEXMF\s0 tree and the file is
+a relative file name, then it is directly linked/copied into the
+result directory \fI\fIjobname\fI.mjt\fR. Absolute file names
+are not supported and neither paths with links to parent directories.
+.PP
+Symbolic links are created by default. The files are copied
+if option \-\-copy is given or symbolic linking is not available.
+.SH "OPTIONS"
+.IX Header "OPTIONS"
+.IP "\fB\-\-jobname\fR=\fIjobname\fR" 4
+.IX Item "--jobname=jobname"
+It is the name of the job. `<jobname>.tex' serves as default for
+the TeX file and <jobname> is used for naming various directories
+and files. See section \*(L"\s-1FILES\s0\*(R".
+.IP "\fB\-\-texname\fR=\fIname\fR" 4
+.IX Item "--texname=name"
+The name of the TeX input file, if it differs from <jobname>.tex.
+.IP "\fB\-\-texopt\fR=\fIopt\fR" 4
+.IX Item "--texopt=opt"
+Additional option for the TeX compiler, examples are \-\-ini or
+\&\-\-shell\-escape. This option can be given more than once.
+.IP "\fB\-\-destdir\fR=\fIdirectory\fR" 4
+.IX Item "--destdir=directory"
+Specifies the name of the destination directory where the result
+is collected. As default a directory is generated in the current
+directory with the job name and extension `.mjt'.
+.IP "\fB\-\-output\fR" 4
+.IX Item "--output"
+Also add output files.
+.IP "\fB\-\-strace\fR" 4
+.IX Item "--strace"
+Use method with program \fBstrace\fR, see \*(L"\s-1DESCRIPTION\s0\*(R".
+.IP "\fB\-\-copy\fR" 4
+.IX Item "--copy"
+Files are copied instead of creating symbolic links.
+.IP "\fB\-\-flat\fR" 4
+.IX Item "--flat"
+Files are linked or copied without path elements.
+The destination directory will contain a flat list of
+files or links without directory.
+.Sp
+The files `ls\-R' and `aliases' are ignored.
+.IP "\fB\-\-cmd\-tex\fR=\fIcmd\fR" 4
+.IX Item "--cmd-tex=cmd"
+Command for the TeX compiler. Default is pdflatex.
+.IP "\fB\-\-cmd\-kpsewhich\fR=\fIcmd\fR" 4
+.IX Item "--cmd-kpsewhich=cmd"
+Command for kpsewhich.
+.IP "\fB\-\-cmd\-texhash\fR=\fIcmd\fR" 4
+.IX Item "--cmd-texhash=cmd"
+Command for updating the file name database of the generated
+texmf tree. Default is texmf.
+.IP "\fB\-\-cmd\-strace\fR=\fIcmd\fR" 4
+.IX Item "--cmd-strace=cmd"
+Command for strace.
+.IP "\fB\-\-verbose\fR" 4
+.IX Item "--verbose"
+Verbose messages.
+.IP "\fB\-\-help\fR" 4
+.IX Item "--help"
+Display help screen.
+.SH "EXAMPLES"
+.IX Header "EXAMPLES"
+TeX file \fItest.tex\fR using TeX's recorder method:
+.PP
+.Vb 1
+\& mkjobtexmf --jobname test
+.Ve
+.PP
+TeX file \fItest.tex\fR using LaTeX:
+.PP
+.Vb 1
+\& mkjobtexmf --jobname test --cmd-tex latex
+.Ve
+.PP
+Format generation:
+.PP
+.Vb 1
+\& mkjobtexmf --jobname test --texopt -ini --texname pdflatex.ini
+.Ve
+.PP
+Example, how the new texmf tree (Linux/bash) can be used:
+.PP
+.Vb 1
+\& TEXMF=!!test.mjt/texmf pdflatex test
+.Ve
+.PP
+Example for generating a zip archive (Linux/bash):
+.PP
+.Vb 1
+\& (cd test.mjt && zip -9r ../test .)
+.Ve
+.PP
+Example for generating a tar archive:
+.PP
+.Vb 1
+\& tar cjhvf test.tar.bz2 -C test.mjt .
+.Ve
+.SH "UNSOLVED ISSUES, CAVEATS, TODOS"
+.IX Header "UNSOLVED ISSUES, CAVEATS, TODOS"
+.IP "Experimental software" 4
+.IX Item "Experimental software"
+Options, defaults, how the program works might change in
+future versions.
+.IP "\fItexmf.cnf\fR" 4
+.IX Item "texmf.cnf"
+Currently the method with \fBstrace\fR records this files.
+TeX's recorder does not. Useful are \fItexmf.cnf\fR files for
+variable settings. Because we have just one \s-1TEXMF\s0 tree,
+the path sections should probably rewritten.
+.IP "Settings in environment variables" 4
+.IX Item "Settings in environment variables"
+They are not stored at all.
+.IP "Collisions" 4
+.IX Item "Collisions"
+The program uses one destination directory and at most
+one \s-1TEXMF\s0 tree for the result. However, the source files
+can come from different directories and \s-1TEXMF\s0 trees.
+Therefore name collisions are possible.
+.Sp
+The program follows the strategy not to delete files
+in the destination directory. That allows to collect files
+from differnt runs. Thus collisions are resolved
+in the manner that the first entry that is made in
+the destination directory wins.
+.IP "Configuration file" 4
+.IX Item "Configuration file"
+It would save the user from retyping the same options again and again.
+.IP "Uncomplete recording" 4
+.IX Item "Uncomplete recording"
+Bugs in TeX's file recording might result in incomplete
+file recording (e.g. pdfTeX 1.40.3 does not record .pfb and
+\&.pk files).
+.IP "..." 4
+.SH "FILES"
+.IX Header "FILES"
+.PD 0
+.IP "\fI<jobname>.mjt/\fR" 4
+.IX Item "<jobname>.mjt/"
+.PD
+Directory where the resulting texmf tree and symbol links
+are stored. It can be changed by option \-\-destdir.
+.IP "\fI<jobname>.fls\fR" 4
+.IX Item "<jobname>.fls"
+Name of TeX's recorder file.
+.IP "\fI<jobname>.strace\fR" 4
+.IX Item "<jobname>.strace"
+Log file where the result of \fBstrace\fR is stored.
+.SH "AUTHOR"
+.IX Header "AUTHOR"
+Heiko Oberdiek, email: oberdiek at uni\-freiburg.de
+.SH "COPYRIGHT AND LICENSE"
+.IX Header "COPYRIGHT AND LICENSE"
+Copyright 2007 by Heiko Oberdiek.
+.PP
+This library is free software; you may redistribute it and/or
+modify it under the same terms as Perl itself
+(Perl Artistic License/GNU General Public License, version 2).
+.SH "HISTORY"
+.IX Header "HISTORY"
+.IP "2007/04/16 v0.1" 4
+.IX Item "2007/04/16 v0.1"
+* First experimental version.
+.IP "2007/05/09 v0.2" 4
+.IX Item "2007/05/09 v0.2"
+* Typo in option name fixed.
+.IP "2007/09/03 v0.3" 4
+.IX Item "2007/09/03 v0.3"
+* New options: \-\-copy, \-\-flat, \-\-destdir
+.IP "2007/09/04 v0.4" 4
+.IX Item "2007/09/04 v0.4"
+* Bug fix in map_files_texmf.
+.IP "2007/09/06 v0.5" 4
+.IX Item "2007/09/06 v0.5"
+* Support for `configure' added.
+ (Thanks to Norbert Preining for writing a first version of
+ the configure stuff.)
diff --git a/Master/texmf-dist/doc/generic/mkjobtexmf/mkjobtexmf.pdf b/Master/texmf-dist/doc/generic/mkjobtexmf/mkjobtexmf.pdf
new file mode 100644
index 00000000000..1046d41e34e
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/mkjobtexmf/mkjobtexmf.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/mkjobtexmf/mkjobtexmf.txt b/Master/texmf-dist/doc/generic/mkjobtexmf/mkjobtexmf.txt
new file mode 100644
index 00000000000..d8f2934da26
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/mkjobtexmf/mkjobtexmf.txt
@@ -0,0 +1,255 @@
+NAME
+
+ mkjobtexmf -- Generate a texmf tree for a particular job
+
+SYNOPSIS
+
+ The progam mkjobtexmf runs a program and tries to find the used file
+ names. Two methods are available, option "-recorder" of TeX (Web2C) or
+ the program strace.
+
+ Then it generates a directory with a texmf tree. It checks the found
+ files and tries sort them in this texmf tree.
+
+ It can be used for archiving purposes or to speed up following TeX runs.
+
+ mkjobtexmf [options]
+
+ This runs TeX that can be configured by options. Both methods for
+ getting the used file names are available.
+
+ mkjobtexmf [options] -- <cmd> [args]
+
+ The latter form runs program *cmd* with arguments *args* instead of TeX.
+ As method only program strace is available.
+
+ Options:
+
+ --jobname <name> Name of the job (mandatory).
+ Usually this is the TeX file
+ without extension
+ --texname <file> Input file for TeX. Default is the
+ job name with extension '.tex'
+ --texopt <option> Option for TeX run
+ --destdir <directory> Destination directory,
+ default is `<jobname>.mjt'
+ --output Add also output files
+ --strace Use strace instead of TeX's
+ option -recorder
+ --copy Copy files instead of creating
+ symbol links
+ --flat Junk paths, do not make directories
+ inside the destination directory
+ --cmd-tex <cmd> Command for the TeX compiler
+ --cmd-kpsewhich <cmd> Command for kpsewhich
+ --cmd-texhash <cmd> Command for texhash
+ --cmd-strace <cmd> Command for strace
+ --verbose Verbose output
+ --help Brief help message
+ --man Full documentation
+
+DESCRIPTION
+
+ Running the program
+
+ First mkjobtexmf runs a program, usually TeX. The TeX compiler is
+ configured by option --cmd-tex. Option --texname can be used, if the
+ file name extension differs from .tex:
+
+ mkjobtexmf --jobname foo --texname foo.ltx
+
+ Even more complicate cases are possible:
+
+ mkjobtexmf --jobname foo --texname '\def\abc{...}\input{foo}'
+
+ If another program than TeX should be used (dvips, ...), then this
+ program can be given after "--":
+
+ mkjobtexmf --jobname foo -- dvips foo
+
+ File recording
+
+ Two methods are available to get the used file names:
+
+ Recorder of TeX
+ Some TeX distributions (e.g. Web2C) support the option -recorder for
+ its TeX compilers. Then the TeX compiler generates a file with
+ extension .fls that records the used input and output files.
+
+ Program strace
+ This program traces system calls and signals. It is used here to log
+ the used files.
+
+ Analyze and link/copy found files
+
+ The result directory *jobname*.mjt is generated. Inside the result TEXMF
+ tree is created. Each found file is compared against a list of paths of
+ TEXMF trees. If a match is found, the file is linked/copied into the
+ TEXMF tree. The list of paths is generated by program kpsewhich.
+
+ If the file cannot be mapped to a TEXMF tree and the file is a relative
+ file name, then it is directly linked/copied into the result directory
+ *jobname*.mjt. Absolute file names are not supported and neither paths
+ with links to parent directories.
+
+ Symbolic links are created by default. The files are copied if option
+ --copy is given or symbolic linking is not available.
+
+OPTIONS
+
+ --jobname=*jobname*
+ It is the name of the job. `<jobname>.tex' serves as default for the
+ TeX file and <jobname> is used for naming various directories and
+ files. See section "FILES".
+
+ --texname=*name*
+ The name of the TeX input file, if it differs from <jobname>.tex.
+
+ --texopt=*opt*
+ Additional option for the TeX compiler, examples are --ini or
+ --shell-escape. This option can be given more than once.
+
+ --destdir=*directory*
+ Specifies the name of the destination directory where the result is
+ collected. As default a directory is generated in the current
+ directory with the job name and extension `.mjt'.
+
+ --output
+ Also add output files.
+
+ --strace
+ Use method with program strace, see "DESCRIPTION".
+
+ --copy
+ Files are copied instead of creating symbolic links.
+
+ --flat
+ Files are linked or copied without path elements. The destination
+ directory will contain a flat list of files or links without
+ directory.
+
+ The files `ls-R' and `aliases' are ignored.
+
+ --cmd-tex=*cmd*
+ Command for the TeX compiler. Default is pdflatex.
+
+ --cmd-kpsewhich=*cmd*
+ Command for kpsewhich.
+
+ --cmd-texhash=*cmd*
+ Command for updating the file name database of the generated texmf
+ tree. Default is texmf.
+
+ --cmd-strace=*cmd*
+ Command for strace.
+
+ --verbose
+ Verbose messages.
+
+ --help
+ Display help screen.
+
+EXAMPLES
+
+ TeX file test.tex using TeX's recorder method:
+
+ mkjobtexmf --jobname test
+
+ TeX file test.tex using LaTeX:
+
+ mkjobtexmf --jobname test --cmd-tex latex
+
+ Format generation:
+
+ mkjobtexmf --jobname test --texopt -ini --texname pdflatex.ini
+
+ Example, how the new texmf tree (Linux/bash) can be used:
+
+ TEXMF=!!test.mjt/texmf pdflatex test
+
+ Example for generating a zip archive (Linux/bash):
+
+ (cd test.mjt && zip -9r ../test .)
+
+ Example for generating a tar archive:
+
+ tar cjhvf test.tar.bz2 -C test.mjt .
+
+UNSOLVED ISSUES, CAVEATS, TODOS
+
+ Experimental software
+ Options, defaults, how the program works might change in future
+ versions.
+
+ texmf.cnf
+ Currently the method with strace records this files. TeX's recorder
+ does not. Useful are texmf.cnf files for variable settings. Because
+ we have just one TEXMF tree, the path sections should probably
+ rewritten.
+
+ Settings in environment variables
+ They are not stored at all.
+
+ Collisions
+ The program uses one destination directory and at most one TEXMF
+ tree for the result. However, the source files can come from
+ different directories and TEXMF trees. Therefore name collisions are
+ possible.
+
+ The program follows the strategy not to delete files in the
+ destination directory. That allows to collect files from differnt
+ runs. Thus collisions are resolved in the manner that the first
+ entry that is made in the destination directory wins.
+
+ Configuration file
+ It would save the user from retyping the same options again and
+ again.
+
+ Uncomplete recording
+ Bugs in TeX's file recording might result in incomplete file
+ recording (e.g. pdfTeX 1.40.3 does not record .pfb and .pk files).
+
+ ...
+
+FILES
+
+ <jobname>.mjt/
+ Directory where the resulting texmf tree and symbol links are
+ stored. It can be changed by option --destdir.
+
+ <jobname>.fls
+ Name of TeX's recorder file.
+
+ <jobname>.strace
+ Log file where the result of strace is stored.
+
+AUTHOR
+
+ Heiko Oberdiek, email: oberdiek at uni-freiburg.de
+
+COPYRIGHT AND LICENSE
+
+ Copyright 2007 by Heiko Oberdiek.
+
+ This library is free software; you may redistribute it and/or modify it
+ under the same terms as Perl itself (Perl Artistic License/GNU General
+ Public License, version 2).
+
+HISTORY
+
+ 2007/04/16 v0.1
+ * First experimental version.
+
+ 2007/05/09 v0.2
+ * Typo in option name fixed.
+
+ 2007/09/03 v0.3
+ * New options: --copy, --flat, --destdir
+
+ 2007/09/04 v0.4
+ * Bug fix in map_files_texmf.
+
+ 2007/09/06 v0.5
+ * Support for `configure' added. (Thanks to Norbert Preining for
+ writing a first version of the configure stuff.)
+