8:27 AM
@JosephWright I though l3ref would detokenize label names, but an underscore in the name breaks there too, if used with l3doc.

@UlrikeFischer Ah, must have missed that

@JosephWright yes, looking on the code I think some tl_to_str are missing in \@@_data:nnn.
@JosephWright if I change the two lines it works again. Should I correct the dtx or do you want to do it?

@UlrikeFischer Go for it

8:53 AM
@JosephWright done.

9:18 AM
@DavidCarlisle The MathML specification says "The rowspan and columnspan attributes can be used around an mtd element that represents the label in a mlabeledtr element." Now I have some usecases for rowspan on labels (sadly this doesn't seem to be implemented anywhere), but how would this work for columnspan? The label spanning into regular columns seems very weird.

@MarcelKrüger it was all very speculative as getting anything to work for equation labels was difficult. I think the intention was to get the effect of \tag{\rlap{a long label}} that overlapped a long formula in a different row, but I suspect we'll need to look again at equation numbering in mathml4
@MarcelKrüger if you open an issue at github.com/w3c/mathml/issues it won't get handled any time soon but it won't get forgotten before any MathMl4 spec either.

@DavidCarlisle I see. Thanks.

@MarcelKrüger working on equation labels was always demoralising as the first thing you want to say is that by default the equation is a counter that goes up each time, but that's difficult to say in MathML as it has no access to global properties. But CSS has moved on and now with css variables and counters and things it's probably possible to say something a bit more sensible this time and have examples that work so then you can start to constrain the attributes to things that do actually work

9:59 AM
@DavidCarlisle Doesn't the current design of mlabeledtr make (more or less backward compatible) extensions with default labels rather complicated? Since the label is the first element, it can't really be omitted... Anyway if we consider MathML as an output format, forcing manually added equation numbers actually seems rather useful since it leads to more stable references.

10:26 AM
@JosephWright ...well, "covered" is a big word ;-P (all the examples are about immediateassignement...) (ref: tex.stackexchange.com/questions/602379/…)

11:08 AM
@Rmano Hu? It says
> The \expanded primitive takes a token list and expands it content which can come in handy: it avoids a tricky mix of \expandafter and \noexpand. You can compare it with what happens inside the body of an \edef. But this kind of expansion it still doesn’t expand some primitive operations.

1 hour later…
12:09 PM
@JosephWright eeeh.... yes. That's all... I expected a bit more wordy thing ;-)

@Rmano You've obviously never read the LuaTeX manual
@Rmano Bottom line: \expanded expands its argument in the same way \message does, but is itself expandable

12:24 PM
@JosephWright Ok, I'll play with it as soon as I feel like procrastinating real work ;-)
Thanks

@Rmano Basically, \expanded means you can do any expandable programming in a 'function-like' sense; the \immediateassignment business lets you do almost everything that way (other tahn out-and-out typesetting)

that's a first. OP on a question decided to add the requested log into the edit summary for their question. Erh, no.

12:43 PM
@daleif :)

1 hour later…
2:38 PM
@JosephWright (and box assignments, which in a way are covered by your "out-and-out typesetting")

@Skillmon Yes, that was the main thing I was thinking of

@JosephWright how long until \immediateassignment is taken over to the other engines? :)

@Skillmon Depends on how busy @PhelypeOleinik is, unless I guess if I have a go

@JosephWright and then I'll probably have to rewrite expkv :(

@Skillmon I think you are safe: there's loads of code that would break if used inside \immediateassigned

2:43 PM
Hello! I have a quick expl3 question. How can I insert a blank line (not \par)? Context: I want to loop over code to insert labels for the label package and labels need to be separated with a blank line.

@JosephWright that bad? What about a simple \immediateassigned\edef\ekv@setname{#1} (with #1 being documented as safe in a \csname expansion)?
If that would work I'd have to forward one argument less (which I currently already optimized as being stored inside a token that gets build using \csname)
Whether that'd be faster I'd need to benchmark... I wonder how expensive \immediateassigned/\immediateassignment together with an \edef is, compared to \expandafter<next>\csname and the need to forward the resulting token.

\cs_new:Nn \dcp_format_label:
{
\centering
\emoji{glowing-star} ~ Well ~ Done ~ St ~ Paul ~ Stars! ~ \emoji{glowing-star}

% ^^^ Needs a blank line here
}
\cs_new:Nn \dcp_output_labels:n
{
\int_set:Nn \l_tmpa_int {1}
\int_set:Nn \l_tmpb_int {#1}
\begin{labels}
\int_do_while:nn { \l_tmpa_int <= \l_tmpb_int }
{
\dcp_format_label:
\int_incr:N \l_tmpa_int
}
\end{labels}
}

@JosephWright Of course, when you have LuaTeX anyway you can use tex.runtoks to even do expandable typesetting...

@MarcelKrüger LuaTeX is such a strange thing. :)
Sometimes I wonder how much of it got created because of a need in ConTeXt and how much was just added because "I could do that..."

@Skillmon Not "I could do that ...", the standard sentence is "I played around with ..." ;-)

2:51 PM
@Skillmon I think the code comments regarding \immediateassignment state pretty clearly that it belongs into the latter category...
@UlrikeFischer In tagpdf running in luamode, assuming that I have a structure element which was not created with stash but since it was created no shipout occured. Can I somehow go back and change the parent of that structure element?

3:20 PM
@MarcelKrüger I'm just shopping, I will look when I'm back. Can you make a example so that i understand the question?

@UlrikeFischer Sure, I'll write you a mail.

@MarcelKrüger yes, but it could be that that cell can be empty and get filled in via a css counter. Perhaps..
@DavidPurton a blank line is \par there is no other corresponding tokens unless you mean two catcode 12 ^^J but the package can't be expecting that?

3:50 PM
@MarcelKrüger rereading it: for structures shipout is not really relevant. When a structure is created its object reference is stored in a seq related to the parent. You could remove it by removing this entry from the seq (there is no interface, but it would be not difficult to add it). You could then add it to the kid-seq of another structure, the main problem is if you get the order of the kids you want.

@UlrikeFischer Thanks, that sounds promising. I'll do some experiments :)

@MarcelKrüger the sequence is named g_@@_struct_kids_#1_seq, where #1 is the number of the parents, and there is a accompaigning lua table, but I don't remember if it matters somewhere ;-) (at the begin I wasn't sure if I will need lua tables or seq, so currently both is there just in case).

4:54 PM
@JosephWright quick tests indicate that the argument forwarding is faster than \immediateassignment for up to 35 key=val pairs or so... Guess I don't have to rewrite expkv :)

@Skillmon Doesn't surprise me

@JosephWright I wanted to test it anyway :)

GIT IS TEH FUTURE
4
@DavidCarlisle @JosephWright ^^ :)

5:36 PM
32

EDIT: This doesn't exist any more. I'm actually working on an archive of CTAN using automated Mercurial repositories for the last two weeks. The CTAN content is mirrored daily and each CTAN package (with exceptions) is committed to its own Mercurial repository. This is currently online as htt...

@JosephWright boo

6:05 PM
@PauloCereda the fact that "this doesn't exist any more" tells us that the Mercurial approach wasn't sustainable. GIT! GIT! GIT!

@Skillmon ooh git <3

@Skillmon I think that Martin didn't have time ...

@JosephWright I guess the real problem was Mercurial, the time argument was just pretence.

@Skillmon :)

@Skillmon bah chemistry :)