User:Riviera/February 5 2024
A chess diary
Chess is a hobby of mine. I attend a chess club every week here in Rotterdam. In competitive chess games it is common to record the moves made during the game on a scoresheet. The other week I designed a chess diary using Simon’s Improved Layout Engine (SILE). The layout engine itself is TeX-inspired. It borrows some algorithms from TeX and uses a similar syntax. I’m familiar with ConTeXt which is a variant of TeX. I have a love-hate relationship with ConTeXt. On the one hand, it offers extreme microtypographical precision. On the other hand, the software is ideosyncratic and is not conducive to collaborative practice. Due to this ambivalence which I have about ConTeXt, I wanted to produce a publication using an alternative layout engine. In this case I chose SILE.
Initial Impressions of SILE
SILE is a layout engine for typesetting PDF documents. It reads code written in a format specific to
SILE and generates PDF output. SILE can read XML files, though the manual advises against hand-coding
such documents because the TeX-like syntax is simpler to write by hand. SILE is comprised of a selection
of packages which are written in Lua. One adds directives in ones SILE code to load particular packages.
This is necessary in order to utilise the macros which are defined in the package. For instance it is
not possible to call the \lorem
macro unless one loads the lorem package beforehand. Thus
the following code will produce 20 words of lorem ipsum when processed by SILE.
\begin{sile} \use[module=packages.lorem] \lorem[words=20] \end{sile}
In contrast to ConTeXt, SILE is refreshing because it has only one manual which covers much of what the
software can do. However, unlike ConTeXt, which offers many cohesive features, I found that SILE had
limited support for two-column layouts. Yes, the SILE manual offers an example of how to create a page
with a two-column layout. However, I did not want the columns to fill the entire text. Rather, I wanted
the two-column layout to begin after a five lines of single-column (full width) text. I could not figure
out a simple solution to this problem. Therefore, it was necessary to emulate a two column layout using
the \hfill
and \hrulefill
commands. To align the text in the columns it was a
matter of figuring out the ratio of \hfill
to \hrulefill
. These commands
insert stretchy horizontal whitespace and stretchy horizontal rules respectively. I designed the layout
for two lines and then utilised a for-loop to generate the same two lines 16 times. I repeated this
for-loop on the next page with 20 iterations. Once I was satisfied with the layout of the pages, I
utilised a third for-loop to generate fifty game-sheets, complete with page numbering. Estimating the
vertical whitespace between each line was a key aspect of ensuring the fifty pages would render as
intended.
Sunday 4th Feb, An Afternoon with Roderick
Roderick also attends the Chess club. He trained as a graphic designer and has various pieces of book-binding equipment in his possession including a guillotine, a printer and a foil press. He suggested it might be nice to produce each 100-page chess diary in five signatures which could then be bound together. Each signature would be comprised of five A4 sheets folded in half to produce A5 pages. We also discussed the dimensions of the publication, given that it would probably be used by chess players whilst sitting at a table with a chess board between them. Roderick suggested that it might make sense to resize the pages so that they were of a non-standard dimension. However, I thought this would be impractical. In any case, we attempted to print the prototype I had designed with SILE using his laptop and printer. This resulted in a print error, however. Whereas we made little progress in producing a physical outcome together on Sunday, we intend to meet up again and make more headway soon. We are optimistic that the chess diary could be a meaningful piece of merchandise for club members.