expl3 and l a t ex3
play

expl3 and L A T EX3 Will Robertson & Frank Mittelbach And the - PowerPoint PPT Presentation

expl3 and L A T EX3 Will Robertson & Frank Mittelbach And the L A T EX3 Project July 29, 2014, Portland expl3 Outline L A T EX3 Case changing expl3 Outline L A T EX3 Case changing foo bar baz L A T EX Project team


  1. expl3 and L A T EX3 Will Robertson & Frank Mittelbach And the L A T EX3 Project July 29, 2014, Portland

  2. expl3 Outline L A T EX3 Case changing

  3. expl3 Outline L A T EX3 Case changing

  4. — foo — bar — baz L A T EX Project team members Largely chronologically: — Frank Mittelbach, — Thomas Lotze, — Morten Høgholm, — Rainer Schöpf, — Chris Rowley, — Javier Bezos, — David Carlisle, — Will Robertson, — Michael Downes († 2003), — Joseph Wright, and — Johannes Braams, — Bruno Le Floch — Robin Fairbairns, — Alan Jefgrey, — Denys Duchier,

  5. L A T EX3 stats

  6. What is L A T EX3? — You know what L A T EX2 ε is…(we assume) — So L A T EX3 is the next version of L A T EX, right? — Not so fast.

  7. Explosion of packages doing similar things but each slightly difgerently and only parts of it… L A T EX 2 ε status — L A T EX2 ε must remain backwards compatible, warts and all. — Many things that many people would change! — Default document design: Some [many?] questionable/controversial aesthetics … — Programming: Not enough hooks, missing or unclean interfaces, separation of ‘layers’, default font encodings, …

  8. L A T EX 2 ε status — L A T EX2 ε must remain backwards compatible, warts and all. — Many things that many people would change! — Default document design: Some [many?] questionable/controversial aesthetics … — Programming: Not enough hooks, missing or unclean interfaces, separation of ‘layers’, default font encodings, … Explosion of packages doing similar things but each slightly difgerently and only parts of it…

  9. Conclusion: In short, it just doesn’t work. L A T EX 2 ε improvements? — We can / do fix certain bugs in L A T EX 2 ε — but not aspects that change layout or bugs that we know people worked around. — More drastic changes can occur in fixltx2e , but that doesn’t really work or solve the issue (see ‘explosion of packages’ earlier). — But even seemingly ‘harmless’ changes have consequences.

  10. L A T EX 2 ε improvements? — We can / do fix certain bugs in L A T EX 2 ε — but not aspects that change layout or bugs that we know people worked around. — More drastic changes can occur in fixltx2e , but that doesn’t really work or solve the issue (see ‘explosion of packages’ earlier). — But even seemingly ‘harmless’ changes have consequences. Conclusion: In short, it just doesn’t work.

  11. N.B. L A T EX3 expl3 What is L A T EX3? — So we’re not going to get rid of latex the format, and its interface is not going to change. — That means whatever L A T EX3 is, it will be an alternative. — The package concept means some L A T EX3 ideas can be layered on top of L A T EX 2 ε . — Not everything can be layered (e.g. galley). — In time, we will have a latex3 format.

  12. What is L A T EX3? — So we’re not going to get rid of latex the format, and its interface is not going to change. — That means whatever L A T EX3 is, it will be an alternative. — The package concept means some L A T EX3 ideas can be layered on top of L A T EX 2 ε . — Not everything can be layered (e.g. galley). — In time, we will have a latex3 format. N.B. L A T EX3 ̸ = expl3

  13. expl3 Outline L A T EX3 Case changing

  14. What is expl3 ? — An interface to T EX programming, stabilised in the last five or so years. — (Invented 1992.) — It forms the programming/coding layer for L A T EX3 but can be used independently: ▶ for package writing on top of L A T EX 2 ε , ▶ for coding in other T EX formats; e.g., plain T EX, ConT EXt.

  15. And how would we use JSBox? What is expl3 ? Why not Lua? — The first versions of expl3 appeared around the same time as Lua itself (1993). — expl3 predates Lua T EX by some 20 years. — expl3 supports pdfT EX, X T EX, and Lua T EX, consistently. E — Also note that Lua doesn’t always help.

  16. What is expl3 ? Why not Lua? — The first versions of expl3 appeared around the same time as Lua itself (1993). — expl3 predates Lua T EX by some 20 years. — expl3 supports pdfT EX, X T EX, and Lua T EX, consistently. E — Also note that Lua doesn’t always help. And how would we use JSBox?

  17. All you plain users now in luck. — expl3 now loadable in plain T EX and even ConT EXt. — This was done specially for ‘generic’ packages; specifically, Heiko Oberdiek asked us to provide this functionality to minimise variants of his packages. expl3 in L A T EX2 ε The goal is to make it easier to write L A T EX packages: — We eat our own dog food with siunitx , fontspec , etc. (this has formed the basis for iteration and solidification). — More comprehensive than etoolbox &c.

  18. expl3 in L A T EX2 ε The goal is to make it easier to write L A T EX packages: — We eat our own dog food with siunitx , fontspec , etc. (this has formed the basis for iteration and solidification). — More comprehensive than etoolbox &c. All you plain users now in luck. — expl3 now loadable in plain T EX and even ConT EXt. — This was done specially for ‘generic’ packages; specifically, Heiko Oberdiek asked us to provide this functionality to minimise variants of his packages.

  19. New! withargs GS1 lualatex-math fnpct acro newlfm media9 lt3graph pkgloader exsheets substances enotez endiagram hobete xecjk ctex xpeek conteq xpinjin classics zhnumber chemmacros zxjatype hobby copyeditting kantlipsum expl3 is a success Interface for creating (classes of) acronyms Hobby’s algorithm in PGF/TiKZ for drawing optimally smooth curves. Typesetting in the field of chemistry. Traditional-style citations for the classics. Continued (in)equalities in mathematics. A collection of macro packages and document classes for Chinese typesetting. Draw potential energy curve diagrams. Support for end-notes. Question sheets and exams with metadata. A graph data structure. The venerable class for memos and letters. Interaction between footnotes and punctuation. Barcodes and so forth. Beamer theme for the Univ. of Hohenheim. Generate sentences in Kant’s style. Extended support for mathematics in LuaL A T EX. Multimedia inclusion for Adobe Reader. Managing the options and loading order of other packages. Lists of chemicals, etc., in a document. Ephemeral macro use. Support for CJK documents in X L A T EX. E xpatch , regexpatch Patch command definitions. Commands that peek ahead in the input stream. Automatically add pinyin to Chinese characters Typeset Chinese representations of numbers Standards-conforming typesetting of Japanese for X L A T EX. E

  20. withargs copyeditting fnpct GS1 hobete kantlipsum lualatex-math acro zxjatype lt3graph media9 zhnumber pkgloader xpinjin substances xpeek xecjk newlfm chemmacros classics conteq ctex hobby enotez exsheets endiagram expl3 is a success Interface for creating (classes of) acronyms Hobby’s algorithm in PGF/TiKZ for drawing optimally smooth curves. Typesetting in the field of chemistry. Traditional-style citations for the classics. Continued (in)equalities in mathematics. A collection of macro packages and document classes for Chinese typesetting. Draw potential energy curve diagrams. Support for end-notes. Question sheets and exams with metadata. A graph data structure. The venerable class for memos and letters. Interaction between footnotes and punctuation. Barcodes and so forth. Beamer theme for the Univ. of Hohenheim. Generate sentences in Kant’s style. Extended support for mathematics in LuaL A T EX. Multimedia inclusion for Adobe Reader. Managing the options and loading order of other packages. Lists of chemicals, etc., in a document. Ephemeral macro use. Support for CJK documents in X L A T EX. E xpatch , regexpatch Patch command definitions. Commands that peek ahead in the input stream. Automatically add pinyin to Chinese characters Typeset Chinese representations of numbers Standards-conforming typesetting of Japanese for X L A T EX. E New!

  21. What’s new in the last six months? — Joseph wrote l3build , which Frank covered yesterday. — (Already mentioned that expl3 now loads on plain.) — Joseph and Bruno implemented expandable case switching. — Will played around with something and Frank complained about it (auxiliary data).

  22. expl3 Outline L A T EX3 Case changing

  23. Case changing 1. There is more to case changing than meets the eye: ▶ Uppercase, lowercase ▶ Titlecase (with language-dependent rules) ▶ Case folding 2. Simple \uppercase and \lowercase are not suffjcient! ▶ Can have one-to-many mappings (ß → SS). ▶ Can have many-to-one mappings (i, ı → I but also i → İ) 3. Unicode provides data, but is not providing a solution.

  24. \uppercase{% \def\mytitle{Some normal text}% } \mytitle Case changing in regular T EX T EX provides \uppercase and \lowercase : → SOME NORMAL TEXT The characters are not uppercased until the stomach. I.e., case changing is not expandable. This is the basis for \MakeUppercase in L A T EX 2 ε , which has extra LICR-related code.

  25. For expl3 , we’re not yet tackling this problem either. The case-changing is intended to operate on ‘characters’ in token lists without discrimination. Case changing in L A T EX2 ε From source2e : These commands have some nasty features, such as uppercasing mathematics, environment names, labels, etc. A much better long-term solution is to use all-caps fonts, but these aren’t generally available.* * A problem for fontspec ?

More recommend