BachoTeX 2024

 

29th Conference of the Polish TEX Users Group GUST

April 30 – May 5, 2024

Conference Talks → 🇵🇱

Papers

Traveling Bulls are crocheted mascots (amigurumi) that have been accompanying the employees of 7bulls on their business and leisure travels since 2017. Similar to the gnome from the movie Amélie, they are photographed in various places around the world. This year, one of the Bulls participated in this year’s WOŚP (Great Orchestra of Christmas Charity event), which became an opportunity to publish a book about the travels of the Bull and its brothers and sisters. Work on the book’s creation was supported with advice and help by regular visitors to Bachotek, Andrzej Tomaszewski and Boguś Jackowski, as well as Kasia Wójcik, who also happened to be there. I will briefly talk about the Bulls, their history and travels, as well as about the book and the story of its creation.

Photography is currently the most universally accessible way to express creativity. Every one is the photographer today – this might sound like a cliché, but since we alredy are, let’s try to use photos to tell the story of Bachotek together. Who are we, why do we come here, why do we return? Let’s tell this story in the language of images. A language that not only shows the world as it is but rather helps us create our own worlds. Because the images created using photography are a window through which we look, showing what’s important to us, what we consider worth remembering. But this window is magical one because it’s also like a mirror, magically reflecting ourselves and who we are.

To free heads from convergent thinking and eyes from computer screens I propose writing (by hand!) of lepiejes, moskaliks or (for the ambitious) limericks. What’s all that about – I’ll explain.

We introduce a LaTEX-based pipeline that allows for typesetting of family trees extracted from popular genealogy databases. Our work is motivated by the posthumous publication of Barbara Bielawska–Dębowska’s (1937–2020) final book, Bielawscy – Pięciu w linii prostej, where we applied this pipeline.

Our framework rests on the CTAN genealogytree package, by Thomas F. Sturm, which facilitates the creation of complex customizable family trees via tikz pictures. Unfortunately, this package does not provide a tool for extracting the LaTEX source code of family trees from sheer genealogical text data bases, usually stored in the GEDCOM format, a de facto standard developed by the Church of Jesus Christ of Latter-day Saints. For example, Bielawska-Dębowska’s database counts over 2300 individuals.

Seeing the need for extracting the LaTEX code from GEDCOM databases, we wrote gedcom2latex.pl, a Perl script that generates the LaTEX code in three standard tree formats of the genealogytree package: the ancestor tree, the descendant tree, and the sandclock tree. Script gedcom2latex.pl can locate an individual’s ID in the GEDCOM database and draw a tree with a desired number of generations starting from this individual.

Script gedcom2latex.pl and accompanying examples have been published on GitHub (https://github.com/lukasz-debowski/Gedcom2Latex) and are available through the GNU General Public License.

We introduce a framework that reduces the burden of making an index of persons for LaTEX files in Polish. Applying the standard indexing mechanism of LaTEX, we augment it with a Perl-based pipeline of scripts that performs named entity recognition (NER). Our work is motivated by the posthumous publication of Barbara Bielawska-Dębowska’s (1937–2020) final book, Bielawscy – Pięciu w linii prostej, where we applied this pipeline.

The functionality of the NER pipeline is to insert LaTEX index labels into the raw text file. We had to deal with problems such as detection of mentions, normalization of labels, and completion of missing information. Because of high idiosyncrasy of nicknames used by Barbara Bielawska-Dębowska, we did not use Morfeusz, an available morphological analyzer for Polish.

Instead of this, from scratch, we developed a set of dedicated Perl scripts that implement a needed subset of Polish morphology and syntax of personal proper names. Our scripts deal with simple coordination of names and a more complex syntax of female surnames. The normalization of labels involves adding missing information by finding the nearest mentions that can be unified in all four name fields: the maiden name, surnames, given names, and nicknames.

The pipeline was developed specifically for Barbara Bielawska-Dębowska’s book. Not being publically available, it can be shared on request.

Hans and I will introduce participants to the ctx-game. We will prepare a couple of games for playing during the free (small) hours of the conference.

Recently there have been some clarifications with respect to tagging pdf files. What purposes does it have and when forced to deliver on it, how can we deal with it. For instance, universities demand it to be applied for enhanced accessibility. This is an introduction to the Ritmik presentation.

In an attempt to beat these upcoming artificial math intelligentia we developed a new approach to typesetting and presenting math. What we present also fits well in today’s popular accessibility demands, low entrance prerequisites for students, and make-math-easy approaches.

Anchored in years of teaching math to students, developing macros when listening to rhythmic illusions, and studying movement based on rhythm, our team is now ready to present it to a wider audience. But before we do this, we want to calibrate the Ritmik toolkit and for that we will (as we did last year) use the international BachoTEX audience.

We have recently added some new functionality to MetaPost and MetaFun. Some of these are fundamental, others more like convenient helpers. We discuss some of the news, and what can be more fun than doing this by showing examples? And we expect questions and new challenges from Jacko!

One of the strong points of TEX is the Knuth–Plass algorithm for breaking lines into paragraphs. We discuss a bit on how it works and how one can possibly improve it in some cases. We demonstrate how (configurable) additional paragraph line break passes can improve the result.

We will also discuss the problem of page breaking. In particular we will discuss the new possibilities of freezing the stretch glue and of using vertical expansion. If there is time we will also say (and show) something about rivers and optimizing interline spacing.

Among the various projects that we entertain fonts play an important role: we will touch on the final decision made with respect to math fonts (including companions), a modern way to deal with bitmaps, increasing efficiency in dealing with huge fonts in LuaMetaTEX (compact fonts), merging fonts in pdf files, etc.

What are the feelings of a person who forgets the unlock gesture of their mobile phone? What tools from the TEX family and its friends can help them? And how did it turn out?

Inspired by the motto of this year's conference "Composed thoughts", the talk will show what has happened and how Lua, ConTEXt, MetaPost and bash can be usefully combined to help someone conquer their own phone's forgotten login gesture.

The kinds of the words that should be capitalised obviously depend on the language used. It may also depend on a context, e.g., a bibliography’s titles. Our show will explore rules for the English, French, German and Polish languages, by emphasising common rules and different points.

We show how clefs and staves in music have evolved, from early notations to nowadays. As we will see, clefs may present very diverse looks, according to the fonts used. This talk ends up with discovering “exotic” staves within contemporary music.

We report an experiment of making the proceedings of a conference by automatically generating as much information as possible. For example, we look for titles in successive source files to build the table of contents. Separate source files must be processed by a TEX-like format, that may be pdfLaTEX, LuaLaTEX or ConTEXt. Installing our functions requires a Unix-like make command and a Scheme interpreter or compiler.

A few years ago, we decided to release the software we used to create fonts (TEX Gyre, Latin Modern) as part of the GUST e‑Foundry project. As the software was being developed, the world of fonts was changing. We tried to keep up with these changes, which unfortunately resulted in complex and inadequately documented code. Hence the decision to simplify and document our font software before its public release.

One would like the modified software to generate identical fonts to those created before the changes. This raises the question whether it’s possible to obtain identical results. It’s easy to guess that the answer is – no.

The presentation will focus on the issue to what extent (it’s possible | necessary | worthwhile) to maintain backward compatibility in the realm of fonts.

It all started with a small shell script (almost a one-liner) to help colleagues at Bosch printing pixmaps on real gold plated silicon wafer, the test picure was the Linux TuX logo. I’ll bring and show those wafers...

Around that “art work” in 2021 covid times, some extra handicraft work happend mostly for fun and the organizers of the ConTEXt meeting, playing with a laser cutter (also a “printer”) to get LaTEX and ConTEXt logo in acryl and illuminating them with RGB LEDs (NeoPixel).

Preparing the talk for 2021 context meeting I realized that I started playing and working with printers even before with graphics cards, way back in my school time.

So there will be a historic and biographic start showing “my printers” first, then “how to print on a wafer” and some learings about laser cutting with acryl etc.

I will present programs in 40+ programming languages (and similar), all showing “Hello World” (more or less) and it shall be guessed which programming language is being used here... Languages are from very old to quite modern, sometimes autobiographic and sometimes just for fun.

The presentation will concern the idea of Book Nooks. Its history and examples of projects will be presented.

A novel, lightweight approach to software code documentation is proposed, drawing inspiration from the principles of Literate Programming Style by D.E. Knuth. Various aspects of this method are discussed, including its implementation in Lua and ConTEXt. Additionally, a specific instance of applying this method to a rather complex Python program is presented and analyzed.

Data is the New Gold. A small talk about Data Analytics, Visualization and, of course, Science. Can it bring some value to the TEX community?

TEX special characters – $ & # ^ _ % – were troublesome for me for some -teen years already, in particular while copy-paste’ing from the Internets to a (La)TEX source files or vice versa (e.g., from/to social media).

Therefore, I said enough is enough, and made an alternate/parallel set of chars, and assigned them Unicodes of the Private Use Area.

I’m going to tell about those characters, how easy it was to establish them in (La)TEX, and what three difficulties did I overcome elsewhere:

  • assign the chars [alt-$] [alt-&] [alt-#]¹ [alt-^] [alt-_] [alt-%] resp. catcodes, and catcode 12 to the ASCII $&#^_% – „That’s the easy part”
  1. *choose* and assign the Unicodes (in a custom font and input method files) – difficult but easy
  2. design (look, the glyphs), so they be similar to the standard ones, and at the same time distinct, and readable in small size on the screen – pretty challenging
    (how does the Hexadecimal Dollar of the Bank of San Serriffe look like? 😉 )
  3. adjust fontification (“syntax highlighting”) in GNU Emacs/AUCTEX – extremely difficult and tedious, kept the work back for -teen years;
    _hardcoded in AUCTEX_ in nearly 20 places (!!) as an example of “unthinkability” of the idea
  4. What about backslash and curly braces?
    ⑊ is already there,
    „alt-braces” can easily be chosen from the abundance of brackets and „parenthesis ornaments” or made as described in 1.–3.)

¹ depending on the time assigned, I’d gladly present also a group of additional chars intended for catcode 6 “parameter” that I’m using to track of the way of an argument given to a (conceptual) command and processed by subsequent macros under various parameter numbers.

Recovering and retaliating the unpleasure of experiencing some of not-the-best quality literature, forced involuntarily by myself by taking part in digitization of Polish-language erotica for lingustic research purposes, I managed to ensure no-one would be hurt in their taste by those pathetic and cringe texts again while keeping the paper they were printed on.

The initial idea of overprinting a “mask” made of 2--3 randomly chosen pages of the same book developed into a tiny little study of the Knuth-Durstenfeld-Fisher-Yates shuffle algorithm (including a surprisingly simple proof) and issue(s) concerning (pseudo)random numbers generation, in TAoCP generality and (La)TEX particularity...

...in order to (pseudo)randomly choose the masking pages, angles of their distortion, and fonts for parodic pseudo-logos as if making mockery of those self-patterning fashion brands.

I’ve printed a small book and I would like to talk a little about designing that book. There are plans to prepere a special edition for BachoTEX Conference participants with a changed title: “Myśli o rozwiązywaniu problemów poskładane w 73 pytania” (“Thoughts on problem solving composed into 73 questions”).

Last year, I presented some facts that led me to believe that hyphenation of the English language is cursed. I also gave the audience some homework assignments. Being prevented from travelling by an impending addition to my family, I will not be able to give the solution to the exercises but will instead grant the participants an additional year to work on them. On the off chance that anyone actually did the howework, they can be emailed to me.

TEX is both a typesetting system and a programming language. As a programming language it operates on a number of data types, such as integer and real numbers, dimensions, glues (streachable and shrinkable dimensions) or Boolean (logical) values.

In traditional TEX, the design and implementation of which was completed by the author in 1982, expressing the relationship between values is not very convenient. It is realized in different ways within different types and clearly differs from how such activities are implemented in most modern programming languages.

I will present a module that allows creating and calculating the values of arithmetic expressions of six types. The module is programmed in pure, classic TEX (in Plain TEX), so it can be used in any version of TEX. The arithmetic expressions can be arbitrarily complex and can be composed out of subexpressions, i.e. using brackets.

Pupils answers to a teacher’s questions are often not so composed, since they use a somehow poor vocabulary. When it comes to learning some technical words, crosswords are a teacher’s best friend, because pupils’ are involved in discovering new words. Crosswords design should of course fit to children’s capacity – as well as teacher’s: how hard is it to create quickly classical crosswords only based on what can be found in a manual chapter?

I will present bunches of ConTEXt macros that I use to create different kind of crosswords for me or my colleagues: pseudo-crosswords, open crosswords, word search. I will finish introducing a new logical game I have created for my family.

Type and its use from the revolution of Johannes Gutenberg to the present day. The way of publishing content and the technical aspects of printing lettering. Type as a material for exchanging information and for visual play. Aesthetic and artistic activities.

The author – a juror of the Polish Society of Book Publishers (PTWK) competition “The Most Beautiful Polish Books” – will present the categories in which books are assessed in the competition that has existed for over sixty years. He will discuss the procedure for selecting the most beautiful ones and present the aesthetic and functional evaluation criteria used by the jurors.

OpenType math fonts have been around for over 15 years now. While several font projects are essentially frozen or discontinued, there are also a number of fonts which are still actively developed. In this talk, we will report on the latest developments of the past year.

This year’s workshop consists of three parts: the first and third will be led by Willi Egger, the second by Barbara Wilińska. During the first session, participants will prepare two parts of a small shoebox, which is built without gluing (approx. 2.5 h.) The second session will be devoted to decorating the upper part of the box with a filigree initial (2–3 h), and the third session will include the final assembly of the box (approx. 0.5 h).

Initial with filigree: The object of the central part of the workshop will be to copy an initial and decorate it with a filigree, following the Italian Antiphonary of the 16th century. Filigree is a goldsmithing technique that involves making an ornament or an entire object from thin gold or silver wire, sometimes combined with granulation. The result is a delicate, openwork pattern. Filigree in illuminating is the lace-like, openwork patterns that decorate the initials or entire page margins of Gothic manuscripts. We will therefore tackle precise, lace-like work, using a sharp nib. There will be a choice of initials of varying degrees of difficulty, all of great beauty – and there will be a suggestion for everyone.

I propose to take a look back at what we have achieved during the 32 years of the GUST’s existence, and also consider what our expectations are for the future. Which of the tasks set in the 1990s are still valid? What new challenges have emerged?

A short presentation will be followed by a discussion, to which I encourage everyone who cares about the future of GUST.

(The speech is planned in Polish, with English slides. Translation will be provided if needed.)

Workshops

My proposal is an invitation to all conference participants to create a collective photostory about Bachotek and the people who come here. Let’s create a common Bachotek "portrait" in which we try to freeze time and tell what Bachotek means to all of us and each one of us individually. I would like to collect all the photos at the end in the form of an exhibition, and perhaps eventually in a photo book.

The inspiration and starting point will be the now-historical recordings of conversations with conference participants made in 2017, as well as selected Bachotek photos from various years.

This will be the time to summarize this year's activities and – perhaps – make plan for further cooperation of this workshop's participants.

So, after having listened to the introduction, we will directly deal with literature, non-serious rather than high 😉

Participants will be trying their imagination in creative use of words. The rhymes might be in Polish, English or any language provided the author does understand it.

We will try to collect the results into either a small exhibition and/or – perhaps – start preparing a little booklet for the prosperity!

We, GUST, are getting older. The only way to revert this trend is to attract young people, perhaps with new ideas.

A possible way is to make TEX being used in Polish schools, by teachers, thus exposing students to TEX. The problem is that teachers have little if any knowledge of TEX and, what makes matters more difficult, there aren’t any "handy" and documented in Polish TEX tools to make it worth using.

The Feather (of the Bird): there are promising (La)TEX packages around, in French but also in other languages...

Everything you need to know about the workshop is in the title.

It is well aknowledged that a man in want of a drawing of a sheep should first sketch simple geometrical figures and, later on, combine them to get his little lamb. So is the "METAFONT way": pick up a square or a circle, scale it, rotate it, shift it to achieve your goal.

During the first session, participants will prepare two parts of a small shoebox, which is built without gluing (approx. 2.5 h.)

This second session will be devoted to decorating the upper part of the box with a filigree initial (2–3 h).

The third session: final assembly of the box (approx. 0.5 h).