LaTeX math cheatsheets

My girlfriend asked for LaTeX cheatsheets. There are many of them online, but she was specifically looking for notational commands for algebra and number theory. You need to be aware that notation is very specific for your teacher. So standardization has not been successful to raise mathematical symbols from a representational to a semantical level. In US/UK/AU (in my experience), there is little information encoded in notation and information is provided in short, concise sentences. In Europe, this is different and every teacher has his/her own notation.

But let’s get back to the point: I recommend the following cheatsheets, but evaluate yourself whether it fits your field.

If you need a more comprehensive reference, the LaTeX wikibook is a nice start. For a german audience, LaTeX@TUGraz also does a good job IMHO.

And as always: If you look for a symbol and have internet connection, detexify makes your life much easier!

LaTeX math cheatsheets

A visit of DruckZeug

Today I visited “DruckZeug”. This is a local association for the preservation of hot metal printing machines (or in general Movable Type) and printing techniques. The association is organizing open hours one day (about) every 2 months here in Graz, Styria. I got an introduction in the history of this association and its related printing companies and then we tried out some basic printing. Check out our results 🙂

DruckZeug Setzerbüro
DruckZeug Druck Letters
Printing Letters
DruckZeug Blindmaterial
DruckZeug Satz einer Seite
Typesetting of a page
DruckZeug Nudelpresse typho
typho typeset and pressed

You don’t know what a Zwiebelfisch is? This is a (mostly accidental) different letter from another typeface [DE].

Verein [DE]:
Freunde des Bleisatzes und des Buchdruckes in der Steiermark, kurz “DruckZeug”
Association [EN]:
Friends of Movable Type and Printing in Styria, abbr. “DruckZeug”
Website [DE]:
A visit of DruckZeug

Licenses in the TeX community

Package Author / Maintainer License
TeX Don Knuth “Knuth License”: Permissive (don’t name forks TeX) free software licence
pdfTeX Han The Thanh GNU General Public License
PGF/TikZ Till Tantau dual (GNU General Public License, LPPL)
LaTeX Leslie Lamport LaTeX Project Public License (LPPL) (based on Knuth License)
TeX Live Karl Berry LaTeX Project Public License
ConTeXt Hans Hagen GNU General Public License v2 (source), CC BY-NC-SA 3.0 (docu)
XeTeX Jonathan Kew,
Khaled Hosny
Common Public License
eTeX Peter Breitenlohner Knuth License
MacTeX WG copyleft FLOSS (mixture of GNU General Public License, LGPL, BSD license, X license)
MikTeX Christian Schenk copyleft FLOSS
LuaTeX Hans Hagen Gnu Public License
Licenses in the TeX community

LaTeX error messages are broken

I always got the same error (TeX Live 2013, pdfTeX 3.1415926-2.5-1.40.14, the very most up2date version):

ionary-English.dict) (./thesis.glsdefs) (./thesis.toc) [1{/home/meisterluk/.tex
live/texmf-var/fonts/map/pdftex/updmap/}] [2] [3]
Chapter 1.
! Missing number, treated as zero.
<to be read again>
l.14 the following properties~\cite{biere}
                                          : % page 10

This annoyed for like one week because I could not find the error and could not go on with my bachelor thesis. Obviously it has something to do with biblatex (because of \cite), right? I replaced all parts of the bib file, but could not find the error. Now it tried to create a MWE to find the error (to post it to SE) and removed all parts of the TeX file. Finally I found it:

  pdfsubject={SAT solvers in cryptanalysis},
  pdfkeywords={SAT solver, hash algorithms, differential cryptanalysis},

Can you see the missing comma as separator after citecolor? Yes, this is the error. citecolor only affects citations and \hypersetup does not see an error.

LaTeX error messages are broken

Buchtipp: “The Essential Knuth”

The Essential Knuth
Book “The Essential Knuth” containing an autobiographical interview with Donald E. Knuth

In August 2013 Edgar Daylight published a book containing a transcribed interview with Donald E. Knuth of the year before. In this book Mr. Daylight asks questions about DEK’s life, his relation to CS and historical developments in computer science.

A recent interview

“Last November I spent most of a day with Edgar Daylight, a young historian of computer science. He had prepared lots of interesting questions about the early days of computer science, and he tape recorded my answers. Now he has packaged the edited transcripts into a book.”

Followingly I tweeted the book reference:

“’The essential Knuth’ (newly published book) #donknuth #knuth via

twitter status by meisterluk in Aug 2013

My brother ordered the book before I had the opportunity to do so ( 😛 ) and gave it to me (Thanks!).

Generally the book follows a chronological ordering. 92 pages is not that much and you could finish reading it at one evening. I think the target audience are old-school people which are familiar with the old days of computer science and want to remember those days. DEK describes how he got the opportunity to work hard to solve mathematical problems during the day time and at night he works with computers. Eventually some day he was able to combine those two fields and got in contact with other famous computer scientists like Edsger Dijkstra and Peter Naur. As a big fan of his I got insight into some of the aspects of his life and which path he followed to become what he is today.

“Is it then correct to describe you as a perfectionist?” “Well, I certainly can’t argue with you about that”

“Furthermore, the things I do don’t scale up; there isn’t a need for ten of me in the world.”

“I had more of a calling to global things; I am mostly thinking about what I can do for people who live far away, people that I’ll never meet.”

“Later, when I wrote TeX, I was extremely careful about portability. I completely avoided floating-point arithmetic in places where the computations could affect page layout. Instead, I implemented my own arithmetic for the internal computations, using integer operations only, and I checked boundary conditions so that my programs would be machine-independent.”

“The definition of good, liberal education is to know somethind about everything and everything about something.”

Buchtipp: “The Essential Knuth”

Gödel Lecture Series: Donald Knuth

Information sign to lecture hall EI7
All questions answered session – information sign

“I figured the only reason there is so many people here is, because you want all your questions answered” (Donald E. Knuth at Vienna Gödel Lecture 1)

So I finally saw Donald Knuth in real life. As someone who made major contributions to digital typesetting and algorithm theory, his research objectives intersect with my field of interest in majority and he personifies a person who achieved one of my major goals: Providing tools for everyone to publish content/data/information. It’s kind of a big deal for me, because I state to be a “knuth fanboy” for about one to two years now (meaning I am explicitly studying/looking for content authored by DEK).

Myself (question): Thank you so much for being here. I enjoy your research so much. My question today is the one about programming language design. So you are the author of TeX and the WEB system. You have written many source codes in Algol, Pascal… you even published a source code in INTERCAL [tpk] and you also have been quoted to tell at the ACM Turing 100 Banquet that python is the only popular language which is not ugly [acm]. So my question here is today, uhm, what are your personal criteria for what makes a programming language beautiful?

Don Knuth (answer): Okay, so, criteria for a beautiful programming language… depends on the programmer and the application. So, one size does not fit all. To me the best programming language is the one that matches the intuition of the programmer. So that you can put your thoughts down without having to translate it to something that’s not actually important. But different programmers have quite different mentalities. I mean, some people love a functional style of programming language (for example) or more declarative. Others want to be imperative.

I never… I can use Haskell and LISP but I feel a little bit like a dog standing on high feet while I am doing that. When I use C it feels right. But that’s not like I can say other people are wrong. When I use C++, I can’t stand it. I mean it just… the way of thinking does not go into my head at all. If you say something is static, what is this… the less-than sign sometimes means a template, sometimes means less than… so it gets ambiguous. But I am sure that the people who designed these languages did it because it was really right for them. So there are different applications as well… of languages.

I was asked in the 60s to write a paper about the design of programming languages. And I started it and I decided that the best way to say what a good language is to have an example of a bad language. But I did not wanna hurt any feelings of my best friends. So I invented my own bad language: I called it BL\I (bad language 1). It was a… B L backslash 1. I defined it but of course also my definition was bad. And then I… this was a language for string manipulation. Another thing about a language—of course you have an application area of what you are trying to do—so I also defined another language that was supposed to be a good one called StrolsString Oriented Language. So I had that language and then I had Strols. And then I was going to write up other things about programming language design. But I never finished the paper in the 60s and I guess I was worried that somebody would implement this language [Editor’s note: pointing to BL\I on the board]. So about 2-3 years ago all my papers on programming languages were collected into a book and I decided “Okay, now it is time to get up my old notes”. So I don’t know… chapter 13. The book is called “Selected papers on computer languages” and chapter (something rather) is about design of language and includes BL\I; you can take a look.

That sort of summarizes my opinions about the idea of good language designers. But just the fact that it works for me though does not mean it is going to work for everybody.

Myself: Thank you.

—Question answered (16th of May 2013, real time ~16:20 UTC, local time ~18:20, livestream at 00:47:44)

The question really was meant to answer the question for criteria and I was not looking for the “best” programming language (which btw, was asked already some time ago). I am fond to the aesthetics of mathematical structures, data structures and language design and was looking for his opinion on a linguistic level. From a point of view I was looking for guidelines how to design a good (programming) language. I am kind of happy with his answer. The most important keyword for me is intuition. Intuition corresponds to the Principle of Least Astonishment (yes, I always have to link Armin’s article if I use this term) which is very important in UI design. To make computer science accessible to a wide range of programmers we have to find languages which fit to their intuition and don’t surprise them. That’s important in my opinion and DEK valued it with this answer.

And yes, I have to admit that I missed to check out this book and I am going to study it now 😉

“My idea is that P equals NP but we will never know why” (Donald E. Knuth during the Vienna Gödel Lectures)

“It has to may be that during the 1970s more computing time was spent simulating the Game of Life than anything else.” (Donald E. Knuth about the hype of Game of Life during the 70s)

Thanks, Don.

Don Knuth after entering the lecture room
Don Knuth before the beginning
Don #Knuth talking to @meisterluk
Don #Knuth talking to @meisterluk [twitter]
Book signing after the lecture
Book signing after the lecture
Signature by Donald Knuth
Signature by Donald Knuth in TAOCP
Karlsplatz in Vienna (TU Vienna)
Karlsplatz in front of University of Technology Vienna

Tags: Donald Ervin Knuth, Gödel Lecture Series, Vienna, All questions answered, Programming language design, May 2013

Gödel Lecture Series: Donald Knuth

The “Art” in “The Art of Computer Programming” (by Knuth)

I was recently talking to a professor, who wanted us to realize the term “Art” in the title of Knuth’s book series “The Art of Computer Programming”. Just for the record for myself, I wanted to cite, what I was refering to when I explained him the truehumorous origins of “Art”:

People frequently ask me why I picked such a title; and in fact some people apparently don’t believe that I really did so, since I’ve seen at least one bibliographic reference to some books called “The Act of Computer Programming.”.

In this talk I shall try to explain why I think “Art” is the appropriate word. I will discuss what it means for something to be an art, in contrast to being a science; I will try to examine whether arts are good things or bad things; and I will try to show that a proper viewpoint of the subject will help us all to improve the quality of what we are now doing.

One of the first times I was ever asked about the title of my books was in 1966, during the last previous ACM national meeting held in Southern California. This was before any of the books were published, and I recall having lunch with a friend at the convention hotel. He knew how conceited I was, already at that time, so he asked if I was going to call my books “An Introduction to Don Knuth.” I replied that, on tile contrary, I was naming the books after him. His name: Art Evans. (The Art of Computer Programming, in person.)

—via Preface of “Literate Programming” citing Knuth’s Turing Award speech in 1974

In the talk he went on with a long discussion about the relation of “science” and “art” in terms of computer science…

The “Art” in “The Art of Computer Programming” (by Knuth)

A matrix leadsto symbol

During my course “Numerical Computing and Linear Algebra” in the last semester I encountered a strange symbol the professor was using. You can watch the symbol in action in this board photo. Neither Detexify, symbols-a4.pdf nor other students in the NRLA newsgroup knew this symbol. So I had to create it myself…

My version is available as a demonstration snippet. It uses TeX kerning to put a \shortmid in front of the \leadsto symbol. Please be aware of the notes supplied below the snippet.

A matrix leadsto symbol