This new 305-page SIAM book by Nick Trefethen presents a modern approach to approximation by polynomials and rational functions. Much of the theory here underlies the Chebfun software package and almost every page of the book contains examples computed using Chebfun.

The book is certainly a must-read for anyone interested in numerical computation. But the most unusual feature of the book is not immediately obvious: it was entirely produced from 29 MATLAB M-files, one for each chapter. Each M-file contains the book’s text in comment lines intertwined with the MATLAB code that generates the examples and the figures. The book was created by using the MATLAB command `publish`

to generate LaTeX output, which was then run through LaTeX (with a few tweaks for the actual printed book). Nick has made the M-files available at the book’s web page and you can generate the book by running them all through `publish`

.

When I ran `publish`

on one of the M-files it gave a strange error beginning

No method 'createTextNode' with matching signature found for class 'org.apache.xerces.dom.DocumentImpl'.

and I got the same error whatever M-file I tried to publish. This seems to be caused by a clash with some nonstandard M-file on my path, because if I reset the MATLAB path with the `matlabrc`

command (and then add back `chebfun`

to the path) everything works fine.

Thanks for this wonderful tip. I thought I’d mention that the book website appears to have moved to this location:

http://www.chebfun.org/ATAP/