[NTG-pdftex] 1.30.0-rc2

Martin Schröder martin at oneiros.de
Sat Jul 2 22:22:51 CEST 2005


- 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 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: 
  - The pdfTeX team now reserves the namespaces \pdf* and \ptex* for new
    primitives of pdfTeX; \pdf* will be used for pdf-specific primitives and
    \ptex* for general extensions.
  - 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. 
    - \ptexelapsedtime 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.
    - \ptexresettimer updates the internal timer, such that subsequent calls to
      \ptexelapsedtime will restart from 0.
  - pdfTeX can now generate random numbers.
    - \ptexuniformdeviate <count> generates a uniformly distributed random
      integer value between 0 (inclusive) and <count> (exclusive).
    - \ptexnormaldeviate expands to a random integer value with a mean of 0 and
      a unit of 65536. 
    - \ptexrandomseed allows access to the current seed value.
    - \ptexsetrandomseed <count> sets the random seed to a specific value.
  - \ptexnoligatures\f disables ligatures for the loaded font \f.
  - \ptexstrcmp{<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
  - \ptexretval is an integer that is either <0, 0, or >0; currently it's used
    by \ptexstrcmp.
  - 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
    - \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.
  - \ptexfilemoddate{<file>} expands to the modification date of <file> in the
    same format as \pdfcreationdate (PDF date format).
  - \ptexfilesize{<file>} expands to the size of <file> as string.
  - \ptexmdfivesum{<abc>} or \ptexmdfivesum file {<file>} calculates the md5
    sum (of a string or a file) and converts it to uppercase hexadecimal format
    (same as \pdfescapehex).
  - \ptexshellescape is a read-only integer that is 1 if \write18 is enabled, 0
  - \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.
- New experimental primitives:
  - \ptexmatch [icase] [subcount <number>}] {<pattern>}{<string>}
    Implements pattern matching using the POSIX regex.
    It returns the same values as \ptexstrcmp, but with the following semantics: 
      -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.
  - \ptexlastmatch <number>
    The result of \ptexmatch 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
- The primitive \pdfmovechar 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).

- documentation: 
  - manual
  - release notes
  - check NEWS
- update change-files.txt

I'm aiming for a release next week.


More information about the ntg-pdftex mailing list