summaryrefslogtreecommitdiff
path: root/support/pdfjam
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-11-19 03:02:21 +0000
committerNorbert Preining <norbert@preining.info>2019-11-19 03:02:21 +0000
commit025f7bfee79d7817a876831bb19f34a2dfb1b2e2 (patch)
tree76efc8c89514583aae7ddb55b59bfb879500a09d /support/pdfjam
parent96f9362fc3e3bb70fa2411c62418c42d9acda4d7 (diff)
CTAN sync 201911190302
Diffstat (limited to 'support/pdfjam')
-rw-r--r--support/pdfjam/PDFjam-README.html370
-rw-r--r--support/pdfjam/README.md690
-rw-r--r--support/pdfjam/VERSION2
-rw-r--r--support/pdfjam/bin/pdf18011
-rw-r--r--support/pdfjam/bin/pdf27011
-rw-r--r--support/pdfjam/bin/pdf9011
-rw-r--r--support/pdfjam/bin/pdfbook55
-rw-r--r--support/pdfjam/bin/pdfflip9
-rwxr-xr-x[-rw-r--r--]support/pdfjam/bin/pdfjam691
-rw-r--r--support/pdfjam/bin/pdfjam-pocketmod57
-rw-r--r--support/pdfjam/bin/pdfjam-slides3up29
-rw-r--r--support/pdfjam/bin/pdfjam-slides6up31
-rw-r--r--support/pdfjam/bin/pdfjoin26
-rw-r--r--support/pdfjam/bin/pdfnup29
-rw-r--r--support/pdfjam/bin/pdfpun73
-rw-r--r--support/pdfjam/man1/pdf180.174
-rw-r--r--support/pdfjam/man1/pdf270.174
-rw-r--r--support/pdfjam/man1/pdf90.174
-rw-r--r--support/pdfjam/man1/pdfbook.186
-rw-r--r--support/pdfjam/man1/pdfflip.173
-rw-r--r--support/pdfjam/man1/pdfjam-pocketmod.163
-rw-r--r--support/pdfjam/man1/pdfjam-slides3up.188
-rw-r--r--support/pdfjam/man1/pdfjam-slides6up.187
-rw-r--r--support/pdfjam/man1/pdfjam.118
-rw-r--r--support/pdfjam/man1/pdfjoin.166
-rw-r--r--support/pdfjam/man1/pdfnup.178
-rw-r--r--support/pdfjam/man1/pdfpun.168
-rw-r--r--support/pdfjam/pdfdroplets.pngbin34752 -> 0 bytes
-rw-r--r--support/pdfjam/pdfjam.conf28
29 files changed, 1092 insertions, 1880 deletions
diff --git a/support/pdfjam/PDFjam-README.html b/support/pdfjam/PDFjam-README.html
deleted file mode 100644
index fcfdd9ac01..0000000000
--- a/support/pdfjam/PDFjam-README.html
+++ /dev/null
@@ -1,370 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd"> <html>
-<head>
-<title>PDFjam-README.html</title>
-<!-- pdfmerge, pdfcat, pdfrotate -->
-</head>
-
-<body>
-
-<p><em>Author</em>: David Firth, <a href="http://go.warwick.ac.uk/dfirth">http://go.warwick.ac.uk/dfirth</a></p>
-
-<p> <strong> This file is kept up to date at <a href="http://go.warwick.ac.uk/pdfjam" _mce_href="http://go.warwick.ac.uk/pdfjam">http://go.warwick.ac.uk/pdfjam</a>. </strong> </p>
-<ul>
- <li><a href="#overview">Overview</a> </li>
- <li><a href="#prereq">Pre-requisites</a> </li>
- <li><a href="#documentation">Documentation</a> </li>
- <li><a href="#download">Download</a> </li>
- <li><a href="#install">Installation/configuration</a> </li>
- <li><a href="#using">Using the scripts</a> </li>
- <li><a href="#droplets">Mac OS X only: drag-and-drop</a> </li>
- <li><a href="#faq">FAQ</a> </li>
- <li><a href="#bugs">Reporting bugs</a> </li>
- <li><a href="#history">Version history</a> </li>
-</ul>
-
-<p> <a name="overview"></a> </p>
-
-<h2 align="justify">Overview</h2>
-
-<p><strong>PDFjam</strong> is a small collection of shell scripts which provide a simple interface to much of the functionality of the excellent <a href="http://www.ctan.org/tex-archive/macros/latex/contrib/pdfpages/pdfpages.pdf" title="Link to the pdfpages manual (PDF)">pdfpages <img src="http://www2.warwick.ac.uk/brands/icons/acrobat.gif" alt="PDF file" title="PDF file" border="0" height="16" width="16" /></a> package (by Andreas Matthias) for <a href="http://www.tug.org/applications/pdftex/">pdfLaTeX</a>. These scripts take one or more PDF files (and/or JPG/PNG graphics files) as input, and produce one or more PDF files as output. They are useful for joining files together, selecting pages, reducing several source pages onto one output page, etc., etc.</p>
-
-<p>The main script is named &quot;<strong><tt>pdfjam</tt></strong>&quot;. This is the core of the package.</p>
-
-<p>All of the other scripts provided in the PDFjam package are optional extras. They are simple wrappers for calls to <tt>pdfjam</tt>, designed to perform some common tasks such as joining or n-upping PDF files or to illustrate other features; they are not very elaborate, nor are they extensively tested. They are probably best thought of as simple templates that can be used for constructing more elaborate wrapper scripts as required. At present the wrapper scripts distributed in the PDFjam package are: </p>
-
-<ul>
- <li> <strong><tt>pdfnup</tt></strong>, which allows one or more PDF files to be &quot;n-upped&quot; in roughly the way that <a href="http://www.tardis.ed.ac.uk/~ajcd/psutils/psnup.html"><tt>psnup</tt></a> does for PostScript files. (This was the original motivation: for files that have to be printed, or have to be made available to dozens or hundreds of other people for printing, n-up formatting saves trees!)</li>
- <li><strong><tt>pdfpun</tt></strong>, similar to <tt>pdfnup</tt> but arranges the source pages right-to-left on the output page, ie in a format more suitable for right-to-left languages. This script works only on one file at a time. (Thanks to Ido for suggesting this.)</li>
- <li> <strong><tt>pdfjoin</tt></strong>, which combines the pages of multiple PDF files together into a single file.</li>
- <li> <strong><tt>pdf90</tt></strong>, <strong><tt>pdf180</tt></strong> and <strong><tt>pdf270</tt></strong> which rotate the pages of one or more PDF files.</li>
- <li><strong><tt>pdfflip</tt></strong> which reflects the pages of one or more PDF files. (Suitable for making transparencies if you want to write on the back of them!)</li>
- <li><strong><tt>pdfbook</tt></strong> which arranges pages into 2-up &quot;signatures&quot; (like <a href="http://www.tardis.ed.ac.uk/~ajcd/psutils/psbook.html"><tt>psbook</tt></a> does for PostScript files), suitable for binding into a book. (Many people have suggested that this would be useful &mdash; I hope it is!)</li>
- <li><strong><tt>pdfjam-pocketmod</tt></strong> which converts 8 pages from a single PDF file into a pocket-sized booklet. (<a href="http://repocketmod.com/">Folding instructions here!</a> Thanks to Thomas Nemeth for suggesting this.)</li>
- <li><strong><tt>pdfjam-slides6up</tt></strong> and <strong><tt>pdfjam-slides3up</tt></strong> which process PDF presentation slides to six-per-page or three-per-page for handout purposes. </li>
-</ul>
-
-<p> A potential drawback of <tt>pdfjam</tt> and other scripts based upon it is that any hyperlinks in the source PDF are lost. On the positive side, there is no appreciable degradation of image quality in processing PDF files with these programs, unlike some other indirect methods such as&nbsp; <tt>pdf2ps | psnup | ps2pdf</tt> &nbsp;(in the author's experience). </p>
-
-<p> These tools are designed for Unix-like systems, including Linux and Mac OS X. It seems that they will work also on Windows computers with a suitable installation of <a href="http://www.cygwin.com/">Cygwin</a> (with the Cygwin <tt>tetex-extras</tt> package installed), but this has not been extensively tested.</p>
-
-<p> An alternative set of PDF manipulation tools, which are java-based, is provided by the <a href="http://multivalent.sourceforge.net/">Multivalent</a> project. They do much the same things as <tt>pdfjam</tt>, and quite a bit more. Hyperlinks don't seem to be preserved there either, though, when n-upping a document. </p>
-
-<p> For Mac OS X, n-up with a more visual interface is provided by <a href="http://evolve.lse.ac.uk/software/PDFNupMaker/">PDF Nup Maker</a>. Like <tt>pdfjam</tt>, this is a front end to pdflatex/pdfpages. </p>
-
-<p> The PDFjam software is made available free, under GPL version 2 (see the file named <tt>COPYING</tt> that is included with the package). It comes with ABSOLUTELY NO WARRANTY of fitness for any purpose whatever. </p>
-
-<p> <a name="prereq"></a></p>
-
-<h2 align="justify">Pre-requisites</h2>
-
-<ol>
- <li>A Unix-like operating system (Linux, Mac OS X, Solaris, etc.; possibly Cygwin)</li>
- <li>A working, up-to-date installation of <a href="http://www.tug.org/applications/pdftex">pdfTeX</a> (including <tt>pdflatex</tt> and an up-to-date copy of <a href="http://pdftex-def.berlios.de/"><tt>pdftex.def</tt></a>)</li>
- <li>A working installation of the LaTeX package <a href="http://www.ctan.org/tex-archive/macros/latex/contrib/pdfpages">pdfpages</a> (version 0.4f or later)</li>
-</ol>
-
-<p>Some of the options offered by <tt>pdfjam</tt> also require the LaTeX packages <a href="http://www.ctan.org/tex-archive/macros/latex/contrib/geometry/">geometry</a> and <a href="http://www.ctan.org/tex-archive/macros/latex/contrib/hyperref/">hyperref</a>.</p>
-
-<p> <a name="documentation"></a></p>
-
-<h2 align="justify">Documentation</h2>
-
-<p>The primary documentation for <tt>pdfjam</tt>, and hence for the other scripts that call it, is obtained by </p>
-
-<pre> pdfjam --help
-</pre>
-<p>This gives information on the arguments to <tt>pdfjam</tt>, and the default settings that apply at your installation. In addition to the arguments that are explicitly documented there, <tt>pdfjam</tt> provides access to all of the options of the pdfpages package: that's a large number of options, and it's a set of options that might change, so users are referred to the current <a href="http://www.ctan.org/tex-archive/macros/latex/contrib/pdfpages/pdfpages.pdf" title="Link to the pdfpages manual (PDF)">pdfpages manual <img src="http://www2.warwick.ac.uk/brands/icons/acrobat.gif" alt="PDF file" title="PDF file" border="0" height="16" width="16" /></a> to see what's available.</p>
-
-<p>In addition, each of the scripts has a (rather basic) <tt>man</tt> page. For example,</p>
-
-<pre> man pdfjam-pocketmod
-</pre>
-<p>gives information about usage and other aspects of the <tt>pdfjam-pocketmod</tt> script.</p>
-
-<p> <a name="download"></a></p>
-
-<h2 align="justify">Download</h2>
-
-<p>PDFjam is a project at <a href="http://freshmeat.net/projects/pdfjam/">freshmeat</a>: please subscribe there to receive update announcements.</p>
-
-<p>Download the shell scripts as <a href="http://www2.warwick.ac.uk/fac/sci/statistics/staff/academic/firth/software/pdfjam/pdfjam_latest.tgz">pdfjam_latest.tgz</a>. </p>
-
-<p>(If for some reason you don't want the latest version, you can still get older versions. Since version 2.00 the URLs are all of the form <tt>http://go.warwick.ac.uk/pdfjam/pdfjam_VN.tgz</tt>, with &quot;VN&quot; representing the version number. So &quot;VN&quot; could be 2.00, 2.01, 2.02, 2.03 or 2.04; from PDFjam version 2.05 onwards, the dot will be omitted from the version number in the file name, so &quot;VN&quot; will be 205, 206, etc.)</p>
-
-<p>Various people have kindly packaged PDFjam for distribution in other ways (and perhaps there are some not listed here?): </p>
-
-<ul>
- <li>Eduard Bloch has packaged <a href="http://packages.debian.org/unstable/text/pdfjam">PDFjam for Debian</a> </li>
- <li>Paul Chvostek has made a <a href="http://www.freebsd.org/cgi/ports.cgi?query=pdfjam">port to FreeBSD</a> </li>
- <li>Pander has provided a link to <a href="http://packages.ubuntu.com/search?keywords=pdfjam">Ubuntu packages</a> </li>
- <li>Petr Uzel has made available <a href="http://software.opensuse.org/search?baseproject=ALL&amp;p=1&amp;q=pdfjam">openSUSE packages</a> </li>
- <li>Alexis Ballier has provided a <a href="http://packages.gentoo.org/package/app-text/pdfjam">Gentoo package</a> </li>
- <li>Karl Berry has provided a <a href="http://mirror.ctan.org/support/pdfjam">CTAN package</a>.</li>
-</ul>
-
-<p>Cosmin Popescu has written a <a href="http://qt-apps.org/content/show.php/pdfnup-gui?content=134874.">front-end to the pdfnup script, based on Qt</a>.<br />
- </p>
-
-<p>To download some stand-alone <em>Mac OS X droplets</em> (based on PDFjam version 1.21), see <a href="#droplets">below</a>. </p>
-
-<p> <a name="install"></a></p>
-
-<h2 align="justify">Installation/configuration</h2>
-
-<p>The shell scripts in the <em>bin</em> sub-directory of the package should be placed on the PATH of anyone who needs to use them.</p>
-
-<p>The man files in the <em>man1</em> sub-directory should be installed on the <tt>MANPATH</tt> of all who need to read them.</p>
-
-<p> On many unix-like systems the scripts should run without any further configuration, provided that the pre-requisite TeX installation is present. If you want to check (e.g., prior to installation) that <tt>pdfjam</tt> will work on your system, please unzip the <em>tests</em> sub-directory of the package and follow the instructions that appear in <tt>tests/README-tests.txt</tt>.</p>
-
-<p>If configuration <em>is</em> needed, this can be done through a site-wide or user-specific configuration file. This might be necessary if, for example, your site has a non-standard TeX installation, or a non-standard location for temporary files, or a paper size that is different from the A4 international standard.</p>
-
-<p>The file <a href="pdfjam.conf" title="Sample pdfjam configuration file, plain text"><tt>pdfjam.conf</tt></a> is a sample configuration file which can be edited as needed. After editing, either install the file for site-wide use (at <tt>/etc/pdfjam.conf</tt>, <tt>/usr/share/etc/pdfjam.conf</tt>, <tt>/usr/local/share/pdfjam.conf</tt>, or <tt>/usr/local/etc/pdfjam.conf</tt>) or as a user-defaults file at <tt>~/.pdfjam.conf</tt>. User settings made at <tt>~/.pdfjam.conf</tt> override corresponding settings made in a site-wide configuration file.</p>
-
-<p>For example, if you want your own output to be on &quot;US letter&quot; size paper by default, simply put the line </p>
-
-<pre> paper=letterpaper
-</pre>
-<p> in a plain text file named file <tt>.pdfnup.conf</tt> in your home directory. (The code word <tt>letterpaper</tt> is how LaTeX refers to that particular page size; for other available paper sizes, please see the output of <tt>pdfjam --help</tt>.)</p>
-
-<p>On some systems it might even be necessary to change the list of places (i.e., <tt>/etc/pdfjam.conf</tt> and others as listed above) that is searched for site-wide configuration files. This can only be done by editing the <tt>pdfjam</tt> script itself. To see which directories on <em>your</em> system are searched for a file named <tt>pdfjam.conf</tt>, use </p>
-
-<pre> pdfjam --configpath
-</pre>
-<p> <a name="using"></a></p>
-
-<h2 align="justify">Using the scripts</h2>
-
-<p>For a full overview of what <tt>pdfjam</tt> can do, the importance of the <a href="http://www.ctan.org/tex-archive/macros/latex/contrib/pdfpages/pdfpages.pdf" title="Link to the pdfpages manual (PDF)">pdfpages manual <img src="http://www2.warwick.ac.uk/brands/icons/acrobat.gif" alt="PDF file" title="PDF file" border="0" height="16" width="16" /></a> cannot be stressed enough! The following examples merely serve as a brief introduction.</p>
-
-<h3 align="justify">Example 1</h3>
-
-<p>Consider converting each of two documents to a side-by-side &quot;2-up&quot; format. Since we want the two documents to be processed separately, we'll use the <tt>--batch</tt> option: </p>
-
-<pre> pdfjam --batch --nup 2x1 --suffix 2up --landscape --outfile . file1.pdf file2.pdf
-</pre>
-<p> This will produce new files <tt>file1-2up.pdf</tt> and <tt>file2-2up.pdf</tt> in the current working directory. The above call could be shortened a bit, by using <tt>pdfnup</tt>, to</p>
-
-<pre> pdfnup --batch --suffix 2up file1.pdf file2.pdf
-</pre>
-<p> In a 'vanilla' installation of <tt>pdfjam</tt>, the default for <tt>--outfile</tt> is the current working directory.</p>
-
-<h3 align="justify">Example 2</h3>
-
-<p>Suppose we want a single new document which puts together selected pages from two different files: </p>
-
-<pre> pdfjam file1.pdf '{},2-' file2.pdf '10,3-6' --outfile ../myNewFile.pdf
-</pre>
-<p>The new file <tt>myNewFile.pdf</tt>, in the parent directory of the current one, contains an empty page, followed by all pages of <tt>file1.pdf</tt> except the first, followed by pages 10, 3, 4, 5 and 6 from <tt>file2.pdf</tt>. </p>
-
-<p> The resulting PDF page size will be whatever is the default paper size for you at your site. If instead you want to preserve the page size of (the first included page from) <tt>file1.pdf</tt>, use the option <tt>--fitpaper true</tt>: this is the default action of the <tt>pdfjoin</tt> convenience script. </p>
-
-<p>(All pages in an output file from <tt>pdfjam</tt> will have the same size and orientation: for joining together PDF files while preserving different page sizes and orientations, <tt>pdfjam</tt> is not the tool to use; and since <tt>pdfjoin</tt> simply calls <tt>pdfjam</tt>, the same comment applies also to <tt>pdfjoin</tt>. I'm told that if you have <a href="http://pages.cs.wisc.edu/~ghost/">Ghostscript</a> installed, something along these lines might more nicely join files with different page sizes and orientations: </p>
-
-<pre> gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=finished.pdf file1.pdf file2.pdf
-</pre>
-<p>But I haven't tried it.)</p>
-
-<h3 align="justify">Example 3</h3>
-
-<p>To make a portrait-oriented 4-up file from the pages of three input files, with a thin-line frame around the input pages,</p>
-
-<pre> pdfjam file1.pdf file2.pdf file3.pdf --no-landscape --frame true --nup 2x2 \
- --suffix 4up --outfile ~/Documents
-</pre>
-<p>Here a <em>directory</em> was specified at <tt>--outfile</tt>: the resultant file in this case will be ~/Documents/file3-4up.pdf. (Note that <strong>if there's a writeable file with that name already, it will be overwritten</strong>: no check is made, and no warning given.)</p>
-
-<h3 align="justify">Example 4</h3>
-
-<p>Suppose we have a document made up of &quot;US letter&quot; size pages, and we want to convert it to A4:</p>
-
-<pre> pdfjam 'my US letter file.pdf' --a4paper --outfile 'my A4 file.pdf'
-</pre>
-<h3 align="justify">Example 5</h3>
-
-<p>A useful application of <tt>pdfjam</tt> is for producing a handout from a file of presentation slides. For slides made with the standard 4:3 aspect ratio a nice 6-up handout on A4 paper can be made by </p>
-
-<pre> pdfjam --nup 2x3 --frame true --noautoscale false --delta &quot;0.2cm 0.3cm&quot; \
- --scale 0.95 myslides.pdf --outfile myhandout.pdf
-</pre>
-<p>The <tt>--delta</tt> option here comes from the pdfpages package; the <tt>--scale</tt> option is passed to LaTeX's <tt>\includegraphics</tt> command. </p>
-
-<p>The two wrapper scripts <tt>pdfjam-slides6up</tt> and <tt>pdfjam-slides3up</tt> are provided in order to make this particular application of <tt>pdfjam</tt> easy: for example, </p>
-
-<pre> pdfjam-slides3up --pagenumbering true --batch slides1.pdf slides2.pdf
-</pre>
-<p>makes a pair of 3-up handouts <tt>slides1-3up.pdf</tt> and <tt>slides2-3up.pdf</tt>, with space for side-notes and with the handout pages numbered.</p>
-
-<p>(Slides made by LaTeX's <em>beamer</em> package, using the <tt>handout</tt> class option, work especially nicely with this!)</p>
-
-<h3 align="justify">Example 6</h3>
-
-<p> Suppose we want to trim the pages of our input file prior to n-upping. This can be done by using a pipe: </p>
-
-<pre> pdfjam myfile.pdf --trim '1cm 2cm 1cm 2cm' --clip true --outfile /dev/stdout | \
- pdfnup --frame true --outfile myoutput.pdf
-</pre>
-<p>The <tt>--trim</tt> option specifies an amount to trim from the left, bottom, right and top sides respectively; to work as intended here it needs also <tt>--clip true</tt>. These (i.e., <tt>trim</tt> and <tt>clip</tt>) are in fact options to LaTeX's <tt>\includegraphics</tt> command (in the standard <em>graphics</em> package).</p>
-
-<p>(Thanks to Christophe Lange and Christian Lohmaier for suggesting an example on this.)</p>
-
-<h3 align="justify">Example 7</h3>
-
-<p>To offset the content of double-sided printed pages so that they are suitable for binding with a <a href="http://de.wikipedia.org/wiki/Heftstreifen">Heftstreifen</a>, use the <tt>--twoside</tt> option:</p>
-
-<pre> pdfjam --twoside myfile.pdf --offset '1cm 0cm' --suffix 'offset'
-</pre>
-<h3 align="justify">Example 8</h3>
-
-<p> To use PDF input files whose names do not end in &quot;<tt>.pdf</tt>&quot;, you will need to use the <tt>--checkfiles</tt> option. This depends on the availability of the <tt>file</tt> utility, with support for the options <tt>-Lb</tt>; this can be checked by trying </p>
-
-<pre> file -Lb 'my PDF file'
-</pre>
-<p> where <tt>'my PDF file'</tt> is the name of a PDF file on your system. The result should be something like &quot;<tt>PDF document, version 1.4</tt>&quot; (possibly with a different version number).</p>
-
-<p> With &quot;<tt>file -Lb</tt>&quot; available, we can use PDF files whose names lack the usual &quot;<tt>.pdf</tt>&quot; extension. For example, </p>
-
-<pre> pdfnup --checkfiles 'my PDF file'
-</pre>
-<p>should result in a file named &quot;<tt>my PDF file-nup.pdf</tt>&quot; in the current working directory.</p>
-
-<h3 align="justify">Example 9</h3>
-
-<p>If you want to print a landscape-oriented PDF document on both sides of the paper, using a duplex printer that does not have 'tumble' capability, make a new version with every second page rotated for printing:</p>
-
-<pre> pdfjam --landscape --doublepagestwistodd true my-landscape-document.pdf
-</pre>
-<h3 align="justify">Example 10</h3>
-
-<p> Please feel free to suggest other examples that might help people! (For the email address, see <a href="#bugs">reporting bugs</a>)</p>
-
-<p> <a name="droplets"></a></p>
-
-<h2 align="justify">Mac OS X only: drag-and-drop</h2>
-
-<p>Under <strong>Mac OS X</strong>, <a href="http://www.wsanchez.net/software/">DropScript</a> has been used to make some simple drag-and-drop applications. Some sample droplets are provided in <a href="http://www.warwick.ac.uk/go/pdfjam/pdfdroplets_1.21.dmg">pdfdroplets_1.21.dmg</a>: these may be all you'll need! The sample droplets look like this: </p>
-
-<center> <img src="pdfdroplets.png" border="0" /> </center>
-<p> These droplets assume that your pdflatex is at <tt>/usr/texbin/pdflatex</tt>. If pdflatex lives somewhere else on your system, the droplets won't work until you include in your home directory a file named <tt>.pdfnup.conf</tt> (or there is a system-wide file <tt>pdfnup.conf</tt> at one of the four locations listed above), containing the line </p>
-
-<pre>pdflatex=/path/to/pdflatex
-</pre>
-<p>where <tt> /path/to/pdflatex </tt> is the answer you get when you type <tt> which pdflatex </tt> in the Terminal. (If you get no answer, chances are that you do not have <tt>pdflatex</tt> installed on your Mac; if you need to install it, you could just download and install <a href="http://www.tug.org/mactex">MacTeX</a> or one of its slimmed-down variants.) </p>
-
-<p> <a name="faq"></a></p>
-
-<h2 align="justify">FAQ</h2>
-
-<p> <strong>1. Why &quot;PDFjam&quot;?</strong><br />
- Because it's for PDF files, and jam is what I like best on my toast (well, second best after marmalade, anyway). </p>
-
-<p> <strong>2. The thing runs but the output doesn't look the way it should. Why?</strong><br />
- Most likely either your pdfTeX or your pdfpages installation is an old version. (Check also that <tt>pdftex.def</tt>, to be found in in <tt>.../texmf/tex/latex/graphics/</tt>, is up to date.) If the problem persists even with up-to-date versions of pdfTeX, <tt>pdftex.def</tt> and pdfpages, then please do report it. </p>
-
-<p> <a name="bugs"></a></p>
-
-<h2 align="justify">Reporting bugs</h2>
-
-<p>Please report any bugs found in these scripts, to d.firth (at warwick.ac.uk).</p>
-
-<h3>Some known problems:</h3>
-
-<ul>
- <li> In <em>Cygwin</em>, using <tt>pdfjam</tt> in a pipeline does not seem to work. Scripts like <tt>pdfjam-pocketmod</tt>, which use pipelines, therefore do not work there. The problem seems to be with <em>Cygwin</em>'s handling of file descriptors within pipelines.</li>
-</ul>
-
-<p>Solving these problems is on the to-do list: if you have solved one of them already please let me know!</p>
-
-<p> <a name="history"></a></p>
-
-<h2 align="justify">Version history</h2>
-
-<p> <strong>2.08</strong>: fixed a bug in one of the tests [2010-11-14] </p>
-
-<p> <strong>2.07</strong>: two other common graphics formats (JPG and PNG) are now explicitly allowed as input files (i.e., not only PDF files are allowed as inputs). [2010-11-13] </p>
-
-<p><strong>2.06</strong>: changed the <tt>pdfbook</tt> script to include <tt>--booklet true</tt> as the default behaviour (thanks to Julien Bossert for this good suggestion). [2010-05-11] </p>
-
-<p> <strong>2.05</strong>: changes to the <tt>pdfbook</tt> script [the <tt>--right-edge-binding</tt> option is now redundant, and there's a new <tt>--short-edge</tt> option for binding along the short edge of pages instead of the long edge (thanks to Marco Pessotto for this)]. The <tt>--preamble</tt> option to <tt>pdfjam</tt> is enhanced, to allow multiple instances which get concatenated. Also various minor corrections to man pages. [2010-04-25] </p>
-
-<p> <strong>2.04</strong>: various minor improvements suggested by Debian maintainers (thanks to Eduard Bloch for these). The main things are: addition of the <tt>--version</tt> option; liberalisation of <tt>pdfjam</tt> to allow files in <em>JPEG</em> format to be specified as input, as well as PDF (I don't know why or if this might work! but some people have said it does); tidying of the man files; and more use of <tt>exec</tt>, to avoid forking. [2010-04-22] </p>
-
-<p> <strong>2.03</strong>: fixed a bug which caused problems when your <tt>/bin/sh</tt> is the <em>zsh</em> shell; fixed a bug which prevented the correct representation of many UTF-8 characters in <tt>pdfinfo</tt> data. [2010-04-20] </p>
-
-<p> <strong>2.02</strong>: more progress on portability; introduced the beginnings of a suite of tests; improvements in the <tt>--keepinfo</tt> functionality, and in the treatment of file permissions (thanks to Marco Pessotto for these). [2010-04-14] </p>
-
-<p> <strong>2.01</strong>: fixed a silly bug (thoughtless use of &quot;<tt>test -a</tt>&quot; in a couple of places) which seriously affected portability. [2010-04-13] </p>
-
-<hr color="grey" />
-<p> <strong>2.00</strong>: a <strong>major re-design</strong>. This is not completely backward-compatible with previous versions of the <tt>pdfnup</tt>, <tt>pdfjoin</tt> and <tt>pdf90</tt> scripts. The differences in interface are few, though, and the main ones are listed below. </p>
-
-<p>The main changes are:</p>
-
-<ul>
- <li> The new script <tt>pdfjam</tt> now does all the work; all the other scripts included with the package are just simple wrappers for <tt>pdfjam</tt>. </li>
- <li> <tt>pdfjam</tt> makes available essentially <em>all</em> of the facilities of the pdfpages package (without having to know what they are). </li>
- <li> Various security and portability issues have been resolved. (None of the scripts now calls for <tt>/bin/bash</tt>; and the handling of temporary files is now much safer.) </li>
- <li> <tt>pdfjam</tt> can take PDF input from <tt>/dev/stdin</tt>, and send output to <tt>/dev/stdout</tt>. (This allows <tt>pdfjam</tt> to be used in a pipeline.) </li>
- <li> If the <tt>--outfile</tt> option specifies a relative path, that path is now relative to the <em>current working directory</em> (as is normally expected of unix utilities). <strong>This is different behaviour from previous versions.</strong> </li>
- <li> With multiple input files, <tt>pdfjam</tt> offers two distinct methods of processing. The default is to take pages as specified from the input files, and combine them into a single document. If the <tt>--batch</tt> option is used, <tt>pdfjam</tt> operates <em>separately</em> on the input files, producing one output file per input file. <strong>This is different behaviour from previous versions.</strong> </li>
- <li> Page selection is available separately for each input file. A <strong>difference from previous versions</strong> is that the <tt>--pages</tt> keyword is no longer used. </li>
- <li><tt>pdfjam</tt> uses the <tt>\includepdfmerge</tt> command from <em>pdfpages</em>, as a result of which all pages in an output file have the same size and orientation. <strong>This is different behaviour from previous versions.</strong> </li>
- <li> Output page orientation is now controlled by using <tt>--landscape</tt> (negated, if necessary, by <tt>--no-landscape</tt>). The previous <tt>--orient</tt> option is no longer used, and in particular &quot;<tt>--orient auto</tt>&quot; is no longer available. <strong>This is different behaviour from previous versions.</strong> </li>
- <li> Other new features include:
- <ul>
- <li> <tt>--keepinfo</tt> option, to allow preservation of PDF document information, if the <tt>pdfinfo</tt> utility and the LaTeX <tt>hyperref</tt> package are available (thanks to Robert Wenner for suggesting this); </li>
- <li> <tt>--pdftitle</tt>, <tt>--pdfauthor</tt>, <tt>--pdfsubject</tt> and <tt>--pdfkeywords</tt> options, to specify new PDF document information (these require the LaTeX <tt>hyperref</tt> package); </li>
- <li> many more &quot;named&quot; output page sizes are available if the LaTeX <tt>geometry</tt> package is installed (the full list of allowed paper specifications is: <tt>a0paper, a1paper, a2paper, a3paper, a4paper, a5paper, a6paper b0paper, b1paper, b2paper, b3paper, b4paper, b5paper, b6paper letterpaper, executivepaper, legalpaper</tt>;&nbsp; thanks to Corn&eacute; Verbruggen and Mel Irizarry for suggesting this) and non-standard page sizes can also be defined; </li>
- <li> <tt>--checkfiles</tt> option to request that input files be checked using the <tt>file</tt> utility, rather than requiring the file name to end in &quot;<tt>.pdf</tt>&quot; or &quot;<tt>.PDF</tt>&quot;; </li>
- <li> <tt>--twoside</tt> option, to allow the LaTeX <em>twoside</em> class option to be specified (thanks to Johannes Reinhard for suggesting this); </li>
- <li> <tt>--pagecolor</tt> option, to allow the background colour of output pages to be changed (thanks to James Fisher for suggesting this); </li>
- <li> <tt>--vanilla</tt> option to run <tt>pdfjam</tt> without reading site-wide or user configuration files. </li>
- </ul>
-
- </li>
-</ul>
-
-<p> In addition, various reported bugs have been fixed &mdash; many thanks to all those kind people who reported them (too numerous to list here!) [2010-03-14]</p>
-
-<hr color="grey" />
-<p> <strong>1.21</strong>: bug fixes, including security issues (many thanks to Eduard Bloch, Robert Buchholz and Martin Vaeth for helpful reports on vulnerabilities and for kindly contributing patches); the scripts now call for <tt>/bin/bash</tt> as interpreter; availability of <tt>mktemp</tt> is now also assumed; the Mac OS X droplets now look for <tt>pdflatex</tt> at (by default) <tt>/usr/texbin/pdflatex</tt> [2009-01-19]</p>
-
-<p> <strong>1.20</strong>: added minimal man pages; added extra possible locations for the site-wide configuration file [2005-01-25] </p>
-
-<p> <strong>1.11</strong>: added the <tt>--scale</tt> option to pdfnup, which allows page margins either to be enlarged (e.g,. <tt>--scale 0.9</tt>) or reduced (e.g,. <tt>--scale 1.1</tt>) by scaling the page contents. By popular request! [2004-10-13] </p>
-
-<p> <strong>1.10</strong>: output files now appear by default in same directory as input, rather than in the current working directory; fixed a bug that caused the scripts not to work on some versions of Solaris (thanks to Daniel Gebhart); major improvements to the Mac OS X sample droplets. [2004-06-24] </p>
-
-<p> <strong>1.03</strong>: minor changes towards POSIX compliance. [2004-05-09] </p>
-
-<p> <strong>1.02</strong>: added a COPYING file to the package. [2004-05-08] </p>
-
-<p> <strong>1.00</strong>: package re-named PDFjam. [2004-05-07] </p>
-
-<p> <strong>0.99a</strong>: a minor change to the output of <tt>pdfnup --help</tt> and <tt>pdfjoin --help</tt> [2004-05-06] </p>
-
-<p> <strong>0.99</strong>: various improvements to pdfnup, including the handling of multiple PDF input files. Added pdfjoin and pdf90. [2004-05-05] </p>
-
-<p> <strong>0.97</strong>: corrections to the output of <tt>pdfnup --help</tt> [2004-04-23] </p>
-
-<p> <strong>0.96</strong>: minor changes to comments in the pdfnup script [2004-02-12] </p>
-
-<p> <strong>0.95</strong>: added the possibility of site-specific and user-specific configuration files (thanks to Jason Lewis for suggesting this) [2004-01-28] </p>
-
-<p> <strong>0.9</strong>: added <tt>--openright</tt> (thanks to Jason Lewis for suggesting this) [2004-01-28] </p>
-
-<p> <strong>0.8</strong>: added <tt>pdfnup --help</tt> facility (thanks to Wilfrid Kendall for this suggestion) [2003-09-12] </p>
-
-<p> <strong>0.7</strong>: paths involving spaces now permitted; page trimming added (thanks to Alex Montgomery for suggesting that); default output filename now has a dash inserted before the &quot;nup&quot; label (as in <tt> wasteful-2x2.pdf </tt>); sample Mac OS X droplets provided [2003-01-26] </p>
-
-<p> <strong>0.6</strong>: use of paths involving spaces now reports an error [2002-08-22] </p>
-
-<p> <strong>0.5</strong>: fixed a bug which caused incompatibility with some types of unix [2002-06-24] </p>
-
-<p> <strong>0.4</strong>: better error trapping, improved portability [2002-04-30] </p>
-
-<p> <strong>0.3</strong>: first public release of pdfnup [2002-04-04] </p>
-
-
-</body> </html>
diff --git a/support/pdfjam/README.md b/support/pdfjam/README.md
new file mode 100644
index 0000000000..62f99b2ec5
--- /dev/null
+++ b/support/pdfjam/README.md
@@ -0,0 +1,690 @@
+[![](https://travis-ci.com/DavidFirth/pdfjam.svg?branch=master)](https://travis-ci.com/DavidFirth/pdfjam)
+# pdfjam
+
+_David Firth_ <https://warwick.ac.uk/dfirth>
+
+A snapshot of this page is included as _README.md_
+in the distributed package. The most up-to-date version is maintained online at
+<https://github.com/DavidFirth/pdfjam>.
+
+1. [Overview](#overview)
+ - [What is pdfjam?](#whatis)
+ - [Wrapper scripts no longer included here](#wrappers)
+2. [Pre-requisites](#prereq)
+3. [Documentation](#documentation)
+4. [Installation](#install)
+5. [Configuration](#config)
+6. [Using pdfjam](#using)
+7. [FAQ](#faq)
+8. [Reporting bugs](#bugs)
+9. [Version history](#history)
+
+
+# <a name="overview"> Overview
+
+## <a name="whatis"> What is pdfjam?
+
+The **pdfjam** package makes available the `pdfjam` shell script that provides a
+simple interface to much of the functionality of the excellent
+[pdfpages](http://www.ctan.org/tex-archive/macros/latex/contrib/pdfpages)
+package (by Andreas Matthias) for _LaTeX_. The `pdfjam` script takes one
+or more PDF files (and/or JPG/PNG graphics files) as input, and produces
+one or more PDF files as output. It is useful for joining files together,
+selecting pages, reducing several source pages onto one output page, etc., etc.
+
+A potential drawback of `pdfjam` and other scripts based upon it is that any
+hyperlinks in the source PDF are lost. On the positive side, there is no
+appreciable degradation of image quality in processing PDF files with `pdfjam`,
+unlike some other indirect methods such as `pdf2ps|psnup|ps2pdf`
+(in the author's experience).
+
+`pdfjam` is designed for Unix-like systems, including Linux and Mac OS X.
+It seems that it will work also on Windows computers with a suitable
+installation of [Cygwin](http://www.cygwin.com) (with TeX Live
+installed), but this has not been thoroughly tested.
+
+An alternative set of PDF manipulation tools, which are java-based, is
+provided by the [Multivalent](http://multivalent.sourceforge.net) project.
+Yet another alternative set of tools is [PDFsam](https://pdfsam.org).
+Those alternatives do much the same things as `pdfjam`, and maybe
+quite a bit more too.
+
+The **pdfjam** software is made available free, under GPL version 2 (see the
+file named `COPYING` that is included with the package).
+It comes with **ABSOLUTELY NO WARRANTY** of fitness for any purpose whatever.
+
+## <a name="wrappers"> Wrapper scripts no longer included here
+
+Previous versions of **pdfjam** (before 3.02) included some _other_ scripts too,
+in addition to the `pdfjam` script iteslf.
+Those other scripts are simple wrappers for calls to `pdfjam`, designed to perform
+some common tasks such as joining or n-upping PDF files or to illustrate
+other features; they are not very elaborate, and nor are they extensively tested.
+They are probably best viewed as simple templates that can be used for
+constructing more elaborate wrapper scripts as required.
+
+Those 'wrapper' scripts are **no longer maintained**. I continue to make
+them available in a separate repository
+<https://github.com/DavidFirth/pdfjam-extras>,
+in case anyone wants to see them, to use them, or to improve and maintain
+them independently as a separate project.
+
+The specific wrapper scripts that were removed from the **pdfjam** package
+at version 3.02 are:
+
+- `pdfnup`, `pdfpun`
+- `pdfjoin`
+- `pdf90`, `pdf180`, `pdf270`
+- `pdfflip`
+- `pdfbook`
+- `pdfjam-pocketmod`
+- `pdfjam-slides3up`, `pdfjam-slides6up`
+
+For those scripts and for more information on them, please now see
+<https://github.com/DavidFirth/pdfjam-extras>.
+
+
+# <a name="prereq"> Pre-requisites
+
+- A Unix-like operating system (Linux, Mac OS X, FreeBSD, etc.; possibly Cygwin)
+- A working, up-to-date installation of LaTeX (including at least one of
+ `pdflatex`, `lualatex` or `xelatex`)
+- A working installation of the LaTeX package
+ [**pdfpages**](http://www.ctan.org/tex-archive/macros/latex/contrib/pdfpages)
+ (version 0.4f or later)
+- Some of the options offered by `pdfjam` also require the LaTeX packages
+ [**geometry**](http://www.ctan.org/tex-archive/macros/latex/contrib/geometry)
+ and
+ [**hyperref**](http://www.ctan.org/tex-archive/macros/latex/contrib/hyperref).
+
+For some years now, **pdfjam** has been included in the _TeX Live_ distribution,
+which includes all the necessary programs and packages to make `pdfjam` run smoothly.
+If you have the necessary bandwidth and disk space for it, I do recommend installing
+[_TeX Live_](https://tug.org/texlive/).
+
+# <a name="documentation"></a> Documentation
+
+The primary documentation for `pdfjam` is obtained (after installation of `pdfjam`)
+via the command
+
+```
+pdfjam --help
+```
+
+This gives information on the arguments to `pdfjam`, and the default settings
+that apply at your installation. In addition to the arguments that are explicitly
+documented there, `pdfjam` provides access to all of the options of the
+**pdfpages** package: that's a large number of options, and it's a set of options
+that might change, so users are referred to the current
+[pdfpages manual (PDF)](http://www.ctan.org/tex-archive/macros/latex/contrib/pdfpages/pdfpages.pdf) to see what's available.
+
+In case you want to look at the `pdfjam --help` text template online, for example
+before you decide whether to install **pdfjam**, the source is available at
+<https://github.com/DavidFirth/pdfjam/blob/master/pdfjam-help.txt>.
+
+There is also a (very basic) `man` page, accessed in the usual way
+(after installation) by
+
+```
+man pdfjam
+```
+
+# <a name="install"></a> Installation
+
+There are two main ways:
+
+1. Install the [current _TeX Live_ distribution](https://tug.org/texlive/)
+(how you do this will depend on details of your operating system).
+_TeX Live_ will already contain a recent release of **pdfjam**.
+Many thanks to Karl Berry
+for setting up and maintaining **pdfjam** as a _CTAN_ package that is part of
+_TeX Live_.
+
+2. Install it yourself (e.g., if you don't want _TeX Live_, or if you want a later
+release of **pdfjam** than the one that's currently in _TeX Live_).
+Download the latest packaged release of **pdfjam** from
+<https://github.com/DavidFirth/pdfjam/releases>.
+If for some reason you don't want the latest released version, or even a recently released version, you can still get older versions too: see <https://davidfirth.github.io/pdfjam>.
+
+**The first way, via _TeX Live_, is recommended** as the easiest way for most users.
+
+If you go the second way, then you will have a bit more to do:
+
+- The `pdfjam` shell script in the _bin_ sub-directory of the released package
+ should be placed on the `PATH` of anyone who needs to use it.
+- The `man` file in the _man1_ sub-directory should be installed on the `MANPATH`
+ of all who might need to read it.
+
+# <a name="config"></a> Configuration
+
+On many unix-like systems `pdfjam` should run without any further configuration,
+provided that the pre-requisite TeX installation (such as _TeX Live_) is present.
+If you want to check (e.g., prior to installation) that `pdfjam` will work on
+your system, then
+
+- unzip the `tests.zip` archive (inside the package)
+- `cd` to your newly made `tests` sub-directory and follow the instructions that appear there in `README_tests.md`.
+
+If configuration _is_ needed, this can be done through a site-wide or
+user-specific configuration file. This might be necessary if, for example, your
+site has a non-standard TeX installation, or a non-standard location for
+temporary files, or a specific paper size for output PDFs ---
+or some other reason.
+
+The file
+[pdfjam.conf](https://github.com/DavidFirth/pdfjam/raw/master/pdfjam.conf)
+is a sample configuration file which can be edited as needed. After editing,
+either install the file for site-wide use (at `/etc/pdfjam.conf`,
+`/usr/share/etc/pdfjam.conf`, `/usr/local/share/pdfjam.conf`, or
+`/usr/local/etc/pdfjam.conf`) or as a user-defaults file at `~/.pdfjam.conf`.
+User settings made at `~/.pdfjam.conf` override corresponding settings made
+in a site-wide configuration file.
+
+For example, if you prefer to use `/usr/bin/xelatex` as your default LaTeX engine
+(in place of the standard `pdflatex`), and you want your output page size to be
+"US letter" size paper by default, you would simply include the lines
+
+```
+latex=/usr/bin/xelatex
+paper=letterpaper
+```
+
+in a plain text file named '`.pdfjam.conf`' in your home directory.
+The path `usr/bin/xelatex` specifies exactly _which_ LaTeX program will be
+used: it could be a path to any one of the `pdflatex`, `lualatex` or
+`xelatex` executables. (You can get the full path to an executable
+by, for example, the command `which xelatex`.)
+The code word `letterpaper` is how LaTeX refers to that particular page size.
+For other available paper sizes, and all the many
+other options that could be set as defaults if you want, please see the output of
+
+```
+pdfjam --help
+```
+
+On some systems it might even be necessary to change the list of places
+(i.e., `/etc/pdfjam.conf` and others as listed above) that is searched for
+site-wide configuration files. This can only be done by editing the
+`pdfjam` script itself. To see which directories on _your_ system are
+searched for a file named `pdfjam.conf`, look at the output of
+
+```
+pdfjam --configpath
+```
+
+# <a name="using"></a> Using pdfjam
+
+For a full overview of what `pdfjam` can do, the importance of the
+[pdfpages manual (PDF)](http://www.ctan.org/tex-archive/macros/latex/contrib/pdfpages/pdfpages.pdf)
+cannot be stressed enough!
+The following examples merely serve as a brief introduction.
+
+### Example 1: Batch 2-upping of documents
+
+Consider converting each of two documents to a side-by-side "2-up" format.
+Since we want the two documents to be processed separately, we'll use the
+`--batch` option:
+
+```
+pdfjam --batch --nup 2x1 --suffix 2up --landscape file1.pdf file2.pdf
+```
+
+This will produce new files `file1-2up.pdf` and `file2-2up.pdf` in the current
+working directory.
+
+### Example 2: Merging pages from 2 documents
+
+Suppose we want a single new document which puts together selected pages from two different files:
+
+```
+pdfjam file1.pdf '{},2-' file2.pdf '10,3-6' --outfile ../myNewFile.pdf
+```
+
+The new file `myNewFile.pdf`, in the parent directory of the current one,
+contains an empty page, followed by all pages of `file1.pdf` except the first,
+followed by pages 10, 3, 4, 5 and 6 from `file2.pdf`.
+
+The resulting PDF page size will be whatever is the default paper size for
+you at your site. If instead you want to preserve the page size of
+(the first included page from) `file1.pdf`, use the option `--fitpaper true`.
+
+**All pages in an output file from `pdfjam` will have the same size and
+orientation.** For joining together PDF files while preserving _different_ page
+sizes and orientations, `pdfjam` is not the tool to use.
+
+### Example 3: A 4-up document with frames
+
+To make a portrait-oriented 4-up file from the pages of three input files,
+with a thin-line frame around the input pages:
+
+```
+pdfjam file1.pdf file2.pdf file3.pdf --no-landscape --frame true --nup 2x2 --suffix 4up --outfile ~/Documents
+```
+
+Here a _directory_ was specified at `--outfile`: the resultant file in this
+case will be `~/Documents/file3-4up.pdf`.
+(Note that **if there's a writeable file with that name already, it will be
+overwritten**: no check is made, and no warning given.)
+
+### Example 4: Convert a 'US letter' document to A4
+
+Suppose we have a document made up of 'US letter' size pages,
+and we want to convert it to A4:
+
+```
+pdfjam 'my US letter file.pdf' --a4paper --outfile 'my A4 file.pdf'
+```
+
+### Example 5: Handouts from presentation slides
+
+A useful application of `pdfjam` is for producing a handout from a file of
+presentation slides. For slides made with the standard 4:3 aspect ratio a
+nice 6-up handout on A4 paper can be made by
+
+```
+pdfjam --nup 2x3 --frame true --noautoscale false --delta "0.2cm 0.3cm" --scale 0.95 myslides.pdf --outfile myhandout.pdf
+```
+
+The `--delta` option here comes from the pdfpages package; the `--scale`
+option is passed to LaTeX's `\includegraphics` command.
+
+Slides made by LaTeX's _beamer_ package, using the `handout` class option,
+work especially nicely with this! The example wrapper scripts `pdfjam-slides3up`
+and `pdfjam-slides6up`, in the
+[pdfjam-extras](https://github.com/DavidFirth/pdfjam-extras) repository,
+are for 3-up and 6-up handouts, respectively.
+
+### Example 6: Trimming pages; and piped output
+
+Suppose we want to trim the pages of our input file prior to n-upping.
+This can be done by using a pipe:
+
+```
+pdfjam myfile.pdf --trim '1cm 2cm 1cm 2cm' --clip true --outfile /dev/stdout | pdfjam --nup 2x1 --frame true --outfile myoutput.pdf
+```
+
+The `--trim` option specifies an amount to trim from the left, bottom, right and
+top sides respectively; to work as intended here it needs also `--clip true`.
+These (i.e., `trim` and `clip`) are in fact options to LaTeX's
+`\includegraphics` command (in the standard _graphics_ package).
+
+Thanks go to Christophe Lange and Christian Lohmaier for suggesting
+an example on this.
+
+### Example 7: Output pages suitable for binding
+
+To offset the content of double-sided printed pages so that they are
+suitable for binding with a
+[Heftstreifen](http://de.wikipedia.org/wiki/Heftstreifen), use
+the `--twoside` option:
+
+```
+pdfjam --twoside myfile.pdf --offset '1cm 0cm' --suffix 'offset'
+```
+
+### Example 8: Input file with nonstandard name
+
+To use PDF input files whose names do not end in '`.pdf`', you will need to use
+the `--checkfiles` option. This depends on the availability of the `file`
+utility, with support for the options `-Lb`; this can be checked by trying
+
+```
+file -Lb 'my PDF file'
+```
+
+where `'my PDF file'` is the name of a PDF file on your system.
+The result should be something like '`PDF document, version 1.4`'
+(possibly with a different version number).
+
+With '`file -Lb`' available, we can use PDF files whose names lack the usual
+'`.pdf`' extension. For example,
+
+```
+pdfjam --nup 2x1 --checkfiles 'my PDF file'
+```
+
+will result in a file named '`my PDF file-2x1.pdf`'
+in the current working directory.
+
+### Example 9: Rotate every 2nd page
+
+If you want to print a landscape-oriented PDF document on both sides of the paper,
+using a duplex printer that does not have 'tumble' capability, make a new version
+with every second page rotated for printing:
+
+```
+pdfjam --landscape --doublepagestwistodd true my-landscape-document.pdf
+```
+
+
+# <a name="faq"></a> FAQ
+
+
+**1. The script runs but the output doesn't look the way it should. Why?**
+
+Most likely either your pdfTeX or your pdfpages installation is an old version.
+You could check also that `pdftex.def`, typically to be found in
+`.../texmf/tex/latex/graphics/`,
+is up to date. If the problem persists even with up-to-date versions of pdfTeX,
+`pdftex.def` and pdfpages, then please do report it.
+
+**2. What can I do to solve a 'Too many open files' error?
+
+This error has been reported to occur sometimes, when dealing with large numbers of
+documents/pages. A suggested solution, if this happens,
+is to include additionally (in the call to `pdfjam`):
+
+```
+ -- preamble '\let\mypdfximage\pdfximage \def\pdfximage{\immediate\mypdfximage}'
+```
+
+See for example
+<https://stackoverflow.com/questions/1715677/error-too-many-open-files-in-pdflatex>
+for this suggestion and links to more information.
+
+# <a name="bugs"></a> Reporting bugs
+
+Please report any bugs found in `pdfjam`, either
+
+- by reporting as an issue at GitHub, <https://github.com/DavidFirth/pdfjam/issues>
+- by email (see <https://warwick.ac.uk/dfirth> for my email address)
+
+### Some known problems:
+
+- Sometimes font information (such as ligatures) is lost from the output of
+ `pdfjam`. It seems that a fairly simple fix when this happens is to add the
+ option `--preamble '\pdfinclusioncopyfonts=1'` in your call to `pdfjam`.
+- In _Cygwin_, using `pdfjam` in a pipeline does not seem to work.
+ The problem seems to be with _Cygwin_'s handling of file descriptors
+ within pipelines.
+- The `--preamble` option can sometimes clash with other elements of the LaTeX
+ preamble. Some specific things to watch out for:
+ + If the preamble needs to set further options to the _geometry_ package,
+ when the _geometry_ package has already been loaded in order to
+ set a special page size, be sure to use the `\geometry{}` command for that.
+ + If the preamble needs to set options to the _hyperref_ package, when
+ the _hyperref_ package has already been loaded in order to specify PDF
+ document information, be sure to use the `\hypersetup{}` command for that.
+ + If options to the _color_ package are to be specified in the preamble,
+ do not at the same time use the `--pagecolor` option to `pdfjam`.
+
+
+# <a name="history"> Version history
+
+### Overview of the history
+
+This all grew originally from a script named `pdfnup`. That was later joined,
+in a published package called 'PDFjam', by two further scripts `pdfjoin` and
+`pdf90`.
+
+At version 2.00, everything was unified through a single script `pdfjam`, with
+many more options. Along with `pdfjam` various 'wrapper' scripts --- i.e.,
+other scripts that use `pdfjam` in different ways --- were provided, mainly as
+examples.
+
+From version 3.02, the extra 'wrapper' scripts are removed from the package,
+mainly because they are hard to maintain: different users want different
+things, and `pdfjam` itself provides all the options in any case. So I have
+broken out the wrapper scripts into a separate repository, _unsupported_ ---
+so that people can still see and use/adapt them if they want.
+And maybe even someone else will
+want to take on the task of improving and maintaining some of them,
+who knows? The wrapper scripts (**no longer maintained**) can now be found at
+<https://github.com/DavidFirth/pdfjam-extras>.
+
+### Version release notes
+
+[**3.03**](https://github.com/DavidFirth/pdfjam/releases/tag/v3.03) [2019-11-18]:
+
+- Built package now (again) has tests in a zip archive. (needed for CTAN)
+
+[**3.02**](https://github.com/DavidFirth/pdfjam/releases/tag/v3.02) [2019-11-14]:
+
+- Re-styled the package name to **pdfjam**. (Previously the package --- which then
+ contained several scripts --- was named PDFjam).
+- Moved everything to a new home on the web at
+ <a href="https://github.com/DavidFirth">github.com/DavidFirth</a>.
+- Simplified the package by removal of all the 'wrapper' scripts
+ (`pdfnup`, `pdfjoin`, etc.).
+- Settings specified via `--preamble` are now protected from the normal
+ tidying of the TeX input file to remove redundant packages.
+- The possibility to use `lualatex` or `xelatex` in place of `pdflatex` is
+ now described explicitly in the README. The specification of which LaTeX
+ engine to use can be made either in a configuration file, or on the command
+ line via option (for example) `--latex /usr/bin/xelatex`. Thanks to
+ Mircea for suggesting this.
+- Added new `--runs` option, so as to allow for example `--runs 2` in a situation
+ where two runs of `pdflatex` (or `lualatex` or `xelatex`) are needed (typically
+ where the result document is being indexed in some way, so more than one run is
+ needed). Thanks to Ferdinand for this suggestion (and patch).
+- Default paper size is now guessed from the locale where possible, with fallback
+ default size being ISO A4 ('a4paper' in LaTeX). This can still be over-ridden
+ in a configuration file, or on the command line. Thanks to Jonathan for this
+ suggestion.
+- Innocuous edits made to make pdfjam work better in Cygwin. Thanks to Lucas for
+ sending a helpful patch for this.
+- Included a note in the FAQ about the (sometimes reported) 'Too many open files'
+ error. Thanks to George for information about this.
+- Tidying of the `pdfjam` script, and better organisation of the `tests` folder.
+ Thanks to Lucas for help with this.
+
+----------
+
+_Older releases are still available at <https://davidfirth.github.io/pdfjam>._
+
+**2.09** [never released]:
+
+- The default behaviour of `pdfbook` is reverted to its pre-2.06 state,
+ because `--booklet true` seems to be problematic for some users.
+
+**2.08** [2010-11-14]:
+
+- Fixed a bug in one of the tests.
+
+**2.07** [2010-11-13]:
+
+- Two other common graphics formats (JPG and PNG) are now explicitly
+ allowed as input files (i.e., not only PDF files are allowed as inputs).
+
+**2.06** [2010-05-11]:
+
+- Changed the `pdfbook` script to include `--booklet true` as the
+ default behaviour (thanks to Julien Bossert for this good suggestion).
+
+**2.05** [2010-04-25]:
+
+- Changes to the `pdfbook` script [the `--right-edge-binding` option is
+ now redundant, and there's a new `--short-edge` option for binding along the
+ short edge of pages instead of the long edge (thanks to Marco Pessotto for this).
+- The `--preamble` option to `pdfjam` is enhanced, to allow multiple instances
+ which get concatenated.
+- Also various minor corrections to man pages.
+
+**2.04** [2010-04-22]:
+
+- Various minor improvements suggested by Debian maintainers
+ (thanks to Eduard Bloch for these). The main things are:
+ + addition of the `--version` option;
+ + liberalisation of `pdfjam` to allow files in _JPEG_ format to be
+ specified as input, as well as PDF;
+ + tidying of the man files;
+ + and more use of `exec`, to avoid forking.
+
+**2.03** [2010-04-20]:
+
+- Fixed a bug which caused problems when your `/bin/sh` is the _zsh_ shell.
+- Fixed a bug which prevented the correct representation of many UTF-8 characters
+ in `pdfinfo` data.
+
+**2.02** [2010-04-14]:
+
+- More progress on portability.
+- Introduced the beginnings of a suite of tests.
+- Iimprovements in the `--keepinfo` functionality, and in the treatment of
+ file permissions (thanks to Marco Pessotto for these).
+
+**2.01** [2010-04-13]:
+
+- Fixed a silly bug (thoughtless use of "`test -a`" in a couple of places)
+ which seriously affected portability.
+
+---------------------------------------------------------------
+
+**2.00** [2010-03-14]: **a major re-design**
+
+This is not completely backward-compatible with previous versions of the
+`pdfnup`, `pdfjoin` and `pdf90` scripts.
+The differences in interface are few, though, and the main ones are
+listed below.
+
+- The new script `pdfjam` now does all the work; all the other scripts
+ included with the package are just simple wrappers for `pdfjam`.
+- New `pdfjam` makes available essentially _all_ of the facilities of the
+ pdfpages package (without having to know what they are).
+- Various security and portability issues have been resolved.
+ (None of the scripts now calls for `/bin/bash`; and the handling of
+ temporary files is now much safer.)
+- `pdfjam` can take PDF input from `/dev/stdin`, and send output to
+ `/dev/stdout`. (This allows `pdfjam` to be used in a pipeline.)
+- If the `--outfile` option specifies a relative path, that path is now
+ relative to the _current working directory_ (as is normally expected of
+ unix utilities). **This is different behaviour from previous versions.**
+- With multiple input files, `pdfjam` offers two distinct methods of processing.
+ **This is different behaviour from previous versions.**
+ 1. The default is to take pages as specified from the input files, and
+ combine them into a single document.
+ 2. If the `--batch` option is used, `pdfjam` operates _separately_ on the
+ input files, producing one output file per input file.
+- Page selection is available separately for each input file. A
+ **difference from previous versions** is that the `--pages` keyword is no
+ longer used.
+- `pdfjam` uses the `\includepdfmerge` command from _pdfpages_, as a result
+ of which all pages in an output file have the same size and orientation.
+ **This is different behaviour from previous versions.**
+- Output page orientation is now controlled by using `--landscape` (negated,
+ if necessary, by `--no-landscape`). The previous `--orient` option is no
+ longer used, and in particular "`--orient auto`" is no longer available.
+ **This is different behaviour from previous versions.**
+- Other new features include:
+ + `--keepinfo` option, to allow preservation of PDF document information,
+ if the `pdfinfo` utility and the LaTeX `hyperref` package are
+ available (thanks to Robert Wenner for suggesting this);
+ + `--pdftitle`, `--pdfauthor`, `--pdfsubject` and `--pdfkeywords`
+ options, to specify new PDF document information
+ (these require the LaTeX `hyperref` package);
+ + many more "named" output page sizes are available if the LaTeX
+ `geometry` package is installed (the full list of allowed paper
+ specifications is: `a0paper, a1paper, a2paper, a3paper, a4paper,
+ a5paper, a6paper b0paper, b1paper, b2paper, b3paper, b4paper,
+ b5paper, b6paper letterpaper, executivepaper, legalpaper`;
+ thanks to Corné Verbruggen and Mel Irizarry for suggesting this) and
+ non-standard page sizes can also be defined;
+ + `--checkfiles` option to request that input files be checked using the
+ `file` utility, rather than requiring the file name to end in
+ "`.pdf`" or "`.PDF`";
+ + `--twoside` option, to allow the LaTeX _twoside_ class option to be
+ specified (thanks to Johannes Reinhard for suggesting this);
+ + `--pagecolor` option, to allow the background colour of output pages
+ to be changed (thanks to James Fisher for suggesting this);
+ + `--vanilla` option to run `pdfjam` without reading site-wide or user
+ configuration files.
+- In addition, various reported bugs have been fixed — many thanks to all
+ those kind people who reported them.
+
+---------------------------------------------------------------
+
+**1.21** [2009-01-19]:
+
+- Bug fixes, including security issues (many thanks to Eduard Bloch,
+ Robert Buchholz and Martin Vaeth for helpful reports on vulnerabilities and
+ for kindly contributing patches).
+- The scripts now call for `/bin/bash` as interpreter.
+- Availability of `mktemp` is now also assumed.
+- The Mac OS X droplets now look for `pdflatex` at (by default)
+ `/usr/texbin/pdflatex`
+
+**1.20** [2005-01-25]
+
+- Added minimal man pages.
+- Added extra possible locations for the site-wide configuration file.
+
+**1.11** [2004-10-13]:
+
+- Added the `--scale` option to `pdfnup`, which allows page margins either to
+ be enlarged (e.g,. `--scale 0.9`) or reduced (e.g,. `--scale 1.1`) by
+ scaling the page contents. By popular request!
+
+**1.10** [2004-06-24]:
+
+- Output files now appear by default in same directory as input, rather than in
+ the current working directory; fixed a bug that caused the scripts not to work
+ on some versions of Solaris (thanks to Daniel Gebhart); major improvements to
+ the Mac OS X sample droplets.
+
+**1.03** [2004-05-09]:
+
+- Minor changes towards POSIX compliance.
+
+**1.02** [2004-05-08]:
+
+- Added a COPYING file to the package.
+
+**1.00** [2004-05-07]:
+
+- Package re-named PDFjam.
+
+**0.99a** [2004-05-06]:
+
+- A minor change to the output of `pdfnup --help` and `pdfjoin --help`
+
+**0.99** [2004-05-05]:
+
+- Various improvements to `pdfnup`, including the handling of multiple PDF
+input files. Added `pdfjoin` and `pdf90`.
+
+**0.97** [2004-04-23]:
+
+- Corrections to the output of `pdfnup --help`.
+
+**0.96** [2004-02-12]:
+
+- Minor changes to comments in the `pdfnup` script.
+
+**0.95** [2004-01-28]:
+
+- Added the possibility of site-specific and user-specific configuration
+ files (thanks to Jason Lewis for suggesting this).
+
+**0.9** [2004-01-28]:
+
+- Added `--openright` (thanks to Jason Lewis for suggesting this).
+
+**0.8** [2003-09-12]:
+
+- Added `pdfnup --help` facility (thanks to Wilfrid Kendall for this suggestion).
+
+**0.7** [2003-01-26]:
+
+- Paths involving spaces now permitted.
+- Page trimming added (thanks to Alex Montgomery for suggesting that).
+- Default output filename now has a dash inserted before the "nup" label
+ (as in ` wasteful-2x2.pdf `).
+- Sample Mac OS X droplets provided.
+
+**0.6** [2002-08-22]:
+
+- Use of paths involving spaces now reports an error.
+
+**0.5** [2002-06-24]:
+
+- Fixed a bug which caused incompatibility with some types of unix.
+
+**0.4** [2002-04-30]:
+
+- Better error trapping, improved portability.
+
+**0.3** [2002-04-04]:
+
+- First public release of `pdfnup`.
+
+
diff --git a/support/pdfjam/VERSION b/support/pdfjam/VERSION
index 1971909e63..798241c6af 100644
--- a/support/pdfjam/VERSION
+++ b/support/pdfjam/VERSION
@@ -1 +1 @@
-This is PDFjam 2.08 \ No newline at end of file
+This is pdfjam 3.03 \ No newline at end of file
diff --git a/support/pdfjam/bin/pdf180 b/support/pdfjam/bin/pdf180
deleted file mode 100644
index 6e88947589..0000000000
--- a/support/pdfjam/bin/pdf180
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-##
-## pdf180: A shell program to rotate pages of PDF files
-##
-## Author David Firth (http://go.warwick.ac.uk/dfirth)
-##
-## This is a simple wrapper for pdfjam, version 2.08
-##
-exec pdfjam --suffix rotated180 --angle 180 --fitpaper true "$@"
-
-
diff --git a/support/pdfjam/bin/pdf270 b/support/pdfjam/bin/pdf270
deleted file mode 100644
index 3b4abe1531..0000000000
--- a/support/pdfjam/bin/pdf270
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-##
-## pdf270: A shell program to rotate pages of PDF files
-##
-## Author David Firth (http://go.warwick.ac.uk/dfirth)
-##
-## This is a simple wrapper for pdfjam, version 2.08
-##.
-exec pdfjam --suffix rotated270 --angle 270 --fitpaper true --rotateoversize true "$@"
-
-
diff --git a/support/pdfjam/bin/pdf90 b/support/pdfjam/bin/pdf90
deleted file mode 100644
index dde5df820b..0000000000
--- a/support/pdfjam/bin/pdf90
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-##
-## pdf90: A shell program to rotate pages of PDF files
-##
-## Author David Firth (http://go.warwick.ac.uk/dfirth)
-##
-## This is a simple wrapper for pdfjam, version 2.08
-##
-exec pdfjam --suffix rotated90 --angle 90 --fitpaper true --rotateoversize true "$@"
-
-
diff --git a/support/pdfjam/bin/pdfbook b/support/pdfjam/bin/pdfbook
deleted file mode 100644
index c6490b3881..0000000000
--- a/support/pdfjam/bin/pdfbook
+++ /dev/null
@@ -1,55 +0,0 @@
-#!/bin/sh
-##
-## pdfbook: Rearrange pages of one or more PDF files into 2-up signatures
-##
-## Author David Firth (http://go.warwick.ac.uk/dfirth), with help
-## from Marco Pessotto
-##
-## This is a simple wrapper for pdfjam, version 2.08
-##
-case $1 in
- --short-edge)
- shortedge=true ;
- shift ;
- ;;
- *)
- ;;
-esac
-for arg
-do
- case $arg in
- --signature*)
- ## catches both --signature and --signature*
- signature=true ; break
- ;;
- *) ;;
- esac
-done
-##
-## If $signature is empty, we need to use a default:
-##
-if test -z "$signature" ; then
- signature="--signature 4"
-else
- signature=""
-fi
-##
-## Make the call to pdfjam:
-##
-if test -z "$shortedge"
-then
- exec pdfjam --booklet true --landscape --suffix book $signature "$@"
-else
- (kpsewhich everyshi.sty >/dev/null) || {
- echo "the 'everyshi' package is not installed."; exit 1
- }
- exec pdfjam --booklet true --landscape --suffix book $signature \
- --preamble '\usepackage{everyshi}
-\makeatletter
-\EveryShipout{\ifodd\c@page\pdfpageattr{/Rotate 180}\fi}
-\makeatother
-' "$@"
-fi
-
-
-
diff --git a/support/pdfjam/bin/pdfflip b/support/pdfjam/bin/pdfflip
deleted file mode 100644
index 3088e56a3e..0000000000
--- a/support/pdfjam/bin/pdfflip
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/sh
-##
-## pdfflip: A shell program to "flip over" the pages of PDF files
-##
-## Author David Firth (http://go.warwick.ac.uk/dfirth)
-##
-## This is a simple wrapper for pdfjam, version 2.08
-##
-exec pdfjam --suffix flipped --reflect true --fitpaper true "$@"
diff --git a/support/pdfjam/bin/pdfjam b/support/pdfjam/bin/pdfjam
index e12b466b43..1f7d84454a 100644..100755
--- a/support/pdfjam/bin/pdfjam
+++ b/support/pdfjam/bin/pdfjam
@@ -1,16 +1,17 @@
#!/bin/sh
-version=2.08
+version=3.03
#########################################################################
## ##
## pdfjam: A shell-script interface to the "pdfpages" LaTeX package ##
## ------ ##
## ##
-## Author: David Firth (http://go.warwick.ac.uk/dfirth) ##
+## Author: David Firth (http://warwick.ac.uk/dfirth) ##
## ##
-## Usage: see http://go.warwick.ac.uk/pdfjam or "pdfjam --help" ##
+## Usage: see https://github.com/DavidFirth/pdfjam ##
+## or "pdfjam --help" ##
## ##
## Relies on: ##
-## -- pdflatex ##
+## -- pdflatex (or xelatex or lualatex) ##
## -- the 'pdfpages' package for LaTeX (ideally version >= 0.4f) ##
## ##
## License: GPL version 2 or later. This software comes with ##
@@ -26,6 +27,197 @@ version=2.08
## ##
#########################################################################
##
+## HELP TEXT
+##
+## Defines the output of 'pdfjam --help'
+##
+helptext="
+pdfjam is a shell-script front end to the LaTeX 'pdfpages' package (for
+which, see http://www.ctan.org/tex-archive/macros/latex/contrib/pdfpages).
+
+Usage: pdfjam [OPTIONS] [--] [FILE1 [SEL1]] [FILE2 [SEL2]]...
+where
+* 'FILE1' etc. are PDF files (JPG and PNG files are also allowed). For
+ input from /dev/stdin, use the special name '/dev/stdin' in place of any
+ of FILE1, FILE2, etc: this can be mixed with 'real' files as needed, to
+ allow input through a pipe (note that if /dev/stdin is connected to tty,
+ an error results). If 'FILE1' is absent, pdfjam will use '/dev/stdin'
+ (and will use '-' for the page selection -- see next item).
+* 'SEL1' is a page selection for FILE1, etc.
+ To select all pages (the default) use '-'. See the pdfpages manual for
+ more details. An example:
+ ... file1 '{},2,4-6,9-' ...
+ makes an empty page, followed by pages 2,4,5,6 of file1, followed by pages
+ 9 onwards (up to the end of file1).
+ A page selection can be applied to more than one file, e.g.,
+ ... file1 file2 file3 1-7 ...
+ applies page selection '1-7' to all three files; but for example
+ ... file1 file2 2- file3 1-7 ...
+ would apply the page selection '2-' to file1 and file2, and '1-7'
+ to file3. A page selection applies to all the files *immediately*
+ preceding it in the argument list. A missing page selection defaults to
+ '-'; this includes the case where 'FILE1' is absent and so /dev/stdin gets
+ used by default.
+* 'options' are pdfpages specifications in the form '--KEY VALUE' (see
+ below), or
+ --help (or -h, or -u)
+ Output this text only; no processing of PDF files.
+ --configpath
+ Output the 'configpath' variable and exit immediately; no
+ processing of PDF files.
+ --version (or -V)
+ Output the version number of pdfjam and exit immediately; no
+ processing of PDF files.
+ --quiet (or -q)
+ Suppress verbose commentary on progress.
+ --batch
+ Run pdfjam sequentially on each input file in turn, and
+ produce a separate output file for each input, rather
+ than the default behaviour (which is a single run of
+ pdfjam on all of the input files, producing a single
+ output document). For the location of output
+ files, see '--outfile'. The --batch option cannot be
+ used in the case of input from stdin.
+ --outfile PATH (or -o PATH)
+ Specifies where the output file(s) will go. If PATH is an
+ existing directory, pdfjam will attempt to write its
+ output PDF file(s) there, with name(s) derived from the
+ input file name(s) and the --suffix option (see below).
+ Otherwise the output file will be PATH. If '/dev/stdin'
+ is the only or last input file, PATH cannot be a directory.
+ Your current default PATH for output is:
+ $outFile
+ --suffix STRING
+ Specifies a suffix for output file names, to be used when
+ --outfile is either (a) a directory, or
+ (b) not specified in a --batch call.
+ A good STRING should be descriptive: for example,
+ --suffix 'rotated'
+ would append the text '-rotated' to the name of the input
+ file in order to make the output file name, as in
+ 'myfile-rotated.pdf'. The STRING must not have zero
+ length.
+ [Default for you at this site: suffix=$suffix]
+ --checkfiles
+ --no-checkfiles
+ If the Unix 'file' utility is available, with options
+ -L and -b, the output of 'file -Lb FILE1' should be
+ 'PDF document...' where '...' gives version information.
+ If this is the case on your system you should use
+ '--checkfiles'; otherwise use '--no-checkfiles',
+ in which case all input PDF files must have .pdf or .PDF
+ as their name extension.
+ [Default for you at this site: checkfiles=$checkfiles]
+ --preamble STRING
+ Append the supplied STRING to the preamble of the LaTeX
+ source file(s), immediately before the '\begin{document}'
+ line. An example:
+ pdfjam --nup 2x2 myfile.pdf -o myfile-4up.pdf \\
+ --preamble '\usepackage{fancyhdr} \pagestyle{fancy}'
+ The '--preamble' option can be used, for example, to load
+ LaTeX packages and/or to set global options. If '--preamble'
+ is used more than once in the call, the supplied preamble
+ strings are simply concatenated. For a note on avoiding
+ clashes, see the PDFjam-README file (also available at
+ http://www.pdfjam.net).
+ --keepinfo
+ --no-keepinfo
+ Preserve (or not) Title, Author, Subject and Keywords
+ (from the last input PDF file, if more than one) in the
+ output PDF file. This requires the pdfinfo utility, from
+ the xpdf package, and the LaTeX 'hyperref' package; if
+ either of those is not available, '--keepinfo' is ignored.
+ [Default for you at this site: keepinfo=$keepinfo]
+ --pdftitle STRING
+ --pdfauthor STRING
+ --pdfsubject STRING
+ --pdfkeywords STRING
+ Provide text for the Title, Author, Subject and Keywords
+ in the output PDF file. Requires the LaTeX 'hyperref'
+ package. These options, individually, over-ride --keepinfo.
+ --landscape
+ --no-landscape
+ Specify landscape page orientation (or not) in the
+ output PDF file.
+ [Default for you at this site: landscape=$landscape]
+ --twoside
+ --no-twoside
+ Specify (or not) the 'twoside' document class option.
+ [Default for you at this site: twoside=$twoside]
+ --paper PAPERSPEC (or simply --PAPERSPEC)
+ Specify a LaTeX paper size, for example
+ '--paper a4paper' or simply '--a4paper' for ISO A4 paper.
+ If the LaTeX 'geometry' package is installed, a wider range
+ of paper sizes is available. For details see documentation
+ for LaTeX and/or the 'geometry' package.
+ [Default for you at this site: paper=$paper]
+ --papersize '{WIDTH,HEIGHT}'
+ Specify a custom paper size, e.g.,
+ --papersize '{10in,18cm}'
+ (Note the braces, and the comma!)
+ If the 'geometry' package is not found, this has no effect.
+ --pagecolor RGBSPEC
+ Specify a background colour for the output pages. The
+ RGBSPEC must be a comma-separated trio of integers
+ between 0 and 255. An example:
+ --pagecolor 150,200,150
+ [Default is no background colour]
+ --tidy
+ --no-tidy
+ Specify whether the temporary directory created by
+ pdfjam should be deleted. Use '--no-tidy' to help debug
+ most errors.
+ [Default for you at this site: tidy=$tidy]
+ --latex PATHTOLATEX
+ Specify the LaTeX engine to be used (one of pdflatex,
+ xelatex, lualatex). The PATHTOLATEX string must be
+ the full path to a suitable LaTeX executable (for example
+ /usr/bin/xelatex on many unix systems).
+ [Default for you at this site: latex=$latex]
+ --runs N
+ Run latex N times, for each output document made.
+ [Default for you at this site: runs=$runs]
+ --vanilla
+ Suppress the reading of any site-wide or user-specific
+ configuration files.
+ --KEY VALUE
+ Specify options to '\includepdfmerge', in the LaTeX
+ 'pdfpages' package. Here KEY is the name of any of the
+ many options for '\includepdfmerge', and VALUE is a
+ corresponding value. Examples are
+ --nup 2x1 (for 2-up side-by-side imposition)
+ --scale 0.7 (to scale all input pages to 70% size)
+ --offset '1cm 0.5cm'
+ (to offset all pages -- note the quotes!)
+ --frame true (to put a frame round each input page)
+ --trim '1cm 2cm 1cm 2cm' --clip true
+ (to trim those amounts from left, bottom,
+ right and top, respectively, of input
+ pages)
+ etc., etc. For more information see the manual for
+ the 'pdfpages' package, at
+ http://www.ctan.org/tex-archive/macros/latex/contrib/pdfpages
+* '--' can be used to signal that there are no more options to come.
+
+Defaults for the options '--suffix', '--keepinfo', '--paper', '--outfile',
+'--landscape', '--twoside', '--tidy', '--latex', '--runs', '--checkfiles'
+and '--preamble' can be set in site-wide or user-specific configuration files.
+The path that is searched for site-wide configuration files (named pdfjam.conf)
+at this installation is
+ $configpath
+This configuration path can be changed by editing the pdfjam script if
+necessary. Any user-specific configuration should be put in a file named
+.pdfjam.conf in your home directory. (All of these files are ignored
+if the '--vanilla' argument is used.)
+
+For more information, including a sample configuration file, see
+https://github.com/DavidFirth/pdfjam.
+"
+##
+## END OF HELP TEXT
+##
+#########################################################################
+##
## PRELIMINARIES
##
## First determine:
@@ -50,7 +242,8 @@ do
batch=true ;
;;
--help | -u | -h)
- help=true ;
+ printf "%s\n" "$helptext" ;
+ exit 0 ;
;;
--vanilla)
vanilla=true ;
@@ -73,11 +266,11 @@ OIFS="$IFS"
##
## Record the full filename of the current working diractory
##
-pwd=`pwd`
+pwd=$(pwd)
##
## Trap interrupts so that they kill everything:
##
-trap 'IFS=$OIFS; exit 1' 1 2 9 15
+trap 'IFS=$OIFS; exit 1' 1 2 15
##
## The following will be useful for readability of the script:
##
@@ -95,7 +288,7 @@ escape_chars () {
prattle () { ## second argument here is non-null for continuation lines
if test $verbose = true; then
prefix1=" pdfjam:" ;
- prefix2=`printf "%s" "$prefix1" | sed 's/pdfjam:/ /'` ;
+ prefix2=$(printf "%s" "$prefix1" | sed 's/pdfjam:/ /') ;
indent="" ;
if test "$PDFJAM_CALL_NUMBER" -gt 0 &&
test "$batch" != true
@@ -106,7 +299,7 @@ prattle () { ## second argument here is non-null for continuation lines
lineCounter=0 ;
for line in ${1}
do
- lineCounter=`expr $lineCounter + 1` ;
+ lineCounter=$((lineCounter + 1)) ;
if test $lineCounter -eq 1 && test ! -n "${2}" ;
then
if test -w "$PDFJAM_MESSAGES_FILE"
@@ -149,22 +342,21 @@ prattle "This is pdfjam version ${version}."
## once, the last instance prevails.)
##
## An example configuration file can be found at
-## http://go.warwick.ac.uk/pdfjam
+## https://github.com/DavidFirth/pdfjam
##
## The path searched for site-wide configuration files can be changed
## by editing the variable 'configpath' at the top of this file.
##
##
-## First check whether 'pdflatex' is in the user's path:
-##
-pdflatex=pdflatex
-(hash pdflatex >/dev/null 2>&1) || pdflatex="not found"
+## First get the full path (if it exists) to pdflatex:
##
+latex=$(command -v pdflatex)
+if [ -z "$latex" ] ; then latex="not found" ; fi
##
-## Likewise for the pdfinfo utility (only needed for `--keepinfo'):
+## Likewise for the pdfinfo (only needed for `--keepinfo'):
##
-pdfinfo='pdfinfo'
-(hash pdfinfo >/dev/null 2>&1) || pdfinfo="not found"
+pdfinfo=$(command -v pdfinfo)
+if [ -z "$pdfinfo" ] ; then pdfinfo="not found"; fi
##
##
## Next a permitted location for temporary files on your system:
@@ -179,6 +371,8 @@ outFile="$pwd" ## Output to the current working directory
##
## A few more default settings for pdfjam:
##
+runs=1 ## Run latex just once
+##
tidy='true' ## Delete all temporary files at the end
##
keepinfo='false' ## Don't try to preserve "pdfinfo" data
@@ -193,7 +387,23 @@ suffix='pdfjam' ## Default filename suffix to be used when
##
preamble='' ## Default LaTeX preamble string.
##
-paper='a4paper' ## Default paper size is ISO A4.
+## Guess default paper size from locale if possible, otherwise A4
+##
+if command -v locale >/dev/null ; then
+ paperheight=$(locale -k LC_PAPER | sed -e '1!d' -e 's/.*=//') ;
+ case $paperheight in
+ 297)
+ paper='a4paper' ;
+ ;;
+ 279)
+ paper='letterpaper' ;
+ ;;
+ *)
+ paper='a4paper' ;
+ ;;
+ esac
+else paper='a4paper' ; ## fallback paper size is ISO A4
+fi
##
## END OF SETTINGS MADE DIRECTLY WITHIN THE SCRIPT
##
@@ -204,8 +414,8 @@ if test "$vanilla" != true
then
if test "$PDFJAM_CALL_NUMBER" = 0 ## not a secondary call to pdfjam
then
- configFiles=`printf "%s" "$configpath" | \
- sed 's/:/\/pdfjam.conf:/g; s/$/\/pdfjam.conf/'`
+ configFiles=$(printf "%s" "$configpath" | \
+ sed 's/:/\/pdfjam.conf:/g; s/$/\/pdfjam.conf/')
configFiles="${configFiles}:$HOME/.pdfjam.conf"
PDFJAM_CONFIG=""
prattle "Reading any site-wide or user-specific defaults..."
@@ -213,13 +423,13 @@ then
for d in $configFiles
do
if test -f "$d"; then
- change=`sed '/^ *#.*/d ; s/ *#.*//; s/^ *//' "$d"`
+ change=$(sed '/^ *#.*/d ; s/ *#.*//; s/^ *//' "$d")
comment="## ${newline}## From ${d}: ${newline}##"
PDFJAM_CONFIG="$PDFJAM_CONFIG$comment$newline$change$newline"
fi
done
IFS="$OIFS"
- PDFJAM_CONFIG=`printf "%s" "$PDFJAM_CONFIG" | sed 's/^/ /'`
+ PDFJAM_CONFIG=$(printf "%s" "$PDFJAM_CONFIG" | sed 's/^/ /')
if test "$batch" = true ; then export PDFJAM_CONFIG ; fi
if test -z "$PDFJAM_CONFIG"
then
@@ -236,207 +446,29 @@ else
prattle "files will be read." 1
fi
fi
+## For backwards compatibility, check here for a $pdflatex setting in the config file
+if [ -n "${pdflatex:-}" ] ; then latex="$pdflatex" ; fi
##
## END OF CONFIGURATION BLOCK
##
#########################################################################
##
-## HELP TEXT
-##
-## Defines the output of 'pdfjam --help'
-##
-helptext="
-pdfjam is a shell-script front end to the LaTeX 'pdfpages' package (for
-which, see http://www.ctan.org/tex-archive/macros/latex/contrib/pdfpages).
-
-Usage: pdfjam [OPTIONS] [--] [FILE1 [SEL1]] [FILE2 [SEL2]]...
-where
-* 'FILE1' etc. are PDF files (JPG and PNG files are also allowed). For
- input from /dev/stdin, use the special name '/dev/stdin' in place of any
- of FILE1, FILE2, etc: this can be mixed with 'real' files as needed, to
- allow input through a pipe (note that if /dev/stdin is connected to tty,
- an error results). If 'FILE1' is absent, pdfjam will use '/dev/stdin'
- (and will use '-' for the page selection -- see next item).
-* 'SEL1' is a page selection for FILE1, etc.
- To select all pages (the default) use '-'. See the pdfpages manual for
- more details. An example:
- ... file1 '{},2,4-5,9-' ...
- makes an empty page, followed by pages 2,4,5,6 of file1, followed by pages
- 9 onwards (up to the end of file1).
- A page selection can be applied to more than one file, e.g.,
- ... file1 file2 file3 1-7 ...
- applies page selection '1-7' to all three files; but for example
- ... file1 file2 2- file3 1-7 ...
- would apply the page selection '2-' to file1 and file2, and '1-7'
- to file3. A page selection applies to all the files *immediately*
- preceding it in the argument list. A missing page selection defaults to
- '-'; this includes the case where 'FILE1' is absent and so /dev/stdin gets
- used by default.
-* 'options' are pdfpages specifications in the form '--KEY VALUE' (see
- below), or
- --help (or -h, or -u)
- Output this text only; no processing of PDF files.
- --configpath
- Output the 'configpath' variable and exit immediately; no
- processing of PDF files.
- --version (or -V)
- Output the version number of pdfjam and exit immediately; no
- processing of PDF files.
- --quiet (or -q)
- Suppress verbose commentary on progress.
- --batch
- Run pdfjam sequentially on each input file in turn, and
- produce a separate output file for each input, rather
- than the default behaviour (which is a single run of
- pdfjam on all of the input files, producing a single
- output document). For the location of output
- files, see '--outfile'. The --batch option cannot be
- used in the case of input fron stdin.
- --outfile PATH (or -o PATH)
- Specifies where the output file(s) will go. If PATH is an
- existing directory, pdfjam will attempt to write its
- output PDF file(s) there, with name(s) derived from the
- input file name(s) and the --suffix option (see below).
- Otherwise the output file will be PATH. If '/dev/stdin'
- is the only or last input file, PATH cannot be a directory.
- Your current default PATH for output is:
- $outFile
- --suffix STRING
- Specifies a suffix for output file names, to be used when
- --outfile is either (a) a directory, or
- (b) not specified in a --batch call.
- A good STRING should be descriptive: for example,
- --suffix 'rotated'
- would append the text '-rotated' to the name of the input
- file in order to make the output file name, as in
- 'myfile-rotated.pdf'. The STRING must not have zero
- length.
- [Default for you at this site: suffix=$suffix]
- --checkfiles
- --no-checkfiles
- If the Unix 'file' utility is available, with options
- -L and -b, the output of 'file -Lb FILE1' should be
- 'PDF document...' where '...' gives version information.
- If this is the case on your system you should use
- '--checkfiles'; otherwise use '--no-checkfiles',
- in which case all input PDF files must have .pdf or .PDF
- as their name extension.
- [Default for you at this site: checkfiles=$checkfiles]
- --preamble STRING
- Append the supplied STRING to the preamble of the LaTeX
- source file(s), immediately before the '\begin{document}'
- line. An example:
- pdfjam --nup 2x2 myfile.pdf -o myfile-4up.pdf \\
- --preamble '\usepackage{fancyhdr} \pagestyle{fancy}'
- The '--preamble' option can be used, for example, to load
- LaTeX packages and/or to set global options. If '--preamble'
- is used more than once in the call, the supplied preamble
- strings are simply concatenated.
- --keepinfo
- --no-keepinfo
- Preserve (or not) Title, Author, Subject and Keywords
- (from the last input PDF file, if more than one) in the
- output PDF file. This requires the pdfinfo utility, from
- the xpdf package, and the LaTeX 'hyperref' package; if
- either of those is not available, '--keepinfo' is ignored.
- [Default for you at this site: keepinfo=$keepinfo]
- --pdftitle STRING
- --pdfauthor STRING
- --pdfsubject STRING
- --pdfkeywords STRING
- Provide text for the Title, Author, Subject and Keywords
- in the output PDF file. Requires the LaTeX 'hyperref'
- package. These options, individually, over-ride --keepinfo.
- --landscape
- --no-landscape
- Specify landscape page orientation (or not) in the
- output PDF file.
- [Default for you at this site: landscape=$landscape]
- --twoside
- --no-twoside
- Specify (or not) the 'twoside' document class option.
- [Default for you at this site: twoside=$twoside]
- --paper PAPERSPEC (or simply --PAPERSPEC)
- Specify a LaTeX paper size, for example
- '--paper a4paper' or simply '--a4paper' for ISO A4 paper.
- If the LaTeX 'geometry' package is installed, a wider range
- of paper sizes is available. For details see documentation
- for LaTeX and/or the 'geometry' package.
- [Default for you at this site: paper=$paper]
- --papersize '{WIDTH,HEIGHT}'
- Specify a custom paper size, e.g.,
- --papersize '{10in,18cm}'
- (Note the braces, and the comma!)
- If the 'geometry' package is not found, this has no effect.
- --pagecolor RGBSPEC
- Specify a background colour for the output pages. The
- RGBSPEC must be a comma-separated trio of integers
- between 0 and 255. An example:
- --pagecolor 150,200,150
- [Default is no background colour]
- --tidy
- --no-tidy
- Specify whether the temporary directory created by
- pdfjam should be deleted. Use '--no-tidy' to help debug
- most errors.
- [Default for you at this site: tidy=$tidy]
- --vanilla
- Suppress the reading of any site-wide or user-specific
- configuration files.
- --KEY VALUE
- Specify options to '\includepdfmerge', in the LaTeX
- 'pdfpages' package. Here KEY is the name of any of the
- many options for '\includepdfmerge', and VALUE is a
- corresponding value. Examples are
- --nup 2x1 (for 2-up side-by-side imposition)
- --scale 0.7 (to scale all input pages to 70% size)
- --offset '1cm 0.5cm'
- (to offset all pages -- note the quotes!)
- --frame true (to put a frame round each input page)
- --trim '1cm 2cm 1cm 2cm' --clip true
- (to trim those amounts from left, bottom,
- right and top, respectively, of input
- pages)
- etc., etc. For more information see the manual for
- the 'pdfpages' package, at
- http://www.ctan.org/tex-archive/macros/latex/contrib/pdfpages
-* '--' can be used to signal that there are no more options to come.
-
-Defaults for the options '--suffix', '--keepinfo', '--paper', '--outfile',
-'--landscape', '--twoside', '--tidy', '--checkfiles' and '--preamble' can be
-set in site-wide or user-specific configuration files. The path that is
-searched for site-wide configuration files (named pdfjam.conf) at this
-installation is
- $configpath
-This configuration path can be changed by editing the pdfjam script if
-necessary. Any user-specific configuration should be put in a file named
-.pdfjam.conf in your home directory. (All of these files are ignored
-if the '--vanilla' argument is used.)
-
-For more information, including an example configuration file, see
-http://go.warwick.ac.uk/pdfjam.
-"
-##
-## END OF HELP TEXT
-##
-#########################################################################
-##
## ERROR CODES
##
E_USAGE=64 # command line usage error
-E_DATAERR=65 # data format error
E_NOINPUT=66 # cannot open input
E_UNAVAILABLE=69 # service unavailable
E_SOFTWARE=70 # internal software error
+E_OSFILE=72 # file does not exist or cannot be opened
E_CANTCREATE=73 # can't create (user) output file
E_CONFIG=78 # configuration error
##
## Define a function to print an error message and exit:
##
error_exit () {
- if (test -r "$PDFJAM_MESSAGES_FILE")
+ if [ -r "$PDFJAM_MESSAGES_FILE" ]
then cat "$PDFJAM_MESSAGES_FILE" >&2
- else printf "$messages" 1>&2
+ else printf "%s" "$messages" 1>&2
fi
printf " pdfjam ERROR: %s\n" "$1" 1>&2 ;
exit "$2" ;
@@ -486,19 +518,20 @@ while test -n "${1}${2}"; do
shift ;
continue ;
;;
- --help | -u | -h)
- printf "%s\n" "$helptext" ;
- exit 0;;
--configpath)
printf "%s\n" "$configpath" ;
exit 0;;
--* | -q | -o)
if test "$pageSpecAwaited" = true ; then
## fill in any missing page specs before continuing
- fileSpec=`printf "%s" "$fileSpec" | sed 's/|awaited/|-/g'`
+ fileSpec=$(printf "%s" "$fileSpec" | sed 's/|awaited/|-/g')
pageSpecAwaited=false
fi
case ${1} in
+ --latex)
+ latex="${2}" ;
+ callOptions="$callOptions --latex ${2}" ;
+ shift ;;
--batch)
batch=true ;
;;
@@ -513,7 +546,7 @@ while test -n "${1}${2}"; do
outFile="${2}" ;
if test "$batch" = true
then
- outFile=`escape_chars "$outFile"`
+ outFile=$(escape_chars "$outFile")
fi
callOptions="$callOptions --outfile $outFile" ;
shift ;;
@@ -523,7 +556,7 @@ while test -n "${1}${2}"; do
suffix="${2}" ;
if test "$batch" = true
then
- suffix=`escape_chars "$suffix"`
+ suffix=$(escape_chars "$suffix")
fi
callOptions="$callOptions --suffix $suffix"
shift
@@ -533,6 +566,16 @@ while test -n "${1}${2}"; do
$E_USAGE ;
fi
;;
+ --runs)
+ runs="${2}" ;
+ ## check if the argument is a number > 0
+ if [ "$runs" -lt 1 ] 2> /dev/null; then
+ error_exit \
+ "'--runs' number must be at least 1" \
+ $E_USAGE ;
+ fi
+ callOptions="$callOptions --runs ${2}" ;
+ shift ;;
--tidy)
tidy=true ;
callOptions="$callOptions --tidy" ;
@@ -557,7 +600,7 @@ while test -n "${1}${2}"; do
pdfTitle="${2}" ;
if test "$batch" = true
then
- pdfTitle=`escape_chars "$pdfTitle"`
+ pdfTitle=$(escape_chars "$pdfTitle")
fi
callOptions="$callOptions --pdftitle $pdfTitle" ;
shift ;;
@@ -565,7 +608,7 @@ while test -n "${1}${2}"; do
pdfAuthor="${2}" ;
if test "$batch" = true
then
- pdfAuthor=`escape_chars "$pdfAuthor"`
+ pdfAuthor=$(escape_chars "$pdfAuthor")
fi
callOptions="$callOptions --pdfauthor $pdfAuthor" ;
shift ;;
@@ -573,7 +616,7 @@ while test -n "${1}${2}"; do
pdfSubject="${2}" ;
if test "$batch" = true
then
- pdfSubject=`escape_chars "$pdfSubject"`
+ pdfSubject=$(escape_chars "$pdfSubject")
fi
callOptions="$callOptions --pdfsubject $pdfSubject" ;
shift ;;
@@ -581,7 +624,7 @@ while test -n "${1}${2}"; do
pdfKeywords="${2}" ;
if test "$batch" = true
then
- pdfKeywords=`escape_chars "$pdfKeywords"`
+ pdfKeywords=$(escape_chars "$pdfKeywords")
fi
callOptions="$callOptions --pdfkeywords $pdfKeywords" ;
shift ;;
@@ -596,7 +639,7 @@ while test -n "${1}${2}"; do
--a4paper | --a5paper | --b5paper | --letterpaper | \
--executivepaper | --legalpaper)
## standard LaTeX paper sizes
- paper=`printf "%s" "${1}" | sed 's/^--//'` ;
+ paper=$(printf "%s" "${1}" | sed 's/^--//') ;
callOptions="$callOptions ${1}" ;
;;
--a0paper | --a1paper | --a2paper | --a3paper | \
@@ -605,7 +648,7 @@ while test -n "${1}${2}"; do
## the 'geometry' package is needed
if test "$geometry" != false ;
then
- paper=`printf "%s" "${1}" | sed 's/^--//'` ;
+ paper=$(printf "%s" "${1}" | sed 's/^--//') ;
callOptions="$callOptions ${1}" ;
geometry=true ;
fi ;
@@ -640,7 +683,7 @@ while test -n "${1}${2}"; do
shift ;;
--*)
## options for \includepdfmerge
- argName=`printf "%s" "${1}" | sed 's/^--//'`;
+ argName=$(printf "%s" "${1}" | sed 's/^--//');
value="${2}"
miscOptions=$miscOptions,"$argName=$value" ;
## saved for possible use in LaTeX file
@@ -663,8 +706,8 @@ while test -n "${1}${2}"; do
inputFromStdin=true ;;
-)
if test "$pageSpecAwaited" = true ; then
- fileSpec=`printf "%s" "$fileSpec" | \
- sed 's/|awaited/|-/g'`
+ fileSpec=$(printf "%s" "$fileSpec" | \
+ sed 's/|awaited/|-/g')
pageSpecAwaited=false
else
error_exit "no PDF/JPG/PNG file found at ${1}" \
@@ -674,10 +717,10 @@ while test -n "${1}${2}"; do
## source files and page selections; if not, we'll quit
if test "$checkfiles" = true ; ## not always available
then
- case `file -Lb "${1}"` in
+ case $(file -Lb "${1}") in
"PDF document"*|"JPEG image data"*|"PNG image"*)
## it's a PDF file (or JPG/PNG) as expected
- fileSpec="$fileSpec${newline}"${1}"|awaited"
+ fileSpec="$fileSpec${newline}${1}|awaited"
pageSpecAwaited=true
;;
*)
@@ -691,8 +734,8 @@ while test -n "${1}${2}"; do
*) ## if page spec needed, assume this is it;
## otherwise something is wrong
if test "$pageSpecAwaited" = true ; then
- fileSpec=`printf "%s" "$fileSpec" | \
- sed "s/|awaited/|$1/g"`
+ fileSpec=$(printf "%s" "$fileSpec" | \
+ sed "s/|awaited/|$1/g")
pageSpecAwaited=false
else
error_exit "no PDF/JPG/PNG file found at ${1}" \
@@ -715,8 +758,8 @@ while test -n "${1}${2}"; do
*) ## if page spec needed, assume this is it;
## otherwise something is wrong
if test "$pageSpecAwaited" = true ; then
- fileSpec=`printf "%s" "$fileSpec" | \
- sed "s/|awaited/|$1/g"`
+ fileSpec=$(printf "%s" "$fileSpec" | \
+ sed "s/|awaited/|$1/g")
pageSpecAwaited=false
else
error_exit "no PDF/JPG/PNG file found at ${1}" \
@@ -733,7 +776,7 @@ done
##
## Use the default page spec for any that remain unspecified:
##
-fileSpec=`printf "%s" "$fileSpec" | sed '/^$/d; s/^ //; s/|awaited$/|-/'`
+fileSpec=$(printf "%s" "$fileSpec" | sed '/^$/d; s/^ //; s/|awaited$/|-/')
##
## Check whether input from stdin should be used by default:
if test $PDFJAM_CALL_NUMBER -eq 0 && test "$inputFromStdin" != true
@@ -749,14 +792,14 @@ fi
##
## Delete leading comma from $miscOptions:
##
-miscOptions=`printf "%s" "$miscOptions" | sed 's/^,//'`
+miscOptions=$(printf "%s" "$miscOptions" | sed 's/^,//')
##
if test -n "$preamble"
then callOptions="$callOptions --preamble '$preamble'"
fi
## Delete leading space from $callOptions:
##
-callOptions=`printf "%s" "$callOptions" | sed 's/^ //'`
+callOptions=$(printf "%s" "$callOptions" | sed 's/^ //')
##
## Set up a document options variable:
##
@@ -787,7 +830,7 @@ then
esac
fi
documentOptions="$paper","$orientation","$twoside"
-documentOptions=`printf "%s" "$documentOptions" | sed 's/^,//' | sed 's/,$//'`
+documentOptions=$(printf "%s" "$documentOptions" | sed 's/^,//' | sed 's/,$//')
##
## END OF ARGUMENT PROCESSING
##
@@ -799,18 +842,16 @@ documentOptions=`printf "%s" "$documentOptions" | sed 's/^,//' | sed 's/,$//'`
##
if test $PDFJAM_CALL_NUMBER -eq 0 ## not a secondary call
then
- ## Check whether there's a pdflatex, if "$pdflatex" is still unset:
- case $pdflatex in
+ ## Check whether there's a suitable latex to use:
+ case $latex in
"not found")
error_exit "can't find pdflatex!" $E_UNAVAILABLE
;;
- pdflatex)
- ;;
- *) ## $pdflatex was set in a configuration file
- if test ! -x "$pdflatex"
+ *) ##
+ if test ! -x "$latex"
then
error_exit \
- "configuration error, $pdflatex is not an executable file" \
+ "configuration error, $latex is not an executable file" \
$E_CONFIG
fi
;;
@@ -818,7 +859,7 @@ then
##
## Check that necessary LaTeX packages are installed:
##
- modifyPath=`printf "%s" "$pdflatex" | sed 's/\/[^\/]*$//'`
+ modifyPath=$(printf "%s" "$latex" | sed 's/\/[^\/]*$//')
if [ -n "$modifyPath" ] ; then
PATH="$modifyPath:$PATH"
export PATH
@@ -853,7 +894,7 @@ then
hyperref=false
fi
if test "$geometry" = true
- ## if, if the 'geometry' package is needed for paper size
+ ## ie, if the 'geometry' package is needed for paper size
then
(kpsewhich geometry.sty >/dev/null) || {
prattle "LaTeX package geometry.sty is not installed, so only the"
@@ -911,25 +952,22 @@ fi
## Use mktemp if possible; otherwise fall back on mkdir,
## with random name to make file collisions less likely.
##
-original_umask=`umask`
+original_umask=$(umask)
umask 177
if test $PDFJAM_CALL_NUMBER = 0 ## don't repeat this work for secondary calls
then
PDFJAM_TEMP_DIR=''
trap 'IFS="$OIFS"; \
if test $tidy != false ; then cd "$pwd"; rm -rf "$PDFJAM_TEMP_DIR"; fi; exit 1' \
- 1 2 9 15
+ 1 2 15
trap 'IFS="$OIFS"; \
if test $tidy != false ; then cd "$pwd"; rm -rf "$PDFJAM_TEMP_DIR"; fi' 0
{
- PDFJAM_TEMP_DIR=`
- (umask 077 && mktemp -d "$tempfileDir/pdfjam-XXXXXX") 2>/dev/null
- ` &&
+ PDFJAM_TEMP_DIR=$( (umask 077 && mktemp -d "$tempfileDir/pdfjam-XXXXXX") 2>/dev/null) &&
test -n "$PDFJAM_TEMP_DIR" && test -d "$PDFJAM_TEMP_DIR"
} || {
## We'll use awk to make random number, for portability
- random=`
- awk 'END { srand(); printf ("%d\n", rand()*1000000); }' /dev/null`
+ random=$(awk 'END { srand(); printf ("%d\n", rand()*1000000); }' /dev/null)
PDFJAM_TEMP_DIR="$tempfileDir"/pdfjam"$$"-"$random"
(umask 077 && mkdir "$PDFJAM_TEMP_DIR")
} || exit $?
@@ -942,13 +980,17 @@ then
PDFJAM_MESSAGES_FILE="$PDFJAM_TEMP_DIR"/messages.txt
export PDFJAM_MESSAGES_FILE
## so that secondary calls can write messages there as well
- printf "$messages" > "$PDFJAM_MESSAGES_FILE" ## initial file contents
+ printf "%s" "$messages" > "$PDFJAM_MESSAGES_FILE" ## initial file contents
messages="" ## we won't be using this variable again!
else
- PDFJAM_TEMP_DIR="$PDFJAM_TEMP_DIR"/"file$PDFJAM_CALL_NUMBER"
+ PDFJAM_TEMP_DIR="$PDFJAM_TEMP_DIR/file$PDFJAM_CALL_NUMBER"
(umask 077 && mkdir "$PDFJAM_TEMP_DIR")
fi
-umask $original_umask
+umask "$original_umask"
+## Next is from the Cygwin patch contributed by Lucas
+case $(uname) in
+ *CYGWIN*) PDFJAM_TEMP_DIR=$(cygpath -w "$PDFJAM_TEMP_DIR");;
+esac
##
## TEMPORARY DIRECTORY ALL DONE
##
@@ -970,13 +1012,13 @@ if test "$batch" = true ; then
fi
IFS="$newline"
for k in $fileSpec ; do
- sourcePath=`printf "%s" "$k" | sed 's/|[^|]*$//'`
- pageSpec=`printf "%s" $k | sed 's/.*|//'`
- callNumber=`expr $PDFJAM_CALL_NUMBER + 1`
+ sourcePath=$(printf "%s" "$k" | sed 's/|[^|]*$//')
+ pageSpec=$(printf "%s" $k | sed 's/.*|//')
+ callNumber=$((PDFJAM_CALL_NUMBER + 1))
prattle "--"
prattle "Processing file ${callNumber}, '$sourcePath'..."
prattle "Page spec is '$pageSpec'."
- sourcePath=`escape_chars "$sourcePath"`
+ sourcePath=$(escape_chars "$sourcePath")
PDFJAM_EFFECTIVE_CALL="$0 $callOptions -- $sourcePath $pageSpec"
export PDFJAM_EFFECTIVE_CALL
PDFJAM_CALL_NUMBER=$callNumber
@@ -984,7 +1026,7 @@ if test "$batch" = true ; then
eval "$PDFJAM_EFFECTIVE_CALL"
## i.e., call pdfjam again with one input file
done
- if (test $verbose = true) then cat "$PDFJAM_MESSAGES_FILE" >&2 ; fi
+ if [ "$verbose" = "true" ]; then cat "$PDFJAM_MESSAGES_FILE" >&2 ; fi
IFS=$OIFS
exit 0
fi
@@ -1010,9 +1052,9 @@ else
for k in $fileSpec ; do
## Last substitution on next line is needed for silly characters in
## file names...
- sourcePath=`printf "%s" $k | sed 's/|[^|]*$//'`
- sourcePath=`escape_chars "$sourcePath"`
- pageSpec=`printf "%s" $k | sed 's/.*|//'`
+ sourcePath=$(printf "%s" $k | sed 's/|[^|]*$//')
+ sourcePath=$(escape_chars "$sourcePath")
+ pageSpec=$(printf "%s" $k | sed 's/.*|//')
filePageSpec="$filePageSpec$sourcePath $pageSpec "
done
IFS="$OIFS"
@@ -1024,7 +1066,7 @@ prattle "$theCall" 1
##
#########################################################################
##
-## NOW MAKE THE INPUT FILE ETC., READY FOR PDFLATEX
+## NOW MAKE THE INPUT FILE ETC., READY FOR LATEX
##
filePageList="" ## initialize a string to supply to \includepdfmerge
counter=0
@@ -1036,9 +1078,9 @@ stdinUnread=true
IFS="$newline"
for k in ${fileSpec}
do
- counter=`expr $counter + 1`
- sourcePath=`printf "%s" "$k" | sed 's/|[^|]*$//'`
- pageSpec=`printf "%s" $k | sed 's/.*|//'`
+ counter=$((counter + 1))
+ sourcePath=$(printf "%s" "$k" | sed 's/|[^|]*$//')
+ pageSpec=$(printf "%s" $k | sed 's/.*|//')
## Check, though not exhaustively, for problems with the
## page spec: leading or trailing comma, double comma or
## double dash, alphabetic characters other than the word "last",
@@ -1065,22 +1107,26 @@ do
fi
;;
*)
- pdfName=`basename "$sourcePath"`
- sourceDir=`dirname "$sourcePath"` ## zsh on Mac OS 10.5 chokes here
+ pdfName=$(basename "$sourcePath")
+ sourceDir=$(dirname "$sourcePath") ## zsh on Mac OS 10.5 chokes here
cd "$sourceDir" || exit 1 ## just to get the full path
- sourceDir=`pwd`
+ sourceDir=$(pwd)
cd "$pwd" || exit 1
sourceFullPath="$sourceDir"/"$pdfName"
uniqueName="source-$counter.pdf"
uniqueName="$PDFJAM_TEMP_DIR"/"$uniqueName"
- ln -s "$sourceFullPath" "$uniqueName"
+ ## Next is from the Cygwin patch contributed by Lucas
+ case $(uname) in
+ *CYGWIN*) cp "$sourceFullPath" "$uniqueName";;
+ *) ln -s "$sourceFullPath" "$uniqueName";;
+ esac
;;
esac
filePageList="$filePageList","$uniqueName","$pageSpec"
done
IFS="$OIFS"
-filePageList=`printf "%s" "$filePageList" | \
- sed 's/^,//'` ## remove leading comma
+filePageList=$(printf "%s" "$filePageList" | \
+ sed 's/^,//') ## remove leading comma
##
## Do the pdfinfo stuff (if relevant)...
##
@@ -1089,19 +1135,19 @@ then
if test "$keepinfo" = true
then
prattle "Calling ${pdfinfo}..." ;
- PDFinfo=`pdfinfo "$uniqueName"`;
- pdftitl=`printf "%s" "$PDFinfo" | \
- grep -e '^Title:'| sed s/^Title:\\\s\*// | \
- sed -e 's/[#$%^&_{}~]/\\\&/g'`;
- pdfauth=`printf "%s" "$PDFinfo" | \
- grep -e '^Author:'| sed s/^Author:\\\s\*// | \
- sed -e 's/[#$%^&_{}~]/\\\&/g'`;
- pdfsubj=`printf "%s" "$PDFinfo" | \
- grep -e '^Subject:'| sed s/^Subject:\\\s\*// | \
- sed -e 's/[#$%^&_{}~]/\\\&/g'`;
- pdfkeyw=`printf "%s" "$PDFinfo" | \
- grep -e '^Keywords:'| sed s/^Keywords:\\\s\*// | \
- sed -e 's/[#$%^&_{}~]/\\\&/g'`;
+ PDFinfo=$(pdfinfo "$uniqueName");
+ pdftitl=$(printf "%s" "$PDFinfo" | \
+ grep -e '^Title:'| 'sed s/^Title:\\\s\*//' | \
+ sed -e 's/[#$%^&_{}~]/\\\&/g');
+ pdfauth=$(printf "%s" "$PDFinfo" | \
+ grep -e '^Author:'| sed 's/^Author:\\\s\*//' | \
+ sed -e 's/[#$%^&_{}~]/\\\&/g');
+ pdfsubj=$(printf "%s" "$PDFinfo" | \
+ grep -e '^Subject:'| sed 's/^Subject:\\\s\*//' | \
+ sed -e 's/[#$%^&_{}~]/\\\&/g');
+ pdfkeyw=$(printf "%s" "$PDFinfo" | \
+ grep -e '^Keywords:'| sed 's/^Keywords:\\\s\*//' | \
+ sed -e 's/[#$%^&_{}~]/\\\&/g');
fi
if test -n "$pdfTitle" ; then
pdftitl="$pdfTitle"
@@ -1117,12 +1163,16 @@ then
fi
fi
##
-## Now set up the files for pdflatex...
+## Now set up the files for latex...
##
fileName="$PDFJAM_TEMP_DIR"/a
texFile="$fileName".tex
msgFile="$fileName".msgs
tempFile="$PDFJAM_TEMP_DIR"/temp.tex
+## Next is adapted from the Cygwin patch sent by Lucas
+case $(uname) in
+ *CYGWIN*) filePageList=$(echo "$filePageList" | sed 's~\\~/~g') ;;
+esac
(cat <<EndTemplate
\batchmode
\documentclass[$documentOptions]{article}
@@ -1135,49 +1185,59 @@ tempFile="$PDFJAM_TEMP_DIR"/temp.tex
\hypersetup{pdfsubject={$pdfsubj}}
\hypersetup{pdfkeywords={$pdfkeyw}}
\usepackage{pdfpages}
-$preamble
-\begin{document}
-\includepdfmerge[$miscOptions]{$filePageList}
-\end{document}
EndTemplate
- ) > $texFile
+ ) > "$texFile"
if test "$hyperref" = false; then ## we don't need hyperref
- cp $texFile $tempFile
- sed '/\\\usepackage{hyperref}/d' $tempFile | \
+ cp "$texFile" "$tempFile"
+ sed '/\\\usepackage{hyperref}/d' "$tempFile" | \
sed '/\\\hypersetup.*/d' > "${texFile}"
- rm $tempFile
+ rm "$tempFile"
fi
if test -z "$geometry" ; then geometry=false ; fi
if test "$geometry" = false; then ## geometry package is not to be used
- cp $texFile $tempFile
- cat $tempFile | sed '/\\\usepackage.*{geometry}/d' > $texFile
- rm $tempFile
+ cp "$texFile" "$tempFile"
+ sed '/\\\usepackage.*{geometry}/d' "$tempFile" > "$texFile"
+ rm "$tempFile"
fi
if test -z "$pagecolor"; then ## color package is not needed
- cp $texFile $tempFile
- cat $tempFile | sed '/\\\usepackage.*{color}/d' > $texFile
- rm $tempFile
+ cp "$texFile" "$tempFile"
+ sed '/\\\usepackage.*{color}/d' "$tempFile" > "$texFile"
+ rm "$tempFile"
fi
+(cat <<EndTemplate
+$preamble
+\begin{document}
+\includepdfmerge[$miscOptions]{$filePageList}
+\end{document}
+EndTemplate
+ ) >> "$texFile"
##
## INPUT FILES ARE ALL READY
##
#########################################################################
##
-## RUN PDFLATEX AND COPY THE RESULTING PDF FILE
+## RUN LATEX AND COPY THE RESULTING PDF FILE
##
-prattle "Calling ${pdflatex}..." ;
+if [ "$runs" -eq 1 ] ;
+then prattle "Calling ${latex}..."
+else prattle "Calling ${latex} $runs times..."
+fi
cd "$PDFJAM_TEMP_DIR" || exit 1
failureText=\
"FAILED.
-The call to 'pdflatex' resulted in an error.
+The call to $latex resulted in an error.
If '--no-tidy' was used, you can examine the
log file at
$fileName.log
to try to diagnose the problem."
-$pdflatex $texFile > $msgFile || {
- prattle "$failureText"
- error_exit "Output file not written" $E_SOFTWARE
-}
+i=1
+while [ "$i" -le "$runs" ] ; do
+ $latex "$texFile" > "$msgFile" || {
+ prattle "$failureText"
+ error_exit "Run $i: Output file not written" $E_SOFTWARE
+ }
+ i=$((i + 1))
+done
cd "$pwd" || exit 1
if test -f "$fileName".pdf ## if LaTeX didn't choke
then
@@ -1192,19 +1252,20 @@ then
fi
if test ! -w "$outFile"
then
- prattle "FAILED: no write permission in ${outFile}."
- continue
+ error_exit \
+ "FAILED: no write permission on ${outFile}." \
+ $E_OSFILE
fi
separator="-"
if test "$pageSpec" != "-"
then
separator=-"$pageSpec"-
fi
- outFile=`printf "%s" "$outFile" | sed 's/\/$//'`
+ outFile=$(printf "%s" "$outFile" | sed 's/\/$//')
## (delete any trailing slash)
- pdfName=`basename "$sourcePath"`
- pdfName=`printf "%s" "$pdfName" | \
- sed 's/\.[pP][dD][fF]$//'` ## strip extension
+ pdfName=$(basename "$sourcePath")
+ pdfName=$(printf "%s" "$pdfName" | \
+ sed 's/\.[pP][dD][fF]$//') ## strip extension
pdfName="$pdfName$separator$suffix".pdf
outFile="$outFile"/"$pdfName"
fi
@@ -1214,12 +1275,14 @@ if test -f "$outFile" && test ! -w "$outFile"
then
error_exit "no write permission at ${outFile}" $E_CANTCREATE
fi
-#fileSize=`wc -c < "$fileName.pdf" | sed 's/^\ *//'`
-(cat "$fileName".pdf > "$outFile" 2>/dev/null) &&
- prattle "Finished. Output was to '${outFile}'." ||
- error_exit "cannot write output at ${outFile}" $E_CANTCREATE
-if (test "$PDFJAM_CALL_NUMBER" = "0") && ## not a secondary call
- (test $verbose = true)
+#fileSize=$(wc -c < "$fileName.pdf" | sed 's/^\ *//')
+if cat "$fileName".pdf > "$outFile" 2>/dev/null
+then
+ prattle "Finished. Output was written to '${outFile}'."
+else
+ error_exit "cannot write output at ${outFile}" $E_CANTCREATE
+fi
+if [ "$PDFJAM_CALL_NUMBER" = "0" ] && [ "$verbose" = "true" ]
then cat "$PDFJAM_MESSAGES_FILE" >&2
fi
exit 0
diff --git a/support/pdfjam/bin/pdfjam-pocketmod b/support/pdfjam/bin/pdfjam-pocketmod
deleted file mode 100644
index 72efd0e9db..0000000000
--- a/support/pdfjam/bin/pdfjam-pocketmod
+++ /dev/null
@@ -1,57 +0,0 @@
-#!/bin/sh
-##
-## pdfjam-pocketmod: A shell program to make an 8-page PDF document
-## into an 8-up file with pages ordered and oriented for folding as
-## a pocket-sized booklet, as described at http://repocketmod.com/
-##
-## Author David Firth (http://go.warwick.ac.uk/dfirth)
-##
-## This is a simple wrapper for (three runs of) pdfjam, version 2.08
-##
-##
-## It's hard (?) to set up this particular script to read from /dev/stdin,
-## so we'll just insist that the first argument is a file:
-##
-E_USAGE=64 ## for a command line usage error
-for arg
-do
- case $arg in
- --batch)
- printf "pdfjam-pocketmod ERROR: the --batch option is not allowed\n" 1>&2 ;
- exit "$E_USAGE" ;;
- --no-tidy)
- n='--no-tidy' ;;
- --quiet | -q)
- q='-q' ;;
- --vanilla)
- v='--vanilla' ;;
- --checkfiles)
- c='--checkfiles' ;;
- *)
- ;;
- esac
-done
-##
-sourceFile="$1" ;
-shift ;
-##
-## Some (very) minimal checking of the first argument:
-##
-if test ! -f "$sourceFile" ;
-then
- printf "pdfjam-pocketmod ERROR: first argument must be a PDF file\n" ;
- exit $E_USAGE ;
-fi
-##
-## That's all the argument checking!
-##
-pageSpec="1-8" ## the default page spec
-case ${1} in
- --* | "") ## no page spec was given
- ;;
- *) ## a page spec was given, so use it
- pageSpec="$1" ;
- shift ;;
-esac
-pdfjam $n $q $c $v -o /dev/stdout "$sourceFile" "$pageSpec" | pdfjam --angle 180 $n $q $v -o /dev/stdout /dev/stdin '1,8,7,6' | pdfjam --nup 4x2 --landscape --frame true "$sourceFile" '2-5' /dev/stdin "$@"
-
diff --git a/support/pdfjam/bin/pdfjam-slides3up b/support/pdfjam/bin/pdfjam-slides3up
deleted file mode 100644
index e41e50a7b9..0000000000
--- a/support/pdfjam/bin/pdfjam-slides3up
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/sh
-##
-## pdfjam-slides3up: A shell program to make a 3-up "handout"
-## of presentation slides, with space for side-notes
-##
-## Author David Firth (http://go.warwick.ac.uk/dfirth)
-##
-## This is a simple wrapper for pdfjam, version 2.08
-##
-footskip=3.1cm ## default setting
-pagecommand='{\thispagestyle{empty}}' ## default setting
-case ${1} in
- --pagenumbering)
- case ${2} in
- false)
- continue ;;
- true)
- pagecommand='{\thispagestyle{plain}}' ;;
- *) ## a footskip dimension was supplied
- pagecommand='{\thispagestyle{plain}}' ;
- footskip="$2" ;;
- esac ;
- shift; shift ;;
- *)
- continue ;;
-esac
-exec pdfjam --suffix 3up --nup 1x3 --frame true --noautoscale false \
- --delta "0cm 0.2cm" --scale 0.87 --offset "-3.8cm 0cm" \
- --preamble "\footskip $footskip" --pagecommand "$pagecommand" "$@"
diff --git a/support/pdfjam/bin/pdfjam-slides6up b/support/pdfjam/bin/pdfjam-slides6up
deleted file mode 100644
index bb65d01337..0000000000
--- a/support/pdfjam/bin/pdfjam-slides6up
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/bin/sh
-##
-## pdfjam-slides6up: A shell program to make a 6-up "handout"
-## of presentation slides
-##
-## Author David Firth (http://go.warwick.ac.uk/dfirth)
-##
-## This is a simple wrapper for pdfjam, version 2.08
-##
-footskip=2.7cm ## default setting
-pagecommand='{\thispagestyle{empty}}' ## default setting
-case ${1} in
- --pagenumbering)
- case ${2} in
- false)
- continue ;;
- true)
- pagecommand='{\thispagestyle{plain}}' ;;
- *) ## a footskip dimension was supplied
- pagecommand='{\thispagestyle{plain}}' ;
- footskip="$2" ;;
- esac ;
- shift; shift ;;
- *)
- continue ;;
-esac
-exec pdfjam --suffix 6up --nup 2x3 --frame true --noautoscale false \
- --delta "0.2cm 0.3cm" --scale 0.95 --preamble "\footskip $footskip" \
- --pagecommand "$pagecommand" "$@"
-
-
diff --git a/support/pdfjam/bin/pdfjoin b/support/pdfjam/bin/pdfjoin
deleted file mode 100644
index 923c50d6b6..0000000000
--- a/support/pdfjam/bin/pdfjoin
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/sh
-##
-## pdfjoin: A shell program to concatenate PDF files
-##
-## Author David Firth (http://go.warwick.ac.uk/dfirth)
-##
-## This is a simple wrapper for pdfjam, version 2.08
-##
-E_USAGE=64 ## for a command line usage error
-for arg
-do
- case $arg in
- --batch)
- printf "pdfjoin ERROR: the --batch option is not allowed\n" 1>&2;
- exit "$E_USAGE" ;;
- --orient) ## this was allowed in previous versions of pdfjoin
- printf "pdfjoin ERROR: the --orient option is not allowed,\n" 1>&2;
- printf " use --landscape or --no-landscape to specify\n" 1>&2;
- printf " the output page orientation" 1>&2;
- exit "$E_USAGE" ;;
- *) continue ;;
- esac
-done
-exec pdfjam --fitpaper true --rotateoversize true --suffix joined "$@"
-
-
diff --git a/support/pdfjam/bin/pdfnup b/support/pdfjam/bin/pdfnup
deleted file mode 100644
index 9b2a5f4fda..0000000000
--- a/support/pdfjam/bin/pdfnup
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/sh
-##
-## pdfnup: A shell program to n-up pages of PDF files
-##
-## Author David Firth (http://go.warwick.ac.uk/dfirth)
-##
-## This is a simple wrapper for pdfjam, version 2.08
-##
-E_USAGE=64 ## for a command line usage error
-for arg
-do
- case $arg in
- --orient) ## this was allowed in previous versions of pdfnup
- printf "pdfnup ERROR: the --orient option is not allowed,\n" 1>&2;
- printf " use --landscape or --no-landscape to specify\n" 1>&2;
- printf " the output page orientation" 1>&2;
- exit "$E_USAGE" ;;
- --pages) ## this was allowed in previous versions of pdfnup
- printf "pdfnup ERROR: the --pages option is not allowed,\n" 1>&2;
- printf " see 'pdfjam --help' or http://go.warwick.ac.uk/pdfjam\n" \
- 1>&2;
- printf " for page selection examples\n" 1>&2;
- exit "$E_USAGE" ;;
- *) continue ;;
- esac
-done
-exec pdfjam --suffix nup --nup 2x1 --landscape "$@"
-
-
diff --git a/support/pdfjam/bin/pdfpun b/support/pdfjam/bin/pdfpun
deleted file mode 100644
index a49396d950..0000000000
--- a/support/pdfjam/bin/pdfpun
+++ /dev/null
@@ -1,73 +0,0 @@
-#!/bin/sh
-##
-## pdfpun: A shell program to n-up pages of a PDF file with
-## the n-upped pages ordered from right to left
-##
-## Author David Firth (http://go.warwick.ac.uk/dfirth)
-##
-## This is a simple wrapper for (three runs of) pdfjam, version 2.08
-##
-##
-E_USAGE=64 ## for a command line usage error
-##
-for arg
-do
- case $arg in
- --batch)
- printf "pdfpun ERROR: the --batch option is not allowed\n" 1>&2;
- exit "$E_USAGE" ;;
- --no-tidy)
- n='--no-tidy' ;;
- --quiet | -q)
- q='-q' ;;
- --checkfiles)
- c='--checkfiles' ;;
- *) continue ;;
- esac
-done
-sourceFile="$1" ;
-shift ;
-##
-## Some (very) minimal checking of the first argument:
-##
-if test ! -f "$sourceFile" ;
-then
- printf "pdfpun ERROR: first argument must be a PDF file\n" ;
- exit $E_USAGE ;
-fi
-if test "$sourceFile" = /dev/stdin ;
-then
- if tty -s ; then
- printf "pdfpun ERROR: tty is connected to connected to stdin, no PDF file found\n"
- exit $E_USAGE ;
- fi
-fi
-##
-## That's all the argument checking!
-##
-pageSpec="-" ## the default
-case ${1} in
- --* | "")
- ;;
- *) ## a page spec was given
- pageSpec="$1" ;
- shift ;;
-esac
-case ${1} in
- --outfile)
- outFile="$2" ;
- shift; shift ;;
- *)
- ;;
-esac
-if test -z "$outFile" ;
-then
- printf "pdfpun ERROR: no output file specified\n" 1>&2 ;
- exit "$E_USAGE" ;
-fi
-pdfjam --reflect true $n $q $c "$sourceFile" "$pageSpec" -o /dev/stdout | \
- pdfjam --landscape --nup 2x1 "$@" -o /dev/stdout | \
- pdfjam --suffix nup --reflect true --fitpaper true $n $q -o "$outFile"
-
-
-
diff --git a/support/pdfjam/man1/pdf180.1 b/support/pdfjam/man1/pdf180.1
deleted file mode 100644
index 08f47b5a9c..0000000000
--- a/support/pdfjam/man1/pdf180.1
+++ /dev/null
@@ -1,74 +0,0 @@
-.TH "pdf180" "1" "10 March 2010" "" ""
-.SH "NAME"
-pdf180 \- rotate the pages of pdf files
-.SH "SYNOPSIS"
-.PP
-pdf180 [OPTION [OPTION] \&.\&.\&.] [SRC [PAGESPEC] [SRC [PAGESPEC]] \&.\&.\&.]
-.PP
-.SH "DESCRIPTION"
-.PP
-pdf180 rotates the pages of files in the Adobe Portable Document Format (PDF)
-through 180 degrees\&.
-.PP
-If no source PDF file ('SRC') is specified, input
-is from /dev/stdin. If 'PAGESPEC' is omitted, all pages are processed.
-.PP
-Source files are processed sequentially into a single output
-unless the '--batch' option is used, in which case they are processed
-separately.
-.PP
-pdf180 operates on one or more PDF files, and (either with the '--batch'
-option or with '--outfile DIR' where 'DIR' is a directory) the
-resulting files have
-the suffix '-rotated180' applied to their names by default. To change
-the suffix,
-use the '--suffix' option, for example
-.PP
-.RS
-.B pdf180 --suffix 'upturned' --batch myfile1.pdf myfile2.pdf
-.RE
-.PP
-will result in files named 'myfile1-upturned.pdf' and 'myfile2-upturned.pdf'.
-.PP
-pdf180 is a simple wrapper for pdfjam, which is a front end to many of the capabilities of the pdfpages
-package for pdflatex\&. A working installation of pdflatex with
-the pdfpages package is required\&.
-.PP
-pdf180 is part of the "PDFjam" package of tools, whose homepage is at
-http://go.warwick.ac.uk/pdfjam\&.
-.PP
-.SH "SETUP"
-.PP
-See http://go.warwick.ac.uk/pdfjam .
-.PP
-.SH "USAGE"
-.PP
-For the available options and site/user defaults, see the output of
-.PP
-.RS
- pdfjam --help
-.RE
-.PP
-For further information and some examples see
-http://go.warwick.ac.uk/pdfjam \&.
-.PP
-.SH "LIMITATIONS AND BUGS"
-.PP
-pdf180 does not work with encrypted PDF files, and does not
-preserve hyperlinks.
-.PP
-Please report bugs! See the website at
-http://go.warwick.ac.uk/pdfjam \&.
-.PP
-.SH "SEE ALSO"
-.PP
-pdfjam(1)\&.
-.PP
-.SH "LICENSE"
-.PP
-PDFjam is distributed under the GNU public license\&.
-.PP
-.SH "AUTHOR"
-.PP
-pdf180 is written and maintained by David Firth as part of the PDFjam package\&.
-
diff --git a/support/pdfjam/man1/pdf270.1 b/support/pdfjam/man1/pdf270.1
deleted file mode 100644
index b229678cf8..0000000000
--- a/support/pdfjam/man1/pdf270.1
+++ /dev/null
@@ -1,74 +0,0 @@
-.TH "pdf270" "1" "10 March 2010" "" ""
-.SH "NAME"
-pdf270 \- rotate the pages of pdf files
-.SH "SYNOPSIS"
-.PP
-pdf270 [OPTION [OPTION] \&.\&.\&.] [SRC [PAGESPEC] [SRC [PAGESPEC]] \&.\&.\&.]
-.PP
-.SH "DESCRIPTION"
-.PP
-pdf270 rotates the pages of files in the Adobe Portable Document Format (PDF)
-through 90 degrees (clockwise)\&.
-.PP
-If no source PDF file ('SRC') is specified, input
-is from /dev/stdin. If 'PAGESPEC' is omitted, all pages are processed.
-.PP
-Source files are processed sequentially into a single output
-unless the '--batch' option is used, in which case they are processed
-separately.
-.PP
-pdf270 operates on one or more PDF files, and (either with the '--batch'
-option or with '--outfile DIR' where 'DIR' is a directory) the
-resulting files have
-the suffix 'rotated270' applied to their names by default. To change
-the suffix,
-use the '--suffix' option, for example
-.PP
-.RS
-.B pdf270 --suffix '-turned' --batch myfile1.pdf myfile2.pdf
-.RE
-.PP
-will result in files named 'myfile1-turned.pdf' and 'myfile2-turned.pdf'.
-.PP
-pdf270 is a simple wrapper for pdfjam, which is a front end to many of the capabilities of the pdfpages
-package for pdflatex\&. A working installation of pdflatex with
-the pdfpages package is required\&.
-.PP
-pdf270 is part of the "PDFjam" package of tools, whose homepage is at
-http://go.warwick.ac.uk/pdfjam\&.
-.PP
-.SH "SETUP"
-.PP
-See http://go.warwick.ac.uk/pdfjam .
-.PP
-.SH "USAGE"
-.PP
-For the available options and site/user defaults, see the output of
-.PP
-.RS
- pdfjam --help
-.RE
-.PP
-For further information and some examples see
-http://go.warwick.ac.uk/pdfjam .
-.PP
-.SH "LIMITATIONS AND BUGS"
-.PP
-pdf270 does not work with encrypted PDF files, and does not
-preserve hyperlinks.
-.PP
-Please report bugs! See the website at
-http://go.warwick.ac.uk/pdfjam \&.
-.PP
-.SH "SEE ALSO"
-.PP
-pdfjam(1)\&.
-.PP
-.SH "LICENSE"
-.PP
-PDFjam is distributed under the GNU public license\&.
-.PP
-.SH "AUTHOR"
-.PP
-pdf270 is written and maintained by David Firth as part of the PDFjam package\&.
-
diff --git a/support/pdfjam/man1/pdf90.1 b/support/pdfjam/man1/pdf90.1
deleted file mode 100644
index c04a36137a..0000000000
--- a/support/pdfjam/man1/pdf90.1
+++ /dev/null
@@ -1,74 +0,0 @@
-.TH "pdf90" "1" "10 March 2010" "" ""
-.SH "NAME"
-pdf90 \- rotate the pages of pdf files
-.SH "SYNOPSIS"
-.PP
-pdf90 [OPTION [OPTION] \&.\&.\&.] [SRC [PAGESPEC] [SRC [PAGESPEC]] \&.\&.\&.]
-.PP
-.SH "DESCRIPTION"
-.PP
-pdf90 rotates the pages of files in the Adobe Portable Document Format (PDF)
-through 90 degrees (anti-clockwise)\&.
-.PP
-If no source PDF file ('SRC') is specified, input
-is from /dev/stdin. If 'PAGESPEC' is omitted, all pages are processed.
-.PP
-Source files are processed sequentially into a single output
-unless the '--batch' option is used, in which case they are processed
-separately.
-.PP
-pdf90 operates on one or more PDF files, and (either with the '--batch'
-option or with '--outfile DIR' where 'DIR' is a directory) the
-resulting files have
-the suffix 'rotated90' applied to their names by default. To change
-the suffix,
-use the '--suffix' option, for example
-.PP
-.RS
-.B pdf90 --suffix '-turned' --batch myfile1.pdf myfile2.pdf
-.RE
-.PP
-will result in files named 'myfile1-turned.pdf' and 'myfile2-turned.pdf'.
-.PP
-pdf90 is a simple wrapper for pdfjam, which is a front end to many of the capabilities of the pdfpages
-package for pdflatex\&. A working installation of pdflatex with
-the pdfpages package is required\&.
-.PP
-pdf90 is part of the "PDFjam" package of tools, whose homepage is at
-http://go.warwick.ac.uk/pdfjam\&.
-.PP
-.SH "SETUP"
-.PP
-See http://go.warwick.ac.uk/pdfjam .
-.PP
-.SH "USAGE"
-.PP
-For the available options and site/user defaults, see the output of
-.PP
-.RS
- pdfjam --help
-.RE
-.PP
-For further information and some examples see
-http://go.warwick.ac.uk/pdfjam .
-.PP
-.SH "LIMITATIONS AND BUGS"
-.PP
-pdf90 does not work with encrypted PDF files, and does not
-preserve hyperlinks.
-.PP
-Please report bugs! See the website at
-http://go.warwick.ac.uk/pdfjam \&.
-.PP
-.SH "SEE ALSO"
-.PP
-pdfjam(1)\&.
-.PP
-.SH "LICENSE"
-.PP
-PDFjam is distributed under the GNU public license\&.
-.PP
-.SH "AUTHOR"
-.PP
-pdf90 is written and maintained by David Firth as part of the PDFjam package\&.
-
diff --git a/support/pdfjam/man1/pdfbook.1 b/support/pdfjam/man1/pdfbook.1
deleted file mode 100644
index 75f72bd5ae..0000000000
--- a/support/pdfjam/man1/pdfbook.1
+++ /dev/null
@@ -1,86 +0,0 @@
-.TH "pdfbook" "1" "10 March 2010" "" ""
-.SH "NAME"
-pdfbook \- put the pages of PDF files into 2-up signatures
-.SH "SYNOPSIS"
-.PP
-pdfbook [--short-edge] [OPTION [OPTION] \&.\&.\&.] [SRC [PAGESPEC] [SRC [PAGESPEC]] \&.\&.\&.]
-.PP
-.SH "DESCRIPTION"
-.PP
-pdfbook makes 2-up versions of PDF files, with the pages ordered as
-signatures. The default signature size is 4: to change this, use the
-option '--signature N', where N is a multiple of 4 (alternatively use '--signature* N' for
-right-edge binding).
-.PP
-The default is to make pages suitable for long-edge binding. For short-edge
-binding, use '--short-edge' as the first argument; this will only work if the LaTeX package 'everyshi' is installed.
-.PP
-The default output page orientation is
-landscape. To change this, use the '--no-landscape' option.
-.PP
-By default, the option '--booklet true' is used (see the pdfpages manual
-for details). To turn this off, just specify '--booklet false'.
-.PP
-If no source PDF file ('SRC') is specified, input
-is from /dev/stdin. If 'PAGESPEC' is omitted, all pages are processed.
-.PP
-Source files are processed sequentially into a single output
-unless the '--batch' option is used, in which case they are processed
-separately.
-.PP
-pdfbook is a simple wrapper for pdfjam, which provides a front end to
-many of the capabilities of the pdfpages
-package for pdflatex\&. A working installation of pdflatex, with
-the pdfpages package, is required\&.
-.PP
-pdfbook operates on one or more PDF files, and (either with the '--batch'
-option or with '--outfile DIR' where 'DIR' is a directory) the
-resulting files have
-the suffix '-book' applied to their names by default. To change the suffix,
-use the '--suffix' option, for example
-.PP
-.RS
-.B pdfbook --suffix 'sig4' --batch myfile1.pdf myfile2.pdf
-.RE
-.PP
-will result in files named 'myfile1-sig4.pdf' and 'myfile2-sig4.pdf'.
-.PP
-pdfbook is part of the "PDFjam" package of tools, whose homepage is at
-http://www.warwick.ac.uk/go/pdfjam\&.
-.PP
-.SH "SETUP"
-.PP
-See http://go.warwick.ac.uk/pdfjam .
-.PP
-.SH "USAGE"
-.PP
-For the other available options and
-site/user defaults, see the output of
-.PP
-.RS
-.B pdfjam --help
-.RE
-.PP
-For further information and some examples see
-http://go.warwick.ac.uk/pdfjam .
-.PP
-.SH "LIMITATIONS AND BUGS"
-.PP
-pdfbook does not work with encrypted PDF files, and does not
-preserve hyperlinks.
-.PP
-Please report bugs! See the website at
-http://www.warwick.ac.uk/go/pdfjam \&.
-.PP
-.SH "LICENSE"
-.PP
-PDFjam is distributed under the GNU public license\&.
-.PP
-.SH "SEE ALSO"
-.PP
-pdfjam(1)\&.
-.PP
-.SH "AUTHOR"
-.PP
-pdfbook is written and maintained by David Firth as part of the PDFjam package\&.
-
diff --git a/support/pdfjam/man1/pdfflip.1 b/support/pdfjam/man1/pdfflip.1
deleted file mode 100644
index 9761790d9f..0000000000
--- a/support/pdfjam/man1/pdfflip.1
+++ /dev/null
@@ -1,73 +0,0 @@
-.TH "pdfflip" "1" "10 March 2010" "" ""
-.SH "NAME"
-pdfflip \- rotate the pages of pdf files
-.SH "SYNOPSIS"
-.PP
-pdfflip [OPTION [OPTION] \&.\&.\&.] [SRC [PAGESPEC] [SRC [PAGESPEC]] \&.\&.\&.]
-.PP
-.SH "DESCRIPTION"
-.PP
-pdfflip reflects (left-right) the pages of files in the Adobe Portable Document Format (PDF)\&.
-.PP
-If no source PDF file ('SRC') is specified, input
-is from /dev/stdin. If 'PAGESPEC' is omitted, all pages are processed.
-.PP
-Source files are processed sequentially into a single output
-unless the '--batch' option is used, in which case they are processed
-separately.
-.PP
-pdfflip operates on one or more PDF files, and (either with the '--batch'
-option or with '--outfile DIR' where 'DIR' is a directory) the
-resulting files have
-the suffix '-flipped' applied to their names by default. To change
-the suffix,
-use the '--suffix' option, for example
-.PP
-.RS
-.B pdfflip --suffix 'reflected' --batch myfile1.pdf myfile2.pdf
-.RE
-.PP
-will result in files named 'myfile1-reflected.pdf' and 'myfile2-reflected.pdf'.
-.PP
-pdfflip is a simple wrapper for pdfjam, which is a front end to many of the capabilities of the pdfpages
-package for pdflatex\&. A working installation of pdflatex with
-the pdfpages package is required\&.
-.PP
-pdfflip is part of the "PDFjam" package of tools, whose homepage is at
-http://go.warwick.ac.uk/pdfjam\&.
-.PP
-.SH "SETUP"
-.PP
-See http://go.warwick.ac.uk/pdfjam .
-.PP
-.SH "USAGE"
-.PP
-For the available options and site/user defaults, see the output of
-.PP
-.RS
- pdfjam --help
-.RE
-.PP
-For further information and some examples see
-http://go.warwick.ac.uk/pdfjam .
-.PP
-.SH "LIMITATIONS AND BUGS"
-.PP
-pdfflip does not work with encrypted PDF files, and does not
-preserve hyperlinks.
-.PP
-Please report bugs! See the website at
-http://go.warwick.ac.uk/pdfjam \&.
-.PP
-.SH "SEE ALSO"
-.PP
-pdfjam(1)\&.
-.PP
-.SH "LICENSE"
-.PP
-PDFjam is distributed under the GNU public license\&.
-.PP
-.SH "AUTHOR"
-.PP
-pdfflip is written and maintained by David Firth as part of the PDFjam package\&.
-
diff --git a/support/pdfjam/man1/pdfjam-pocketmod.1 b/support/pdfjam/man1/pdfjam-pocketmod.1
deleted file mode 100644
index 4c51ef7880..0000000000
--- a/support/pdfjam/man1/pdfjam-pocketmod.1
+++ /dev/null
@@ -1,63 +0,0 @@
-.TH "pdfjam-pocketmod" "1" "10 March 2010" "" ""
-.SH "NAME"
-pdfjam-pocketmod
-\- make an 8-page PDF document into a pocket-sized booklet
-.SH "SYNOPSIS"
-.PP
-.B pdfjam-pocketmod SRC [PAGESPEC] [OPTION [OPTION] \&.\&.\&.]
-.PP
-.SH "DESCRIPTION"
-.PP
-pdfjam-pocketmod converts 8 pages of a PDF file into a single 8-up page, with pages ordered and oriented for folding into pocket-sized booklet
-( as described at http://repocketmod.com/ )\&.
-.PP
-SRC must be a regular PDF file (not /dev/stdin).
-.PP
-If PAGESPEC is omitted, the first 8 pages are processed.
-.PP
-OPTION is any option to pdfjam(1) other than --batch.
-.PP
-pdfjam-pocketmod is a simple wrapper for pdfjam, which provides a front end to some of the capabilities of the pdfpages
-package for pdflatex\&. A working installation of pdflatex, with
-the pdfpages package, is required\&.
-.PP
-pdfjam-pocketmod is part of the "PDFjam" package of tools, whose homepage is at
-http://go.warwick.ac.uk/pdfjam \&.
-.PP
-.SH "SETUP"
-.PP
-See http://go.warwick.ac.uk/pdfjam .
-.PP
-.SH "USAGE"
-.PP
-For the available options and site/user defaults, see the output of
-.PP
-.RS
-.B pdfjam --help
-.RE
-.PP
-For further information and some examples see
-http://go.warwick.ac.uk/pdfjam \&.
-.PP
-.SH "LIMITATIONS AND BUGS"
-.PP
-pdfjam-pocketmod does not work with encrypted PDF files, and does not preserve hyperlinks.
-.PP
-The '--keepinfo' option does not work.
-.PP
-Please report bugs! See the website at
-http://www.warwick.ac.uk/go/pdfjam\&.
-.PP
-.SH "LICENSE"
-.PP
-PDFjam is distributed under the GNU public license\&.
-.PP
-.SH "SEE ALSO"
-.PP
-pdfjam(1)\&.
-.PP
-.SH "AUTHOR"
-.PP
-pdfjam-pocketmod is written and maintained by David Firth as part of the PDFjam
-package\&.
-
diff --git a/support/pdfjam/man1/pdfjam-slides3up.1 b/support/pdfjam/man1/pdfjam-slides3up.1
deleted file mode 100644
index 09227631a1..0000000000
--- a/support/pdfjam/man1/pdfjam-slides3up.1
+++ /dev/null
@@ -1,88 +0,0 @@
-.TH "pdfjam-slides3up" "1" "10 March 2010" "" ""
-.SH "NAME"
-pdfjam-slides3up \- put presentation slides onto 3-up pages
-.SH "SYNOPSIS"
-.PP
-pdfjam-slides3up [--pagenumbering SWITCH] [OPTION [OPTION] \&.\&.\&.] [SRC [PAGESPEC] [SRC [PAGESPEC]] \&.\&.\&.]
-.PP
-.SH "DESCRIPTION"
-.PP
-pdfjam-slides3up converts PDF files whose pages are presentation slides (with
-4:3 aspect ratio) into 3-up versions suitable for making a handout with space
-for handwritten side notes
-(for example). By default, the 3-up pages do not themselves have page numbers.
-.PP
-To put page numbers on the output pages, use either '--pagenumbering true'
-or, for example, '--pagenumbering 3.4cm' to place the page numbers a bit
-lower on the page than the default position. The value of 'SWITCH' must
-be either 'true', 'false' or a dimension that can be used by LateX. (To
-be precise, it's the value of the 'footskip' dimension in LaTeX; by default,
-pdfjam-slides3up sets that as 3.1cm, which works pretty well in
-conjunction with both '--paper a4paper' and '--paper letterpaper'.)
-.PP
-If no source PDF file ('SRC') is specified, input
-is from /dev/stdin. If 'PAGESPEC' is omitted, all pages are processed.
-.PP
-Source files are processed sequentially into a single output
-unless the '--batch' option is used, in which case they are processed
-separately.
-.PP
-pdfjam-slides3up is a simple wrapper for pdfjam, which provides a front end to
-many of the capabilities of the pdfpages
-package for pdflatex\&. A working installation of pdflatex, with
-the pdfpages package, is required\&.
-.PP
-pdfjam-slides3up operates on one or more PDF files, and (either with
-the '--batch' option or with '--outfile DIR' where 'DIR' is a directory) the
-resulting files have
-the suffix '-3up' applied to their names by default. To change the suffix,
-use the '--suffix' option, for example
-.PP
-.RS
-.B pdfjam-slides3up --suffix '1x3' --batch myslides1.pdf myslides2.pdf
-.RE
-.PP
-will result in files named 'myslides1-1x3.pdf' and 'myslides2-1x3.pdf'.
-.PP
-By default a narrow line frame is printed around every slide. This can be
-turned off if required by using the option '--frame false'.
-.PP
-pdfjam-slides3up is part of the "PDFjam" package of tools, whose homepage is at
-http://www.warwick.ac.uk/go/pdfjam \&.
-.PP
-.SH "SETUP"
-.PP
-See http://go.warwick.ac.uk/pdfjam .
-.PP
-.SH "USAGE"
-.PP
-For the other available options and
-site /user defaults, see the output of
-.PP
-.RS
-.B pdfjam --help
-.RE
-.PP
-For further information and some examples see
-http://go.warwick.ac.uk/pdfjam \&.
-.PP
-.SH "LIMITATIONS AND BUGS"
-.PP
-pdfjam-slides3up does not work with encrypted PDF files, and does not
-preserve hyperlinks.
-.PP
-Please report bugs! See the website at
-http://www.warwick.ac.uk/go/pdfjam \&.
-.PP
-.SH "LICENSE"
-.PP
-PDFjam is distributed under the GNU public license\&.
-.PP
-.SH "SEE ALSO"
-.PP
-pdfjam(1) pdfjam-slides6up(1) \&.
-.PP
-.SH "AUTHOR"
-.PP
-pdfjam-slides3up is written and maintained by David Firth as part of the PDFjam package\&.
-
diff --git a/support/pdfjam/man1/pdfjam-slides6up.1 b/support/pdfjam/man1/pdfjam-slides6up.1
deleted file mode 100644
index 6e90363bc6..0000000000
--- a/support/pdfjam/man1/pdfjam-slides6up.1
+++ /dev/null
@@ -1,87 +0,0 @@
-.TH "pdfjam-slides6up" "1" "10 March 2010" "" ""
-.SH "NAME"
-pdfjam-slides6up \- put presentation slides onto 6-up pages
-.SH "SYNOPSIS"
-.PP
-pdfjam-slides6up [--pagenumbering SWITCH] [OPTION [OPTION] \&.\&.\&.] [SRC [PAGESPEC] [SRC [PAGESPEC]] \&.\&.\&.]
-.PP
-.SH "DESCRIPTION"
-.PP
-pdfjam-slides6up converts PDF files whose pages are presentation slides (with
-4:3 aspect ratio) into 6-up versions suitable for making a handout
-(for example). By default, the 6-up pages do not themselves have page numbers.
-.PP
-To put page numbers on the output pages, use either '--pagenumbering true'
-or, for example, '--pagenumbering 3.0cm' to place the page numbers a bit
-lower on the page than the default position. The value of 'SWITCH' must
-be either 'true', 'false' or a dimension that can be used by LateX. (To
-be precise, it's the value of the 'footskip' dimension in LaTeX; by default,
-pdfjam-slides6up sets that as 2.7cm, which works pretty well in
-conjunction with both '--paper a4paper' and '--paper letterpaper'.)
-.PP
-If no source PDF file ('SRC') is specified, input
-is from /dev/stdin. If 'PAGESPEC' is omitted, all pages are processed.
-.PP
-Source files are processed sequentially into a single output
-unless the '--batch' option is used, in which case they are processed
-separately.
-.PP
-pdfjam-slides6up is a simple wrapper for pdfjam, which provides a front end to
-many of the capabilities of the pdfpages
-package for pdflatex\&. A working installation of pdflatex, with
-the pdfpages package, is required\&.
-.PP
-pdfjam-slides6up operates on one or more PDF files, and (either with
-the '--batch' option or with '--outfile DIR' where 'DIR' is a directory) the
-resulting files have
-the suffix '-6up' applied to their names by default. To change the suffix,
-use the '--suffix' option, for example
-.PP
-.RS
-.B pdfjam-slides6up --suffix '2x3' --batch myslides1.pdf myslides2.pdf
-.RE
-.PP
-will result in files named 'myslides1-2x3.pdf' and 'myslides2-2x3.pdf'.
-.PP
-By default a narrow line frame is printed around every slide. This can be
-turned off if required by using the option '--frame false'.
-.PP
-pdfjam-slides6up is part of the "PDFjam" package of tools, whose homepage is at
-http://www.warwick.ac.uk/go/pdfjam \&.
-.PP
-.SH "SETUP"
-.PP
-See http://go.warwick.ac.uk/pdfjam .
-.PP
-.SH "USAGE"
-.PP
-For the other available options and
-site/user defaults, see the output of
-.PP
-.RS
-.B pdfjam --help
-.RE
-.PP
-For further information and some examples see
-http://go.warwick.ac.uk/pdfjam \&.
-.PP
-.SH "LIMITATIONS AND BUGS"
-.PP
-pdfjam-slides6up does not work with encrypted PDF files, and does not
-preserve hyperlinks.
-.PP
-Please report bugs! See the website at
-http://www.warwick.ac.uk/go/pdfjam \&.
-.PP
-.SH "LICENSE"
-.PP
-PDFjam is distributed under the GNU public license\&.
-.PP
-.SH "SEE ALSO"
-.PP
-pdfjam(1) pdfjam-slides3up(1) \&.
-.PP
-.SH "AUTHOR"
-.PP
-pdfjam-slides6up is written and maintained by David Firth as part of the PDFjam package\&.
-
diff --git a/support/pdfjam/man1/pdfjam.1 b/support/pdfjam/man1/pdfjam.1
index 49a0e4990c..d6c0c17345 100644
--- a/support/pdfjam/man1/pdfjam.1
+++ b/support/pdfjam/man1/pdfjam.1
@@ -15,16 +15,12 @@ Detailed information can be found via
A working installation of pdflatex, with
the pdfpages package, is required\&.
.PP
-The pdfjam script is distributed as (the main) part of the PDFjam package. The homepage of PDFjam is at
-http://go.warwick.ac.uk/pdfjam \&.
+The pdfjam script is distributed as (the main) part of the pdfjam package. The homepage of pdfjam is at
+https://github.com/DavidFirth/pdfjam \&.
.PP
.SH "SETUP"
.PP
-See http://go.warwick.ac.uk/pdfjam .
-.PP
-.PP
-For further information and some examples see
-http://go.warwick.ac.uk/pdfjam \&.
+See https://github.com/DavidFirth/pdfjam
.PP
.SH "CONFIGURATION FILES"
.PP
@@ -45,14 +41,14 @@ file at ~/.pdfjam.conf\&.
pdfjam does not work with encrypted PDF files, and does not
preserve hyperlinks.
.PP
-Please report bugs! See the website at
-http://go.warwick.ac.uk/pdfjam \&.
+Please report bugs! --- either at GitHub or by email, see
+https://github.com/DavidFirth/pdfjam \&.
.PP
.SH "LICENSE"
.PP
-PDFjam is distributed under the GNU public license\&.
+pdfjam is distributed under the GNU public license\&.
.PP
.SH "AUTHOR"
.PP
-The PDFjam package is written and maintained by David Firth\&.
+The pdfjam package is written and maintained by David Firth\&.
diff --git a/support/pdfjam/man1/pdfjoin.1 b/support/pdfjam/man1/pdfjoin.1
deleted file mode 100644
index c55b4a4938..0000000000
--- a/support/pdfjam/man1/pdfjoin.1
+++ /dev/null
@@ -1,66 +0,0 @@
-.TH "pdfjoin" "1" "10 March 2010" "" ""
-.SH "NAME"
-pdfjoin
-\- join together pages from multiple PDF files
-.SH "SYNOPSIS"
-.PP
-.B pdfjoin [OPTION [OPTION] \&.\&.\&.] [SRC [PAGESPEC] [SRC [PAGESPEC]] \&.\&.\&.]
-.PP
-.SH "DESCRIPTION"
-.PP
-pdfjoin
-concatenates the pages of multiple Portable Document Format (PDF)
-files together into a single file.\&.
-.PP
-If no source PDF file ('SRC') is specified, input (but just one file -- not
-very useful here!
-is from /dev/stdin. If 'PAGESPEC' is omitted, all pages are processed.
-.PP
-Source files are processed sequentially into a single output.
-The '--batch' option of pdfjam(1) cannot be used.
-.PP
-pdfjoin is a simple wrapper for pdfjam, which provides a front end to many of the capabilities of the pdfpages
-package for pdflatex\&. A working installation of pdflatex, with
-the pdfpages package, is required\&.
-.PP
-pdfjoin is part of the "PDFjam" package of tools, whose homepage is at
-http://go.warwick.ac.uk/pdfjam \&.
-.PP
-.SH "SETUP"
-.PP
-See http://go.warwick.ac.uk/pdfjam .
-.PP
-.SH "USAGE"
-.PP
-For the available options and site/user defaults, see the output of
-.PP
-.RS
-.B pdfjam --help
-.RE
-.PP
-For further information and some examples see
-http://go.warwick.ac.uk/pdfjam \&.
-.PP
-.SH "LIMITATIONS AND BUGS"
-.PP
-The pages of the output file will all have the same size and orientation.
-.PP
-pdfjoin does not work with encrypted PDF files, and does not
-preserve hyperlinks. The output pages are all one size.
-.PP
-Please report bugs! See the website at
-http://www.warwick.ac.uk/go/pdfjam \&.
-.PP
-.SH "LICENSE"
-.PP
-PDFjam is distributed under the GNU public license\&.
-.PP
-.SH "SEE ALSO"
-.PP
-pdfjam(1)\&.
-.PP
-.SH "AUTHOR"
-.PP
-pdfjoin is written and maintained by David Firth as part of the PDFjam
-package\&.
-
diff --git a/support/pdfjam/man1/pdfnup.1 b/support/pdfjam/man1/pdfnup.1
deleted file mode 100644
index 86953387e8..0000000000
--- a/support/pdfjam/man1/pdfnup.1
+++ /dev/null
@@ -1,78 +0,0 @@
-.TH "pdfnup" "1" "10 March 2010" "" ""
-.SH "NAME"
-pdfnup \- n-up the pages of pdf files
-.SH "SYNOPSIS"
-.PP
-pdfnup [OPTION [OPTION] \&.\&.\&.] [SRC [PAGESPEC] [SRC [PAGESPEC]] \&.\&.\&.]
-.PP
-.SH "DESCRIPTION"
-.PP
-pdfnup converts files in the Adobe Portable Document Format (PDF)
-to "n-up" PDF files, that is, with multiple input pages
-per output page, for
-more economical printing etc\&. The default processing is to 2-up
-landscape output with no frame around pages, equivalent to using the
-options '--nup 2x1 --landscape true --frame false'.
-.PP
-If no source PDF file ('SRC') is specified, input
-is from /dev/stdin. If 'PAGESPEC' is omitted, all pages are processed.
-.PP
-Source files are processed sequentially into a single output
-unless the '--batch' option is used, in which case they are processed
-separately.
-.PP
-pdfnup operates on one or more PDF files, and (either with the '--batch'
-option or with '--outfile DIR' where 'DIR' is a directory) the
-resulting files have
-the suffix '-nup' applied to their names by default. To change
-the suffix,
-use the '--suffix' option, for example
-.PP
-.RS
-.B pdfnup --nup 2x2 --suffix '2x2' --batch myfile1.pdf myfile2.pdf
-.RE
-.PP
-will result in files named 'myfile1-2x2.pdf' and 'myfile2-2x2.pdf'.
-.PP
-pdfnup is a simple wrapper for pdfjam, which provides a front end to many of the capabilities of the pdfpages
-package for pdflatex\&. A working installation of pdflatex, with
-the pdfpages and geometry packages, is required\&.
-.PP
-pdfnup is part of the "PDFjam" package of tools, whose homepage is at
-http://www.warwick.ac.uk/go/pdfjam \&.
-.PP
-.SH "SETUP"
-.PP
-See http://go.warwick.ac.uk/pdfjam .
-.PP
-.SH "USAGE"
-.PP
-For the available options and site/user defaults, see the output of
-.PP
-.RS
-.B pdfjam --help
-.RE
-.PP
-For further information and some examples see
-http://go.warwick.ac.uk/pdfjam .
-.PP
-.SH "LIMITATIONS AND BUGS"
-.PP
-pdfnup does not work with encrypted PDF files, and does not
-preserve hyperlinks.
-.PP
-Please report bugs! See the website at
-http://www.warwick.ac.uk/go/pdfjam \&.
-.PP
-.SH "LICENSE"
-.PP
-PDFjam is distributed under the GNU public license\&.
-.PP
-.SH "SEE ALSO"
-.PP
-pdfjam(1) pdfpun(1) \&.
-.PP
-.SH "AUTHOR"
-.PP
-pdfnup is written and maintained by David Firth as part of the PDFjam package\&.
-
diff --git a/support/pdfjam/man1/pdfpun.1 b/support/pdfjam/man1/pdfpun.1
deleted file mode 100644
index 0e4b341542..0000000000
--- a/support/pdfjam/man1/pdfpun.1
+++ /dev/null
@@ -1,68 +0,0 @@
-.TH "pdfpun" "1" "10 March 2010" "" ""
-.SH "NAME"
-pdfpun \- n-up the pages of a pdf file, with right-to-left ordering
-.SH "SYNOPSIS"
-.PP
-pdfpun SRC [PAGESPEC] --outfile FILENAME [OPTION [OPTION] \&.\&.\&.]
-.PP
-.SH "DESCRIPTION"
-.PP
-pdfpun converts a file in the Adobe Portable Document Format (PDF)
-to a "n-up" PDF file, that is, with multiple input pages
-per output page, for
-more economical printing etc\&. The pages are ordered right-to-left in the
-output. The default processing is to 2-up
-landscape output with no frame around pages, equivalent to using the
-options '--nup 2x1 --landscape --frame false'.
-.PP
-SRC must be a PDF file; '/dev/stdin' can be used for PDF input via a pipeline.
-.PP
-If PAGESPEC is omitted, all pages are processed (equivalent to '-' as PAGESPEC)
-.PP
-OPTION is any option of pdfjam(1) other than --batch.
-.PP
-pdfpun is a simple wrapper for pdfjam, which provides a front end to many
-of the capabilities of the pdfpages package for pdflatex\&.
-A working installation of pdflatex, with
-the pdfpages package, is required\&.
-.PP
-pdfpun is part of the "PDFjam" package of tools, whose homepage is at
-http://www.warwick.ac.uk/go/pdfjam\&.
-.PP
-.SH "SETUP"
-.PP
-See http://go.warwick.ac.uk/pdfjam .
-.PP
-.SH "USAGE"
-.PP
-For the available options and site/user defaults, see the output of
-.PP
-.RS
-.B pdfjam --help
-.RE
-.PP
-For further information and some examples see
-http://go.warwick.ac.uk/pdfjam \&.
-.PP
-.SH "LIMITATIONS AND BUGS"
-.PP
-pdfpun does not work with encrypted PDF files, and does not
-preserve hyperlinks.
-.PP
-The '--keepinfo' option does not work.
-.PP
-Please report bugs! See the website at
-http://www.warwick.ac.uk/go/pdfjam \&.
-.PP
-.SH "LICENSE"
-.PP
-PDFjam is distributed under the GNU public license\&.
-.PP
-.SH "SEE ALSO"
-.PP
-pdfjam(1) pdfnup(1)\&.
-.PP
-.SH "AUTHOR"
-.PP
-pdfpun is written and maintained by David Firth as part of the PDFjam package\&.
-
diff --git a/support/pdfjam/pdfdroplets.png b/support/pdfjam/pdfdroplets.png
deleted file mode 100644
index 850e5802ac..0000000000
--- a/support/pdfjam/pdfdroplets.png
+++ /dev/null
Binary files differ
diff --git a/support/pdfjam/pdfjam.conf b/support/pdfjam/pdfjam.conf
index 9b8f90c12e..eba54b7322 100644
--- a/support/pdfjam/pdfjam.conf
+++ b/support/pdfjam/pdfjam.conf
@@ -1,6 +1,6 @@
###############################################################
##
-## This is a sample 'pdfjam.conf' file.
+## This is a _sample_ 'pdfjam.conf' file.
##
## Edit lines below (and un-comment them as necessary) to
## override settings made in the 'pdfjam' script itself.
@@ -10,19 +10,25 @@
## A file in this format can be used site-wide (as a file named
## "pdfjam.conf", in an appropriate location), or for a specific
## user (as "~/.pdfjam.conf"). User-specific settings override
-## any site-wide settings.
+## site-wide settings.
##
## See 'pdfjam --help' for details, including where to put
-## this file; or see the file PDFjam-README.html.
+## your edited version of this file; or see the file README.md at
+## https://github.com/DavidFirth/pdfjam
##
###############################################################
##
-## UNUSUAL TEX INSTALLATION?
+## UNUSUAL TEX INSTALLATION, OR SPECIFIC LATEX WANTED?
##
-## Specify the location of the 'pdflatex' to be used:
-# pdflatex='/usr/bin/pdflatex' ## typical unix installation
-# pdflatex='/usr/texbin/pdflatex' ## for MacTeX on Mac OS X
-# pdflatex='C:/texmf/miktex/bin/pdflatex.exe' ## Windows??
+## Specify the full path to the 'latex' to be used.
+## Examples:
+#
+# latex='/usr/bin/pdflatex' ## typical unix installation
+# latex='/usr/texbin/pdflatex' ## for MacTeX on Mac OS X?
+# latex='C:/texmf/miktex/bin/pdflatex.exe' ## Windows??
+#
+# latex='/usr/bin/xelatex' ## if you want xelatex
+# latex='/usr/bin/lualatex' ## if you want lualatex
##
###############################################################
##
@@ -61,9 +67,9 @@ checkfiles='false' ## overridden by '--checkfiles' in the call;
##
## DEFAULT PAPER SIZE
##
-## Set the default paper size to be used:
-paper='a4paper' ## for ISO A4 paper
-# paper='letterpaper' ## for 'US letter' paper
+## Set the default paper size to be used. Examples:
+# paper='a4paper' ## for ISO A4 paper size
+# paper='letterpaper' ## for 'US letter' paper size
##
###############################################################
##