summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoachim Schrod <jschrod@acm.org>2007-07-05 14:26:40 +0000
committerJoachim Schrod <jschrod@acm.org>2007-07-05 14:26:40 +0000
commit5f318ef720ca53edf4f5aa92ecae7b8c5d31c29c (patch)
tree331b3a5ef9cc95c2ad37e65f8e02bbc81b92f611
parent61da5cc4b72cb8ca4343ffc74e61cef6849034c9 (diff)
Release 2.6p4.
Updated documentation, man page is now generated from POD. git-svn-id: svn://tug.org/texlive/trunk@4547 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Build/source/texk/dviljk/AUTHORS11
-rw-r--r--Build/source/texk/dviljk/ChangeLog14
-rw-r--r--Build/source/texk/dviljk/Makefile.in6
-rw-r--r--Build/source/texk/dviljk/dvi2xx.c2
-rw-r--r--Build/source/texk/dviljk/dvilj.man915
-rw-r--r--Build/source/texk/dviljk/dvilj.pod609
6 files changed, 1300 insertions, 257 deletions
diff --git a/Build/source/texk/dviljk/AUTHORS b/Build/source/texk/dviljk/AUTHORS
index 41036a2b4d4..fd7ae4f7475 100644
--- a/Build/source/texk/dviljk/AUTHORS
+++ b/Build/source/texk/dviljk/AUTHORS
@@ -1,2 +1,9 @@
-This program was modified by kb@mail.tug.org from Gustaf Neumann's dvi2xx
-distribution. Send bug reports to tex-k@mail.tug.org, not to Gustaf.
+dviljk is a fork from dvi2xx, authored by Gustaf Neumann
+<neumann@wu-wien.ac.at>, Wirtschaftsuniversitaet Wien. Gustaf is not
+active in TeX development any more.
+
+The fork was created by kb@mail.tug.org.
+Send bug reports to tex-k@mail.tug.org, not to Gustaf.
+
+Joachim Schrod <jschrod@acm.org> supplied security fixes, fixed and
+enhanced the special handling, and updated the man page.
diff --git a/Build/source/texk/dviljk/ChangeLog b/Build/source/texk/dviljk/ChangeLog
index 92fc64ef125..8e25c627b77 100644
--- a/Build/source/texk/dviljk/ChangeLog
+++ b/Build/source/texk/dviljk/ChangeLog
@@ -1,3 +1,17 @@
+2007-07-05 Joachim Schrod <jschrod@acm.org>
+
+ Bump up version number to 2.6p4.
+
+ * dvilj.pod, Makefile.in, dvilj.man: Generate dvilj man page from
+ POD document. Update man page content; in particular, all specials
+ are described now. Also add links to PCL reference documentation.
+
+ * dvi2xx.c (DecodeArgs): Update set of pagesize values.
+ (DoSpecial): Special grey is an alias for gray.
+ Value for orientation special may also be 3.
+ defpoints did not survive one special. No debug output for point
+ definitions with absolute coordinates.
+
2007-07-04 Joachim Schrod <jschrod@acm.org>
* dvi2xx.c (DoSpecial): Add special dvilj-psfile-syntax, to
diff --git a/Build/source/texk/dviljk/Makefile.in b/Build/source/texk/dviljk/Makefile.in
index 68a8452cb79..6390157fb34 100644
--- a/Build/source/texk/dviljk/Makefile.in
+++ b/Build/source/texk/dviljk/Makefile.in
@@ -46,6 +46,12 @@ dvilj4l.o:
dvilj.o dvilj2p.o dvilj4.o dvilj4l.o: dvi2xx.c
+VERSION = `grep 'define VERSION' dvi2xx.c | sed -e 's/^.*version //' -e 's/).*//'`
+dvilj.man: dvilj.pod dvi2xx.c
+ pod2man --center="TeX-Live" --release="Version $(VERSION)" $< >$@
+dvilj.ps: dvilj.man
+ man -t -l $< >$@
+
kpse_include ../make/tkpathsea.mk
install: install-exec install-data
diff --git a/Build/source/texk/dviljk/dvi2xx.c b/Build/source/texk/dviljk/dvi2xx.c
index 050216e52c5..c6b4a22b945 100644
--- a/Build/source/texk/dviljk/dvi2xx.c
+++ b/Build/source/texk/dviljk/dvi2xx.c
@@ -1,5 +1,5 @@
/* $Id: dvi2xx.c,v 2.5 1997/12/08 20:52:20 neumann Exp $ */
-#define VERSION "dviljk (version 2.6p3)"
+#define VERSION "dviljk (version 2.6p4)"
/*
#define DEBUGGS 1
*/
diff --git a/Build/source/texk/dviljk/dvilj.man b/Build/source/texk/dviljk/dvilj.man
index 40de4732e83..7edcf5f8836 100644
--- a/Build/source/texk/dviljk/dvilj.man
+++ b/Build/source/texk/dviljk/dvilj.man
@@ -1,275 +1,682 @@
-.TH DVILJK 1 "10 June 1996"
-.ad b
-.SH NAME
+.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sh \" Subsection heading
+.br
+.if t .Sp
+.ne 5
+.PP
+\fB\\$1\fR
+.PP
+..
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" Set up some character translations and predefined strings. \*(-- will
+.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
+.\" double quote, and \*(R" will give a right double quote. | will give a
+.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
+.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
+.\" expand to `' in nroff, nothing in troff, for use with C<>.
+.tr \(*W-|\(bv\*(Tr
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.ie n \{\
+. ds -- \(*W-
+. ds PI pi
+. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
+. ds L" ""
+. ds R" ""
+. ds C` ""
+. ds C' ""
+'br\}
+.el\{\
+. ds -- \|\(em\|
+. ds PI \(*p
+. ds L" ``
+. ds R" ''
+'br\}
+.\"
+.\" If the F register is turned on, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
+.\" entries marked with X<> in POD. Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.if \nF \{\
+. de IX
+. tm Index:\\$1\t\\n%\t"\\$2"
+..
+. nr % 0
+. rr F
+.\}
+.\"
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.hy 0
+.if n .na
+.\"
+.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
+.\" Fear. Run. Save yourself. No user-serviceable parts.
+. \" fudge factors for nroff and troff
+.if n \{\
+. ds #H 0
+. ds #V .8m
+. ds #F .3m
+. ds #[ \f1
+. ds #] \fP
+.\}
+.if t \{\
+. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+. ds #V .6m
+. ds #F 0
+. ds #[ \&
+. ds #] \&
+.\}
+. \" simple accents for nroff and troff
+.if n \{\
+. ds ' \&
+. ds ` \&
+. ds ^ \&
+. ds , \&
+. ds ~ ~
+. ds /
+.\}
+.if t \{\
+. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+.\}
+. \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+. \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+. \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+. ds : e
+. ds 8 ss
+. ds o a
+. ds d- d\h'-1'\(ga
+. ds D- D\h'-1'\(hy
+. ds th \o'bp'
+. ds Th \o'LP'
+. ds ae ae
+. ds Ae AE
+.\}
+.rm #[ #] #H #V #F C
+.\" ========================================================================
+.\"
+.IX Title "DVILJ 1"
+.TH DVILJ 1 "2007-07-05" "Version 2.6p4" "TeX-Live"
+.SH "NAME"
dvilj4, dvilj4l, dvilj2p, dvilj \- convert a TeX DVI file to PCL, for HP LaserJet printers
-.SH SYNOPSIS
-\f3dvilj\f1
-[\f3\-\-D\f2number\f1]
-[\f3\-c\f2copies\f1]
-[\f3\-d\f2mode\f1]
-[\f3\-D\f1]
-[\f3\-E\f1]
-[\f3\-e\f2outputfile\f1]
-[\f3\-f\f2frompage\f1]
-[\f3\-g\f1]
-[\f3\-h\f2headerfile\f1]
-[\f3\-l\f1]
-[\f3\-M\f2flag\f1]
-[\f3\-m\f2mag\f1]
-[\f3\-p\f2pages\f1]
-[\f3\-q\f1]
-[\f3\-r\f1]
-[\f3\-t\f2topage\f1]
-[\f3\-s\f2pagesize\f1]
-[\f3\-v\f1]
-[\f3\-V\f2mode\f1]
-[\f3\-w\f1]
-[\f3\-x\f2xoff(mm)\f1]
-[\f3\-y\f2yoff(mm)\f1]
-[\f3\-X\f2xoff(dots)\f1]
-[\f3\-Y\f2yoff(dots)\f1]
-[\f3\-z\f1]
-[\f3\-\f1]
-[\f2filename\f1]
-.SH DESCRIPTION
-Dvilj and siblings convert TeX-output .dvi files into PCL (the
-Hewlett-Packard Printer Control Language) commands suitable for printing
-on a HP LaserJet+, HP LaserJet IIP (using dvilj2p), HP LaserJet 4 (using
-dvilj4), and fully compatible printers.
+.SH "SYNOPSIS"
+.IX Header "SYNOPSIS"
+.Vb 4
+\& dvilj [--Dnumber] [-ccopies] [-dmode] [-D] [-E] [-eoutputfile]
+\& [-ffrompage] [-g] [-hheaderfile] [-l] [-Mflag] [-mmag] [-ppages]
+\& [-q] [-r] [-ttopage] [-spagesize] [-v] [-Vmode] [-w] [-xxoff(mm)]
+\& [-yyoff(mm)] [-Xxoff(dots)] [-Yyoff(dots)] [-z] [filename]
+.Ve
+.SH "DESCRIPTION"
+.IX Header "DESCRIPTION"
+\&\fBdvilj\fR and siblings convert TeX-output \f(CW\*(C`.dvi\*(C'\fR files into \s-1PCL\s0 (the
+Hewlett-Packard Printer Control Language) commands suitable for
+printing on a \s-1HP\s0 LaserJet+, \s-1HP\s0 LaserJet \s-1IIP\s0 (using \fBdvilj2p\fR), \s-1HP\s0
+LaserJet 4 (using \fBdvilj4\fR), and fully compatible printers.
.PP
-Dvilj4 also provides support for the builtin Intellifont and TrueType
-fonts; TFM and VF files are provided in the distribution.
-Virtual fonts are not supported directly by Dvilj, so you must run
-.BR dvicopy (1)
-first, or otherwise expand the virtual fonts
+\&\fBdvilj4\fR also provides support for the builtin Intellifont and
+TrueType fonts; \s-1TFM\s0 and \s-1VF\s0 files are provided in the distribution.
+Virtual fonts are not supported directly by \fBdvilj\fR, so you must run
+\&\fIdvicopy\fR\|(1) first, or otherwise expand the virtual fonts
.PP
-All programs are generated from one source file dvi2xx.c.
-They are usually called via a shell script or as a line printer
-filter. One such script, dvihp, is included in the distribution. It
-provides command-line options similar to those of dvips(1).
-.SH OPTIONS
-.TP \w'-Dnumber'u+2n
-\f3--D\f2number\f1
-Debug according to the bits of \f2number\f1; see the Kpathsea manual for
-values. Also turns on general verbosity.
-.TP
-\f3-c\f2number\f1
-print each page \f2number\f1 times (including original)
-.TP
-\f3-d\f2number\f1
-print in duplex mode. The option -d\f21\f1 means long edge binding,
--d\f22\f1 stands for short edge binding. This option is only
-selectable from \fIdvilj2p\fP, and is known to work on the LaserJet IId,
-LaserJet IIId, and LaserJet 4.
-.TP
-\f3-D\f1[-]
-Double-sided printing - see below; -D\f21\f1 prints odd sides only,
--D\f22\f1 is for even pages, a trailing \f2-\f1 suppresses printing of
-empty padding pages.
-.TP
-\f3-E\f1
-Switch printer into econo mode (dvilj4 only).
-.TP
-\f3-e\f2outfile\f1
-Send output to \f2outfile\f1 instead of the basename of dvi file
-extended with `.lj'.
-If \f2outfile\f1 is `-' (as in `-e-') the output is directed
+All programs are generated from one source file \fIdvi2xx.c\fR. They are
+usually called via a shell script or as a line printer filter. One
+such script, \fIdvihp\fR\|(1), is included in the distribution. It provides
+command-line options similar to those of \fIdvips\fR\|(1).
+.SH "OPTIONS"
+.IX Header "OPTIONS"
+.IP "\fB\-\-D\fR\fInumber\fR" 4
+.IX Item "--Dnumber"
+Debug according to the bits of \fInumber\fR; see the \fIkpathsea\fR\|(3) manual
+for values. Also turns on general verbosity.
+.IP "\fB\-c\fR\fInumber\fR" 4
+.IX Item "-cnumber"
+Print each page \fInumber\fR times (including original)
+.IP "\fB\-d\fR\fInumber\fR" 4
+.IX Item "-dnumber"
+print in duplex mode. The option \fB\-d1\fR means long edge binding,
+\&\fB\-d2\fR stands for short edge binding. This option is only selectable
+in \fBdvilj4\fR and \fBdvilj2p\fR.
+.IP "\fB\-D\fR\fI[\-12]\fR" 4
+.IX Item "-D[-12]"
+Double-sided printing \- see below; \fB\-D1\fR prints odd sides only,
+\&\fB\-D2\fR is for even pages, a trailing \fB\-\fR suppresses printing of empty
+padding pages.
+.IP "\fB\-E\fR" 4
+.IX Item "-E"
+Switch printer into econo mode (\fBdvilj4\fR only).
+.IP "\fB\-e\fR\fIoutfile\fR" 4
+.IX Item "-eoutfile"
+Send output to \fIoutfile\fR instead of the basename of dvi file extended
+with \f(CW\*(C`.lj\*(C'\fR. If outfile is \fB\-\fR (as in \f(CW\*(C`\-e\-\*(C'\fR) the output is directed
to standard output and can be directly piped into a spooler.
-.TP
-\f3-f\f2pagenum\f1
-Print pages with TeX page numbers greater than or equal to \f2pagenum\f1.
-.TP
-\f3-g\f1
-``go'' mode: do not reset printer at start of job.
-.TP
-\f3-h\f2headerfile\f1
-Copy \f2headerfile\f1 to output before translation of the DVI file.
-Used to send arbitrary commands to the laserprinter.
-.TP
-\f3-l\f1
-print output in landscape mode; supported
-only by dvilj2p and dvilj4.
-.TP
-\f3-M\f2flag\f1
-Do (not) call mktexpk to generate fonts on demand. \f3-M\f21\f1 and
-\f3-M\f1 are equivalent. \f3-M\f20\f1 enables invoking mktexpk. (This
-is the same as dvips.) The default behavior (i.e., if no
-\f3-M\f1 option is given) is chosen at compile-time; as distributed,
-mktexpk is enabled. \f3-M\f1 is only valid if
-dvi2xx was compiled with support for mktexpk.
-.TP
-\f3-m\f2magnification\f1
+.IP "\fB\-f\fR\fIpagenum\fR" 4
+.IX Item "-fpagenum"
+Print pages with TeX page numbers greater than or equal to \fIpagenum\fR.
+.IP "\fB\-g\fR" 4
+.IX Item "-g"
+\&\fIGo\fR mode: do not reset printer at start of job.
+.IP "\fB\-h\fR\fIheaderfile\fR" 4
+.IX Item "-hheaderfile"
+Copy \fIheaderfile\fR to output before translation of the \s-1DVI\s0 file. Used
+to send arbitrary commands to the laserprinter.
+.IP "\fB\-l\fR" 4
+.IX Item "-l"
+Print output in landscape mode; supported only by \fBdvilj2p\fR and
+\&\fBdvilj4\fR.
+.IP "\fB\-M\fR\fIflag\fR" 4
+.IX Item "-Mflag"
+Do (not) call \fImktexpk\fR\|(1) to generate fonts on demand. \fB\-M1\fR and \fB\-M\fR
+are equivalent. \fB\-M0\fR enables invoking \fImktexpk\fR\|(1). (This is the same
+as in \fIdvips\fR\|(1).) The default behavior (i.e., if no \fB\-M\fR option is
+given) is chosen at compile\-time; as distributed, mktexpk is enabled.
+.IP "\fB\-m\fR\fImagnification\fR" 4
+.IX Item "-mmagnification"
Specify the magnification to use. The following are available:
-.br
-\f3-m#\f2usermag\f1 e.g., \f3#900\f1
-.br
-\f3-m0\f1 equivalent to \f3-m#1000\f1
-.br
-\f3-mh\f1 equivalent to \f3-m#1095\f1
-.br
-\f3-m1\f1 equivalent to \f3-m#1200\f1
-.br
-\f3-mq\f1 equivalent to \f3-m#1250\f1
-.br
-\f3-m2\f1 equivalent to \f3-m#1440\f1
-.br
-\f3-m3\f1 equivalent to \f3-m#1728\f1
-.br
-\f3-m4\f1 equivalent to \f3-m#2074\f1
-.br
-\f3-m5\f1 equivalent to \f3-m#2488\f1
-.TP
-\f3-p\f2pagecount\f1
-print \f2pagecount\f1 pages after the starting page.
-.TP
-\f3-q\f1
+.Sp
+.Vb 9
+\& -m#usermag e.g., #900
+\& -m0 equivalent to -m#1000
+\& -mh equivalent to -m#1095
+\& -m1 equivalent to -m#1200
+\& -mq equivalent to -m#1250
+\& -m2 equivalent to -m#1440
+\& -m3 equivalent to -m#1728
+\& -m4 equivalent to -m#2074
+\& -m5 equivalent to -m#2488
+.Ve
+.IP "\fB\-p\fR\fIpagecount\fR" 4
+.IX Item "-ppagecount"
+Print \fIpagecount\fR pages after the starting page.
+.IP "\fB\-q\fR" 4
+.IX Item "-q"
Quiet operation: omit final statistics, etc.
-.TP
-\f3-r\f1
-toggle page reversal; by default, pages are reversed.
-.TP
-\f3-s\f2pagesize \f1
+.IP "\fB\-r\fR" 4
+.IX Item "-r"
+Toggle page reversal.
+.IP "\fB\-s\fR\fIpagesize\fR" 4
+.IX Item "-spagesize"
Specify the page size:
-.br
-\f3-s1\f1: executive (7.25in x 10.5in)
-.br
-\f3-s2\f1: letter (8.5in x 11in)
-.br
-\f3-s3\f1: legal (8.5in x 14in)
-.br
-\f3-s26\f1: A4 (210mm x 297mm)
-.br
-\f3-s80\f1: monarch (3.875in x 7.5in)
-.br
-\f3-s81\f1: commercial-10 (4.125in x 9.5in)
-.br
-\f3-s90\f1: international DL (110mm x 220mm)
-.br
-\f3-s91\f1: international C5 (162mm x 229mm)
-.br
-All values are from the LJ II technical reference manual.
-If the -s commandline option is omitted, no clipping is performed
-at the bottom of the page.
-.TP
-\f3-t\f2pagenum\f1
-Print pages with TeX page numbers less than or equal to \f2pagenum\f1.
-.TP
-\f3-v\f1
+.Sp
+.Vb 16
+\& -s1: Executive (7.25" x 10.5")
+\& -s2: Letter (8.5" x 11")
+\& -s3: Legal (8.5" x 14")
+\& -s6: Ledger (11" x 17")
+\& -s25: A5 paper (148mm x 210mm)
+\& -s26: A4 paper (210mm x 297mm)
+\& -s27: A3 (297mm x 420mm)
+\& -s45: JIS B5 paper (182mm x 257mm)
+\& -s46: JIS B4 paper (250mm x 354mm)
+\& -s71: Hagaki postcard (100mm x 148mm)
+\& -s72: Oufuku-Hagaki postcard (200mm x 148mm)
+\& -s80: Monarch Envelope (3 7/8" x 7 1/2")
+\& -s81: Commercial Envelope 10 (4 1/8" x 9 1/2")
+\& -s90: International DL (110mm x 220mm)
+\& -s91: International C5 (162mm x 229mm)
+\& -s100: International B5 (176mm x 250mm)
+.Ve
+.Sp
+These values are from the \s-1PCL\s0 5 technical reference manual. If the
+\&\fB\-s\fR commandline option is omitted, no clipping is performed at the
+bottom of the page. (But printing below the paper bottom should not
+disturb any correctly behaving \s-1PCL\s0 printer.) Please remember that the
+correct paper tray must be installed for selected paper size, so use
+this option only if you have full control over your print destination.
+.IP "\fB\-t\fR\fIpagenum\fR" 4
+.IX Item "-tpagenum"
+Print pages with TeX page numbers less than or equal to \fIpagenum\fR.
+.IP "\fB\-v\fR" 4
+.IX Item "-v"
Verbose mode: list fonts used, etc.
-.TP
-\f3-V\f2mode\f1
-compatibility mode. Use \f2K\f1 for Kyocera, \f2B\f1 for Brother,
-\f26\f1 for LJ6 printers.
-.TP
-\f3-w\f1
+.IP "\fB\-V\fR\fImode\fR" 4
+.IX Item "-Vmode"
+Compatibility mode. As \fImode\fR, use \f(CW\*(C`K\*(C'\fR for Kyocera, \f(CW\*(C`B\*(C'\fR for
+Brother, \f(CW6\fR for \s-1LJ6\s0 printers.
+.IP "\fB\-w\fR" 4
+.IX Item "-w"
Omit warnings.
-.TP
-\f3-x\f2offset\f1
-global x-offset in mm on output page
-relative to 1 inch/1 inch origin
-.TP
-\f3-y\f2offset\f1
-global y-offset in mm on output page
-relative to 1 inch/1 inch origin
-.TP
-\f3-X\f2offset\f1
-global x-offset in dots on output page
-(overrides 1 inch/1 inch origin)
-.TP
-\f3-Y\f2offset\f1
-global y-offset in dots on output page
-(overrides 1 inch/1 inch origin)
-.TP
-\f3-z\f1
-print a test page with the page counter at end of job
-.TP
-\f3-\f1
-Take input from standard input (must be seekable), write to standard output.
+.IP "\fB\-x\fR\fIoffset\fR" 4
+.IX Item "-xoffset"
+Global x\-offset in mm on output page relative to 1 inch/1 inch origin.
+.IP "\fB\-y\fR\fIoffset\fR" 4
+.IX Item "-yoffset"
+Global y\-offset in mm on output page relative to 1 inch/1 inch origin.
+.IP "\fB\-X\fR\fIoffset\fR" 4
+.IX Item "-Xoffset"
+Global x\-offset in dots on output page (overrides 1 inch/1 inch
+origin).
+.IP "\fB\-Y\fR\fIoffset\fR" 4
+.IX Item "-Yoffset"
+Global y\-offset in dots on output page (overrides 1 inch/1
+inch origin).
+.IP "\fB\-z\fR" 4
+.IX Item "-z"
+Print a test page with the page counter at end of job.
+.SH "OPERANDS"
+.IX Header "OPERANDS"
+If no operands are specified a brief usage message is displayed.
+.IP "\fIfilename\fR" 4
+.IX Item "filename"
+The \s-1DVI\s0 file name that shall be converted by \fBdvilj\fR. It must always
+be seekable.
+.Sp
+The output file name is constructed from \fIfilename\fR. Either an
+extension \f(CW\*(C`.dvi\*(C'\fR is replaced by \f(CW\*(C`.lj\*(C'\fR, or the extension \f(CW\*(C`.lj\*(C'\fR is
+appended.
+.Sp
+If \fIfilename\fR is \fB\-\fR, the \s-1DVI\s0 file is read from standard input and
+the resulting \s-1PCL\s0 document is written to standard output. (Please
+remember that thhe \s-1DVI\s0 file must be seekable, even if it's stdin.)
+.SH "SUPPORTED TeX \especial COMMANDS"
+.IX Header "SUPPORTED TeX special COMMANDS"
+\&\f(CW\*(C`\especial\*(C'\fR commands supported by \fBdvilj\fR have the generic syntax
.PP
-If no arguments are specified a brief usage message is displayed.
-.SH \especial COMMANDS
-TeX `\especial' commands that are implemented:
-.TP \w'\f3\especial{hpfile=<filename>}\f1'u+2n
-\f3\especial{file=<filename>}\f1
-copy specified file to the printer; either vector- or bitmap-graphics PMP
-commands
-.TP
-\f3\especial{hpfile=<filename>}\f1
-Same as `file'.
-.TP 0
-others:
-There are a few other special commands implented for the LJ-series,
-which should only be used in connection with the distributed style
-files (e.g., graybox.sty). They may change in forthcoming versions.
+.Vb 2
+\& \especial{key1=value key1="value with space"}
+\& \especial{key3 = value key4 = 'note optional spaces around equal sign'}
+.Ve
.PP
-You can include Encapsulated PostScript (EPS) files in the PCL files output
-by dvilj if you convert them to PCL first. The distribution includes a
-script `epspcl' to do this (using Ghostscript, so your Ghostscript must
-have the necessary LaserJet driver(s) compiled in).
-.SH DOUBLE PAGE PRINTING
-The command line option -D causes the printer to print
-in doublepage mode, that is, roughly speaking, printing first
-the even pages and then the odd pages of a document.
-If -D is used to print both even and odd pages (-D is used
-without the optional \f21\f1 or \f22\f1)
-the following will happen after
-half of the pages is printed:
-\f3LJ:\f1
-the printer stops, shows message "FEED" and switches
-on manual feed led. The printer continues when either
-the printed pages are fed into the manual page feeder,
-or the operator pushes the continue button (after placing first
-the printed pages into the paper tray).
+I.e., specials are a sequence of key/value pairs, separated by an
+equal sign. Spaces around the equal sign are ignored. The value is
+either a space separated word, or a quoted string. Both double and
+single quotes can be used, alternatively. There is no support for
+quoting quote characters in values; if you want both double and single
+quotes in one value, you're out of luck.
.PP
-If -D1 was specified only odd pages will be printed, -D2 can be used
-for even pages. A trailing `-' (as in -D-, -D1- or -D2-) supresses
-printing of empty pages which are generated for padding otherwise.
+The following key/value combinations are valid:
+.IP "\fBhpfile\fR=\fIfile\fR" 4
+.IX Item "hpfile=file"
+Insert \fIfile\fR at the current position. \fIfile\fR is searched with
+\&\fIkpathsea\fR\|(3), see below.
+.Sp
+The file content must be valid for this printer, i.e., it should
+contain \s-1PCL\s0 escape sequences or \s-1HP\-GL/2\s0 commands. If the file is a
+graphics file, this typically means that the upper left corner of the
+graphics is placed at the current position.
+.Sp
+\&\s-1PCL\s0 absolute positioning escape sequences in \fIfile\fR are rewritten to
+be relative positioning commands; the lowest appearing coordinate is
+used as reference.
+.IP "\fBhpfile_verbatim\fR=\fIfile\fR" 4
+.IX Item "hpfile_verbatim=file"
+Insert \fIfile\fR verbatim at the current position, without any changes
+of the file content. \fIfile\fR is searched with \fIkpathsea\fR\|(3), see below.
+.Sp
+This is mostly used to keep absolute positions in \s-1PCL\s0 files.
+.IP "\fBpsfile\fR=\fIfile\fR \fBllx\fR=\fIx0\fR \fBlly\fR=\fIy0\fR \fBurx\fR=\fIx1\fR \fBury\fR=\fIy1\fR \fBrwi\fR=\fIs\fR" 4
+.IX Item "psfile=file llx=x0 lly=y0 urx=x1 ury=y1 rwi=s"
+Convert Postscript file \fIfile\fR to \s-1HP\s0 \s-1PCL\s0, by Ghostscript with device
+\&\f(CW\*(C`ljetplus\*(C'\fR, and insert the resulting graphics file at the current
+position, rewriting absolute position escape sequences. \fIfile\fR is
+searched with \fIkpathsea\fR\|(3), see below.
+.Sp
+The accompanying key/value pairs are mandatory, they can be specified
+in an arbitrary order. Values \fIx0\fR, \fIx1\fR, \fIy0\fR, \fIy1\fR, and \fIs\fR are
+integers. (\fIx0\fR,\fIy0\fR) is the lower left corner, (\fIx1\fR,\fIy1\fR) the
+upper right corner of the image.
+.Sp
+\&\fBPlease note: The specific semantics of this special is not known.\fR
+In particular, the \fBrwi\fR parameter is some scale factor; but even
+looking at the source code it is not quite clear what the special's
+author intended to implement here. In addition, it is unclear what
+dimensions are used to specify the corners, Postscript points or \s-1PCL\s0
+dots.
+.Sp
+\&\fIIf you happen to know the psfile semantics, or if you spent the work
+analyzing them, please inform us at tex\-k@tug.org, so that we can
+update this man page with the relevant information.\fR
+.IP "\fBdvilj-psfile-syntax\fR=\fIsyntax\fR" 4
+.IX Item "dvilj-psfile-syntax=syntax"
+where \fIsyntax\fR is either \f(CW\*(C`dvilj\*(C'\fR or \f(CW\*(C`ignore\*(C'\fR. This is a very crude
+way to tell the driver what to do with \fBpsfile\fR specials.
+.Sp
+If the value is \f(CW\*(C`ignore\*(C'\fR, all \fBpsfile\fR specials that are processed
+afterwards are ignored, until the next \fBdvilj-psfile-syntax\fR special is
+processed.
+.Sp
+If the value is \f(CW\*(C`dvilj\*(C'\fR, \fBpsfiles\fR specials are processed as
+explained above, until the next \fBdvilj-psfile-syntax\fR special is
+processed.
+.Sp
+An obvious, planned, extension is the value \f(CW\*(C`dvips\*(C'\fR, but this has not
+been implemented yet.
+.Sp
+That special is not as simple as it sounds at first. Since its
+semantics is defined by processing order, it is only of use if it is
+placed on the same page as the \fBpsfile\fR special. Having it once in a
+file (e.g., on the first page) does not help if you print just one
+page of the document \*(-- \fBdvilj\fR does not do prescanning of first-page
+specials like some other drivers do. (Patches would be welcome, of
+course.)
+.IP "\fBcomment\fR=\fIarbitrary text\fR" 4
+.IX Item "comment=arbitrary text"
+.PD 0
+.IP "\fBcomment\fR \fIarbitrary text\fR" 4
+.IX Item "comment arbitrary text"
+.PD
+This causes the rest of the special to be ignored; it may be used to
+add meta-information to a \s-1DVI\s0 file.
+.Sp
+With the first form, the comment may appear anywhere in the special.
+When it appears first, the processing of this special is terminated
+and all other text behind is ignored.
+.Sp
+The second form is a speciality that has been introduced for
+compatibility with other drivers. If the first keyword of the special
+is \fBcomment\fR and has no value, it is taken as a valid comment syntax,
+too; the rest of the special is ignored.
+.IP "\fBorientation\fR=\fIpo\fR" 4
+.IX Item "orientation=po"
+Position the page on the physical paper. The value \fIpo\fR may be one of
+the following values:
+.Sp
+.Vb 4
+\& 0 for portrait
+\& 1 for landscape
+\& 2 for reverse portrait
+\& 3 for reverse landscape
+.Ve
+.IP "\fBdefpoint\fR=\fIn(x,y)\fR" 4
+.IX Item "defpoint=n(x,y)"
+Define the point number \fIn\fR. This point can be referred to later in
+other special commands to specify areas that shall be filled with some
+pattern. \fIn\fR must be between 0 and 79.
+.Sp
+\&\fIx\fR and \fIy\fR are the position of that point and have the form \f(CW\*(C`?pt\*(C'\fR
+where \f(CW\*(C`?\*(C'\fR is a floating point number. The positions are relative to
+the \s-1DVI\s0 page origin; i.e., coordinates increase moving right and down,
+the point of origin is (1in,1in) in the upper left corner, altered by
+options \fB\-x\fR, \fB\-y\fR, \fB\-X\fR, and \fB\-Y\fR, but not by \ehoffset and
+\&\evoffset.
+.Sp
+\&\fIx\fR and \fIy\fR can be omitted, i.e., the values \f(CW3\fR or \f(CW\*(C`4(,)\*(C'\fR are
+valid. Then the current page position is used as position for point
+\&\fIn\fR.
+.ie n .IP "\fBresetpoints\fR=""all""" 4
+.el .IP "\fBresetpoints\fR=\f(CWall\fR" 4
+.IX Item "resetpoints=all"
+This undefines all points again.
+.IP "\fBgray\fR=\fIgray_scale\fR" 4
+.IX Item "gray=gray_scale"
+.PD 0
+.IP "\fBgrey\fR=\fIgray_scale\fR" 4
+.IX Item "grey=gray_scale"
+.PD
+This sets the fill mode for the next \fBfill\fR special, the area will be
+filled with gray color. (\fBgrey\fR is an alias for \fBgray\fR.) Any pattern
+specification is reset.
+.Sp
+\&\fIgray_scale\fR is the percentage of gray that shall be used here; with
+\&\f(CW0\fR meaning white and \f(CW100\fR meaning black.
+.Sp
+Caveat: That special is actually a misnomer. \s-1PCL\s0 names these gray
+scales \fIshading patterns\fR and they are created by placing dots in the
+area. The gray scale selects how far spread the dots are. In the lower
+ranges, this doesn't look very gray on close sight, but more like a
+dotted background. Furthermore, the gray scales are not as
+fine-grained as the value range 0..100 might make you believe. In
+reality, there are only 8 different gray patterns available:
+.Sp
+.Vb 8
+\& 1 - 2%
+\& 3 - 10%
+\& 11 - 20%
+\& 21 - 35%
+\& 36 - 55%
+\& 56 - 80%
+\& 81 - 99%
+\& 100%
+.Ve
+.Sp
+One of these patterns is selected according to the \fIgray_scale\fR value.
+.IP "\fBpattern\fR=\fIpat\fR" 4
+.IX Item "pattern=pat"
+This sets the fill mode for the next \fBfill\fR special, the area will be
+filled with a pattern. Any gray color specification is reset.
+.Sp
+\&\fIpat\fR is one of the following values:
+.Sp
+.Vb 6
+\& 1 horizontal lines
+\& 2 vertical lines
+\& 3 diagonal lines, from lower left corner to upper right corner
+\& 4 diagonal lines, from upper right corner to lower left corner
+\& 5 crossed lines, vertically
+\& 6 crossed lines, diagonally
+.Ve
+.IP "\fBfill\fR=\fIa/b\fR" 4
+.IX Item "fill=a/b"
+Fill the area between the points \fIa\fR and \fIb\fR, according to the
+current fill mode.
+.Sp
+Point \fIa\fR \fBmust\fR be the upper left corner and point \fIb\fR \fBmust\fR be the
+lower left corner of the rectangle. Otherwise the result is garbage.
+.Sp
+The default fill mode is 10% gray color filling.
+.IP "\fIfilename\fR" 4
+.IX Item "filename"
+This is a legacy special, its use is depreciated. If the special is
+just one word that names an existing file, that file is verbatim
+included. Contrary to other file inclusion means, the file is not
+searched with \fIkpathsea\fR\|(3). \fIYou are not supposed to use this special
+and we won't fix any problems with it.\fR
.PP
-The driver allows the -D option for both print-directions (front-to-back
-or back-to-front printing). It tries to be clever in certain cases:
-when a document has an odd number of pages it inserts in the
-right place an empty page
-when a document starts with page 0 the driver inserts an empty
-page after the 0-page
-when a piece of a document is printed that starts with
-an even page-number it prints this page at the backside
-of the first page to ensure that the odd sides are always
-on the frontside. The 0-page is treated like an odd page.
+It should be noted that the special parser does sometimes accept
+constructs that are not valid as in the documentation above. Then, the
+output is most often damaged in some way.
+.Sh "Searching for Included Files"
+.IX Subsection "Searching for Included Files"
+Proper file include specials search the file with \fIkpathsea\fR\|(3). The
+search path is configured by variable \f(CW\*(C`DVILJINPUTS\*(C'\fR and, if the file
+is not found in that search path, by variable \f(CW\*(C`TEXINPUTS\*(C'\fR.
.PP
-The doubleside option works for all LJs, not only for the
-new D model with does doubleside-printing (actually, I don't
-know whether it makes much sense on the new LJ II D at all).
+Search via \f(CW\*(C`DVILJINPUTS\*(C'\fR covers the use case that one has common
+site-wide graphics that shall be included in documents, e.g., scanned
+signatures. Search via \f(CW\*(C`TEXINPUTS\*(C'\fR covers the use case that one has
+graphics as part of ones current document.
.PP
-Caveat on the doubleside-option: When it is used frequently
-or on very large files, it might become necessary to clean
-the printer much more frequently.
+\&\f(CW\*(C`dvilj\*(C'\fR is used as the \f(CW\*(C`.PROGRAM\*(C'\fR name in \fItexmf.cnf\fR, for all
+driver variants, independent of the actual program name.
+.ie n .Sh "Unknown Specials and ""TEX_HUSH"" configuration"
+.el .Sh "Unknown Specials and \f(CWTEX_HUSH\fP configuration"
+.IX Subsection "Unknown Specials and TEX_HUSH configuration"
+\&\fIKpathsea\fR\|(3) has the concept of warning suppression with the
+configuration variable \f(CW\*(C`TEX_HUSH\*(C'\fR, please refer to its Info node
+\&\fITeX support / Suppressing warnings\fR. That variable holds a
+colon-separated identifiers that specifies the to-be-suppressed
+warnings.
.PP
-The command line option -pX can be used to abort printing
-after the output of X pages (can lead to strange results together
-with -D). I personally dislike this option. The secure way of
-printing a part of a document is using -f (from) and -t (to).
-.SH ENVIRONMENT
-Dviljk uses the same environment variables and algorithms for finding
-font files as TeX and its friends do. See the documentation for the
-Kpathsea library for details. (Repeating it here is too cumbersome.)
+If \f(CW\*(C`special\*(C'\fR is among the listed values, \fBdvilj\fR does not output
+warnings any more about specials that it doesn't know about. But if
+there is a recognized special and if that special has an invalid
+parameter, then a warning is output nevertheless, independent of the
+content of \f(CW\*(C`TEX_HUSH\*(C'\fR.
+.SH "DOUBLE PAGE PRINTING"
+.IX Header "DOUBLE PAGE PRINTING"
+If the printer has a duplex unit installed, duplex printing can be
+demanded with the \fB\-d\fR option.
.PP
-DVILJFONTS, if set, overrides all other font paths.
+Otherwise, the command line option \fB\-D\fR causes the printer to print
+in doublepage mode, that is, roughly speaking, printing first the even
+pages and then the odd pages of a document. If \fB\-D\fR is used to print
+both even and odd pages (\fB\-D\fR is used without the optional 1 or 2)
+the following will happen after half of the pages is printed: \s-1LJ:\s0 the
+printer stops, shows message \*(L"\s-1FEED\s0\*(R" and switches on manual feed led.
+The printer continues when either the printed pages are fed into the
+manual page feeder, or the operator pushes the continue button (after
+placing first the printed pages into the paper tray).
.PP
-DVILJMAKEPK, if set, overrides `mktexpk' as the name of the command to
-execute to create a PK file if one isn't found.
+If \fB\-D1\fR was specified only odd pages will be printed, \fB\-D2\fR can be
+used for even pages. A trailing \f(CW\*(C`\-\*(C'\fR (as in \fB\-D\-\fR, \fB\-D1\-\fR or
+\&\fB\-D2\-\fR) supresses printing of empty pages which are generated for
+padding otherwise.
.PP
-The DVILJSIZES variable may be set to indicate which sizes of fonts are
-available. It should consist of a list of numbers separated by colons. If
-the list begins with a colon, the system default sizes are used, as well.
-Sizes are expressed in dots per inch; decimals may be used for ``pxl'' files:
-for example, a 300 dots per inch file magnified by half a step comes out to
-1643 dots per five inches, which should be encoded as 328.6. \fIdvilj\fR
-tries the actual size of the font before trying any of the given sizes.
+The driver allows the \fB\-D\fR option for both print-directions
+(front\-to\-back or back-to-front printing). It tries to be clever in
+certain cases: when a document has an odd number of pages it inserts
+in the right place an empty page when a document starts with page 0
+the driver inserts an empty page after the 0\-page when a piece of a
+document is printed that starts with an even page-number it prints
+this page at the backside of the first page to ensure that the odd
+sides are always on the frontside. The 0\-page is treated like an odd
+page.
.PP
-KPATHSEA_DEBUG: Trace Kpathsea lookups; set to -1 for complete tracing.
-.SH AUTHOR
-Gustaf Neumann, Wirtschaftsuniversitaet Wien
-.br
-neumann@wu-wien.ac.at
+The doubleside option works for all LJs, not only for the new D model
+with does doubleside-printing (actually, I don't know whether it makes
+much sense on the new \s-1LJ\s0 \s-1II\s0 D at all).
+.PP
+Caveat on the doubleside\-option: When it is used frequently or on very
+large files, it might become necessary to clean the printer much more
+frequently.
+.PP
+The command line option \fB\-p\fR\fIX\fR can be used to abort printing after
+the output of \fIX\fR pages (can lead to strange results together with
+\&\fB\-D\fR). I personally dislike this option. The secure way of printing a
+part of a document is using \fB\-f\fR (from) and \fB\-t\fR (to).
+.SH "ENVIRONMENT"
+.IX Header "ENVIRONMENT"
+\&\fBdvilj\fR uses the same environment variables and algorithms for finding
+font files as TeX and its friends do. See the documentation for the
+\&\fIkpathsea\fR\|(3) library for details. (Repeating it here is too cumbersome.)
+.ie n .IP """DVILJFONTS""" 4
+.el .IP "\f(CWDVILJFONTS\fR" 4
+.IX Item "DVILJFONTS"
+If set, overrides all other font paths.
+.ie n .IP """DVILJMAKEPK""" 4
+.el .IP "\f(CWDVILJMAKEPK\fR" 4
+.IX Item "DVILJMAKEPK"
+If set, overrides \fImktexpk\fR\|(1) as the name of the command to execute to
+create a \s-1PK\s0 file if one isn't found.
+.ie n .IP """DVILJSIZES""" 4
+.el .IP "\f(CWDVILJSIZES\fR" 4
+.IX Item "DVILJSIZES"
+May be set to indicate which sizes of fonts are available. It should
+consist of a list of numbers separated by colons. If the list begins
+with a colon, the system default sizes are used, as well. Sizes are
+expressed in dots per inch; decimals may be used for \f(CW\*(C`pxl\*(C'\fR files: for
+example, a 300 dots per inch file magnified by half a step comes out
+to 1643 dots per five inches, which should be encoded as 328.6.
+\&\fBdvilj\fR tries the actual size of the font before trying any of the
+given sizes.
+.ie n .IP """DVILJINPUTS""" 4
+.el .IP "\f(CWDVILJINPUTS\fR" 4
+.IX Item "DVILJINPUTS"
+Primary search path for include files.
+.ie n .IP """TEXINPUTS""" 4
+.el .IP "\f(CWTEXINPUTS\fR" 4
+.IX Item "TEXINPUTS"
+Secondary search path for include files.
+.ie n .IP """TEX_HUSH""" 4
+.el .IP "\f(CWTEX_HUSH\fR" 4
+.IX Item "TEX_HUSH"
+Colon separated list of identifiers that name situations where no
+warning shall be output. The following identifiers are used:
+.Sp
+.Vb 5
+\& checksum suppress mismatched font checksum warnings
+\& readable suppress warnings about unreadable files
+\& special suppress warnings about unknown specials
+\& all suppress all warning classes above
+\& none suppress no warnings
+.Ve
+.ie n .IP """KPATHSEA_DEBUG""" 4
+.el .IP "\f(CWKPATHSEA_DEBUG\fR" 4
+.IX Item "KPATHSEA_DEBUG"
+Trace \fIkpathsea\fR\|(3) lookups; set to \-1 for complete tracing.
+.ie n .IP """GS_PATH""" 4
+.el .IP "\f(CWGS_PATH\fR" 4
+.IX Item "GS_PATH"
+On Windows, this may be the path to Ghostscript; there the default is
+\&\fIgswin32c.exe\fR.
+.Sp
+On Unix, this environment variable is not used. Ghostscript is called
+as \fIgs\fR\|(1) and must be found over \f(CW$PATH\fR.
+.SH "SEE ALSO"
+.IX Header "SEE ALSO"
+\&\fIdvihp\fR\|(1), \fIdvicopy\fR\|(1), \fIdvips\fR\|(1), \fIxdvi\fR\|(1), \fImktexpk\fR\|(1), \fIgs\fR\|(1),
+\&\fIkpathsea\fR\|(3)
+.PP
+Email bug reports to tex\-k@tug.org.
+.PP
+Source is at <http://mirror.ctan.org/dviware/dviljk/>; but for
+compilation the texk build environment is needed, from
+<svn://tug.org/texlive/*/Build/source>.
+.PP
+As of July 2007, \s-1PCL\s0 reference documentation is found at \s-1HP\s0's Web site
+at
+<http://h20000.www2.hp.com/bizsupport/TechSupport/Document.jsp?objectID=bpl04568>.
+At the end of that page are links to reference manuals for \s-1PCL\s0 and \s-1PJL\s0.
.PP
-dviljk changes by kb@mail.tug.org; email bug reports to tex\-k@mail.tug.org.
+In case that page is changed, here are the URLs of these documents.
+All have the form
+<http://h20000.www2.hp.com/bc/docs/support/SupportManual/bpl<\s-1ID\s0>/bpl<\s-1ID\s0>.pdf>,
+where \f(CW\*(C`<ID>\*(C'\fR is the following document \s-1ID:\s0
+.IP "\fB13205\fR" 4
+.IX Item "13205"
+\&\s-1PCL\s0 5 Technical Quick Reference Guide. This is the 1st thing to look up
+if you have questions about \s-1PCL\s0 escape sequences.
+.IP "\fB13210\fR and \fB13211\fR" 4
+.IX Item "13210 and 13211"
+\&\s-1PCL\s0 5 Technical Reference Manual (part I and \s-1II\s0). This is the
+full-detailled explanation that you need to look up if you don't
+understand how the printer works. Part I is the actual manual, part \s-1II\s0
+explains \s-1HP\-GL/2\s0 and has overall tips.
+.IP "\fB13208\fR and \fB13207\fR" 4
+.IX Item "13208 and 13207"
+\&\s-1PJL\s0 Technical Reference Manual (and addendum)
+.IP "\fB13212\fR" 4
+.IX Item "13212"
+\&\s-1PCL\s0 5 Color Manual. This explains color specials for the newer \s-1HP\s0
+printers. (Not of much use today; for practical purposes we would need
+to add color specials to \fBdvilj\fR first.)
+.IP "\fB13206\fR and \fB13209\fR" 4
+.IX Item "13206 and 13209"
+Comparison Guide (and addendum) that documents which \s-1PCL\s0 escape
+sequences are supported on which \s-1HP\s0 printers.
+.SH "AUTHOR"
+.IX Header "AUTHOR"
+dvi2xx by Gustaf Neumann <neumann@wu\-wien.ac.at>,
+Wirtschaftsuniversitaet Wien
+.Sp
+dviljk fork by kb@mail.tug.org
+.Sp
+Joachim Schrod <jschrod@acm.org> supplied security fixes and updated
+this man page.
+.SH "LICENSE"
+.IX Header "LICENSE"
+dvi2xx is public domain software. dviljk changes are covered by the
+\&\s-1GNU\s0 General Public License.
diff --git a/Build/source/texk/dviljk/dvilj.pod b/Build/source/texk/dviljk/dvilj.pod
new file mode 100644
index 00000000000..c20258215c9
--- /dev/null
+++ b/Build/source/texk/dviljk/dvilj.pod
@@ -0,0 +1,609 @@
+=head1 NAME
+
+dvilj4, dvilj4l, dvilj2p, dvilj - convert a TeX DVI file to PCL, for HP LaserJet printers
+
+=head1 SYNOPSIS
+
+ dvilj [--Dnumber] [-ccopies] [-dmode] [-D] [-E] [-eoutputfile]
+ [-ffrompage] [-g] [-hheaderfile] [-l] [-Mflag] [-mmag] [-ppages]
+ [-q] [-r] [-ttopage] [-spagesize] [-v] [-Vmode] [-w] [-xxoff(mm)]
+ [-yyoff(mm)] [-Xxoff(dots)] [-Yyoff(dots)] [-z] [filename]
+
+=head1 DESCRIPTION
+
+B<dvilj> and siblings convert TeX-output C<.dvi> files into PCL (the
+Hewlett-Packard Printer Control Language) commands suitable for
+printing on a HP LaserJet+, HP LaserJet IIP (using B<dvilj2p>), HP
+LaserJet 4 (using B<dvilj4>), and fully compatible printers.
+
+B<dvilj4> also provides support for the builtin Intellifont and
+TrueType fonts; TFM and VF files are provided in the distribution.
+Virtual fonts are not supported directly by B<dvilj>, so you must run
+dvicopy(1) first, or otherwise expand the virtual fonts
+
+All programs are generated from one source file F<dvi2xx.c>. They are
+usually called via a shell script or as a line printer filter. One
+such script, dvihp(1), is included in the distribution. It provides
+command-line options similar to those of dvips(1).
+
+
+=head1 OPTIONS
+
+=over
+
+=item B<--D>I<number>
+
+Debug according to the bits of I<number>; see the kpathsea(3) manual
+for values. Also turns on general verbosity.
+
+=item B<-c>I<number>
+
+Print each page I<number> times (including original)
+
+=item B<-d>I<number>
+
+print in duplex mode. The option B<-d1> means long edge binding,
+B<-d2> stands for short edge binding. This option is only selectable
+in B<dvilj4> and B<dvilj2p>.
+
+=item B<-D>I<[-12]>
+
+Double-sided printing - see below; B<-D1> prints odd sides only,
+B<-D2> is for even pages, a trailing B<-> suppresses printing of empty
+padding pages.
+
+=item B<-E>
+
+Switch printer into econo mode (B<dvilj4> only).
+
+=item B<-e>I<outfile>
+
+Send output to F<outfile> instead of the basename of dvi file extended
+with C<.lj>. If outfile is B<-> (as in C<-e->) the output is directed
+to standard output and can be directly piped into a spooler.
+
+=item B<-f>I<pagenum>
+
+Print pages with TeX page numbers greater than or equal to I<pagenum>.
+
+=item B<-g>
+
+I<Go> mode: do not reset printer at start of job.
+
+=item B<-h>I<headerfile>
+
+Copy F<headerfile> to output before translation of the DVI file. Used
+to send arbitrary commands to the laserprinter.
+
+=item B<-l>
+
+Print output in landscape mode; supported only by B<dvilj2p> and
+B<dvilj4>.
+
+=item B<-M>I<flag>
+
+Do (not) call mktexpk(1) to generate fonts on demand. B<-M1> and B<-M>
+are equivalent. B<-M0> enables invoking mktexpk(1). (This is the same
+as in dvips(1).) The default behavior (i.e., if no B<-M> option is
+given) is chosen at compile-time; as distributed, mktexpk is enabled.
+
+=item B<-m>I<magnification>
+
+Specify the magnification to use. The following are available:
+
+ -m#usermag e.g., #900
+ -m0 equivalent to -m#1000
+ -mh equivalent to -m#1095
+ -m1 equivalent to -m#1200
+ -mq equivalent to -m#1250
+ -m2 equivalent to -m#1440
+ -m3 equivalent to -m#1728
+ -m4 equivalent to -m#2074
+ -m5 equivalent to -m#2488
+
+=item B<-p>I<pagecount>
+
+Print I<pagecount> pages after the starting page.
+
+=item B<-q>
+
+Quiet operation: omit final statistics, etc.
+
+=item B<-r>
+
+Toggle page reversal.
+
+=item B<-s>I<pagesize>
+
+Specify the page size:
+
+ -s1: Executive (7.25" x 10.5")
+ -s2: Letter (8.5" x 11")
+ -s3: Legal (8.5" x 14")
+ -s6: Ledger (11" x 17")
+ -s25: A5 paper (148mm x 210mm)
+ -s26: A4 paper (210mm x 297mm)
+ -s27: A3 (297mm x 420mm)
+ -s45: JIS B5 paper (182mm x 257mm)
+ -s46: JIS B4 paper (250mm x 354mm)
+ -s71: Hagaki postcard (100mm x 148mm)
+ -s72: Oufuku-Hagaki postcard (200mm x 148mm)
+ -s80: Monarch Envelope (3 7/8" x 7 1/2")
+ -s81: Commercial Envelope 10 (4 1/8" x 9 1/2")
+ -s90: International DL (110mm x 220mm)
+ -s91: International C5 (162mm x 229mm)
+ -s100: International B5 (176mm x 250mm)
+
+These values are from the PCL 5 technical reference manual. If the
+B<-s> commandline option is omitted, no clipping is performed at the
+bottom of the page. (But printing below the paper bottom should not
+disturb any correctly behaving PCL printer.) Please remember that the
+correct paper tray must be installed for selected paper size, so use
+this option only if you have full control over your print destination.
+
+=item B<-t>I<pagenum>
+
+Print pages with TeX page numbers less than or equal to I<pagenum>.
+
+=item B<-v>
+
+Verbose mode: list fonts used, etc.
+
+=item B<-V>I<mode>
+
+Compatibility mode. As I<mode>, use C<K> for Kyocera, C<B> for
+Brother, C<6> for LJ6 printers.
+
+=item B<-w>
+
+Omit warnings.
+
+=item B<-x>I<offset>
+
+Global x-offset in mm on output page relative to 1 inch/1 inch origin.
+
+=item B<-y>I<offset>
+
+Global y-offset in mm on output page relative to 1 inch/1 inch origin.
+
+=item B<-X>I<offset>
+
+Global x-offset in dots on output page (overrides 1 inch/1 inch
+origin).
+
+=item B<-Y>I<offset>
+
+Global y-offset in dots on output page (overrides 1 inch/1
+inch origin).
+
+=item B<-z>
+
+Print a test page with the page counter at end of job.
+
+=back
+
+
+=head1 OPERANDS
+
+If no operands are specified a brief usage message is displayed.
+
+=over
+
+=item I<filename>
+
+The DVI file name that shall be converted by B<dvilj>. It must always
+be seekable.
+
+The output file name is constructed from I<filename>. Either an
+extension C<.dvi> is replaced by C<.lj>, or the extension C<.lj> is
+appended.
+
+If I<filename> is B<->, the DVI file is read from standard input and
+the resulting PCL document is written to standard output. (Please
+remember that thhe DVI file must be seekable, even if it's stdin.)
+
+=back
+
+
+=head1 SUPPORTED TeX \special COMMANDS
+
+C<\special> commands supported by B<dvilj> have the generic syntax
+
+ \special{key1=value key1="value with space"}
+ \special{key3 = value key4 = 'note optional spaces around equal sign'}
+
+I.e., specials are a sequence of key/value pairs, separated by an
+equal sign. Spaces around the equal sign are ignored. The value is
+either a space separated word, or a quoted string. Both double and
+single quotes can be used, alternatively. There is no support for
+quoting quote characters in values; if you want both double and single
+quotes in one value, you're out of luck.
+
+The following key/value combinations are valid:
+
+=over
+
+=item B<hpfile>=I<file>
+
+Insert I<file> at the current position. I<file> is searched with
+kpathsea(3), see below.
+
+The file content must be valid for this printer, i.e., it should
+contain PCL escape sequences or HP-GL/2 commands. If the file is a
+graphics file, this typically means that the upper left corner of the
+graphics is placed at the current position.
+
+PCL absolute positioning escape sequences in I<file> are rewritten to
+be relative positioning commands; the lowest appearing coordinate is
+used as reference.
+
+=item B<hpfile_verbatim>=I<file>
+
+Insert I<file> verbatim at the current position, without any changes
+of the file content. I<file> is searched with kpathsea(3), see below.
+
+This is mostly used to keep absolute positions in PCL files.
+
+=item B<psfile>=I<file> B<llx>=I<x0> B<lly>=I<y0> B<urx>=I<x1> B<ury>=I<y1> B<rwi>=I<s>
+
+Convert Postscript file I<file> to HP PCL, by Ghostscript with device
+C<ljetplus>, and insert the resulting graphics file at the current
+position, rewriting absolute position escape sequences. I<file> is
+searched with kpathsea(3), see below.
+
+The accompanying key/value pairs are mandatory, they can be specified
+in an arbitrary order. Values I<x0>, I<x1>, I<y0>, I<y1>, and I<s> are
+integers. (I<x0>,I<y0>) is the lower left corner, (I<x1>,I<y1>) the
+upper right corner of the image.
+
+B<Please note: The specific semantics of this special is not known.>
+In particular, the B<rwi> parameter is some scale factor; but even
+looking at the source code it is not quite clear what the special's
+author intended to implement here. In addition, it is unclear what
+dimensions are used to specify the corners, Postscript points or PCL
+dots.
+
+I<If you happen to know the psfile semantics, or if you spent the work
+analyzing them, please inform us at tex-k@tug.org, so that we can
+update this man page with the relevant information.>
+
+=item B<dvilj-psfile-syntax>=I<syntax>
+
+where I<syntax> is either C<dvilj> or C<ignore>. This is a very crude
+way to tell the driver what to do with B<psfile> specials.
+
+If the value is C<ignore>, all B<psfile> specials that are processed
+afterwards are ignored, until the next B<dvilj-psfile-syntax> special is
+processed.
+
+If the value is C<dvilj>, B<psfiles> specials are processed as
+explained above, until the next B<dvilj-psfile-syntax> special is
+processed.
+
+An obvious, planned, extension is the value C<dvips>, but this has not
+been implemented yet.
+
+That special is not as simple as it sounds at first. Since its
+semantics is defined by processing order, it is only of use if it is
+placed on the same page as the B<psfile> special. Having it once in a
+file (e.g., on the first page) does not help if you print just one
+page of the document -- B<dvilj> does not do prescanning of first-page
+specials like some other drivers do. (Patches would be welcome, of
+course.)
+
+=item B<comment>=I<arbitrary text>
+
+=item B<comment> I<arbitrary text>
+
+This causes the rest of the special to be ignored; it may be used to
+add meta-information to a DVI file.
+
+With the first form, the comment may appear anywhere in the special.
+When it appears first, the processing of this special is terminated
+and all other text behind is ignored.
+
+The second form is a speciality that has been introduced for
+compatibility with other drivers. If the first keyword of the special
+is B<comment> and has no value, it is taken as a valid comment syntax,
+too; the rest of the special is ignored.
+
+=item B<orientation>=I<po>
+
+Position the page on the physical paper. The value I<po> may be one of
+the following values:
+
+ 0 for portrait
+ 1 for landscape
+ 2 for reverse portrait
+ 3 for reverse landscape
+
+=item B<defpoint>=I<n(x,y)>
+
+Define the point number I<n>. This point can be referred to later in
+other special commands to specify areas that shall be filled with some
+pattern. I<n> must be between 0 and 79.
+
+I<x> and I<y> are the position of that point and have the form C<?pt>
+where C<?> is a floating point number. The positions are relative to
+the DVI page origin; i.e., coordinates increase moving right and down,
+the point of origin is (1in,1in) in the upper left corner, altered by
+options B<-x>, B<-y>, B<-X>, and B<-Y>, but not by \hoffset and
+\voffset.
+
+I<x> and I<y> can be omitted, i.e., the values C<3> or C<4(,)> are
+valid. Then the current page position is used as position for point
+I<n>.
+
+=item B<resetpoints>=C<all>
+
+This undefines all points again.
+
+=item B<gray>=I<gray_scale>
+
+=item B<grey>=I<gray_scale>
+
+This sets the fill mode for the next B<fill> special, the area will be
+filled with gray color. (B<grey> is an alias for B<gray>.) Any pattern
+specification is reset.
+
+I<gray_scale> is the percentage of gray that shall be used here; with
+C<0> meaning white and C<100> meaning black.
+
+Caveat: That special is actually a misnomer. PCL names these gray
+scales I<shading patterns> and they are created by placing dots in the
+area. The gray scale selects how far spread the dots are. In the lower
+ranges, this doesn't look very gray on close sight, but more like a
+dotted background. Furthermore, the gray scales are not as
+fine-grained as the value range 0..100 might make you believe. In
+reality, there are only 8 different gray patterns available:
+
+ 1 - 2%
+ 3 - 10%
+ 11 - 20%
+ 21 - 35%
+ 36 - 55%
+ 56 - 80%
+ 81 - 99%
+ 100%
+
+One of these patterns is selected according to the I<gray_scale> value.
+
+=item B<pattern>=I<pat>
+
+This sets the fill mode for the next B<fill> special, the area will be
+filled with a pattern. Any gray color specification is reset.
+
+I<pat> is one of the following values:
+
+ 1 horizontal lines
+ 2 vertical lines
+ 3 diagonal lines, from lower left corner to upper right corner
+ 4 diagonal lines, from upper right corner to lower left corner
+ 5 crossed lines, vertically
+ 6 crossed lines, diagonally
+
+=item B<fill>=I<a/b>
+
+Fill the area between the points I<a> and I<b>, according to the
+current fill mode.
+
+Point I<a> B<must> be the upper left corner and point I<b> B<must> be the
+lower left corner of the rectangle. Otherwise the result is garbage.
+
+The default fill mode is 10% gray color filling.
+
+=item I<filename>
+
+This is a legacy special, its use is depreciated. If the special is
+just one word that names an existing file, that file is verbatim
+included. Contrary to other file inclusion means, the file is not
+searched with kpathsea(3). I<You are not supposed to use this special
+and we won't fix any problems with it.>
+
+=back
+
+It should be noted that the special parser does sometimes accept
+constructs that are not valid as in the documentation above. Then, the
+output is most often damaged in some way.
+
+
+=head2 Searching for Included Files
+
+Proper file include specials search the file with kpathsea(3). The
+search path is configured by variable C<DVILJINPUTS> and, if the file
+is not found in that search path, by variable C<TEXINPUTS>.
+
+Search via C<DVILJINPUTS> covers the use case that one has common
+site-wide graphics that shall be included in documents, e.g., scanned
+signatures. Search via C<TEXINPUTS> covers the use case that one has
+graphics as part of ones current document.
+
+C<dvilj> is used as the C<.PROGRAM> name in F<texmf.cnf>, for all
+driver variants, independent of the actual program name.
+
+
+=head2 Unknown Specials and C<TEX_HUSH> configuration
+
+Kpathsea(3) has the concept of warning suppression with the
+configuration variable C<TEX_HUSH>, please refer to its Info node
+I<TeX support / Suppressing warnings>. That variable holds a
+colon-separated identifiers that specifies the to-be-suppressed
+warnings.
+
+If C<special> is among the listed values, B<dvilj> does not output
+warnings any more about specials that it doesn't know about. But if
+there is a recognized special and if that special has an invalid
+parameter, then a warning is output nevertheless, independent of the
+content of C<TEX_HUSH>.
+
+
+=head1 DOUBLE PAGE PRINTING
+
+If the printer has a duplex unit installed, duplex printing can be
+demanded with the B<-d> option.
+
+Otherwise, the command line option B<-D> causes the printer to print
+in doublepage mode, that is, roughly speaking, printing first the even
+pages and then the odd pages of a document. If B<-D> is used to print
+both even and odd pages (B<-D> is used without the optional 1 or 2)
+the following will happen after half of the pages is printed: LJ: the
+printer stops, shows message "FEED" and switches on manual feed led.
+The printer continues when either the printed pages are fed into the
+manual page feeder, or the operator pushes the continue button (after
+placing first the printed pages into the paper tray).
+
+If B<-D1> was specified only odd pages will be printed, B<-D2> can be
+used for even pages. A trailing C<-> (as in B<-D->, B<-D1-> or
+B<-D2->) supresses printing of empty pages which are generated for
+padding otherwise.
+
+The driver allows the B<-D> option for both print-directions
+(front-to-back or back-to-front printing). It tries to be clever in
+certain cases: when a document has an odd number of pages it inserts
+in the right place an empty page when a document starts with page 0
+the driver inserts an empty page after the 0-page when a piece of a
+document is printed that starts with an even page-number it prints
+this page at the backside of the first page to ensure that the odd
+sides are always on the frontside. The 0-page is treated like an odd
+page.
+
+The doubleside option works for all LJs, not only for the new D model
+with does doubleside-printing (actually, I don't know whether it makes
+much sense on the new LJ II D at all).
+
+Caveat on the doubleside-option: When it is used frequently or on very
+large files, it might become necessary to clean the printer much more
+frequently.
+
+The command line option B<-p>I<X> can be used to abort printing after
+the output of I<X> pages (can lead to strange results together with
+B<-D>). I personally dislike this option. The secure way of printing a
+part of a document is using B<-f> (from) and B<-t> (to).
+
+=head1 ENVIRONMENT
+
+B<dvilj> uses the same environment variables and algorithms for finding
+font files as TeX and its friends do. See the documentation for the
+kpathsea(3) library for details. (Repeating it here is too cumbersome.)
+
+=over
+
+=item C<DVILJFONTS>
+
+If set, overrides all other font paths.
+
+=item C<DVILJMAKEPK>
+
+If set, overrides mktexpk(1) as the name of the command to execute to
+create a PK file if one isn't found.
+
+=item C<DVILJSIZES>
+
+May be set to indicate which sizes of fonts are available. It should
+consist of a list of numbers separated by colons. If the list begins
+with a colon, the system default sizes are used, as well. Sizes are
+expressed in dots per inch; decimals may be used for C<pxl> files: for
+example, a 300 dots per inch file magnified by half a step comes out
+to 1643 dots per five inches, which should be encoded as 328.6.
+B<dvilj> tries the actual size of the font before trying any of the
+given sizes.
+
+=item C<DVILJINPUTS>
+
+Primary search path for include files.
+
+=item C<TEXINPUTS>
+
+Secondary search path for include files.
+
+=item C<TEX_HUSH>
+
+Colon separated list of identifiers that name situations where no
+warning shall be output. The following identifiers are used:
+
+ checksum suppress mismatched font checksum warnings
+ readable suppress warnings about unreadable files
+ special suppress warnings about unknown specials
+ all suppress all warning classes above
+ none suppress no warnings
+
+=item C<KPATHSEA_DEBUG>
+
+Trace kpathsea(3) lookups; set to -1 for complete tracing.
+
+=item C<GS_PATH>
+
+On Windows, this may be the path to Ghostscript; there the default is
+F<gswin32c.exe>.
+
+On Unix, this environment variable is not used. Ghostscript is called
+as gs(1) and must be found over $PATH.
+
+=back
+
+
+=head1 SEE ALSO
+
+dvihp(1), dvicopy(1), dvips(1), xdvi(1), mktexpk(1), gs(1),
+kpathsea(3)
+
+Email bug reports to tex-k@tug.org.
+
+Source is at L<http://mirror.ctan.org/dviware/dviljk/>; but for
+compilation the texk build environment is needed, from
+L<svn://tug.org/texlive/*/Build/source>.
+
+As of July 2007, PCL reference documentation is found at HP's Web site
+at
+L<http://h20000.www2.hp.com/bizsupport/TechSupport/Document.jsp?objectID=bpl04568>.
+At the end of that page are links to reference manuals for PCL and PJL.
+
+In case that page is changed, here are the URLs of these documents.
+All have the form
+L<http://h20000.www2.hp.com/bc/docs/support/SupportManual/bplE<lt>IDE<gt>/bplE<lt>IDE<gt>.pdf>,
+where C<E<lt>IDE<gt>> is the following document ID:
+
+=over
+
+=item B<13205>
+
+PCL 5 Technical Quick Reference Guide. This is the 1st thing to look up
+if you have questions about PCL escape sequences.
+
+=item B<13210> and B<13211>
+
+PCL 5 Technical Reference Manual (part I and II). This is the
+full-detailled explanation that you need to look up if you don't
+understand how the printer works. Part I is the actual manual, part II
+explains HP-GL/2 and has overall tips.
+
+=item B<13208> and B<13207>
+
+PJL Technical Reference Manual (and addendum)
+
+=item B<13212>
+
+PCL 5 Color Manual. This explains color specials for the newer HP
+printers. (Not of much use today; for practical purposes we would need
+to add color specials to B<dvilj> first.)
+
+=item B<13206> and B<13209>
+
+Comparison Guide (and addendum) that documents which PCL escape
+sequences are supported on which HP printers.
+
+=head1 AUTHOR
+
+dvi2xx by Gustaf Neumann <neumann@wu-wien.ac.at>,
+Wirtschaftsuniversitaet Wien
+
+dviljk fork by kb@mail.tug.org
+
+Joachim Schrod <jschrod@acm.org> supplied security fixes and updated
+this man page.
+
+
+=head1 LICENSE
+
+dvi2xx is public domain software. dviljk changes are covered by the
+GNU General Public License.