.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.42) .\" .\" Standard preamble: .\" ======================================================================== .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. \*(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- .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" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" 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 "ARLATEX 1" .TH ARLATEX 1 "2022-10-04" "v1.1" "User Commands" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" arlatex \- archive a number of ancillary LaTeX files into a master \&.tex file .SH "SYNOPSIS" .IX Header "SYNOPSIS" arlatex [\fB\-\-outfile\fR=\fIfilename\fR\fI.tex\fR] \&\fB\-\-document\fR=\fIfilename\fR\fI.tex\fR \&\fIfilename\fR \&... .PP arlatex \&\fB\-\-version\fR .PP arlatex \&\fB\-\-help\fR .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fBarlatex\fR is an archiving program like \fBshar\fR, \fBtar\fR, \fBzip\fR, etc. Unlike those other archivers, however, \fBarlatex\fR is designed specifically for use with LaTeX. \fBarlatex\fR takes the name of a master \fI.tex\fR file and a number of ancillary files used by that master file (e.g., \fI.tex\fR, \fI.sty\fR, \fI.cls\fR, and \fI.eps\fR files). From these, \fBarlatex\fR outputs a single file that, when it's run through \fBlatex\fR, both regenerates the ancillary files and compiles the document into a \fI.dvi\fR file. .PP \&\fBarlatex\fR has a few advantages over other archiving programs: .IP "\(bu" 4 The \fI.tex\fR files produced by \fBarlatex\fR are in a plain-text format. They are therefore perfectly portable and trivial to e\-mail to colleagues. .IP "\(bu" 4 \&\fBarlatex\fR needs only LaTeX to run. There is no dependence on any external tools. .IP "\(bu" 4 There is no explicit extraction step. As the generated document is run through \fBlatex\fR, it extracts the ancillary files and builds the document in the same step. The user running \fBlatex\fR may not even notice that additional files are being produced. .PP \&\fBarlatex\fR works by writing a number of \f(CW\*(C`\ebegin{filecontents*}\*(C'\fR\ ... \&\f(CW\*(C`\eend{filecontents*}\*(C'\fR blocks to the output file, followed by the contents of the master file. (In fact, any LaTeX comments at the beginning of the master file are hoisted to the top of the generated file. This enables the author to draw attention, if so desired, to the fact that ancillary files will be generated.) The \&\f(CW\*(C`filecontents*\*(C'\fR environment, part of standard LaTeX2e, writes its contents verbatim to a specified file. .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-\-version\fR" 4 .IX Item "--version" Output the \fBarlatex\fR script's version number. .IP "\fB\-\-help\fR" 4 .IX Item "--help" Output brief \fBarlatex\fR usage information. .IP "\fB\-\-document\fR=\fI.tex file\fR" 4 .IX Item "--document=.tex file" Specify the master document. The output from \fBarlatex\fR is this file with all of the other files named on the command line prepended to it. Note that \f(CW\*(C`\-\-document\*(C'\fR is a \fImandatory\fR parameter; \fBarlatex\fR will abort with an error message if \f(CW\*(C`\-\-document\*(C'\fR is not specified. .IP "\fB\-\-outfile\fR=\fI.tex file\fR" 4 .IX Item "--outfile=.tex file" Specify the output file. The output file looks just like the master document, but with a number of \f(CW\*(C`filecontents*\*(C'\fR environments preceding the \f(CW\*(C`\edocumentclass\*(C'\fR line. If \f(CW\*(C`\-\-outfile\*(C'\fR is not specified, output will be written to the standard output device. .SH "EXAMPLES" .IX Header "EXAMPLES" Suppose you have a paper called \fIpaper.tex\fR that loads a custom package with \f(CW\*(C`\eusepackage{mypackage}\*(C'\fR. You want to submit the paper to a conference, but you want to be absolutely certain that \&\fImypackage.sty\fR doesn't get lost as your paper is shuttled from person to person. Here's how \fBarlatex\fR can be of use: .PP .Vb 1 \& arlatex \-\-document=paper.tex mypackage.sty \-\-outfile=paper\-submit.tex .Ve .PP When \fIpaper\-submit.tex\fR is processed with \fBlatex\fR, it builds just like the original \fIpaper.tex\fR, except that it additionally creates a \&\fImypackage.sty\fR in the current directory: .PP .Vb 5 \& This is TeX, Version 3.14159 (Web2C 7.3.1) \& (paper\-submit.tex \& LaTeX2e <1999/12/01> patch level 1 \& Babel and hyphenation patterns for american, french, german, \& ngerman, italian, nohyphenation, loaded. \& \& LaTeX Warning: Writing file \`./mypackage.sty\*(Aq. \& \& (/usr/share/texmf/tex/latex/base/article.cls \& Document Class: article 1999/09/10 v1.4a Standard LaTeX document class \& (/usr/share/texmf/tex/latex/base/size12.clo)) (mypackage.sty) \& . \& . \& . .Ve .PP As another example, here's how you could bundle together all of the files needed to build a large document for longevity: .PP .Vb 4 \& arlatex \-\-document=thesis.tex abstract.tex introduction.tex \& background.tex approach.tex experiments.tex relatedwork.tex \& conclusions.tex before.eps after.eps fast.eps slow.eps \& podunkUthesis.cls \-\-outfile=thesis\-all.tex .Ve .PP As the number of files to archive together increases it becomes more cumbersome to run \fBarlatex\fR manually. Fortunately, using \fBarlatex\fR with \fBbundledoc\fR is straightforward. \fBbundledoc\fR finds all of the files needed to build the document, and \fBarlatex\fR combines them into a single file. The following are examples of the \f(CW\*(C`bundle:\*(C'\fR line you might use in a \fBbundledoc\fR configuration file: .IP "Unix:" 1 .IX Item "Unix:" .Vb 2 \& bundle: (arlatex \-\-document=$BDBASE.tex $BDINPUTS \e \& \-\-outfile=$BDBASE\-all.tex) .Ve .IP "Windows:" 1 .IX Item "Windows:" .Vb 2 \& bundle: arlatex \-\-document=%BDBASE%.tex %BDINPUTS% \e \& \-\-outfile=%BDBASE%\-all.tex .Ve .PP See the \fBbundledoc\fR documentation for more information. .SH "CAVEATS" .IX Header "CAVEATS" \&\fBarlatex\fR makes use of LaTeX's \f(CW\*(C`filecontents*\*(C'\fR environment. It passes \f(CW\*(C`filecontents*\*(C'\fR the \f(CW\*(C`overwrite\*(C'\fR option to indicate that existing files with the same name should be overwritten. Be forewarned that building the generated file will overwrite the files used to create it. .PP It is best to avoid bundling binary files (e.g., included graphics) with \fBarlatex\fR. These typically do not extract cleanly. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBbundledoc\fR\|(1), \fBlatex\fR\|(1), \fBshar\fR\|(1), \fBtar\fR\|(1), \fBzip\fR\|(1) .SH "AUTHOR" .IX Header "AUTHOR" Scott Pakin, \fIscott+bdoc@pakin.org\fR