Blog Page 1 of 3 (22 posts) :: archive :: feeds


Matthew Butterick posted a link today to Quad, his in-development typesetting engine, written in Racket. It’s an attempt to take the best ideas from both LaTeX and web browsers and build a modern, flexible typesetting engine.

The syntax (at least as it stands right now) is naturally very LISPy, and the examples are fairly low-level, but I’m quite interested to see where things go. While I haven’t done much typesetting lately, I’ve been itching to do more in LaTeX and less in InDesign, so that my source files are plain text and not locked into a proprietary format. And some things are more easily done in code. Also, I’ve wanted to share the source files for my work (as I’ve started doing with the PlotDevice sources for my language charts), but putting InDesign files in a GitHub repo just feels wrong. And InDesign isn’t exactly cheap, either.

So, LaTeX for now, and possibly Quad once it’s matured a bit.

Home teaching slips

I’m currently serving as elders quorum president in my ward, which means home teaching changes every couple months or so. I’ve been bad about printing out slips because it took too long to make them (I don’t really like the default MLS style, so I was doing it by hand in Excel), but I finally buckled down and wrote a PlotDevice script that takes the assignments in easy-to-write YAML and outputs PDFs, one page per file (because I haven’t been able to get it to output to just a single PDF).

Here’s what it looks like, with dummy data:


The code is on GitHub. It’s somewhat messy right now, but it works.

More PlotDevice experiments

I’ve been playing around with PlotDevice more, and yes, it is awesome. For example, I can quite easily create something like my Latin declension charts programmatically:


As you can see, I’m taking a simple list of words with brackets around the endings and displaying it, styling the endings using PlotDevice’s stylesheet functionality (lines 11 and 15–16). Super easy.

It’s also great for trying out design ideas that would take much longer to prototype in Illustrator, like fan charts for genealogical purposes:


Using that code, which took me less than twenty minutes to write, I can easily try out as many sizing/spacing variations as I want, and the output is high-quality PDF. This is slick.

So yes, I will be using this a lot more lately.


I recently came across PlotDevice, a Python-based graphics environment for Mac, similar to Processing and NodeBox. I don’t know why I didn’t think of this before with Processing, but it dawned on me that PlotDevice would be perfect for prototyping some of the design experiments I do. For example, it took around fifteen minutes to write some quick code to draw genealogy sparklines (code):


For this sample, I have a draw_sparkline function that takes an object with a name, birth/death dates, list of marriages, and list of children, and it handles the drawing. Much easier than copying and pasting and tweaking in Illustrator or InDesign.

PlotDevice is vector-based (rather than raster) and exports to PDF, which means output is high quality and not limited to pixel resolution (e.g., I can create very fine hairlines).

I’m hooked. The only semi-important downside for me right now is that it doesn’t have OpenType features or tracking/kerning controls for text, but it looks like both are coming soon.

For fun, a watersun emblem (code), based off some code in the PlotDevice geometry tutorial:


Thanks to Tod Robbins for the heads up about PlotDevice.

A slightly different kind of ebook

Turns out reading PDFs of old books (from Google Books, Internet Archive, etc.) on my iPhone works out reasonably well. For example:


On the left is the fully zoomed out page. Indoors, I’m able to read it without too much difficulty, though my eyes do thank me when I zoom in (as on the right). The problem with zooming, however, is that navigating to the next page then requires more swiping, and, at least in iBooks, you have to zoom in again every time you turn the page.

After a bit of this, I got to wondering what it would be like to typeset an iPhone-sized PDF, designed specifically to be read on a phone. Here’s how it turned out (and this is a proof of concept, nothing too polished):


The pages are set at 7.573×4.267″, which I arrived at by taking 1136×640 (iPhone screen dimensions in pixels) and dividing by 150. Arbitrary, but it worked out well enough. And the text is at 16 points on the left and 18 on the right. (Also arbitrary, but dependent on the page size, of course.)

The PDFs:

The main advantage to a foolhardy scheme like this is full typographic control — margins, fonts, layout (important for poetry), tracking, etc., all without worrying about limitations of ebook readers. I could try to do something about widows and orphans, for instance, though I didn’t do that with this proof of concept.

The downside is that it’s custom-tailored to the dimensions of the iPhone 5S, and on other devices it wouldn’t fit as perfectly. Not necessarily a dealbreaker, though.

Is it worth pursuing? No idea. One of these days I’ll set a full book this way and try reading it on my phone to see how it compares.

CreateSpace test picture book

It turns out that CreateSpace only charges $3.65 to print a 24-page picture book, color, full bleed. That’s…incredible. You do pay shipping ($3.59 in my case), but still — $7 to print a picture book for your kids? Very, very nice. I threw together a dummy book to test print quality, and my copy arrived today, ten days after ordering it.

In general, I’m quite pleased. Print quality is very good. I’ve taken some photos below (with no postprocessing, but my iPhone camera added a bit more contrast than there actually is in the book).


  • The book is perfect-bound, so it won’t open as flat as it would if it were saddle-stitched. I don’t think they have saddle stitch as an option.
  • The paper isn’t glossy.
  • Colors aren’t quite as vibrant as they are on screen — blacks aren’t as dark, etc. But for actual use — reading to kids at bedtime — they’re quite fine.
  • Colors that are similar to each other can be a little harder to distinguish, but anything with sufficient contrast should be okay.


Outline map of Britain and Ireland

So I got this idea of making an outline map of Britain and Ireland and then compiling a list of fifty populous/famous towns and cities, to see how well I can locate them on the map. Being an Anglophile, I thought I’d do pretty well. Ha. It was sad. (But I did get London.)

Anyway, should you care to test your knowledge, you can now download PDFs of both the map and my semi-arbitrary list of towns and cities. Enjoy.

Notes on how I made these

For the map, I used TileMill to style and generate the map lines. I exported the map to SVG, converted it to Illustrator, and then imported it into InDesign and added the label.

For the list of towns and cities, I took a list of the most populous cities and added in some literary places as well. Basically, it’s a very-not-comprehensive list of places in Britain and Ireland that I’ve heard of.