Open Source Hilbert for the Kindle

David Hilbert
David Hilbert

While searching for free Kindle books I found Project Gutenberg. Project Gutenberg offers free Kindle books but they also have something better! Would you believe LaTeX source code for some mathematical classics.

The best book I’ve found so far is an English translation of David Hilbert’s Foundations of Geometry. Hilbert’s Foundations exposed some flaws in the ancient treatment of Euclidean geometry and recast the subject with modern axioms. Because it is relatively easy to follow, compared to Hilbert’s more recondite publications, this little book exercised disproportionate influence on 20th century mathematics. We still see its style aped, but rarely matched, in mathematics texts today.

I couldn’t resist the temptation of compiling a mathematical classic so I eagerly downloaded the source and ran it through LaTeX.  Foundations compiled without problems and generated a nice letter-sized PDF. Letter-size is fine but I was looking for free Kindle books! I decided to invest a little energy modifying the source to produce a Kindle version. Project Gutenberg makes it clear that we are free to modify the source. Isn’t open source wonderful!

Converting Foundations was simple. The main LaTeX file included 52 *.png illustrations with hard-coded widths in \includegraphics commands. I wrote a J script that converted all these fixed widths to relative \textwidth‘s. This lets LaTeX automatically resize images for arbitrary page geometries. When compiled with Kindle page dimensions this fixed most of the illustrations. I had to tweak a few wragfig‘s to better typeset images surrounded by text. The result is a very readable Kindle oriented PDF version of Hilbert’s book. There are still a few problems. The Table of Contents is a plain tabular that does not wrap well and one table rolls off the right Kindle margin. Neither of these deficiencies seriously impair the readability of the text.  If these defects annoy you download the Project Gutenberg source with my modifications and build your own version.

This little experiment convinced me that providing free classic books, in source code form, is a service to mankind.  Not only does it allow you to “publish” classics on new media it also fundamentally changes your attitude toward books. Hilbert was one of the great mathematical geniuses of the 19th and 20th century. It’s hard to suppress we are not worthy moments and maintain a sharp critical eye when reading his “printed” works.  You don’t get the same vibe when reading raw LaTeX.  Source code puts you in a, it’s just another bug infested program, frame of mind. You expect errors in code and you typically find them. This is exactly the hard-nosed attitude you need when reading mathematics.

5 thoughts on “Open Source Hilbert for the Kindle

  1. John,
    I’m a new J’er (about 2 months) and I have very little experience with array-based languages (primarily through R). I’m trying to learn how you fixed the includegraphics command in the RescaleHilbertgraphics.ijs file. I’m having trouble with line 23 (uw=. …..) especially the cut part. Can you please point me to some good explanation of cut conjunction, or if it isn’t much hassle, can you please explain how you use it?
    Thanks in advance,
    Vijay.

    1. Vijay,

      The best source for the J language is the Dictionary of J. The entire book is online at:

      http://www.jsoftware.com/docs/help701/index.htm

      A description of the cut conjunction with examples is at:

      http://www.jsoftware.com/docs/help701/dictionary/d331.htm

      If you are just starting out with J I would strongly recommend joining one of the J mail groups. You can learn about these groups on the J wiki, (which is also an excellent source of information about J), at:

      http://www.jsoftware.com/jwiki/FrontPage

      You will find that the J community is always happy to welcome new users and help them learn the language.

Leave a Reply to John Baker Cancel reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.