TransWikia.com

How to make the transition from LaTeX2e to expl3 syntax?

TeX - LaTeX Asked by Yiannis Lazarides on December 21, 2020

I was peeking at the LaTeX3 Github repository and specifically l3auxdata.dtx. There was a surprise for me, as I have been practicing and studying the expl3 syntax and modules for the last couple of weeks. The surprise was code like:

defauxwrite{auxdata_write:nn}
defauxshipout{auxdata_write_shipout:nn}

I am not too sure if there was a reason for the code to use def, but this reminded me of my own difficulties with the syntax.

There is a great temptation when starting with expl to bypass the verbosity of the expl language and use def and TeX primitives. When I started with expl3 I was literally translating LaTeX2e code in my head and then writing it down. Pretty much like when you learn a foreign language.

I have by now mostly overcome this as I forced myself to do the following:

  1. Avoided defs.
  2. As the too many underscores bothered me, at the beginning I wrote functions as
    module_dosomething:nn. This way I was a bit quicker with debugging and typing. Only started adding l_ or g_ much later or on refactoring the code.
  3. I mentally kept reading the commands together with the argument specifier until it started sinking in. Like module dosomething en en. The reason I kept forgetting to write the specifier.
  4. When I used a tex_<cs>:D like a command, I went back and refactored the code later to remove it.
  5. Write notes with examples as I practice the commands. This can be also useful to others.

Do you have any additional tips and tricks to share?

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP