Hi all,
As of 5 minutes ago, the SVN trunk should be near-equivalent to pdftex
1.40.9 (that is not even released yet, but will be shortly, I expect).
It also contains the latest MPlib.
Still to be done:
* synctex support is still missing (I will start on that next)
* cleanups in the build scripts (Esp. Athur and my crosscompilation
scripts)
Things that definately need testers: basically every bug mentioned in
the NEWS sections for pdftex 1.40.4 and up (file is attached), but in
particular I would like to here reports on:
* (un)dumping of included images to the format file. Hartmut, can you
please look at the changes and additions in writeimg.c? I have
converted Martin's pdftex code to something that compiles ok, but
I do not really know whether it works and/or if more stuff needs to
be (un)dumped.
* PDF inclusion (expecially pdfs with page groups). This has been
a general problem area for pdftex over the past few releases, so
testing is definately needed.
* the Page Group addition for transparent images (pdf/png). This
especially affects pdftoepdf.cc and writepng.c. Martin, can you
check this?
In general the image-related parts of the merge are harder than all
others because Hartmut made so many changes and cleanups compared to
pdftex already.
Best wishes,
Taco
--------------------------------------------------
pdfTeX 3.1415926-1.40.8 was released on 2008-07-10
--------------------------------------------------
- Incorporated synctex
- Incorporated the new version of TeX: 3.1415926
- The pool file is now compiled in
- Bugfix:
- some large TrueType fonts caused pdftex to segfault (1866)
- fix for copying contents streams of included pdf (1751)
- Fonts from included PDFs for which maplines existed missed their /StemV
values
- \pdflastximagepages was broken for JBIG2 images
- included PDFs with a negative lly in the MediaBox with a depth != 0 with
\pdfximage were wrongly vertically diplaces (936)
- PDF inclusion was broken on ppc-darwin (941)
- pdfTeX uses libpng 1.2.29
-------------------------------------------------
pdfTeX 3.141592-1.40.7 was released on 2008-02-17
-------------------------------------------------
- Bugfix:
- PDFs > 2GiB (LFS) were still broken on 32-bit systems
-------------------------------------------------
pdfTeX 3.141592-1.40.6 was released on 2008-02-04
-------------------------------------------------
- Bugfixes:
- inclusion of encrypted PDFs was broken (861)
- PDFs > 2GiB (LFS) would be broken, even on 64-bit systems. Now the basic
support for LFS is there, you only need to supply the right compiler flags
(this is not yet done automatically). See build.sh for hints on compiling.
- Page groups in pdfs (see the discussion in the notes vor v1.10a) are now
handled correctly (741)
- When including transparent PNGs pdftex now automatically adds a Page Group
(896)
- broken map files would lead to core dumps
- unusual TrueType fonts would lead to an assertion error (874)
- the null object in the object table was never initialized
- included PDFs with /PieceInfo lost their /LastModified date
- an empty colorstack crashed pdftex (897)
- pdfTeX uses libpng 1.2.24
- pdfTeX uses xpdf 3.02pl2
-------------------------------------------------
pdfTeX 3.141592-1.40.5 was released on 2007-07-31
-------------------------------------------------
- Bugfixes:
- calling 'pdftex %' would crash (830)
- fflush the recorder file
- pdfTeX uses xpdf 3.02pl1
-------------------------------------------------
pdfTeX 3.141592-1.40.4 was released on 2007-07-11
-------------------------------------------------
- Bugfixes:
- It was impossible to set the font Flags to 4 in map entries (762)
- The font Flags of non-embedded fonts were wrong (794)
Now pdfTeX uses the Flags from map entries (if found) or guesses values for
the base14 fonts. It also warns when you not-embedd a font without Flags
- Subsetted fonts still had their private UniqueID copied (774)
- \pdfunescapehex returned a wrong result if the last character was not a
hexadecimal digit and the last hex pair was incomplete (777)
- Copying a box with \pdfstartlink inside produced the same /Link annotation
object multiply, with same object number and identical coordinates on the
page (799)
- When trying to use a font without TFM, without map entry, and no PK font
available, a broken PDF was produced. Now no PDF is generated and the error
messages have been improved (721)
- Problems with vf fonts (722)
- With pdf inclusion the font descriptor could get mixed up and miss some
required keys (810)
- Font expansion led to wrong log output of \kerns (736)
- \pdfprimitive was broken (see
http://www.ntg.nl/pipermail/ntg-pdftex/2007-April/002860.html)
- The -recorder option of web2c didn't record fonts, included images and some
other files (772)
- Using \pdfximage in IniTeX before \dump caused a crash when the format was
used (824)
- \letterspacefont had some problems (712)
- \letterspacefont and \pdffontexpand had some problems (747)
- Improvements:
- pdf compression is now a bit faster (patch 726)
- the behaviour of TeX when it asks for a file name has been improved (756)
- pdfTeX uses libpng 1.2.18
- pdfTeX uses xpdf 3.02
-------------------------------------------------
pdfTeX 3.141592-1.40.3 was released on 2007-02-04
-------------------------------------------------
- bugfix: documents which used type 1 and truetype or opentype fonts resulted in
broken pdfs (729)
-------------------------------------------------
pdfTeX 3.141592-1.40.2 was released on 2007-01-31
-------------------------------------------------
- bugfix: maplines starting with = would not work as advertised
- bugfix: xpdf would complain that PDF 1.7 is too new
-------------------------------------------------
pdfTeX 3.141592-1.40.1 was released on 2007-01-08
-------------------------------------------------
- bugfix: the shell escape function was a bit broken
- bugfix: \pdffontattr gave confusing warnings
- allow JBIG2 images only with PDF >= 1.4
- allow \pdfglyphtounicode in dvi mode for format generation
- pdfTeX uses libpng 1.2.15
-------------------------------------------------
pdfTeX 3.141592-1.40.0 was released on 2007-01-01
-------------------------------------------------
- pdfetex (as a separate binary/program) is gone; all extensions are now in
pdftex. The make files still know about the target pdfetex, but it's just a
copy of pdftex
- The sources of TeX, eTeX and pdfTeX have been merged into one file pdftex.web
and one change file pdftex.ch. The sources of TeX and eTeX distributed are
just there for reference
- New features:
- pdfTeX can now generate PDF 1.5 object streams, which leads to smaller
PDFs. This is controlled by setting \pdfobjcompresslevel to a value >0 (3
compress everything, 2 don't compress /Info, 1 also don't compress embedded
PDFs) and works only with PDF >=1.5
- pdfTeX now supports another image file format: JBIG2 files (.jbig2)
- the memory allocated for objects and destination names now grows
dynamically
- pdfTeX now generates smaller PDFs since for char positioning the width of
chars (/Widths) is stored with more precision and so the chars must rarely
be positioned separately
- the PK resolution is now taken from the "pk_dpi" parameter in texmf.cnf if
it has not been set in the format file or by the user
- pdfTeX now removes the generated pdf in case of a fatal error
- pdfTeX now sets /ModDate and /Trapped in the InfoDict by default (the
values can be overridden with \pdfinfo)
- the format of warnings and errors issued by pdfTeX has been changed and
unified
- the output of -version has been extended and now includes information about
the libraries actually used, which can be handy when using shared libraries
- rules and their positioning on the page are now inside a qQ group
- New primitives:
- pdfTeX can now handle colourstacks.
- \pdfcolorstackinit
A stack is initialized by \pdfcolorstackinit. It expands to the number of
the new stack. The common case, the traditinal color stack is already
initialized as first stack: \pdfcolorstackinit page direct {0 g 0 G}
The keyword "page" means that this stack is page based. At the start of
the new page, the current stack value is automatically set.
- \pdfcolorstack
\pdfcolorstack <stack number> push {<new color>}
pushes the current value on the stack and sets the <new color>.
\pdfcolorstack <stack number> pop
pops and sets the current stack value.
\pdfcolorstack <stack number> current
sets the current stack value without changing the stack. This is useful
for stacks that are initialized without keyword "page". Thus the page
start setting can be set manually.
\pdfcolorstack <stack number> set {<new color>}
The current value is set to <new color>.
- Transformation matrices can now be manipulated more cleanly:
Currently matrix changes are done and hidden inside \pdfliteral nodes;
pdfTeX doesn't parse its contents and does not know the new settings of the
transform matrix. Thus the new primitives to save pdfTeX from parsing
\pdfliteral contents and to notify pdfTeX about matrix changes to use them
in calculating link and anchor positions.
- \pdfsetmatrix{<a> <b> <c> <d>}
is the equivalent to \pdfliteral{<a> <b> <c> <d> 0 0 cm}
- \pdfsave is the equivalent to \pdfliteral{q}
- \pdfrestore is the equivalent to \pdfliteral{Q}
- \pdfprimitive\TeX-primitive executes the original \TeX-primitive even if
the command has been redefined since. E.g.
\let\relax\undefined\pdfprimitive\relax
expands to \relax.
\ifpdfprimitive\TeX-primitive is true if \TeX-primitive has its original
meaning
- \ifpdfabsnum and \ifpdfabsdim are like \ifnum and \ifdim, but don't care
about negative numbers
- shell escape: if the first character of a filename for \openin, \openout
\input is a pipe symbol (|), the filename is assumed to be a request for a
pipe to a command line that is given in the rest of the filename
- draftmode: With \pdfdraftmode=1 or the commandline switch -draftmode pdfTeX
doesn't write the output pdf and doesn't actually read any images, thus
speeding up compilations when you know you need an extra run but don't care
about the output, e.g. just to get the BibTeX references right
- \pdfpxdimen (introduced in 1.30) is now a real dimension parameter. It
allows one base dimensions on pixels. 1px defaults to 1bp (or 72dpi), but
can be changed with the \pdfpxdimen primitive:
\pdfpxdimen=1in % 1 dpi
\divide\pdfpxdimen by 96 % 96 dpi
\hsize=1200px
Now \hsize is (1in/96)*1200
- \pdflastlink returns the object number of the last \pdfstartlink
- \pdfsavepos now works in DVI mode
- Fonts:
- support for subfonts: This creates all needed map entries for subfonts
automatically and handles Unicode mappings
- ToUnicode entries for Type1 fonts (patch 580)
- HZ:
- added patch 462: HZ font expansion in autoexpand mode now produces smaller
pdf files, as it works by modififying the text matrix for single fonts
instead of embedding many expanded font versions. Therefore HZ now can be
used also for TrueType fonts and even for non-embedded fonts (e.g.
Times-Roman)
- Bugfixes:
- the PDF statistics in the log are now correct
- added JFIF detection patch to writejpg.c (bug 548)
- bugfix: invalid pdf created if font name contains space (509)
- bugfix: truetype OS/2 v3 fonts (594)
- bugfix: Type1C (CFF) fonts of embedded pdfs didn't get replaced
- pdfTeX uses libpng 1.2.14
-------------------------------------------------
pdfTeX 3.141592-1.30.6 was released on 2006-02-16
-------------------------------------------------
- bugfix: updated xpdf to 3.01pl2
-------------------------------------------------
pdfTeX 3.141592-1.30.5 was released on 2005-12-04
-------------------------------------------------
- bugfix: \pdfximage prints the file name twice (bug 441)
- bugfix: buffer overflow with \pdfmatch (bug 444)
- bugfix: updated xpdf to 3.01pl1
-------------------------------------------------
pdfTeX 3.141592-1.30.4 was released on 2005-10-17
-------------------------------------------------
- bugfix: whitespaces in filenames didn't work on Unix anymore (bug 377)
- bugfix: two \immediates cancel themselves (bug 437)
- bugfix: wrong file name in error messages of image inclusion (bug 435)
-------------------------------------------------
pdfTeX 3.141592-1.30.3 was released on 2005-09-04
-------------------------------------------------
- bugfix: \write18
-------------------------------------------------
pdfTeX 3.141592-1.30.2 was released on 2005-08-25
-------------------------------------------------
- fixed some build problems and minor bugs introduced in 1.30.1
-------------------------------------------------
pdfTeX 3.141592-1.30.1 was released on 2005-08-21
-------------------------------------------------
- the eTeX extensions can now be enabled with the cmdline switch -etex
- pdfTeX uses xpdf 3.01
-------------------------------------------------
pdfTeX 3.141592-1.30.0 was released on 2005-08-01
-------------------------------------------------
- pdfxtex (introduced with 1.20a) is gone; all extensions are now in pdf(e)tex.
- Some primitives have been renamed; the old names will still work, but are
deprecated and some give a warning that they are obsolete:
\pdfoptionpdfminorversion -> \pdfminorversion
\pdfoptionalwaysusepdfpagebox -> \pdfforcepagebox
\pdfoptionpdfinclusionerrorlevel -> \pdfinclusionerrorlevel
- pdftex knows two new units:
- new Didot (1nd=0.375mm)
- new Cicero (1nc=12nd)
- New primitives:
- Inclusion of pngs has been greatly improved: It now does
- alpha channel and transparency (only if %!PDF >=1.4)
- 16-bit colour (only if %!PDF >=1.5); this must be enabled by setting
\pdfimagehicolor to 1.
- gamma correction; this must be enabled by setting \pdfimageapplygamma to
1. The device gamma is taken from \pdfgamma. If no embedded value can be
found in the png image, then the value of \pdfimagegamma is used instead.
- fast direct embedding of png streams, if their structure allows this; the
automatic fall-back is to decompress and re-compress as before.
- pdfTeX now has an interface to the precise system time (if available) as an
aid in benchmarking TeX macro code.
- \pdfelapsedtime is a read-only integer that (initially) returns the
amount of time passed since the start of this run. This amount is given
in `scaled seconds': the value 65536 counts as one second. If more time
has passed than 32767 seconds, (2^31)-1 will be returned.
- \pdfresettimer updates the internal timer, such that subsequent calls to
\pdfelapsedtime will restart from 0.
- pdfTeX can now generate random numbers:
- \pdfuniformdeviate <count> generates a uniformly distributed random
integer value between 0 (inclusive) and <count> (exclusive).
- \pdfnormaldeviate expands to a random integer value with a mean of 0 and
a unit of 65536.
- \pdfrandomseed allows access to the current seed value.
- \pdfsetrandomseed <count> sets the random seed to a specific value.
- \pdfnoligatures\f disables ligatures for the loaded font \f.
- Escaping strings:
- \pdfescapestring{<a>} escapes the string <a> so that it can be used as
PDF string.
- \pdfescapename{<a>} escapes the string <a> so that it can be used as PDF
name.
- \pdfescapehex{<a>} converts the string <a> to uppercase hexadecimal
representation.
- \pdfunescapehex{<b>} reverses the effect of \pdfescapehex
- \pdfcreationdate expands to the date string that pdfTeX uses in the info
dict as default.
- \pdffilemoddate{<file>} expands to the modification date of <file> in the
same format as \pdfcreationdate (PDF date format).
- \pdffilesize{<file>} expands to the size of <file> as string.
- \pdfmdfivesum{<abc>} or \pdfmdfivesum file {<file>} calculates the md5
sum (of a string or a file) and converts it to uppercase hexadecimal format
(same as \pdfescapehex).
- \pdffiledump [offset <int>] [length <int>] <general text>
Expands to a hex dump of the file given in <general text>, starting at
given offset or 0 with given length.
- \pdfshellescape is a read-only integer that is 1 if \write18 is enabled, 0
otherwise.
- \pdfxformname <object number>, which expands to the number in the
corresponding form XObject name.
- \leftmarginkern <box number> and \rightmarginkern <box number> tell the
margin kern at the left and right side of the horizontal list stored in box
<box number>.
- \pdfpkmode is a token register that sets the MF mode for pixel font
generation. The contents of this register is dumped into the format, so one
can (optionally) preset it e.g. in part of pdftexconfig.tex.
- \pdftracingfonts: An integer variable controlling the tracing of font
expansion. It is zero by default; then we get a log (with fontexpansion)
like this
...\tenrm t
...\tenrm (+20) e
Without font expansion, this default should be compatible with TeX's
original log output.
If \pdftracingfonts is set to 1 (or greater), we get a more verbose log:
...\xivtt (cmtt10@14.0pt) t
...\xivtt (cmtt10+20@14.0pt) e
See also bug 304.
- New experimental primitives:
- \pdfmatch [icase] [subcount <number>}] {<pattern>}{<string>}
Implements pattern matching using the POSIX regex.
It returns the same values as \pdfstrcmp, but with the following semantics:
-1: error case (invalid pattern, ...)
0: no match
1: match found
Options:
* icase: case insensitive matching
* subcount: it sets the table size for found subpatterns.
A number "-1" resets the table size to the start default.
- \pdflastmatch <number>
The result of \pdfmatch is stored in an array. The entry "0" contains the
match, the following entries submatches. The positions of the matches are
also available. They are encoded:
<position> "->" <match string>
The position "-1" with an empty string indicates that this entry is not
set.
- \pdfstrcmp{<a>}{<b>} compares two strings and returns the strings "0" if
<a> equals <b>, "-1" if <a> is less than <b>, "1" if <a> is greater than
<b>
- The primitive \pdfmovechars has been removed (bug 294)
- Bugfixes:
- empty strings are not supressed anymore (bug 335)
- \unhboxing and character protusion didn't work well together (bug 292)
- --jobname didn't work if there was no filename at all (bug 302)
- Some problem with fonts on solaris (bug 315)
- Dangling font objects with non-replacable fonts (bug 311).
- \pdfxform didn't work with box>255 (bug 310)
- cmap: unicode ???? is mapped to multiple glyphs (bug 306).
- pdfTeX uses zlib 1.2.3
------------------------------------------------
pdfTeX 3.141592-1.21a was released on 2005-02-04
------------------------------------------------
- ttf2afm 1.0:
- added support for refering to glyphs via unicode in encoding files (ie 'uniXXX')
- added some more info to the AFM output
- some minor bug fixes
- a short documentation available
- pdftex now understand forms 'uniXXXX' in encoding files (only makes sense
with TrueType fonts)
- added subset tag for TrueType fonts
- PDF strings are now printed as following:
(This is a string) -> (This is a string)
This is a string -> (This is a string)