9:02 AM
quack

9:20 AM
@PauloCereda /rabbit sound

@PauloCereda Hi, Mr. Duck!
If for a generic package there is a box-setting macro, should I just add an additional |\begingroup| and |\endgroup| inside the |\hbox| to make it poor-man's colour safe?
or shorter, just put \setbox<foo>\hbox{{<bar>}} there, or keep it plain with \setbox<foo>\hbox{<bar>}?

1 hour later…
10:41 AM

1 hour later…
11:44 AM

@Skillmonlikestopanswers.xyz Load color anyway?
@Skillmonlikestopanswers.xyz Are you wanting just 'keeps color settings local' or also 'sets the color of the text to a known value'?

11:59 AM
@HenriMenke great! Thank you very much!

@Skillmonlikestopanswers.xyz using two {{ is fine, using \setbox<foo>\hbox{<bar>} is or is not fine depending on how much control you have over <bar> if that is unknown user content that might include \color then you will trash the pdf (or postscript) stack with no warning from tex.

12:18 PM
@JosephWright currently it just keeps colour settings local. expkv's defining module should still be generic code with no dependencies (other than expkv), so what I could do would be {\csname color@setgroup\endcsname<bar>\csname color@endgroup\endcsname} instead. Slight overhead, but would be perfectly fine in LaTeX and at least safe in plain.
@DavidCarlisle the additional braces will stay at least, I just don't know whether I should consider basic LaTeX support here, which is fail-safe for plainTeX.
@DavidCarlisle and <bar> is direct user input.

@Skillmonlikestopanswers.xyz the doubled braces are the main thing (tricker for vbox but trivial for hbox) then the only thing you are missing would be the thing Joseph alluded to that latex \sbox would save the current color at the start of the box, but you can only do that if you have a global track of the current color, and latex doesn't do that in most internal box settings just the user facing \sbox command.

@DavidCarlisle well, since it's a user-facing box key-type I should try to behave as good as possible, so I currently use the {\csname color@setgroup\endcsname#1\csname color@endgroup\endcsname} approach.
@DavidCarlisle and only \hbox is supported. Good support for \vbox would be pretty tricky to be consistent with both LaTeX and plain, also while I see some usage for a key that saves the user input in a \hbox I don't see much appeal in providing a vbox key.

@Skillmonlikestopanswers.xyz the only reason \color@endgroup isn't simply \endgroup was compatibility concerns over latex2.09 code (for the first decade of 2e local hacked thesis float environments getting mismatched \endgroup when color was loaded meant we had to keep them as \relax by default). So unless you are concerned about latex2.09 compat don't worry about that:-)

@DavidCarlisle the thing is that this way I don't have to otherwise check whether \csname color@setgroup\endcsname expanded to \begingroup or \relax.

@Skillmonlikestopanswers.xyz I wouldn't care. Just use \endgroup always.

12:29 PM
@DavidCarlisle but I think that it is faster to do \begingroup\csname color@setgroup\endcsname than doing something like \ifdefined\color@setgroup\color@setgroup\else\begingroup\fi#1\endgroup (well actually this could be faster... I don't know how fast the \ifdefined primitive is)

@Skillmonlikestopanswers.xyz as I say I'd be tempted to do just use \begingroup (I think. if I understand the context)

@DavidCarlisle oh, and the latter will not always work as LaTeX doesn't define \color@setgroup to expand to \begingroup if color isn't loaded :(
@DavidCarlisle I think I'm going for the doubled \begingroup\csname approach. Seems to be the most versatile without too much trouble.

at the time I wrote the color package the idea of blowing 16 tokens in a csname would have been so scary, that would be a reasonable proportion of the available space:-)

@Skillmonlikestopanswers.xyz simply use a group. We are considering to enable the color group always anyway, and expl3 boxes are color safe by default too.

@Skillmonlikestopanswers.xyz we seem to be talking cross purposes. I would use \setbox\foo{{#1}} with no testing.

12:36 PM
@DavidCarlisle but then the colour wouldn't be the one currently active during box-setup but the one during box-usage, wouldn't it?

@Skillmonlikestopanswers.xyz having two code paths with different group levels is a real pain and was as I say done to avoid breaking latex2.09 theses styles. There is no reason to do that now.
@Skillmonlikestopanswers.xyz yes (which actually is what a lot of users wished they got:-)

@DavidCarlisle you can do color injection with the xsavebox package.

@DavidCarlisle you mean they wished they got the current colour, or wished they got the colour at use-time?

@Skillmonlikestopanswers.xyz color at point of use. If you define it that way a user wanting the current color can just use a command to set the color at the start of the saved text, but with latex \sbox there is really no user-level way to avoid that and undo the current setting, the whatsit is added before the user gets any control

12:58 PM
@DavidCarlisle Speaking of color, I noticed it doesn't work anymore in Knuth TeX. Did you break it? Was it on purpose?

1:14 PM
@PhelypeOleinik ooh

1:26 PM
@PhelypeOleinik what doesn't work?

@UlrikeFischer \protected is not defined

Hi all, I'm attempting to \hrulefill\par in a srcartcl document, however, the rule does not extend up to the end of the line, but some extra space appears to creep in at the end of the line. Drawing the textarea boundary using tikzpagenode shows this, too. A long line of a\-a\-... has the expected length, as does a \rule{\textwidth}{1pt}, and the definitions of \par and \hrulefill at this point in the code look innocuous. Has anyone seen this before? Or an idea how to debug this further? Thanks!

@PhelypeOleinik ah yes. I think that is expected.

@UlrikeFischer But it could use something like \color@protected, which is \relax in Knuth TeX, couldn't it?

@Wisperwind well the standard way to debug this is to create a small complete example. But my crystal ball assumes that you are using the parskip key - this sets \parfillskip to a non zero value.

1:37 PM
@PhelypeOleinik That depends which version you use

@DavidCarlisle Hm... With c:/texlive/2019/texmf-dist/tex/plain/graphics-pln/color.tex

@DavidCarlisle But that file looks different for me:
\input miniltx

\def\Gin@driver{dvips.def}
\input color.sty

\resetatcatcode

@PhelypeOleinik as I say, it works for me, why should I care if it works for you????

@DavidCarlisle Makes sense :-)

1:42 PM
@PhelypeOleinik if people use plain they should be capable of cloning the git repo, or I suppose I could make a ctan release....

@DavidCarlisle CTAN releases are overrated

@PhelypeOleinik color.tex 2020 PL 27 anyone?

Speaking of which, I bugged the Elsevier so much they updated their els-cas class to remove deprecated expl3 commands (@JosephWright)

@PhelypeOleinik Elsevier deserves a lot of pain

@PauloCereda But they should not redirect that to poor users by forcing them to use els-cas...

1:46 PM
@PhelypeOleinik :)

1:56 PM
@PhelypeOleinik quite so, save the users from that fate, give them abntex2

@DavidCarlisle D:
@DavidCarlisle I don't even know which is worse

@PhelypeOleinik I know

@DavidCarlisle ooh I never saw one

@PauloCereda font changes around 4:50

2:02 PM
@DavidCarlisle wow

@PauloCereda The typist I used could type one handed while changing golfball between latin greek and math symbols with the other, quite impressive:-)

@DavidCarlisle Wow, impressive indeed!

2:17 PM
@UlrikeFischer thanks a lot, that's it! Yeah, i was hoping to avoid stripping this down to a MWE since there's also a custom class and package in between, so that would have been somewhat of an effort, too.

2:35 PM
@UlrikeFischer @PhelypeOleinik considering splitting up dpctex so graphics-pln can have its own issue tracker and git tags etc, should have less impact than splitting oberdiek, as it's already separate at the ctan and texlive levels

2:46 PM
@DavidCarlisle do you need a sword or can it be done with scissors?

@UlrikeFischer I think such a delicate operation requires a surgical scalpel, none of your hacking around with swords.

3:25 PM
chainsaws can be quite effective

3
@HaraldHanche-Olsen ^^^

@UlrikeFischer ooh

@UlrikeFischer :)

3:40 PM
@UlrikeFischer I knew I couldn't trust you

@DavidCarlisle you will need it to cut out longtable, that's tough.

4:04 PM
@UlrikeFischer is that related to Sabine? :)

4:46 PM
Was there some evil change in the way babel handles languages and the \extrasngerman etc. stuff?

@UlrikeFischer One of my custom classes (which is really convoluted, so creating a minimal example will not be easy) behaves pretty weird. It was working in December when I last used it.
\iflanguage{ngerman}{DEUTSCH}{BRITISCH}

\csname opt@babel.sty\endcsname
Returns me the following:
BRITISCH
british,ngerman
So, even as ngerman is the last language in the option list, I get a British document :(

@Skillmonlikestopanswers.xyz you get this if you do something like this:
\documentclass[ngerman]{article}
\usepackage[british,ngerman]{babel}

\begin{document}
\iflanguage{ngerman}{DEUTSCH}{BRITISCH}

\csname opt@babel.sty\endcsname

\end{document}

4:53 PM
@DavidCarlisle ooh

@UlrikeFischer yes, I just removed the main= for tests. Now if I add it back in I get DEUTSCH british,main=ngerman as output, BUT the effect of \extrasbritish will be active, not the one of \extrasngerman (which I can easily test by looking at some macro, I do \addto\extrasbritish{\def\MRTthesis@eqname{Eq}}\addto\extrasngerman{\def\MRTthesis@eqname{Gl}}. But it expands to Eq. in the German document...
@UlrikeFischer I think I found the problem. I was doing \gdef and had a foreign acronym, so the effects of \extrasbritish leaked...
@DavidCarlisle and of course the error was the user's... :)

5:08 PM

5:59 PM
@UlrikeFischer sane as we had on travis, not installing texlive-tools (was that the name)

@DavidCarlisle I see, the OP answered.

@UlrikeFischer texlive-scripts I meant

6:23 PM
The tag "gap" has no definition, and it hasn't been used very often. The typical use is to ask about a (usually) unwanted space of some sort. But a question just appeared (tex.stackexchange.com/q/529927) concerning the computer algebra system GAP. Clearly, this is quite a different topic, and the assigned (only) tag is thus inappropriate. Any suggestions for a different tag?

6:44 PM

@barbarabeeton oh :(

7:03 PM
@UlrikeFischer You trying to close all of Gnats??

@JosephWright ooh bugs

@JosephWright ;-). Do you want to see my list of candidates?

@UlrikeFischer 'All of the above'?

@JosephWright ooh

@JosephWright do you want to keep it open for old times sake?
pancakes

7:18 PM
@DavidCarlisle ooh

@PauloCereda not good for ducks

@DavidCarlisle oh

@PauloCereda British style pancakes that is. Chinese style pancakes are excellent with duck.

@DavidCarlisle oh no
@DavidCarlisle what's a British-style pancake?

@PauloCereda flour egg and milk, with lemon juice and sugar (traditionally or any kind of syrup jam whatever if not)
@PauloCereda the main thing is you have to toss them: that is throw them out of the pan to turn them over at half time, turning them with a spatula is cheating

7:28 PM
@DavidCarlisle Olney?

@JosephWright wikipedia only says "England" :-)

@DavidCarlisle ooh

Hello all!
Is "legal" to bump a lot of questions in a very short period of time?
I mean I only see tikz-pgf in the home, that's shocking, but I think we can do this. Quack!

@manooooh legal, sometines unavoidable (I edited tens of thousands of questions within a few days at one point...) but a bit antisocial if done too often. what are the edits?

7:39 PM
@DavidCarlisle I am not saying that we should not improve the questions. But in a short period of time?

@manooooh I almost never see that view so it doesn't affect me at all.

As far as I looked, the edits are only for add the tikz-pgf tag

@manooooh the one I looked at.

Also pgfplots; er, I think pgfplots and tikz-pgf have no difference, and I think a lot of people don't see any difference. People that are not technical people

@manooooh exactly which is why presumably Stefan is doing a pass correcting the tagging,

7:44 PM
@DavidCarlisle that's fine. What I disagree with is the time interval; I like to see variety on the site, but I guess this doesn't happen every day

@manooooh as I say I never use that view, it seems pointless: I always just use the "questions" view from the menu so you get the questions in posting order and tag edits on old questions have no effect.

@DavidCarlisle so let's delete the Home view

@manooooh I would, but some people like it and it's a network wide thing not anything controllable on tex.sx

@DavidCarlisle of course you can't delete the Home view. It's an essential part of any webpage

@manooooh if you find yourself with a free hour and decide to donate it to some site cleanup then really it's better to do it and let the active questions be disturbed during that time than try to spread it over weeks and have the activ elist continually disturbed.
@manooooh yes but it could be made a useful page rather than a useless one

7:50 PM
I don't understand your comments. Deleting an essential part of the site would not help in anything rather than make things worse
The Home button was, I guess, created by designers; it is a shortcut to explore all the different areas that a webpage has. But wait -- We can also see the areas staying in /questions. The problem is that a lot of people got used to using the home page, especially when they want to find something for the first time. I'm not a web designer but I can assume this as true

@manooooh in what way would the site be worse if the two URL above both linked to the same place (as given by "better")

@DavidCarlisle large companies have indoctrinated us to use a button called Home. Is this good? Bad? I don't know

@manooooh I don't understand your comment. Obviously there has to be something at tex.stackexchange.com you can't delete that URL but it could have a more useful content that wasn't trashed just because someone edited a few questions.
@manooooh I have no idea what you mean here. How is a button called home (which this site does not have does it?) relate to the content of the page?

@DavidCarlisle it is a strategy of the pages. Why do you think that Facebook, Google, Instagram, StackExchange, and so many famous webpages have a button called home?
(also ctan.org has his own home button!)

@DavidCarlisle do your pancakes have a home button? :)

8:01 PM
@manooooh I have no idea how a button called home is relevant to the earlier discussion

@DavidCarlisle because in this site, the home button shows the modifed questions

@manooooh where does stackexchange or google have a button called home??

the conversation has a certain theater quality. @manooooh I think you have no idea what David is trying to say. Why don't you go to the main site and click on the questions button to see the difference in the sorting of the questions?

@DavidCarlisle these are 2 home buttons

@manooooh I click on the TeX logo to get that.

8:03 PM
@manooooh one is a breadcrumb, the other is a clicable image.

@manooooh no there is one hone menu item and one tex logo that is a link, but in any case that just takes you to / URL of the site the discusion was about what should be there and the "active questions" list is pretty useless and leads to things like your initial comment asking why it is flooded with tikz edits

Do you need more proofs?

@manooooh it is not relevant to the earlier discussion. every site has a page at / that is not saying anything.

@UlrikeFischer I do see the difference. But I want to stay on the main site (the home)

8:06 PM
@manooooh but do you mean you want to be at / in the URL hierarchy or do you mean you want to see a pointless list of posts that have been tagged pgfplots?

@manooooh why? like David I only use the other page where I see the new questions and not every (probably unintesting) edit.

@DavidCarlisle I want to see the activity of the page. You can observe that I am not looking for an answer or posting a question. I want to observe the site's activity. If there is something interesting, an update or something like that. Most of the webpages have an update on the home, that's all
@UlrikeFischer ^^^^^^^^

@manooooh well the current activity is someone cleaning up the tagging, so you get what you ask for.

@manooooh ^^^^ I just wanted to write this too ...

@manooooh I honestly have no idea what you mean by "Most of the webpages have an update on the home, that's all"

8:14 PM
I'm done

8:24 PM
Does anyone else have This is LuaTeX, Version 1.11.2 (TeX Live 2020)  ? could you try
1

In order to make "fragile commands safe in a moving argument" LaTex sets \protect to a suitable value, here the expansion happens while passing to Lua, but is otherwise similar to the expansion that happens in a TeX \write \string is a suitable value here so \documentclass[british]{report} \b...

I get
\$ lualatex cc653
This is LuaTeX, Version 1.11.2 (TeX Live 2020)
restricted system commands enabled.
(./cc653.tex
LaTeX2e <2020-02-02> patch level 3
L3 programming layer <2020-02-21>
(/usr/local/texlive/2019/texmf-dist/tex/latex/base/report.cls
Document Class: report 2019/12/20 v1.4l Standard LaTeX document class
(/usr/local/texlive/2019/texmf-dist/tex/latex/base/size10.clo))
(/usr/local/texlive/2019/texmf-dist/tex/latex/l3backend/l3backend-pdfmode.def)

LaTeX Warning: Unused global option(s):

@DavidCarlisle sorry, 1.10.0 here

@PauloCereda so far behind.

Ah -dev.
I have it. :)
LaTeX Warning: Unused global option(s):
[british].

No file test.aux.
(/usr/local/texlive/2019/texmf-dist/tex/latex-dev/base/ts1cmr.fd)XXX \\ test
[\directlua]:1
: bad argument #1 to 'close' (FILE* expected, got no value)
stack traceback:
[C]: in field 'close'
[\directlua]:1: in main chunk.
l.18 }
}
?
@DavidCarlisle ^^

@PauloCereda LUIGI........

@DavidCarlisle ooh Super Mario bros

8:27 PM
@PauloCereda is that one you compiled yourself, how old a version?

@DavidCarlisle updated today.
It's the one from TL.

@PauloCereda ah luatex list report coming up then, I'll just make a plain tex version..

@DavidCarlisle ooh plain

@DavidCarlisle I get an error with all version, 1.10, 1.11 and 1.12

@UlrikeFischer argggggggggggggggg he has a . not a :

8:31 PM
@DavidCarlisle yes just wanted to say it should be fd:close()

@UlrikeFischer I wonder what texlive 2018 luatex actually did in that case (it didn't give an error:-)
@UlrikeFischer older than the ones you tried This is LuaTeX, Version 1.07.0 (TeX Live 2018)

@DavidCarlisle ooh plot twist

@DavidCarlisle I can't try, I don't have a tl18 here, only on the other pc.

8:52 PM
@UlrikeFischer @JosephWright what's the status of the text purify code? (modesty prevents me from posting the comment above this one:-)
@Tom we have some expl3 code to "purify" such strings to pure text (eg for use in pdf bookmarks) er but I'm not sure if it is released yet, let me check.... — David Carlisle 53 secs ago
@UlrikeFischer I used 2018 as I've installed the one I compiled in my tl2019 tree so I can't easily test a real tl2019 now..

@DavidCarlisle It's in a branch, but we seem to be moving toward a non-expandable appraoch

@JosephWright that's what I thought, although non expandable would probably be all right there, do some tex-side processing before passing the result to lua

@DavidCarlisle I'm waiting for us to have a real spec before doing more work; Bruno's busy, but he knows a lot more about the unravel approach than I do

@JosephWright unravel seems (like regex very... wrong:-) if it wasn't for the weird engine stability constraints we impose using the tex engine to expand the tex rather than encoding a tex-in-tex . For luatex it would be tempting to just typeset to a box and extract the glyph nodes

@DavidCarlisle I'm not sure I'd say weird, though I do know what you mean; you do know you sound a bit like Hans, yes?

9:06 PM
@JosephWright wij nederlandse tex mensen blijven bij elkaar
@JosephWright unravel is great for a debugging tool but if we use it for bookmarks that's every section heading in every document.

@DavidCarlisle Well yes, I was imagining I'd have to cut it down a lot, as all the typesetting stuff comes down to 'treat as a group only'
@DavidCarlisle Performance does worry me, but then my expandable approach is also a lot slower than Heiko's

@JosephWright at some point luatex(only) might seem tempting (or lua only and switch to sile (and not have any of this executable document nonsense:-)

@DavidCarlisle LuaTeX-only is going to be the case for new features, at least: Alice, for example
@DavidCarlisle We may be forced that way by tagging (@UlrikeFischer)

@JosephWright so is getting plain text by extracting glyph nodes from the typeset heading a feasible (and efficient) alternative to a separate text-generating expansion path...

@DavidCarlisle After the experiments with bangla I'm wondering about input characters and output glyphs. E.g. should ffi or the ffi-ligature go into the pdf string? Probably the unicode input but then glyph extraction will have to revert to the ToUnicode.
@DavidCarlisle @AlanMunn ^^^ for the linguistists

9:25 PM
@UlrikeFischer -- aaarrrrggggghhhhhhhhh!

@UlrikeFischer yes you'd want f f i so you would have to do a certain amount of re-construction but still probably less work than a completely separate expansion path. Trouble is for math etc you might want a separate expansion to quite separate forms eg sqrt signs becomeing sqrt(...) or whatever

@UlrikeFischer I'd been wondering about that with 8-bit engines, too ... thinking about case changing as well

@DavidCarlisle I'm not sure if the reconstruction would be so easy, for ffi it is fine, but e.g. in the bangla the order changes and some of the arabic has very complicated building rules. I wonder if one can somehow intercept the nodes before harf or the fontloader pushes them around - @MarcelKrüger will probably know.

@UlrikeFischer أنا أعرف كل شيء عن اللغة العربية بالطبع

9:48 PM
@UlrikeFischer That kind of thing was on my mind, also for case changing stuff like changing the actual content

@JosephWright it came to my mind to when you wrote about it. We have a tendency to believe that there is a rather clear 1-1 mapping between input chars and output glyphs and so not to care much when a conversion happens, but ffi -> FFI -> ligature is quite different to ffi -> ligature -> uppercase.

10:08 PM
@UlrikeFischer Yeah, so much like case changing for PDF strings ;)
@UlrikeFischer There is an attraction to the expandable plan ...
@UlrikeFischer ... for a start, I have the code in hand

@JosephWright yes I see this. Getting something like "normal text input" and convert this would be probably quite sane. But we need an expandable \cite then ;-), and probably also glossary/acronyms and \SI.

@UlrikeFischer \SI is doable (it's already done ...)
@UlrikeFischer I think we can sort \cite and acronyms

10:29 PM
@JosephWright I think these are the large parts. Beside this I can't think of very much relevant and problematic people would put in text. Perhaps chemical formulas. And some small stuff like superscripts and similar.

@UlrikeFischer Chemistry is easy enough: use the raw input, and superscripts are a similar story (modulo the random Unicode superscript chars)

@yo' Sure

\prop_get:NnNTF is this really shuffling with <tlvar> in case the <key> is not present?
I'd like to have <tlvar> intact; do I really need a temp var for this?

@yo' The TF version does nothing to the tl if the value is no found

10:40 PM
@JosephWright ok thanks for confirmation. This may be wrong in the manual. Should I do a PR?
Or maybe you mean in this way, sorry.
> The value of the <token list variable> is not defined in this case and should not be relied
upon.
I was confused by "should not be relied upon"
So I really need \prop_get:NnNT but with empty argument for T...
Thanks again @JosephWright

@UlrikeFischer We have the \hpack primitive in LuaTeX which gives us a \hbox without calling any callbacks, it will not be intercepted by the fontloader. Of course this doesn't help if e.g. superscripts are implemented by using internal hboxes. We could add a special callback before the fobt handling to save the text to some property, but especially for Hard we already have something like this: In order to provide /ActualText when necessary, nodes get annotated with the original text.

@MarcelKrüger So we arebak wanting text by expansion?

11:02 PM
@MarcelKrüger which node gets annotated by what? For example in the bangla where Ka and I returns reversed, or the 5 char input that is one glyph.

@UlrikeFischer The first node of the HarfBuzz cluster (so the first if the nodes after reordering or the one glyph in the ligatures case) gets a property saying: Here starts a cluster which was formed by the following input sequence "...". Then the remaining output glyphs get marked as already handled by having no associated input.
That's also what is printed in showbox etc.
@JosephWright I'm not sure what you are trying to say.

11:17 PM
@MarcelKrüger what happens in node and base mode?