summaryrefslogtreecommitdiff
path: root/support/mkjobtexmf/mkjobtexmf.man
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /support/mkjobtexmf/mkjobtexmf.man
Initial commit
Diffstat (limited to 'support/mkjobtexmf/mkjobtexmf.man')
-rw-r--r--support/mkjobtexmf/mkjobtexmf.man501
1 files changed, 501 insertions, 0 deletions
diff --git a/support/mkjobtexmf/mkjobtexmf.man b/support/mkjobtexmf/mkjobtexmf.man
new file mode 100644
index 0000000000..b3fa622580
--- /dev/null
+++ b/support/mkjobtexmf/mkjobtexmf.man
@@ -0,0 +1,501 @@
+.\" 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 "2011-11-10 v0.8" "perl v5.8.1" "User Contributed Perl Documentation"
+.SH "NAME"
+mkjobtexmf \-\- Generate a texmf tree for a particular job
+.SH "VERSION"
+.IX Header "VERSION"
+2011\-11\-10 v0.8
+.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 25
+\& --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
+\& --(no)texhash Run texhash, use --notexhash for MiKTeX
+\& --exclude-ext <ext> Exclude files with extension <ext>.
+\& --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
+\& --version Print version identification
+.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 \f(CW\*(C`\-\-cmd\-tex\*(C'\fR. Option \f(CW\*(C`\-\-texname\*(C'\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 \f(CW\*(C`\-\-copy\*(C'\fR is given or symbolic linking is not available.
+.SH "OPTIONS"
+.IX Header "OPTIONS"
+.IP "\fB\-\fR\fB\-jobname\fR=<\fIjobname\fR>" 4
+.IX Item "--jobname=<jobname>"
+It is the name of the job. `<\fIjobname\fR>.tex' serves as default for
+the TeX file and <\fIjobname\fR> is used for naming various directories
+and files. See section \*(L"\s-1FILES\s0\*(R".
+.IP "\fB\-\fR\fB\-texname\fR=<\fIname\fR>" 4
+.IX Item "--texname=<name>"
+The name of the TeX input file, if it differs from <\fIjobname\fR>.tex.
+.IP "\fB\-\fR\fB\-texopt\fR=<\fIopt\fR>" 4
+.IX Item "--texopt=<opt>"
+Additional option for the TeX compiler, examples are \f(CW\*(C`\-\-ini\*(C'\fR or
+\&\f(CW\*(C`\-\-shell\-escape\*(C'\fR. This option can be given more than once.
+.IP "\fB\-\fR\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\-\fR\fB\-output\fR" 4
+.IX Item "--output"
+Also add output files.
+.IP "\fB\-\fR\fB\-strace\fR" 4
+.IX Item "--strace"
+Use method with program \fBstrace\fR, see \*(L"\s-1DESCRIPTION\s0\*(R".
+.IP "\fB\-\fR\fB\-copy\fR" 4
+.IX Item "--copy"
+Files are copied instead of creating symbolic links.
+.IP "\fB\-\fR\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\-\fR\fB\-exclude\-ext\fR=<\fIext\fR>" 4
+.IX Item "--exclude-ext=<ext>"
+Files with extension <\fIext\fR> are excluded. The option can be
+given several times or a comma separated list of extensions
+can be used. Examples:
+.Sp
+.Vb 1
+\& --exclude-ext aux --exclude-ext log --exclude-ext toc
+.Ve
+.Sp
+is the same as
+.Sp
+.Vb 1
+\& --exclude-ext aux,log,toc
+.Ve
+.IP "\fB\-\fR\fB\-(no)texhash\fR" 4
+.IX Item "--(no)texhash"
+As default the file `ls\-R' is generated in the `texmf' tree,
+because this is the file name database that might be used
+in TeX Live. Because MiKTeX uses a different mechanism, its
+`texhash' does not generate the `ls\-R' files and \f(CW\*(C`\-\-notexhash\*(C'\fR
+suppresses the call of `texhash'.
+.IP "\fB\-\fR\fB\-cmd\-tex\fR=<\fIcmd\fR>" 4
+.IX Item "--cmd-tex=<cmd>"
+Command for the TeX compiler. Default is pdflatex.
+.IP "\fB\-\fR\fB\-cmd\-kpsewhich\fR=<\fIcmd\fR>" 4
+.IX Item "--cmd-kpsewhich=<cmd>"
+Command for kpsewhich.
+.IP "\fB\-\fR\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\-\fR\fB\-cmd\-strace\fR=<\fIcmd\fR>" 4
+.IX Item "--cmd-strace=<cmd>"
+Command for strace.
+.IP "\fB\-\fR\fB\-verbose\fR" 4
+.IX Item "--verbose"
+Verbose messages.
+.IP "\fB\-\fR\fB\-help\fR" 4
+.IX Item "--help"
+Display help screen.
+.IP "\fB\-\fRB(\-man>" 4
+.IX Item "-B(-man>"
+Print manual page.
+.IP "\fB\-\fR\fB\-version\fR" 4
+.IX Item "--version"
+Print version identification and exit.
+.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 \f(CW\*(C`\-\-destdir\*(C'\fR.
+.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: heiko.oberdiek at googlemail.com
+.SH "COPYRIGHT AND LICENSE"
+.IX Header "COPYRIGHT AND LICENSE"
+Copyright 2007, 2008, 2011 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 "\fB2007/04/16 v0.1\fR" 2
+.IX Item "2007/04/16 v0.1"
+.RS 2
+.PD 0
+.IP "* First experimental version." 2
+.IX Item "First experimental version."
+.RE
+.RS 2
+.RE
+.IP "\fB2007/05/09 v0.2\fR" 2
+.IX Item "2007/05/09 v0.2"
+.RS 2
+.IP "* Typo in option name fixed." 2
+.IX Item "Typo in option name fixed."
+.RE
+.RS 2
+.RE
+.IP "\fB2007/09/03 v0.3\fR" 2
+.IX Item "2007/09/03 v0.3"
+.RS 2
+.ie n .IP "* New options: ""\-\-copy""\fR, \f(CW""\-\-flat""\fR, \f(CW""\-\-destdir""" 2
+.el .IP "* New options: \f(CW\-\-copy\fR, \f(CW\-\-flat\fR, \f(CW\-\-destdir\fR" 2
+.IX Item "New options: --copy, --flat, --destdir"
+.RE
+.RS 2
+.RE
+.IP "\fB2007/09/04 v0.4\fR" 2
+.IX Item "2007/09/04 v0.4"
+.RS 2
+.IP "* Bug fix in map_files_texmf." 2
+.IX Item "Bug fix in map_files_texmf."
+.RE
+.RS 2
+.RE
+.IP "\fB2007/09/06 v0.5\fR" 2
+.IX Item "2007/09/06 v0.5"
+.RS 2
+.IP "* Support for `configure' added. (Thanks to Norbert Preining for writing a first version of the configure stuff.)" 2
+.IX Item "Support for `configure' added. (Thanks to Norbert Preining for writing a first version of the configure stuff.)"
+.RE
+.RS 2
+.RE
+.IP "\fB2008/04/05 v0.6\fR" 2
+.IX Item "2008/04/05 v0.6"
+.RS 2
+.IP "* Tiny fix in target `uninstall' in file `Makefile.in'. (Thanks to Karl Berry)" 2
+.IX Item "Tiny fix in target `uninstall' in file `Makefile.in'. (Thanks to Karl Berry)"
+.RE
+.RS 2
+.RE
+.IP "\fB2008/06/28 v0.7\fR" 2
+.IX Item "2008/06/28 v0.7"
+.RS 2
+.ie n .IP "* Fix for unknown option `""\-\-cmd\-strace""'. (Thanks to Juho Niemelä)" 2
+.el .IP "* Fix for unknown option `\f(CW\-\-cmd\-strace\fR'. (Thanks to Juho Niemelä)" 2
+.IX Item "Fix for unknown option `--cmd-strace'. (Thanks to Juho Niemelä)"
+.RE
+.RS 2
+.RE
+.IP "\fB2011/11/10 v0.8\fR" 2
+.IX Item "2011/11/10 v0.8"
+.RS 2
+.IP "* Remove colon from drive specification when making directories." 2
+.IX Item "Remove colon from drive specification when making directories."
+.ie n .IP "* Option ""\-\-(no)texhash"" added." 2
+.el .IP "* Option \f(CW\-\-(no)texhash\fR added." 2
+.IX Item "Option --(no)texhash added."
+.IP "* Some support for MiKTeX (thanks Ulrike Fischer)." 2
+.IX Item "Some support for MiKTeX (thanks Ulrike Fischer)."
+.IP "* Various fixes in the generation of the documentation." 2
+.IX Item "Various fixes in the generation of the documentation."
+.ie n .IP "* Options ""\-\-exclude\-ext""\fR and \f(CW""\-\-version"" added." 2
+.el .IP "* Options \f(CW\-\-exclude\-ext\fR and \f(CW\-\-version\fR added." 2
+.IX Item "Options --exclude-ext and --version added."
+.RE
+.RS 2
+.RE