Overleaf has an in-person meeting this week. I wouldn't ever have expected a speaker here to ask the question: "How many of you have pinapple on pizza?"
I understand that key-value pairs as defined using \keys_define:nn are something very similar to property lists. Is this understanding right? Because, I found a striking difference: keys can have no value, but properties in prop lists need to have one. Example case: I want to store a token list to use with \keys_set:nn. If all keys have values, I can use a prop, but if one key has no value, I would need to store as tl. Is this intended?
@JasperHabicht your assessment is correct, props are not really key=value, and yes this difference is deliberate. Another difference is that prop is unordered, while key=value input might be ordered (for instance the transformations of graphicx can yield order-dependent results). There is a function to serialise prop back to key=value
@JasperHabicht you could also parse into prop (storing a novalue mark), and serialising back to token list. But beware that you might lose information this way.
@Skillmon Right, I actually don't want to make things too complicated. I just felt that using a simple tl would maybe not the right thing to store keys into. But considering that there is not dedicated data type, it might well be fine.
@JasperHabicht yes, as I said, either use tl or clist, depends on what you want to do with it. If you only store the data to forward it later on, then a tl is fine, if you need some mapping, I'd use a clist because I can then use \clist_step_.....
@JosephWright Well, but a user input such as keyA=valueA, keyB will raise an error if fed to \prop_set_from_keyval:Nn for example, because the = is missing
@JosephWright Maybe I did not express it correctly =)
@Skillmon I know - there are different ways of approaching this - I mean more that 'keys as set up by l3keys always have values: \keyval_parse: doesn't have that starting point
@JasperHabicht Yeah, that shouldn't happen ... clist are a bit of an outlier, but otherwise I'd expect 'user level' parsing separate from data structure setiup
@JosephWright But think I get what you mean. The less flexible a data type is, the less likely it should be exposed to the user? So, prop and seq are examples for non-user types? They could store data, but it should be properly parsed ny the package or class.
@samcarter yes I justsaw that (as it popped into my notifications thing this morning) an answer would look nicer once we release latex-dev and then you won't need any expl3 code just \QueryFiles{*.jpg}{\includegraphics{#1}}
@yo' what ask?, isn't "everyone" the known answer?
@cis no, there are some answers on site making that sort of thing with unicode tree drawing characters and/or tikz but nothing really with standard table | and \cline don't really line up the way you'd want
@DavidCarlisle I think you mean this unicode-stuff. I created some things with that in the last time, but never a table in a document. But I could try Mmmhh...
You can use the symbols, if available on the keyboard, or the macros.
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{pmboxdraw}
\usepackage{newunicodechar}
\newunicodechar{└}{\textSFii}
\newunicodechar{├}{\textSFviii}
\newunicodechar{─}{\textSFx}
\begin{...
@AlexG never. it's not deprecated as in "will be removed" just that if \expanded had been added two decades earlier most things x would have been e so we are using e to lead by example
@mickep it was added to an unreleased version of pdftex in the time of the dodos and in luatex since the start it got added to pdftex/ptex/xetex/... in er.. 2018 or so I'd have to check
@JosephWright still incorrect, because an empty value is something else than picking up a default value, which you lose if you simply treat it like an empty value during sequencing a prop.
I've been gone for a while, and since I've come back, when I look at the review queues and want to come back to the main q/a page, the nice list of options (used to include "questions") isn't there any more. Was this announced, or did it just happen silently? (I think it was a bad decision. Not at all friendly.)