{"title":"An introduction to expl3","authors":"Marei Peischl","doi":"10.47397/tb/44-1/tb136peischl-expl3","DOIUrl":null,"url":null,"abstract":"LATEX3 is no longer a development for which LATEX users have been waiting for decades. LATEX3 has been around for a long time and nowadays is used by all LATEX users, often without being noticed. The goal of this tutorial is to demystify expl3. The LATEX3 programming layer is the foundation of almost all new LATEX development in the last years. It provides unified interfaces that can be used directly or indirectly by package authors and users to code complex mechanisms or process content much more flexibly than with classic LATEX. Overall, the most important goals of LATEX3 are: • Uniform interfaces for functions and variables • Modernization of syntax • Simplification of controlling expansion and thus provide both much simpler and more powerful ways to program in LATEX [5]. Programming is useful when a document, depending on settings, should get either a different layout or a different structure. A typical example from teaching is the creation of an exam including solutions within a single file, where solutions can be hidden. Another use case is the processing of external data. A typical example is a list to be converted to an enumeration:","PeriodicalId":93390,"journal":{"name":"TUGboat (Providence, R.I.)","volume":"1 1","pages":""},"PeriodicalIF":0.0000,"publicationDate":"2023-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"TUGboat (Providence, R.I.)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.47397/tb/44-1/tb136peischl-expl3","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
Abstract
LATEX3 is no longer a development for which LATEX users have been waiting for decades. LATEX3 has been around for a long time and nowadays is used by all LATEX users, often without being noticed. The goal of this tutorial is to demystify expl3. The LATEX3 programming layer is the foundation of almost all new LATEX development in the last years. It provides unified interfaces that can be used directly or indirectly by package authors and users to code complex mechanisms or process content much more flexibly than with classic LATEX. Overall, the most important goals of LATEX3 are: • Uniform interfaces for functions and variables • Modernization of syntax • Simplification of controlling expansion and thus provide both much simpler and more powerful ways to program in LATEX [5]. Programming is useful when a document, depending on settings, should get either a different layout or a different structure. A typical example from teaching is the creation of an exam including solutions within a single file, where solutions can be hidden. Another use case is the processing of external data. A typical example is a list to be converted to an enumeration: