[Tugindia] pdftex 1.30.0 (new stable version)

CV Radhakrishnan cvr at tug.org
Tue Aug 2 06:30:52 CEST 2005


The pdfTeX team is happy to announce the release of a new stable version:

                               pdfTeX 1.30.0

This is the announcement of pdfTeX 1.30.0 an extended version of TeX that
can create PDF directly from TeX source files and enhance the result of
TeX typesetting with the help of PDF.

  Main changes of pdfTeX 1.30.0

- pdfxtex (introduced with 1.20a) is gone; all extensions are now in
- 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.
  - \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>
  - \pdfretval is an integer that is either <0, 0, or >0; currently it's
    used by \pdfstrcmp.
  - 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
    - \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).
  - \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 at 14.0pt) t
    ...\xivtt (cmtt10+20 at 14.0pt) e
    See also bug 304.
  - \pdffiledump [offset <int>] [length <int>] <general text>
    Returns a hex dump of file, given in <general text>, starting at given
offset or 0 with given length.
- 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
      -1: error case (invalid pattern, ...)
       0: no match
       1: match found
    * 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.
- The primitive \pdfmovechar has been removed (bug 294)
- Numerous bugfixes
- pdfTeX uses zlib 1.2.3

For complete release notes see http://www.pdftex.org/NEWS

  Legal notice / license

pdfTeX is copyright (c) 1996-2005 Han The Thanh, <thanh at pdftex.org>

pdfTeX is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 2 of the License, or (at your option)
any later version.

For a complete README (with a full discussion of the license)
please look at http://www.pdftex.org/README

  The files / installation

You should first try to get a new version of pdfTeX through your

If you want to compile it yourself, have a look at http://www.pdftex.org
-- there you can find links to the pdfTeX sources on CTAN. And some useful

  Mailing lists / web pages:

  Mailing list:

  Related web pages:

Have fun!

Martin Schröder (martin at pdftex.org) for the pdfTeX team, August 2005 --

More information about the tugindia mailing list