diff options
author | Karl Berry <karl@freefriends.org> | 2016-04-25 20:46:03 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2016-04-25 20:46:03 +0000 |
commit | cfa0d42c795abf70a671d0a381e4fb45a3dba13d (patch) | |
tree | cbae7a39b41eb1daaae2950a2c214c31ab35ad47 /Master/texmf-dist | |
parent | 5e37eaa6f3ee9d0cecc7e29e73baf8f5380d6ba4 (diff) |
pdftex doc for TL16: updates to manual, more tests, samplepdf(tex) at top level, pdfkeys and thanh/ext removed
git-svn-id: svn://tug.org/texlive/trunk@40740 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
58 files changed, 1289 insertions, 4682 deletions
diff --git a/Master/texmf-dist/doc/pdftex/NEWS b/Master/texmf-dist/doc/pdftex/NEWS index 44ab1c9c543..7171ee730ef 100644 --- a/Master/texmf-dist/doc/pdftex/NEWS +++ b/Master/texmf-dist/doc/pdftex/NEWS @@ -1,3 +1,23 @@ +pdfTeX 3.14159265-2.6-1.40.17 (TeX Live 2016) +- changes: + - if environment variable SOURCE_DATE_EPOCH is set, use its value for + the CreationDate and ModDate values, and to seed the trailer /ID. + This by itself should suffice to create reproducible PDFs. The + other changes support more granular output tweaks along the same lines. + + - new primitive \pdfinfoomitdate to omit CreationDate and ModDate keys. + - new primitive \pdftrailerid to set seed for the trailer /ID + computation; with an empty argument \pdftrailerid{}, the /ID is omitted. + - new primitive \pdfsuppressptexinfo to omit PTEX.* keys from output; + the value is a bitmask: + % 1 -> PTEX.Fullbanner + % 2 -> PTEX.FileName + % 4 -> PTEX.PageNumber + % 8 -> PTEX.InfoDict (/Producer /Creator /CreationDate /ModDate /Trapped) + +- bugfixes: + - do not crash if font size of a vf >= 2048pt. +--------------------------------------------------- pdfTeX 3.14159265-2.6-1.40.16 (TeX Live 2015) - changes: - support JPEG Exif as well as JFIF. diff --git a/Master/texmf-dist/doc/pdftex/README b/Master/texmf-dist/doc/pdftex/README index 4eb1e75d20f..9b78615b002 100644 --- a/Master/texmf-dist/doc/pdftex/README +++ b/Master/texmf-dist/doc/pdftex/README @@ -2,12 +2,14 @@ pdfTeX is an extended version of eTeX that can create PDF directly from TeX source files and enhance the result of TeX typesetting with the help of PDF. When PDF output is not selected, pdfTeX produces normal DVI output, otherwise it produces PDF output that looks essentially -identical to the DVI output. An important aspect of this project is to -investigate alternative justification algorithms. +identical to the DVI output. An important aspect of this project was to +investigate alternative justification algorithms, resulting in the +margin kerning and font expansion "microtypgraphy" features, inspired by +Peter Karow. pdfTeX is based on the original e-TeX sources and Web2c, and has been -successfully compiled on many systems. It is no longer under active -development and only bug fixes and small enhancements are expected. +successfully compiled on many systems. It is actively maintained, but +stability is paramount now; only bug fixes and small enhancements are expected. See the file NEWS for changes to the program. Documentation about pdfTeX can be found at http://www.pdftex.org. diff --git a/Master/texmf-dist/doc/pdftex/manual/ChangeLog b/Master/texmf-dist/doc/pdftex/manual/ChangeLog index 81d12f03bb7..220c0ca6ad4 100644 --- a/Master/texmf-dist/doc/pdftex/manual/ChangeLog +++ b/Master/texmf-dist/doc/pdftex/manual/ChangeLog @@ -1,3 +1,55 @@ +2016-04-25 Karl Berry <karl@freefriends.org> + + * samplepdf: move subdir up a level for more visibility. + * pdftex-t.tex: adjust doc. + + * pdftex-t.tex: reduce long lines, reduce spaces after markup. + (\pdftex-syntax.tex): \input this autogenerated file, + instead of having redundant (and out of date) text. + (\Modelist): new macro for the (h,v,m) listings, + so we can autogenerate complete primitive/syntax info. + (\pdfpageresources): document this, previously missing. + + * syntaxform.pl: new script to generate pdftex-syntax.tex. + * syntaxform.awk: handle \Modelist, discard \unkern. + * Makefile (default): build only what we distribute in TL. + (all): build everything else. + (pdftex-syntax.tex): new rule using syntaxform.pl; related changes. + * README: bring up to date, avoid redundancies. + +2016-04-25 Karl Berry <karl@freefriends.org> + + * pdftex-w.txt: rename from pdftex-t.txt. + * pdftex-t.tex: change \typefile call. + * Makefile: change calls and dependencies. + + * pdftex-t.tex: use \type{-}\type{-help}, etc., to work + with both older and newer ConTeXt. + + * Makefile (pdftex_binary): use "pdftex" if no binary + in the build path. + +2016-04-23 Karl Berry <karl@freefriends.org> + + * pdftex-t.tex: Update for 1.40.17 (TeX Live 2016). + (Invoking \PDFTEX): new section, with description of + new support for envvar SOURCE_DATE_EPOCH. + New primitives: \pdfinfoomitdate \pdftrailerid \pdfsuppressptexinfo. + +2015-03-25 Karl Berry <karl@gnu.org> + + * pdftex-t.tex (\currentpdftex): 1.40.16. (TeX Live 2015.) + +2014-12-12 Karl Berry <karl@gnu.org> + + * pdftex-t.tex (\pdfinclusionerrorlevel): if negative, no diagnostic. + +2014-10-18 Karl Berry <karl@gnu.org> + + * pdftex-t.tex (\pdfminorversion): better explain the compiled + default (4) vs. the typical format default (5). Report from Heiko + on ntg-pdftex, 20 Sep 2014 23:51:01. + 2014-04-23 Karl Berry <karl@gnu.org> * pdftex-t.tex (\currentpdftex): 1.40.15. (Update TeX Live.) @@ -100,3 +152,5 @@ * pdftex-t.tex: update intro information about distributions, etc., to be somewhat more accurate. + +(This ChangeLog file is public domain.) diff --git a/Master/texmf-dist/doc/pdftex/manual/Makefile b/Master/texmf-dist/doc/pdftex/manual/Makefile index 6436f8817d1..001768d614b 100644 --- a/Master/texmf-dist/doc/pdftex/manual/Makefile +++ b/Master/texmf-dist/doc/pdftex/manual/Makefile @@ -1,41 +1,33 @@ -# $Id: Makefile 709 2014-04-04 16:53:17Z karl $ +# $Id: Makefile 745 2016-04-25 18:06:57Z karl $ # Makefile for pdfTeX documentation. Public domain. -mandir=manual -distdate=`date +%y%m%d` -distrev=`awk '/Id:/{print $$4; exit}' $(mandir)/pdftex-t.tex` - # Get version we're documenting from the \def in the manual. pdftexversion=`sed -n 's,^.def.currentpdftex{\(.*\)},\1,p' manual/pdftex-t.tex` -distall=$(distnopdf) pdftex-a.pdf pdftex-l.pdf pdftex-s.pdf - -distnopdf=pdftex-w.tex pdftex-t.txt pdftex-t.tex \ - pdftex-i.tex syntaxform.awk Makefile makefiles.cmd \ - pdftex-syntax.txt README ChangeLog - context = texexec --batchmode # context does not have \setupoutput. # texmfstart exits immediately. -default: all - -all: pdftex-a.pdf \ - pdftex-l.pdf \ - pdftex-s.pdf \ - pdftex-syntax.txt +# what we distribute in TeX Live. +default: pdftex-a.pdf pdftex-syntax.txt -booklet: pdftex-b.pdf pdftex-b-e.pdf pdftex-b-o.pdf +# the other formats (everything that can be built). +all: pdftex-l.pdf pdftex-s.pdf booklet -pdftex-a.pdf a: pdftex-t.tex pdftex-t.txt +common_deps = pdftex-t.tex pdftex-w.txt pdftex-help.txt pdftex-syntax.tex +pdftex-a.pdf a: $(common_deps) $(context) --result=$@ $< -pdftex-l.pdf l: pdftex-t.tex pdftex-t.txt +pdftex-l.pdf l: $(common_deps) $(context) --mode=letter --result=$@ $< -pdftex-s.pdf s: pdftex-t.tex pdftex-i.tex +pdftex-s.pdf s: $(common_deps) pdftex-i.tex $(context) --mode=screen --result=$@ $< + +# booklet version is not made by default. +booklet: pdftex-b.pdf pdftex-b-e.pdf pdftex-b-o.pdf + pdftex-b.pdf b: pdftex-a.pdf $(context) --pdfarrange --paper=a5a4 --print=up --addempty=1,2 \ --result=$@ $< @@ -48,21 +40,71 @@ pdftex-b-o.pdf: pdftex-a.pdf $(context) --pdfarrange --paper=a5a4 --print=up --addempty=1,2 \ --pages=odd --result=$@ $< -pdftex-t.txt: pdftex-w.pdf Makefile + +# Creating the subsidiary/dependent files. + +# TeXable text for the title page. +pdftex-w.txt: pdftex-w.pdf cat $< \ | expand \ | fmt -s -w36 \ - | env GREP_OPTIONS=--text grep . \ - | expand \ - | cat > $@ + | grep --text . \ + | expand >$@ || rm -f $@ + wc -l pdftex-w.txt # set titlepagelines=half of this -pdftex-w.pdf: pdftex-w.tex +# PDF for the title page. +pdftex-w.pdf: pdftex-w.tex pdftex $< -pdftex-syntax.txt: pdftex-t.tex syntaxform.awk - gawk -f syntaxform.awk $< > $@ -# tar/zip including pdftex-a.pdf, pdftex-l.pdf, pdftex-s.pdf: +# Too annoying to remake help text every time; check by hand when needed. +pdftex-help.txt: + $(pdftex_binary) --help >$@ || rm -f $@ + +# if we don't have a build tree around, just try from the path. +build_binary := ../../source/build-pdftex/texk/web2c/pdftex +ifneq "$(realpath $(build_binary))" "" +pdftex_binary := $(build_binary) +else +pdftex_binary := pdftex +endif + +# Primitives and syntax, in TeX for the printed manual, and then in +# plain text for human convenience. +pdftex-syntax.tex: pdftex-t.tex syntaxform.pl + perl syntaxform.pl pdftex-t.tex >pdftex-syntax.tex || rm -f $@ + +pdftex-syntax.txt: pdftex-t.tex pdftex-syntax.tex syntaxform.awk + gawk -f syntaxform.awk pdftex-syntax.tex $< >$@ || rm -f $@ + + +# Install from this source directory to TL. + +tltree = /home/texlive/karl/Master/texmf-dist +dest = $(tltree)/doc/pdftex/manual + +INSTALL_DATA = cp -p + +install: default + $(INSTALL_DATA) ChangeLog Makefile README makefiles.cmd $(dest) + $(INSTALL_DATA) pdftex-a.pdf pdftex-syntax.txt $(dest) + $(INSTALL_DATA) pdftex-t.tex pdftex-w.tex pdftex-i.tex $(dest) + $(INSTALL_DATA) syntaxform.awk syntaxform.pl $(dest) + + +# Dist and clean. +# tar/zip including pdftex-a.pdf, pdftex-l.pdf, pdftex-s.pdf, +# although we don't ever make such distributions any more. + +distall=$(distnopdf) pdftex-a.pdf pdftex-l.pdf pdftex-s.pdf + +mandir=manual +distdate=`date +%y%m%d` +distrev=`awk '/Id:/{print $$4; exit}' $(mandir)/pdftex-t.tex` + +distnopdf=pdftex-w.tex pdftex-w.txt pdftex-t.tex \ + pdftex-i.tex syntaxform.awk Makefile makefiles.cmd \ + pdftex-syntax.txt pdftex-help.txt README ChangeLog alltar: $(distall) cd .. && tar cvjf $(mandir)/pdftex-$(pdftexversion)-userman-$(distrev).tar.bz2 \ @@ -72,6 +114,7 @@ allzip: $(distall) cd .. && zip $(mandir)/pdftex-$(pdftexversion)-userman-$(distrev).zip \ $(patsubst %, $(mandir)/%, $(distall)) + # tar/zip without PDF files: tar: $(distnopdf) @@ -83,14 +126,14 @@ zip: $(distnopdf) cd .. && zip $(mandir)/pdftex-$(pdftexversion)-userman-$(distrev)-src.zip \ $(patsubst %, $(mandir)/%, $(distnopdf)) + clean: - texutil --purge + rm -f *.log *.tuo *.tui *.top *.tmp *-mpgraph.mp -allclean: - - rm -f pdftex-a.pdf pdftex-l.pdf pdftex-s.pdf - - rm -f pdftex-b.pdf pdftex-b-e.pdf pdftex-b-o.pdf - - rm -f pdftex-syntax.txt - - rm -f pdftex-w.pdf pdftex-t.txt - make clean +maintainer-clean: clean + rm -f pdftex-a.pdf pdftex-l.pdf pdftex-s.pdf + rm -f pdftex-b.pdf pdftex-b-e.pdf pdftex-b-o.pdf + rm -f pdftex-help.txt pdftex-syntax.txt pdftex-syntax.tex + rm -f pdftex-w.pdf pdftex-w.txt -clobber: allclean +clobber allclean realclean distclean: maintainer-clean diff --git a/Master/texmf-dist/doc/pdftex/manual/README b/Master/texmf-dist/doc/pdftex/manual/README index f95b4a3a8a4..be29ce125f9 100644 --- a/Master/texmf-dist/doc/pdftex/manual/README +++ b/Master/texmf-dist/doc/pdftex/manual/README @@ -1,58 +1,29 @@ -$Id: README 635 2010-11-14 19:15:12Z karl $ +$Id: README 742 2016-04-25 17:30:55Z karl $ -1. List of pdfTeX documentation files -===================================== +(This README file public domain.) -pdftex-a.pdf (A4 format) -pdftex-l.pdf (letter format) -pdftex-s.pdf (screen format) -pdftex-b.pdf (A5 booklet made from pdftex-a.pdf) -pdftex-b-e.pdf (A5 booklet, even pages) -pdftex-b-o.pdf (A5 booklet, odd pages) -pdftex-syntax.txt +Documentation files for pdfTeX: +pdftex-a.pdf A4 paper size +pdftex-l.pdf letter paper size +pdftex-s.pdf screen format +pdftex-b.pdf A5 booklet made from pdftex-a.pdf +pdftex-b-e.pdf A5 booklet, even pages +pdftex-b-o.pdf A5 booklet, odd pages -2. Installation -=============== +pdftex-t.tex source for manual (ConTeXt) +pdftex-w.tex source for title page (plain) +pdftex-i.tex settings for screen output (ConTeXt) -Untar or unzip the distribution file. Change to directory "manual". -All files are built from pdftex-t.tex via the Makefile or the file -makefiles.cmd. +pdftex-help.txt output of --help +pdftex-syntax.tex primitives and syntax rules, autogenerated from manual +pdftex-syntax.txt autogenerated from .tex -2.1 Unix Style --------------- +syntaxform.pl script for making pdftex-syntax.tex +syntaxform.awk script for making pdftex-syntax.txt -See the Makefile. To re-generate the manual PDFs from their sources, -type: +The Makefile has the rules for building everything. +For Windows, see makefiles.cmd, though it has not been updated in years. -make allclean; make - -To get also the A5 booklet PDFs, type: - -make booklet - -Finally you might type: - -make clean - -to remove all unneeded stuff that has accumulated during processing. -Only the sources, the PDFs, and file pdftex-syntax.txt will be kept. - -2.2 Windows Style ------------------ - -Execute file makefiles.cmd. - - -3. How it's done -================ - -3.1 Generating pdftex-syntax.txt from pdftex-t.tex --------------------------------------------------- -pdftex-t.tex --> (awk -f syntaxform.awk) --> pdftex-syntax.txt - - -3.2 Generating title page of manual ------------------------------------ -pdftex-w.tex --> (pdfetex) --> pdftex-w.pdf - --> (expand, fmt, grep) --> pdftex-t.txt +If working on the manual, make clean removes all the temporary files. +make maintainer-clean removes everything that can be generated. diff --git a/Master/texmf-dist/doc/pdftex/manual/pdftex-a.pdf b/Master/texmf-dist/doc/pdftex/manual/pdftex-a.pdf Binary files differindex 029a0696bab..8de0d2cb619 100644 --- a/Master/texmf-dist/doc/pdftex/manual/pdftex-a.pdf +++ b/Master/texmf-dist/doc/pdftex/manual/pdftex-a.pdf diff --git a/Master/texmf-dist/doc/pdftex/manual/pdftex-l.pdf b/Master/texmf-dist/doc/pdftex/manual/pdftex-l.pdf Binary files differdeleted file mode 100644 index eef60d898c5..00000000000 --- a/Master/texmf-dist/doc/pdftex/manual/pdftex-l.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/pdftex/manual/pdftex-s.pdf b/Master/texmf-dist/doc/pdftex/manual/pdftex-s.pdf Binary files differdeleted file mode 100644 index 6f7d794bc96..00000000000 --- a/Master/texmf-dist/doc/pdftex/manual/pdftex-s.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/pdftex/manual/pdftex-syntax.txt b/Master/texmf-dist/doc/pdftex/manual/pdftex-syntax.txt index e0240e8e3bc..bf6d00d5f3e 100644 --- a/Master/texmf-dist/doc/pdftex/manual/pdftex-syntax.txt +++ b/Master/texmf-dist/doc/pdftex/manual/pdftex-syntax.txt @@ -1,169 +1,172 @@ +%% $Id: syntaxform.pl 742 2016-04-25 17:30:55Z karl $ %% This is the list of new or extended primitives provided by pdftex. %% Don't edit this file, as it is now auto-generated from the -%% pdfTeX documentation file pdftex-t.tex by script syntaxform.awk. -%% Used convention for syntax rules is borrowed from `TeXbook naruby' -%% by Petr Olsak. -%% $Id: pdftex-t.tex 722 2015-03-25 23:13:50Z karl $ +%% pdfTeX manual source pdftex-t.tex (and the generated +%% pdftex-syntax.tex) by the script syntaxform.awk. +%% Syntax rule conventions borrowed from `TeXbook naruby' by Petr Olsak. -%% integer registers: -\pdfoutput (integer) -\pdfminorversion (integer) -\pdfcompresslevel (integer) -\pdfobjcompresslevel (integer) -\pdfdecimaldigits (integer) -\pdfimageresolution (integer) -\pdfpkresolution (integer) -\pdftracingfonts (integer) -\pdfuniqueresname (integer) -\pdfadjustspacing (integer) -\pdfprotrudechars (integer) +%% Integer registers: \efcode <font> <8-bit number> (integer) +\knaccode <font> <8-bit number> (integer) +\knbccode <font> <8-bit number> (integer) +\knbscode <font> <8-bit number> (integer) \lpcode <font> <8-bit number> (integer) -\rpcode <font> <8-bit number> (integer) \pdfadjustinterwordglue (integer) -\knbscode <font> <8-bit number> (integer) -\stbscode <font> <8-bit number> (integer) -\shbscode <font> <8-bit number> (integer) -\pdfprependkern (integer) -\knbccode <font> <8-bit number> (integer) +\pdfadjustspacing (integer) \pdfappendkern (integer) -\knaccode <font> <8-bit number> (integer) -\pdfgentounicode (integer) -\tagcode <font> <character code> (integer) -\pdfpagebox (integer) +\pdfcompresslevel (integer) +\pdfdecimaldigits (integer) +\pdfdraftmode (integer) \pdfforcepagebox (integer) -\pdfoptionalwaysusepdfpagebox (integer) -\pdfinclusionerrorlevel (integer) -\pdfoptionpdfinclusionerrorlevel (integer) -\pdfimagehicolor (integer) -\pdfimageapplygamma (integer) \pdfgamma (integer) +\pdfgentounicode (integer) +\pdfimageapplygamma (integer) \pdfimagegamma (integer) +\pdfimagehicolor (integer) +\pdfimageresolution (integer) \pdfinclusioncopyfonts (integer) -\pdfdraftmode (integer) +\pdfinclusionerrorlevel (integer) +\pdfinfoomitdate (integer) +\pdfminorversion (integer) +\pdfobjcompresslevel (integer) +\pdfoutput (integer) +\pdfpagebox (integer) +\pdfpkresolution (integer) +\pdfprependkern (integer) +\pdfprotrudechars (integer) +\pdfsuppressptexinfo (integer) \pdfsuppresswarningdupdest (integer) \pdfsuppresswarningdupmap (integer) \pdfsuppresswarningpagegroup (integer) +\pdftracingfonts (integer) +\pdfuniqueresname (integer) +\rpcode <font> <8-bit number> (integer) +\shbscode <font> <8-bit number> (integer) +\stbscode <font> <8-bit number> (integer) +\tagcode <font> <character code> (integer) + +%% Read-only integers: +\pdfelapsedtime (read-only integer) +\pdflastannot (read-only integer) +\pdflastlink (read-only integer) +\pdflastobj (read-only integer) +\pdflastxform (read-only integer) +\pdflastximage (read-only integer) +\pdflastximagecolordepth (read-only integer) +\pdflastximagepages (read-only integer) +\pdflastxpos (read-only integer) +\pdflastypos (read-only integer) +\pdfrandomseed (read-only integer) +\pdfretval (read-only integer) +\pdfshellescape (read-only integer) +\pdftexversion (read-only integer) -%% dimen registers: +%% Dimen registers: +\pdfdestmargin (dimen) +\pdfeachlinedepth (dimen) +\pdfeachlineheight (dimen) +\pdffirstlineheight (dimen) \pdfhorigin (dimen) -\pdfvorigin (dimen) -\pdfpagewidth (dimen) -\pdfpageheight (dimen) \pdfignoreddimen (dimen) -\pdffirstlineheight (dimen) \pdflastlinedepth (dimen) -\pdfeachlineheight (dimen) -\pdfeachlinedepth (dimen) \pdflinkmargin (dimen) -\pdfdestmargin (dimen) -\pdfthreadmargin (dimen) +\pdfpageheight (dimen) +\pdfpagewidth (dimen) \pdfpxdimen (dimen) +\pdfthreadmargin (dimen) +\pdfvorigin (dimen) -%% token registers: -\pdfpagesattr (tokens) +%% Token registers: \pdfpageattr (tokens) \pdfpageresources (tokens) +\pdfpagesattr (tokens) \pdfpkmode (tokens) -%% expandable commands: -\pdftexrevision (expandable) -\pdftexbanner (expandable) +%% Expandable commands: +\ifincsname (expandable) +\ifpdfabsdim (expandable) +\ifpdfabsnum (expandable) +\ifpdfprimitive <control sequence> (expandable) +\leftmarginkern <box number> (expandable) +\pdfcolorstackinit [page] [direct] <general text> (expandable) \pdfcreationdate (expandable) -\pdfpageref <page number> (expandable) -\pdfxformname <object number> (expandable) +\pdfescapehex <general text> (expandable) +\pdfescapename <general text> (expandable) +\pdfescapestring <general text> (expandable) +\pdffiledump [offset <number>] [length <number>] <general text> (expandable) +\pdffilemoddate <general text> (expandable) +\pdffilesize <general text> (expandable) \pdffontname <font> (expandable) \pdffontobjnum <font> (expandable) \pdffontsize <font> (expandable) \pdfincludechars <font> <general text> (expandable) -\leftmarginkern <box number> (expandable) -\rightmarginkern <box number> (expandable) -\pdfescapestring <general text> (expandable) -\pdfescapename <general text> (expandable) -\pdfescapehex <general text> (expandable) -\pdfunescapehex <general text> (expandable) -\ifpdfprimitive <control sequence> (expandable) -\ifincsname (expandable) -\pdfstrcmp <general text> <general text> (expandable) -\pdfmatch [icase] [subcount <number>] - <general text> <general text> (expandable) +\pdfinsertht <integer> (expandable) \pdflastmatch <integer> (expandable) -\ifpdfabsnum (expandable) -\ifpdfabsdim (expandable) -\pdfuniformdeviate <number> (expandable) +\pdfmatch [icase] [subcount <integer>] <general text> <general text> (expandable) +\pdfmdfivesum file <general text> (expandable) \pdfnormaldeviate (expandable) -\pdfmdfivesum [file] <general text> (expandable) -\pdffilemoddate <general text> (expandable) -\pdffilesize <general text> (expandable) -\pdffiledump [offset <number>] [length <number>] <general text> - (expandable) -\pdfcolorstackinit [page] [direct] <general text> - (expandable) -\pdfinsetht <integer> (expandable) +\pdfpageref <page number> (expandable) +\pdfstrcmp <general text> <general text> (expandable) +\pdftexbanner (expandable) +\pdftexrevision (expandable) +\pdfunescapehex <general text> (expandable) +\pdfuniformdeviate <number> (expandable) +\pdfxformname <object number> (expandable) \pdfximagebbox <integer> <integer> (expandable) +\rightmarginkern <box number> (expandable) -%% read-only integers: -\pdftexversion (read-only integer) -\pdflastobj (read-only integer) -\pdflastxform (read-only integer) -\pdflastximage (read-only integer) -\pdflastximagecolordepth (read-only integer) -\pdflastximagepages (read-only integer) -\pdflastannot (read-only integer) -\pdflastlink (read-only integer) -\pdflastxpos (read-only integer) -\pdflastypos (read-only integer) -\pdflastdemerits (read-only integer) -\pdfelapsedtime (read-only integer) -\pdfrandomseed (read-only integer) -\pdfretval (read-only integer) -\pdfshellescape (read-only integer) - -%% general commands: -\pdfobj <object type spec> (h, v, m) -\pdfrefobj <object number> (h, v, m) -\pdfxform [<xform attr spec>] <box number> (h, v, m) -\pdfrefxform <object number> (h, v, m) -\pdfximage [<image attr spec>] <general text> (h, v, m) -\pdfrefximage <object number> (h, v, m) +%% General commands: +\letterspacefont <control sequence> <font> <integer> \pdfannot <annot type spec> (h, v, m) -\pdfstartlink [<rule spec>] [<attr spec>] <action spec> (h, m) -\pdfendlink (h, m) -\pdfoutline <outline spec> (h, v, m) +\pdfcatalog <general text> [<open-action spec>] +\pdfcolorstack <stack number> <stack action> <general text> +\pdfcopyfont <control sequence> <font> \pdfdest <dest spec> (h, v, m) -\pdfthread <thread spec> (h, v, m) -\pdfstartthread <thread spec> (v, m) +\pdfendlink (h, m) \pdfendthread (v, m) -\pdfsavepos (h, v, m) -\pdfinfo <general text> -\pdfcatalog <general text> [<open-action spec>] -\pdfnames <general text> -\pdfmapfile <map spec> -\pdfmapline <map spec> +\pdffakespace \pdffontattr <font> <general text> -\pdftrailer <general text> -\pdffontexpand <font> <expand spec> -\letterspacefont <control sequence> <font> <integer> -\pdfcopyfont <control sequence> <font> +\pdffontexpand <font> <stretch> <shrink> <step> [autoexpand] \pdfglyphtounicode <general text> <general text> -\vadjust [<pre spec>] <filler> { <vertical mode material> } (h, m) -\quitvmode +\pdfinfo <general text> +\pdfinterwordspaceoff +\pdfinterwordspaceon \pdfliteral [<pdfliteral spec>] <general text> (h, v, m) -\special <pdfspecial spec> -\pdfresettimer -\pdfsetrandomseed <number> +\pdfmapfile <map spec> +\pdfmapline <map spec> +\pdfnames <general text> +\pdfnobuiltintounicode <font> \pdfnoligatures <font> +\pdfobj <object type spec> (h, v, m) +\pdfoutline [<attr spec>] <action spec> [count <integer>] <general text> (h, v, m) \pdfprimitive <control sequence> -\pdfcolorstack <stack number> <stack action> <general text> -\pdfsetmatrix -\pdfsave +\pdfrefobj <object number> (h, v, m) +\pdfrefxform <object number> (h, v, m) +\pdfrefximage <object number> +\pdfresettimer \pdfrestore +\pdfsave +\pdfsavepos (h, v, m) +\pdfsetmatrix +\pdfsetrandomseed <number> +\pdfstartlink [<rule spec>] [<attr spec>] <action spec> (h, m) +\pdfthread [<rule spec>] [<attr spec>] <id spec> (h, v, m) +\pdftrailer <general text> +\pdftrailerid <general text> +\pdftstartthread [<rule spec>] [<attr spec>] <id spec> (v, m) +\pdfxform [<attr spec>] [<resources spec>] <box number> (h, v, m) +\pdfximage [<rule spec>] [<attr spec>] [<page spec>] [<colorspace spec>] [<pdf box spec>] <general text> (h, v, m) +\quitvmode +\special {pdf: <text> } +\special {pdf:direct: <text> } +\special {pdf:page: <text> } +\vadjust [<pre spec>] <filler> { <vertical mode material> } (h, m) -%% syntax rules: +%% Syntax rules: <general text> --> { <balanced text> } <attr spec> --> attr <general text> <resources spec> --> resources <general text> -<rule spec> --> (width | height | depth) <dimension> [<rule spec>] +<rule spec> --> (width | height | depth) <dimen> [<rule spec>] <object type spec> --> reserveobjnum | [useobjnum <number>] [stream [<attr spec>]] <object contents> <annot type spec> --> reserveobjnum diff --git a/Master/texmf-dist/doc/pdftex/manual/pdftex-t.tex b/Master/texmf-dist/doc/pdftex/manual/pdftex-t.tex index e7a56202e9d..9ae584c7c5e 100644 --- a/Master/texmf-dist/doc/pdftex/manual/pdftex-t.tex +++ b/Master/texmf-dist/doc/pdftex/manual/pdftex-t.tex @@ -1,29 +1,11 @@ % interface=english modes=letter,screen output=pdftex % vim: tw=79 -% $Id: pdftex-t.tex 722 2015-03-25 23:13:50Z karl $ +% $Id: pdftex-t.tex 745 2016-04-25 18:06:57Z karl $ -% The number of lines on the titlepage depends on exactly +% The number of lines on the title page depends on exactly % what \PDF\ code is generated. -% -\setvariables[pdftex][titlepagelines=55] - -%D We use a multi purpose style (using modes) that enable us -%D to generate an A4, letter and screen version. -%D -%D Default A4 size manual: -%D texexec --result=pdftex-a.pdf pdftex-t -%D -%D Letter size manual: -%D texexec --mode=letter --result=pdftex-l.pdf pdftex-t -%D -%D Booklet (given that A4 document is available): -%D texexec --pdfarrange --paper=a5a4 --print=up --addempty=1,2 --result=pdftex-b.pdf pdftex-a -%D -%D Screen version -%D texexec --mode=screen pdftex-t - -%D This is the \PDFTEX\ manual, so it makes sense to force \PDF\ output here. +\setvariables[pdftex][titlepagelines=64] \setupoutput [pdftex] @@ -52,13 +34,13 @@ \def\rcsmonth{#5} \def\rcsday{{\count0=#6\relax\the\count0}} \def\rcsmonthname{\ifcase\rcsmonth ERROR\or - January\or February\or March\or April\or May\or June\or - July\or August\or September\or October\or November\or December\else ERROR\fi} + January\or February\or March\or April\or May\or June\or July\or + August\or September\or October\or November\or December\else ERROR\fi} } -\svnscan $Id: pdftex-t.tex 722 2015-03-25 23:13:50Z karl $ +\svnscan $Id: pdftex-t.tex 745 2016-04-25 18:06:57Z karl $ -\def\currentpdftex{1.40.16} +\def\currentpdftex{1.40.17} %*********************************************************************** @@ -68,8 +50,6 @@ \def\PDFReference{{\sl PDF Reference}} % PDF with capital letters \abbreviation [AFM] {afm} {Adobe Font Metrics} -%\abbreviation [AMIGA] {Amiga} {Amiga hardware platform} -%\abbreviation [AMIWEB] {AmiWeb2c} {\AMIGA\ distribution} \abbreviation [BIBTEX] {Bib\TeX} {Handles bibliographies} \abbreviation [ASCII] {ascii} {American Standard Code for Information Interchange} \abbreviation [CONTEXT] {\ConTeXt} {general purpose macro package} @@ -151,7 +131,9 @@ \useURL [ptex_bugs] [mailto:pdftex@tug.org] [] [pdftex@tug.org] \useURL [ptex_listinfo] [http://lists.tug.org/pdftex] -\useURL [texlive] [http://tug.org/texlive/] +\useURL [kpathsea] [http://tug.org/kpathsea] +\useURL [texlive] [http://tug.org/texlive] +\useURL [web2c] [http://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] @@ -170,24 +152,26 @@ \let\ifpdfabsnum\relax \let\ifpdfabsdim\relax +\def\Syntax #1{\strut\kern-.25em{#1}\kern-.25em} +\def\Next {\crlf\hbox to 2em{}\nobreak} \def\Sugar #1{\unskip\unskip\unskip\kern.25em{#1}\kern.25em\ignorespaces} -\def\Something#1{\Sugar{\mathematics{\langle\hbox{#1}\rangle}}} +% \def\Lbrace {\Sugar{\tttf\leftargument}} -\def\Rbrace {\Sugar{\tttf\rightargument}} -\def\Or {\Sugar{\mathematics{\vert}}} -\def\Optional #1{\Sugar{\mathematics{[\hbox{#1}]}}} +\def\Literal #1{\Sugar{\type{#1}}} \def\Means {\Sugar{\mathematics{\rightarrow}}} +\def\Modelist #1{\Sugar{\mathematics{(\hbox{#1})}}} +\def\Optional #1{\Sugar{\mathematics{[\hbox{#1}]}}} +\def\Or {\Sugar{\mathematics{\vert}}} +\def\Rbrace {\Sugar{\tttf\rightargument}} \def\Tex #1{\Sugar{\type{#1}}} -\def\Literal #1{\Sugar{\type{#1}}} -\def\Syntax #1{\strut\kern-.25em{#1}\kern-.25em} -\def\Next {\crlf\hbox to 2em{}\nobreak} \def\Whatever #1{\Sugar{\mathematics{(\hbox{#1})}}} % hyphenates - \def\Something#1{\Sugar{\mathematics{\langle}\prewordbreak {#1}\prewordbreak\mathematics{\rangle}}} +\hbadness=10000 % don't care + % Break after these chars in urls, not before. \sethyphenatedurlafter / \sethyphenatedurlafter . @@ -395,7 +379,7 @@ color=, page=yes, openaction=firstpage, - title=the pdfTeX users manual, + title=pdfTeX users manual, author={H\`an Th\^e Th\`anh, Sebastian Rahtz, Hans Hagen, Hartmut Henkel, Pawe\l\ Jackowski, Martin Schr\"oder, Karl Berry}] @@ -542,13 +526,14 @@ \start \chardef\fontdigits=2 - \switchtobodyfont[12pt,tt] - \setupinterlinespace[line=\dimexpr((\paperheight-1cm)/\getvariable{pdftex}{titlepagelines})] + \switchtobodyfont[10pt,tt] + \setupinterlinespace + [line=\dimexpr((\paperheight-1cm)/\getvariable{pdftex}{titlepagelines})] \setuptyping[margin=,color=] \setuplayout[titlepage] \startcolumnset[titlepage] - \typefile{pdftex-t.txt} + \typefile{pdftex-w.txt} \stopcolumnset \page @@ -684,10 +669,10 @@ bug reports to the mailing list \from [ptex_bugs] (\from [ptex_listinfo]). \subsection{About this manual} -This manual revision (\rcsrevision) is intended to track current -\PDFTEX\ development, up to version \currentpdftex. The primary +This manual revision (\rcsrevision) is intended to cover +\PDFTEX\ development up to version \currentpdftex. The primary repository for the manual and its sources is at \from[ptex_devel]. -Copies in \PDF\ format can also be found on \CTAN\ in \from[ptex_ctan]. +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. @@ -697,7 +682,7 @@ Please send questions or suggestions by email to \from[ptex_bugs]. \subsection{Legal Notice} -Copyright \copyright\ 1996||2015 \THANH. +Copyright \copyright\ 1996||2016 \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; @@ -732,13 +717,13 @@ objects by new ones. When a viewer opens a \PDF\ file, it goes to the end of the file, looking for the keyword \type{startxref}. The number after \type{startxref} gives the absolute position (byte offset from the file -start) of the so called \quote {object cross-reference table} that +start) of the so||called \quote {object cross-reference table} that begins with the keyword \type{xref}. This table in turn tells the byte offsets of all objects that make up the \PDF\ file, providing fast random access to the individual objects (here the \type{xref} table shows 11~objects, numbered from~0 to~10; the object no.~0 is always unused). The actual starting point of the file's object structure is -defined after the \type{trailer}: The \type{/Root} entry points to the +defined after the \type{trailer}: the \type{/Root} entry points to the \type{/Catalog} object (no.~9). In this object the viewer can find the pointer \type{/Pages} to the page list object (no.~5). In our example we have only one page. The trailer also holds an \type{/Info} entry, which @@ -758,7 +743,7 @@ take a look at the \PDF\ code of this file to get an impression of that. The page content is a stream of drawing operations. Such a stream can be compressed, where the level of compression can be set with -\type {\pdfcompresslevel} (compression is switched off for the title +\type{\pdfcompresslevel} (compression is switched off for the title page). Let's take a closer look at this stream in object~3. Often (but not in our example) there is a transformation matrix, six numbers followed by \type{cm}. As in \POSTSCRIPT, the operator comes after the @@ -792,27 +777,23 @@ therefore need not be embedded in the \PDF\ file, it is left out here for brevity. However, when we use for instance a Computer Modern Roman font, we have to make sure that this font is later available to the \PDF\ viewer, and the best way to do this is to embed the font. - -It's highly recommended nowadays to embed even the standard fonts, as -modern viewers often don't use the original 14~standard fonts anymore, -but instead approximate them by instances of built||in Multiple Master -fonts (\eg\ the Adobe Reader~7 approximates the Times-Roman variants by -the Minion font). So you never really know how it looks exactly at the -viewer side unless you embed every font. +It's highly recommended nowadays to embed even the standard fonts; +you can't know how it looks exactly at the viewer side unless you embed +every font. In this simple file we don't specify in what way the file should be opened, for instance full screen or clipped. A closer look at the page object no.~2 (\typ{/Type /Page}) shows that a mediabox (\typ{/MediaBox}) is part of the page description. A mediabox acts like the (high-resolution) bounding box in a \POSTSCRIPT\ file. \PDFTEX\ users can add dictionary stuff to page -objects by the \type{\pdfpageattr} primitive. +objects with the \type{\pdfpageattr} primitive. Although in most cases macro packages will shield users from these internals, \PDFTEX\ provides access to many of the entries described here, either automatically by translating the \TEX\ data structures into \PDF\ ones, or manually by pushing entries to the catalog, page, info or self-created objects. One can for instance create an object by using -\type{\pdfobj} after which \type{\pdflastobj} returns its number. So +\type{\pdfobj}, after which \type{\pdflastobj} returns its number. So \starttyping \pdfobj{<< /Type/ExtGState /LW 2 >>} @@ -829,14 +810,13 @@ by primitives like \type{\pdfobj} is not very useful, and only makes sense when implementing, say, fill||in field support or annotation content reuse. We will come to that later. -For those who want to learn more about the gory \PDF\ details, the best -bet is to read the \PDFReference. As of the time of writing you can -download this book as a big \PDF\ file from Adobe's \PDF\ Technology Center, +Of course, this is just the barest introduction to \PDF\ format. For +those who want to learn more about the gory \PDF\ details, the best bet +is to read the \PDFReference. As of the time of writing you can download +this book as a big \PDF\ file from Adobe's \PDF\ Technology Center, \from[pdfreference] --- or get the heavy paper version. -Those who, after this introduction, feel unsure how to proceed, are -advised to read on but skip \in{section}[primitives]. Before we come to -that section, we will describe how to get started with \PDFTEX. +We now turn to specifics of \PDFTEX. %*********************************************************************** @@ -845,7 +825,7 @@ that section, we will describe how to get started with \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, -\TETEX, \XEMTEX, \MIKTEX, \PROTEXT, and \MACTEX. The ready to run +\MIKTEX, \TETEX, \XEMTEX, \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 @@ -866,15 +846,12 @@ is \WEBC||specific. \subsection{Getting sources and binaries} -The latest sources of \PDFTEX\ are distributed for compilation -on \UNIX\ systems (including \GNU/Linux), and \WIN\ systems. The -primary home page is \from[ptex_org], where you also find bug tracking -information. Development sources are at \from[ptex_devel]. - -The \PDFTEX\ sources can also be found at their canonical place in the -\CTAN\ network, \from[ptex_ctan]. Precompiled \PDFTEX\ binaries for -various systems might also be available, check the subdirectories -below \from[ctan_systems]. +The latest sources of \PDFTEX\ are distributed for compilation on \UNIX\ +systems (including \GNU/Linux), and \WIN\ systems. The primary home +page is \from[ptex_org], where you also find bug tracking information. +Development sources are at \from[ptex_devel]. Precompiled \PDFTEX\ +binaries for various systems might be available in subdirectories below +\from[ctan_systems], or via \TEX\ distribution web pages. %*********************************************************************** @@ -935,13 +912,13 @@ relative to the place of the \PDFTEX\ binary; on a \TEXLIVE\ system, file \filename{texmf.cnf} can also be set up by the environment variable \type{TEXMFCNF}. -Next you might need to edit \filename {texmf.cnf} so that \PDFTEX\ -can find all necessary files, but the \filename{texmf.cnf} files -coming with the major \TEX\ distributions should already be set up for -normal use. You might check into the file \filename{texmf.cnf} to see -where the various bits and pieces are going. +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. -\PDFTEX\ uses the search path variables shown in \in{table}[tbl:spathvar]. +\PDFTEX\ uses the search path variables shown in +\in{table}[tbl:spathvar], among others. \startbuffer \starttabulate[|l|l|] @@ -959,23 +936,23 @@ where the various bits and pieces are going. \NC Type~1 fonts \NC \type{T1FONTS} \NC\NR \NC TrueType fonts \NC \type{TTFONTS} \NC\NR \NC OpenType fonts \NC \type{OPENTYPEFONTS} \NC\NR -\NC pixel fonts \NC \type{PKFONTS} \NC\NR +\NC bitmap fonts \NC \type{PKFONTS} \NC\NR \HL \stoptabulate \stopbuffer \placetable[here][tbl:spathvar] - {The \WEBC\ variables.} + {The principal \WEBC\ variables.} {\getbuffer} \PathDescription {TEXMFOUTPUT} Normally, \PDFTEX\ puts its output files -in the current directory. If any output file cannot be opened there, it -tries to open it in the directory specified in the environment variable -\type{TEXMFOUTPUT}. There is no default value for that variable. For -example, if you type \type{pdftex paper} and the current directory is -not writable, if \type{TEXMFOUTPUT} has the value \type{/tmp}, \PDFTEX\ -attempts to create \type{/tmp/paper.log} (and \type{/tmp/paper.pdf}, -if any output is produced.) +in the current directory, overridden by the \type{-output-directory} +option. If any output file cannot be opened there, it tries to open it +in the environment variable \type{TEXMFOUTPUT}, if that is set. There is +no default value for that variable. For example, if \type{TEXMFOUTPUT} +has the value \type{/tmp}, and you run \type{pdftex paper} when the +current directory is not writable, \PDFTEX\ attempts to create +\type{/tmp/paper.log} (and \type{/tmp/paper.pdf}, etc.) \PathDescription {TEXINPUTS} This variable specifies where \PDFTEX\ finds its input files. Image files are considered @@ -1014,17 +991,24 @@ viewers, so when possible one should use outline fonts. When no outline is available, \PDFTEX\ tries to locate a suitable \PK\ font (or invoke a process that generates it). +\PathDescription{TEXFONTS} Fallback for all the font paths, so that if +you want to look in a particular directory for fonts on a given run, you +can set that one variable. + +Many more variables may be consulted, and there are many details to +file name lookups. See the Kpathsea manual (\from [kpathsea]). + %*********************************************************************** \subsection[cfg]{The \PDFTEX\ configuration} -One has to keep in mind that, as opposed to \TEX\ with its \DVI\ output, -the \PDFTEX\ program does not require a separate postprocessing stage -to transform the \TEX\ input into a \PDF\ file. As a consequence, all -data needed for building a ready \PDF\ page must be available -during the \PDFTEX\ run, in particular information on media dimensions -and offsets, graphics files for embedding, and font information (font -files, encodings). +We must keep in mind that, as opposed to \TEX\ with its \DVI\ output, +the \PDFTEX\ program does not have a separate postprocessing stage to +transform the \TEX\ input into final \PDF. As a consequence, all data +needed for building a ready \PDF\ page must be available during the +\PDFTEX\ run, in particular information on media dimensions and offsets, +graphics files for embedding, and font information (font files, +encodings). When \TEX\ builds a page, it places items relative to the top left page corner (the \DVI\ reference point). Separate \DVI\ postprocessors allow @@ -1104,31 +1088,33 @@ even without setting any parameters. \tx\setupinterlinespace \startframedtext \starttyping -% Set pdfTeX parameters for pdf mode (replacing pdftex.cfg file). -% Thomas Esser, 2004. public domain. -\pdfoutput=1 -\pdfcompresslevel=9 -\pdfdecimaldigits=3 -\pdfpagewidth=210 true mm -\pdfpageheight=297 true mm -\pdfhorigin=1 true in -\pdfvorigin=1 true in -\pdfpkresolution=600 -% -% As of TeX Live 2010, we output PDF 1.5 by default, so we can enable -% more compression. To change this for the installation, comment out or -% delete these lines and remake the formats. To change it for a -% particular LaTeX document, \RequirePackage{pdf14} early. -% -\pdfminorversion=5 -\pdfobjcompresslevel=2 -\endinput +% tex-ini-files 2016-04-15: pdftexconfig.tex + +% Load shared (PDF) settings in pdfTeX + +% Enable PDF output +\pdfoutput = 1 + +% Paper size: dimensions given in absolute terms +\pdfpageheight = 11 true in +\pdfpagewidth = 8.5 true in + +% Enable PDF 1.5 output and thus more compression +\pdfminorversion = 5 +\pdfobjcompresslevel = 2 + +% Low-level settings unlikely ever to need to change +\pdfcompresslevel = 9 +\pdfdecimaldigits = 3 +\pdfpkresolution = 600 +\pdfhorigin = 1 true in +\pdfvorigin = 1 true in \stoptyping \stopframedtext \stopbuffer \placefigure[here][in:pdftexconfig] - {The \PDFTEX\ configuration file for \TEXLIVE\ (\filename{pdftexconfig.tex}).} + {\PDFTEX\ configuration file for \TEXLIVE\ (\filename{pdftexconfig.tex}).} {\getbuffer} Independent of whether such a configuration file is read or not, the @@ -1145,15 +1131,7 @@ memory layout (\eg\ string pool and hash size), and other general parameters. \tx\setupinterlinespace \startframedtext \starttyping -% Thomas Esser, 1998, 2004. public domain. -\ifx\pdfoutput\undefined -\else - \ifx\pdfoutput\relax - \else - \input pdftexconfig - \pdfoutput=0 - \fi -\fi +% Thomas Esser, 1998. public domain. \input etex.src \dump \endinput @@ -1162,21 +1140,35 @@ memory layout (\eg\ string pool and hash size), and other general parameters. \stopbuffer \placefigure[here][in:etexini] - {File \type{etex.ini} for \ETEX\ format with \DVI\ output.} + {File \type{etex.ini} for the plain \ETEX\ format with \DVI\ output.} {\getbuffer} \startbuffer \tx\setupinterlinespace \startframedtext \starttyping -\ifx\pdfoutput\undefined -\else - \ifx\pdfoutput\relax - \else - \input pdftexconfig - \pdfoutput=1 - \fi -\fi +% Thomas Esser, 1998. public domain. +% This is used for pdftex and pdfetex, which are now identical: both +% with e-TeX extensions, both with pdf output. +\input pdftexconfig.tex +\input etex.src +\input pdftexmagfix.tex +\dump +\endinput +\stoptyping +\stopframedtext +\stopbuffer + +\placefigure[here][in:pdfetexini] + {File \type{pdfetex.ini} for plain \ETEX\ with \PDF\ output.} + {\getbuffer} + +\startbuffer +\tx\setupinterlinespace +\startframedtext +\starttyping +% Thomas Esser, 1998. public domain. +\input pdftexconfig.tex \scrollmode \input latex.ltx \endinput @@ -1185,104 +1177,85 @@ memory layout (\eg\ string pool and hash size), and other general parameters. \stopbuffer \placefigure[here][in:pdflatexini] - {File \type{pdflatex.ini} for \LATEX\ format with \PDF\ output.} + {File \type{pdflatex.ini} for the \LATEX\ format with \PDF\ output.} {\getbuffer} -The \PDFTEX\ engine allow building formats for \DVI\ and -\PDF\ output in the same way as the classical \TEX\ engine does for \DVI. -Format generation is enabled by the \type{-ini} option. The default mode -(\DVI\ or \PDF) can be chosen either on the command line by setting -the option \type{-output-format} to \type{dvi} or \type{pdf}, or by -setting the \type{\pdfoutput} parameter. The format file then inherits -this setting, so that a later call to \PDFTEX\ with this format starts -in the preselected mode (which still can be overrun then). A format -file can be read in only by the engine that has generated it; a format -incompatible with an engine leads to a fatal error. +The \PDFTEX\ engine supports building formats for \DVI\ and \PDF\ output +in the same way as the classical \TEX\ engine does for \DVI. Format +generation is enabled by the \type{-ini} option. The default mode (\DVI\ +or \PDF) can be chosen either on the command line by setting the option +\type{-output-format} to \type{dvi} or \type{pdf}, or by setting the +\type{\pdfoutput} parameter. The format file then inherits this setting, +so that a later invocation of \PDFTEX\ with this format starts in the +preselected mode (which still can be overridden). A format file can be +read in only by the engine that has generated it; a format incompatible +with an engine leads to a fatal error. It is customary to package the configuration and macro file input into a \type{.ini} file. \Eg, the file \type{etex.ini} in \in{figure}[in:etexini] is for generating an \ETEX\ format with \DVI\ -output (it contains a few comparisons to be safe also for \TEX\ engines). -A similar file \type{pdflatex.ini} can be used for generating a \LATEX\ -format with \PDF\ output; refer to \in{figure}[in:pdflatexini]. -One can see how the primitive \type{\pdfoutput} is used to override -the output mode set by file \type{pdftexconfig.tex}. The corresponding -\PDFTEX\ calls for format generation are: +output. It has been traditional for many years to generate +\type{etex.fmt} with \PDFTEX\ rather than the original \ETEX, because +\PDFTEX\ contains a few additional programming and other +non-\PDF-related features on which people have come to rely. -\starttyping -pdftex -ini *etex.ini -pdftex -ini pdflatex.ini -\stoptyping +The \type{pdfetex.ini} file \in{figure}[in:etexini] shows the +corresponding format with \PDF\ output by default; this is what creates +the format file read when \type{pdftex} is normally invoked. -These calls produce format files \filename{etex.fmt} and -\filename{pdflatex.fmt}, as the default format file name is taken from -the input file name. You can overrule this with the \type{-jobname} -option. The asterisk \type{*} in the first example line below tells the -\PDFTEX\ engine to go into extended \type{-ini} mode (\ETEX\ enabled); -otherwise it stays in non||extended \type{-ini} mode. The extended -\type{-ini} mode can also be forced by the \type{-etex} command line -option, as shown in the 2nd line below. +Finally, \type{pdflatex.ini} \in{figure}[in:pdflatexini] shows how the +\LATEX\ format with \PDF\ output by default is generated. -\starttyping -pdftex -ini -jobname=pdfelatex *pdflatex.ini -pdftex -ini -jobname=pdfelatex -etex pdflatex.ini -\stoptyping - -In \CONTEXT\ the generation depends on the interface used. A format using the -English user interface is generated with +The corresponding \PDFTEX\ calls for format generation are: \starttyping -pdftex -ini cont-en -\stoptyping - -When properly set up, one can also use the \CONTEXT\ command line interface -\TEXEXEC\ to generate one or more formats, like: - -\starttyping -texexec --make en +pdftex -ini *etex.ini +pdftex -ini *pdfetex.ini +pdftex -ini *pdflatex.ini \stoptyping -for an English format, or +These calls produce format files \filename{etex.fmt}, +\filename{pdfetex.fmt}, and \filename{pdflatex.fmt}, as the default +format file name is taken from the input file name. You can overrule +this with the \type{-jobname} option. The asterisk \type{*} before the +file name is a unusual feature, only in \type{-ini} mode, which causes +the \PDFTEX\ engine to enable \ETEX\ features. -\starttyping -texexec --make en de -\stoptyping +\subsection{Testing the installation} -for an English and German one. Most \CONTEXT\ users will simply say: +When everything is set up, you can test the installation. A simple test +of plain \PDFTEX\ is: \starttyping -texexec --make --all [--alone] +pdftex story \\end \stoptyping -and so generate the \TEX\ and \METAPOST\ related formats that \CONTEXT\ -needs. Whatever macro package used, the formats should be placed in the \type -{TEXFORMATS} path. - -\subsection{Testing the installation} +This should typeset the famous one-page short story by A.U. Thor. -When everything is set up, you can test the installation. In the -distribution there is a plain \TEX\ test file \filename{samplepdf.tex} -in the \type{manual/samplepdf/} directory. Process this file by typing: +A more thorough and descriptive test is the plain \TEX\ test file +\filename{samplepdf.tex}, available in the distribution in the +\type{samplepdftex/} directory. Process this file by typing: \starttyping pdftex samplepdf \stoptyping -If the installation is ok, this run should produce a file called -\filename{samplepdf.pdf}. The file \filename {samplepdf.tex} is also -a good place to look for how to use \PDFTEX's primitives. +If the installation is ok, this should produce a file called +\filename{samplepdf.pdf}. The file \filename {samplepdf.tex} is a good +place to look for examples of how to use \PDFTEX's primitives. %*********************************************************************** \subsection{Common problems} -The most common problem with installations is that \PDFTEX\ complains that -something cannot be found. In such cases make sure that \type{TEXMFCNF} is -set correctly, so \PDFTEX\ can find \filename {texmf.cnf}. The next best -place to look|/|edit is the file \type{texmf.cnf}. When still in deep -trouble, set \type{KPATHSEA_DEBUG=255} before running \PDFTEX\ or run -\PDFTEX\ with option \type{-k 255}. This will cause \PDFTEX\ to write a lot -of debugging information that can be useful to trace problems. More options +The most common problem with installations is that \PDFTEX\ complains +that something cannot be found. In such cases make sure that +\type{TEXMFCNF} is set correctly, so \PDFTEX\ can find \filename +{texmf.cnf}. The next best place to look|/|edit is the file +\type{texmf.cnf}. When still in deep trouble, set +\type{KPATHSEA_DEBUG=255} before running \PDFTEX\ or use the option +\type{-kpathsea-debug 255}. This will cause \PDFTEX\ to write a lot of +debugging information that can be useful to trace problems. More options can be found in the \WEBC\ documentation. Variables in \filename {texmf.cnf} can be overwritten by environment @@ -1299,8 +1272,7 @@ getting started: \filename {texmf.cnf} contains the path to \filename {pdftex.fmt} or \filename {pdflatex.fmt}. -\head \type{---! xx.fmt was written by tex} \crlf - \type{Fatal format file error; I'm stymied} +\head \type{Fatal format file error; I'm stymied} This appears \eg\ if you forgot to regenerate the \type{.fmt} files after installing a new version of the \PDFTEX\ binary. @@ -1332,6 +1304,42 @@ the object table size is now obsolete and ignored). %*********************************************************************** +\section{Invoking \PDFTEX} + +\PDFTEX\ has many command line options. With the exception of the +simple and rarely-used \type{-draftmode} and \type{-output-format} +options, they are all inherited from the common framework for \TeX\ +engines as implemented in \WEBC\ (\from [web2c] has the manual). + +The same commonality holds for environment variables; see the section +``Setting search paths'' above for an overview. However, \PDFTEX\ looks +for one additional environment variable: \type{SOURCE_DATE_EPOCH} +(introduced in version 1.40.17, 2016). If this is set, it must be a +positive integer (with one trivial exception: if it is set but empty, +that is equivalent to 0). Non-integer values cause a fatal error. The +value is used as the current time in seconds since the usual Unix +``epoch'', the beginning of 1970-01-01, UTC. Thus, a value of \type{32} +would result in a \type{/CreationDate} and \type{/ModDate} values of +\type{19700101000032Z}. This is useful for reproducible builds of +documents. (See also \type{\pdfinfoomitdate}, +\type{\pdfsuppressptexinfo}, et al.) + +Just to have the list of options and basic invocation at hand, here is a +verbatim listing of the \type{-}\type{-help} output. All options can be +specified with one or two dashes and unambiguously abbreviated. + +\startnotmode[screen] + \switchtobodyfont[9pt] % squeeze everything on one page +\stopnotmode + +\typefile{pdftex-help.txt} + +\startnotmode[screen] + \switchtobodyfont[10pt] % squeeze everything on one page +\stopnotmode + +%*********************************************************************** + \section{Macro packages supporting \PDFTEX} As \PDFTEX\ generates the final \PDF\ output without help of @@ -1388,7 +1396,7 @@ to turn on \PDFTEX\ support explicitly. for \PDFTEX\ in its generalized hypertext features. Support for \PDFTEX\ is implemented as a special driver, and is invoked by typing \type{\setupoutput[pdftex]} or feeding \TEXEXEC\ with the - \type{--pdf} option. + \type{-{}-pdf} option. \item \PDF\ from \TEXINFO\ documents can be created by running \PDFTEX\ on the \TEXINFO\ file, instead of \TEX. Alternatively, run the shell @@ -1650,11 +1658,10 @@ which tells how to handle the font file: When one suffers from invalid lookups, for instance when \PDFTEX\ tries to open a \type{.pfa} file instead of a \type{.pfb} one, one can add the suffix to the filename. In this respect, \PDFTEX\ completely relies -on the \type{kpathsea} libraries. +on the \type{kpathsea} library. \stopdescription -%HE Huh? pgc? If a used font is not present in the map files, first \PDFTEX\ will look for a source with suffix \type{.pgc}, which is a so||called \PGC\ source (\PDF\ Glyph Container) \footnote {This is a text file containing @@ -1799,684 +1806,51 @@ on handling glyph names, see ``A closer look at TrueType fonts and \section{Formal syntax specification} -This section formally specifies the \PDFTEX\ specific extensions to -the \TEX\ macro programming language. Most primitives are prefixed -by \type{pdf}. -%All primitives are prefixed by -%\type {pdf} except for \type{\efcode}, \type{\lpcode}, \type{\rpcode}, -%\type{\leftmarginkern}, \type{\rightmarginkern}, \type{\letterspacefont} -%and the new conditionals (which begin with \type{ifpdf}). -The general definitions and syntax rules follow after the list of primitives. +This section formally specifies the \PDFTEX-specific extensions to the +\TEX\ macro programming language. Most primitives are prefixed by +\type{pdf}. The general definitions and syntax rules follow after the +list of primitives. Two new units of measure were introduced in \PDFTEX\ 1.30.0: the new Didot (1\,nd~=~0.375\,mm) and the new Cicero (1\,nc~=~12\,nd) (the former was proposed by \ISO\ in 1975). -%%S This is the list of new or extended primitives provided by pdftex. -%%S Don't edit this file, as it is now auto-generated from the -%%S pdfTeX documentation file pdftex-t.tex by script syntaxform.awk. -%%S Used convention for syntax rules is borrowed from `TeXbook naruby' -%%S by Petr Olsak. -%%S $Id: pdftex-t.tex 722 2015-03-25 23:13:50Z karl $ -%%S NL -%%S integer registers: - -\subsubject{Integer registers} - -\startpacked - -\Syntax { -\Tex {\pdfoutput} \Whatever{integer} -} - -\Syntax { -\Tex {\pdfminorversion} \Whatever{integer} -} - -%\Syntax { -%\Tex {\pdfoptionpdfminorversion} \Whatever{integer} -%} - -\Syntax { -\Tex {\pdfcompresslevel} \Whatever{integer} -} - -\Syntax { -\Tex {\pdfobjcompresslevel} \Whatever{integer} -} - -\Syntax { -\Tex {\pdfdecimaldigits} \Whatever{integer} -} - -\Syntax { -\Tex {\pdfimageresolution} \Whatever{integer} -} - -\Syntax { -\Tex {\pdfpkresolution} \Whatever{integer} -} - -\Syntax { -\Tex {\pdftracingfonts} \Whatever{integer} -} - -\Syntax { -\Tex {\pdfuniqueresname} \Whatever{integer} -} - -\Syntax { -\Tex {\pdfadjustspacing} \Whatever{integer} -} - -\Syntax { -\Tex {\pdfprotrudechars} \Whatever{integer} -} - -\Syntax { -\Tex {\efcode} \Something{font} \Something{8-bit number} \Whatever{integer} -} - -\Syntax { -\Tex {\lpcode} \Something{font} \Something{8-bit number} \Whatever{integer} -} - -\Syntax { -\Tex {\rpcode} \Something{font} \Something{8-bit number} \Whatever{integer} -} - -\Syntax { -\Tex {\pdfadjustinterwordglue} \Whatever{integer} -} - -\Syntax { -\Tex {\knbscode} \Something{font} \Something{8-bit number} \Whatever{integer} -} - -\Syntax { -\Tex {\stbscode} \Something{font} \Something{8-bit number} \Whatever{integer} -} - -\Syntax { -\Tex {\shbscode} \Something{font} \Something{8-bit number} \Whatever{integer} -} - -\Syntax { -\Tex {\pdfprependkern} \Whatever{integer} -} - -\Syntax { -\Tex {\knbccode} \Something{font} \Something{8-bit number} \Whatever{integer} -} - -\Syntax { -\Tex {\pdfappendkern} \Whatever{integer} -} - -\Syntax { -\Tex {\knaccode} \Something{font} \Something{8-bit number} \Whatever{integer} -} - -\Syntax { -\Tex {\pdfgentounicode} \Whatever{integer} -} - -\Syntax { -\Tex {\tagcode} \Something{font} \Something{character code} \Whatever{integer} -} - -\Syntax { -\Tex {\pdfpagebox} \Whatever{integer} -} - -\Syntax { -\Tex {\pdfforcepagebox} \Whatever{integer} -} - -\Syntax { -\Tex {\pdfoptionalwaysusepdfpagebox} \Whatever{integer} -} - -\Syntax { -\Tex {\pdfinclusionerrorlevel} \Whatever{integer} -} - -\Syntax { -\Tex {\pdfoptionpdfinclusionerrorlevel} \Whatever{integer} -} - -\Syntax { -\Tex {\pdfimagehicolor} \Whatever{integer} -} - -\Syntax { -\Tex {\pdfimageapplygamma} \Whatever{integer} -} - -\Syntax { -\Tex {\pdfgamma} \Whatever{integer} -} - -\Syntax { -\Tex {\pdfimagegamma} \Whatever{integer} -} - - -\Syntax { -\Tex {\pdfinclusioncopyfonts} \Whatever{integer} -} - -\Syntax { -\Tex {\pdfdraftmode} \Whatever{integer} -} - -\Syntax { -\Tex {\pdfsuppresswarningdupdest} \Whatever{integer} -} - -\Syntax { -\Tex {\pdfsuppresswarningdupmap} \Whatever{integer} -} - -\Syntax { -\Tex {\pdfsuppresswarningpagegroup} \Whatever{integer} -} - -\stoppacked - -%%S NL -%%S dimen registers: - -\subsubject{Dimen registers} - -\startpacked - -\Syntax { -\Tex {\pdfhorigin} \Whatever{dimen} -} - -\Syntax { -\Tex {\pdfvorigin} \Whatever{dimen} -} - -\Syntax { -\Tex {\pdfpagewidth} \Whatever{dimen} -} - -\Syntax { -\Tex {\pdfpageheight} \Whatever{dimen} -} - -\Syntax { -\Tex {\pdfignoreddimen} \Whatever{dimen} -} - -\Syntax { -\Tex {\pdffirstlineheight} \Whatever{dimen} -} - -\Syntax { -\Tex {\pdflastlinedepth} \Whatever{dimen} -} - -\Syntax { -\Tex {\pdfeachlineheight} \Whatever{dimen} -} - -\Syntax { -\Tex {\pdfeachlinedepth} \Whatever{dimen} -} - -\Syntax { -\Tex {\pdflinkmargin} \Whatever{dimen} -} - -\Syntax { -\Tex {\pdfdestmargin} \Whatever{dimen} -} - -\Syntax { -\Tex {\pdfthreadmargin} \Whatever{dimen} -} - -\Syntax { -\Tex {\pdfpxdimen} \Whatever{dimen} -} - -\stoppacked - -%%S NL -%%S token registers: - -\subsubject{Token registers} - -\startpacked - -\Syntax { -\Tex {\pdfpagesattr} \Whatever{tokens} -} - -\Syntax { -\Tex {\pdfpageattr} \Whatever{tokens} -} - -\Syntax { -\Tex {\pdfpageresources} \Whatever{tokens} -} - -\Syntax { -\Tex {\pdfpkmode} \Whatever{tokens} -} - -\stoppacked - -%%S NL -%%S expandable commands: - -\subsubject{Expandable commands} - -\startpacked - -\Syntax { -\Tex {\pdftexrevision} \Whatever{expandable} -} - -\Syntax { -\Tex {\pdftexbanner} \Whatever{expandable} -} - -\Syntax { -\Tex {\pdfcreationdate} \Whatever{expandable} -} - -\Syntax { -\Tex {\pdfpageref} \Something{page number} \Whatever{expandable} -} - -\Syntax { -\Tex {\pdfxformname} \Something{object number} \Whatever{expandable} -} - -\Syntax { -\Tex {\pdffontname} \Something{font} \Whatever{expandable} -} - -\Syntax { -\Tex {\pdffontobjnum} \Something{font} \Whatever{expandable} -} - -\Syntax { -\Tex {\pdffontsize} \Something{font} \Whatever{expandable} -} - -\Syntax { -\Tex {\pdfincludechars} \Something{font} \Something{general text} \Whatever{expandable} -} - -\Syntax { -\Tex {\leftmarginkern} \Something{box number} \Whatever{expandable} -} - -\Syntax { -\Tex {\rightmarginkern} \Something{box number} \Whatever{expandable} -} - -\Syntax { -\Tex {\pdfescapestring} \Something{general text} \Whatever{expandable} -} - -\Syntax { -\Tex {\pdfescapename} \Something{general text} \Whatever{expandable} -} - -\Syntax { -\Tex {\pdfescapehex} \Something{general text} \Whatever{expandable} -} - -\Syntax { -\Tex {\pdfunescapehex} \Something{general text} \Whatever{expandable} -} - -\Syntax { -\tex {ifpdfprimitive} \Something{control sequence} \Whatever{expandable} -} - -\Syntax { -\tex {ifincsname} \Whatever{expandable} -} - -\Syntax { -\Tex {\pdfstrcmp} \Something{general text} \Something{general text} \Whatever{expandable} -} - -\Syntax { -\Tex {\pdfmatch} \Optional{\Literal{icase}} \Optional{\Literal{subcount} \Something{number}} - \Something{general text} \Something{general text} \Whatever{expandable} -} - -\Syntax { -\Tex {\pdflastmatch} \Something{integer} \Whatever{expandable} -} - -\Syntax { -\Tex {\ifpdfabsnum} \Whatever{expandable} -} - -\Syntax { -\Tex {\ifpdfabsdim} \Whatever{expandable} -} - -\Syntax { -\Tex {\pdfuniformdeviate} \Something{number} \Whatever{expandable} -} - -\Syntax { -\Tex {\pdfnormaldeviate} \Whatever{expandable} -} - -\Syntax { -\Tex {\pdfmdfivesum} \Optional{\Literal{file}} \Something{general text} \Whatever{expandable} -} - -\Syntax { -\Tex {\pdffilemoddate} \Something{general text} \Whatever{expandable} -} - -\Syntax { -\Tex {\pdffilesize} \Something{general text} \Whatever{expandable} -} - -\Syntax { -\Tex {\pdffiledump} \Optional{\Literal{offset} \Something{number}} \Optional{\Literal{length} \Something{number}} \Something{general text} -\Whatever{expandable} -} - -\Syntax { -\Tex {\pdfcolorstackinit} \Optional{\Literal{page}} \Optional{\Literal{direct}} \Something{general text} -\Whatever{expandable} -} - -\Syntax { -\Tex{\pdfinsetht} \Something{integer} \Whatever{expandable} -} - -\Syntax { -\Tex {\pdfximagebbox} \Something{integer} \Something{integer} \Whatever{expandable} -} - -\stoppacked - -%%S NL -%%S read-only integers: - -\subsubject{Read||only integers} - -\startpacked - -\Syntax { -\Tex {\pdftexversion} \Whatever{read||only integer} -} - -\Syntax { -\Tex {\pdflastobj} \Whatever{read||only integer} -} - -\Syntax { -\Tex {\pdflastxform} \Whatever{read||only integer} -} - -\Syntax { -\Tex {\pdflastximage} \Whatever{read||only integer} -} - -\Syntax { -\Tex {\pdflastximagecolordepth} \Whatever{read||only integer} -} - -\Syntax { -\Tex {\pdflastximagepages} \Whatever{read||only integer} -} - -\Syntax { -\Tex {\pdflastannot} \Whatever{read||only integer} -} - -\Syntax { -\Tex {\pdflastlink} \Whatever{read||only integer} -} - -\Syntax { -\Tex {\pdflastxpos} \Whatever{read||only integer} -} - -\Syntax { -\Tex {\pdflastypos} \Whatever{read||only integer} -} - -\Syntax { -\Tex {\pdflastdemerits} \Whatever{read||only integer} -} - -\Syntax { -\Tex {\pdfelapsedtime} \Whatever{read||only integer} -} - -\Syntax { -\Tex {\pdfrandomseed} \Whatever{read||only integer} -} - -\Syntax { -\Tex {\pdfretval} \Whatever{read||only integer} -} - -\Syntax { -\Tex {\pdfshellescape} \Whatever{read||only integer} -} - -% No longer available -%\Syntax { -%\Tex {\pdflastvbreakpenalty} \Whatever{read||only integer} -%} - -\stoppacked - -%%S NL -%%S general commands: - -\subsubject{General commands} - -\startpacked - -\Syntax { -\Tex {\pdfobj} \Something{object type spec} \Whatever{h, v, m} -} - -\Syntax { -\Tex {\pdfrefobj} \Something{object number} \Whatever{h, v, m} -} - -\Syntax { -\Tex {\pdfxform} \Optional{\Something{xform attr spec}} \Something{box number} \Whatever{h, v, m} -} - -\Syntax { -\Tex {\pdfrefxform} \Something{object number} \Whatever{h, v, m} -} - -\Syntax { -\Tex {\pdfximage} \Optional{\Something{image attr spec}} % - \Something{general text} \Whatever{h, v, m} -} - -\Syntax { -\Tex {\pdfrefximage} \Something{object number} \Whatever{h, v, m} -} - -\Syntax { -\Tex {\pdfannot} \Something{annot type spec} \Whatever{h, v, m} -} - -\Syntax { -\Tex {\pdfstartlink} % - \Optional{\Something{rule spec}} % - \Optional{\Something{attr spec}} \Something{action spec} \Whatever{h, m} -} - -\Syntax { -\Tex {\pdfendlink} \Whatever{h, m} -} - -\Syntax { -\Tex {\pdfoutline} \Something{outline spec} \Whatever{h, v, m} -} - -\Syntax { -\Tex {\pdfdest} \Something{dest spec} \Whatever{h, v, m} -} - -\Syntax { -\Tex {\pdfthread} \Something{thread spec} \Whatever{h, v, m} -} - -\Syntax { -\Tex {\pdfstartthread} \Something{thread spec} \Whatever{v, m} -} - -\Syntax { -\Tex {\pdfendthread} \Whatever{v, m} -} - -\Syntax { -\Tex {\pdfsavepos} \Whatever{h, v, m} -} - -\Syntax { -\Tex {\pdfinfo} \Something{general text} -} - -\Syntax { -\Tex {\pdfcatalog} \Something{general text} % - \Optional{\Something{open-action spec}} -} - -\Syntax { -\Tex {\pdfnames} \Something{general text} -} - -\Syntax { -\Tex {\pdfmapfile} \Something{map spec} -} - -\Syntax { -\Tex {\pdfmapline} \Something{map spec} -} - -\Syntax { -\Tex {\pdffontattr} \Something{font} \Something{general text} -} - -\Syntax { -\Tex {\pdftrailer} \Something{general text} -} - -\Syntax { -\Tex {\pdffontexpand} \Something{font} \Something{expand spec} -} - -\Syntax { -\Tex {\letterspacefont} \Something{control sequence} \Something{font} \Something{integer} -} - -\Syntax { -\Tex {\pdfcopyfont} \Something{control sequence} \Something{font} -} - -\Syntax { -\Tex {\pdfglyphtounicode} \Something{general text} \Something{general text} -} - -\Syntax { -\Tex {\vadjust} \Optional{\Something{pre spec}} \Something{filler} \Lbrace \Something{vertical mode material} \Rbrace \Whatever{h, m} -} - -\Syntax { -\Tex {\quitvmode} -} - -\Syntax { -\Tex {\pdfliteral} \Optional{\Something {pdfliteral spec}} \Something{general text} \Whatever{h, v, m} -} - -\Syntax { -\Tex {\special} \Something{pdfspecial spec} -} - -\Syntax { -\Tex {\pdfresettimer} -} - -\Syntax { -\Tex {\pdfsetrandomseed} \Something{number} -} - -\Syntax { -\Tex {\pdfnoligatures} \Something{font} -} - -\Syntax { -\Tex {\pdfprimitive} \Something{control sequence} -} - -\Syntax { -\Tex {\pdfcolorstack} \Something{stack number} \Something{stack action} \Something{general text} -} - -\Syntax { -\Tex {\pdfsetmatrix} -} - -\Syntax { -\Tex {\pdfsave} -} - -\Syntax { -\Tex {\pdfrestore} -} -\stoppacked +% Generated list of primitives (see Makefile). +\input pdftex-syntax.tex \subsubject{General definitions and syntax rules} \startpacked %%S NL -%%S syntax rules: +%%S Syntax rules: -\Syntax { +\Syntax{ \Something{general text} \Means % \Lbrace \Something{balanced text} \Rbrace } -\Syntax { +\Syntax{ \Something{attr spec} \Means % - \Literal {attr} \Something{general text} + \Literal{attr} \Something{general text} } -\Syntax { +\Syntax{ \Something{resources spec} \Means % - \Literal {resources} \Something{general text} + \Literal{resources} \Something{general text} } -\Syntax { +\Syntax{ \Something{rule spec} \Means % - (\Literal {width} \Or \Literal {height} \Or \Literal {depth}) % - \Something{dimension} \Optional{\Something{rule spec}} + (\Literal{width} \Or \Literal{height} \Or \Literal{depth}) % + \Something{dimen} \Optional{\Something{rule spec}} } -%\Syntax {\Something{object type spec} \Means -% \Optional{\Literal {stream} +%\Syntax{\Something{object type spec} \Means +% \Optional{\Literal{stream} % \Optional{\Something{attr spec}}} \Something{object contents}} -\Syntax { +\Syntax{ \Something{object type spec} \Means % \Literal{reserveobjnum} \Or \Next % @@ -2485,7 +1859,7 @@ new Didot (1\,nd~=~0.375\,mm) and the new Cicero (1\,nc~=~12\,nd) \Something{object contents} } -\Syntax { +\Syntax{ \Something{annot type spec} \Means % \Literal{reserveobjnum} \Or \Next % @@ -2494,18 +1868,18 @@ new Didot (1\,nd~=~0.375\,mm) and the new Cicero (1\,nc~=~12\,nd) \Something{general text} } -\Syntax { +\Syntax{ \Something{object contents} \Means % \Something{file spec} \Or \Something{general text} } -\Syntax { +\Syntax{ \Something{xform attr spec} \Means % \Optional{\Something{attr spec}} \Optional{\Something{resources spec}} } -\Syntax { +\Syntax{ \Something{image attr spec} \Means % \Optional{\Something{rule spec}} % \Optional{\Something{attr spec}} % @@ -2514,7 +1888,7 @@ new Didot (1\,nd~=~0.375\,mm) and the new Cicero (1\,nc~=~12\,nd) \Optional{\Something{pdf box spec}} } -\Syntax { +\Syntax{ \Something{outline spec} \Means % \Optional{\Something{attr spec}} % \Something{action spec} % @@ -2522,20 +1896,20 @@ new Didot (1\,nd~=~0.375\,mm) and the new Cicero (1\,nc~=~12\,nd) \Something{general text} } -\Syntax { +\Syntax{ \Something{action spec} \Means % - \Literal {user} \Something{user-action spec} - \Or \Literal {goto} \Something{goto-action spec} - \Or \Next \Literal {thread} \Something{thread-action spec} + \Literal{user} \Something{user-action spec} + \Or \Literal{goto} \Something{goto-action spec} + \Or \Next \Literal{thread} \Something{thread-action spec} } -\Syntax { +\Syntax{ \Something{user-action spec} \Means % \Something{general text} } %HE Check: -\Syntax { +\Syntax{ \Something{goto-action spec} \Means % \Something{numid} \Or \Next \Optional{\Something{file spec}} \Something{nameid} @@ -2544,20 +1918,20 @@ new Didot (1\,nd~=~0.375\,mm) and the new Cicero (1\,nc~=~12\,nd) \Or \Next \Something{file spec} \Optional{\Something{page spec}} \Something{general text} \Something{newwindow spec} } -\Syntax { +\Syntax{ \Something{thread-action spec} \Means % \Optional{\Something{file spec}} \Something{numid} \Or \Optional{\Something{file spec}} \Something{nameid} } -\Syntax { +\Syntax{ \Something{open-action spec} \Means % - \Literal {openaction} \Something{action spec} + \Literal{openaction} \Something{action spec} } -\Syntax { +\Syntax{ \Something{colorspace spec} \Means % - \Literal {colorspace} \Something{number} + \Literal{colorspace} \Something{number} } \Syntax{ @@ -2580,62 +1954,62 @@ new Didot (1\,nd~=~0.375\,mm) and the new Cicero (1\,nc~=~12\,nd) \Literal{+} \Or \Literal{=} \Or \Literal{-} } -\Syntax { +\Syntax{ \Something{numid} \Means % - \Literal {num} \Something{number} + \Literal{num} \Something{number} } -\Syntax { +\Syntax{ \Something{nameid} \Means % - \Literal {name} \Something{general text} + \Literal{name} \Something{general text} } -\Syntax { +\Syntax{ \Something{newwindow spec} \Means % - \Literal {newwindow} \Or \Literal {nonewwindow} + \Literal{newwindow} \Or \Literal{nonewwindow} } -\Syntax { +\Syntax{ \Something{dest spec} \Means % \Something{numid} \Something{dest type} \Or \Something{nameid} \Something{dest type} } -\Syntax { +\Syntax{ \Something{dest type} \Means % - \Literal {xyz} \Optional{\Literal {zoom} \Something{number}} - \Or \Literal {fitr} \Something{rule spec} - \Or \Next \Literal {fitbh} - \Or \Literal {fitbv} - \Or \Literal {fitb} - \Or \Literal {fith} - \Or \Literal {fitv} - \Or \Literal {fit} + \Literal{xyz} \Optional{\Literal{zoom} \Something{number}} + \Or \Literal{fitr} \Something{rule spec} + \Or \Next \Literal{fitbh} + \Or \Literal{fitbv} + \Or \Literal{fitb} + \Or \Literal{fith} + \Or \Literal{fitv} + \Or \Literal{fit} } -\Syntax { +\Syntax{ \Something{thread spec} \Means % \Optional{\Something{rule spec}} % \Optional{\Something{attr spec}} % \Something{id spec} } -\Syntax { +\Syntax{ \Something{id spec} \Means % \Something{numid} \Or \Something{nameid} } -\Syntax { +\Syntax{ \Something{file spec} \Means % - \Literal {file} \Something{general text} + \Literal{file} \Something{general text} } -\Syntax { +\Syntax{ \Something{page spec} \Means % - \Literal {page} \Something{number} + \Literal{page} \Something{number} } -\Syntax { +\Syntax{ \Something{expand spec} \Means % \Something{stretch} % \Something{shrink} % @@ -2643,74 +2017,74 @@ new Didot (1\,nd~=~0.375\,mm) and the new Cicero (1\,nc~=~12\,nd) \Optional{\Literal{autoexpand}} } -\Syntax { +\Syntax{ \Something{stretch} \Means % \Something{number} } -\Syntax { +\Syntax{ \Something{shrink} \Means % \Something{number} } -\Syntax { +\Syntax{ \Something{step} \Means % \Something{number} } -\Syntax { +\Syntax{ \Something{pre spec} \Means % \Literal{pre} } -\Syntax { +\Syntax{ \Something{pdfliteral spec} \Means % \Literal{direct} \Or \Literal{page} } -\Syntax { +\Syntax{ \Something{pdfspecial spec} \Means % - \Lbrace \Optional{\Something{pdfspecial id} \Optional{\Something{pdfspecial modifier}}} % + \Lbrace \Optional{\Something{pdfspecial id} % + \Optional{\Something{pdfspecial modifier}}} % \Something{balanced text} \Rbrace } -\Syntax { +\Syntax{ \Something{pdfspecial id} \Means % \Literal{pdf:} \Or \Literal{PDF:} } -\Syntax { +\Syntax{ \Something{pdfspecial modifier} \Means % \Literal{direct:} } -\Syntax { +\Syntax{ \Something{stack action} \Means % \Literal{set} \Or \Literal{push} \Or \Literal{pop} \Or \Literal{current} } \stoppacked -A \Something {general text} is expanded immediately, like \type{\special} +A \Something{general text} is expanded immediately, like \type{\special} in traditional \TEX, unless explicitly mentioned otherwise. Some of the object and image related primitives can be prefixed by -\type {\immediate}. More about that in the next sections. +\type{\immediate}. More about that in the next sections. %*********************************************************************** \section[primitives]{\PDFTEX\ primitives} -Here follows a short description of the primitives added by \PDFTEX\ -to the original \TEX\ engine (other extensions by \MLTEX\ and \ENCTEX\ -are not listed). One way to learn more about how to use these new -primitives is to have a look at the file \filename {samplepdf.tex} in the -\PDFTEX\ distribution. +Here follows a description of the primitives added by \PDFTEX\ to the +original \TEX\ engine (other extensions by \ETEX, \MLTEX\ and \ENCTEX\ +are not listed). Many of these primitives are described further in the +\filename {samplepdf.tex} file in the \PDFTEX\ distribution. -Note that if the output is \DVI\ then the \PDFTEX\ specific dimension -parameters are not used at all. However some \PDFTEX\ integer parameters -can affect the \DVI\ as well as \PDF\ output (currently \type{\pdfoutput} -and \type{\pdfadjustspacing}). +If the output is \DVI, then the \PDFTEX-specific dimension parameters +are not used at all. However, some \PDFTEX\ integer parameters can +affect \DVI\ as well as \PDF\ output (specifically, \type{\pdfoutput} and +\type{\pdfadjustspacing}). %A warning to macro writers: The \PDFTEX-team reserves the namespaces %\type{\pdf*} and \type{\ptex*} for use by \PDFTEX; if you define macros @@ -2732,8 +2106,7 @@ situation. \subsection{Document setup} -\pdftexprimitive {\Syntax {\Tex {\pdfoutput} \Whatever{integer}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfoutput} \Whatever{integer}}} \bookmark{\tex{pdfoutput}} This parameter specifies whether the output format should be \DVI\ or @@ -2761,8 +2134,7 @@ 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 {\pdfminorversion} \Whatever{integer}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfminorversion} \Whatever{integer}}} \bookmark{\tex{pdfminorversion}} This primitive sets the \PDF\ version of the generated file and the @@ -2783,8 +2155,7 @@ This was originally a shortened synonym of the \introduced{1.30.0} -\pdftexprimitive {\Syntax {\Tex {\pdfcompresslevel} \Whatever{integer}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfcompresslevel} \Whatever{integer}}} \bookmark{\tex{pdfcompresslevel}} This integer parameter specifies the level of {\em stream} compression @@ -2796,8 +2167,7 @@ range will be adjusted to the nearest meaningful value. This parameter is read each time \PDFTEX\ starts a stream. Setting \type{\pdfcompresslevel=0} is useful for \PDF\ stream debugging. -\pdftexprimitive {\Syntax {\Tex {\pdfobjcompresslevel} \Whatever{integer}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfobjcompresslevel} \Whatever{integer}}} \bookmark{\tex{pdfobjcompresslevel}} This integer parameter controls the compression of {\em non-stream} @@ -2812,7 +2182,7 @@ and links are used. \introduced{1.40.0} The writing of compressed objects is enabled by setting -\type{\pdfobjcompresslevel} to a value between 1 and~3; it's +\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 @@ -2842,8 +2212,7 @@ 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. -\pdftexprimitive {\Syntax {\Tex {\pdfdecimaldigits} \Whatever{integer}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfdecimaldigits} \Whatever{integer}}} \bookmark{\tex{pdfdecimaldigits}} This integer parameter specifies the numeric accuracy of real @@ -2861,8 +2230,7 @@ the \PDF\ output. When including huge \METAPOST\ images using \filename {supp-pdf.tex}, one can limit the accuracy to two digits by typing: \type{\twodigitMPoutput}. -\pdftexprimitive {\Syntax {\Tex {\pdfhorigin} \Whatever{dimension}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfhorigin} \Whatever{dimen}}} \bookmark{\tex{pdfhorigin}} This parameter can be used to set the horizontal offset the output box @@ -2880,8 +2248,7 @@ command. Or, you can preadjust the \type{\pdfhorigin} value before typing \type{\mag}, so that its value after the \type{\mag} command ends up at 1~true inch again. -\pdftexprimitive {\Syntax {\Tex {\pdfvorigin} \Whatever{dimension}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfvorigin} \Whatever{dimen}}} \bookmark{\tex{pdfvorigin}} This parameter is the vertical companion of \type{\pdfhorigin}, and the @@ -2890,8 +2257,7 @@ in mind that the \TEX\ coordinate system starts in the top left corner (downward), while \PDF\ coordinates start at the bottom left corner (upward). -\pdftexprimitive {\Syntax {\Tex {\pdfpagewidth} \Whatever{dimension}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfpagewidth} \Whatever{dimen}}} \bookmark{\tex{pdfpagewidth}} This dimension parameter specifies the page width of the \PDF\ output @@ -2905,8 +2271,7 @@ $w_{\hbox{\txx box being shipped out}} + 2 \times (\hbox{horigin} + \hbox{\type{\hoffset}})$. When part of the page falls off the paper or screen, you can be rather sure that this parameter is set wrong. -\pdftexprimitive {\Syntax {\Tex {\pdfpageheight} \Whatever{dimension}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfpageheight} \Whatever{dimen}}} \bookmark{\tex{pdfpageheight}} Similar to the previous item, this dimension parameter specifies the @@ -2917,54 +2282,100 @@ the wished true page height. %*********************************************************************** -\subsection{The document info and catalog} - -\pdftexprimitive {\Syntax {\Tex {\pdfinfo} \Something{general text}}} +\subsection[sec.docinfocatalog]{The document info and catalog} +\pdftexprimitive{\Syntax{\Tex{\pdfinfo} \Something{general text}}} \bookmark{\tex{pdfinfo}} -This primitive allows the user to add information to the document info -section; if this information is provided, it can be extracted, \eg\ by the -pdfinfo program, or by the Adobe Reader (version 7.0: menu option {\em File -$\longrightarrow$ Document Properties}). The \Something{general text} is -a collection of key||value||pairs. The key names are preceded by a \type{/}, -and the values, being strings, are given between parentheses. All keys -are optional. Possible keys are \type{/Author}, \type{/CreationDate} -(defaults to current date including time zone info), \type{/ModDate}, -\type{/Creator} (defaults to \type {TeX}), \type{/Producer} (defaults -to \hbox{\tt pdfTeX-\currentpdftex}), \type{/Title}, \type{/Subject}, -and \type{/Keywords}. +This primitive allows the user to specify information for the document +info dictionary; if this information is provided, it can be extracted, +\eg\ by the \type{pdfinfo} program. The \Something{general text} is a +collection of key||value||pairs. The key names are preceded by a +\type{/}, and the values, being strings, are given between +parentheses. All keys, and the primitive itself, are optional. Possible +keys are:\crlf +\type{/Title},\crlf +\type{/Author},\crlf +\type{/Subject},\crlf +\type{/Keywords},\crlf +\type{/Producer} (defaults to \hbox{\tt pdfTeX-\currentpdftex}),\crlf +\type{/Creator} (defaults to \type{TeX}),\crlf +\type{/CreationDate} (defaults to current date and time, with time zone),\crlf +\type{/ModDate} (same default),\crlf +\type{/Trapped} (defaults to \type{/False},\crlf +\type{/PTEX.Fullbanner} (defaults to the \type{\pdftexbanner} string, q.v.). \type{/CreationDate} and \type{/ModDate} are expressed in the form -\type{D:YYYYMMDDhhmmssTZ..}, where \type{YYYY} is the year, \type{MM} is +\type{D:YYYYMMDDhhmmssTZ}, where \type{YYYY} is the year, \type{MM} is the month, \type{DD} is the day, hh is the hour, \type{mm} is the -minutes, \type{ss} is the seconds, and \type{TZ..} is an optional string -denoting the time zone. An example of this format is shown below. For -details please refer to the \PDFReference. +minutes, \type{ss} is the seconds, and \type{TZ} is an optional string +denoting the time zone. For example, this is the Unix epoch, the +beginning of 1970-01-01 UTC, in this format: \type{19700101000000Z} -Multiple appearances of \type{\pdfinfo} will be concatenated. In -general, if a key is given more than once, one may expect that the first -appearance will be used. Be aware however, that this behaviour is -viewer dependent. Except expansion, \PDFTEX\ does not perform any -further operations on \Something{general text} provided by the user. +Multiple appearances of \type{\pdfinfo} are concatenated. Usually if a +key is given more than once, the first appearance will be used, but this +is viewer||dependent. Except for standard \TeX\ expansion, \PDFTEX\ does +not perform any further operations on \Something{general text} provided +by the user. -An example of the use of \type{\pdfinfo} is: +Here is an example of using \type{\pdfinfo} to include the +information not supplied by \PDFTEX: \startesctyping \pdfinfo { /Title (example.pdf) - /Creator (TeX) - /Producer (pdfTeX @currentpdftex) /Author (Tom and Jerry) - /CreationDate (D:20061226154343+01'00') - /ModDate (D:20061226155343+01'00') /Subject (Example) - /Keywords (mouse, cat) } + /Keywords (mouse, cat) +} \stopesctyping -\pdftexprimitive {\Syntax {\Tex {\pdfcatalog} \Something{general text} -\Optional{\Something{open-action spec}}}} +For more details on all this, see the \PDFReference. + +\pdftexprimitive{\Syntax{\Tex{\pdfinfoomitdate} \Whatever{integer}}} +\bookmark{\tex{pdfinfoomitdate}} +If nonzero, omit the \type{/CreationDate} and \type{/ModDate} keys from +the document info dictionary described above. This can be useful in +making reproducible \PDF{}s. \introduced{1.40.17} + +\pdftexprimitive{\Syntax{\Tex{\pdfsuppressptexinfo} \Whatever{integer}}} +\bookmark{\tex{pdfsuppressptexinfo}} + +Treated as a bitmask, specifying which \type{PTEX.} keys to omit from +the output: + +\startbuffer +\starttabulate[|l|l|] +\HL +\NC \bf value \NC \bf suppresses \NC\NR +\HL +\NC \tt 1 \NC \type{PTEX.Fullbanner} \NC\NR +\NC \tt 2 \NC \type{PTEX.FileName} \NC\NR +\NC \tt 4 \NC \type{PTEX.PageNumber} \NC\NR +\NC \tt 8 \NC \type{PTEX.InfoDict} \NC\NR +\HL +\stoptabulate +\stopbuffer + +\placetable + [here][pagemode] + {\type{\pdfsuppressptexinfo} bit meanings.} + {\getbuffer} + +Thus, the value \type{-1}, or the sum of all defined bits, will suppress +everything. + +\type{PTEX.Fullbanner} is included by default in the general document +info dictionary, as mentioned under \type{\pdfinfo} above. The other +\type{PTEX.*} keys are included when a \PDF\ is included in the document +(and not otherwise), as described in \in{section}[sec.addpdfkeys] + +This conditional suppression can be useful in making reproducible +\PDF{}s. \introduced{1.40.17} + +\pdftexprimitive{\Syntax{\Tex{\pdfcatalog} \Something{general text} + \Optional{\Something{open-action spec}}}} \bookmark{\tex{pdfcatalog}} Similar to the document info section is the document catalog, where keys @@ -2999,8 +2410,7 @@ document and is specified in the same way as internal links, see \in {section} [linking]. Instead of using this method, one can also write the open action directly into the catalog. -\pdftexprimitive {\Syntax {\Tex {\pdfnames} \Something{general text}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfnames} \Something{general text}}} \bookmark{\tex{pdfnames}} This primitive inserts the \Something{general text} to the \type @@ -3008,19 +2418,26 @@ This primitive inserts the \Something{general text} to the \type conform to the specifications as laid down in the \PDFReference, otherwise the document can be invalid. -\pdftexprimitive {\Syntax {\Tex {\pdftrailer} \Something{general text}}} - +\pdftexprimitive{\Syntax{\Tex{\pdftrailer} \Something{general text}}} \bookmark{\tex{pdftrailer}} This command puts its argument text verbatim into the file trailer dictionary. \introduced{1.11a} +\pdftexprimitive{\Syntax{\Tex{\pdftrailerid} \Something{general text}}} +\bookmark{\tex{pdftrailerid}} + +Use the \Something{general text} to seed the \type{/ID} value in the +trailer, instead of the default combination of the absolute input file +name and starting time. If the argument is empty, the \type{/ID} is +omitted entirely. This can be useful in making reproducible +\PDF{}s. \introduced{1.40.17} + %*********************************************************************** \subsection{Fonts} -\pdftexprimitive {\Syntax {\Tex {\pdfpkresolution} \Whatever{integer}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfpkresolution} \Whatever{integer}}} \bookmark{\tex{pdfpkresolution}} This integer parameter specifies the default resolution of embedded \PK\ @@ -3028,13 +2445,12 @@ fonts and is read when \PDFTEX\ embeds a \PK\ font during finishing the \PDF\ output. As bitmap fonts are still rendered poorly by some \PDF\ viewers, it is best to use Type~1 fonts when available. -\pdftexprimitive {\Syntax {\Tex {\pdffontexpand} -\Something{font} \Something{stretch} \Something{shrink} -\Something{step} \Optional{\Literal{autoexpand}}}} - +\pdftexprimitive{\Syntax{\Tex{\pdffontexpand} + \Something{font} \Something{stretch} \Something{shrink} + \Something{step} \Optional{\Literal{autoexpand}}}} \bookmark{\tex{pdffontexpand}} -This extension to \TEX's font definitions controls a \PDFTEX\ automatism +This extension to \TEX's font definitions controls a major \PDFTEX\ feature called {\em font expansion}. We describe this by an example: \starttyping @@ -3059,7 +2475,7 @@ gaps is acceptable. This glyph stretching and shrinking is called There are two different modes for font expansion: -First, if the \type{autoexpand} option is there --- which is the +First, if the \type{autoexpand} option is given --- which is the recommended mode --- only a single map entry is needed for all expanded font versions, using the name of the unexpanded \TFM\ file ({\em tfmname}). No expanded {\em tfmname} versions need to mentioned (they are @@ -3077,7 +2493,7 @@ expansion gets more tedious, as there must be map entries for \TFM\ files in all required expansion values. The expanded {\em tfmname} variants are constructed by adding the font expansion value to the {\em tfmname} of the base font, \eg\ there must be a map entry with {\em tfmname} -\type{sometfm+10} for 1\,\% stretch or \type {sometfm-15} for 1.5\,\% +\type{sometfm+10} for 1\,\% stretch or \type{sometfm-15} for 1.5\,\% shrink. This also means, that for each expanded font variant a \TFM\ file with properly expanded metrics must exist. Having several map entries for the various expansion values of a font requires to provide @@ -3107,8 +2523,7 @@ vertical part of the glyph becomes thicker, and looks incompatible with an unscaled original. With a Multiple Master situation, one can stretch while keeping this thickness compatible. -\pdftexprimitive {\Syntax {\Tex {\pdfadjustspacing} \Whatever{integer}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfadjustspacing} \Whatever{integer}}} \bookmark{\tex{pdfadjustspacing}} This primitive provides a switch for enabling font expansion. By default, @@ -3132,11 +2547,11 @@ related to the \Something{stretch} and \Something{shrink} settings for the \type{\pdffontexpand} primitive, unless this is given with the \type{autoexpand} option. -\pdftexprimitive {\Syntax {\Tex {\efcode} \Something{font} \Something{8-bit number} \Whatever{integer}}} - +\pdftexprimitive{\Syntax{\Tex{\efcode} \Something{font} + \Something{8-bit number} \Whatever{integer}}} \bookmark{\tex{efcode}} -We didn't yet tell the whole story. One can imagine that some glyphs are +We haven't yet told the whole story. One can imagine that some glyphs are visually more sensitive to stretching or shrinking than others. Then the \type{\efcode} primitive can be used to influence the expandability of individual glyphs within a given font, as a factor to the expansion @@ -3157,8 +2572,7 @@ expansion is still bound to the steps as defined by \type{\pdffontexpand} primitive, otherwise one would end up with more possible font inclusions than would be comfortable. -\pdftexprimitive {\Syntax {\Tex {\pdfprotrudechars} \Whatever{integer}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfprotrudechars} \Whatever{integer}}} \bookmark{\tex{pdfprotrudechars}} Yet another way of optimizing paragraph breaking is to let certain @@ -3175,13 +2589,13 @@ If you want to protrude some item other than a character (\eg\ a \type{\hbox}), you can do so by padding the item with an invisible zero||width character, for which protrusion is activated. -\pdftexprimitive {\Syntax {\Tex {\rpcode} \Something{font} \Something{8-bit number} \Whatever{integer}}} - +\pdftexprimitive{\Syntax{\Tex{\rpcode} \Something{font} + \Something{8-bit number} \Whatever{integer}}} \bookmark{\tex{rpcode}} The amount that a character from a given font may shift into the right -margin (`character protrusion') is set by the primitive \type {\rpcode}. -The protrusion distance is the integer value given to \type {\rpcode}, +margin (`character protrusion') is set by the primitive \type{\rpcode}. +The protrusion distance is the integer value given to \type{\rpcode}, multiplied with 0.001\,em from the current font. The given integer value is clipped to the range $-1000..1000$, corresponding to a usable protrusion range of $-$1\,em..1\,em. Example: @@ -3199,17 +2613,16 @@ Remark: old versions of \PDFTEX\ use the character width as measure. This was changed to a proportion of the em-width after \THANH\ finished his master's thesis. -\pdftexprimitive {\Syntax {\Tex {\lpcode} \Something{font} \Something{8-bit number} -\Whatever{integer}}} - +\pdftexprimitive{\Syntax{\Tex{\lpcode} \Something{font} + \Something{8-bit number} \Whatever{integer}}} \bookmark{\tex{lpcode}} This is similar to \type{\rpcode}, but affects the amount by which characters may protrude into the left margin. Also here the given integer value is clipped to the range $-1000..1000$. -\pdftexprimitive {\Syntax {\Tex {\leftmarginkern} \Something{box number} \Whatever{expandable}}} - +\pdftexprimitive{\Syntax{\Tex{\leftmarginkern} \Something{box number} + \Whatever{expandable}}} \bookmark{\tex{leftmarginkern}} The \Tex{\leftmarginkern} \Something{box number} primitive expands to the @@ -3243,8 +2656,8 @@ proper margin kerning (which is then done by ordinary kerns). \hbox to\hsize{\kern\dimen0\unhcopy\testline\kern\dimen1} \stoptyping -\pdftexprimitive {\Syntax {\Tex {\rightmarginkern} \Something{box number} \Whatever{expandable}}} - +\pdftexprimitive{\Syntax{\Tex{\rightmarginkern} \Something{box number} + \Whatever{expandable}}} \bookmark{\tex{rightmarginkern}} The \Tex{\rightmarginkern} \Something{box number} primitive expands to @@ -3253,8 +2666,8 @@ stored in \Tex{\box} \Something{box number}. See \type{\leftmarginkern} for more details. \introduced{1.30.0} -\pdftexprimitive {\Syntax {\Tex {\letterspacefont} \Something{control sequence} \Something{font} \Something{integer}}} - +\pdftexprimitive{\Syntax{\Tex{\letterspacefont} \Something{control sequence} + \Something{font} \Something{integer}}} \bookmark{\tex{letterspacefont}} This primitive creates an instance of \Something{font} with the widths @@ -3274,25 +2687,24 @@ Negative values are allowed for \Something{integer}. Letter spacing works natively in \PDF\ mode only, unless special fonts are devised (in our example, a \type{myfont+100ls} font), as with font expansion. -\pdftexprimitive {\Syntax {\Tex {\pdfcopyfont} \Something{control sequence} \Something{font}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfcopyfont} \Something{control sequence} + \Something{font}}} \bookmark{\tex{pdfcopyfont}} This primitive defines \Something{control sequence} as a synonym for \Something{font}. -\pdftexprimitive {\Syntax {\Tex {\pdffontattr} \Something{font} \Something{general text}}} - +\pdftexprimitive{\Syntax{\Tex{\pdffontattr} \Something{font} + \Something{general text}}} \bookmark{\tex{pdffontattr}} -This primitive inserts the \Something{general text} to the \type {/Font} +This primitive inserts the \Something{general text} to the \type{/Font} dictionary. The text must conform to the specifications as laid down in the \PDFReference, otherwise the document can be invalid. For examples, see the \type{cmap} and \type{CJK} packages. -\pdftexprimitive {\Syntax {\Tex {\pdffontname} \Something{font} \Whatever -{expandable}}} - +\pdftexprimitive{\Syntax{\Tex{\pdffontname} \Something{font} + \Whatever{expandable}}} \bookmark{\tex{pdffontname}} In \PDF\ files produced by \PDFTEX\ one can recognize a font resource @@ -3306,9 +2718,8 @@ In the current implementation, when \type{\pdfuniqueresname} (see below) is set to a positive value, the \type{\pdffontname} still returns only the number from the font resource name, but not the appended random string. -\pdftexprimitive {\Syntax {\Tex {\pdffontobjnum} \Something{font} \Whatever -{expandable}}} - +\pdftexprimitive{\Syntax{\Tex{\pdffontobjnum} \Something{font} + \Whatever{expandable}}} \bookmark{\tex{pdffontobjnum}} This command is similar to \type{\pdffontname}, but it returns the @@ -3317,21 +2728,19 @@ the font resource name. \Eg, if the font dictionary (\type{/Type /Font}) in \PDF\ object~3 corresponds to some \TEX\ font \type{\foo}, the \type{\pdffontobjnum\foo} gives the number~\type{3}. -Use of \type{\pdffontname} and \type {\pdffontobjnum} allows users full +Use of \type{\pdffontname} and \type{\pdffontobjnum} allows users full access to all the font resources used in the document. -\pdftexprimitive {\Syntax {\Tex {\pdffontsize} \Something{font} \Whatever -{expandable}}} - +\pdftexprimitive{\Syntax{\Tex{\pdffontsize} \Something{font} + \Whatever{expandable}}} \bookmark{\tex{pdffontsize}} This primitive expands to the font size of the given font, with unit \type{pt}. \Eg, when using the plain \TeX\ macro package, the call \type{\pdffontsize\tenrm} expands to \type{10.0pt}. -\pdftexprimitive {\Syntax {\Tex {\pdfincludechars} \Something{font} -\Something{general text}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfincludechars} \Something{font} + \Something{general text} \Whatever{expandable}}} \bookmark{\tex{pdfincludechars}} This command causes \PDFTEX\ to treat the characters in \Something{general @@ -3339,16 +2748,14 @@ 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 {\pdfuniqueresname} \Whatever{integer}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfuniqueresname} \Whatever{integer}}} \bookmark{\tex{pdfuniqueresname}} When this primitive is assigned a positive number, \PDF\ resource names will be made reasonably unique by appending a random string consisting of six \ASCII\ characters. -\pdftexprimitive {\Syntax {\Tex {\pdfmapfile} \Something{map spec}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfmapfile} \Something{map spec}}} \bookmark{\tex{pdfmapfile}} This primitive is used for reading a font map file consisting of @@ -3439,8 +2846,7 @@ This would always read the file \type{myspecial.map} after the default \type{pdftex.map} file. -\pdftexprimitive {\Syntax {\Tex {\pdfmapline} \Something{map spec}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfmapline} \Something{map spec}}} \bookmark{\tex{pdfmapline}} Similar to \type{\pdfmapfile}, but here you can give a single @@ -3461,9 +2867,7 @@ of the default map file, if it comes early enough in the \TeX\ input. \introduced{1.20a} -\pdftexprimitive {\Syntax {\Tex {\pdfsuppresswarningdupmap} -\Whatever{integer}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfsuppresswarningdupmap} \Whatever{integer}}} \bookmark{\tex{pdfsuppresswarningdupmap}} Ordinarily, \PDFTEX\ gives a warning when a duplicate map entry for a @@ -3474,8 +2878,7 @@ be installed on the system. Then seeing the warnings on every run is just noise, and can be suppressed by setting this parameter to a positive number. \introduced{1.40.13} -\pdftexprimitive {\Syntax {\Tex {\pdftracingfonts} \Whatever{integer}}} - +\pdftexprimitive{\Syntax{\Tex{\pdftracingfonts} \Whatever{integer}}} \bookmark{\tex{pdftracingfonts}} This integer parameter specifies the level of verbosity for info about @@ -3498,8 +2901,7 @@ together with the font size, \eg: Setting \type{\pdftracingfonts} to a value other than~0 or~1 is not recommended, to allow future extensions. \introduced{1.30.0} -\pdftexprimitive {\Syntax {\Tex {\pdfmovechars} \Whatever{integer}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfmovechars} \Whatever{integer}}} \bookmark{\tex{pdfmovechars}} Since \PDFTEX\ version 1.30.0 the primitive \type{\pdfmovechars} is obsolete, @@ -3507,8 +2909,7 @@ and its use merely leads to a warning. (This primitive specified whether \PDFTEX\ should try to move characters in range 0..31 to higher slots; its sole purpose was to remedy certain bugs of early \PDF\ viewers.) -\pdftexprimitive {\Syntax {\Tex {\pdfpkmode} \Whatever{tokens}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfpkmode} \Whatever{tokens}}} \bookmark{\tex{pdfpkmode}} The \type{\pdfpkmode} is a token register that sets the \METAFONT\ mode for @@ -3516,15 +2917,14 @@ pixel font generation. The contents of this register is dumped into the format, so one can (optionally) preset it \eg\ in \type{pdftexconfig.tex}. \introduced{1.30.0} -\pdftexprimitive {\Syntax {\Tex {\pdfnoligatures} \Something{font}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfnoligatures} \Something{font}}} \bookmark{\tex{pdfnoligatures}} This disables all ligatures in the loaded font \Something{font}. \introduced{1.30.0} -\pdftexprimitive {\Syntax {\Tex {\tagcode} \Something{font} \Something{character code} \Whatever{integer}}} - +\pdftexprimitive{\Syntax{\Tex{\tagcode} \Something{font} + \Something{character code} \Whatever{integer}}} \bookmark{\tex{tagcode}} This primitive accesses a character's \type{char_tag} info. It is meant @@ -3542,7 +2942,7 @@ Conversely, when queried, the primitive returns \type{0} if the tag's value is \type{no_tag}, \type{1} if \type{lig_tag} is set, \type{2} if \type{list_tag} is set or \type{4} (not~3) if \type{ext_tag} is set. -\pdftexprimitive {\Syntax {\Tex {\pdfgentounicode} \Whatever{integer}}} +\pdftexprimitive{\Syntax{\Tex{\pdfgentounicode} \Whatever{integer}}} By default, \PDFTEX\ does not include a \type{/ToUnicode} resource when including fonts in the output. Such a resource (also called a CMap @@ -3560,7 +2960,8 @@ follows: for each glyph in the font, look for its \type{ToUnicode} value in a global hash table. By default that global hash table is empty; entries are added to the table using the following command: -\pdftexprimitive {\Syntax {\Tex {\pdfglyphtounicode} \Something{general text} \Something{general text}}} +\pdftexprimitive{\Syntax{\Tex{\pdfglyphtounicode} \Something{general text} + \Something{general text}}} The first argument is the name of a glyph, the second is a string of Unicode numeric values denoting characters. For instance: @@ -3586,7 +2987,7 @@ glyph names. So, for practical purposes, one would probably want: effect. -\pdftexprimitive {\Syntax {\Tex {\pdfnobuiltintounicode} \Something{font}}} +\pdftexprimitive{\Syntax{\Tex{\pdfnobuiltintounicode} \Something{font}}} The primary purpose of this command is to prevent \PDFTEX\ from generating the \type{ToUnicode}/CMap resource for the given font when @@ -3604,8 +3005,8 @@ Minimal example: \introduced{1.40.11} -\pdftexprimitive {\Syntax {\Tex {\pdfinterwordspaceon}}} -\pdftexprimitive {\Syntax {\Tex {\pdfinterwordspaceoff}}} +\pdftexprimitive{\Syntax{\Tex{\pdfinterwordspaceon}}} +\pdftexprimitive{\Syntax{\Tex{\pdfinterwordspaceoff}}} These commands create corresponding whatsit nodes which turn on/off generation of faked interword spaces in the output. This allows for @@ -3634,7 +3035,7 @@ Back to text with no interword spaces. \stoptyping \introduced{1.40.15} -\pdftexprimitive {\Syntax {\Tex {\pdffakespace}}} +\pdftexprimitive{\Syntax{\Tex{\pdffakespace}}} Insert a faked interword space to the output, regardless of the value of \type{\pdfinterwordspaceon} and \type{\pdfinterwordspaceoff}. Example: @@ -3651,15 +3052,14 @@ Text with no interword \pdffakespace\pdffakespace spaces. Controlling spacing before and after characters was introduced in version 1.30, mostly to handle punctuation rules in different languages. -\pdftexprimitive{\Syntax {\Tex{\pdfadjustinterwordglue} \Whatever{integer}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfadjustinterwordglue} \Whatever{integer}}} \bookmark{\tex{pdfadjustinterwordglue}} If positive, adjustment of interword glue is enabled and controlled by the following three primitives. -\pdftexprimitive {\Syntax {\Tex {\knbscode} \Something{font} \Something{8-bit number} \Whatever{integer}}} - +\pdftexprimitive{\Syntax{\Tex{\knbscode} \Something{font} + \Something{8-bit number} \Whatever{integer}}} \bookmark{\tex{knbscode}} The amount of space, in thousandths of an em, added to the glue following @@ -3672,27 +3072,26 @@ increased by .2\,em. \knsbcode\font`\.=200 \stoptyping -\pdftexprimitive {\Syntax {\Tex {\stbscode} \Something{font} \Something{8-bit number} \Whatever{integer}}} - +\pdftexprimitive{\Syntax{\Tex{\stbscode} \Something{font} + \Something{8-bit number} \Whatever{integer}}} \bookmark{\tex{stbscode}} This works like \type{\knbscode}, but applies to the stretch component of the following glue. -\pdftexprimitive {\Syntax {\Tex {\shbscode} \Something{font} \Something{8-bit number} \Whatever{integer}}} - +\pdftexprimitive{\Syntax{\Tex{\shbscode} \Something{font} + \Something{8-bit number} \Whatever{integer}}} \bookmark{\tex{shbscode}} Like \type{\stbscode}, but for the shrink component. -\pdftexprimitive{\Syntax {\Tex{\pdfprependkern} \Whatever{integer}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfprependkern} \Whatever{integer}}} \bookmark{\tex{pdfprependkern}} If positive, automatic insertion of kerns before characters is enabled. -\pdftexprimitive {\Syntax {\Tex {\knbccode} \Something{font} \Something{8-bit number} \Whatever{integer}}} - +\pdftexprimitive{\Syntax{\Tex{\knbccode} \Something{font} + \Something{8-bit number} \Whatever{integer}}} \bookmark{\tex{knbccode}} The width of the kern, in thousandths of an em, inserted before a character. @@ -3705,25 +3104,24 @@ following code, a .15\,em-kern will be inserted before all question marks \knbccode\font`\?=150 \stoptyping -\pdftexprimitive{\Syntax {\Tex{\pdfappendkern} \Whatever{integer}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfappendkern} \Whatever{integer}}} \bookmark{\tex{pdfappendkern}} Same as \type{\pdfprependkern}, but for kerns inserted after characters. -\pdftexprimitive {\Syntax {\Tex {\knaccode} \Something{font} \Something{8-bit number} \Whatever{integer}}} - +\pdftexprimitive{\Syntax{\Tex{\knaccode} \Something{font} + \Something{8-bit number} \Whatever{integer}}} \bookmark{\tex{knaccode}} -Same as \type{\knbccode}, except the kern is inserted after the character. -Such a kern is required for instance after a left guillemet in French punctuation. +Same as \type{\knbccode}, except the kern is inserted after the +character. Such a kern is required for instance after a left guillemet +in French punctuation. %*********************************************************************** \subsection{Vertical adjustments} -\pdftexprimitive {\Syntax {\Tex{\pdfignoreddimen} \Whatever{dimension}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfignoreddimen} \Whatever{dimen}}} \bookmark{\tex{pdfignoreddimen}} This is the dimension which must assigned to the following four primitives @@ -3732,8 +3130,7 @@ with care since it also influences when a previous paragraph's depth is ignored (for instance, the plain \TEX\ macro \type{\nointerlineskip} should be modified accordingly). -\pdftexprimitive {\Syntax {\Tex {\pdffirstlineheight} \Whatever{dimension}}} - +\pdftexprimitive{\Syntax{\Tex{\pdffirstlineheight} \Whatever{dimen}}} \bookmark{\tex{pdffirstlineheight}} This parameter specifies the height of the first line of a paragraph, @@ -3742,22 +3139,19 @@ called, and ignored when set to \type{\pdfignoreddimen}. By default, it is set to \type{-1000pt}, so it is ignored as long as the value of \type{\pdfignoreddimen} is the same. -\pdftexprimitive {\Syntax {\Tex {\pdflastlinedepth} \Whatever{dimension}}} - +\pdftexprimitive{\Syntax{\Tex{\pdflastlinedepth} \Whatever{dimen}}} \bookmark{\tex{pdflastlinedepth}} This is similar to the previous parameter, but affects the last line's depth of a paragraph. -\pdftexprimitive {\Syntax {\Tex {\pdfeachlineheight} \Whatever{dimension}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfeachlineheight} \Whatever{dimen}}} \bookmark{\tex{pdfeachlineheight}} Similar to \type{\pdffirstlineheight}, but for all lines of a paragraph, including the first one, unless \type{\pdffirstlineheight} is specified. -\pdftexprimitive {\Syntax {\Tex {\pdfeachlinedepth} \Whatever{dimension}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfeachlinedepth} \Whatever{dimen}}} \bookmark{\tex{pdfeachlinedepth}} Like the preceding parameter, but for depth. @@ -3766,8 +3160,8 @@ Like the preceding parameter, but for depth. \subsection{\PDF\ objects} -\pdftexprimitive {\Syntax {\Tex {\pdfobj} \Something{object type spec}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfobj} \Something{object type spec} + \Modelist{h, v, m}}} \bookmark{\tex{pdfobj}} This command creates a raw \PDF\ object that is written to the \PDF\ @@ -3799,15 +3193,14 @@ is preceded by \type{\immediate}. Nothing is appended to the list being built. The number of the most recently created object is accessible via \type{\pdflastobj}. -\pdftexprimitive {\Syntax {\Tex {\pdflastobj} \Whatever{read||only integer}}} - +\pdftexprimitive{\Syntax{\Tex{\pdflastobj} \Whatever{read||only integer}}} \bookmark{\tex{pdflastobj}} This command returns the object number of the last object created by \type {\pdfobj}. -\pdftexprimitive {\Syntax {\Tex {\pdfrefobj} \Something{object number}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfrefobj} \Something{object number} + \Modelist{h, v, m}}} \bookmark{\tex{pdfrefobj}} This command appends a whatsit node to the list being built. When the whatsit @@ -3819,18 +3212,16 @@ to the \PDF\ output if it has not been written yet. \subsection{Page and pages objects} -\pdftexprimitive {\Syntax {\Tex {\pdfpagesattr} \Whatever{tokens}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfpagesattr} \Whatever{tokens}}} \bookmark{\tex{pdfpagesattr}} -\PDFTEX\ expands this token list when it finishes the \PDF\ output and adds -the resulting character stream to the root \type{Pages} object. When defined, -these are applied to all pages in the document. Some examples of attributes -are \type{/MediaBox}, the rectangle specifying the natural size of the page, -\type{/CropBox}, the rectangle specifying the region of the page being -displayed and printed, and \type{/Rotate}, the number of degrees (in -multiples of 90) the page should be rotated clockwise when it is displayed or -printed. +\PDFTEX\ expands this token list when it finishes the \PDF\ output and +adds the resulting character stream to the root \type{Pages} +object. When defined, these are applied to all pages in the +document. Some examples of attributes are \type{/CropBox}, the rectangle +specifying the region of the page being displayed and printed, and +\type{/Rotate}, the number of degrees (in multiples of 90) the page +should be rotated clockwise when it is displayed or printed. % /MediaBox is not a good example, since will never take an effect @@ -3840,8 +3231,7 @@ printed. /CropBox [0 0 612 792] } % the crop size of all pages (in bp) \stoptyping -\pdftexprimitive {\Syntax {\Tex {\pdfpageattr} \Whatever{tokens}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfpageattr} \Whatever{tokens}}} \bookmark{\tex{pdfpageattr}} This is similar to \type{\pdfpagesattr}, but has priority over it. @@ -3849,8 +3239,18 @@ It can be used to override any attribute given by \type{\pdfpagesattr} for individual pages. The token list is expanded when \PDFTEX\ ships out a page. The contents are added to the attributes of the current page. -\pdftexprimitive {\Syntax {\Tex {\pdfpageref} \Something{page number} \Whatever{expandable}}} +\pdftexprimitive{\Syntax{\Tex{\pdfpageresources} \Whatever{tokens}}} +\bookmark{\tex{pdfpageresources}} +These tokens are added to the resource dictionary for all pages, before +the font, XOBject, and other resources. + +\starttyping +\pdfpageresources{/MyPageResourceAttribute /MyValue} +\stoptyping + +\pdftexprimitive{\Syntax{\Tex{\pdfpageref} \Something{page number} + \Whatever{expandable}}} \bookmark{\tex{pdfpageref}} This primitive expands to the number of the page object that contains @@ -3879,9 +3279,9 @@ These commands behave similarly to \type{\pdfobj}, \type{\pdfrefobj} and \type{\pdflastobj}, but instead of taking raw \PDF\ code, they handle text typeset by \TEX. -\pdftexprimitive {\Syntax {\Tex {\pdfxform} \Optional{\Something{attr -spec}} \Optional{\Something{resources spec}} \Something{box number}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfxform} \Optional{\Something{attr spec}} + \Optional{\Something{resources spec}} \Something{box number} + \Modelist{h, v, m}}} \bookmark{\tex{pdfxform}} This command creates a form XObject corresponding to the contents of the @@ -3899,34 +3299,33 @@ to the resources dictionary of the form XObject. The text given by other entries of the form dictionary and|/|or the resources dictionary and takes priority over later ones. -\pdftexprimitive {\Syntax {\Tex {\pdfrefxform} \Something{object number}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfrefxform} \Something{object number} + \Modelist{h, v, m}}} \bookmark{\tex{pdfrefxform}} The form XObject is kept in memory and will be written to the \PDF\ output only when its object number is referred to by \type{\pdfrefxform} or when \type{\pdfxform} is preceded by \type{\immediate}. Nothing is appended to the list being built. The number of the most recently created -form XObject is accessible via \type {\pdflastxform}. +form XObject is accessible via \type{\pdflastxform}. When issued, \type{\pdfrefxform} appends a whatsit node to the list being built. When the whatsit node is searched at shipout time, \PDFTEX\ will write the form \Something{object number} to the \PDF\ output if it is not written yet. -\pdftexprimitive {\Syntax {\Tex {\pdflastxform}} \Whatever{read||only integer}} - +\pdftexprimitive{\Syntax{\Tex{\pdflastxform} \Whatever{read||only integer}}} \bookmark{\tex{pdflastxform}} The object number of the most recently created form XObject is accessible -via \type {\pdflastxform}. +via \type{\pdflastxform}. As said, this feature can be used for reusing information. This mechanism also plays a role in typesetting fill||in forms. Such widgets sometimes depends on visuals that show up on user request, but are hidden otherwise. -\pdftexprimitive {\Syntax {\Tex {\pdfxformname} \Something{object number} \Whatever{expandable}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfxformname} \Something{object number} + \Whatever{expandable}}} \bookmark{\tex{pdfxformname}} In \PDF\ files produced by \PDFTEX\ one can recognize a form Xobject by @@ -3945,16 +3344,15 @@ XObjects. In \PDFTEX\ this mechanism is accessed by means of \type{\pdfxform}, \type{\pdflastxform} and \type{\pdfrefxform}. A special kind of XObjects are bitmap graphics and for manipulating them similar commands are provided. -\pdftexprimitive {\Syntax { - \Tex {\pdfximage} +\pdftexprimitive{\Syntax{\Tex{\pdfximage} \Optional{\Something{rule spec}} \Optional{\Something{attr spec}} \Optional{\Something{page spec}} \Optional{\Something{colorspace spec}} \Optional{\Something{pdf box spec}} \Something{general text} + \Modelist{h, v, m} }} - \bookmark{\tex{pdfximage}} This command creates an image object. The dimensions of the image can be @@ -3986,7 +3384,7 @@ the \eg\ \type{\input} primitive, the filename is supplied between braces. The image type is specified by the extension of the given file name: -\type {.png} stands for \PNG\ image, \type{.jpg} (or \type{.jpeg}) for +\type{.png} stands for \PNG\ image, \type{.jpg} (or \type{.jpeg}) for \JPEG, \type{.jbig2} (preferred, but \type{.jb2} works also) for \JBIGTWO, and \type{.pdf} for \PDF\ file. But once \PDFTEX\ has opened the file, it checks the file type first by looking to the magic number at the @@ -4016,8 +3414,7 @@ colorspace for the image being included). This feature works for \JPEG\ images only. \PNG s are \RGB\ palettes, \JBIG2 s are bitonal, and \PDF\ images have always self||contained color space information. -\pdftexprimitive {\Syntax {\Tex {\pdfrefximage} \Something{integer}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfrefximage} \Something{object number}}} \bookmark{\tex{pdfrefximage}} The image is kept in memory and will be written to the \PDF\ output only when @@ -4026,19 +3423,17 @@ preceded by \type{\immediate}. Nothing is appended to the list being built. \type{\pdfrefximage} appends a whatsit node to the list being built. When the whatsit node is searched at shipout time, \PDFTEX\ will write the image -with number \Something{integer} to the \PDF\ output if it has not been +with number \Something{object number} to the \PDF\ output if it has not been written yet. -\pdftexprimitive {\Syntax {\Tex {\pdflastximage} \Whatever{read||only -integer}}} - +\pdftexprimitive{\Syntax{\Tex{\pdflastximage} \Whatever{read||only integer}}} \bookmark{\tex{pdflastximage}} The number of the most recently created XObject image is accessible via \type {\pdflastximage}. -\pdftexprimitive {\Syntax {\Tex {\pdfximagebbox} \Something{integer} \Something{integer} \Whatever{expandable}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfximagebbox} \Something{integer} + \Something{integer} \Whatever{expandable}}} \bookmark{\tex{pdfximagebbox}} The dimensions of the bounding box of a \PDF\ image loaded with @@ -4053,17 +3448,15 @@ dimensions as follows: \pdfximagebbox\pdflastximage 4 % Returns upper-right y \stoptyping -\pdftexprimitive {\Syntax {\Tex {\pdflastximagecolordepth} \Whatever{read||only -integer}}} - +\pdftexprimitive{\Syntax{\Tex{\pdflastximagecolordepth} + \Whatever{read||only integer}}} \bookmark{\tex{pdflastximagecolordepth}} The color depth (\type{1} for 1-bit images, \type{2} for 2-bit images, and so on) of the last image accessed with \type{\pdfximage}. -\pdftexprimitive {\Syntax {\Tex {\pdflastximagepages} \Whatever{read||only -integer}}} - +\pdftexprimitive{\Syntax{\Tex{\pdflastximagepages} + \Whatever{read||only integer}}} \bookmark{\tex{pdflastximagepages}} This read||only register returns the highest page number from a file @@ -4071,8 +3464,7 @@ previously accessed via the \type{\pdfximage} command. This is useful only for \PDF\ files; it always returns \type{1} for \PNG, \JPEG, or \JBIGTWO\ files. -\pdftexprimitive {\Syntax {\Tex {\pdfimageresolution} \Whatever{integer}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfimageresolution} \Whatever{integer}}} \bookmark{\tex{pdfimageresolution}} The integer \type{\pdfimageresolution} parameter (unit: dots per @@ -4098,8 +3490,7 @@ dimensions of \JPEG\ images in \EXIF\ format (unless at least one dimension is stated explicitly); the resolution values coming with \EXIF\ files are currently ignored. -\pdftexprimitive {\Syntax {\Tex {\pdfpagebox} \Whatever{integer}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfpagebox} \Whatever{integer}}} \bookmark{\tex{pdfpagebox}} When \PDF\ files are included, the command \type{\pdfximage} allows the @@ -4109,8 +3500,7 @@ page box defaults to the value of \type{\pdfpagebox} as follows: (1)~media box, (2)~crop box, (3)~bleed box, (4)~trim box, and (5)~artbox. -\pdftexprimitive {\Syntax {\Tex {\pdfforcepagebox} \Whatever{integer}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfforcepagebox} \Whatever{integer}}} \bookmark{\tex{pdfforcepagebox}} %- It is now possible to specify the pdf page box to use when including pdfs. @@ -4136,8 +3526,7 @@ starting from \PDFTEX\ 1.30.0, as a shortened synonym of obsolete now considered obsolete --- a mixture of \type{\pdfpagebox} and \Something{image attr spec} is better. -\pdftexprimitive {\Syntax {\Tex {\pdfinclusionerrorlevel} \Whatever{integer}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfinclusionerrorlevel} \Whatever{integer}}} \bookmark{\tex{pdfinclusionerrorlevel}} This controls the behaviour of \PDFTEX\ when a \PDF\ file is included @@ -4150,8 +3539,7 @@ It was originally a shortened synonym of \type{\pdfoptionpdfinclusionerrorlevel}, which is now obsolete. \introduced{1.30.0} -\pdftexprimitive {\Syntax {\Tex {\pdfimagehicolor} \Whatever{integer}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfimagehicolor} \Whatever{integer}}} \bookmark{\tex{pdfimagehicolor}} This primitive, when set to~1, enables embedding of \PNG\ images with @@ -4166,19 +3554,17 @@ 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} -\pdftexprimitive {\Syntax {\Tex {\pdfimageapplygamma} \Whatever{integer}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfimageapplygamma} \Whatever{integer}}} \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 values of the primitives \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 written to the \PDF\ output. \introduced{1.30.0} -\pdftexprimitive {\Syntax {\Tex {\pdfgamma} \Whatever{integer}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfgamma} \Whatever{integer}}} \bookmark{\tex{pdfgamma}} This primitive defines the `device gamma' for \PDFTEX. Values are in @@ -4195,8 +3581,7 @@ If specified, the parameter must appear before any data is written to the \PDF\ output. \introduced{1.30.0} -\pdftexprimitive {\Syntax {\Tex {\pdfimagegamma} \Whatever{integer}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfimagegamma} \Whatever{integer}}} \bookmark{\tex{pdfimagegamma}} This primitive gives a default `assumed gamma' value for \PNG\ images. @@ -4213,8 +3598,7 @@ If specified, the parameter must appear before any data is written to the \PDF\ output. \introduced{1.30.0} -\pdftexprimitive {\Syntax {\Tex {\pdfpxdimen} \Whatever{dimen}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfpxdimen} \Whatever{dimen}}} \bookmark{\tex{pdfpxdimen}} While working with bitmap graphics or typesetting electronic documents, @@ -4241,8 +3625,7 @@ the dimension 1\,px as number of scaled points, defaulting to 65536 (1\,px equal to 65536\,sp~$=$~1\,pt). Starting from \PDFTEX\ 1.40.0, \type{\pdfpxdimen} is now a real dimension parameter. -\pdftexprimitive {\Syntax {\Tex{\pdfinclusioncopyfonts} \Whatever{integer}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfinclusioncopyfonts} \Whatever{integer}}} \bookmark{\tex{pdfinclusioncopyfonts}} If positive, this parameter forces \PDFTEX\ to include fonts from a \PDF\ @@ -4251,9 +3634,8 @@ disk. Bigger files might be created, but included \PDF\ files are sure to be embedded with the adequate fonts; indeed, the fonts on disk might be different from the embedded ones, and glyphs might be missing. -\pdftexprimitive {\Syntax {\Tex {\pdfsuppresswarningpagegroup} -\Whatever{integer}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfsuppresswarningpagegroup} + \Whatever{integer}}} \bookmark{\tex{pdfsuppresswarningpagegroup}} Ordinarily, \PDFTEX\ gives a warning when more than one included \PDF\ @@ -4287,8 +3669,8 @@ area involved on which one can click, or when moved over some action occurs. annotations can be supported using the next two general annotation primitives. -\pdftexprimitive {\Syntax {\Tex {\pdfannot} \Something{annot type spec}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfannot} \Something{annot type spec} + \Modelist{h, v, m}}} \bookmark{\tex{pdfannot}} This command appends a whatsit node corresponding to an annotation to @@ -4301,9 +3683,7 @@ text} is inserted as raw \PDF\ code to the contents of annotation. The annotation is written out only if the corresponding whatsit node is searched at shipout time. -\pdftexprimitive {\Syntax {\Tex {\pdflastannot} \Whatever{read||only -integer}}} - +\pdftexprimitive{\Syntax{\Tex{\pdflastannot} \Whatever{read||only integer}}} \bookmark{\tex{pdflastannot}} This primitive returns the object number of the last annotation created by @@ -4321,8 +3701,8 @@ page. The main reason for this is that \PDF\ maintains a dedicated list of these annotations |<|and some more when optimized|>| for the sole purpose of speed. -\pdftexprimitive {\Syntax {\Tex {\pdfdest} \Something{dest spec}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfdest} \Something{dest spec} + \Modelist{h, v, m}}} \bookmark{\tex{pdfdest}} This primitive appends a whatsit node which establishes a destination @@ -4352,26 +3732,29 @@ one of those mentioned in \in{table}[appearance]. {Options for display of outline and destinations.} {\getbuffer} -The specification \Literal {xyz} can optionally be followed by \Literal +The specification \Literal{xyz} can optionally be followed by \Literal {zoom} \Something{integer} to provide a fixed zoom||in. The \Something {integer} is processed like \TEX\ magnification, i.\,e.\ 1000 is the -normal page view. When \Literal {zoom} \Something{integer} is given, +normal page view. When \Literal{zoom} \Something{integer} is given, the zoom factor changes to 0.001 of the \Something{integer} value, otherwise the current zoom factor is kept unchanged. The destination is written out only if the corresponding whatsit node is searched at shipout time. -\pdftexprimitive {\Syntax {\Tex {\pdfstartlink} \Optional{\Something{rule -spec}} \Optional{\Something{attr spec}} \Something{action spec}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfstartlink} + \Optional{\Something{rule spec}} + \Optional{\Something{attr spec}} + \Something{action spec} + \Modelist{h, m} +}} \bookmark{\tex{pdfstartlink}} This primitive is used along with \type{\pdfendlink} and appends a whatsit node corresponding to the start of a hyperlink. The whatsit node representing the end of the hyperlink is created by \type{\pdfendlink}. The dimensions of the link are handled in the -similar way as in \type{\pdfannot}. Both \type {\pdfstartlink} and +similar way as in \type{\pdfannot}. Both \type{\pdfstartlink} and \type{\pdfendlink} must be in the same level of box nesting. A hyperlink with running width can be multi||line or even multi||page, in which case all horizontal boxes with the same nesting level as the boxes containing @@ -4412,8 +3795,7 @@ A \Something{thread-action spec} performs an article thread reading. The thread identifier is similar to the destination identifier. A thread can be performed in another \PDF\ file by specifying a \Something{file spec}\unkern. -\pdftexprimitive {\Syntax {\Tex {\pdfendlink}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfendlink} \Modelist{h, m}}} \bookmark{\tex{pdfendlink}} This primitive ends a link started with \type{\pdfstartlink}. All text @@ -4421,31 +3803,25 @@ between \type{\pdfstartlink} and \type{\pdfendlink} will be treated as part of this link. \PDFTEX\ may break the result across lines (or pages), in which case it will make several links with the same content. -\pdftexprimitive {\Syntax {\Tex {\pdflastlink} \Whatever{read||only -integer}}} - +\pdftexprimitive{\Syntax{\Tex{\pdflastlink} \Whatever{read||only integer}}} \bookmark{\tex{pdflastlink}} This primitive returns the object number of the last link created by \type{\pdfstartlink} (analogous to \type{\pdflastannot}). \introduced{1.40.0} -\pdftexprimitive {\Syntax {\Tex {\pdflinkmargin} \Whatever{dimension}}} - +\pdftexprimitive{\Syntax{\Tex{\pdflinkmargin} \Whatever{dimen}}} \bookmark{\tex{pdflinkmargin}} This dimension parameter specifies the margin of the box representing a hyperlink and is read when a page containing hyperlinks is shipped out. -\pdftexprimitive {\Syntax {\Tex {\pdfdestmargin} \Whatever{dimension}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfdestmargin} \Whatever{dimen}}} \bookmark{\tex{pdfdestmargin}} Margin added to the dimensions of the rectangle around the destinations. -\pdftexprimitive {\Syntax {\Tex {\pdfsuppresswarningdupdest} -\Whatever{integer}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfsuppresswarningdupdest} \Whatever{integer}}} \bookmark{\tex{pdfsuppresswarningdupdest}} Ordinarily, \PDFTEX\ gives a warning when the same destination is used @@ -4459,10 +3835,13 @@ parameter to a positive number. \introduced{1.40.13} \subsection{Bookmarks} -\pdftexprimitive {\Syntax {\Tex {\pdfoutline} -\Optional{\Something{attr spec}} \Something{action spec} -\Optional{\Literal {count} \Something{integer}} \Something{general text}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfoutline} + \Optional{\Something{attr spec}} + \Something{action spec} + \Optional{\Literal{count} \Something{integer}} + \Something{general text} + \Modelist{h, v, m} +}} \bookmark{\tex{pdfoutline}} This primitive creates an outline (or bookmark) entry. The first parameter @@ -4479,19 +3858,17 @@ is written to the \PDF\ output immediately. \subsection{Article threads} -\pdftexprimitive {\Syntax {\Tex {\pdfthread} -\Optional{\Something{rule spec}} \Optional -{\Something{attr spec}} \Something{id spec}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfthread} \Optional{\Something{rule spec}} + \Optional{\Something{attr spec}} \Something{id spec} \Modelist{h, v, m}}} \bookmark{\tex{pdfthread}} Defines a bead within an article thread. Thread beads with same identifiers (spread across the document) will be joined together. -\pdftexprimitive {\Syntax {\Tex {\pdftstarthread} -\Optional{\Something{rule spec}} \Optional -{\Something{attr spec}} \Something{id spec}}} - +\pdftexprimitive{\Syntax{\Tex{\pdftstartthread} + \Optional{\Something{rule spec}} + \Optional{\Something{attr spec}} + \Something{id spec} \Modelist{v, m}}} \bookmark{\tex{pdfstartthread}} This uses the same syntax as \type{\pdfthread}, apart that it must be @@ -4505,14 +3882,12 @@ into the thread, which is probably not what you want. To avoid such unconsidered behaviour, it's often enough to wrap boxes that shouldn't belong to the thread by a box to change their box nesting level. -\pdftexprimitive {\Syntax {\Tex {\pdfendthread}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfendthread} \Modelist{v, m}}} \bookmark{\tex{pdfendthread}} This ends an article thread started before by \type{\pdfstartthread}. -\pdftexprimitive {\Syntax {\Tex {\pdfthreadmargin} \Whatever{dimension}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfthreadmargin} \Whatever{dimen}}} \bookmark{\tex{pdfthreadmargin}} Specifies a margin to be added to the dimensions of a bead within @@ -4522,9 +3897,11 @@ an article thread. \subsection{Literals and specials} -\pdftexprimitive {\Syntax {\Tex {\pdfliteral} \Optional{\Something {pdfliteral spec}} -\Something{general text}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfliteral} + \Optional{\Something{pdfliteral spec}} + \Something{general text} + \Modelist{h, v, m} + }} \bookmark{\tex{pdfliteral}} Like \type{\special} in normal \TEX, this command inserts raw @@ -4533,7 +3910,7 @@ transformation. This primitive is heavily used in the \METAPOST\ inclusion macros. Normally \PDFTEX\ ends a text section in the \PDF\ output and sets the transformation matrix to the current location on the page before inserting \Something{general text}\unkern, however this can be -turned off by giving the optional keyword \Literal {direct}. This command +turned off by giving the optional keyword \Literal{direct}. This command appends a whatsit node to the list being built. \Something{general text} is expanded when the whatsit node is created and not when it is shipped out, as with \type{\special}. @@ -4551,32 +3928,33 @@ origin (lower||left corner of the page) and can be safely enclosed with this within a \type{BT ET} block. % HE: \unkern is a kludge here; wanted to have tight "{pdf:" -\pdftexprimitive {\Syntax {\Tex {\special} \Lbrace\unkern\type{pdf:} \Something{text} \Rbrace}} - +\pdftexprimitive{\Syntax{\Tex{\special} \Lbrace\unkern\Literal{pdf:} + \Something{text} \Rbrace}} \bookmark{\tex{special}} This is equivalent to \Syntax{\Tex{\pdfliteral} \Lbrace \Something{text} \Rbrace}. -\pdftexprimitive {\Syntax {\Tex {\special} \Lbrace\unkern\type{pdf:direct:} \Something{text} \Rbrace}} - +\pdftexprimitive{\Syntax{\Tex{\special} \Lbrace\unkern\Literal{pdf:direct:} + \Something{text} \Rbrace}} \bookmark{\tex{special\ direct}} This is equivalent to \Syntax{\Tex{\pdfliteral} \Literal{direct} \Lbrace \Something{text} \Rbrace}. -\pdftexprimitive {\Syntax {\Tex {\special} \Lbrace\unkern\type{pdf:page:} \Something{text} \Rbrace}} - +\pdftexprimitive{\Syntax{\Tex{\special} \Lbrace\unkern\Literal{pdf:page:} + \Something{text} \Rbrace}} \bookmark{\tex{special\ page}} -This is equivalent to \Syntax{\Tex{\pdfliteral} \Literal{page} \Lbrace \Something{text} \Rbrace}. +This is equivalent to \Syntax{\Tex{\pdfliteral} \Literal{page} \Lbrace +\Something{text} \Rbrace}. %*********************************************************************** \subsection{Strings} -\pdftexprimitive {\Syntax {\Tex {\pdfescapestring} \Something {general text} \Whatever{expandable}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfescapestring} \Something{general text} + \Whatever{expandable}}} \bookmark{\tex{pdfescapestring}} Starting from version 1.30.0, \PDFTEX\ provides a mechanism for converting @@ -4590,8 +3968,8 @@ expanded to \type{Text\040\(1\)}. This ensures a literal interpretation of the text by the \PDF\ viewer. \introduced{1.30.0} -\pdftexprimitive {\Syntax {\Tex {\pdfescapename} \Something {general text} \Whatever{expandable}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfescapename} \Something{general text} + \Whatever{expandable}}} \bookmark{\tex{pdfescapename}} In analogy to \type{\pdfescapestring}, \type{\pdfescapename} replaces each @@ -4601,34 +3979,33 @@ interpretation of the text if used as a \PDF\ name object. In example, \type{Text (1)} will be replaced by \type{Text#20#281#29}. \introduced{1.30.0} -\pdftexprimitive {\Syntax {\Tex {\pdfescapehex} \Something {general text} \Whatever{expandable}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfescapehex} \Something{general text} + \Whatever{expandable}}} \bookmark{\tex{pdfescapehex}} This command converts each character of \Something{general text} into its hexadecimal representation. Each character of the argument becomes a pair of hexadecimal digits. \introduced{1.30.0} -\pdftexprimitive {\Syntax {\Tex {\pdfunescapehex} \Something {general text} \Whatever{expandable}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfunescapehex} \Something{general text} + \Whatever{expandable}}} \bookmark{\tex{pdfunescapehex}} -This command treats each character pair of \Something {general text} as +This command treats each character pair of \Something{general text} as a hexadecimal number and returns an \ASCII\ character of this code. \introduced{1.30.0} -\pdftexprimitive {\Syntax {\Tex {\pdfstrcmp} \Something{general text} -\Something{general text} \Whatever{expandable}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfstrcmp} \Something{general text} + \Something{general text} \Whatever{expandable}}} \bookmark{\tex{pdfstrcmp}} This command compares two strings and expands to \type{0} if the strings are equal, to \type{-1} if the first string ranks before the second, and to \type{1} otherwise. \introduced{1.30.0} -\pdftexprimitive {\Syntax {\Tex {\pdfmatch} \Optional{\Literal{icase}} \Optional{\Literal{subcount} \Something{integer}} -\Something{general text} \Something{general text} \Whatever{expandable}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfmatch} \Optional{\Literal{icase}} + \Optional{\Literal{subcount} \Something{integer}} \Something{general text} + \Something{general text} \Whatever{expandable}}} \bookmark{\tex{pdfmatch}} This command implements pattern matching (using the syntax of \POSIX\ @@ -4639,8 +4016,8 @@ a match is found. With the \type{icase} option, the matching is case-insensitive. The \type{subcount} option sets the size of the table storing found (sub)patterns. \introduced{1.30.0} -\pdftexprimitive {\Syntax {\Tex {\pdflastmatch} \Something{integer} \Whatever{expandable}}} - +\pdftexprimitive{\Syntax{\Tex{\pdflastmatch} \Something{integer} + \Whatever{expandable}}} \bookmark{\tex{pdflastmatch}} The matches found with \type{\pdfmatch} are stored in a table. This command @@ -4663,21 +4040,11 @@ Entry~1 is empty because no match was found for \type{cd}, and entry~3 is empty because it exceeds the table's size, as set by \type{subcount}. \introduced{1.30.0} -\pdftexprimitive{\Syntax {\Tex {\pdfmdfivesum} \Something{general text} -\Whatever{expandable}}} - -\bookmark{\tex{pdfmdfivesum}} - -This command expands to the \MDFIVE\ of \Something{general text} in uppercase -hexadecimal format (same as \type{\pdfescapehex}). -\introduced{1.30.0} - %*********************************************************************** \subsection{Numbers} -\pdftexprimitive{\Syntax {\Tex {\ifpdfabsnum} \Whatever{expandable}}} - +\pdftexprimitive{\Syntax{\Tex{\ifpdfabsnum} \Whatever{expandable}}} \bookmark{\tex{ifpdfabsnum}} This conditional works like the standard \type{\ifnum}, except that it @@ -4686,24 +4053,22 @@ shortcut for a couple of \type{\ifnum x<0} tests, as a primitive it is considerably more friendly in usage and works a bit faster. \introduced{1.40.0} -\pdftexprimitive{\Syntax {\Tex {\ifpdfabsdim} \Whatever{expandable}}} - +\pdftexprimitive{\Syntax{\Tex{\ifpdfabsdim} \Whatever{expandable}}} \bookmark{\tex{ifpdfabsdim}} Analogous to \type{\ifpdfabsnum}, this conditional works like \type{\ifdim}, except that it compares absolute values of dimensions. \introduced{1.40.0} -\pdftexprimitive{\Syntax {\Tex {\pdfuniformdeviate} \Something{number} \Whatever{expandable}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfuniformdeviate} \Something{number} + \Whatever{expandable}}} \bookmark{\tex{pdfuniformdeviate}} Generate a uniformly-distributed random integer value between 0 (inclusive) and \Something{number} (exclusive). This primitive expands to a list of tokens. \introduced{1.30.0} -\pdftexprimitive{\Syntax {\Tex {\pdfnormaldeviate} \Whatever{expandable}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfnormaldeviate} \Whatever{expandable}}} \bookmark{\tex{pdfnormaldeviate}} Generate a normally-distributed random integer with a mean of~0 and @@ -4713,9 +4078,7 @@ the mean). About 95\% of results will be within two standard deviations, and 99.7\% within three. This primitive expands to a list of tokens. \introduced{1.30.0} -\pdftexprimitive {\Syntax {\Tex {\pdfrandomseed}} \Whatever{read||only -integer}} - +\pdftexprimitive{\Syntax{\Tex{\pdfrandomseed} \Whatever{read||only integer}}} \bookmark{\tex{pdfrandomseed}} You can use \type{\the\pdfrandomseed} to query the current seed value, @@ -4724,8 +4087,7 @@ the seed is derived from the system time, and is not more than 1\,000\,999\,999 (this ensures that the value can be used with commands like \type{\count}). \introduced{1.30.0} -\pdftexprimitive{\Syntax {\Tex {\pdfsetrandomseed} \Something{number}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfsetrandomseed} \Something{number}}} \bookmark{\tex{pdfsetrandomseed}} Set the random seed (\type{\pdfrandomseed}) to a specific value, @@ -4736,9 +4098,7 @@ allowing you to replay sequences of semi-randoms at a later moment. \subsection{Timekeeping} -\pdftexprimitive {\Syntax {\Tex {\pdfelapsedtime}} \Whatever{read||only -integer}} - +\pdftexprimitive{\Syntax{\Tex{\pdfelapsedtime} \Whatever{read||only integer}}} \bookmark{\tex{pdfelapsedtime}} Return a number that represents the time elapsed from the moment of the @@ -4749,8 +4109,7 @@ typeset. Of course, the command will never return a value greater than the highest number available in \TeX: if the time exceeds 32767 seconds, the constant value $2^{31}-1$ will be returned. \introduced{1.30.0} -\pdftexprimitive{\type{\pdfresettimer}} - +\pdftexprimitive{\Syntax{\Tex{\pdfresettimer}}} \bookmark{\tex{pdfresettimer}} Reset the internal timer so that \type{\pdfelapsedtime} @@ -4760,9 +4119,8 @@ starts returning micro||time from~0 again. \introduced{1.30.0} \subsection{Files} -\pdftexprimitive{\Syntax {\Tex {\pdffilemoddate} \Something{general text} -\Whatever{expandable}}} - +\pdftexprimitive{\Syntax{\Tex{\pdffilemoddate} \Something{general text} + \Whatever{expandable}}} \bookmark{\tex{pdffilemoddate}} Expands to the modification date of file \Something{general text} in the same @@ -4770,18 +4128,16 @@ format as for \type{\pdfcreationdate}, \eg\ it's {\tt \pdffilemoddate {./pdftex-t.tex}} for the source of this manual. \introduced{1.30.0} -\pdftexprimitive{\Syntax {\Tex {\pdffilesize} \Something{general text} -\Whatever{expandable}}} - +\pdftexprimitive{\Syntax{\Tex{\pdffilesize} \Something{general text} + \Whatever{expandable}}} \bookmark{\tex{pdffilesize}} 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} file \Something{general text} + \Whatever{expandable}}} \bookmark{\tex{pdfmdfivesum\ file}} Expands to the \MDFIVE\ of file \Something{general text} in uppercase @@ -4789,10 +4145,9 @@ hexadecimal format (same as \type{\pdfescapehex}), \eg\ 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{number}} \Optional{\Literal{length} + \Something{number}} \Something{general text} \Whatever{expandable}}} \bookmark{\tex{pdffiledump}} Expands to the dump of the file \Something{general text} in uppercase @@ -4808,10 +4163,8 @@ bytes of the source of this manual are {\tt \pdffiledump length 10 \PDFTEX\ 1.40.0 comes with color stack support (actually any graphic state stack). -\pdftexprimitive{\Syntax { -\Tex {\pdfcolorstackinit} \Optional{\Literal{page}} \Optional{\Literal{direct}} \Something{general text} -\Whatever{expandable}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfcolorstackinit} \Optional{\Literal{page}} + \Optional{\Literal{direct}} \Something{general text} \Whatever{expandable}}} \bookmark{\tex{pdfcolorstackinit}} The primitive initializes a new graphic stack and returns its number. Optional @@ -4819,10 +4172,8 @@ The primitive initializes a new graphic stack and returns its number. Optional beginning of every new page. Also optional \Literal{direct} has the same effect as for \Tex{\pdfliteral} primitive. \introduced{1.40.0} -\pdftexprimitive{\Syntax { -\Tex {\pdfcolorstack} \Something{stack number} \Something{stack action} -\Something{general text}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfcolorstack} \Something{stack number} + \Something{stack action} \Something{general text}}} \bookmark{\tex{pdfcolorstack}} The command operates on the stack of a given number. If \Something{stack @@ -4845,8 +4196,7 @@ and restoring the current transformation matrix, remains unnoticed by affected by such user-defined transformations. \PDFTEX\ 1.40.0 solves this problem with three new primitives. -\pdftexprimitive{\Syntax {\Tex {\pdfsetmatrix}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfsetmatrix}}} \bookmark{\tex{pdfsetmatrix}} Afine transformations are normally expressed with six numbers. First @@ -4859,15 +4209,13 @@ by a space and assumes two position coordinates to be~0. In example, degrees, inserting \type{0.87 -0.5 0.5 0.87 0 0 cm} into the content stream. \introduced{1.40.0} -\pdftexprimitive{\Syntax {\Tex {\pdfsave}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfsave}}} \bookmark{\tex{pdfsave}} The command saves the current transformation by inserting \type{q} operator into the content stream. \introduced{1.40.0} -\pdftexprimitive{\Syntax {\Tex {\pdfrestore}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfrestore}}} \bookmark{\tex{pdfrestore}} The command restores previously saved transformation by inserting \type{Q} @@ -4879,16 +4227,15 @@ and end at the same group level. \introduced{1.40.0} \subsection{Miscellaneous} -\pdftexprimitive {\Syntax {\tex {ifincsname} \Whatever{expandable}}} - +\pdftexprimitive{\Syntax{\tex {ifincsname} \Whatever{expandable}}} \bookmark{\tex{ifincsname}} This conditional is true if evaluated inside \type{\csname ... \endcsname}, and false otherwise. -\pdftexprimitive {\Syntax {\tex {ifpdfprimitive} \Something{control sequence} \Whatever{expandable}}} - +\pdftexprimitive{\Syntax{\tex {ifpdfprimitive} \Something{control sequence} + \Whatever{expandable}}} \bookmark{\tex{ifpdfprimitive}} This condition checks if the following control sequence has its @@ -4897,16 +4244,14 @@ any other case (redefined, made \type{\undefined}, has never been primitive) false is returned. \introduced{1.40.0} -\pdftexprimitive {\Syntax {\Tex {\pdfcreationdate} \Whatever{expandable}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfcreationdate} \Whatever{expandable}}} \bookmark{\tex{pdfcreationdate}} Expands to the date string \PDFTEX\ uses in the info dictionary of the document, \eg\ for this file {\tt\pdfcreationdate}. \introduced{1.30.0} -\pdftexprimitive {\Syntax {\tex {pdfdraftmode} \Whatever{integer}}} - +\pdftexprimitive{\Syntax{\tex {pdfdraftmode} \Whatever{integer}}} \bookmark{\tex{pdfdraftmode}} When set to 1 (or set by the command-line switch \type{-draftmode}) @@ -4917,8 +4262,8 @@ don't care about the output, \eg\ just to get the \BIBTEX\ references right. \introduced{1.40.0} -\pdftexprimitive {\Syntax {\Tex{\pdfinsertht} \Something{integer} \Whatever{expandable}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfinsertht} \Something{integer} + \Whatever{expandable}}} \bookmark{\tex{pdfinsertht}} If \Something{integer} is the number of an insertion class, this command @@ -4931,9 +4276,7 @@ Abc\footnote*{Whatever.}\par \stoptyping -\pdftexprimitive {\Syntax {\Tex {\pdflastxpos}} \Whatever{read||only -integer}} - +\pdftexprimitive{\Syntax{\Tex{\pdflastxpos} \Whatever{read||only integer}}} \bookmark{\tex{pdflastxpos}} This primitive returns an integer number representing the absolute $x$ @@ -4941,17 +4284,13 @@ coordinate of the last point marked by \type{\pdfsavepos}. The unit is `scaled points' (sp). -\pdftexprimitive {\Syntax {\Tex {\pdflastypos}} \Whatever{read||only -integer}} - +\pdftexprimitive{\Syntax{\Tex{\pdflastypos} \Whatever{read||only integer}}} \bookmark{\tex{pdflastypos}} -This primitive works analogously to \type{\pdflastxpos}, only returning -the $y$ coordinate. - +Completely analogous to \type{\pdflastxpos}, returning the $y$ coordinate. -\pdftexprimitive {\Syntax {\tex {pdfprimitive} \Something{control sequence}}} +\pdftexprimitive{\Syntax{\tex {pdfprimitive} \Something{control sequence}}} \bookmark{\tex{pdfprimitive}} This command executes the primitive meaning of the following control @@ -4962,9 +4301,7 @@ expandable, \type{\pdfprimitive} expands either. Otherwise \type{\pdfprimitive} doesn't expand. \introduced{1.40.0} -\pdftexprimitive {\Syntax {\Tex {\pdfretval} \Whatever{read||only -integer}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfretval} \Whatever{read||only integer}}} \bookmark{\tex{pdfretval}} Set to $-1$ if \type{\pdfobj} ignores an invalid object number. Perhaps @@ -4972,8 +4309,7 @@ this will be used to store the error status of other primitives in the future. -\pdftexprimitive {\Syntax {\Tex {\pdfsavepos}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfsavepos} \Modelist{h, v, m}}} \bookmark{\tex{pdfsavepos}} This primitive marks the current absolute ($x,y$) position on the @@ -4988,9 +4324,7 @@ runs are required to utilize these primitives. Starting with in \DVI\ mode. -\pdftexprimitive {\Syntax {\Tex {\pdfshellescape} \Whatever{read||only -integer}}} - +\pdftexprimitive{\Syntax{\Tex{\pdfshellescape} \Whatever{read||only integer}}} \bookmark{\tex{pdfshellescape}} This primitive is~1 if \type{\write18} is enabled, 2 if it is @@ -4999,16 +4333,14 @@ restricted, and 0 otherwise. (\type{\write18} was typeset.) \introduced{1.30.0} -\pdftexprimitive {\Syntax {\Tex {\pdftexbanner} \Whatever{expandable}}} - +\pdftexprimitive{\Syntax{\Tex{\pdftexbanner} \Whatever{expandable}}} \bookmark{\tex{pdftexbanner}} Returns the \PDFTEX\ banner message, \eg\ for the version used here: {\tt \pdftexbanner}. \introduced{1.20a} -\pdftexprimitive {\Syntax {\Tex {\pdftexrevision} \Whatever{expandable}}} - +\pdftexprimitive{\Syntax{\Tex{\pdftexrevision} \Whatever{expandable}}} \bookmark{\tex{pdftexrevision}} \def\versplit#1#2#3{#1.#2#3} @@ -5018,8 +4350,7 @@ Returns the revision number of \PDFTEX, \eg\ for \PDFTEX\ version this document), it returns the number {\tt \pdftexrevision}. -\pdftexprimitive {\Syntax {\Tex {\pdftexversion} \Whatever{read||only integer}}} - +\pdftexprimitive{\Syntax{\Tex{\pdftexversion} \Whatever{read||only integer}}} \bookmark{\tex{pdftexversion}} Returns the version of \PDFTEX\ multiplied by 100, \eg\ for \PDFTEX\ @@ -5027,8 +4358,7 @@ version \expandafter\versplit\the\pdftexversion.\pdftexrevision\ used to produce this document, it returns {\tt \number\pdftexversion}. -\pdftexprimitive {\Syntax {\Tex {\quitvmode}}} - +\pdftexprimitive{\Syntax{\Tex{\quitvmode}}} \bookmark{\tex{quitvmode}} The primitive instructs \PDFTEX\ to quit vertical mode and start @@ -5039,19 +4369,21 @@ tokens list. No such risk while using \type{\quitvmode} instead. \introduced{1.21a} -\pdftexprimitive {\Syntax {\Tex {\vadjust} - \Optional{\Something{pre spec}} \Something{filler} - \Lbrace \Something{vertical mode material} \Rbrace }} - +\pdftexprimitive{\Syntax{\Tex{\vadjust} + \Optional{\Something{pre spec}} + \Something{filler} + \Lbrace \Something{vertical mode material} \Rbrace + \Modelist{h, m} +}} \bookmark{\tex{vadjust}} The \type{\vadjust} implementation of \PDFTEX\ adds an optional -qualifier \Something{pre spec} (which is the string \type{pre}) to -the original \TEX\ primitive with the same name. As long as there is -no \type{pre} given, \type{\vadjust} behaves exactly as the original -(see the \TEX book, p.~281); it appends an adjustment item created +qualifier \Something{pre spec}, which is simply the string \type{pre}, to +the original \TEX\ primitive with the same name. If +no \type{pre} is given, \type{\vadjust} behaves exactly as the original +(see the \TEX book, p.~281): it appends an adjustment item created from \Something{vertical mode material} to the current list {\em after} -the line in which \type{\vadjust} appears. However with the qualifier +the line in which \type{\vadjust} appears. However, with the qualifier \type{pre}, the adjustment item is put {\em before} the line in which \type{\vadjust pre} appears. @@ -5250,7 +4582,7 @@ to one of the maintainers. %*********************************************************************** -\section{Additional \PDF\ keys} +\section[sec.addpdfkeys]{Additional \PDF\ keys} {\em This section is based on the manual on keys written by Martin Schr\"oder, one of the maintainers of \PDFTEX.} @@ -5261,7 +4593,7 @@ to insert additional keys, provided they follow certain rules. The most important rule is that developers have to register with Adobe prefixes for the keys they want to insert. Hans Hagen has registered the -prefix \type {PTEX} for \PDFTEX. +prefix \type{PTEX} for \PDFTEX. \PDFTEX\ generates an XObject for every included \PDF. The dictionary of this object contains these additional keys: @@ -5292,13 +4624,17 @@ the \PDFReference. The following key ends up in the document catalog. \NC \bf key \NC \bf type \NC meaning \NC \NR \HL \NC PTEX.Fullbanner \NC string \NC The full version of the \pt binary that -produced the file as displayed by \typ {pdftex --version}, \eg\ +produced the file as displayed by \typ {pdftex -{}-version}, \eg\ {\tt\pdftexbanner}. This is necessary because the string in the -\type {Producer} key in the info dictionary is rather short, +\type{Producer} key in the info dictionary is rather short, namely {\tt pdfTeX-\currentpdftex}. \NC \NR \HL \stoptabulate +Any or all of these keys can be suppressed with the +\type{\pdfsuppressptexinfo} primitive, described in +\in{section}[sec.docinfocatalog]. + %*********************************************************************** \section{Colophon} @@ -5325,7 +4661,7 @@ texexec --pdfarrange --paper=a5a4 --print=up --addempty=1,2 \stoptyping Odd and even page sets for non-duplex printers can be generated using -\type{--pages=odd} and \type{--pages=even} options +\type{-}\type{-pages=odd} and \type{-}\type{-pages=even} options (which might require some disciplined shuffling of sheet). This also demonstrates that \PDFTEX\ can be used for page imposition @@ -5335,9 +4671,6 @@ purposes (given that \PDFTEX\ and the fonts are set up properly). \page -% The next section is sponsored by the paper producing industry -) -% I will make this proper \quotation's some day - \definehead[gnusection][subsection] \definehead[gnusubject][subsubject] @@ -5348,7 +4681,7 @@ purposes (given that \PDFTEX\ and the fonts are set up properly). \section{GNU Free Documentation License} \startnotmode[screen] - \switchtobodyfont[4.35pt] % squeeze everything on one page :-} + \switchtobodyfont[4.6pt] % squeeze everything on one page :-} \setuplayout[grid=yes] \setupcolumns[n=7] \stopnotmode diff --git a/Master/texmf-dist/doc/pdftex/manual/pdftex-t.txt b/Master/texmf-dist/doc/pdftex/manual/pdftex-t.txt deleted file mode 100644 index d28812f4d2a..00000000000 --- a/Master/texmf-dist/doc/pdftex/manual/pdftex-t.txt +++ /dev/null @@ -1,127 +0,0 @@ -%PDF-1.5 -%ÐÔÅØ -3 0 obj -<< -/Length 152 ->> -stream -BT -/F51 9.9626 Tf 91.925 759.927 Td -[(W)80(elcome)-250(to)-250(pdfT)]TJ -67.818 -2.241 Td [(E)]TJ 4.842 -2.241 Td [(X!)]TJ 138.924 -654.747 -Td [(1)]TJ -ET -endstream -endobj -2 0 obj -<< -/Type /Page -/Contents 3 0 R -/Resources 1 0 R -/MediaBox [0 0 595.276 841.89] -/Parent 5 0 R ->> -endobj -1 0 obj -<< -/Font << /F51 4 0 R >> -/ProcSet [ /PDF /Text ] ->> -endobj -7 0 obj -[333 408 500 500 833 778 333 333 -333 500 564 250 333 250 278 500 -500 500 500 500 500 500 500 500 -500 278 278 564 564 564 444 921 -722 667 667 722 611 556 722 722 -333 389 722 611 889 722 722 556 722 -667 556 611 722 722 944 722 722 611 -333 278 333 469 500 333 444 500 444 -500 444 333 500 500 278 278 500 278 -778 500 500 500 500 333 389 278] -endobj -8 0 obj -<< -/Type /FontDescriptor -/FontName /Times-Roman -/Flags 2 -/FontBBox [0 -216 1000 678] -/Ascent 678 -/CapHeight 651 -/Descent -216 -/ItalicAngle 0 -/StemV 83 -/XHeight 450 ->> -endobj -6 0 obj -<< -/Type /Encoding -/Differences [33/exclam 49/one -69/E 84/T 87/W/X 99/c/d/e/f 108/l/m -111/o/p 116/t] ->> -endobj -4 0 obj -<< -/Type /Font -/Subtype /Type1 -/BaseFont /Times-Roman -/FontDescriptor 8 0 R -/FirstChar 33 -/LastChar 116 -/Widths 7 0 R -/Encoding 6 0 R ->> -endobj -5 0 obj -<< -/Type /Pages -/Count 1 -/Kids [2 0 R] ->> -endobj -9 0 obj -<< -/Type /Catalog -/Pages 5 0 R ->> -endobj -10 0 obj -<< -/Producer (pdfTeX-1.40.16) -/Creator (TeX) -/CreationDate -(D:20150412174846+02'00') -/ModDate (D:20150412174846+02'00') -/Trapped /False -/PTEX.Fullbanner (This is pdfTeX, -Version 3.14159265-2.6-1.40.16 (TeX -Live 2015) kpathsea version 6.2.1) ->> -endobj -xref -0 11 -0000000000 65535 f -0000000336 00000 n -0000000225 00000 n -0000000015 00000 n -0000001058 00000 n -0000001210 00000 n -0000000939 00000 n -0000000404 00000 n -0000000757 00000 n -0000001267 00000 n -0000001316 00000 n -trailer -<< /Size 11 -/Root 9 0 R -/Info 10 0 R -/ID -[<A4BD56E9755AD5F782D7344A176F3D4D> -<A4BD56E9755AD5F782D7344A176F3D4D>] ->> -startxref -1576 -%%EOF diff --git a/Master/texmf-dist/doc/pdftex/manual/syntaxform.awk b/Master/texmf-dist/doc/pdftex/manual/syntaxform.awk index 005aeb8a5e3..cdabfe77f82 100644 --- a/Master/texmf-dist/doc/pdftex/manual/syntaxform.awk +++ b/Master/texmf-dist/doc/pdftex/manual/syntaxform.awk @@ -1,5 +1,6 @@ -#$Id: syntaxform.awk 635 2010-11-14 19:15:12Z karl $ -# pdftex-t.tex --> pdftex-syntax.txt +# $Id: syntaxform.awk 742 2016-04-25 17:30:55Z karl $ +# Public domain. Originally written by Petr Olsak. +# pdftex-syntax.tex and pdftex-t.tex --> pdftex-syntax.txt # requires gawk due to gensub() function BEGIN{ @@ -88,12 +89,16 @@ BEGIN{ gsub(/\\Next /, ""); } -/\\Whatever/ { +/\\unkern/ { + gsub(/\\unkern */, ""); +} + +/\\(Whatever|Modelist)/ { whatind = 57; - whatpos = match($0, /\\Whatever/); + whatpos = match($0, /\\(Whatever|Modelist)/); b = substr($0, 0, whatpos - 1) c = substr($0, whatpos) - c = gensub(/\\Whatever *{([^}]*)}/, "(\\1)", "g", c); + c = gensub(/\\(Whatever|Modelist) *{([^}]*)}/, "(\\2)", "g", c); $0 = b; for(i = whatpos; i < whatind; i++) $0 = $0 " "; diff --git a/Master/texmf-dist/doc/pdftex/manual/syntaxform.pl b/Master/texmf-dist/doc/pdftex/manual/syntaxform.pl new file mode 100755 index 00000000000..ad92b3ce303 --- /dev/null +++ b/Master/texmf-dist/doc/pdftex/manual/syntaxform.pl @@ -0,0 +1,131 @@ +#!/usr/bin/env perl +# $Id: syntaxform.pl 743 2016-04-25 17:34:08Z karl $ +# Public domain. Originally written by Karl Berry, 2016. +# Read pdftex-t.tex, generate pdftex-syntax.tex +# by looking for the primitive descriptions. + +use warnings; + +sub main { + my %primitive = &read_manual_for_primitives (); + + # group primitives into classes based on their \Whatever construct. + my %class; + for my $p (sort keys %primitive) { + my ($class) = $primitive{$p} =~ /\\Whatever *\{(.*?)\}/; + # general commands don't have a \Whatever. + $class = "general" if ! $class; + + # append this primitive, comma-separated. + $class{$class} .= "$p," + } + + print <<END_HEADER; +%%S \$Id: syntaxform.pl 742 2016-04-25 17:30:55Z karl \$ +%%S This is the list of new or extended primitives provided by pdftex. +%%S Don't edit this file, as it is now auto-generated from the +%%S pdfTeX manual source pdftex-t.tex (and the generated +%%S pdftex-syntax.tex) by the script syntaxform.awk. +%%S Syntax rule conventions borrowed from `TeXbook naruby' by Petr Olsak. +END_HEADER + &print_by_class (\%class, \%primitive); + return 0; +} + +{ + # classes should be shown in a specific order, + # and have specific text for the headings. + # sorry for using an array. + my %class_info = ( + "integer" => [1, "Integer registers"], + "read||only integer" => [2, "Read-only integers"], + "dimen" => [3, "Dimen registers"], + "tokens" => [4, "Token registers"], + "expandable" => [5, "Expandable commands"], + "general" => [6, "General commands"], + ); + +sub print_by_class { + my ($class_ref,$primitive_ref) = @_; + my %class = %$class_ref; + + for my $c (sort by_class keys %class) { + my $aref = $class_info{$c}; + my $heading_name = $class_info{$c}->[1]; + # the %%S lines are for syntaxform.awk + print <<END_START_CLASS; +%%S NL +%%S $heading_name: +\\subsubject{$heading_name} + +\\startpacked +END_START_CLASS + + # extract list of primitives for this class. + my @prims = split (/,/, $class{$c}); + for my $p (@prims) { + my $val = $primitive_ref->{$p}; + + # get rid of the \pdftexprimitive{ and trailing } + $val =~ s,^\\pdftexprimitive *\{,,; + $val =~ s, *\} *$,,; + + # leading \Syntax and trailing } on their own lines for syntaxform.awk. + $val =~ s,^ *\\Syntax *\{,\\Syntax\{\n,; + $val =~ s, *\} *$,\n\},; + + # collapse multiple spaces + $val =~ s, +, ,g; + + print "\n$val\n"; + } + print "\n\\stoppacked\n"; + } +} + +sub by_class { $class_info{$a}->[0] <=> $class_info{$b}->[0]; } + +} # end block for %class_info + + +# read <> for \pdftexprimitive blocks. Return hash with keys being the +# primitive name (including the leading \) and values the entire block, +# without newlines. +# +sub read_manual_for_primitives { + my $printing = 0; + my $primitive = ""; + + while (<>) { + # \pdftexprimitive block ends at next unindented blank or \... line. + $printing = 0 if /^($|\\)/; + if (/^\\pdftexprimitive/) { + $printing = 1; + + my $type; + # \tex is used for primitives specified without a leading \. + ($type,$primitive) = m/\\([Tt])ex *\{(.*?)\}/; + warn "$ARGV:$.: no primitive found in: $_" if (! $primitive); + $primitive = "\\$primitive" if $type eq "t"; + + # \pdfmovechars is still in the manual, but doesn't do anything. + # Omit it from the output. + next if $primitive eq "\\pdfmovechars"; + + # Just one case, \special, has multiple instances of \pdftexprimitive. + # kludge by appending spaces to the name to make it unique; + # we later reduce multiple spaces to one, so it's not visible. + $primitive .= " " until ! exists $primitive{$primitive}; + } + + if ($printing) { + # concatenate lines of definition; assume spacing is reasonable. + chomp; + $primitive{$primitive} .= $_; + } + } + + return %primitive; +} + +exit (&main ()); diff --git a/Master/texmf-dist/doc/pdftex/pdftex-pdfkeys/Makefile b/Master/texmf-dist/doc/pdftex/pdftex-pdfkeys/Makefile deleted file mode 100644 index b2ce911283e..00000000000 --- a/Master/texmf-dist/doc/pdftex/pdftex-pdfkeys/Makefile +++ /dev/null @@ -1,29 +0,0 @@ -# $Id: //depot/Master/texmf-dist/doc/pdftex/base/pdftex-pdfkeys/Makefile#1 $ - -SOURCE = pdftex-pdfkeys -PDFLATEX = pdflatex -THUMBPDF = thumbpdf -BIBTEX = bibtex - -SRCS = ${SOURCE}.tex fdl.tex - -########################################################## -# Rules - -all: ${SOURCE}.pdf - -${SOURCE}.bbl: ${SOURCE}.tex - ${PDFLATEX} ${SOURCE}.tex - ${BIBTEX} ${SOURCE} - -${SOURCE}.pdf: ${SRCS} ${SOURCE}.bbl - ${PDFLATEX} ${SOURCE}.tex - ${PDFLATEX} ${SOURCE}.tex - ${THUMBPDF} ${SOURCE}.pdf - ${PDFLATEX} ${SOURCE}.tex - -clean: - rm -f *.aux *.blg *.log *.lot *.ilg *.toc *.gls *.glo *.idx *.ind *.brf *.out *.tpt *.inc - -realclean: clean - rm -f *.tex *.drv *.dvi *.pdf diff --git a/Master/texmf-dist/doc/pdftex/pdftex-pdfkeys/fdl.tex b/Master/texmf-dist/doc/pdftex/pdftex-pdfkeys/fdl.tex deleted file mode 100644 index bbccbb2e73d..00000000000 --- a/Master/texmf-dist/doc/pdftex/pdftex-pdfkeys/fdl.tex +++ /dev/null @@ -1,368 +0,0 @@ -% fdl.tex -% This file is a chapter. It must be included in a larger document to work -% properly. - -\chapter{GNU Free Documentation License} -\label{chap:fdl} - -Version 1.1, March 2000 - - Copyright \copyright\ 2000 Free Software Foundation, Inc.\\ - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\\ - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - -\section*{Preamble} - -The purpose of this License is to make a manual, textbook, or other -written document ``free'' in the sense of freedom: to assure everyone -the effective freedom to copy and redistribute it, with or without -modifying it, either commercially or noncommercially. Secondarily, -this License preserves for the author and publisher a way to get -credit for their work, while not being considered responsible for -modifications made by others. - -This License is a kind of ``copyleft'', which means that derivative -works of the document must themselves be free in the same sense. It -complements the GNU General Public License, which is a copyleft -license designed for free software. - -We have designed this License in order to use it for manuals for free -software, because free software needs free documentation: a free -program should come with manuals providing the same freedoms that the -software does. But this License is not limited to software manuals; -it can be used for any textual work, regardless of subject matter or -whether it is published as a printed book. We recommend this License -principally for works whose purpose is instruction or reference. - -\section{Applicability and Definitions} - -This License applies to any manual or other work that contains a -notice placed by the copyright holder saying it can be distributed -under the terms of this License. The ``Document'', below, refers to any -such manual or work. Any member of the public is a licensee, and is -addressed as ``you''. - -A ``Modified Version'' of the Document means any work containing the -Document or a portion of it, either copied verbatim, or with -modifications and/or translated into another language. - -A ``Secondary Section'' is a named appendix or a front-matter section of -the Document that deals exclusively with the relationship of the -publishers or authors of the Document to the Document's overall subject -(or to related matters) and contains nothing that could fall directly -within that overall subject. (For example, if the Document is in part a -textbook of mathematics, a Secondary Section may not explain any -mathematics.) The relationship could be a matter of historical -connection with the subject or with related matters, or of legal, -commercial, philosophical, ethical or political position regarding -them. - -The ``Invariant Sections'' are certain Secondary Sections whose titles -are designated, as being those of Invariant Sections, in the notice -that says that the Document is released under this License. - -The ``Cover Texts'' are certain short passages of text that are listed, -as Front-Cover Texts or Back-Cover Texts, in the notice that says that -the Document is released under this License. - -A ``Transparent'' copy of the Document means a machine-readable copy, -represented in a format whose specification is available to the -general public, whose contents can be viewed and edited directly and -straightforwardly with generic text editors or (for images composed of -pixels) generic paint programs or (for drawings) some widely available -drawing editor, and that is suitable for input to text formatters or -for automatic translation to a variety of formats suitable for input -to text formatters. A copy made in an otherwise Transparent file -format whose markup has been designed to thwart or discourage -subsequent modification by readers is not Transparent. A copy that is -not ``Transparent'' is called ``Opaque''. - -Examples of suitable formats for Transparent copies include plain -ASCII without markup, Texinfo input format, \LaTeX~input format, SGML -or XML using a publicly available DTD, and standard-conforming simple -HTML designed for human modification. Opaque formats include -PostScript, PDF, proprietary formats that can be read and edited only -by proprietary word processors, SGML or XML for which the DTD and/or -processing tools are not generally available, and the -machine-generated HTML produced by some word processors for output -purposes only. - -The ``Title Page'' means, for a printed book, the title page itself, -plus such following pages as are needed to hold, legibly, the material -this License requires to appear in the title page. For works in -formats which do not have any title page as such, ``Title Page'' means -the text near the most prominent appearance of the work's title, -preceding the beginning of the body of the text. - - -\section{Verbatim Copying} - -You may copy and distribute the Document in any medium, either -commercially or noncommercially, provided that this License, the -copyright notices, and the license notice saying this License applies -to the Document are reproduced in all copies, and that you add no other -conditions whatsoever to those of this License. You may not use -technical measures to obstruct or control the reading or further -copying of the copies you make or distribute. However, you may accept -compensation in exchange for copies. If you distribute a large enough -number of copies you must also follow the conditions in section 3. - -You may also lend copies, under the same conditions stated above, and -you may publicly display copies. - - -\section{Copying in Quantity} - -If you publish printed copies of the Document numbering more than 100, -and the Document's license notice requires Cover Texts, you must enclose -the copies in covers that carry, clearly and legibly, all these Cover -Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on -the back cover. Both covers must also clearly and legibly identify -you as the publisher of these copies. The front cover must present -the full title with all words of the title equally prominent and -visible. You may add other material on the covers in addition. -Copying with changes limited to the covers, as long as they preserve -the title of the Document and satisfy these conditions, can be treated -as verbatim copying in other respects. - -If the required texts for either cover are too voluminous to fit -legibly, you should put the first ones listed (as many as fit -reasonably) on the actual cover, and continue the rest onto adjacent -pages. - -If you publish or distribute Opaque copies of the Document numbering -more than 100, you must either include a machine-readable Transparent -copy along with each Opaque copy, or state in or with each Opaque copy -a publicly-accessible computer-network location containing a complete -Transparent copy of the Document, free of added material, which the -general network-using public has access to download anonymously at no -charge using public-standard network protocols. If you use the latter -option, you must take reasonably prudent steps, when you begin -distribution of Opaque copies in quantity, to ensure that this -Transparent copy will remain thus accessible at the stated location -until at least one year after the last time you distribute an Opaque -copy (directly or through your agents or retailers) of that edition to -the public. - -It is requested, but not required, that you contact the authors of the -Document well before redistributing any large number of copies, to give -them a chance to provide you with an updated version of the Document. - - -\section{Modifications} - -You may copy and distribute a Modified Version of the Document under -the conditions of sections 2 and 3 above, provided that you release -the Modified Version under precisely this License, with the Modified -Version filling the role of the Document, thus licensing distribution -and modification of the Modified Version to whoever possesses a copy -of it. In addition, you must do these things in the Modified Version: - -\begin{itemize} - -\item Use in the Title Page (and on the covers, if any) a title distinct - from that of the Document, and from those of previous versions - (which should, if there were any, be listed in the History section - of the Document). You may use the same title as a previous version - if the original publisher of that version gives permission. -\item List on the Title Page, as authors, one or more persons or entities - responsible for authorship of the modifications in the Modified - Version, together with at least five of the principal authors of the - Document (all of its principal authors, if it has less than five). -\item State on the Title page the name of the publisher of the - Modified Version, as the publisher. -\item Preserve all the copyright notices of the Document. -\item Add an appropriate copyright notice for your modifications - adjacent to the other copyright notices. -\item Include, immediately after the copyright notices, a license notice - giving the public permission to use the Modified Version under the - terms of this License, in the form shown in the Addendum below. -\item Preserve in that license notice the full lists of Invariant Sections - and required Cover Texts given in the Document's license notice. -\item Include an unaltered copy of this License. -\item Preserve the section entitled ``History'', and its title, and add to - it an item stating at least the title, year, new authors, and - publisher of the Modified Version as given on the Title Page. If - there is no section entitled ``History'' in the Document, create one - stating the title, year, authors, and publisher of the Document as - given on its Title Page, then add an item describing the Modified - Version as stated in the previous sentence. -\item Preserve the network location, if any, given in the Document for - public access to a Transparent copy of the Document, and likewise - the network locations given in the Document for previous versions - it was based on. These may be placed in the ``History'' section. - You may omit a network location for a work that was published at - least four years before the Document itself, or if the original - publisher of the version it refers to gives permission. -\item In any section entitled ``Acknowledgements'' or ``Dedications'', - preserve the section's title, and preserve in the section all the - substance and tone of each of the contributor acknowledgements - and/or dedications given therein. -\item Preserve all the Invariant Sections of the Document, - unaltered in their text and in their titles. Section numbers - or the equivalent are not considered part of the section titles. -\item Delete any section entitled ``Endorsements''. Such a section - may not be included in the Modified Version. -\item Do not retitle any existing section as ``Endorsements'' - or to conflict in title with any Invariant Section. - -\end{itemize} - -If the Modified Version includes new front-matter sections or -appendices that qualify as Secondary Sections and contain no material -copied from the Document, you may at your option designate some or all -of these sections as invariant. To do this, add their titles to the -list of Invariant Sections in the Modified Version's license notice. -These titles must be distinct from any other section titles. - -You may add a section entitled ``Endorsements'', provided it contains -nothing but endorsements of your Modified Version by various -parties -- for example, statements of peer review or that the text has -been approved by an organization as the authoritative definition of a -standard. - -You may add a passage of up to five words as a Front-Cover Text, and a -passage of up to 25 words as a Back-Cover Text, to the end of the list -of Cover Texts in the Modified Version. Only one passage of -Front-Cover Text and one of Back-Cover Text may be added by (or -through arrangements made by) any one entity. If the Document already -includes a cover text for the same cover, previously added by you or -by arrangement made by the same entity you are acting on behalf of, -you may not add another; but you may replace the old one, on explicit -permission from the previous publisher that added the old one. - -The author(s) and publisher(s) of the Document do not by this License -give permission to use their names for publicity for or to assert or -imply endorsement of any Modified Version. - - -\section{Combining Documents} - -You may combine the Document with other documents released under this -License, under the terms defined in section 4 above for modified -versions, provided that you include in the combination all of the -Invariant Sections of all of the original documents, unmodified, and -list them all as Invariant Sections of your combined work in its -license notice. - -The combined work need only contain one copy of this License, and -multiple identical Invariant Sections may be replaced with a single -copy. If there are multiple Invariant Sections with the same name but -different contents, make the title of each such section unique by -adding at the end of it, in parentheses, the name of the original -author or publisher of that section if known, or else a unique number. -Make the same adjustment to the section titles in the list of -Invariant Sections in the license notice of the combined work. - -In the combination, you must combine any sections entitled ``History'' -in the various original documents, forming one section entitled -``History''; likewise combine any sections entitled ``Acknowledgements'', -and any sections entitled ``Dedications''. You must delete all sections -entitled ``Endorsements.'' - - -\section{Collections of Documents} - -You may make a collection consisting of the Document and other documents -released under this License, and replace the individual copies of this -License in the various documents with a single copy that is included in -the collection, provided that you follow the rules of this License for -verbatim copying of each of the documents in all other respects. - -You may extract a single document from such a collection, and distribute -it individually under this License, provided you insert a copy of this -License into the extracted document, and follow this License in all -other respects regarding verbatim copying of that document. - - - -\section{Aggregation With Independent Works} - -A compilation of the Document or its derivatives with other separate -and independent documents or works, in or on a volume of a storage or -distribution medium, does not as a whole count as a Modified Version -of the Document, provided no compilation copyright is claimed for the -compilation. Such a compilation is called an ``aggregate'', and this -License does not apply to the other self-contained works thus compiled -with the Document, on account of their being thus compiled, if they -are not themselves derivative works of the Document. - -If the Cover Text requirement of section 3 is applicable to these -copies of the Document, then if the Document is less than one quarter -of the entire aggregate, the Document's Cover Texts may be placed on -covers that surround only the Document within the aggregate. -Otherwise they must appear on covers around the whole aggregate. - - -\section{Translation} - -Translation is considered a kind of modification, so you may -distribute translations of the Document under the terms of section 4. -Replacing Invariant Sections with translations requires special -permission from their copyright holders, but you may include -translations of some or all Invariant Sections in addition to the -original versions of these Invariant Sections. You may include a -translation of this License provided that you also include the -original English version of this License. In case of a disagreement -between the translation and the original English version of this -License, the original English version will prevail. - - -\section{Termination} - -You may not copy, modify, sublicense, or distribute the Document except -as expressly provided for under this License. Any other attempt to -copy, modify, sublicense or distribute the Document is void, and will -automatically terminate your rights under this License. However, -parties who have received copies, or rights, from you under this -License will not have their licenses terminated so long as such -parties remain in full compliance. - - -\section{Future Revisions of This License} - -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/. - -Each version of the License is given a distinguishing version number. -If the Document specifies that a particular numbered version of this -License "or any later version" applies to it, you have the option of -following the terms and conditions either of that specified version or -of any later version that has been published (not as a draft) by the -Free Software Foundation. If the Document does not specify a version -number of this License, you may choose any version ever published (not -as a draft) by the Free Software Foundation. - -\section*{ADDENDUM: How to use this License for your documents} - -To use this License in a document you have written, include a copy of -the License in the document and put the following copyright and -license notices just after the title page: - -\begin{quote} - - Copyright \copyright\ YEAR YOUR NAME. - Permission is granted to copy, distribute and/or modify this document - under the terms of the GNU Free Documentation License, Version 1.1 - or any later version published by the Free Software Foundation; - with the Invariant Sections being LIST THEIR TITLES, with the - Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. - A copy of the license is included in the section entitled ``GNU - Free Documentation License''. - -\end{quote} - -If you have no Invariant Sections, write ``with no Invariant Sections'' -instead of saying which ones are invariant. If you have no -Front-Cover Texts, write ``no Front-Cover Texts'' instead of -``Front-Cover Texts being LIST''; likewise for Back-Cover Texts. - -If your document contains nontrivial examples of program code, we -recommend releasing these examples in parallel under your choice of -free software license, such as the GNU General Public License, -to permit their use in free software. - diff --git a/Master/texmf-dist/doc/pdftex/pdftex-pdfkeys/pdftex-pdfkeys.bbl b/Master/texmf-dist/doc/pdftex/pdftex-pdfkeys/pdftex-pdfkeys.bbl deleted file mode 100644 index d66386716ab..00000000000 --- a/Master/texmf-dist/doc/pdftex/pdftex-pdfkeys/pdftex-pdfkeys.bbl +++ /dev/null @@ -1,16 +0,0 @@ -\input bibnames.sty \input path.sty \ifx \POSTSCRIPT \undefined \def - \POSTSCRIPT {{Post\-Script}} \fi\hyphenation{Ker-n-i-ghan Port-able - Post-Script Pren-tice Richt-er Spring-er} -\begin{thebibliography}{1} - -\bibitem{Adobe:2000:PRA} -{Adobe Systems Incorporated}. -\newblock {\em {PDF} reference: {Adobe} portable document format, version 1.3}. -\newblock Ad{\-d}i{\-s}on-Wes{\-l}ey, Reading, MA, USA, second edition, 2000. - -\bibitem{Adobe:2001:PRA} -{Adobe Systems Incorporated}. -\newblock {\em {PDF} reference: {Adobe} portable document format, version 1.4}. -\newblock Ad{\-d}i{\-s}on-Wes{\-l}ey, Reading, MA, USA, third edition, 2001. - -\end{thebibliography} diff --git a/Master/texmf-dist/doc/pdftex/pdftex-pdfkeys/pdftex-pdfkeys.pdf b/Master/texmf-dist/doc/pdftex/pdftex-pdfkeys/pdftex-pdfkeys.pdf Binary files differdeleted file mode 100644 index f25cd03da51..00000000000 --- a/Master/texmf-dist/doc/pdftex/pdftex-pdfkeys/pdftex-pdfkeys.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/pdftex/pdftex-pdfkeys/pdftex-pdfkeys.tex b/Master/texmf-dist/doc/pdftex/pdftex-pdfkeys/pdftex-pdfkeys.tex deleted file mode 100644 index 3055c903c6f..00000000000 --- a/Master/texmf-dist/doc/pdftex/pdftex-pdfkeys/pdftex-pdfkeys.tex +++ /dev/null @@ -1,210 +0,0 @@ -% $Id: //depot/Master/texmf-dist/doc/pdftex/base/pdftex-pdfkeys/pdftex-pdfkeys.tex#1 $ -% Copyright (c) 2001 Martin Schröder -% Permission is granted to copy, distribute and/or modify this document -% under the terms of the GNU Free Documentation License, Version 1.1 or -% any later version published by the Free Software Foundation; with -% no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover -% Texts. -% A copy of the license is included in the appendix entitled "GNU Free -% Documentation License". -% -% The layout of this document tries to mimic that of the PDF reference. -\pdfoutput=1 -\pdfcompresslevel=9 -\pdfdecimaldigits=5 -\documentclass[a4paper,oneside,bibtotoc,openany,pdftex]{scrbook} -\usepackage[latin1]{inputenc} -\usepackage[pdfpagelabels]{hyperref} -\usepackage{thumbpdf} -\usepackage{filecontents} -\usepackage{ltxtable,booktabs} -\usepackage{xspace} -\usepackage{relsize} -\usepackage{prelim2e} -\newcommand{\documentversion}{0.12} -\renewcommand{\PrelimText}{% - \textnormal{% - \footnotesize% - \PrelimTextStyle% - Version \documentversion{} -- 2002-05-10 - }% - } - -%-------------- - -\hypersetup{colorlinks, - bookmarksnumbered, - pdftitle={Additional PDF keys inserted by pdfTeX}, - pdfauthor={Martin Schröder}} - -\newenvironment{keytable}[1] -% Usage: -% \begin{filecontents}{foo} -% \begin{keytable}{caption} -% \pdfkey... -% \end{keytable} -% \end{filecontents} -% \LTXtable{\textwidth}{foo} - {% - \begin{longtable}{ll>{\raggedright}X} - \caption{#1}\belowpdfbookmark{Table \thetable{} #1}{table:\thetable}\\ - \toprule - \sffamily\slshape Key & \sffamily\slshape Type & \sffamily\slshape Semantics \tabularnewline - \midrule\addlinespace[1ex] - \endfirsthead - \caption[]{(continued)}\\ - \toprule - \sffamily\slshape Key & \sffamily\slshape Type & \sffamily\slshape Semantics \tabularnewline - \midrule\addlinespace[1ex] - \endhead - \bottomrule - \endfoot - }{\end{longtable}% - } -\newcommand*{\pdfkey}[3]{\bfseries #1 & #2 & #3\tabularnewline} - -\newenvironment{history} - {% - \begin{longtable}{lll>{\raggedright}X} - \caption{History}\belowpdfbookmark{Table \thetable{} History}{table:\thetable}\\ - \toprule - Version & When & Who & What \tabularnewline - \midrule\addlinespace[1ex] - \endfirsthead - \caption[]{(continued)}\\ - \toprule - Version & When & Who & What \tabularnewline - \midrule\addlinespace[1ex] - \endhead - \bottomrule - \endfoot - }{\end{longtable}% - } -\newcommand*{\historyentry}[4]{#1 & #2 & #3 & #4\tabularnewline} - -%-------------- - -\deffootnote{1em}{1em}{\textsuperscript{\normalfont{\thefootnotemark}}} - -%-------------- - -\newcommand{\pt}{pdf\TeX\xspace} -\newcommand{\eg}{e.\,g.\xspace} -\newcommand*{\key}[1]{\textsf{\textbf{#1}}\xspace} - -%-------------- -\begin{document} -\frontmatter -\title{Additional PDF keys inserted by \pt\\[1ex] - \relsize{-2} Version \documentversion} -\author{Martin Schröder% - \thanks{ArtCom GmbH\newline - Grazer Straße 8\newline - 28359 Bremen\newline - Germany\newline - \texttt{ms@artcom-gmbh.de}} - } -\maketitle - -\tableofcontents -\listoftables - -%-------------- - -\chapter*{Copyright} - -Permission is granted to copy, distribute and/or modify this document under the -terms of the GNU Free Documentation License, Version 1.1 or any later version -published by the Free Software Foundation; with no Invariant Sections, with no -Front-Cover Texts, and with no Back-Cover Texts. -A copy of the license is included in appendix \ref{chap:fdl}. - -%-------------- -\mainmatter -\chapter{Introduction} - -A PDF document should contain only the structures and attributes defined in -the PDF specification \cite{Adobe:2001:PRA}. -But the specification allows applications to insert additional keys, -provided they follow certain rules \cite[Appendix F]{Adobe:2001:PRA}. - -The most important rule is that developers have to register with Adobe prefixes -for the keys they want to insert. -This has been done for \pt: Hans Hagen has registered the prefix ``PTEX''. - -As this prefix is all caps keys should start with an additional ``.''. - -\section{History} -\begin{filecontents}{ltxtable.inc} -\begin{history} -\historyentry{0.12} - {2002-05-10} - {Martin Schr\"oder} - {Fixed typo in Copyright; refer to \cite{Adobe:2001:PRA} - instead of \cite{Adobe:2000:PRA} and updated the terminology.} -\historyentry{0.11} - {2001-11-05} - {Martin Schr\"oder} - {Added \key{PTEX.InfoDict}} -\historyentry{0.1} - {2001-10-10} - {Martin Schr\"oder} - {Initial version} -\end{history} -\end{filecontents} -\LTXtable{\textwidth}{ltxtable.inc} - -%-------------- -\chapter{XObjects (included PDF)} - -\pt generates an XObject for every included PDF. -The dictionary of this object contains these additional keys: - -\begin{filecontents}{ltxtable.inc} -\begin{keytable}{Attributes in XObjects of included PDF} -\pdfkey{PTEX.FileName}{string}{The name of the included file as seen by \pt.} -\pdfkey{PTEX.InfoDict}{dictionary}{\emph{(Indirect)} The document - information dictionary of the included - PDF.} -\pdfkey{PTEX.PageNumber}{integer}{The page number of the included file.} -\end{keytable} -\end{filecontents} -\LTXtable{\textwidth}{ltxtable.inc} - -%-------------- -\chapter{Document Catalog} - -Although it would seem more natural to put this infomation in the document -information dictionary, the PDF reference says -\cite[p.\,575]{Adobe:2001:PRA}: -\begin{quote} -Although viewer applications can store custom metadata in the document -information dictionary, it is inappropriate to store private content or -structural information there; such information should be stored in the -document catalog instead (see Section 3.6.1, Document Catalog). -\end{quote} - -\begin{filecontents}{ltxtable.inc} -\begin{keytable}{Catalog attributes} -\pdfkey{PTEX.Fullbanner}{string}{The full version of the \pt binary that - produced the file as displayed by - \texttt{pdftex -\/-version}, \eg\ ``This is - pdfTeX, Version - 3.14159-1.00a-pretest-ArtCom-20011008''.\newline - This is necessary because the string in the - \key{Producer} key in the Info dictionary - is rather short, \eg\ ``pdfTeX-1.0a-pdfcrypt''.} -\end{keytable} -\end{filecontents} -\LTXtable{\textwidth}{ltxtable.inc} - -%-------------- -\appendix -\include{fdl} - -%-------------- -\backmatter -\bibliographystyle{plain} -\bibliography{postscri} - -\end{document} diff --git a/Master/texmf-dist/doc/pdftex/manual/samplepdf/cmr10.103 b/Master/texmf-dist/doc/pdftex/samplepdftex/cmr10.103 index 0db63e98926..0db63e98926 100644 --- a/Master/texmf-dist/doc/pdftex/manual/samplepdf/cmr10.103 +++ b/Master/texmf-dist/doc/pdftex/samplepdftex/cmr10.103 diff --git a/Master/texmf-dist/doc/pdftex/manual/samplepdf/obj.dat b/Master/texmf-dist/doc/pdftex/samplepdftex/obj.dat index 40f513288ba..40f513288ba 100644 --- a/Master/texmf-dist/doc/pdftex/manual/samplepdf/obj.dat +++ b/Master/texmf-dist/doc/pdftex/samplepdftex/obj.dat diff --git a/Master/texmf-dist/doc/pdftex/manual/samplepdf/pdfcolor.tex b/Master/texmf-dist/doc/pdftex/samplepdftex/pdfcolor.tex index f09ecbcb750..f09ecbcb750 100644 --- a/Master/texmf-dist/doc/pdftex/manual/samplepdf/pdfcolor.tex +++ b/Master/texmf-dist/doc/pdftex/samplepdftex/pdfcolor.tex diff --git a/Master/texmf-dist/doc/pdftex/manual/samplepdf/pic.eps b/Master/texmf-dist/doc/pdftex/samplepdftex/pic.eps index b3dd0d71da4..b3dd0d71da4 100644 --- a/Master/texmf-dist/doc/pdftex/manual/samplepdf/pic.eps +++ b/Master/texmf-dist/doc/pdftex/samplepdftex/pic.eps diff --git a/Master/texmf-dist/doc/pdftex/manual/samplepdf/pic.jpg b/Master/texmf-dist/doc/pdftex/samplepdftex/pic.jpg Binary files differindex 4ae57de4699..4ae57de4699 100644 --- a/Master/texmf-dist/doc/pdftex/manual/samplepdf/pic.jpg +++ b/Master/texmf-dist/doc/pdftex/samplepdftex/pic.jpg diff --git a/Master/texmf-dist/doc/pdftex/manual/samplepdf/pic.mps b/Master/texmf-dist/doc/pdftex/samplepdftex/pic.mps index d44fbb6eb50..d44fbb6eb50 100644 --- a/Master/texmf-dist/doc/pdftex/manual/samplepdf/pic.mps +++ b/Master/texmf-dist/doc/pdftex/samplepdftex/pic.mps diff --git a/Master/texmf-dist/doc/pdftex/manual/samplepdf/pic.pdf b/Master/texmf-dist/doc/pdftex/samplepdftex/pic.pdf Binary files differindex 4f20d12a6d0..4f20d12a6d0 100644 --- a/Master/texmf-dist/doc/pdftex/manual/samplepdf/pic.pdf +++ b/Master/texmf-dist/doc/pdftex/samplepdftex/pic.pdf diff --git a/Master/texmf-dist/doc/pdftex/manual/samplepdf/pic.png b/Master/texmf-dist/doc/pdftex/samplepdftex/pic.png Binary files differindex d1b0a2e57c4..d1b0a2e57c4 100644 --- a/Master/texmf-dist/doc/pdftex/manual/samplepdf/pic.png +++ b/Master/texmf-dist/doc/pdftex/samplepdftex/pic.png diff --git a/Master/texmf-dist/doc/pdftex/manual/samplepdf/pic16.png b/Master/texmf-dist/doc/pdftex/samplepdftex/pic16.png Binary files differindex 2ba28d80cd8..2ba28d80cd8 100644 --- a/Master/texmf-dist/doc/pdftex/manual/samplepdf/pic16.png +++ b/Master/texmf-dist/doc/pdftex/samplepdftex/pic16.png diff --git a/Master/texmf-dist/doc/pdftex/manual/samplepdf/rgb.icc b/Master/texmf-dist/doc/pdftex/samplepdftex/rgb.icc Binary files differindex d9c712f6905..d9c712f6905 100644 --- a/Master/texmf-dist/doc/pdftex/manual/samplepdf/rgb.icc +++ b/Master/texmf-dist/doc/pdftex/samplepdftex/rgb.icc diff --git a/Master/texmf-dist/doc/pdftex/manual/samplepdf/samplepdf.0 b/Master/texmf-dist/doc/pdftex/samplepdftex/samplepdf.0 index 9622d8d13fd..9622d8d13fd 100644 --- a/Master/texmf-dist/doc/pdftex/manual/samplepdf/samplepdf.0 +++ b/Master/texmf-dist/doc/pdftex/samplepdftex/samplepdf.0 diff --git a/Master/texmf-dist/doc/pdftex/manual/samplepdf/samplepdf.1 b/Master/texmf-dist/doc/pdftex/samplepdftex/samplepdf.1 index bf4ae64862d..bf4ae64862d 100644 --- a/Master/texmf-dist/doc/pdftex/manual/samplepdf/samplepdf.1 +++ b/Master/texmf-dist/doc/pdftex/samplepdftex/samplepdf.1 diff --git a/Master/texmf-dist/doc/pdftex/manual/samplepdf/samplepdf.tex b/Master/texmf-dist/doc/pdftex/samplepdftex/samplepdf.tex index a8ac378488a..a8ac378488a 100644 --- a/Master/texmf-dist/doc/pdftex/manual/samplepdf/samplepdf.tex +++ b/Master/texmf-dist/doc/pdftex/samplepdftex/samplepdf.tex diff --git a/Master/texmf-dist/doc/pdftex/manual/samplepdf/supp-mis.tex b/Master/texmf-dist/doc/pdftex/samplepdftex/supp-mis.tex index ab089a297e1..ab089a297e1 100644 --- a/Master/texmf-dist/doc/pdftex/manual/samplepdf/supp-mis.tex +++ b/Master/texmf-dist/doc/pdftex/samplepdftex/supp-mis.tex diff --git a/Master/texmf-dist/doc/pdftex/manual/samplepdf/supp-pdf.tex b/Master/texmf-dist/doc/pdftex/samplepdftex/supp-pdf.tex index 184cfb81582..184cfb81582 100644 --- a/Master/texmf-dist/doc/pdftex/manual/samplepdf/supp-pdf.tex +++ b/Master/texmf-dist/doc/pdftex/samplepdftex/supp-pdf.tex diff --git a/Master/texmf-dist/doc/pdftex/manual/samplepdf/tmp.pdf b/Master/texmf-dist/doc/pdftex/samplepdftex/tmp.pdf Binary files differindex 3ce979ebf0c..3ce979ebf0c 100644 --- a/Master/texmf-dist/doc/pdftex/manual/samplepdf/tmp.pdf +++ b/Master/texmf-dist/doc/pdftex/samplepdftex/tmp.pdf diff --git a/Master/texmf-dist/doc/pdftex/tests/01-fake-interword-space/Makefile b/Master/texmf-dist/doc/pdftex/tests/01-fake-interword-space/Makefile new file mode 100644 index 00000000000..1af4806137c --- /dev/null +++ b/Master/texmf-dist/doc/pdftex/tests/01-fake-interword-space/Makefile @@ -0,0 +1,5 @@ +test: + ../../source/build-pdftex/texk/web2c/pdftex -ini fake-interword-space.tex + +clean: + rm -f fake-interword-space.log fake-interword-space.pdf diff --git a/Master/texmf-dist/doc/pdftex/tests/01-fake-interword-space/dummy-space.pfb b/Master/texmf-dist/doc/pdftex/tests/01-fake-interword-space/dummy-space.pfb Binary files differnew file mode 100644 index 00000000000..46390162be3 --- /dev/null +++ b/Master/texmf-dist/doc/pdftex/tests/01-fake-interword-space/dummy-space.pfb diff --git a/Master/texmf-dist/doc/pdftex/tests/01-fake-interword-space/dummy-space.tfm b/Master/texmf-dist/doc/pdftex/tests/01-fake-interword-space/dummy-space.tfm Binary files differnew file mode 100644 index 00000000000..fc0719e1a57 --- /dev/null +++ b/Master/texmf-dist/doc/pdftex/tests/01-fake-interword-space/dummy-space.tfm diff --git a/Master/texmf-dist/doc/pdftex/01-fake-interword-space/fake-interword-space.tex b/Master/texmf-dist/doc/pdftex/tests/01-fake-interword-space/fake-interword-space.tex index 09d7bff39f4..09d7bff39f4 100644 --- a/Master/texmf-dist/doc/pdftex/01-fake-interword-space/fake-interword-space.tex +++ b/Master/texmf-dist/doc/pdftex/tests/01-fake-interword-space/fake-interword-space.tex diff --git a/Master/texmf-dist/doc/pdftex/tests/03-deterministic-output/Makefile b/Master/texmf-dist/doc/pdftex/tests/03-deterministic-output/Makefile new file mode 100644 index 00000000000..cbf7ee13b25 --- /dev/null +++ b/Master/texmf-dist/doc/pdftex/tests/03-deterministic-output/Makefile @@ -0,0 +1,43 @@ +# $Id: Makefile 740 2016-04-23 15:08:37Z karl $ +# Public domain. + +include ../Common.mak + +test1: + $(prog) test-no-date-id.tex + +test2: + $(prog) test-fixed-date-id.tex + +test = test-SOURCE_DATE_EPOCH +# test invalid settings of the envvar. +test3-invalid: + -SOURCE_DATE_EPOCH=" " $(prog) $(test).tex + -SOURCE_DATE_EPOCH=abc123 $(prog) $(test).tex + -SOURCE_DATE_EPOCH=0.0 $(prog) $(test).tex + -SOURCE_DATE_EPOCH=-1 $(prog) $(test).tex + -SOURCE_DATE_EPOCH=123abc $(prog) $(test).tex + -SOURCE_DATE_EPOCH=994399281551439928155 $(prog) $(test).tex + +test3-orig.pdf: + $(prog) $(test).tex && mv $(test).pdf $@ + +# test valid settings of the envvar. +test3-valid: test3-orig.pdf test3-repro.pdf + SOURCE_DATE_EPOCH=0 $(prog) $(test).tex + SOURCE_DATE_EPOCH="" $(prog) $(test).tex # same as 0 + -$(diff) $< $(test).pdf # shows differences + SOURCE_DATE_EPOCH=10 $(prog) $(test).tex + $(diff) test3-repro.pdf $(test).pdf # should be identical +# SOURCE_DATE_EPOCH=1439928155 $(prog) $(test).tex + +# make an original with nonzero time for checking. +test3-repro.pdf: + SOURCE_DATE_EPOCH=10 $(prog) $(test).tex && mv $(test).pdf $@ + +clean: + rm -f *.log *.pdf *.fmt *.aux + +fmt: + $(prog) *pdflatex.ini + $(prog) *pdfetex.ini diff --git a/Master/texmf-dist/doc/pdftex/tests/03-deterministic-output/test-SOURCE_DATE_EPOCH.tex b/Master/texmf-dist/doc/pdftex/tests/03-deterministic-output/test-SOURCE_DATE_EPOCH.tex new file mode 100644 index 00000000000..bc037ea01ce --- /dev/null +++ b/Master/texmf-dist/doc/pdftex/tests/03-deterministic-output/test-SOURCE_DATE_EPOCH.tex @@ -0,0 +1,10 @@ +\input plain.tex +\input pdftexconfig.tex +\input pdftexmagfix.tex +\pdfcompresslevel=0 +\pdfobjcompresslevel=0 + +abc +\eject +def +\bye diff --git a/Master/texmf-dist/doc/pdftex/tests/03-deterministic-output/test-fixed-date-id.tex b/Master/texmf-dist/doc/pdftex/tests/03-deterministic-output/test-fixed-date-id.tex new file mode 100644 index 00000000000..933ed1b5f59 --- /dev/null +++ b/Master/texmf-dist/doc/pdftex/tests/03-deterministic-output/test-fixed-date-id.tex @@ -0,0 +1,16 @@ +\input plain.tex +\input pdftexconfig.tex +\input pdftexmagfix.tex +\pdfcompresslevel=0 +\pdfobjcompresslevel=0 + +\pdfinfo{% + /ModDate (D:20150813230402+02'00') + /CreationDate (D:20150813230402+02'00') +} +\pdftrailerid{test-fixed-date-id.tex:20150813230402+02'00'} + +abc +\eject +def +\bye diff --git a/Master/texmf-dist/doc/pdftex/tests/03-deterministic-output/test-no-date-id.tex b/Master/texmf-dist/doc/pdftex/tests/03-deterministic-output/test-no-date-id.tex new file mode 100644 index 00000000000..c8ebf176f4f --- /dev/null +++ b/Master/texmf-dist/doc/pdftex/tests/03-deterministic-output/test-no-date-id.tex @@ -0,0 +1,13 @@ +\input plain.tex +\input pdftexconfig.tex +\input pdftexmagfix.tex +\pdfcompresslevel=0 +\pdfobjcompresslevel=0 + +\pdfinfoomitdate=1 +\pdftrailerid{} + +abc +\eject +def +\bye diff --git a/Master/texmf-dist/doc/pdftex/tests/04-pdfsuppressptexinfo/Makefile b/Master/texmf-dist/doc/pdftex/tests/04-pdfsuppressptexinfo/Makefile new file mode 100644 index 00000000000..6e176ae9742 --- /dev/null +++ b/Master/texmf-dist/doc/pdftex/tests/04-pdfsuppressptexinfo/Makefile @@ -0,0 +1,40 @@ +# $Id: Makefile 740 2016-04-23 15:08:37Z karl $ +# Public domain. + +include ../Common.mak + +all: abc-diff testptex-diff testdate-diff testtrailer-diff + +abc abc.pdf: + $(env) $(prog) '\pdfsuppressptexinfo=1\input' abc.tex </dev/null + +abc-orig.pdf: + $(env) $(prog) abc.tex </dev/null && mv abc.pdf $@ +abc-diff: abc-orig.pdf abc.pdf + -$(diff) $^ # /PTEX.Fullbanner should be gone + +testptex = test-pdfsuppressptexinfo +$(testptex)-orig.pdf: $(testptex).tex abc.pdf + $(env) $(prog) $(testptex).tex </dev/null \ + && mv $(testptex).pdf $(testptex)-orig.pdf +$(testptex).pdf: $(testptex).tex abc.pdf Makefile + $(env) $(prog) '\pdfsuppressptexinfo=-1\input' $(testptex).tex \ + </dev/null +testptex-diff: $(testptex)-orig.pdf $(testptex).pdf + -$(diff) $^ # all /PTEX.* should be gone + +# these are also tested in ../03-deterministic-output, but can try them here. +testdate = test-pdfinfoomitdate +$(testdate).pdf: $(testdate).tex abc.pdf + $(env) $(prog) $(testdate).tex </dev/null +testdate-diff: $(testptex)-orig.pdf $(testdate).pdf + -$(diff) $^ # /CreationDate, /ModDate should be gone + +testtrailer = test-pdftrailer +$(testtrailer).pdf: $(testtrailer).tex abc.pdf + $(env) $(prog) $(testtrailer).tex </dev/null +testtrailer-diff: $(testptex)-orig.pdf $(testtrailer).pdf + -$(diff) $^ # new /mytrlrkey, dates+id should be different + +clean: + rm -f *.log *.pdf *.fmt *.aux diff --git a/Master/texmf-dist/doc/pdftex/tests/04-pdfsuppressptexinfo/abc.tex b/Master/texmf-dist/doc/pdftex/tests/04-pdfsuppressptexinfo/abc.tex new file mode 100644 index 00000000000..045ccbcd2f8 --- /dev/null +++ b/Master/texmf-dist/doc/pdftex/tests/04-pdfsuppressptexinfo/abc.tex @@ -0,0 +1,10 @@ +% $Id: abc.tex 737 2016-03-21 22:54:16Z karl $ +% Public domain. +\input plain.tex +\input pdftexconfig.tex +\input pdftexmagfix.tex +\pdfcompresslevel=0 +\pdfobjcompresslevel=0 + +abc +\bye diff --git a/Master/texmf-dist/doc/pdftex/tests/04-pdfsuppressptexinfo/test-pdfinfoomitdate.tex b/Master/texmf-dist/doc/pdftex/tests/04-pdfsuppressptexinfo/test-pdfinfoomitdate.tex new file mode 100644 index 00000000000..dfd30ceb996 --- /dev/null +++ b/Master/texmf-dist/doc/pdftex/tests/04-pdfsuppressptexinfo/test-pdfinfoomitdate.tex @@ -0,0 +1,4 @@ +% $Id: test-pdfinfoomitdate.tex 737 2016-03-21 22:54:16Z karl $ +% Public domain. +\pdfinfoomitdate = 1 +\input test-pdfsuppressptexinfo diff --git a/Master/texmf-dist/doc/pdftex/tests/04-pdfsuppressptexinfo/test-pdfsuppressptexinfo.tex b/Master/texmf-dist/doc/pdftex/tests/04-pdfsuppressptexinfo/test-pdfsuppressptexinfo.tex new file mode 100644 index 00000000000..fac5e30b807 --- /dev/null +++ b/Master/texmf-dist/doc/pdftex/tests/04-pdfsuppressptexinfo/test-pdfsuppressptexinfo.tex @@ -0,0 +1,18 @@ +% $Id: test-pdfsuppressptexinfo.tex 740 2016-04-23 15:08:37Z karl $ +% Public domain. +\input plain.tex +\input pdftexconfig.tex +\input pdftexmagfix.tex +\pdfcompresslevel=0 +\pdfobjcompresslevel=0 + +% \pdfsuppressptexinfo=-1 +% \pdfsuppressptexinfo=15 +% \pdfsuppressptexinfo=8 +% \pdfsuppressptexinfo=4 +% \pdfsuppressptexinfo=2 +% \pdfsuppressptexinfo=1 + +\pdfximage{abc.pdf} +\hbox{\pdfrefximage\pdflastximage} +\bye diff --git a/Master/texmf-dist/doc/pdftex/tests/04-pdfsuppressptexinfo/test-pdftrailer.tex b/Master/texmf-dist/doc/pdftex/tests/04-pdfsuppressptexinfo/test-pdftrailer.tex new file mode 100644 index 00000000000..119292229aa --- /dev/null +++ b/Master/texmf-dist/doc/pdftex/tests/04-pdfsuppressptexinfo/test-pdftrailer.tex @@ -0,0 +1,6 @@ +% $Id: test-pdftrailer.tex 737 2016-03-21 22:54:16Z karl $ +% Public domain. +\pdfoutput=1 \catcode`\{=1 \catcode`\}=2 +\pdftrailer {/mytrlrkey /mytrlrval} +\pdftrailerid {} % seed for trailer id +\input test-pdfsuppressptexinfo diff --git a/Master/texmf-dist/doc/pdftex/tests/Common.mak b/Master/texmf-dist/doc/pdftex/tests/Common.mak new file mode 100644 index 00000000000..201bef42e9d --- /dev/null +++ b/Master/texmf-dist/doc/pdftex/tests/Common.mak @@ -0,0 +1,28 @@ +# $Id: Common.mak 737 2016-03-21 22:54:16Z karl $ +# Public domain. + +# Common Makefile definitions to run pdftex from test hierarchy, +# but use support files from an installation. + +tl = /usr/local/texmf +tl_dist = $(tl)/texmf-dist +# +plain = $(tl_dist)/tex/plain/base +plain_config = $(tl_dist)/tex/plain/config +generic_config = $(tl)/texmf-config/tex/generic/config +generic_hyphen = $(tl_dist)/tex/generic/hyphen +# +tfm_cm = $(tl_dist)/fonts/tfm/public/cm +tfm_knuth = $(tl_dist)/fonts/tfm/public/knuth-lib +t1_cm = $(tl_dist)/fonts/type1/public/amsfonts/cm +# +env = TEXINPUTS=.:$(plain):$(plain_config):$(generic_config):$(generic_hyphen)\ + TEXFONTS=$(tfm_cm):$(tfm_knuth):$(t1_cm) \ + TEXFONTMAPS=$(tl_dist)/fonts/map/pdftex/updmap \ + MKTEXTFM=0 \ + KPATHSEA_WARNING=0 + +diff = diff --text -c0 + +pdftex = ../../source/build-pdftex/texk/web2c/pdftex +prog = $(env) $(pdftex) -ini -interaction=nonstopmode diff --git a/Master/texmf-dist/doc/pdftex/thanh/ext/abbr.tex b/Master/texmf-dist/doc/pdftex/thanh/ext/abbr.tex deleted file mode 100644 index a76da0af518..00000000000 --- a/Master/texmf-dist/doc/pdftex/thanh/ext/abbr.tex +++ /dev/null @@ -1,132 +0,0 @@ -\ifx\abbrloaded\relax - \let\next=\endinput -\else - \let\next=\relax -\fi - -\next - -\let\abbrloaded=y - -\let\S=\textsf -\let\T=\texttt -\let\I=\textit -\let\B=\textbf - - -\let\add=\advance -\let\div=\divide -\let\mul=\multiply -\let\ex=\expandafter - -\def\log#1{\immediate \write 16 {#1}} - -\catcode`\"=13 -\def\lqq{``\global\let"=\rqq} -\def\rqq{''\global\let"=\lqq} -\let"=\lqq - -\def\<#1>{% - \expandafter\ifx\csname<#1>\endcsname\relax - \errmessage{abbreviation <#1> undefined!} - \else - \csname<#1>\endcsname - \fi -} -\def\abbr#1#2{% - \expandafter\def\csname<#1>\endcsname{#2}% -} - -\abbr{THANH}{H\`an Th\^e\llap{\raise 0.5ex\hbox{\'{}}} Th\`anh} -\abbr{HZ}{\textit{hz}} -\abbr{KF}{\textit{kf\kern-.05em}} -\abbr{KR}{\textit{K$\varrho$}} -\abbr{EK}{\textit{{\Large$\varepsilon$\kern-.1em}k}} -\abbr{JP}{\textit{jp}} -\abbr{MF}{\MF} -\abbr{CMR}{CMR} -\abbr{CMSS}{CMSS} -\abbr{MM}{Multiple Master} -\abbr{T1}{Type\nobreak\,1} -\abbr{PFB}{PFB} -\abbr{CM}{Computer Modern} -\abbr{TEX}{\TeX} -\abbr{LATEX}{\LaTeX} -\abbr{PDFTEX}{pdf\TeX} -\abbr{URW}{URW} -\abbr{ASCII}{ASCII} -\abbr{DTP}{DTP} -\abbr{DVI}{DVI} -\abbr{PS}{PS} -\abbr{TFM}{TFM} -\abbr{PDF}{PDF} -\abbr{HJ}{H\kern.1em\&\kern.1emJ} -\abbr{UNIX}{UNIX} -\abbr{AMIGA}{Amiga} -\abbr{DOS}{DOS} -\abbr{MAC}{Macintosh} -\abbr{C}{C} -\abbr{TRUETYPE}{TrueType} -\abbr{WIN32}{Win32} -\abbr{FPTEX}{fp\TeX} -\abbr{TETEX}{te\TeX} -\abbr{MIKTEX}{Mik\TeX} -\abbr{CMACTEX}{CMac\TeX} -\abbr{AFM}{AFM} -\abbr{MMTOOLS}{MMTOOLS} -\abbr{VNR}{VNR} -\abbr{CS}{CS} -\abbr{HTML}{HTML} -\abbr{WWW}{WWW} -\abbr{ID}{InDesign} -\abbr{ADOBE}{Adobe} -\abbr{3B2}{3B2} -\abbr{...}{\dots} -\abbr{OMEGA}{$\Omega$} -\abbr{ETEX}{$\varepsilon$-\TeX} -\abbr{NTS}{NTS} -\abbr{LF}{\textrm{\it letter\!\_\kern.1emfit}} -\abbr{SGML}{SGML} -\abbr{XML}{XML} -\abbr{NTG}{NTG} -\abbr{DANTE}{DANTE} -\abbr{GUST}{GUST} -\abbr{GUT}{GUTenberg} -\abbr{TUG}{TUG} -\abbr{BS}{\char92} -\abbr{TFTOPL}{TFtoPL} -\abbr{PDFETEX}{pdf\<ETEX>} -\abbr{ZLIB}{ZLIB} -\abbr{LIBPNG}{LIBPNG} -\abbr{LIBTIFF}{LIBTIFF} -\abbr{XPDF}{XPDF} -\abbr{MIRKA}{Miroslava Mis\'akov\'a} -\abbr{PERL}{Perl} -\abbr{MMINSTANCE}{MMInstance} -\abbr{PERL}{Perl} -\abbr{LINUX}{Linux} -\abbr{PASCAL}{Pascal} - -\ifx\newcommand\undefined - \let\next=\relax -\else - \let\next=\endinput -\fi -\next - -\def\makeatletter{\catcode`\@11\relax} -\def\makeatother{\catcode`\@12\relax} -\makeatletter -\newcount\@tempcnta -\newcount\@tempcntb -\newif\if@tempswa -\newdimen\@tempdima -\newdimen\@tempdimb -\newdimen\@tempdimc -\newbox\@tempboxa -\newskip\@tempskipa -\newskip\@tempskipb -\newtoks\@temptokena -\makeatother - -\endinput diff --git a/Master/texmf-dist/doc/pdftex/thanh/ext/efcode.tex b/Master/texmf-dist/doc/pdftex/thanh/ext/efcode.tex deleted file mode 100644 index a7b204200cf..00000000000 --- a/Master/texmf-dist/doc/pdftex/thanh/ext/efcode.tex +++ /dev/null @@ -1,54 +0,0 @@ -\input abbr.tex - -\makeatletter -\def\resetefcode#1{% - \@tempcnta=0 - \loop - \efcode#1\@tempcnta=1000 - \advance\@tempcnta 1 - \ifnum\@tempcnta < 256 \repeat -} -\makeatother -\def\setefcode#1{% - \efcode#1`\2=700 - \efcode#1`\3=700 - \efcode#1`\6=700 - \efcode#1`\8=700 - \efcode#1`\9=700 - \efcode#1`\A=500 - \efcode#1`\B=700 - \efcode#1`\C=700 - \efcode#1`\D=500 - \efcode#1`\E=700 - \efcode#1`\F=700 - \efcode#1`\G=500 - \efcode#1`\H=700 - \efcode#1`\K=700 - \efcode#1`\M=700 - \efcode#1`\N=700 - \efcode#1`\O=500 - \efcode#1`\P=700 - \efcode#1`\Q=500 - \efcode#1`\R=700 - \efcode#1`\S=700 - \efcode#1`\U=700 - \efcode#1`\W=700 - \efcode#1`\Z=700 - \efcode#1`\a=700 - \efcode#1`\b=700 - \efcode#1`\c=700 - \efcode#1`\d=700 - \efcode#1`\e=700 - \efcode#1`\g=700 - \efcode#1`\h=700 - \efcode#1`\k=700 - \efcode#1`\m=700 - \efcode#1`\n=700 - \efcode#1`\o=700 - \efcode#1`\p=700 - \efcode#1`\q=700 - \efcode#1`\s=700 - \efcode#1`\u=700 - \efcode#1`\w=700 - \efcode#1`\z=700 -} diff --git a/Master/texmf-dist/doc/pdftex/thanh/ext/il2.etx b/Master/texmf-dist/doc/pdftex/thanh/ext/il2.etx deleted file mode 100644 index c7e5ec136e7..00000000000 --- a/Master/texmf-dist/doc/pdftex/thanh/ext/il2.etx +++ /dev/null @@ -1,995 +0,0 @@ -\relax - -\documentclass[twocolumn]{article} -\usepackage{fontdoc} - -\begin{document} - -This document describes the il2-based \TeX\ encoding. - -\encoding - -\needsfontinstversion{1.902} - -\ifisint{monowidth}\then - \setint{typewriter}{0} -\Fi - -\ifisint{typewriter}\then - \setstr{codingscheme}{IL2-BASED TEX TYPEWRITER TEXT} -\Else - \setstr{codingscheme}{IL2-BASED TEX TEXT} -\Fi - -\setint{italicslant}{0} - -\ifisglyph{x}\then - \setint{xheight}{\height{x}} -\Else - \setint{xheight}{500} -\Fi - -\ifisglyph{space}\then - \setint{interword}{\width{space}} -\Else\ifisglyph{i}\then - \setint{interword}{\width{i}} -\Else - \setint{interword}{333} -\Fi\Fi - -% added by Thierry Bouche <Thierry.Bouche@ujf-grenoble.fr> -% 1997/02/07 to calculate values for extra EC fontdimens -% Amended by SPQR 1997/02/09 -\ifisglyph{X}\then - \setint{capheight}{\height{X}} -\Else - \setint{capheight}{750} -\Fi - -\ifisglyph{d}\then - \setint{ascender}{\height{d}} -\Else - \ifisint{capheight}\then - \setint{ascender}{\int{capheight}} - \Else - \setint{ascender}{750} -\Fi\Fi - -\ifisglyph{Aring}\then - \setint{acccapheight}{\height{Aring}} -\Else - \setint{acccapheight}{999} -\Fi - -\ifisint{descender_neg}\then - \setint{descender}{\neg{\int{descender_neg}}} - \Else - \ifisglyph{p}\then - \setint{descender}{\depth{p}} - \Else - \setint{descender}{250} - \Fi -\Fi - -\ifisglyph{Aring}\then - \setint{maxheight}{\height{Aring}} -\Else - \setint{maxheight}{1000} -\Fi - -\ifisint{maxdepth_neg}\then - \setint{maxdepth}{\neg{\int{maxdepth_neg}}} -\Else - \ifisglyph{j}\then - \setint{maxdepth}{\depth{j}} - \Else - \setint{maxdepth}{250} - \Fi -\Fi - -\ifisglyph{six}\then - \setint{digitwidth}{\width{six}} -\Else - \setint{digitwidth}{500} -\Fi - -\setint{capstem}{0} % not in AFM files -\setint{baselineskip}{1200} -% end changes by Thierry - - -\comment{\section{Default font dimensions}} - -\setint{fontdimen(1)}{\int{italicslant}} % italic slant -\setint{fontdimen(2)}{\int{interword}} % interword space -\ifisint{monowidth}\then - \setint{fontdimen(3)}{0} % interword stretch - \setint{fontdimen(4)}{0} % interword shrink -\Else - \setint{fontdimen(3)}{\scale{\int{interword}}{600}}% interword stretch - \setint{fontdimen(4)}{\scale{\int{interword}}{240}}% interword shrink -\Fi -\setint{fontdimen(5)}{\int{xheight}} % x-height -\setint{fontdimen(6)}{1000} % quad -\ifisint{monowidth}\then - \setint{fontdimen(7)}{\int{interword}} % extra space after . -\Else - \setint{fontdimen(7)}{\scale{\int{interword}}{240}}% extra space after . -\Fi -% added by Thierry Bouche <Thierry.Bouche@ujf-grenoble.fr> 1997/02/07 -\setint{fontdimen(8)}{\int{capheight}} % cap height -\setint{fontdimen(9)}{\int{ascender}} % ascender -\setint{fontdimen(10)}{\int{acccapheight}} % accented cap height -\setint{fontdimen(11)}{\int{descender}} % descender's depth -\setint{fontdimen(12)}{\int{maxheight}} % max height -\setint{fontdimen(13)}{\int{maxdepth}} % max depth -\setint{fontdimen(14)}{\int{digitwidth}} % digit width -\setint{fontdimen(15)}{\int{capstem}} % cap_stem -\setint{fontdimen(16)}{\int{baselineskip}} % baselineskip - -\setslot{Gamma} -\endsetslot - -\setslot{Delta} -\endsetslot - -\setslot{Theta} -\endsetslot - -\setslot{Lambda} -\endsetslot - -\setslot{Xi} -\endsetslot - -\setslot{Pi} -\endsetslot - -\setslot{Sigma} -\endsetslot - -\setslot{Upsilon} -\endsetslot - -\setslot{Phi} -\endsetslot - -\setslot{Psi} -\endsetslot - -\setslot{Omega} -\endsetslot - -\ifisint{typewriter}\then - \setslot{arrowup} - \endsetslot - - \setslot{arrowdown} - \endsetslot - - \setslot{qoutesingle} - \endsetslot - - \setslot{exclamdown} - \endsetslot - - \setslot{questiondown} - \endsetslot -\Else - \setslot{ff} - \ligature{LIG}{i}{ffi} - \ligature{LIG}{l}{ffl} - \endsetslot - - \setslot{fi} - \endsetslot - - \setslot{fl} - \endsetslot - - \setslot{ffi} - \endsetslot - - \setslot{ffl} - \endsetslot -\Fi - -\setslot{dotlessi} -\endsetslot - -\setslot{dotlessj} -\endsetslot - -\setslot{grave} -\endsetslot - -\setslot{acute} -\endsetslot - -\setslot{caron} -\endsetslot - -\setslot{breve} -\endsetslot - -\setslot{macron} -\endsetslot - -\setslot{ring} -\endsetslot - -\setslot{cedilla} -\endsetslot - -\setslot{germandbls} -\endsetslot - -\setslot{ae} -\endsetslot - -\setslot{oe} -\endsetslot - -\setslot{oslash} -\endsetslot - -\setslot{AE} -\endsetslot - -\setslot{OE} -\endsetslot - -\setslot{Oslash} -\endsetslot - -\setslot{space} -\endsetslot - -% \ifisint{typewriter}\then -% \setslot{visiblespace} -% \endsetslot -% \Else -% \setleftboundary{space} -% \endsetleftboundary -% \setrightboundary{space} -% \Fi - -\setslot{exclam} -% \ligature{LIG}{quoteleft}{exclamdown} -\endsetslot - -\ifisint{typewriter}\then - \setslot{quotedbl} - \endsetslot -\Else - \setslot{quotedblright} - \endsetslot -\Fi - -\setslot{numbersign} -\endsetslot - -\setslot{dollar} -\endsetslot - -\setslot{percent} -\endsetslot - -\setslot{ampersand} -\endsetslot - -\setslot{quoteright} - \ifisint{typewriter}\then \Else - \ligature{LIG}{quoteright}{quotedblright} - \Fi -\endsetslot - -\setslot{parenleft} -\endsetslot - -\setslot{parenright} -\endsetslot - -\setslot{asterisk} -\endsetslot - -\setslot{plus} -\endsetslot - -\setslot{comma} - \ifisint{typewriter}\then\Else - \ligature{LIG}{comma}{quotedblbase} - \Fi -\endsetslot - -\setslot{hyphen} - \ifisint{typewriter}\then\Else - \ligature{LIG}{hyphen}{endash} - \Fi -\endsetslot - -\setslot{period} -\endsetslot - -\setslot{slash} -\endsetslot - -\setslot{zero} -\endsetslot - -\setslot{one} -\endsetslot - -\setslot{two} -\endsetslot - -\setslot{three} -\endsetslot - -\setslot{four} -\endsetslot - -\setslot{five} -\endsetslot - -\setslot{six} -\endsetslot - -\setslot{seven} -\endsetslot - -\setslot{eight} -\endsetslot - -\setslot{nine} -\endsetslot - -\setslot{colon} -\endsetslot - -\setslot{semicolon} -\endsetslot - -\ifisint{typewriter}\then - \setslot{less} - \endsetslot - - \setslot{equal} - \endsetslot - - \setslot{greater} - \endsetslot -\Else - \setslot{exclamdown} - \ligature{LIG}{exclamdown}{guillemotleft} - \endsetslot - - \setslot{equal} - \endsetslot - - \setslot{questiondown} - \ligature{LIG}{questiondown}{guillemotright} - \endsetslot -\Fi - -\setslot{question} -% \ligature{LIG}{quoteleft}{questiondown} -\endsetslot - -\setslot{at} -\endsetslot - -\setslot{A} -\endsetslot - -\setslot{B} -\endsetslot - -\setslot{C} -\endsetslot - -\setslot{D} -\endsetslot - -\setslot{E} -\endsetslot - -\setslot{F} -\endsetslot - -\setslot{G} -\endsetslot - -\setslot{H} -\endsetslot - -\setslot{I} -\endsetslot - -\setslot{J} -\endsetslot - -\setslot{K} -\endsetslot - -\setslot{L} -\endsetslot - -\setslot{M} -\endsetslot - -\setslot{N} -\endsetslot - -\setslot{O} -\endsetslot - -\setslot{P} -\endsetslot - -\setslot{Q} -\endsetslot - -\setslot{R} -\endsetslot - -\setslot{S} -\endsetslot - -\setslot{T} -\endsetslot - -\setslot{U} -\endsetslot - -\setslot{V} -\endsetslot - -\setslot{W} -\endsetslot - -\setslot{X} -\endsetslot - -\setslot{Y} -\endsetslot - -\setslot{Z} -\endsetslot - -\setslot{bracketleft} -\endsetslot - -\ifisint{typewriter}\then - \setslot{backslash} - \endsetslot -\Else - \setslot{quotedblleft} - \endsetslot -\Fi - -\setslot{bracketright} -\endsetslot - -\setslot{circumflex} -\endsetslot - -\ifisint{typewriter}\then - \setslot{underscore} - \endsetslot -\Else - \setslot{dotaccent} - \endsetslot -\Fi - -\setslot{quoteleft} - \ifisint{typewriter}\then \Else - \ligature{LIG}{quoteleft}{quotedblleft} - \Fi -\endsetslot - -\setslot{a} -\endsetslot - -\setslot{b} -\endsetslot - -\setslot{c} -\endsetslot - -\setslot{d} -\endsetslot - -\setslot{e} -\endsetslot - -\setslot{f} - \ifisint{typewriter}\then \Else - \ligature{LIG}{i}{fi} - \ligature{LIG}{f}{ff} - \ligature{LIG}{l}{fl} - \Fi -\endsetslot - -\setslot{g} -\endsetslot - -\setslot{h} -\endsetslot - -\setslot{i} -\endsetslot - -\setslot{j} -\endsetslot - -\setslot{k} -\endsetslot - -\setslot{l} -\endsetslot - -\setslot{m} -\endsetslot - -\setslot{n} -\endsetslot - -\setslot{o} -\endsetslot - -\setslot{p} -\endsetslot - -\setslot{q} -\endsetslot - -\setslot{r} -\endsetslot - -\setslot{s} -\endsetslot - -\setslot{t} -\endsetslot - -\setslot{u} -\endsetslot - -\setslot{v} -\endsetslot - -\setslot{w} -\endsetslot - -\setslot{x} -\endsetslot - -\setslot{y} -\endsetslot - -\setslot{z} -\endsetslot - -\ifisint{typewriter}\then - \setslot{braceleft} - \endsetslot - - \setslot{bar} - \endsetslot - - \setslot{braceright} - \endsetslot -\Else - \setslot{endash} - \ligature{LIG}{hyphen}{emdash} - \endsetslot - - \setslot{emdash} - \endsetslot - - \setslot{hungarumlaut} - \endsetslot -\Fi - -\setslot{tilde} -\endsetslot - -\setslot{dieresis} -\endsetslot - -\setslot{ellipsis} -\endsetslot - -\setslot{dagger} -\endsetslot - -\setslot{daggerdbl} -\endsetslot - -\setslot{bullet} -\endsetslot - -\setslot{sterling} -\endsetslot - -\setslot{paragraph} -\endsetslot - -\setslot{ref-period} -\endsetslot % 134 - -\setslot{ref-comma} -\endsetslot % 135 - -\setslot{note-period} -\endsetslot % 136 - -\setslot{note-comma} -\endsetslot % 136 - -\setslot{ref-period-quoteleft} -\endsetslot % 137 - -\setslot{ref-period-quotedblleft} -\endsetslot % 138 - -\setslot{ref-comma-quoteleft} -\endsetslot % 139 - -\setslot{ref-comma-quotedblleft} -\endsetslot % 140 - -\nextslot{141} -\setslot{perthousand} -\endsetslot - -\setslot{verse-lb} -\endsetslot % 142 - -\setslot{verse-rb} -\endsetslot % 143 - -\setslot{textmark-lb} -\endsetslot % 144 - -\setslot{textmark-rb} -\endsetslot % 145 - -\setslot{note-lb} -\endsetslot % 146 - -\setslot{note-rb} - \ligature{LIG}{comma}{note-comma} - \ligature{LIG}{period}{note-period} -\endsetslot % 147 - -\setslot{ref-lb} -\endsetslot % 148 - -\setslot{ref-rb} - \ligature{LIG}{comma}{ref-comma} - \ligature{LIG}{period}{ref-period} -\endsetslot % 149 - -\setslot{quotesinglbase} -\endsetslot % 150 - -\setslot{copyright} -\endsetslot % 151 - -\nextslot{152} -\setslot{Agrave} -\endsetslot - -\setslot{note-period-quoteleft} -\endsetslot % 153 - -\setslot{note-period-quotedblleft} -\endsetslot % 154 - -\setslot{note-comma-quoteleft} -\endsetslot % 155 - -\nextslot{156} -\setslot{hyphenchar} -\endsetslot - -\setslot{ogonek} -\endsetslot - -\setslot{guillemotleft} -\endsetslot - -\setslot{guillemotright} -\endsetslot - -\setslot{note-comma-quotedblleft} -\endsetslot % 160 - -% \nextslot{161} -\setslot{Aogonek} -\endsetslot - -\setslot{breve} -\endsetslot - -\setslot{Lslash} -\endsetslot - -\setslot{currency} -\endsetslot - -\setslot{Lcaron} -\endsetslot - -\setslot{Sacute} -\endsetslot - -\setslot{section} -\endsetslot - -\setslot{dieresis} -\endsetslot - -\setslot{Scaron} -\endsetslot - -\setslot{Scedilla} -\endsetslot - -\setslot{Tcaron} -\endsetslot - -\setslot{Zacute} -\endsetslot - -\nextslot{174} -\setslot{Zcaron} -\endsetslot - -\setslot{Zdotaccent} -\endsetslot - -\setslot{ring} -\endsetslot - -\setslot{aogonek} -\endsetslot - -\setslot{cedilla} -\endsetslot - -\setslot{lslash} -\endsetslot - -\setslot{acute} -\endsetslot - -\setslot{lcaron} -\endsetslot - -\setslot{sacute} -\endsetslot - -\setslot{caron} -\endsetslot - -\setslot{agrave} -\endsetslot - -\setslot{scaron} -\endsetslot - -\setslot{scedilla} -\endsetslot - -\setslot{tcaron} -\endsetslot - -\setslot{zacute} -\endsetslot - -\setslot{hungarumlaut} -\endsetslot - -\setslot{zcaron} -\endsetslot - -\setslot{zdotaccent} -\endsetslot - -\setslot{Racute} -\endsetslot - -\setslot{Aacute} -\endsetslot - -\setslot{Acircumflex} -\endsetslot - -\setslot{Abreve} -\endsetslot - -\setslot{Adieresis} -\endsetslot - -\setslot{Lacute} -\endsetslot - -\setslot{Cacute} -\endsetslot - -\setslot{Ccedilla} -\endsetslot - -\setslot{Ccaron} -\endsetslot - -\setslot{Eacute} -\endsetslot - -\setslot{Eogonek} -\endsetslot - -\setslot{Edieresis} -\endsetslot - -\setslot{Ecaron} -\endsetslot - -\setslot{Iacute} -\endsetslot - -\setslot{Icircumflex} -\endsetslot - -\setslot{Dcaron} -\endsetslot - -\setslot{Eth} -\endsetslot - -\setslot{Nacute} -\endsetslot - -\setslot{Ncaron} -\endsetslot - -\setslot{Oacute} -\endsetslot - -\setslot{Ocircumflex} -\endsetslot - -\setslot{Ohungarumlaut} -\endsetslot - -\setslot{Odieresis} -\endsetslot - -\setslot{multiply} -\endsetslot - -\setslot{Rcaron} -\endsetslot - -\setslot{Uring} -\endsetslot - -\setslot{Uacute} -\endsetslot - -\setslot{Uhungarumlaut} -\endsetslot - -\setslot{Udieresis} -\endsetslot - -\setslot{Yacute} -\endsetslot - -\setslot{Togonek} -\endsetslot - -\setslot{germandbls} -\endsetslot - -\setslot{racute} -\endsetslot - -\setslot{aacute} -\endsetslot - -\setslot{acircumflex} -\endsetslot - -\setslot{abreve} -\endsetslot - -\setslot{adieresis} -\endsetslot - -\setslot{lacute} -\endsetslot - -\setslot{cacute} -\endsetslot - -\setslot{ccedilla} -\endsetslot - -\setslot{ccaron} -\endsetslot - -\setslot{eacute} -\endsetslot - -\setslot{eogonek} -\endsetslot - -\setslot{edieresis} -\endsetslot - -\setslot{ecaron} -\endsetslot - -\setslot{iacute} -\endsetslot - -\setslot{icircumflex} -\endsetslot - -\setslot{dcaron} -\endsetslot - -\setslot{eth} -\endsetslot - -\setslot{nacute} -\endsetslot - -\setslot{ncaron} -\endsetslot - -\setslot{oacute} -\endsetslot - -\setslot{ocircumflex} -\endsetslot - -\setslot{ohungarumlaut} -\endsetslot - -\setslot{odieresis} -\endsetslot - -\setslot{divide} -\endsetslot - -\setslot{rcaron} -\endsetslot - -\setslot{uring} -\endsetslot - -\setslot{uacute} -\endsetslot - -\setslot{uhungarumlaut} -\endsetslot - -\setslot{udieresis} -\endsetslot - -\setslot{yacute} -\endsetslot - -\setslot{quotedblbase} -\endsetslot - -\setslot{quotedblleft} -\endsetslot - -\endencoding -\end{document} diff --git a/Master/texmf-dist/doc/pdftex/thanh/ext/il2.mtx b/Master/texmf-dist/doc/pdftex/thanh/ext/il2.mtx deleted file mode 100644 index e4f389e4b97..00000000000 --- a/Master/texmf-dist/doc/pdftex/thanh/ext/il2.mtx +++ /dev/null @@ -1,223 +0,0 @@ -\relax - -\metrics - -\setint{italicslant}{0} -\setint{xheight}{\height{x}} -\setint{capheight}{\height{A}} -\setint{stem}{\bbw{period}} -\setint{vstem}{\bbh{period}} -\setint{italcorr}{\scale{\int{xheight}}{\int{italicslant}}} - -\setint{accent-gap}{\add{\scale{100}{\int{xheight}}} - {\scale{100}{\int{vstem}}}} -\setint{accent-bot}{\add{\int{xheight}}{\int{accent-gap}}} - -\setint{Accent-gap}{\add{\scale{50}{\int{xheight}}} - {\scale{50}{\int{vstem}}}} -\setint{Accent-bot}{\add{\int{capheight}}{\int{Accent-gap}}} - -\setint{accent-sx}{0} -\setint{accent-sy}{0} -\setint{Accent-sx}{0} -\setint{Accent-sy}{0} -\setint{quoteright-scale}{900} - -\setint{acute-sx}{\add{\int{accent-sx}}{\scale{100}{\width{acute}}}} -\setint{caron-sx}{\int{accent-sx}} -\setint{circumflex-sx}{\int{accent-sx}} -\setint{dieresis-sx}{\int{accent-sx}} -\setint{grave-sx}{\int{accent-sx}} -\setint{ring-sx}{\int{accent-sx}} - -\setAsx{Acute}{acute}{\add{\int{Accent-sx}}{\scale{100}{\width{Acute}}}} -\setAsx{Caron}{caron}{\int{Accent-sx}} -\setAsx{Circumflex}{circumflex}{\int{Accent-sx}} -\setAsx{Dieresis}{dieresis}{\int{Accent-sx}} -\setAsx{Grave}{grave}{\int{Accent-sx}} -\setAsx{Ring}{ring}{\int{Accent-sx}} - -\setsy{acute}{accent-bot}{\int{accent-sy}} -\setsy{caron}{accent-bot}{\int{accent-sy}} -\setsy{circumflex}{accent-bot}{\int{accent-sy}} -\setsy{dieresis}{accent-bot}{\int{accent-sy}} -\setsy{grave}{accent-bot}{\int{accent-sy}} -\setsy{ring}{accent-bot}{\int{accent-sy}} - -\setsy{Acute}{Accent-bot}{\int{Accent-sy}} -\setsy{Caron}{Accent-bot}{\int{Accent-sy}} -\setsy{Circumflex}{Accent-bot}{\int{Accent-sy}} -\setsy{Grave}{Accent-bot}{\int{Accent-sy}} -\setint{Dieresis-sy}{\add{\int{Accent-sy}} - {\sub{\int{Accent-bot}}{\lly{dieresis}}}} -\setint{Ring-sy}{\add{\int{Accent-sy}} - {\sub{\int{Accent-bot}}{\lly{ring}}}} - -\composeglyphpac{aacute}{a}{acute}{\scale{300}{\int{italcorr}}}{0} -\composeglyphpac{Aacute}{A}{Acute}{\scale{200}{\int{italcorr}}}{0} - -% \composeglyphpac{adieresis}{a}{dieresis}{\scale{400}{\int{italcorr}}}{0} -% \composeglyphpac{Adieresis}{A}{dieresis}{\scale{300}{\int{italcorr}}} -% {\sub{\int{Dieresis-sy}}{\int{dieresis-sy}}} - -% \composeglyphpac{agrave}{a}{grave}{0}{0} -% \composeglyphpac{Agrave}{A}{Grave}{0}{0} - -\composeglyphpac{ccaron}{c}{caron}{\scale{120}{\bbw{caron}}}{0} -\composeglyphpac{Ccaron}{C}{Caron} - {\add{\scale{500}{\int{italcorr}}}{\scale{200}{\bbw{Caron}}}}{0} - -\resetglyph{dcaron} - \putquoteright{d}{\int{quoteright-scale}} - {\add{\scale{-500}{\scale{\int{quoteright-scale}}{\bbw{quoteright}}}} - {\scale{-200}{\int{italcorr}}}} - {\scale{300}{\scale{\int{quoteright-scale}}{\bbw{quoteright}}}} - {\sub{\add{\height{d}}{\scale{300}{\int{stem}}}} - {\scale{\int{quoteright-scale}}{\bbh{quoteright}}}} -\endresetglyph -\setleftkerning{dcaron}{d}{1000} -\setrightkerning{dcaron}{f}{800} -\composeglyphpac{Dcaron}{D}{Caron}{\scale{-200}{\bbw{Caron}}}{0} - -\composeglyphpac{eacute}{e}{acute}{\scale{200}{\int{italcorr}}}{0} -\composeglyphpac{Eacute}{E}{Acute}{0}{0} - -\composeglyphpac{ecaron}{e}{caron} - {\add{\scale{100}{\int{italcorr}}}{\scale{50}{\bbw{caron}}}}{0} -\composeglyphpac{Ecaron}{E}{Caron}{\scale{100}{\int{italcorr}}}{0} - -\composeglyphpac{iacute}{dotlessi}{acute}{\scale{-100}{\width{acute}}}{0} -\composeglyphpac{Iacute}{I}{Acute}{0}{0} - -% \composeglyphpac{lacute}{l}{acute}{0} -% {\sub{\sub{\add{\height{l}}{\scale{500}{\int{accent-gap}}}} -% {\lly{acute}}} -% {\int{acute-sy}}} -% \composeglyphpac{Lacute}{L}{Acute}{0} -% {\sub{\sub{\add{\height{L}}{\scale{500}{\int{Accent-gap}}}} -% {\lly{Acute}}} -% {\int{Acute-sy}}} - -% \resetglyph{lcaron} -% \putquoteright{l}{\int{quoteright-scale}} -% {\scale{-700}{\scale{\int{quoteright-scale}}{\bbw{quoteright}}}} -% {\scale{300}{\scale{\int{quoteright-scale}}{\bbw{quoteright}}}} -% {\sub{\height{l}}{\scale{\int{quoteright-scale}}{\bbh{quoteright}}}} -% \endresetglyph -% \setleftkerning{lcaron}{l}{1000} -% \setrightkerning{lcaron}{f}{800} - -% \resetglyph{Lcaron} -% \putquoteright{L}{\int{quoteright-scale}} -% {\sub{\sub{\urx{I}}{\scale{500}{\int{stem}}}}{\urx{L}}} -% {0} -% {\sub{\height{L}}{\scale{\int{quoteright-scale}}{\bbh{quoteright}}}} -% \endresetglyph -% \setleftrightkerning{Lcaron}{L}{1000} - -\composeglyphpac{ncaron}{n}{caron}{0}{0} -\composeglyphpac{Ncaron}{N}{Caron}{0}{0} - -\composeglyphpac{oacute}{o}{acute}{0}{0} -\composeglyphpac{Oacute}{O}{Acute}{0}{0} - -% \composeglyphpac{ocircumflex}{o}{circumflex}{0}{0} -% \composeglyphpac{Ocircumflex}{O}{Circumflex}{0}{0} - -\composeglyphpac{odieresis}{o}{dieresis}{0}{0} -\composeglyphpac{Odieresis}{O}{dieresis}{0} - {\sub{\int{Dieresis-sy}}{\int{dieresis-sy}}} - -% \composeglyphpac{racute}{r}{acute}{0}{0} -% \composeglyphpac{Racute}{R}{Acute}{\scale{-150}{\bbw{Acute}}}{0} - -\composeglyphpac{rcaron}{r}{caron}{\scale{100}{\bbw{caron}}}{0} -\composeglyphpac{Rcaron}{R}{Caron}{\scale{-100}{\bbw{Caron}}}{0} - -\composeglyphpac{scaron}{s}{caron}{0}{0} -\composeglyphpac{Scaron}{S}{Caron}{0}{0} - -\resetglyph{tcaron} - \putquoteright{t}{\int{quoteright-scale}} - {\scale{-400}{\width{t}}} - {0} - {\add{\int{xheight}}{\scale{500}{\int{vstem}}}} -\endresetglyph -\setleftrightkerning{tcaron}{t}{1000} -\composeglyphpac{Tcaron}{T}{Caron}{\scale{50}{\int{italcorr}}}{0} - -\composeglyphpac{uacute}{u}{acute}{\scale{150}{\int{italcorr}}}{0} -\composeglyphpac{Uacute}{U}{Acute}{\scale{200}{\bbw{Acute}}}{0} - -% \composeglyphpac{udieresis}{u}{dieresis}{0}{0} -% \composeglyphpac{Udieresis}{U}{dieresis}{0} -% {\sub{\int{Dieresis-sy}}{\int{dieresis-sy}}} - -\composeglyphpac{uring}{u}{ring}{\scale{100}{\int{italcorr}}}{0} -\composeglyphpac{Uring}{U}{ring}{\scale{200}{\bbw{ring}}} - {\sub{\int{Ring-sy}}{\int{ring-sy}}} - -\composeglyphpac{yacute}{y}{acute}{0}{0} -\composeglyphpac{Yacute}{Y}{Acute}{\scale{200}{\bbw{Acute}}}{0} - -\composeglyphpac{zcaron}{z}{caron}{0}{0} -\composeglyphpac{Zcaron}{Z}{Caron}{0}{0} - -\unsetkerns{T,P}{aacute,adieresis} -\unsetkerns{V}{ccaron} -\unsetkerns{P,T,V}{ecaron} -\unsetkerns{P,T}{eacute} -\unsetkerns{F,P,T,V}{rcaron} -\unsetkerns{P,T}{racute} -\unsetkerns{F,P,T,V}{scaron} -\unsetkerns{F,P,T,V}{uring} -\unsetkerns{F,P,T,V}{zcaron} -\setkerns{eacute,ecaron,iacute}{quotedblleft}{\width{quoteleft}} -\setkerns{eacute,ecaron,iacute}{quoteleft}{\width{quoteleft}} - -\setglyph{ff} - \glyph{f}{1000} - \movert{\kerning{f}{f}} - \glyph{f}{1000} -\endsetglyph - -\setglyph{fl} - \glyph{f}{1000} - \movert{\kerning{f}{l}} - \glyph{l}{1000} -\endsetglyph - -\setglyph{ffi} - \glyph{f}{1000} - \movert{\kerning{f}{f}} - \glyph{fi}{1000} -\endsetglyph - -\setglyph{ffl} - \glyph{f}{1000} - \movert{\kerning{f}{f}} - \glyph{fl}{1000} -\endsetglyph - -\setglyph{rangedash} - \ifisint{monowidth}\then - \glyph{hyphen}{1000} - \else - \glyph{endash}{1000} - \fi -\endsetglyph - -\setglyph{punctdash} - \ifisint{monowidth}\then - \glyph{hyphen}{1000} - \glyph{hyphen}{1000} - \else - \glyph{emdash}{1000} - \fi -\endsetglyph - -\setglyph{hyphenchar} - \glyph{hyphen}{1000} -\endsetglyph - -\endmetrics diff --git a/Master/texmf-dist/doc/pdftex/thanh/ext/il2protcode.tex b/Master/texmf-dist/doc/pdftex/thanh/ext/il2protcode.tex deleted file mode 100644 index 79eb248fff1..00000000000 --- a/Master/texmf-dist/doc/pdftex/thanh/ext/il2protcode.tex +++ /dev/null @@ -1,174 +0,0 @@ -\input protcode.tex - -\def\setczprotcode#1{% - \lpcode #1 `\,=700 % , - \rpcode #1 `\`=700 % ` -% \lpcode #1 254=400 % ,, - \lpcode #1 254=300 % ,, - \rpcode #1 255=500 % `` - \setprotcode #1 - \lpcode #1 28=\lpcode #1 `\o % oslash - \lpcode #1 31=\lpcode #1 `\O % Oslash - \lpcode #1 152=\lpcode #1 `\A % Agrave - \lpcode #1 161=\lpcode #1 `\A % Aogonek - \lpcode #1 163=\lpcode #1 `\L % Lslash - \lpcode #1 165=\lpcode #1 `\L % Lcaron - \lpcode #1 166=\lpcode #1 `\S % Sacute - \lpcode #1 169=\lpcode #1 `\S % Scaron - \lpcode #1 170=\lpcode #1 `\S % Scedilla - \lpcode #1 171=\lpcode #1 `\T % Tcaron - \lpcode #1 172=\lpcode #1 `\Z % Zacute - \lpcode #1 174=\lpcode #1 `\Z % Zcaron - \lpcode #1 175=\lpcode #1 `\Z % Zdotaccent - \lpcode #1 177=\lpcode #1 `\a % aogonek - \lpcode #1 179=\lpcode #1 `\l % lslash - \lpcode #1 181=\lpcode #1 `\l % lcaron - \lpcode #1 182=\lpcode #1 `\s % sacute - \lpcode #1 184=\lpcode #1 `\a % agrave - \lpcode #1 185=\lpcode #1 `\s % scaron - \lpcode #1 186=\lpcode #1 `\s % scedilla - \lpcode #1 187=\lpcode #1 `\t % tcaron - \lpcode #1 188=\lpcode #1 `\z % zacute - \lpcode #1 190=\lpcode #1 `\z % zcaron - \lpcode #1 191=\lpcode #1 `\z % zdotaccent - \lpcode #1 192=\lpcode #1 `\R % Racute - \lpcode #1 193=\lpcode #1 `\A % Aacute - \lpcode #1 194=\lpcode #1 `\A % Acircumflex - \lpcode #1 195=\lpcode #1 `\A % Abreve - \lpcode #1 196=\lpcode #1 `\A % Adieresis - \lpcode #1 197=\lpcode #1 `\L % Lacute - \lpcode #1 198=\lpcode #1 `\C % Cacute - \lpcode #1 199=\lpcode #1 `\C % Ccedilla - \lpcode #1 200=\lpcode #1 `\C % Ccaron - \lpcode #1 201=\lpcode #1 `\E % Eacute - \lpcode #1 202=\lpcode #1 `\E % Eogonek - \lpcode #1 203=\lpcode #1 `\E % Edieresis - \lpcode #1 204=\lpcode #1 `\E % Ecaron - \lpcode #1 205=\lpcode #1 `\I % Iacute - \lpcode #1 206=\lpcode #1 `\I % Icircumflex - \lpcode #1 207=\lpcode #1 `\D % Dcaron - \lpcode #1 209=\lpcode #1 `\N % Nacute - \lpcode #1 210=\lpcode #1 `\N % Ncaron - \lpcode #1 211=\lpcode #1 `\O % Oacute - \lpcode #1 212=\lpcode #1 `\O % Ocircumflex - \lpcode #1 213=\lpcode #1 `\O % Ohungarumlaut - \lpcode #1 214=\lpcode #1 `\O % Odieresis - \lpcode #1 216=\lpcode #1 `\R % Rcaron - \lpcode #1 217=\lpcode #1 `\U % Uring - \lpcode #1 218=\lpcode #1 `\U % Uacute - \lpcode #1 219=\lpcode #1 `\U % Uhungarumlaut - \lpcode #1 220=\lpcode #1 `\U % Udieresis - \lpcode #1 221=\lpcode #1 `\Y % Yacute - \lpcode #1 222=\lpcode #1 `\T % Togonek - \lpcode #1 224=\lpcode #1 `\r % racute - \lpcode #1 225=\lpcode #1 `\a % aacute - \lpcode #1 226=\lpcode #1 `\a % acircumflex - \lpcode #1 227=\lpcode #1 `\a % abreve - \lpcode #1 228=\lpcode #1 `\a % adieresis - \lpcode #1 229=\lpcode #1 `\l % lacute - \lpcode #1 230=\lpcode #1 `\c % cacute - \lpcode #1 231=\lpcode #1 `\c % ccedilla - \lpcode #1 232=\lpcode #1 `\c % ccaron - \lpcode #1 233=\lpcode #1 `\e % eacute - \lpcode #1 234=\lpcode #1 `\e % eogonek - \lpcode #1 235=\lpcode #1 `\e % edieresis - \lpcode #1 236=\lpcode #1 `\e % ecaron - \lpcode #1 237=\lpcode #1 `\i % iacute - \lpcode #1 238=\lpcode #1 `\i % icircumflex - \lpcode #1 239=\lpcode #1 `\d % dcaron - \lpcode #1 241=\lpcode #1 `\n % nacute - \lpcode #1 242=\lpcode #1 `\n % ncaron - \lpcode #1 243=\lpcode #1 `\o % oacute - \lpcode #1 244=\lpcode #1 `\o % ocircumflex - \lpcode #1 245=\lpcode #1 `\o % ohungarumlaut - \lpcode #1 246=\lpcode #1 `\o % odieresis - \lpcode #1 248=\lpcode #1 `\r % rcaron - \lpcode #1 249=\lpcode #1 `\u % uring - \lpcode #1 250=\lpcode #1 `\u % uacute - \lpcode #1 251=\lpcode #1 `\u % uhungarumlaut - \lpcode #1 252=\lpcode #1 `\u % udieresis - \lpcode #1 253=\lpcode #1 `\y % yacute - - \rpcode #1 28=\rpcode #1 `\o % oslash - \rpcode #1 31=\rpcode #1 `\O % Oslash - \rpcode #1 152=\rpcode #1 `\A % Agrave - \rpcode #1 161=\rpcode #1 `\A % Aogonek - \rpcode #1 163=\rpcode #1 `\L % Lslash - \rpcode #1 165=\rpcode #1 `\L % Lcaron - \rpcode #1 166=\rpcode #1 `\S % Sacute - \rpcode #1 169=\rpcode #1 `\S % Scaron - \rpcode #1 170=\rpcode #1 `\S % Scedilla - \rpcode #1 171=\rpcode #1 `\T % Tcaron - \rpcode #1 172=\rpcode #1 `\Z % Zacute - \rpcode #1 174=\rpcode #1 `\Z % Zcaron - \rpcode #1 175=\rpcode #1 `\Z % Zdotaccent - \rpcode #1 177=\rpcode #1 `\a % aogonek - \rpcode #1 179=\rpcode #1 `\l % lslash - \rpcode #1 181=\rpcode #1 `\l % lcaron - \rpcode #1 182=\rpcode #1 `\s % sacute - \rpcode #1 184=\rpcode #1 `\a % agrave - \rpcode #1 185=\rpcode #1 `\s % scaron - \rpcode #1 186=\rpcode #1 `\s % scedilla - \rpcode #1 187=\rpcode #1 `\t % tcaron - \rpcode #1 188=\rpcode #1 `\z % zacute - \rpcode #1 190=\rpcode #1 `\z % zcaron - \rpcode #1 191=\rpcode #1 `\z % zdotaccent - \rpcode #1 192=\rpcode #1 `\R % Racute - \rpcode #1 193=\rpcode #1 `\A % Aacute - \rpcode #1 194=\rpcode #1 `\A % Acircumflex - \rpcode #1 195=\rpcode #1 `\A % Abreve - \rpcode #1 196=\rpcode #1 `\A % Adieresis - \rpcode #1 197=\rpcode #1 `\L % Lacute - \rpcode #1 198=\rpcode #1 `\C % Cacute - \rpcode #1 199=\rpcode #1 `\C % Ccedilla - \rpcode #1 200=\rpcode #1 `\C % Ccaron - \rpcode #1 201=\rpcode #1 `\E % Eacute - \rpcode #1 202=\rpcode #1 `\E % Eogonek - \rpcode #1 203=\rpcode #1 `\E % Edieresis - \rpcode #1 204=\rpcode #1 `\E % Ecaron - \rpcode #1 205=\rpcode #1 `\I % Iacute - \rpcode #1 206=\rpcode #1 `\I % Icircumflex - \rpcode #1 207=\rpcode #1 `\D % Dcaron - \rpcode #1 209=\rpcode #1 `\N % Nacute - \rpcode #1 210=\rpcode #1 `\N % Ncaron - \rpcode #1 211=\rpcode #1 `\O % Oacute - \rpcode #1 212=\rpcode #1 `\O % Ocircumflex - \rpcode #1 213=\rpcode #1 `\O % Ohungarumlaut - \rpcode #1 214=\rpcode #1 `\O % Odieresis - \rpcode #1 216=\rpcode #1 `\R % Rcaron - \rpcode #1 217=\rpcode #1 `\U % Uring - \rpcode #1 218=\rpcode #1 `\U % Uacute - \rpcode #1 219=\rpcode #1 `\U % Uhungarumlaut - \rpcode #1 220=\rpcode #1 `\U % Udieresis - \rpcode #1 221=\rpcode #1 `\Y % Yacute - \rpcode #1 222=\rpcode #1 `\T % Togonek - \rpcode #1 224=\rpcode #1 `\r % racute - \rpcode #1 225=\rpcode #1 `\a % aacute - \rpcode #1 226=\rpcode #1 `\a % acircumflex - \rpcode #1 227=\rpcode #1 `\a % abreve - \rpcode #1 228=\rpcode #1 `\a % adieresis - \rpcode #1 229=\rpcode #1 `\l % lacute - \rpcode #1 230=\rpcode #1 `\c % cacute - \rpcode #1 231=\rpcode #1 `\c % ccedilla - \rpcode #1 232=\rpcode #1 `\c % ccaron - \rpcode #1 233=\rpcode #1 `\e % eacute - \rpcode #1 234=\rpcode #1 `\e % eogonek - \rpcode #1 235=\rpcode #1 `\e % edieresis - \rpcode #1 236=\rpcode #1 `\e % ecaron - \rpcode #1 237=\rpcode #1 `\i % iacute - \rpcode #1 238=\rpcode #1 `\i % icircumflex - \rpcode #1 239=\rpcode #1 `\d % dcaron - \rpcode #1 241=\rpcode #1 `\n % nacute - \rpcode #1 242=\rpcode #1 `\n % ncaron - \rpcode #1 243=\rpcode #1 `\o % oacute - \rpcode #1 244=\rpcode #1 `\o % ocircumflex - \rpcode #1 245=\rpcode #1 `\o % ohungarumlaut - \rpcode #1 246=\rpcode #1 `\o % odieresis - \rpcode #1 248=\rpcode #1 `\r % rcaron - \rpcode #1 249=\rpcode #1 `\u % uring - \rpcode #1 250=\rpcode #1 `\u % uacute - \rpcode #1 251=\rpcode #1 `\u % uhungarumlaut - \rpcode #1 252=\rpcode #1 `\u % udieresis - \rpcode #1 253=\rpcode #1 `\y % yacute -} -\endinput diff --git a/Master/texmf-dist/doc/pdftex/thanh/ext/mktextfm b/Master/texmf-dist/doc/pdftex/thanh/ext/mktextfm deleted file mode 100644 index 1c2857b8d07..00000000000 --- a/Master/texmf-dist/doc/pdftex/thanh/ext/mktextfm +++ /dev/null @@ -1,151 +0,0 @@ -#!/bin/sh -# mktextfm -- make a new TFM file, because one wasn't found. -# -# (If you change or delete the word `original' on the previous line, -# installation won't write this script over yours.) -# -# te@informatik.uni-hannover.de, kb@mail.tug.org, and infovore@xs4all.nl. -# Public domain. - -version='$Id: mktextfm,v 1.17 1998/02/16 08:56:13 olaf Exp $' -progname=`echo $0 | sed 's%.*/%%'` -usage="Usage: $progname [--destdir DESTDIR] FONT. - -Makes a TFM file for FONT, if possible. Use DESTDIR for the root of where -to install into, either the absolute directory name to use (if it starts -with a /) or relative to the default DESTDIR (if not)." - -# Handle non-positional options, except for --version/--help -while test $# -gt 0; do - case "$1" in - --destdir) shift; DEST="$1"; shift ;; - --destdir=*) DEST="`echo \"$1\" | sed 's/--destdir=//'`"; shift ;; - --version|-version) break ;; - --help|-help) break ;; - *) break ;; - esac -done - -# Common code for all scripts. -: ${MT_TEXMFMAIN=`kpsewhich --expand-path='$TEXMFMAIN'`} -: ${MT_MKTEX_OPT=`kpsewhich --format='web2c files' mktex.opt`} -test -n "$MT_MKTEX_OPT" || MT_MKTEX_OPT="$MT_TEXMFMAIN/web2c/mktex.opt" -if test ! -f "$MT_MKTEX_OPT"; then - echo "$progname: Cannot find mktex.opt; check your installation." >&2 - exit 1 -fi - -. "$MT_MKTEX_OPT" - -# start of redirection stdout -> stderr, stdin <- /dev/null -( - -NAME=`basename "$1" .tfm` -MAG=1 -#DEST="$2" -DPI=$BDPI - -OIFS=$IFS; IFS=$SEP -set x `"$MT_MKTEXNAM" $NAME $DPI $MODE $DEST`; shift -IFS=$OIFS - -PKDEST="$1" -TFMDEST="$2" -PKDESTDIR=`echo "$PKDEST" | sed 's%/[^/][^/]*$%%'` # can't rely on dirname -TFMDESTDIR=`echo "$TFMDEST" | sed 's%/[^/][^/]*$%%'` -PKNAME=`basename "$PKDEST"` -TFMNAME=$NAME.tfm -GFNAME=$NAME.$DPI'gf' - -if test -r "$TFMDESTDIR/$TFMNAME"; then - echo "$progname: $TFMDESTDIR/$TFMNAME already exists." >&2 - echo "$TFMDESTDIR/$TFMNAME" >$STDOUT - "$MT_MKTEXUPD" "$TFMDESTDIR" $TFMNAME - exit -fi - -# Try to create the destdir first. Do not create fonts, if this fails. -"$MT_MKTEXDIR" "$TFMDESTDIR" -if test ! -d "$TFMDESTDIR"; then - echo "$progname: mktexdir $TFMDESTDIR failed." - exit 1 -fi - -case "$NAME" in -cm*[+-][0-9]*|cs*[+-][0-9]*|vn*[+-][0-9]*) - BASE_MFNAME=`expr $NAME : '\(.*\)[+-][0-9]*$'` - EXPANSION=`expr $NAME : '.*\([+-][0-9]*\)$'` - echo "/^u#:=[0-9.]*\/[0-9.]*pt#;/a\\" > $NAME.sed - echo "u#:=u#$EXPANSION/1000u#;" >> $NAME.sed - sed -f $NAME.sed `kpsewhich $BASE_MFNAME.mf` > $NAME.mf - MFDESTDIR=`echo "$TFMDESTDIR" | sed 's%/tfm/%/source/%'` - "$MT_MKTEXDIR" "$MFDESTDIR" && mv -f $NAME.mf $MFDESTDIR - ;; -tq*[+-][0-9]*) - BASE_MFNAME=`expr $NAME : '\(.*\)[+-][0-9]*$'` - EXPANSION=`expr $NAME : '.*\([+-][0-9]*\)$'` - echo "expansion_ratio := $EXPANSION;" > $NAME.mf - echo "input $BASE_MFNAME.mf" >> $NAME.mf - MFDESTDIR=`echo "$TFMDESTDIR" | sed 's%/tfm/%/source/%'` - "$MT_MKTEXDIR" "$MFDESTDIR" && mv -f $NAME.mf $MFDESTDIR - ;; -*[+-][0-9]*) - EXPANSION_TAG=`expr $NAME : '.*\([+-][0-9]*\)$'` - ;; -esac - -if test "x$EXPANSION_TAG" = x; then -cmd="mf \mode:=$MODE; mag:=$MAG; nonstopmode; input $NAME.mf" -echo "$progname: Running $cmd" - -$cmd </dev/null || { - grep '^!' $NAME.log >$$.errs 2>/dev/null - grep '^! Strange path' $$.errs >$$.strange 2>/dev/null - if cmp $$.errs $$.strange >/dev/null 2>&1 \ - && test -s $$.strange >/dev/null 2>&1; then - echo "$progname: warning: \`$cmd' caused strange path errors." >&2 - else - echo "$progname: \`$cmd' failed." >&2 - test -s $NAME.log && mv -f $NAME.log "$KPSE_DOT" - exit 1; - fi -} - -else -mktextfm.ext $NAME $TFMDESTDIR $STDOUT -exit 0 -fi - -test -r $TFMNAME || { echo "$progname: \`$cmd' failed to make $TFMNAME."; exit 1; } - -# Install the TFM file carefully, since others may be working simultaneously. -# Use cp when mv fails, since DOS will fail mv for deeply-nested directories. -mv $TFMNAME "$TFMDESTDIR/tfm$$.tmp" 2>/dev/null \ - || cp $TFMNAME "$TFMDESTDIR/tfm$$.tmp" || exit 1 -cd "$TFMDESTDIR" || exit 1 -chmod `kpsestat -xst,go-w .` tfm$$.tmp -test -r $TFMNAME || mv tfm$$.tmp $TFMNAME || exit 1 - -# OK, success with the TFM. -"$MT_MKTEXUPD" "$TFMDESTDIR" $TFMNAME -echo "$TFMDESTDIR/$TFMNAME" >$STDOUT -echo "$progname: $TFMDESTDIR/$TFMNAME: successfully generated." >&2 - -# Since we probably made a GF(->PK) file, too, may as well install it if -# it's needed. -cd $TEMPDIR -if test -r $GFNAME && test ! -f "$PKDESTDIR/$PKNAME"; then - gftopk ./$GFNAME $PKNAME || exit 1 - "$MT_MKTEXDIR" "$PKDESTDIR" - mv $PKNAME "$PKDESTDIR/pk$$.tmp" 2>/dev/null \ - || cp $PKNAME "$PKDESTDIR/pk$$.tmp" || exit 1 - cd "$PKDESTDIR" || exit 1 - if test -f $PKNAME; then - rm -f pk$$.tmp - else - chmod `kpsestat -xst,go-w .` pk$$.tmp - mv pk$$.tmp $PKNAME - "$MT_MKTEXUPD" "$PKDESTDIR" $PKNAME - fi -fi -) 1>&2 </dev/null diff --git a/Master/texmf-dist/doc/pdftex/thanh/ext/mktextfm.ext b/Master/texmf-dist/doc/pdftex/thanh/ext/mktextfm.ext deleted file mode 100644 index 004982c8d51..00000000000 --- a/Master/texmf-dist/doc/pdftex/thanh/ext/mktextfm.ext +++ /dev/null @@ -1,104 +0,0 @@ -#! /bin/sh - -# mktextfm.ext: make mm instance and tfm - -name=$1 -tfmdestdir=$2 -stdout=$3 -expansion=`expr $name : '.*\([+-][0-9]*\)$'` - -t1destdir=`echo "$tfmdestdir" | sed 's%/tfm/%/type1/%'` -afmdestdir=`echo "$tfmdestdir" | sed 's%/tfm/%/afm/%'` -vfdestdir=`echo "$tfmdestdir" | sed 's%/tfm/%/vf/%'` - -case "$expansion" in -+0) - name=`echo $1 | sed 's/[+-]0$//'` - ;; -esac - -psname=`echo $name | sed 's/8z/8a/'` -if test "$expansion" = "+0"; then - base_name=$psname -else - base_name=`expr $psname : '\(.*\)[+-][0-9]*$'` -fi -mm_map=$HOME/texmf/fontname/mminstance.map -test -n "$mm_map" && - line=`egrep \^$base_name'[ ]' $mm_map` -test -n "$line" && - mmname=`expr "$line" : '[^ ][^ ]*[ ][ ]*\([^ ][^ ]*\).*$'` - -if test -n "$mmname"; then - -base_mmname=`expr "$mmname" : '\([^0-9_]*\)_[0-9]*_.*$'` -width=`expr "$mmname" : '.*_\([0-9]*\)_wd.*$'` -weight=`expr "$mmname" : '.*_\([0-9]*\)_wt.*$'` -opt_size=`expr "$mmname" : '.*_\([0-9]*\)_op.*$'` - -if test -n "$width"; then - new_width=`echo "scale=2;($width*(1000 $expansion))/1000"|bc` - mm_flags="--width=$new_width" -else - echo Font $base_mmname does not have width axis - exit 1 -fi -if test -n "$weight"; then - mm_flags="$mm_flags --weight=$weight" -fi -if test -n "$opt_size"; then - mm_flags="$mm_flags --optical-size=$opt_size" -fi - -mm=`kpsewhich $base_mmname.pfb` -if test -z "$mm"; then - echo $base_mmname.pfb not found! - exit 1 -fi -mmdir=`dirname $mm` -wdir=`pwd` - -cd $mmdir -cmd mmafm $mm_flags -o $wdir/$psname.afm $base_mmname.amfm -cmd mmpfb $mm_flags -o $wdir/$psname.pfb $base_mmname.pfb - -cd $wdir - -cmd mktfm8z $name $psname - -"$MT_MKTEXDIR" "$afmdestdir" && mv $psname.afm $afmdestdir && \ -"$MT_MKTEXUPD" "$afmdestdir" $psname.afm - -"$MT_MKTEXDIR" "$t1destdir" && mv $psname.pfb $t1destdir && \ -"$MT_MKTEXUPD" "$t1destdir" $psname.pfb - -else - -if test "$expansion" = "+0"; then - expansion="" -fi - -afm=`kpsewhich $base_name.afm` -if test -z "$afm"; then - echo $base_name.afm not found! - exit 1 -fi - -cp $afm ./ - -cmd mktfm8z $name $base_name - -fi - -for f in *.tfm; do - mv $f $tfmdestdir - "$MT_MKTEXUPD" "$tfmdestdir" $f -done - -"$MT_MKTEXDIR" "$vfdestdir" -for f in *.vf; do - mv $f $vfdestdir - "$MT_MKTEXUPD" "$vfdestdir" $f -done - -echo "$tfmdestdir/$name.tfm" >$stdout diff --git a/Master/texmf-dist/doc/pdftex/thanh/ext/mktfm8z b/Master/texmf-dist/doc/pdftex/thanh/ext/mktfm8z deleted file mode 100644 index 7b84f893429..00000000000 --- a/Master/texmf-dist/doc/pdftex/thanh/ext/mktfm8z +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/bash - -if test "x$2" = "x"; then - echo "Usage: $0 TeX-name PS-name [expansion]" - exit 1 -fi - -export TEXINPUTS="`pwd`:\$TEXMF/tex/{plain,generic,}//" -echo TEXINPUTS = $TEXINPUTS - -tname=${1%.*} -pname=${2%.*} - -tbase=`echo $tname | sed 's/[+-][0-9]*$//'` -ttag=`expr $tname : '.*\([+-][0-9]*\)$'` -pbase=`echo $pname | sed 's/[+-][0-9]*$//'` -ptag=`expr $pname : '.*\([+-][0-9]*\)$'` -pbase8r=`echo $pbase | sed 's/8a/8r/'` - -if test "x$ttag" != "x$ptag"; then -cat <<EOF > a.tex -\input ufntinst.sty -\transformfont{$pname$ttag}{\xscalefont{\add{1000}{$ttag}}{\fromafm{$pname}}} -\bye -EOF -tex a.tex -fi - -cat <<EOF > b.tex -\input ufntinst.sty - -\installfonts -\installcsfont{$tbase}{$pbase8r}{$ttag}{$pbase} -\endinstallfonts -\bye -EOF -tex b.tex - -for f in *.pl; do pltotf ${f%.pl}; done -for f in *.vpl; do vptovf ${f%.vpl}; done diff --git a/Master/texmf-dist/doc/pdftex/thanh/ext/protcode.tex b/Master/texmf-dist/doc/pdftex/thanh/ext/protcode.tex deleted file mode 100644 index 57f735a9739..00000000000 --- a/Master/texmf-dist/doc/pdftex/thanh/ext/protcode.tex +++ /dev/null @@ -1,83 +0,0 @@ -% this code works with OT1 encoding only! - -\def\setprotcode#1{% - \rpcode#1`\!=200 - \rpcode#1`\,=700 - \rpcode#1`\-=700 - \rpcode#1`\.=700 - \rpcode#1`\;=500 - \rpcode#1`\:=500 - \rpcode#1`\?=200 - \lpcode#1`\`=700 - \rpcode#1`\'=700 - \lpcode#1 92=500 % `` - \rpcode#1 34=500 % '' - \rpcode#1 123=300 % -- - \rpcode#1 124=200 % --- - \rpcode#1`\)=50 - \rpcode#1`\A=50 - \rpcode#1`\F=50 - \rpcode#1`\K=50 - \rpcode#1`\L=50 - \rpcode#1`\T=50 - \rpcode#1`\V=50 - \rpcode#1`\W=50 - \rpcode#1`\X=50 - \rpcode#1`\Y=50 - \rpcode#1`\k=50 - \rpcode#1`\r=50 - \rpcode#1`\t=50 - \rpcode#1`\v=50 - \rpcode#1`\w=50 - \rpcode#1`\x=50 - \rpcode#1`\y=50 - \lpcode#1`\(=50 - \lpcode#1`\A=50 - \lpcode#1`\J=50 - \lpcode#1`\T=50 - \lpcode#1`\V=50 - \lpcode#1`\W=50 - \lpcode#1`\X=50 - \lpcode#1`\Y=50 - \lpcode#1`\v=50 - \lpcode#1`\w=50 - \lpcode#1`\x=50 - \lpcode#1`\y=0 - \adjustprotcode#1\relax -} - -\newif\ifneedadjustprotcode -\newbox\boxA -\newcount\countA -\newcount\countB -\def\adjustprotcode#1{% - \needadjustprotcodefalse - \ifnum\pdftexversion = 14 - \ifnum \expandafter`\pdftexrevision > `g - \needadjustprotcodetrue - \fi - \else\ifnum\pdftexversion > 14 - \needadjustprotcodetrue - \fi \fi - \ifneedadjustprotcode - \countA=0 - \loop - \ifcase\lpcode#1\countA\else - \adjustcp\lpcode#1\countA - \fi - \ifcase\rpcode#1\countA\else - \adjustcp\rpcode#1\countA - \fi - \advance\countA 1 - \ifnum\countA < 256 \repeat - \fi -} -\def\adjustcp#1#2#3{% - \setbox\boxA=\hbox{% - \ifx#2\font\else#2\fi - \char#3}% - \countB=\wd\boxA - \multiply\countB #1#2#3\relax - \divide\countB \fontdimen6 #2\relax - #1#2#3=\countB\relax -} diff --git a/Master/texmf-dist/doc/pdftex/thanh/ext/ufntinst.sty b/Master/texmf-dist/doc/pdftex/thanh/ext/ufntinst.sty deleted file mode 100644 index 1eecffe51bc..00000000000 --- a/Master/texmf-dist/doc/pdftex/thanh/ext/ufntinst.sty +++ /dev/null @@ -1,442 +0,0 @@ -\input fontinst.sty - -\def\fontinstcc{% - \catcode`\ =9 - \catcode`\^^M=9 - \catcode`\@=11 - \catcode`\_=11 - \catcode`\~=10 - }% - -\def\normalcc{% - \catcode`\@=\atcatcode - \catcode`\^^M=\nlcatcode - \catcode`\ =\spacecatcode - \catcode`\~=\tildecatcode - \catcode`\_=\underscorecatcode - }% - -\fontinstcc - -\def\llx{\glyph_bb_parameter\first_of_four} -\def\lly{\glyph_bb_parameter\second_of_four} -\def\urx{\glyph_bb_parameter\third_of_four} -\def\ury{\glyph_bb_parameter\fourth_of_four} - -\def\glyph_bb_parameter#1#2{ - \expandafter\expandafter\expandafter - #1\csname gb-#2\endcsname -} - -\def\first_of_four#1#2#3#4{#1} -\def\second_of_four#1#2#3#4{#2} -\def\third_of_four#1#2#3#4{#3} -\def\fourth_of_four#1#2#3#4{#4} - -\def\afm_char{ - \a_count=-\bbox_lly - \eval_expr{ - \italcorr_expression\x_width\bbox_llx\bbox_urx\bbox_lly\bbox_ury - } - \out_line{ - \ifnum -1<\char_slot - \string\setrawglyph - \else - \string\setnotglyph - \fi - {\char_name} - {\raw_font_name} - {10pt} - {\the\char_slot} - {\the\x_width} - {\the\bbox_ury} - {\the\a_count} - {\the\result} - } - \outglyphbb % bbox support patch -} - -\def\outglyphbb{ - \out_line{ - \string\setglyphbbox - {\char_name} - {\raw_font_name} - {\the\bbox_llx} - {\the\bbox_lly} - {\the\bbox_urx} - {\the\bbox_ury} - } -} - -\def\setglyphbbox#1#2#3#4#5#6{ - \if_undefined{gb-#1}\then - \eval_expr_to\a_count{#3} - \eval_expr_to\b_count{#4} - \eval_expr_to\c_count{#5} - \eval_expr_to\d_count{#6} - \ifisint{i-rawscale}\then - \e_count=\int{rawscale} - \multiply \a_count \e_count \l_rounded_thousandths\a_count - \multiply \b_count \e_count \l_rounded_thousandths\b_count - \multiply \c_count \e_count \l_rounded_thousandths\c_count - \multiply \d_count \e_count \l_rounded_thousandths\d_count - \fi - \x_cs\edef{gb-#1}{ - {\the\a_count} - {\the\b_count} - {\the\c_count} - {\the\d_count} - } - \fi -} - -\def\mtxtomtx_setglyphbbox#1#2#3#4#5#6{ - \eval_expr_to\a_count{\scale{#3}{\int{x-scale}}} -% \eval_expr_to\a_count{\add{\scale{#3}{\int{x-scale}}} -% {\scale{#4}{\int{slant-scale}}}} - \eval_expr_to\b_count{\scale{#4}{\int{y-scale}}} - \eval_expr_to\c_count{\scale{#5}{\int{x-scale}}} -% \eval_expr_to\c_count{\add{\scale{#5}{\int{x-scale}}} -% {\scale{#5}{\int{slant-scale}}}} - \eval_expr_to\d_count{\scale{#6}{\int{y-scale}}} - \out_line{ - \string\setglyphbbox - {#1}{\raw_font_name}{\the\a_count}{\the\b_count}{\the\c_count}{\the\d_count} - } -} - -\def\mtxtomtx#1#2{{ - \ifisstr{etx-name}\then - \def\do_slot{\x_cs\edef{slots-\slot_name}{\the\slot_number}} - \inputetx{\str{etx-name}} - \edef\a_macro{\string\reencodefont{\str{etx-name}}} - \else - \let\a_macro=\empty_command - \fi - \_a_true - \ifnum \int{x-scale}=\int{y-scale} - \ifnum \int{slant-scale}=\z@ - \_a_false - \fi \fi - \if_a_ - \a_count=\int{x-scale} - \l_inv_scale\a_count{\int{y-scale}} - \b_count=\int{slant-scale} - \l_inv_scale\b_count{\int{y-scale}} - \edef\a_macro{\a_macro - \string\transformfont{\the\a_count}{\the\b_count} - } - \fi - \open_out{\temp_prefix#2.mtx} - \edef\raw_font_name{#2} - \out_line{\percent_char~Filename:~#2.mtx} - \out_line{\percent_char~Created~by:~tex~\jobname} - \out_line{\percent_char~Created~using:~\string\mtxtomtx{#1}{#2}} - \out_line{} - \out_line{\percent_char~This~file~is~used~by~the~fontinst~package.} - \out_line{} - \out_line{\percent_char~THIS~FILE~CAN~BE~DELETED.} - \out_line{} - \out_line{\string\relax} - \out_line{\string\metrics} - \out_line{} - \out_line{\string\needsfontinstversion{\fontinstversion}} - \out_line{} - \record_transform{#2}{\string\frommtx{#1}}{\a_macro}\iftrue - \out_line{} - \let\setint=\mtxtomtx_setint - \let\setdim=\mtxtomtx_setdim - \let\setstr=\mtxtomtx_setstr - \let\setscaledrawglyph=\mtxtomtx_setscaledrawglyph - \let\setscalednotglyph=\mtxtomtx_setscaledrawglyph - \let\setglyphbbox=\mtxtomtx_setglyphbbox % bbox support patch - \let\setkern=\mtxtomtx_setkern - \let\setglyph=\mtxtomtx_setglyph - \let\glyphpcc=\mtxtomtx_glyphpcc - \let\samesize=\mtxtomtx_samesize - \let\endsetglyph=\mtxtomtx_endsetglyph - \inputmtx{#1} - \out_line{} - \out_line{\endmetrics_text} - \close_out{Transformed~metrics} -}} - -\def\reglyph_font#1#2{{ - \open_out{\temp_prefix#1.mtx} - \out_line{\percent_char~Filename:~#1.mtx} - \out_line{\percent_char~Created~by:~tex~\jobname} - \out_line{\percent_char~Created~using:~\string\reglyphfont{#1}{#2}} - \out_line{} - \out_line{\percent_char~This~file~is~used~by~the~fontinst~package.} - \out_line{} - \out_line{\percent_char~THIS~FILE~CAN~BE~DELETED.} - \out_line{} - \out_line{\string\relax} - \out_line{\string\metrics} - \out_line{} - \out_line{\string\needsfontinstversion{\fontinstversion}} - \out_line{} - \record_transform{#1}{\string\frommtx{#2}}{\string\reglyphfont} - \iftrue - \out_line{} - \let\setint=\reglyph_setint - \let\setdim=\reglyph_setdim - \let\setstr=\reglyph_setstr - \let\setscaledrawglyph=\reglyph_setscaledrawglyph - \let\setscalednotglyph=\reglyph_setscaledrawglyph - \let\setglyphbbox=\reglyph_setglyphbbox % bbox support patch - \let\setkern=\reglyph_setkern - \let\setglyph=\reglyph_setglyph - \let\glyphpcc=\reglyph_glyphpcc - \let\samesize=\reglyph_samesize - \let\endsetglyph=\reglyph_endsetglyph - \inputmtx{#2} - \out_line{} - \out_line{\endmetrics_text} - \close_out{Reglyphed~metrics} -}} - -\def\reglyph_setglyphbbox#1#2#3#4#5#6{ - \command_survivance=0 - \def\glyphname{#1} - \csname slots-#1\endcsname - \iftokeep\command_survivance\then - \out_line{ - \string\setglyphbbox - {\glyphname}{#2}{#3}{#4}{#5}{#6} - } - \fi -} - -\def\bbw#1{ - \sub{\urx{#1}}{\llx{#1}} -} - -\def\bbh#1{ - \sub{\ury{#1}}{\lly{#1}} -} - -\setcommand\centeraccent#1#2#3#4{ - \push - \moveup{#4} - \movert{\add{\add{\scale{500}{\sub{\width{#1}}{\width{#2}}}}{#3}} - {\scale{#4}{\int{italicslant}}}} - \glyph{#2}{1000} - \pop - \glyph{#1}{1000} -} - -\def\composeglyphpac#1#2#3#4#5{ - \resetglyph{#1} - \centeraccent{#2}{#3}{\add{\int{#3-sx}}{#4}}{\add{\int{#3-sy}}{#5}} - \endresetglyph - \setleftrightkerning{#1}{#2}{1000} -} - -\def\putquoteright#1#2#3#4#5{ - \push - \movert{\add{\urx{#1}}{#3}} - \moveup{\sub{#5}{\scale{#2}{\lly{quoteright}}}} - \glyph{quoteright}{#2} - \pop - \glyph{#1}{1000} - \movert{#4} -} - -\def\setsy#1#2#3{ - \setint{#1-sy}{\add{\sub{\int{#2}}{\lly{#1}}}{#3}} -} - -\def\setAsx#1#2#3{ - \setint{#1-sx} - {\add{\scale{\int{italicslant}}{\sub{\lly{#1}}{\lly{#2}}}}{#3}} -} - -\let\iffileexists=\if_file_exists - -\def\log#1{\immediate \write 16 {#1}} - -\def\setkerns#1#2#3{ - \foreach(leftglyph){#1} - \foreach(rightglyph){#2} - \setkern{\str{leftglyph}}{\str{rightglyph}}{#3} - \endfor(rightglyph) - \endfor(leftglyph) -} - -\def\resetkerns#1#2#3{ - \foreach(leftglyph){#1} - \foreach(rightglyph){#2} - \resetkern{\str{leftglyph}}{\str{rightglyph}}{#3} - \endfor(rightglyph) - \endfor(leftglyph) -} - -\def\setnullglyph#1{ - \setglyph{#1} - \endsetglyph - \setint{#1-spacing}{0} -} - -% \installcsfont{texbase}{psbase8r}{expansion}{psbase} -% e.g. \installcsfont{putr8z}{putr8r}{}{putr8a} -% or \installcsfont{putr8z}{putr8r}{+20}{putr8a} - -\def\installcsfont#1#2#3#4{ - \iffileexists{#4#3.afm}\then - \transformfont{#2#3}% - {\reencodefont{8r}{\fromafm{#4#3}}} - \transformfont{#2x#3}% - {\reencodefont{8r}{\yscalefont{700}{\fromafm{#4#3}}}} - \else - \transformfont{#2#3}% - {\reencodefont{8r}{\frommtx{#4#3}}} - \transformfont{#2x#3}% - {\reencodefont{8r}{\yscalefont{700}{\frommtx{#4#3}}}} - \fi -% \transformfont{#2x#3}% -% {\reencodefont{8r}{\yscalefont{700}{\fromafm{#4#3}}}} - \reglyphfonts - \renameglyph{Acute}{acute} - \renameglyph{Caron}{caron} - \renameglyph{Ring}{ring} - \renameglyph{Grave}{grave} - \renameglyph{Dieresis}{dieresis} - \renameglyph{Circumflex}{circumflex} -% \renameglyph{Breve}{breve} -% \renameglyph{Cedilla}{cedilla} -% \renameglyph{Dotaccent}{dotaccent} -% \renameglyph{Hungarumlaut}{hungarumlaut} -% \renameglyph{Ogonek}{ogonek} -% \renameglyph{Slash}{slash} - \resetcommand\iftokeep##1{\ifnumber{##1}>{0}} - \offmtxcommand{\setkern} - \offmtxcommand{\setglyph} - \offmtxcommand{\setint} - \reglyphfont{#2u#3}{#2x#3} - \endreglyphfonts - \iffileexists{mk#1.mtx}\then - \installfont{#1#3}{#2#3,#2u#3,mk#1}{il2}{}{}{}{}{} - \else - \installfont{#1#3}{#2#3,#2u#3,cs}{il2}{}{}{}{}{} - \fi -} - -\def\writecc#1#2#3#4#5#6#7#8{ - \global\let\setsomething_global=\x_relax - \input_metrics{}{#2} - \etxtocc{#3}{#1} - \global\let\setsomething_global=\global -} - -\def\etxtocc#1#2{{ - \make_assignments{#1} - \open_out{#2.cc} - \bgroup - \let\do_slot=\do_cc - \let\end_do_slot=\end_do_cc - \let\saved_raw\cc_raw - \let\saved_scale\cc_scale - \let\saved_movert\cc_movert - \let\saved_moveup\cc_moveup - \inputetx{#1} - \egroup - \close_out{CC~information} -}} - - -\def\do_cc{ - \if_undefined{g-\slot_name}\then - \expandafter\gobble_setslot - \Else - \ifx\slot_name\notdef_name\else - \do_cc_map - \fi - \Fi -} - -\def\do_cc_map{ - \let\cc_list=\empty - \pcc_count=0 - \shift_x=0 - \shift_y=0 - \mapcommands\slot_name -} - -\def\end_do_cc{ - \ifisglyph\slot_name\then\ifnum\pcc_count > 1 - \out_line{CC~\slot_name\space\the\pcc_count\space;~\cc_list} - \fi\fi -} - -\newcount\shift_x -\newcount\shift_y -\newcount\pcc_count - -\def\cc_raw#1#2#3{ - \edef\pcc_raw{PCC~#3~\the\shift_x\space\the\shift_y\space;\space} - \prep_to\cc_list\pcc_raw - \edef\x{\cc_list} - \let\cc_list=\x - \advance\pcc_count 1 - \shift_x=0 - \shift_y=0 -} - -\def\cc_movert#1{ - \advance\shift_x #1 -} - -\def\cc_moveup#1{ - \advance\shift_y #1 -} - -\def\cc_scale#1#2{ - #2 -} - -% \def\init_cc#1{% -% \out_line{\string\setglyph{#1}} -% \def\char_name{#1} -% } - -\def\cc_char{% -% \out_lline{\string\samesize{\char_name-not}} - \out_line{\string\endsetglyph} -} - -\def\setfontdimens{% - \setint{italicslant}{0} - \ifisglyph{x}\then - \setint{xheight}{\height{x}} - \Else - \setint{xheight}{500} - \Fi - \ifisglyph{space}\then - \setint{interword}{\width{space}} - \Else\ifisglyph{i}\then - \setint{interword}{\width{i}} - \Else - \setint{interword}{333} - \Fi\Fi - \setint{fontdimen(1)}{\int{italicslant}} % italic slant - \setint{fontdimen(2)}{\int{interword}} % interword space - \ifisint{monowidth}\then - \setint{fontdimen(3)}{0} % interword stretch - \setint{fontdimen(4)}{0} % interword shrink - \Else - \setint{fontdimen(3)}{\scale{\int{interword}}{600}}% interword stretch - \setint{fontdimen(4)}{\scale{\int{interword}}{240}}% interword shrink - \Fi - \setint{fontdimen(5)}{\int{xheight}} % x-height - \setint{fontdimen(6)}{1000} % quad - \ifisint{typewriter}\then - \setint{fontdimen(7)}{0} % extra space after . - \Else\ifisint{monowidth}\then - \setint{fontdimen(7)}{\int{interword}} % extra space after . - \Else - \setint{fontdimen(7)}{\scale{\int{interword}}{240}}% extra space after . - \Fi\Fi -} - -\normalcc |