Making an Accessible Open Logic Textbook (for Dyslexics)

In the design and layout of the Open Logic Project texts as well as the Calgary Remix of the intro text forall x, we’ve tried to follow the recommendations of the BC Open Textbook Accessibility Toolkit already. Content is organized into sections, important concepts are highlighted (e.g., colored boxes around definitions and theorems), chapters have summaries, etc. We picked an easily readable typeface and set line and page lengths to enhance readability according to best (text)book design practices and research.

We’ve started experimenting specifically with a version of forall x that is better for dyslexic readers (see issue 22).

Readability for dyslexics is affected by typeface, type size, letter and line spacing. Charles Bigelow gives a good overview of the literature here.

Some typefaces are better for dyslexic readers than others. Generally, sans-serif fonts are preferable, but individual letter design is also relevant. The British Dyslexia Association has a page on it: the design of letters should make it easy to distinguish letters, not just when they are close in shape (e.g., numeral 1, uppercase I and lowercase l; numeral 0, uppercase O and lowercase o, lowercase a) but also when they are upside-down or mirror images (e.g., p and q, b and d; M and W). In one study of reading times and reported preference, sans-serif fonts Arial, Helvetica, and Verdana ranked better than other fonts such as Myriad, Courier, Times, and Garamond, and even the specially designed Open Dyslexic typeface.

Although it would be possible to get LaTeX to output in any available typefaces, it’s perhaps easiest to stick to those that come in the standard LaTeX distributions. The typeface that strikes me as best from the readability perspective seems to me to be Go Sans. It was designed by Bigelow & Holmes with readability in mind and does distinguish nicely between p and q; b and d; I, l, and 1, etc.

Other things that improve readability:

  • larger type size
  • shorter lines
  • increased line spacing
  • increased character spacing, i.e., “tracking” (although see Bigelow’s post for conflicting evidence)
  • avoid ALL CAPS and italics
  • avoid word hyphenation and right justified margins
  • avoid centered text

The accessible version of forall x does all these things: Type size is set to 12 pt (not optimal on paper, but since this PDF would mainly be read on a screen, it looks large enough). Lines are shorter (about 40 instead of 65 characters per line). Line spacing is set at 1.4 line heights. Tracking is increased slightly, and ligatures (ff, fi, ffi) are disabled. Emphasis and defined terms are set in boldface instead of italics and small caps. Lines are set flush left/ragged right and words not hyphenated. The centered part headings are now also set flush left.

The changes did break some of the page layout, especially in the quick reference, which still has to be fixed. There is also some content review to do. In “Mhy Bib I Fail Logic? Dyslexia in the Teaching of Logic,” Xóchitl Martínez Nava suggests avoiding symbols that are easily confused (i.e., don’t use ∧ and ∨), avoid formulas that mix letters and symbols that are easily confused (e.g., A and ∀, E and ∃), and avoid letters in the same example that are easily confused (p, q). She also recommends to introduce Polish notation in addition to infix notation, which would not be a bad idea anyway. Polish notation, I’m told, would also be much better for blind students who rely on screen readers or Braille displays. (The entire article is worth reading; h/t to Shen-yi Liao.)

Feedback and comments welcome, especially if you’re dyslexic!

There’s a lot more to be done, of course, especially to make the PDFs accessible to the vision-impaired. LaTeX and PDF are very good at producing visually nice output, but not good at producing output that is suitable for screen readers, for instance. OLP issue 82 is there to remind me to get OLP output that verifies as PDF/A compliant, which means in particular that the output PDF will have ASCII alternatives to all formulas, so that a screen reader can read them aloud. Even better would be a good way to convert the whole thing to HTML/MathML (forall x issue 23).


New Edition of Sets, Logic, Computation

The new (Fall 2017) edition of Sets, Logic, Computation is now officially done and available on Amazon [CA] [UK] [DE].  The most recent changes are outlined in this previous postbut: sequent calculus! new proof of completeness! a chapter on how to do proofs!

Fall 2016 edition of Sets, Logic, Computation

The Fall 2016 edition of the OLP remix Sets, Logic, Computation is ready. As before, it includes the OLP part on sets, relations, and functions; the part on first-order logic (with natural deduction chosen as the proof system); and the part on Turing computability including the unsolvability of the halting and decision problems. The methods chapter on induction and biographies of Cantor, Church, Gentzen, Gödel, Noether, Russell, Tarski, Turing, and Zermelo appear as appendices.

At students’ request, problems are now listed at the end of each chapter. Many typos and errors have been corrected, a number of examples and problems have been added, and several proofs rewritten for clarity. I’ve also added chapter summaries and a glossary. There are also a few added sections, notably introduction sections to Chapters 5 and 7, as well as discussion of Russell’s Paradox in both Chapter 1 and 6.

You can order a printed copy on Lulu, or download the PDF from the builds page. Read about what last term’s students thought of it here.


More Photos of Logicians

Photos from the Open Logic Project

As previously mentioned, the Open Logic Project now has a separate repository for photos of logicians to illustrate your OLP-derived materials.  They are automatically included in the biographies that live in content/history.  I’ve just uploaded a whole bunch of photos that don’t have associated biographies (yet).  Some of them are not well-known, even.

For the technicalities, I’ll repeat myself from the previous post:

We have a separate repository for photos: We’ve separated them because (a) the licensing issues are more complicated: some of the photos are under copyright, and we wanted everything in the main repository to be available under a Creative Commons license; (b) the main repository would become very large if it included all these pictures. To use the pictures, clone the photos repository into the assets/ subdirectory of your local OLP clone. There’s a PDF with all the photos on the build site.

Tracking down these pictures and getting permissions was (and continues to be) a surprising amount of work.  Thanks to all the people and archives who provided them and granted permissions: the IAS archives, Princeton University Library, Berkeley’s Bancroft Library, the Russell Archives at McMaster, the Archives of the Universities of Warsaw and Wittenberg-Halle, the ILLC, the Austrian National Library, the NSUB at Göttingen, the National Portrait Gallery, the Oslo Museum, the American Philosophical Society, Neil Reid (Julia Robinson’s brother-in-law), Libby Marcus (Ruth Barcan Marcus’s daughter), Kim Heffernan (Haskell Curry’s granddaughter), Béla and Eszther Andrásfai (Péter’s adoptive son and granddaughter), Christian Thiel, Volker Peckhaus, Lothar Kreiser, Eckhardt Menzler-Trott, Craig Smorynski, and Peter van Emde Boas. Detailed photo credits are included with the photos.  Thanks also to the Alberta OER initiative for providing some funding to do this.  And last, but not least, thanks to Joel Fuller for doing an awesome job with PhotoShop restoring some of these photos (the original Curry photo, in particular, had a big tear right through the middle)!

No thanks to the Oberwolfach Photo Collection, who outright refused to share their images.

More to come!

An Actual Textbook, and: Photos!

Two exciting new things from the Open Logic Project. The first one is another sample textbook. I’ve previously written about how to make a custom logic textbook and how to get your textbook to print, and for my course “Logic II (Phil 379)” this term, I’ve done that. Properly: perfect bound paperbacks, with a nice cover, proper front and back matter, professional illustrations, and an (I think) appealing book design. The source for generating it is on GitHub (of course): If you want to compile it, just clone that repository into the courses/ subdirectory of your local OLP clone. It should compile out of the box.  There are three files you can compile: phil379-screen.tex makes a multi-color PDF suitable for on-screen reading; phil379-print.tex makes a black-and-white PDF suitable for printing via  The third is cover-lulu-quarto.tex, which generates the PDF uses for the cover. You can see the product on the builds site:

The second exciting thing is that we’ve started to put photos of logicians into the text. Right now, they’re imported into the biographies. The photos themselves are not in the main repository, however. We have a separate repository for them: We’ve separated them because (a) the licensing issues are more complicated: some of the photos are under copyright, and we wanted everything in the main repository to be available under a Creative Commons license; (b) the main repository would become very large if it included all these pictures. To use the pictures, clone the photos repository into the assets/ subdirectory of your local OLP clone. (If the files aren’t there, the biographies including them will happily compile but leave out the photos.) There’s a PDF with all the photos also on the build site.

(PS: If you want to buy an actual copy of the Sets, Logic, Computation book, go here. It sells for CAD 9.42 (USD 8.36, EUR 8.55). But be warned; we’ve already corrected a bunch of typos and errors, so that version is not up-to-date.)

New in the Open Logic Project: Turing Machines

We’ve had a very rudimentary chapter on Turing machines in the OLP for a while.  Samara and I have been working on expanding this over the last few months, using Nicole’s notes and writing some stuff from scratch. It is now is mature enough, I think, that it can be included. So I have merged the turing-machines branch into master.

A decisions of which variant of Turing machines to use had to be made. We opted for a version that allows the machine to write and move at the same time, since most of the online emulators work that way. We also decided to let the tape be infinite in one direction only. This makes the proof of undecidability of logic, which requires describing Turing machine configurations, a lot simpler.

It still needs work, of course, like everything else. More examples, more problems, a more in-depth discussion of the Church-Turing thesis, proofs of equivalence of different Turing machine variants, for instance. To tie it to the other computability material, I’d like to show that recursive functions are Turing computable. It would also be great to have some discussion of computational complexity and non-deterministic computation; Dean indicated that he might work in that direction.

In the meantime, enjoy, and please give feedback!

Walter Dean (Warwick) Joins Editorial Board

We’re happy to announce that Walter Dean, Associate Professor of Philosophy at the University of Warwick, has joined the Open Logic Project’s editorial board.  Walter regularly teaches courses on the material currently covered in the text, as well as modal logic (inclusion of which is planned for next year) and provability logic and computational complexity theory.  He is planning to contribute to these topics in particular.

Making a New Logic Textbook in Seven Easy Steps

I’ll be teaching the University of Calgary’s second logic course, imaginatively titled “Logic II,” next term.  It’ll be the first time for me to use the Open Logic Text for this course.  I used it for McGill’s “Intermediate Logic” earlier this year, and Nicole Wyatt has been using parts of the text the last time she taught it a year ago.  Lots has changed, and I’m aiming to provide a nice, self-contained book.  I’ll document the steps to make this happen.

To start, I have to pick the material to include. Logic II is supposed to cover “Introduction to the metatheory of logical systems. Completeness, compactness, Löwenheim-Skolem, and undecidability theorems for first-order logic.”  In previous iterations, I’ve used Boolos, Burgess, and Jeffrey’s Computability and Logic as a textbook, and that’s also what my colleagues who also teach it have used.  In part because of this, I’ve previously covered set theory, then Turing machines, first-order logic, undecidability, completeness and Löwenheim-Skolem theorems in that order: it’s the order BBJ covers it. But with an open text, I can rearrange things if I want to. And I think I do.  Once you cover relations, it’s sort of natural to continue with first-order semantics, definability, and expressibility.  So I’ll go with set theory, metatheory of first-order logic, Turing machines, and undecidability. (Right?)

To make a new book, you have to start by setting up a driver file that does all the setup and loads the parts and chapters you want in the right order.  Of course, I’ll use Git also for that driver file and anything else I’ll need to pull things together. So,

Step 1: set up a GitHub repository [You can skip this step if you don’t want to use Git to keep track of changes.].


Step 2: Clone the repository, so I have it on my local drive.  The Git URL is  I use SSH, but there’s also an HTTS URL:  Where do you put it?  It’s probably easiest if it lives with the other courses in the OLP directory.  So I go to where my OLP clone lives, then to the subdirectory holding the courses, and clone there:

$ cd ~/tex/openlogic/courses/
$ git clone
$ cd phil379

[If you don’t want to use git, just make a new subdirectory of the /courses directory.]
Step 3: We have to start somewhere, so I’ll copy the files courses/sample/open-logic-sample.tex and courses/sample/open-logic-sample-config.tex from courses/sample to my new directory, renaming them to phil379.tex and phil379-config.tex, respectively. I’ll also add a license and a Makefile, but you wouldn’t have to.

Step 4: The main file, phil379.tex contains the instructions for what to include and in what order.  I’ve changed it so that only what I need is included.  Here is what it looks like at this point, and here are the changes I made to the original open-logic-sample.tex file.  I haven’t yet done anything to the formatting or layout, just changed the title page and what chapters are included.

Step 5: I do want to do a few things a bit different from the default.  First of all, I’ll make the text unpretentious: no Greek formulas, no Fraktur letters for structures.  I haven’t yet made up my mind about terminology, but I think I might want to use “countable” instead of “enumerable”.  (I wouldn’t if I were going to talk about “computably” or “recursively enumerable” sets, but I think I won’t.  And when you’re talking about sizes of sets, “countable” and “uncountable” is a bit more conventional and easier to say. Maybe. I might change my mind later.)  There are some switches I can adjust, too: e.g., I’d like to have everything but biconditional and “true” be primitive symbols: That way there are more cases to prove, but I’ll get all the cases for the conditional and the universal quantifier as exercises.  Lastly, the first-order-logic part includes both sequent calculus and natural deduction as proof systems, but I’ll cover only one.  Maybe natural deduction.  Might change my mind on that too.  Anyway, all these things can easily be specified in phil379-config.sty.

Step 6: Run phil379.tex through LaTeX, get a nice PDF.

Step 7: Commit everything and push to GitHub, so it’s saved (and I can link to the source files here).

[UPDATE: (a) The current version has phil379.tex containing only the content, and the layout and setup is done by phil379-screen.tex and phil379-print.tex, which generate a version for on-screen reading and a version for printing, respectively. See also this post.]

OLP now with CC-BY license

After some internal discussion and canvassing of the Open Educational Resources community, we’ve switched the license from Creative Commons Attribution-ShareAlike (CC-BY-SA) to Creative Commons Attribution (CC-BY).  BY-SA requires that anyone is free to use & modify a work as long as the modified work is “shared alike,” i.e., under a compatible license.  The idea is that if you use it, you have to let others use your improvements & modifications as well.  This is a laudable goal, of course, and we hope anyone who does build upon the OLP will do so!  But it does, e.g., require that everyone who builds their own version of a textbook on the basis of OLP to license it under CC-BY-SA.  An instructor may not want to allow redistribution of their adopted text at all, for instance. So CC-BY-SA potentially restricts the usefulness of the project and inhibits uptake.