Beginning work on tab stops
Weekly progress update since 2023-07-19 • 2023-07-26 • Michael Rees
Progress has been slow over the last few weeks as many other things have popped up in my personal life, not least of which is preparing to move next week! However, I'd like to share a quick progress update about an important feature.
Tab stop parser
I've finally been able to start working on the parser for tab stops. As outlined in this post, each tab will have its own definition in the preamble. Individual tabs can then be combined into a tab list, which can be loaded and cycled between.
So far, the parser just supports the .define_tab
command. Next will be to add support for .tab_list
and the tab cycle commands, and then to actually handle the commands during the layout process. This layout shouldn't be too hard to handle, but implementation always raises unexpected problems.
Part of this work involved creating a general purpose parser for the curly brace syntax, which we can re-use for the other commands. Honestly, it's probably time to start separating the parser into smaller modules. I might use the extra complexity of the several new commands and the general curly brace parser as motivation for making that shift as part of the tab stop commit.
I will continue giving live updates in the development/tab-stops
topic in the Zulip chat until this feature is done. I hope to have tabs wrapped up by the next update, but moving may prevent me from reaching that goal.
After tab stops
Tab stops are the last "big" feature before the 0.1 release! There is lots of polishing and small features to do, and I'll need to write a user manual with documentation for all commands. The goal for 0.1 has always been to have a powerful raw engine for typesetting English text. We are well on track to hit that goal.