http://sarovar.org/download.php/655/pdftex-1.30.0-rc2.zip NEWS: ----------------------------------------------------- - 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 <b> - \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 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. - \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 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: - \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 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. - \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 set. - 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). ----------------------------------------------------- TODO: - TEST - documentation: - manual - release notes - check NEWS - update change-files.txt I'm aiming for a release next week. Best Martin -- http://www.tm.oneiros.de