TeX Live 2014 released – what’s new

TeX Live 2014 has been released and is now available for download. Let’s have a look at the changes.

TeX

TeX and MetaFont have been updated. This previously happened 2008, and this year Donald Knuth provided another update. Now we got TeX version 3.14159265, included in TeX Live 2014. Well, the slight changes are essentially invisible: regarding TeX, the only change concerns the “null control sequence”\csname\endcsname, there was a missing space. if somebody wants to try, with this code by Oleg Bulatov, 2008:

\def\\#1{\message{#1bar}}
\def\surprise{wunder}
\let\foo=!
\\\surprise
\\{\csname\endcsname}
\end

you will get a message on the terminal

wunderbar \csname\endcsnamebar

where one would expect just wunderbar bar. Well, that’s fixed now in the print_cs routine! Very nice to see, that the last known TeX bug is so “serious”.

Also MetaFont has been updated to version 2.7182818, which means just a fix of one bug, also discovered in 2008. A classic – a memory leak.

The remaining things are maintainance work. You can read more details about this in Donald Knuth’s article “The TeX tuneup of 2014“.

pdfTeX

“Fake spaces” have been introduced. The original TeX does not insert space characters between words. Instead, words and punctuation characters are positioned for optimal full justification without an explicit space character inbetween. This is very good for printing, however today we often read documents on electronic devices such as laptops, tablet computers and smart phones. They use different screen widths, even on the same device it can change when you rotate the device. Text should reflow on-the-fly. For this it’s better to have a space character as a word delimiter.

TL 2014 comes with pdfTeX 1.40.15, which provides the commands \pdfinterwordspaceon and \pdfinterwordspaceoff for switching insertion of dummy spaces on and off. \pdffakespace simply inserts such a dummy space. Those fake interword spaces don’t affect the usual justification based on glue but they improve text reflowing and textual content extraction.

Furthermore, pdfTeX 1.40.15 now offers the command \pdfsuppresswarningpagegroup. Setting it to a positive integer number supresses some noise, specifically the warnings that more than one included pdf file has a so-called “page group object” (/Group). Ideally, pdfTeX should detect whether the page groups are the same or not, and only give the warning in the latter case, but is not capable of this yet. But often there is no actual problem at all, so one may wish to suppress those warnings.

LuaTeX

There’s a new engine variant, luajittex, still in development though. This one uses a just-in-time Lua compiler. Lua is an interpreter, actually compiling into intermediate byte code which is run in a virtual machine (software CPU) implemented in ANSI-C. The LuaJIT bytecode interpreter is written in assembly language, which results in better usage of resources (registers) and a smaller program. The latter is important: a small program like this can reside in the CPU cache which can be a hundred times faster than normal RAM. The LuaJIT virtual machine is capable of translating the bytecode into machine code at run time – in other words, it’s very fast. I’d love to typeset the 1165 pages PGF documentation (requiring LuaTeX) with it. Further information: LuaJITTeX introduction by Luigi Scarso.

Further engines and remaining changes

I already spent some space with details, let’s speed up before we get too bored: the changes are all listed here in the documentation, I quote the remaining details here:

  • XeTeX: The same image formats are now supported on all platforms (including Mac); avoid Unicode compatibility decomposition fallback (but not other variants); prefer OpenType to Graphite fonts, for compatibility with previous XeTeX versions.
  • MetaPost: A new numbersystem decimal is supported, along with a companion internal numberprecision; a new definition of drawdot in plain.mp, per Knuth; bug fixes in SVG and PNG output, among others.
  • The pstopdf ConTeXt utility will be removed as a standalone command at some point after the release, due to conflicts with OS utilities of the same name. It can still (and now) be invoked as mtxrun –script pstopdf.
  • psutils has been substantially revised by a new maintainer. As a result, several seldom-used utilities (fix*getafmpsmergeshowchar) are now only in the scripts/ directory rather than being user-level executables (this can be reversed if it turns out to be problematic). A new script, psjoin<, has been added.
  • The MacTeX redistribution of TeX Live no longer includes the optional Mac-only packages for the Latin Modern and TeX Gyre fonts, since it is easy enough for individual users to make them available to the system. The convert program from ImageMagick has also been excised, since TeX4ht (specificallytex4ht.env) now uses Ghostscript directly.
  • The langcjk collection for Chinese, Japanese, and Korean support has been split into individual language collections for the sake of more moderate sizes.
  • Platforms: x86_64-cygwin added, mips-irix removed; Microsoft no longer supports Windows XP, so our programs may start failing there at any time.
  • Support for some additional platforms is available as custom binaries (http://tug.org/texlive/custom-bin.html). In addition, some platforms are omitted from the DVD (simply to save space), but can be installed normally over the net.

Download as usual from CTAN mirrors or visit http://tug.org/texlive.

Have fun with the most recent version of this superior open source software!

18. June 2014 by stefan
Categories: LaTeX Distributions, TeX Live | Leave a comment

Leave a Reply