Posts Tagged ‘latex’

This has been nearly finished for a long time. I thought I should finally release it on Father’s day, in honor of my dad who has made several attempts to understand group theory despite an ocean and 8 time zones separating us.

Group Theory

I am always unsure of how to explain what I do to non-mathematicians. In order to understand my research someone first has to understand some group theory, in particular character theory of finite groups. Group theory is a part of abstract algebra that deals with symmetry. For that reason it shows up throughout mathematics as well as physics, chemistry, cryptography, etc. Today, I won’t explain group theory, but I’ll give you a pretty picture of its greatest achievement: The Classification of Finite Simple Groups.

A major goal of group theory has been to characterize what types of finite groups can exist. That is to say, what sorts of symmetries of finite objects can exist. The mathematical community has succeeded in part by classifying all the finite simple groups. Stated simply (pun intended), simple groups are groups which cannot be constructed from smaller pieces. It is not true that they are in fact simple in the conventional sense of the word. The problem of how to build groups from smaller pieces seems hopeless to understand in full generality.  This is quite similar to the problem of understanding all molecules compared to understanding all elements.

There is a good article from a few years ago about group theory and the CFSG, as it is known colloquially. It is the longest proof ever written, weighing in at over 10,000 pages in its original form of about 500 journal articles. There is currently an initiative underway to rewrite the entire proof in a more concise and relaxed style. The first 6 volumes, and 2 volumes on quasi-thin groups, have already been published, in case someone wants to get me a Christmas present. :-)

The Periodic Table

Probably more familiar to most people is Mendeleev’s Periodic Table of the Elements. This is a listing of all the known elements, in order of increasing atomic number, into a table so that the elements in a column have similar properties (due to the configuration of outer electrons). Sometimes we forget just how amazing the periodic table is. After all, why should the chemical properties of the elements repeat periodically when ordered by atomic number?

The periodic table is certainly ubiquitous in popular culture, with periodic tables of many different subjects appearing on the internet. This is no doubt due to the fact that nearly everyone is familiar with it from High School chemistry. Below are a sampling of the diverse nature of the periodic tables available.

I just threw in for free Abecedarium of Periodic Tables. Now I just need a Periodic Table of Abecedaria… or a Periodic Table of Periodic Tables. Maybe an Abecedarium of Abecedaria should be next?

A periodic table strikes me as a good way to display the finite simple groups since, apart from 26 sporadic groups and the trivial group (which in not usually included), they all fall into families which can be arranged as the columns of the table. Moreover, there is one family that is completely different than the others (the cyclic groups of prime order), which corresponds to the noble gases. The alkali metals are also fairly different and have a parallel in the alternating groups which are quite different than the groups of Lie type.

Despite the abundance of periodic tables, I could never find a Periodic Table of Finite Simple Groups. So I decided that I had to take action, and I created The Periodic Table of Finite Simple Groups.

How I created it

My guiding principles in creating the Periodic Table of Finite Simple Groups were to be visually attractive, look as much like the real periodic table as possible, and be laid out in a logical manner. Initially I was inspired by Ivan Griffin’s (nice name BTW) periodic table written in LaTeX/TikZ, and early versions of my table were based on it. At this point, our versions bear no resemblance to each other apart from the fact that they are both written in LaTeX and TikZ and they use some of the same colors.

Since I wrote it in LaTeX with TikZ, the result is a pdf. The paper size is not standard because it was easier to construct that way. However zooming to fit on A4, or other A sized paper should work well. US Letter will be slightly more awkward, but should pose no real problems.

Perhaps the most difficult part, besides deciding on a layout, was getting the orders (that means the size of the group) to look good. I wanted them formatted with spaces separating groups of 3 digits, and broken across lines. It was also obvious that they would need different sized fonts. I made the formatting automatic based on the number of digits so that, for example, less than 15 digits goes on one line, less than 40 on two lines, and so on. While such a thing is certainly possible to write in pure (La)TeX, I thought it would be much easier to write in lua using LuaLaTeX. It turns out it wasn’t too difficult. By far the hardest part was making sure that things didn’t get expanded incorrectly, a task made more difficult by my desire to keep everything in a single file.

The Table Explained

In each column the groups increase in size going down, and as a very general rule I tried to put smaller groups to the left. More important however, was that similar families be next to each other. The same logic appears in the arrangement of the sporadic groups, where, for instance, all the Mathieu groups are together despite this causing orders to skip around a bit.

I also considered the non-classical groups to be “less important” and so there are fewer rows of them to better match the look of the real periodic table. They also have larger orders so it makes sense to include fewer of them on the table.

Since there are no “sporadic” elements, I had to decide what to do with the sporadic simple groups. These are groups that don’t fall into any of the other families. At one point I put them in the upper right corner with a jagged boundary like the non-metals. This made the table resemble the real periodic table, but it had more rows and less columns so it looked rather “thick”. Unfortunately, it didn’t make as much sense from an algebraic point of view, so I placed them where the lanthanides and actinides are found instead. This is slightly misleading, because if enough new elements were to be discovered there would be another row in that section. But you can’t have everything perfect. After all, there are an infinite number of simple groups, and only a finite number of elements.

I put the legend in the lower left like many periodic tables I have seen. I had a lot of space above the table, which I filled with Dynkin diagrams. Dynkin diagrams are the starting place for classifying the groups of Lie type. Note that the twisted groups of Lie type (those with a superscript to the left of the letter) arise from symmetries in the corresponding Dynkin diagrams.

The last row contains generic information and formulas for the family as a whole. Each cell contains some information, namely the order on the bottom, and the symbol most commonly used to denote it. The upper left will contain other symbols by which they may be known. For example the family of groups A_{n}(q) is also known as PSL_{n+1}(q), and L_{n+1}(q). The same is true for the sporadic groups, the monster is known as M, M_{1}, and F_{1}. For the rest of the groups, the upper left contains “sporadic isomorphisms”, e.g. A_{8} is isomorphic to A_{3}(2). The table is large enough that all such sporadic isomorphisms are on the table, except of course for the infinite family of isomorphisms B_n(2^m)\cong C_n(2^m). Such groups are listed only once: in the left-most column to which they belong.

I have of course made every attempt to provide accurate information, but if you notice any mistakes or suggestions for improvements, please let me know: I did use wikipedia as one of my sources.

EDIT: After a few people have asked in the comments, I feel like I should just state explicitly that anyone is free to use it for non-commercial use.  The only favor I ask is that you let me see the finished product if possible.


Read Full Post »

Especially today I have much to be thankful for.

For starters we had thanksgiving dinner tonight. My lovely wife cooked a 2 (two) pound turkey, stuffing, squash, her patented garlicy mashed potatoes and the ever lovely berry pie. Of the turkey we have exactly one breast left. Of the mashed potatoes we have a multitude, but I have a feeling they won’t last long.

Thanksgiving feast except for the pie.

Here's a picture of everything except for the pie. Oops.

The kids were delightful today. I don’t have prostate cancer. It’s movie night for Mommy and Daddy. And of course many other things too numerous to count.

Probably the best thing about today, or at least the most unexpected good thing, was that I was able to help a fellow student. I had offered to help her with some LaTeX problems she was having. There were tons of errors in the file she sent me and I couldn’t help thinking to myself that she wasn’t very good at LaTeX. As proof that you shouldn’t judge (and should always backup), I found out that her hard drive had crashed and the specialist had only been able to recover the pdf files (he didn’t speak English, nor she Hungarian, so perhaps there was more that could have been done but it’s too late for that now). Her earlier latex files were all missing. So she had copied and pasted all the text into a new file and was going through trying to make it all work again. She said she wasn’t too worried about the text (since she could copy/paste), but she had some large derivation diagrams or something like that. She’s studying philosophy and doing her thesis in logic of temporal what-sa-ma-hu-sit.

On a lark I asked if she still had the recovered files and she said yes. I did a quick grep and noticed that there were some files, “jpeg”s and “mp4″s mostly, that contained at least parts of her old latex files. So then I collected all the files that looked promising and ran strings on them to collect all the text into one big file. It was still working on that when I had to leave (there were about 50,000 files with LaTeX-looking parts and it was over 1 GB when I left). Of course the majority of that file is junk. I then gave her some instructions on how to proceed. Namely to run split -p to break it into smaller files containing (hopefully) either all junk or all useful information. Then she’ll use some bash and grep to delete all trash files leaving her with only her old latex files. Hopefully there won’t be too many duplicates.  If it had finished before I left I might have tried to use diff to eliminate duplicates.

Just in case your hard drive ever crashes and your latex files weren’t recovered properly, here’s what to do. First open a terminal. If you don’t know how to do this please do not follow the instructions here. Get your nephew to help you or something. :-) Please note that I am typing these from memory and haven’t actually tested them. If you don’t know what you are doing please simply read for your own enlightenment.

  1. cd /path/to/where/recovered/files/are
  2. grep -lr -e 'usepackage' * > ~/interestingfiles.txt
    • This looks for files which have the usepackage in them. This is something that all but the simplest latex files have. It saves the names in a file for later.
  3. export IFS=$'\n'
  4. for f in $(cat ~/interestingfiles.txt) do strings "$f" >> ~/strings.txt; done
    • This runs strings on each of the interesting files. Note that we need to set the Internal Field Separator to just a newline otherwise file names with spaces will cause problems.
  5. mkdir recovered
  6. split -a 100 -p '(begin|end){document}' ~/strings.txt ~/recovered/possible.
    • Here we split the file into smaller files at begin{document} or end{document}. Since this is how latex files begin and end we are hopefully separating the wheat from the chaff.  Note that we need to set the suffix length (-a) big enough to accommodate the potentially thousands of output files.  100 is almost certainly overkill, but hey, who cares.
  7. for f in ~/recovered/possible.*; do grep -E 'usepackage' "$f" || rm -i "$f"; done
    • We delete any of the newly split files which don’t have usepackage in them. They are almost certainly full of junk.

Note that the last step is potentially destructive so I added -i to the rm command, which will prompt you before deleting any of the thousands of files and hence be very annoying. After you have verified that everything is working properly you may remove the -i. Of course recovering other types of files will require changing the regular expressions used. That is left as an exercise to the reader, or at least it’s left until you actually have to do it.

It’s nice to be able to help someone who has really had a bad accident, and it’s nice to know that my computer skills aren’t completely useless now that I no longer work for Omniture.

Read Full Post »


With the Kindle SDK soon to be out in beta, I’m hoping that someone will port TeX to run on the Kindle like River Valley Technology made TeX run on the iPhone.  Then I can finally have beautiful mathematics with resizing on the fly.  Seriously, watch the video if you are interested in this sort of thing–the demo is pretty neat.

The biggest drawback that I can see is that, in order to keep the display real time, it only supports basic TeX, not full blown LaTeX, and certainly not TikZ.  Though I have looked a few times in the past, I have never found anything to translate LaTeX to a simple (i.e. easy to render) TeX version by expanding all but builtin macros.  I did notice that version 0.0 of LuaTeX could print back to TeX which suggests it is fairly easy (if it doesn’t work out of the box).  If it were powerful enough (e.g. if you could specify which macros to expand), it could also be very useful to remove dependencies on packages or homegrown macros.

I feel slightly guilty blogging about this when I have homework to do, but it’s so exciting that I can’t stop thinking about it.  I hope that writing this post will help get it out of my system. :-)

Read Full Post »