summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/pdftex/manual
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2020-03-02 17:06:33 +0000
committerKarl Berry <karl@freefriends.org>2020-03-02 17:06:33 +0000
commitd5c6ce7f09e0ed91d78f1f783ecb5e46c12abb77 (patch)
treedf6bb3d9d77c17fddb5ff46f9dd873f471378a76 /Master/texmf-dist/doc/pdftex/manual
parentc6061bd39c7e6eff409c3a17bc0a918f266a3bee (diff)
pdftex doc update for TL20
git-svn-id: svn://tug.org/texlive/trunk@53997 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/pdftex/manual')
-rw-r--r--Master/texmf-dist/doc/pdftex/manual/ChangeLog45
-rw-r--r--Master/texmf-dist/doc/pdftex/manual/Makefile13
-rw-r--r--Master/texmf-dist/doc/pdftex/manual/pdftex-a.pdfbin819006 -> 930933 bytes
-rw-r--r--Master/texmf-dist/doc/pdftex/manual/pdftex-syntax.txt8
-rw-r--r--Master/texmf-dist/doc/pdftex/manual/pdftex-t.tex352
-rw-r--r--Master/texmf-dist/doc/pdftex/manual/pdftex-w.tex10
6 files changed, 290 insertions, 138 deletions
diff --git a/Master/texmf-dist/doc/pdftex/manual/ChangeLog b/Master/texmf-dist/doc/pdftex/manual/ChangeLog
index 3c90f87a7da..307eb5ea5f1 100644
--- a/Master/texmf-dist/doc/pdftex/manual/ChangeLog
+++ b/Master/texmf-dist/doc/pdftex/manual/ChangeLog
@@ -1,3 +1,48 @@
+2020-03-02 Karl Berry <karl@freefriends.org>
+
+ * Makefile (common_deps): don't include pdftex-help.txt,
+ then we always rebuild.
+ * pdftex-w.tex: insert \hfil since this is ini.
+
+2020-03-01 Karl Berry <karl@freefriends.org>
+
+ * pdftex-t.tex (\input): new entry for \input{...}.
+ (History): describe current situation better.
+ Remove teTeX references. Use https.
+
+2019-12-25 Karl Berry <karl@freefriends.org>
+
+ * pdftex-t.tex (\pdfmdfivesum): explain the non-file (string) form too.
+ (\pdffiledump): explain that length defaults to zero.
+ Report from Bruno Le Floch,
+ https://tug.org/pipermail/pdftex/2015-July/008948.html.
+
+ Also:
+ (\MDFIVE): avoid oldstyle numbers.
+ (\Syntax): don't swallow spaces after final \kern.
+ (\Whatever): \kern.75em before, for more separation.
+ (\Somethingtext): new \Something that keeps surrounding spaces in
+ input, to be used in text (vs. syntax lines).
+
+2019-11-25 Karl Berry <karl@freefriends.org>
+
+ * pdftex-t.tex: document \pdfmajorversion. Besides the new
+ primitive description, affects \pdfobjcompresslevel and \pdfhicolor.
+
+2019-01-19 Karl Berry <karl@freefriends.org>
+
+ * pdftex-t.tex (\currentpdftex): 1.40.20 (for TeX Live 2019).
+
+2018-11-13 Karl Berry <karl@freefriends.org>
+
+ * pdftex-t.tex (Invoking \PDFTEX),
+ (\pdffilemoddate): if SOURCE_DATE_EPOCH and FORCE_SOURCE_DATE are
+ both set, return UTC.
+
+2019-05-17 Karl Berry <karl@freefriends.org>
+
+ * pdftex-t.tex (\expanded): primitive imported from 1.50 branch.
+
2018-01-01 Karl Berry <karl@freefriends.org>
* pdftex-t.tex (encodingfile): supported for Type 3 fonts.
diff --git a/Master/texmf-dist/doc/pdftex/manual/Makefile b/Master/texmf-dist/doc/pdftex/manual/Makefile
index d6589ac1c04..7c1e369adaa 100644
--- a/Master/texmf-dist/doc/pdftex/manual/Makefile
+++ b/Master/texmf-dist/doc/pdftex/manual/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile 767 2017-02-18 23:49:54Z karl $
+# $Id: Makefile 822 2020-03-02 16:57:37Z karl $
# Makefile for pdfTeX documentation. Public domain.
# Get version we're documenting from the \def in the manual.
@@ -14,7 +14,7 @@ default: pdftex-a.pdf pdftex-syntax.txt
# the other formats (everything that can be built).
all: pdftex-l.pdf pdftex-s.pdf booklet
-common_deps = pdftex-t.tex pdftex-w.txt pdftex-help.txt pdftex-syntax.tex
+common_deps = pdftex-t.tex pdftex-w.txt pdftex-syntax.tex # pdftex-help.txt
pdftex-a.pdf a: $(common_deps)
$(context) --mode=a4 --result=$@ $<
@@ -53,8 +53,10 @@ pdftex-w.txt: pdftex-w.pdf
wc -l pdftex-w.txt # set titlepagelines=half of this
# PDF for the title page.
-pdftex-w.pdf: pdftex-w.tex
- pdftex $<
+pdftex_binary = ../../source/build-pdftex/texk/web2c/pdftex
+pdftex-w.pdf: pdftex-w.tex Makefile
+ TEXFONTS=/usr/local/texlive/dev/texmf-dist/fonts// \
+ $(pdftex_binary) -ini '\nonstopmode\input $<'
# Too annoying to remake help text every time; check by hand when needed.
@@ -81,7 +83,8 @@ pdftex-syntax.txt: pdftex-t.tex pdftex-syntax.tex syntaxform.awk
# Install from this source directory to TL.
-tltree = /home/texlive/karl/Master/texmf-dist
+# svn co svn://u:pw@tug.org/texlive/trunk/Master/texmf-dist/doc/pdftex
+tltree = /r/tug/home/texlive/karl/Master/texmf-dist
dest = $(tltree)/doc/pdftex/manual
INSTALL_DATA = cp -p
diff --git a/Master/texmf-dist/doc/pdftex/manual/pdftex-a.pdf b/Master/texmf-dist/doc/pdftex/manual/pdftex-a.pdf
index f29ac5d9a47..66806dfda35 100644
--- a/Master/texmf-dist/doc/pdftex/manual/pdftex-a.pdf
+++ b/Master/texmf-dist/doc/pdftex/manual/pdftex-a.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/pdftex/manual/pdftex-syntax.txt b/Master/texmf-dist/doc/pdftex/manual/pdftex-syntax.txt
index 70a1a454d84..0d9994e5e0d 100644
--- a/Master/texmf-dist/doc/pdftex/manual/pdftex-syntax.txt
+++ b/Master/texmf-dist/doc/pdftex/manual/pdftex-syntax.txt
@@ -27,8 +27,10 @@
\pdfinclusioncopyfonts (integer)
\pdfinclusionerrorlevel (integer)
\pdfinfoomitdate (integer)
+\pdfmajorversion (integer)
\pdfminorversion (integer)
\pdfobjcompresslevel (integer)
+\pdfomitcharset (integer)
\pdfoutput (integer)
\pdfpagebox (integer)
\pdfpkresolution (integer)
@@ -83,17 +85,19 @@
\pdfpkmode (tokens)
%% Expandable commands:
+\expanded <tokens> (expandable)
\ifincsname (expandable)
\ifpdfabsdim (expandable)
\ifpdfabsnum (expandable)
\ifpdfprimitive <control sequence> (expandable)
+\input <general text> (expandable)
\leftmarginkern <box number> (expandable)
\pdfcolorstackinit [page] [direct] <general text> (expandable)
\pdfcreationdate (expandable)
\pdfescapehex <general text> (expandable)
\pdfescapename <general text> (expandable)
\pdfescapestring <general text> (expandable)
-\pdffiledump [offset <number>] [length <number>] <general text> (expandable)
+\pdffiledump [offset <integer>] [length <integer>] <general text> (expandable)
\pdffilemoddate <general text> (expandable)
\pdffilesize <general text> (expandable)
\pdffontname <font> (expandable)
@@ -103,7 +107,7 @@
\pdfinsertht <integer> (expandable)
\pdflastmatch <integer> (expandable)
\pdfmatch [icase] [subcount <integer>] <general text> <general text> (expandable)
-\pdfmdfivesum file <general text> (expandable)
+\pdfmdfivesum [file] <general text> (expandable)
\pdfnormaldeviate (expandable)
\pdfpageref <page number> (expandable)
\pdfstrcmp <general text> <general text> (expandable)
diff --git a/Master/texmf-dist/doc/pdftex/manual/pdftex-t.tex b/Master/texmf-dist/doc/pdftex/manual/pdftex-t.tex
index da2703fe56b..42c0a11099e 100644
--- a/Master/texmf-dist/doc/pdftex/manual/pdftex-t.tex
+++ b/Master/texmf-dist/doc/pdftex/manual/pdftex-t.tex
@@ -1,7 +1,7 @@
% interface=english modes=letter,screen output=pdftex
% vim: tw=79
-% $Id: pdftex-t.tex 790 2018-01-02 00:12:04Z karl $
+% $Id: pdftex-t.tex 821 2020-03-02 02:14:55Z karl $
% The number of lines on the title page depends on exactly
% what \PDF\ code is generated.
@@ -38,15 +38,16 @@
August\or September\or October\or November\or December\else ERROR\fi}
}
-\svnscan $Id: pdftex-t.tex 790 2018-01-02 00:12:04Z karl $
+\svnscan $Id: pdftex-t.tex 821 2020-03-02 02:14:55Z karl $
-\def\currentpdftex{1.40.18}
+\def\currentpdftex{1.40.21}
%***********************************************************************
\def\eTeX{{$\varepsilon$}-\kern-.125em\TeX}
\def\eg{e.g.}
\def\Eg{E.g.}
+\def\MDFIVE{MD5} % not oldstyle 5, capital MD
\def\PDFReference{{\sl PDF Reference}} % PDF with capital letters
\abbreviation [AFM] {afm} {Adobe Font Metrics}
@@ -74,7 +75,6 @@
\abbreviation [MAC] {Macintosh} {Macintosh hardware platform}
\abbreviation [MACOSX] {Mac\,OS\,X} {Macintosh operating system version 10}
\abbreviation [MACTEX] {Mac\TeX} {\MAC\ \WEBC\ distribution}
-\abbreviation [MDFIVE] {md5} {MD5 message-digest algorithm}
\abbreviation [METAFONT] {\MetaFont} {graphic programming environment, bitmap output}
\abbreviation [METAPOST] {\MetaPost} {graphic programming environment, vector output}
\abbreviation [MIKTEX] {MiK\TeX} {\WIN\ distribution}
@@ -85,6 +85,7 @@
\abbreviation [PDFLATEX] {pdf\LaTeX} {\TEX\ extension producing \PDF\ output (\LATEX\ format loaded)}
\abbreviation [PDFTEX] {pdf\TeX} {\TEX\ extension producing \PDF\ output}
\abbreviation [PDF] {pdf} {Portable Document Format}
+\abbreviation [PDFA] {pdf/\kern-.16em a} {PDF A/ standards}
\abbreviation [PERL] {Perl} {Perl programming environment}
\abbreviation [PFA] {PFA} {Adobe PostScript Font format (ASCII)}
\abbreviation [PFB] {PFB} {Adobe PostScript Font format (Binary)}
@@ -98,7 +99,6 @@
\abbreviation [RGB] {rgb} {Red Green Blue color specification}
\abbreviation [TCX] {tcx} {\TEX\ Character Translation}
\abbreviation [TDS] {tds} {\TEX\ Directory Standard}
-\abbreviation [TETEX] {te\TeX} {\TEX\ distribution for \UNIX\ (based on \WEBC)}
\abbreviation [TEXEXEC] {\TeX exec} {\CONTEXT\ command line interface}
\abbreviation [TEXINFO] {Texinfo} {generate typeset documentation from info pages}
\abbreviation [TEXUTIL] {\TeX util} {\CONTEXT\ utility tool}
@@ -112,7 +112,6 @@
\abbreviation [WEBC] {Web2c} {official multi||platform \WEB\ environment}
\abbreviation [WEB] {web} {literate programming environment}
\abbreviation [WIN] {Windows} {Microsoft Windows platform}
-\abbreviation [XEMTEX] {XEm\TeX} {\WIN\ \WEBC\ distribution}
\abbreviation [ZIP] {zip} {compressed file format}
%D It makes sense to predefine the name of the author of \PDFTEX, doesn't it?
@@ -123,23 +122,24 @@
%D appearance of the \TEX\ source, \URL's are defined here.
\useURL [ptex_org] [http://www.pdftex.org] % links to ptex_examples
-\useURL [ptex_ctan] [http://ctan.org/pkg/pdftex]
+\useURL [ptex_ctan] [https://ctan.org/pkg/pdftex]
\useURL [ptex_devel] [http://foundry.supelec.fr/projects/pdftex]
% where bug reports should go:
\useURL [ptex_bugs] [mailto:pdftex@tug.org] [] [pdftex@tug.org]
-\useURL [ptex_listinfo] [http://lists.tug.org/pdftex]
+\useURL [ptex_listinfo] [https://lists.tug.org/pdftex]
-\useURL [kpathsea] [http://tug.org/kpathsea]
-\useURL [texlive] [http://tug.org/texlive]
-\useURL [web2c] [http://tug.org/web2c]
+\useURL [etex_ctan] [https://ctan.org/pkg/etex]
+\useURL [kpathsea] [https://tug.org/kpathsea]
+\useURL [texlive] [https://tug.org/texlive]
+\useURL [web2c] [https://tug.org/web2c]
\useURL [ctan_systems] [http://mirror.ctan.org/systems]
\useURL [win32] [http://mirror.ctan.org/systems/win32]
\useURL [context] [http://www.pragma-ade.com]
-\useURL [tex_showcase] [http://tug.org/texshowcase]
+\useURL [tex_showcase] [https://tug.org/texshowcase]
-\useURL [pdfreference] [http://www.adobe.com/devnet/pdf/pdf_reference.html]
-\useURL [thanh_truetype_tub] [http://tug.org/TUGboat/tb30-1/tb94thanh.pdf]
+\useURL [pdfreference] [https://www.adobe.com/devnet/pdf/pdf_reference.html]
+\useURL [thanh_truetype_tub] [https://tug.org/TUGboat/tb30-1/tb94thanh.pdf]
\useURL [jbig2enc] [https://github.com/agl/jbig2enc]
%D The primitive definitions are specified a bit fuzzy using the next set of
@@ -151,7 +151,7 @@
\let\ifpdfabsnum\relax
\let\ifpdfabsdim\relax
-\def\Syntax #1{\strut\kern-.25em{#1}\kern-.25em}
+\def\Syntax #1{\strut\kern-.25em{#1}\kern-.25em\relax}
\def\Next {\crlf\hbox to 2em{}\nobreak}
\def\Sugar #1{\unskip\unskip\unskip\kern.25em{#1}\kern.25em\ignorespaces}
%
@@ -163,11 +163,17 @@
\def\Or {\Sugar{\mathematics{\vert}}}
\def\Rbrace {\Sugar{\tttf\rightargument}}
\def\Tex #1{\Sugar{\type{#1}}}
-\def\Whatever #1{\Sugar{\mathematics{(\hbox{#1})}}}
+\def\Whatever #1{\Sugar{\kern.75em\mathematics{(\hbox{#1})}}} % parens
+ % a full quad before, more of a separator on
+ % syntax lines.
-% hyphenates
+% hyphenates, angle brackets
\def\Something#1{\Sugar{\mathematics{\langle}\prewordbreak
{#1}\prewordbreak\mathematics{\rangle}}}
+%
+% undoes the .25em spacing of \Sugar, letting before and after spaces in
+% the input stand.
+\def\Somethingtext#1{\Syntax{\Something{#1}}}
\hbadness=10000 % don't care
@@ -574,6 +580,7 @@
Hartmut Henkel\par
Pawe\l\ Jackowski\par
Martin Schr\"oder\par
+ Karl Berry\par
\vskip3ex
@@ -646,21 +653,25 @@ successfully compiled on \UNIX, \WIN\ and \MSDOS\ systems. It is
actively maintained, with new features trickling in. Great care is taken
to keep new \PDFTEX\ versions backward compatible with earlier ones.
-For some years there has been a \quote {conservative} successor to \TEX\
-available, called \ETEX. Because mainstream macro packages such as
-\LATEX\ have started supporting this welcome extension, the \ETEX\
-functionality has also been integrated into the \PDFTEX\ code. For a
-while (\TEXLIVE~2004 and~2005) \PDFTEX\ therefore came in two flavours:
-the \ETEX\ enabled \PDFETEX\ engine and the standard one, \PDFTEX. The
-ability to produce both \PDF\ and \DVI\ output made \PDFETEX\ the
-primary \TEX\ engine in these distributions. Since \PDFTEX\ version 1.40
-now the \ETEX\ extensions are part already of the \PDFTEX\ engine, so
-there is no longer any need to ship \PDFETEX. The \ETEX\ functionality
-of \PDFTEX\ can be disabled if not required. Other extensions are
-\MLTEX\ and \ENCTEX; these are also included in the current \PDFTEX\
-code.
-
-\PDFTEX\ is maintained by \THANH, Martin Schr\"oder, and others. The
+A \quote {conservative} successor to \TEX, named \ETEX, was developed
+in the 1990s. Since \PDFTEX\ version 1.40, the \ETEX\ extensions are
+always part of the \PDFTEX\ engine, so \type{pdfetex} is now simply a
+link to \type{pdftex}; they have identical behavior. For documentation
+on the \ETEX\ extensions, see \from[etex_ctan].
+
+Furthermore, \PDFTEX\ itself has acquired plenty of extensions over the
+years which are not related specifically to \PDF\ output, generally new
+primitives for various features that are inconvenient or impossible to
+implement at the \TEX\ level. Many of these extensions have been adopted
+across all engines (not necessarily by the same name), and some are or
+will be required by \LATEX. Therefore, \type{etex} is also a link to
+\type{pdftex}, the difference being only whether \DVI\ or \PDF\ output
+is generated by default.
+
+Other extensions are \MLTEX\ and \ENCTEX; these are also included in the
+current \PDFTEX\ code, although are little used for new documents.
+
+\PDFTEX\ is maintained by \THANH\ and others. The
\PDFTEX\ homepage is \from [ptex_org]. Please send \PDFTEX\ comments and
bug reports to the mailing list \from [ptex_bugs] (\from [ptex_listinfo]).
@@ -674,14 +685,14 @@ repository for the manual and its sources is at \from[ptex_devel].
Copies in \PDF\ format can also be found on \CTAN\ via \from[ptex_ctan].
Thanks to the many people who have contributed to the manual.
-New errors might have slipped in afterwards by the editor.
+Improvements are always possible, and bugs not unlikely.
Please send questions or suggestions by email to \from[ptex_bugs].
%***********************************************************************
\subsection{Legal Notice}
-Copyright \copyright\ 1996||2017 \THANH.
+Copyright \copyright\ 1996||2020 \THANH.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2
or any later version published by the Free Software Foundation;
@@ -824,7 +835,7 @@ We now turn to specifics of \PDFTEX.
This section describes the steps needed to get \PDFTEX\ running on
a system where \PDFTEX\ is not yet installed. Nowadays virtually all
\TEX\ distributions have \PDFTEX\ as a component, such as \TEXLIVE,
-\MIKTEX, \TETEX, \XEMTEX, \PROTEXT, and \MACTEX. The ready to run
+\MIKTEX, \PROTEXT, and \MACTEX. The ready to run
\TEXLIVE\ distribution comes with \PDFTEX\ versions for many \UNIX,
\WIN, and \MACOSX\ systems; more information can be found at
\hbox{\from[texlive].} There are also \WIN-specific distributions which
@@ -837,7 +848,7 @@ If there is no precompiled \PDFTEX\ binary for your system, or the version
coming with a distribution is not the current one and you would like to
try out a fresh \PDFTEX\ immediately, you will need to build \PDFTEX\
from sources; read on. You should already have a working \TEX\ system,
-\eg\ \TEXLIVE\ or \TETEX, into which the freshly compiled \PDFTEX\ will
+\eg\ \TEXLIVE, into which the freshly compiled \PDFTEX\ will
be integrated. Note that the installation description in this manual
is \WEBC||specific.
@@ -871,7 +882,7 @@ The binary \filename{pdftex} is then built in the subdirectory
\filename{build/texk/web2c}.
The obsolescent binary \filename{pdfetex} is still generated for backward
-compatibility, but since version 1.40 it is just a file copy
+compatibility, but since version 1.40 it is just a symbolic link to or copy
of the file \filename{pdftex}.
As well as the main \filename{pdftex} binary, binaries for the utilities
@@ -904,15 +915,15 @@ regenerated system-wide with the fresh \filename{pdftex} binary.
configuration file called \filename {texmf.cnf}. The location
of this file is the appropriate position within the \TDS\ tree
relative to the place of the \PDFTEX\ binary; on a \TEXLIVE\ system,
-\filename{texmf.cnf} is typically located either in directory
-\filename{texmf/web2c} or \filename{texmf-local/web2c}. The path to
+\filename{texmf.cnf} is typically located either in the directory
+\filename{texmf-dist/web2c}. The path to
file \filename{texmf.cnf} can also be set up by the environment variable
\type{TEXMFCNF}.
-The \filename{texmf.cnf} files coming with the major \TEX\ distributions
-should already be set up for normal use, so you shouldn't need to edit
-it. You might still like to read it to see where the various bits and
-pieces are going.
+The configuration files in the major \TEX\ distributions (such as
+\filename{texmf.cnf} in \TEXLIVE) should already be set up for normal
+use, so you shouldn't need to edit it. You might still like to read it
+to see where the various bits and pieces are going.
\PDFTEX\ uses the search path variables shown in
\in{table}[tbl:spathvar], among others.
@@ -1056,6 +1067,7 @@ even without setting any parameters.
\NC \type{\pdfuniqueresname} \NC integer \NC 0 \NC \NC\NR
\NC \type{\pdfprotrudechars} \NC integer \NC 0 \NC \NC\NR
\NC \type{\pdfgentounicode} \NC integer \NC 0 \NC \NC\NR
+\NC \type{\pdfmajorversion} \NC integer \NC 1 \NC output \PDF\ 1.4 by default \NC\NR
\NC \type{\pdfminorversion} \NC integer \NC 4 \NC \PDF\ 1.4 \NC\NR
\NC \type{\pdfpagebox} \NC integer \NC 0 \NC \NC\NR
\NC \type{\pdfforcepagebox} \NC integer \NC 0 \NC \NC\NR
@@ -1323,18 +1335,22 @@ builds of documents. (See also \type{\pdfinfoomitdate},
The second, related, environment variable is \type{FORCE_SOURCE_DATE}.
If this is set to~\type{1}, \TEX's time-related primitives are also
-initialized from the value of \type{SOURCE_DATE_EPOCH}. These
-primitives are \type{\year}, \type{\month}, \type{\day}, and
-\type{\time}. If \type{SOURCE_DATE_EPOCH} is not set, setting
-\type{FORCE_SOURCE_DATE} has no effect. If \type{FORCE_SOURCE_DATE} is
-unset, set to the empty string, or set to~\type{0}, the primitives
-reflect the current time as usual. Any other value elicits a warning,
-and the current time is used. (This is useful only if one wants to make
-reproducible \PDF{}s for a set of documents without changing them in any
-way, e.g., an operating system distribution with manuals that use
-\type{\today}. Except in such unusual circumstances, it is better not
-to set this, and let the \TEX\ primitives retain the meaning they have
-always had.)
+initialized from the value of \type{SOURCE_DATE_EPOCH}. These primitives
+are \type{\year}, \type{\month}, \type{\day}, and \type{\time}. If
+\type{SOURCE_DATE_EPOCH} is not set, setting \type{FORCE_SOURCE_DATE}
+has no effect. If \type{FORCE_SOURCE_DATE} is unset, set to the empty
+string, or set to~\type{0}, the primitives reflect the current time as
+usual. Any other value elicits a warning, and the current time is used.
+(This is useful only if one wants to make reproducible \PDF{}s for a set
+of documents without changing them in any way, e.g., an operating system
+distribution with manuals that use \type{\today}. Except in such unusual
+circumstances, it is better not to set this, and let the \TEX\
+primitives retain the meaning they have always had.)
+
+In addition, if both \type{SOURCE_DATE_EPOCH} and
+\type{FORCE_SOURCE_DATE} are set, \type{\pdffilemoddate} returns a value
+in UTC, ending in \type{Z}. (The values of the environment variables are
+irrelevant in this case.)
Finally, just to have the list of options and basic invocation at hand,
here is a verbatim listing of the \type{-}\type{-help} output. All
@@ -2139,27 +2155,38 @@ engine is used in distributions also for non-\PDF\ formats (\eg\
\LATEX), so \type{\pdfoutput} may be defined even when the output format
is \DVI.
+\pdftexprimitive{\Syntax{\Tex{\pdfmajorversion} \Whatever{integer}}}
+\bookmark{\tex{pdfmajorversion}}
+
\pdftexprimitive{\Syntax{\Tex{\pdfminorversion} \Whatever{integer}}}
\bookmark{\tex{pdfminorversion}}
-This primitive sets the \PDF\ version of the generated file and the
-highest \PDF\ version of included \PDF{}s allowed without warning, by
-default (see \type{\pdfinclusionerrorlevel}). The default compiled into
-the \PDFTEX\ program is \type{\pdfminorversion=4}, setting the \PDF\
-version to~1.4 and allowing included \PDF\ files with versions up
-to~1.4. If specified, this primitive must appear before any data is to
-be written to the generated \PDF\ file.
-
-Distributions typically alter the engine's compiled default of~4 when
-building formats; for example, as of 2010, \TEXLIVE\ sets
-\type{\pdfminorversion=5} when formats are built. This is so object
-compression can be enabled (described below).
-
-This was originally a shortened synonym of the
+Together, these two primitives specify the \PDF\ version for generated \PDF\
+output. The defaults compiled into the \PDFTEX\ program are
+\type{\pdfmajorversion=1} and \type{\pdfminorversion=4}, thus \PDF~1.4
+is generated by default.
+
+However, distributions typically alter the engine's compiled default
+minor version of~4 when building formats. For example, as of 2010,
+\TEXLIVE\ sets \type{\pdfminorversion=5} when formats are built. This is
+so object compression can be enabled (see \type{\pdfobjcompress} below).
+
+This value also defines the highest \PDF\ version for included \PDF{}s
+to be allowed without error, by default (see
+\type{\pdfinclusionerrorlevel}).
+
+The values for both must be $\ge\,1$ but are not checked further.
+Furthermore, they are set independently; only setting
+\type{\pdfmajorversion=2} would result in \PDF~2.4 output; it's
+necessary to additionally set \type{\pdfminorversion}.
+
+If specified, these primitives must appear before any data is to be
+written to the generated \PDF\ file. The \type{\pdfmajorversion}
+primitive was introduced in \PDFTEX\ 1.40.21. \type{\pdfminorversion}
+was originally a shortened synonym of the
\type{\pdfoptionpdfminorversion} command, which is now obsolete.
\introduced{1.30.0}
-
\pdftexprimitive{\Syntax{\Tex{\pdfcompresslevel} \Whatever{integer}}}
\bookmark{\tex{pdfcompresslevel}}
@@ -2176,43 +2203,50 @@ is read each time \PDFTEX\ starts a stream. Setting
\bookmark{\tex{pdfobjcompresslevel}}
This integer parameter controls the compression of {\em non-stream}
-objects. In the \PDF-1.4 specification these objects still had to go into
+objects. If specified, the parameter must appear before any data is
+written to the \PDF\ output. \introduced{1.40.0}
+
+In the \PDF-1.4 specification, non-stream objects had to be written in
the \PDF\ file as clear text, uncompressed. The \PDF-1.5 specification
-now allows to collect non-stream objects as ``compressed objects'' into
-``object stream'' objects (\type{/Type /ObjStm}, see \PDF\ Ref.\ 5th~ed.,
-sect.~3.4.6). At the \PDF\ file end instead of the object table then
-an \type{/XRef} cross-reference stream is written out. This results in
-considerably smaller \PDF\ files, particularly if lots of annotations
-and links are used.
-\introduced{1.40.0}
+allows collecting non-stream objects as ``compressed objects'' into
+``object stream'' objects (\type{/Type /ObjStm}, see \PDF\ Ref.\
+5th~ed., sect.~3.4.6). At the end of the \PDF\ file, an \type{/XRef}
+cross-reference stream is then written out instead of the object table.
+This can result in a considerably smaller \PDF\ file, particularly if
+lots of annotations and links are used.
The writing of compressed objects is enabled by setting
-\type{\pdfobjcompresslevel} to a value between~1 and~3; it's
-disabled by value~0 (default). Enabling requires that also
-\type{\pdfminorversion}~$>$~4. If \type{\pdfobjcompresslevel}~$>$~0,
-but \type{\pdfminorversion}~$<$~5, a warning is given and object stream
-writing is disabled. The \type{\pdfobjcompresslevel} value is clipped
-to the range $0..3$. Using values outside this range is not recommended
-(for future extension).
+\type{\pdfobjcompresslevel} to a value between~1 and~3; it's disabled
+if~0 (default). Object compression also requires that
+\type{\pdfminorversion}$\,\ge\,$5 (or
+\type{\pdfmajorversion}$\,\ge\,$2), else a warning is given and the
+compression is disabled. The \type{\pdfobjcompresslevel} value is
+clipped to the range $0..3$. Using values outside this range is not
+recommended (for future extension).
The \type{\pdfobjcompresslevel} settings have the following effects:
-When set to~0, no object streams are generated at all. When set to~1,
+\startitemize[0,packed]
+\item When set to~0, no object streams are generated at all.
+\item When set to~1,
all non-stream objects are compressed with the exception of any objects
coming with embedded \PDF\ files (``paranoid'' mode, to avoid yet unknown
problems), and also the \type{/Info} dictionary is not compressed for
-clear-text legibility. When set to~2, also all non-stream objects coming
+clear-text legibility.
+\item When set to~2, also all non-stream objects coming
with embedded \PDF\ files are compressed, but the \type{/Info} dictionary
-is still not compressed. Finally, when set to~3, all non-stream objects
+is still not compressed.
+\item Finally, when set to~3, all non-stream objects
are compressed, including the \type{/Info} dictionary (this means that
the \type{/Info} can't be read as clear text any more). If object streams
are to be used, currently \type{\pdfobjcompresslevel=2} is recommended,
and is so specified in some distributions, including \TEXLIVE~2010 and later.
+\stopitemize
-\description{Caveat:} \PDF\ files generated with object streams enabled
-can't be read with (sufficiently old) \PDF\ viewers that don't
-understand \PDF-1.5 files. For widest distribution and unknown audience,
-don't activate object stream writing. The \PDF-1.5 standard describes
-also a hybrid object compression mode that gives some backward
+\description{Compatibility caveat:} \PDF\ files generated with object
+streams enabled can't be read with (sufficiently old) \PDF\ viewers that
+don't understand \PDF-1.5 files. For widest distribution and unknown
+audience, don't activate object stream writing. The \PDF-1.5 standard
+describes also a hybrid object compression mode that gives some backward
compatibility, but this is currently not implemented, as \PDF-1.5 was
rather quickly adopted by modern \PDF\ viewers. Also not implemented is
the optional \type{/Extends} key.
@@ -2781,6 +2815,19 @@ text} as if they were used with \Something{font}\unkern, which means that the
corresponding glyphs will be embedded into the font resources in the \PDF\
output. Nothing is appended to the list being built.
+\pdftexprimitive{\Syntax{\Tex{\pdfomitcharset} \Whatever{integer}}}
+\bookmark{\tex{pdfomitcharset}}
+
+If this primitive parameter is zero (the default), the \type{/CharSet}
+entry is included as usual for fonts in the \PDF\ output; if it is set
+to 1, then \type{/CharSet} is omitted. (Other values may have other
+meanings in the future, so do not rely on them.)
+
+Explanation: This parameter was created because the \PDFA-1 standard
+requires \type{/CharSet}, whereas \PDFA-2 and \PDFA-3 allow it to be
+omitted but have extraordinary requirements, which \PDFTEX\ does not
+currently meet, if it is included.\introduced{1.40.20}
+
\pdftexprimitive{\Syntax{\Tex{\pdfuniqueresname} \Whatever{integer}}}
\bookmark{\tex{pdfuniqueresname}}
@@ -2811,7 +2858,7 @@ Normally there is no need for the \PDFTEX\ user to bother about the
\type{\pdfmapfile} or \type{\pdfmapline} primitives, as the main \TEX\
distributions provide nice helper tools that automatically assemble
the default font map file. Prominent tool examples are the scripts
-\type{updmap} and \type{updmap-sys} coming with \TEXLIVE\ and \TETEX.
+\type{updmap} and \type{updmap-sys} coming with \TEXLIVE.
If your map file isn't in the current directory (or a standard system
directory), you will need to set the \type{TEXFONTMAPS} variable (in
\WEBC) or give an explicit path so that it will be found.
@@ -3425,7 +3472,7 @@ box:
Now we can use \type{\wd0} and \type{\ht0} to question the natural size of
the image as determined by \PDFTEX. When dimensions are specified before the
\type{{somefile.png}}, the graphic is scaled to fit these. Note that, unlike
-the \eg\ \type{\input} primitive, the filename is supplied between
+\eg\ the original \type{\input} primitive, the filename is supplied between
braces.
The image type is specified by the extension of the given file name:
@@ -3575,10 +3622,11 @@ now considered obsolete --- a mixture of \type{\pdfpagebox} and
\bookmark{\tex{pdfinclusionerrorlevel}}
This controls the behavior of \PDFTEX\ when a \PDF\ file is included
-that has a newer version than the one specified by
-\type{\pdfminorversion}. If \type{\pdfinclusionerrorlevel} is set to~0
-(the default), \PDFTEX\ gives only a warning; if 1, \PDFTEX\ raises an
-error; if negative, no diagnostic at all is given.
+which has a newer \PDF\ version than the one specified by
+\type{\pdfmajorversion} and \type{\pdfminorversion}. If
+\type{\pdfinclusionerrorlevel} is set to~0 (the default), \PDFTEX\ gives
+only a warning; if 1, \PDFTEX\ raises an error; if negative, no
+diagnostic at all is given.
It was originally a shortened synonym of
\type{\pdfoptionpdfinclusionerrorlevel}, which is now obsolete.
@@ -3587,14 +3635,16 @@ It was originally a shortened synonym of
\pdftexprimitive{\Syntax{\Tex{\pdfimagehicolor} \Whatever{integer}}}
\bookmark{\tex{pdfimagehicolor}}
-This primitive, when set to~1, enables embedding of \PNG\ images with
-16~bit wide color channels at their full color resolution. As such an
-embedding mode is defined only from \PDF\ version~1.5 onwards, the
+This parameter, when set to~1, enables embedding of \PNG\ images with
+16~bit wide color channels at their full color resolution. This
+embedding mode is defined only from \PDF\ version~1.5 onwards, so the
\type{\pdfimagehicolor} functionality is automatically disabled in
-\PDFTEX\ if \type{\pdfminorversion}~$<$~5; then each 16~bit color
-channel is reduced to a width of 8~bit by stripping the lower 8~bits
-before embedding. The same stripping happens when
-\type{\pdfimagehicolor} is set to~0. For \type{\pdfminorversion}~$\ge$~5
+\PDFTEX\ if \type{\pdfminorversion}$\,<\,$5 and
+\type{\pdfmajorversion}$\,=\,$1; in this case, each 16~bit color channel
+is reduced to a width of 8~bits by stripping the lower 8~bits before
+embedding. The same stripping happens when \type{\pdfimagehicolor} is
+set to~0. If \type{\pdfmajorversion}$\,=\,$1 and
+\type{\pdfminorversion}$\,\ge\,$5, or \type{\pdfmajorversion}$\,\ge\,$2,
the default value of \type{\pdfimagehicolor} is~1. If specified, the
parameter must appear before any data is written to the \PDF\ output.
\introduced{1.30.0}
@@ -3603,7 +3653,7 @@ parameter must appear before any data is written to the \PDF\ output.
\bookmark{\tex{pdfimageapplygamma}}
This primitive, when set to~1, enables gamma correction while embedding
-\PNG\ images, taking the values of the primitives \type{\pdfgamma} as
+\PNG\ images, taking the value of the primitive \type{\pdfgamma} as
well as the gamma value embedded in the \PNG\ image into account. When
\type{\pdfimageapplygamma} is set to~0, no gamma correction is
performed. If specified, the parameter must appear before any data is
@@ -3616,7 +3666,7 @@ This primitive defines the `device gamma' for \PDFTEX. Values are in
promilles (same as \type{\mag}). The default value of this primitive
is~1000, defining a device gamma value of~1.0.
-When \type{\pdfimageapplygamma} is set to~1, then whenever a \PNG\ image
+If \type{\pdfimageapplygamma} is set to~1, then whenever a \PNG\ image
is included, \PDFTEX\ applies a gamma correction. This correction is
based on the value of the \type{\pdfgamma} primitive and the `assumed
device gamma' that is derived from the value embedded in the actual
@@ -3822,7 +3872,7 @@ annotations do {\em not} obey transformations issued by \type
The \Something{action spec} specifies the action that should be performed
when the hyperlink is activated while the \Something{user-action spec}
performs a user||defined action. A typical use of the latter is to specify
-a \URL, like \typ {/S /URI /URI (http://www.tug.org/)}, or a named action like
+a \URL, like \typ {/S /URI /URI (https://tug.org/)}, or a named action like
\typ {/S /Named /N /NextPage}.
A \Something{goto-action spec} performs a GoTo action. Here \Something
@@ -4174,9 +4224,12 @@ starts returning micro||time from~0 again. \introduced{1.30.0}
\Whatever{expandable}}}
\bookmark{\tex{pdffilemoddate}}
-Expands to the modification date of file \Something{general text} in the same
-format as for \type{\pdfcreationdate}, \eg\ it's {\tt \pdffilemoddate
-{./pdftex-t.tex}} for the source of this manual.
+Expands to the modification date of file \Something{general text} in the
+same format as for \type{\pdfcreationdate}, \eg\ it's {\tt
+\pdffilemoddate {./pdftex-t.tex}} for the source of this manual. As of
+version 1.40.20, if the \type{SOURCE_DATE_EPOCH} and
+\type{FORCE_SOURCE_DATE} environment variables are both set,
+\type{\pdffilemoddate} returns a value in UTC, ending in \type{Z}.
\introduced{1.30.0}
\pdftexprimitive{\Syntax{\Tex{\pdffilesize} \Something{general text}
@@ -4187,25 +4240,57 @@ Expands to the size of file \Something{general text}, \eg\ it's {\tt
\pdffilesize {./pdftex-t.tex}} for the source of this manual.
\introduced{1.30.0}
-\pdftexprimitive{\Syntax{\Tex{\pdfmdfivesum} file \Something{general text}
- \Whatever{expandable}}}
+\pdftexprimitive{\Syntax{\Tex{\pdfmdfivesum}
+ \Optional{\Literal{file}}
+ \Something{general text} \Whatever{expandable}}}
\bookmark{\tex{pdfmdfivesum\ file}}
-Expands to the \MDFIVE\ of file \Something{general text} in uppercase
-hexadecimal format (same as \type{\pdfescapehex}), \eg\ it's {\tt
-\pdfmdfivesum file {./pdftex-t.tex}} for the source of this manual.
+If the keyword \type{file} is given, expands to the \MDFIVE\ of file
+\Somethingtext{general text} in uppercase hexadecimal format (same as
+\type{\pdfescapehex}). Without \type{file}, expands to the \MDFIVE\ of
+the \Somethingtext{generaltext} taken as a string. For example, it's
+{\tt \pdfmdfivesum file {./pdftex-t.tex}} for the source of this manual.
\introduced{1.30.0}
-\pdftexprimitive{\Syntax{\Tex{\pdffiledump} \Optional{\Literal{offset}
- \Something{number}} \Optional{\Literal{length}
- \Something{number}} \Something{general text} \Whatever{expandable}}}
+\pdftexprimitive{\Syntax{\Tex{\pdffiledump}
+ \Optional{\Literal{offset} \Something{integer}}
+ \Optional{\Literal{length} \Something{integer}}
+ \Something{general text} \Whatever{expandable}}}
\bookmark{\tex{pdffiledump}}
-Expands to the dump of the file \Something{general text} in uppercase
-hexadecimal format (same as \type{\pdfescapehex}), starting at offset
-\Something{number} or 0 with length \Something{number}, if given. The first ten
-bytes of the source of this manual are {\tt \pdffiledump length 10
-{./pdftex-t.tex}}. \introduced{1.30.0}
+Expands to the dump of the first \type{length} \Somethingtext{integer}
+bytes of the file \Somethingtext{general text}, in uppercase hexadecimal
+format (same as \type{\pdfescapehex}), starting at offset
+\type{offset}~\Somethingtext{number}, or the beginning of the file if
+\type{offset}. If \type{length} is not given, the default is zero, so
+expands to nothing. Both \Somethingtext{integer}s must be $\ge0$. For
+example, the first ten bytes of the source of this manual are {\tt
+\pdffiledump length 10 {./pdftex-t.tex}}. \introduced{1.30.0}
+
+\pdftexprimitive{\Syntax{\Tex{\input} \Something{general text}
+ \Whatever{expandable}}}
+\bookmark{\tex{input}}
+
+As of \TEXLIVE\ 2020, the \type{\input} primitive in all \TEX\ engines,
+including \PDFTEX, now also accepts a group-delimited filename argument,
+as a system-dependent extension, as in \type{\input\Lbrace
+foo.tex\Rbrace}. The usage with a standard space/token-delimited
+filename is completely unchanged.
+
+This group-delimited argument was previously implemented in Lua\TEX; now
+it is available in all engines. \ASCII\ double quote characters
+(\type{"}) are removed from the filename, but it is otherwise left
+unchanged after tokenization.
+
+This extension is unlike most others in that it affects a primitive in
+standard \TEX\ (\type{\input}), rather than being related to a new
+primitive, command line option, etc. This is allowed because additional
+methods of recognizing filenames are explicitly mentioned in
+\type{tex.web} as acceptable system-dependent extensions.
+
+Incidentally, this does not currently
+affect \LATEX's \type{\input} command, as that is a macro redefinition
+of the standard \type{\input} primitive. \introduced{1.40.21}
%***********************************************************************
@@ -4278,6 +4363,15 @@ and end at the same group level. \introduced{1.40.0}
\subsection{Miscellaneous}
+\pdftexprimitive{\Syntax{\tex {expanded} \Something{tokens}
+ \Whatever{expandable}}}
+\bookmark{\tex{expanded}}
+
+Expands \Something{tokens} in exactly the same way as \type{\message}.
+In contrast to \type{\edef}, macro parameter characters do not need to
+be doubled. \type{\protected} macros are not expanded.
+\introduced{1.40.20}
+
\pdftexprimitive{\Syntax{\tex {ifincsname} \Whatever{expandable}}}
\bookmark{\tex{ifincsname}}
@@ -4310,7 +4404,9 @@ When set to 1 (or set by the command-line switch \type{-draftmode})
images but does everything else (including writing auxiliary files),
thus speeding up compilations when you know you need an extra run but
don't care about the output, \eg\ just to get the \BIBTEX\ references
-right. \introduced{1.40.0}
+right. If specified, the parameter must appear before any data is written to the
+\PDF\ output.
+\introduced{1.40.0}
\pdftexprimitive{\Syntax{\Tex{\pdfinsertht} \Something{integer}
@@ -4580,7 +4676,7 @@ or \type{\special} primitives, are not subject to \TCX\ output remapping.
Beware: Character translation interferes with the \ENCTEX\ primitives; to
avoid surprises, don't use \ENCTEX\ and \TCX\ mapping at the same time.
-Further details about \TCX\ file loading can be found in the \TETEX\
+Further details about \TCX\ file loading can be found in the \WEBC\
manual.
%***********************************************************************
@@ -5127,7 +5223,7 @@ The Free Software Foundation may publish new, revised versions
of the GNU Free Documentation License from time to time. Such new
versions will be similar in spirit to the present version, but may
differ in detail to address new problems or concerns. See
-http:/\!/www.gnu.org/copyleft/.
+https:/\!/gnu.org/copyleft/.
Each version of the License is given a distinguishing version number.
If the Document specifies that a particular numbered version of this
diff --git a/Master/texmf-dist/doc/pdftex/manual/pdftex-w.tex b/Master/texmf-dist/doc/pdftex/manual/pdftex-w.tex
index 5afdf9f44ac..adc1bef7713 100644
--- a/Master/texmf-dist/doc/pdftex/manual/pdftex-w.tex
+++ b/Master/texmf-dist/doc/pdftex/manual/pdftex-w.tex
@@ -1,9 +1,13 @@
-% $Id: pdftex-w.tex 689 2012-04-15 18:05:10Z karl $
+% $Id: pdftex-w.tex 822 2020-03-02 16:57:37Z karl $
+% run with -ini:
+ \catcode`{=1 \catcode`}=2
+ \def\TeX{T\kern-.1667em\lower.5ex\hbox{E}\kern-.125emX}
+ \hsize=6.5in \vsize=9in
\pdfoutput=1
\pdfcompresslevel=0
\pdfobjcompresslevel=0
\pdfmapline{ptmr8r Times-Roman 2 <8r.enc}
\font\tenrm=ptmr8r
\tenrm
-Welcome to pdf\TeX!
-\bye
+Welcome to pdf\TeX!\hfil
+\end