@DavidCarlisle Seems like a good rule of thumb. Sometimes, people don't possess the knowledge to articulate what their problem actually is, because they don't really understand the code themselves. Seems like you've been spreading good advice for quite some time. Perhaps the credit for mannerisms in here can be attributed to you partly as well;)
@Atex also in 1993, if you loaded latex + (what is now) amsmath, there were exactly 50 slots left in the csname hash table with the main pc implementation, emtex. That meant at most 50 \newcommand or \label etc. that somewhat constrained how big any package could be
@Atex or only 25 \newcommand that defined commands with an optional argument.
@DavidCarlisle ooooh! That explains why you won't merge together all your table packages as I suggested. You do need to know exactly what each package does and your needs in order to efficiently and minimalistically pick and choose the packages you desire, however. Definitely a cleaner approach for coding professionals, but for someone like me, I just find comfort in 1 package having all the features, even though I won't use all of them.
@Atex you probably never used emtex (actually I didn't either, I had a massive 4M memory on a Sun unix box) but emtex was the primary tex implementation at the time and latex2e could not be any bigger and still load.
@DavidCarlisle oh wow, seeing how limited tools you had to work with back then, it makes sense that you had to make small, yet specialized packages for particular purposes. I guess that did help in the end, however, because it instilled the good habit of making minimalistic packages designed for a specific purpose.
@DavidCarlisle not at all. I haven't been through even a fraction of your struggles and journey with LaTeX. As a matter of fact, I only became acquainted with the program when starting at university in 2023 (though I refused to use the program and stubbornly hung on to Word at that time). It wasn't untill spring 2024 that I actually started to use LaTeX. I kind of regret I didn't start earlier, however, because looking back, my Word documents look horrible in comparison. So many restrictions!
@JosephWright I think I optimised one or two of the recurring tests, because I know that the stop-marker can't be part of the argument (so the branching for head_is_group and head_is_space is faster)
@JasperHabicht oh wow, I didn't even realize the internal structure of the document is a mess as well. I'm happy I finally convinced myself to learn LaTeX despite the steep learning curve - It was a worthwhile and very rewarding investment!
@Atex You should look at the internal xml structure of a docx file, it's quite entertaining The XML doesn't follow the document structure at all, if follows the internal memory structure of Word's layout engine, which is essentially a stack based language like PostScript, with text strings going on to a stack and then having operators applied so it's not <b>this is bold</b> it's <text>this is bold</text>...<format-that-text-placed-earlier-using-this-style-obtained-from-this-reference/>
@cfr your question yesterday under some comment about cases where [h] does not act like [ht] I made an example to show it, but latex as implemented didn't match latex in my head, so clearly we need to make the former match the latter.
@cfr yes with the example there currently if you use [t] it fits on top of page, but if you use [ht] it does not fit and is deferred to page 2, which makes no sense. What I expected that to do was if you use [ht] it worked like [t] and went to top of page 1, but if you use [h] you get the warning h changed to ht and it appears at top of page 2 (as it does now with ht)
@cfr what is supposed to happen is that if you use [ht] it tries h (it doesn't fit) so it tries t (which should fit but the current code is wrong) so it goes to top of page. Conversely if you use [h] it tries h it doesn't fit so it defers the float, just h on a deferred float would mean it was never placed so change it to ht with a warning, then on the next page t will work. so with ht the float appears on page 1 and with h the float appears on page 2 with a warning.
@mickep well it's probably unusual to have a float which is too big to fit "here" but does fit "top" (I set an excessive \intextsep to make an example) but we'll see (there will be roll back anyway) but the current behaviour is clearly a bug. If the float fits when you have [t] then having it not fit if you allow it in [ht] because it's measuring the wrong length isn't a documentable behaviour, it's just a clear bug.
@cfr \RequirePackage[2010-01-01]{latexrelease}\documentclass{whatever} but whether it works or not depends on lots of things, as it doesn't backdate all the packages so th edocument might not process at all
@mickep given how it's almost certainly been there for 40 years and no one has noticed, probably no one will notice the change. (it's possible that the bug was introduced in 2015 but I haven't checked, I suspect it's always been there)
@cfr as above:-) I wanted to make an example of a document with a float that would fit [t] but not [h] (which that document is) then the question is, what does [ht] do, I expected it to work like t but in fact it currently works like h
@cfr to be honest for such tests I wouldn't trust the latexrelease rollback just try the document on overleaf where you can test it on every texlive 2014-2024
@DavidCarlisle ah, ok. but this particular case is simple enough I probably don't have to worry. I pretty much knew how it used to work anyway. I just wanted to double-check and couldn't figure out how. but I probably would have used a slightly different example if I'd figured that out.
@DavidCarlisle just when I thought it couldn't get any worse with Word. I'm at least glad I never had to deal with the XML documentation of it. It makes LaTeX code seem intuitive and logical in comparison. Really makes you appreciate the syntax even more
@cfr +1 on your comment, if I could it would be +2, one for the contents, and one for the "(and I really hope I'm not misspelling anybody's name.)" alone :)
@JosephWright yes, I'll tackle that. Might take some time though.
@JosephWright should I add a new module (etl) or add it to tl? If I add a new module, I'll have to sort some stuff with my own etl-package, because the names would conflict, but I can do that.