« first day (4245 days earlier)      last day (681 days later) » 

5:15 AM
Happy Birthday, @PauloCereda!
6
 
 
1 hour later…
6:25 AM
@JosephWright why are my braces so loose? tex.stackexchange.com/a/122842/117050
 
@Skillmon :)
 
6:54 AM
@FaheemMitha sorry, late to the party, indeed your question is a dupe (even though I answered it -- but my answer contains a list of packages that have predictable brace stripping; in which one package is deliberately missing: ltxkeys has predictable (but wrong) brace stripping as well: It doesn't strip any braces, meaning it's impossible to pass in a value that contains a comma that isn't surrounded by braces, oh and it used to break LaTeX completely but nowadays doesn't even load).
@FaheemMitha oh, and there used to be a package (pgfkeyx iirc.) that used to "fix" the wrong brace stripping and category code fragility of pgfkeys by the author of ltxkeys, but it isn't maintained and no longer compatible with pgfkeys.
 
@CarLaTeX roast dinner to celebrate!
 
7:14 AM
@Skillmon Thank you for your answer. I haven't looked properly at it. But if pgfkeys has such issues, has anyone actually reported it? And if so, do you know the link?
 
@DavidCarlisle You're mean!
 
@Skillmon I think it's best to treat keyval brace stripping as correct by definition and judge imitations of that package accordingly
Jun 29, 2017 at 16:15, by Paulo Cereda
@DavidCarlisle you are not mean :)
 
@FaheemMitha It's a feature
@DavidCarlisle :)
@DavidCarlisle @Skillmon and I both have what I suspect we would call 'reference' implementations :)
 
7:37 AM
user image
8
@PauloCereda ^^^
 
7:52 AM
¡Feliz cumpleaños! @PauloCereda
4
 
@FaheemMitha the maintainers are aware, but there is nothing they can do for backwards compatibility.
 
Grattis på födelsedagen @PauloCereda!
5
 
@Skillmon 'Tell people to use l3keys/expkv' ;)
 
@JosephWright which I did :)
 
@Skillmon Sounds like a plan to me
@DavidCarlisle I see textcase is no more ;)
 
7:55 AM
@JosephWright got the update yesterday
 
@Skillmon Yup - I just updated this morning
@Skillmon Going to be part of my TUG talk
 
@JosephWright yeah, saw your abstract here.
 
@JosephWright well it's hopefully still there, just different
 
@DavidCarlisle is the new code a line longer than indentfirst?
 
@Skillmon You considered a talk? Keyval-related, perhaps?
 
7:58 AM
@JosephWright I was going to close as fixed in current release but I could answer?
 
@Skillmon My one will be the TUG2015 one + 'now it works in pdfTeX, and it's what's being used for \MakeUppercase'
@DavidCarlisle That's an answer, no?
 
@PauloCereda Alles Gute zu deinem Geburtstag!
 
@DavidCarlisle Yes, but realistically we could for example start updating answers to say '2022-06-01 onward: just use \MakeUppercase'
 
@JosephWright I guess the most important keyval-related changes are yours to present, aren't they? expkv is just a small package only few use, changing the package option code is bound to have much more influence.
 
@Skillmon yes it's two \let so 6 tokens so 50% bigger than indentfirst
 
8:00 AM
@Skillmon That's true, but I think a talk surveying, looking at performance, etc., might be good - there are reasons for picking keyval, l3keys, expkv and perhaps pgfkeys, depending on the context
@DavidCarlisle :)
@Skillmon I guess I could talk about the option handling: hadn't thought of that
 
@JosephWright I wanted to mention it in my second talk (and even tested it yesterday a bit). How do one get a documentation for it?
 
@JosephWright well, my biggest interest is how to hack into it so that other option packages also profit from the new mechanism to circumvent option clashes :P
 
@UlrikeFischer I think at the moment it's only in source2e - I guess should be in clsguide
@Skillmon :)
 
@JosephWright texdoc source2e is fine.
 
8:21 AM
0
A: MakeTextUppercase broke for cyrillic

David CarlisleIn LaTeX releases starting from June 2022, \MakeUppercase is an improved version of the \MakeTextUppercase command provided by textcase: it avoids math in the same way but has improved Unicode support, being based on the expl3 case changing functions. A new version of textcase has been relased th...

 
@DavidCarlisle please say that you didn't change the documentation, so that it now has the best documentation/code length ratio of all!
@JosephWright should be clsguide, documentation on kernel stuff is currently very fragmented unfortunately
 
@Skillmon I added to the doc:-)
 
@Skillmon I've raised on the team list - I will see where people want it
@Skillmon You could volunteer to put in a load of PRs to tidy up ;)
 
@JosephWright clsguide3 would match usrguide3 (but I think usrguide3 would be better merged into usrguide I'll look at email...
 
@DavidCarlisle Yes that's a possible
@DavidCarlisle One for a team meeting I suspect
 
8:50 AM
@JosephWright and when should I do this? Currently I don't even manage to get a rewrite of expkv's documentation done (I intend to bundle the different packages up and provide a single documentation for them, plus adding some auxiliary package to reduce code duplication -- and the rewrite is ongoing since I think January...)
I also didn't start working on the code PRs I still got open (and most likely forgot about quite a few which were on my imaginary todo-list)
 
@Skillmon schedule it for after the longtable v5 release
 
@JosephWright Is that the official word on the topic?
:61367324 I thought PGF/TikZ was on Sourceforge.
And it's shown as fixed, too. Is this the same issue? It looks like it to me, but I often get these things wrong.
 
@CarLaTeX awww thank you <3
@DavidCarlisle oh no
@UlrikeFischer awww thanks so much <3
 
birthday breakfast
 
@Rmano muchas gracias, señor squirrel <3
@DavidCarlisle oh no
@mickep awww thanks <3
@samcarter aww dankeschon! <3
 
8:58 AM
@samcarter The current version of the manual mentions GitHub. Specifically, it says
 
@FaheemMitha see support and issue links at ctan.org/pkg/pgf
 
> If that does not solve the problem, try having a look at the GitHub development page for pgf and TikZ (see the title of this document). Perhaps someone has already reported a similar problem and someone has found a solution.
On pg 29. Further down it talks about bug reports, but does not mention where it should go. At the end of that section it says
> As a last resort you can try to email me (Till Tantau) or, if the problem concerns the mathematical engine, Mark Wibrow.
It seems likely that's out of date. Is Tantau even working on this project now?
@DavidCarlisle Yes, I see. OK.
 
@FaheemMitha in practice, no, but he has not formally stopped
 
@DavidCarlisle Oh.
 
Reading ltnews35 about all great news. Wonder if "\usepackage{doc}[=v2]" is a typo, or if the key really should be entered that way.
 
9:13 AM
@mickep It's correct, it's the "rollback" thing in action...
 
@Rmano Oh, then it is just me not being used to nothing being before the =.
@Rmano Thanks! It is everywhere! :)
 
9:25 AM
@mickep It's not supposed to be a keyval with empty key, it's supposed to indicate that you are requesting an exactly the specified version and not just a minimal version.
 
@MarcelKrüger Yes, I understand. I just never before saw those = without anything in front of them.
 
@MarcelKrüger ooh
maybe we could go to the future
\usepackage{siunitx}[=v4]
 
@PauloCereda well, in theory we can, the labels for the =<something> syntax are author-defined, so I could release a package that is currently v3 but also include a prerelease and exploit the rollback syntax for a rollforward
 
@Skillmon OOH
 
@PauloCereda you could also give meaningful names to your version-keys, e.g., you could say \usepackage{animal}[=duck] for the duck-release and \usepackage{animal}[=anteater] for the anteater-release.
 
9:33 AM
@Skillmon oh my, this is awesome
When Adele meets TeX, rolling in the heap :)
 
@PauloCereda Only @JosephWright is allowed to use this - he is a timelord
 
@samcarter ooh
@samcarter and has three hearts
 
@PauloCereda <3 <3 <3
 
@samcarter ooh
 
9:51 AM
@PauloCereda I thought it was two?!
 
@Skillmon oh I actually don't remember, is it two? I might be thinking of that alien bloke from 3rd Rock From The Sun....
 
@PauloCereda I'm not sure, too. It's been a while...
 
@Skillmon just googled it! You are absolutely right: two hearts!
Rabbits are very good at Doctor Who. :)
 
yo'
10:16 AM
@MarcelKrüger Oh cool, thank you! (Good that I have The TeXbook at home :-) )
 
@yo' ooh
 
10:54 AM
@PauloCereda Parabéns, meu caro! Felicidades!
 
@gusbrs Obrigado, meu amigo! <3
 
@PauloCereda I've been using arara these days. :)
 
@yo' This is the one I carry around everyday. It is a bit lighter:
user image
2
 
@gusbrs oh no :)
 
@PauloCereda Oh yes. :) Making my life easier with makeglossaries. And I also learned how to make it play better with AUCTeX.
 
10:57 AM
@gusbrs ooh :)
 
@gusbrs and you managed to get some output?
 
@DavidCarlisle Yes, but mostly in the log file. :)
Btw, what I learned to appease AUCTeX log parsing of the log file is to run all but the last round in draftmode.
 
11:14 AM
@DavidCarlisle no ducks were hurt in the making of the document. :)
 
@PauloCereda /insert ducktape joke here
 
Ops, I meant batchmode above.
 
@Skillmon ooh :)
 
@Skillmon They only get hurt when ripping the tape off. :)
 
Wouldn't it be better to use the new fancy \mathcolor here? tex.stackexchange.com/a/647839/52406
 
11:30 AM
@mickep yes
 
@DavidCarlisle Oh, everybody should read ltnews :)
 
@UlrikeFischer re your texlive list message, you are better off without that package. It causes all sorts of trouble.
2
 
11:50 AM
@DavidCarlisle ;-) I should avoid to open documentations, that causes all sorts of trouble too.
 
@PauloCereda I see your duck has a name ...
 
@PauloCereda Very nice feature!
 
@JosephWright ooh :)
@mickep :)
 
12:16 PM
@JosephWright \DeclareRobustCommand\DuX{D\kern-.0667em\lower-.25ex\hbox{u}\kern-.125emX\@}
 
12:38 PM
LaTeX and external databases, e.g. .csv files - there are packages like datatool and csvsimple that can be used to read/process .csv files directly in the LaTeX run. Are there any papers about what to consider when intending to have read databases directly with LaTeX - e.g. in the design of the data structure, so that workflows both with and without the involvement of (La)TeX do not cause problems?
Or more exotic scenarios like creating a database that is supposed to consist of snippets of LaTeX code, where you have to keep an eye on tokenization and timing and chronological order of expansion - also with regard to hooks and output routines? Probably also covering some basics of database-management and relational algebra? I'm considering writing something about this myself. But if there is already something better than what I could write, my consideration is obsolete.
 
1:07 PM
@UlrichDiez Instead of trying to read stuff directly from LaTeX it self, why not just use an exaternal programme to generate the LaTeX code for you. That might be a lot safer.
 
1:22 PM
@UlrichDiez I found datatool very slow. I use LuaTeX and a Lua database adaptor library. LuaSQL, I think. And SQLite.
Converting from CSV to SQLite can be done by using SQLite's own builtin tools.
 
@PauloCereda only hide pdf or editor. Not both :(
 
@DavidCarlisle ooh
 
1:44 PM
@JosephWright lwg this evening?
 
@DavidCarlisle My diary has that next week .. am I out-by-one?
 
@FaheemMitha Using native libraries in LuaTeX requires shell escape and therefore significantly more trust in the used packages and documents. Especially if you want to share documents with other people it's often better to avoid this. CSV is pretty straight forward to parse directly in Lua and there should also be some libraries available.
 
@MarcelKrüger There are always tradeoffs, yes. I just use LuaTeX for my own personal use.
 
@JosephWright my calenda also has next week but email from Besy on the 13th says "15th June) which was why I asked...
 
@MarcelKrüger Perhaps the LuaTeX people could add LuaSQL to LuaTeX? They seem to have added lots of other things. Most of which I was not aware of till someone pointed them out. And which aren't document or even mentioned in the LuaTeX manual, AFAIK. E.g. (some version of) LPEG.
Alternatively, perhaps use a more fine-grained version of shell-escape which just trusts certain binaries?
 
1:50 PM
@FaheemMitha that is the default setting
 
@DavidCarlisle Third party Lua binaries, to be clear.
Or some suitably blessed Lua binaries, perhaps.
 
@FaheemMitha lpeg gets prominent listing in the luatex manual
 
@DavidCarlisle It does? Let me take another look.
OK. I see it's mentioned in "4.3 LUA modules". There's also the document that comes up with texdoc lualibs.
 
@FaheemMitha It's also mentioned in the Introduction. The lualibs document is about Lua libraries. While they are loaded by default in LaTeX, they are not compiled into the binary and don't contain native code.
 
2:06 PM
You mean:
> We currently use Lua 5.3.*. There are few Lua libraries that we consider part of the core Lua machinery, for instance lpeg. There are additional Lua libraries that interface to the internals of TEX. We also keep the Lua 5.2 bit32 library around.
 
@DavidCarlisle I think yes @JosephWright
 
2:28 PM
@DavidCarlisle now I want to know which package!
 
3:25 PM
@Skillmon Curious like a dodo.
 
3:37 PM
@FaheemMitha that plus:
4.3 LUA modules
Some modules that are normally external to Lua are statically linked in with LuaTEX, because
they offer useful functionality:

‣ lpeg, by Roberto Ierusalimschy, http://www.inf.puc-rio.br/~roberto/lpeg/lpeg.html. This
library is not Unicode-aware, but interprets strings on a byte-per-byte basis. This mainly
means that lpeg.S cannot be used with utf8 characters encoded in more than two bytes, and
thus lpeg.S will look for one of those two bytes when matching, not the combination of the
 
3:50 PM
@PauloCereda -- Joyeux anniversaire!
 
4:02 PM
@barbarabeeton Merci! <3
 
4:13 PM
A mistyped url just lead me to tug.com/shop/displaykites/Bear :)
 
@samcarter You went for displaykittens, didn't you? ;-)
 
@Skillmon Looking at your pgfkeys answer now. As someone who is more familiar with the various key packages than I am, are any of them comparable in functionality with pgfkeys, and if so, which?
 
@mickep :)
 
@Skillmon pgfkeys seems to have quite extensive functionality. That's one reason I'm using it. The other is that, since it's part of PGF/TikZ, it certainly gets plenty of use, so is probably not too buggy. Also, the documentation is part of the PGF/TikZ manual, and is comparatively extensive as these things go. Often TeX package don't have much by way of documentation at all.
 
 
1 hour later…
5:29 PM
@daleif With my own stuff I usually have MariaDB generate files that the LaTeX-side can load via \inputand which provide expl3-property-lists or macro-definitions. But from time to time I see people using datatool/csvsimple and creating csv-files via filecontents* or during the LaTeX-run or the like, whereby in some cases basic rules of database-management/relational algebra
are not obeyed and expansion- and catcode/tokenization-issues arise due to mixing values of quantities, e.g., measured sizes, with LaTeX-code for representing the values of these quantities within the to-be-created LaTeX-document, ....
 
@daleif any idea about coloneqq? ?
 
@DavidCarlisle colonel Q
 
@PauloCereda in the dinning room with the hammer
 
5:44 PM
@DavidCarlisle oh
 
@FaheemMitha Depending on the engine in use etc one might indeed prefer tools/libraries other than datatool etc. What I am after is texts providing guidance in organizing data/databases so that issues due to the peculiarities of TeX/LaTeX are minimized. E.g., from time to time I see people using filecontents* or the like for creating csv-files where within the same data-field values of quantities, e.g., measured sizes, are mixed with LaTeX-code for representing them...
... in the document created via LaTeX. E.g., this morning I witnessed a scenario where a .csv-file produced via filecontents* was copied via macros of the verbatimcopy-package. The copy was edited manually in order to remove all LaTeX-commands for formatting so that the copy could be loaded/processed by gnuplot. (I might have chosen TikZ.) This seemed to work out for the one who did that, but I saw the need of providing guidance in how to organize data when it comes to invoking LaTeX.
 
@DavidCarlisle do you mind registering an issue on mathtools on it, else I'll probably forget
 
@daleif will do, probably also at newtxmath
secret meeting first
 
5:59 PM
@samcarter -- Interesting, but I prefer non-inflatable kites. And have an interesting, well-worn collection. One of my favorites is a Valkyrie, by the Nantucket Kiteman. A yellow delta, with black keel, made of cotton sailcloth, it was very well behaved, and we once had it out well over 600 meters (the creel of kite string held 650 meters). We used to have a wonderful kite-flying site in the city, but Brown built it out with athletic facilities. Sigh.
 
@UlrikeFischer lwg?
@JosephWright ^^
 
@DavidCarlisle I can't connect I always get an error. Will try with the laptop.
 
@UlrikeFischer some people managed after two or three attempts there seems to be issues
 
@DavidCarlisle -- I'm sure, although I no longer have access to the archive that would prove it, that the regular 2-line = is what would have been requested from Unicode. (And that's what's shown by unicode-math.) I wasn't aware of the assignment in mathtools. In my opinion, should be fixed to agree with unicode-math. What's "recognized" by MathML? And what would be a good name for :-?
 
@DavidCarlisle I'm in but don't hear anything ;-(
 
6:10 PM
@barbarabeeton Unicode and mathml have nothing corresponding to :-
 
@DavidCarlisle -- But if it's in mathtools, it must have a recognized meaning. I guess this is a question for @daleif (or Morten).
 
@barbarabeeton mathtools documents it as copied from txfonts and newtxmath documents txfonts was wrong.....
 
@DavidCarlisle -- So just an error in the original txfonts, never corrected? I'm not at all sure how one might track down existing uses in legacy documents.
 
@barbarabeeton thats the question really, deciding it is wrong isn't necessarily same as deciding to change it
 
@DavidCarlisle -- Well, detexify doesn't seem to have either a one-line or two-line "colon-lines" (which I find surprising), so that's no help.
 
6:27 PM
@barbarabeeton I know the problems of vanishing kite-flying sites. As a kid, there was a large field just down the road which was perfect for kite-flying after the harvest in autumn; but then they build houses there. No more kite-flying in the vicinity :(
 
@Skillmon You can add some (or most) of this to your answer for context.
 
6:40 PM
@samcarter -- Try a smaller kite. We've got one called "scrapflake", a hex box about 15cm high. It will lift in a very gentle breeze, and can almost be flown from a spool of nylon or poly thread. (Regular kite string is too heavy, and monofilament tangles, although I've seen one flown from a lightweight flyfishing rod.) The fabric is bright red ripstop, and the struts are delicate bamboo splints. Fun! But too fragile to fly on a beach.
Actually, this is a miniature of a meter-wide "snowvlake", which is a good beach kite.
 
6:56 PM
Hi everyone, I'm using IEEE style and it seems passing [t] [h] to "figure*" has no effect and figures appear in the middle of a page (on their own)
any suggestion?
 
@DavidCarlisle Oh, secret meetings... :-)
 
@CroCo STATUS BYDESIGN
 
@JosephWright not sure what do you mean.
 
@CroCo It's a class for journal submission: if they ignore float placement, it's because it's a design decision
 
7:12 PM
@JosephWright this is what I get
it doesn't look good.
I've seen alot of papers in IEEE place the figures in the top of current page.
Also, there is a huge gap between the two figures* as you can see
 
@CroCo Are you inserting the figures in the same way? Looks very different. (I know nothing about the IEEE style...)
 
@mickep \begin{figure*} \end{figure*}
inside it, I'm using subfloat{}
In the preamble, I see
\ifCLASSOPTIONcompsoc
\usepackage[caption=false, font=normalsize, labelfont=sf, textfont=sf]{subfig}
\else
\usepackage[caption=false, font=footnotesize]{subfig}
\fi
any suggestion!
 
 
1 hour later…
8:49 PM
@DavidCarlisle why does the second \@removeelement error?
\documentclass{article}

\makeatletter

\@removeelement {blub}{}\@unusedoptionlist

\@removeelement {pagecolor={0.5,0.98,0.94}}{}\@unusedoptionlist

\begin{document}
Foo
\end{document}
 
@CroCo for any class figure* comes at the earliest on the next page. So what you show looks expected to me. You can not use [h] with a double column float, but in any case it's usually a bad idea to try to customise float positioning in a journal class, it just annoys the journal production staff and delays production.
@UlrikeFischer you can't make a delimited argument using {
 
@DavidCarlisle so "don't use braces in class options ..."?
 
@UlrikeFischer @UlrikeFischer \expandafter\@remove@eq@value\ tries to maake it a bit safer, so it jus records the opion as pagecolor not pagecolor={0.5,0.98,0.94}
@UlrikeFischer or use classes using the new option handler
 
@DavidCarlisle trissto?
 
@UlrikeFischer modulo a vowel or two
 
8:55 PM
@DavidCarlisle the problem is hyperref. It has an option pagecolor and tries to remove it from the \@unusedoptionlist.
 
@UlrikeFischer but (since last year?) the unused option list should have pagecolor not pagecolor={0.5,0.98,0.94}
 
@DavidCarlisle the list is empty, but hyperref is processing the key. It is from this question: tex.stackexchange.com/q/647885/2388
 
> \@unusedoptionlist=macro:
->pagecolor.
l.4 \show\@unusedoptionlist
                           ]
?
\documentclass[pagecolor={0.5,0.98,0.94}]{article}

\makeatletter
\show\@unusedoptionlist]
\begin{document}


\end{document}
the \@unusedoptionlist is now sanitized for this problem so never has the value part
@UlrikeFischer it should probably use \@remove@eq@value now. I'll look.
 
@DavidCarlisle yes but the content doesn't matter. \@removeelement {pagecolor={0.5,0.98,0.94}}{}\@unusedoptionlist errors regardless of the actual content of the list.
@DavidCarlisle but does that mean that hyperref should not try to remove pagecolor={value..} but only pagecolor? Then it would be an error in kvoptions?
 
@UlrikeFischer yes but pagecolor={0.5,0.98,0.94} will nver be an lemen so can' be removed,need \@removeelement \@remove@eq@value {pagecolor={0.5,0.98,0.94}}{}\@unusedoptionlist with some \expandafter
 
9:05 PM
lemen?
 
@UlrikeFischer welcome to my world, why we gave up gradually adding keyval to the existing option handler, and made a completly new one
@UlrikeFischer element (of the list)
 
@DavidCarlisle ah. Well I don't mind if it isn't removed, currently I only want that it doesn't error when trying to remove it.
 
@UlrikeFischer is hyperref doing this by hand or is the standard opion handler failing? (I can check...)
 
@DavidCarlisle \ProcessKeyvalOptions is failing, so probably kvoptions
 
@UlrikeFischer I'll look....
 
9:13 PM
@DavidCarlisle this here errors too, and it uses the new handler:
\begin{filecontents}{testclasskey.sty}
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{testclasskey}[%
    2022/06/14
    v1
    test class key]

\DeclareKeys
 {
   pagecolor  .code  = {\def\blub{#1}}
 }
\ProcessKeyOptions
\endinput
\end{filecontents}

\documentclass[pagecolor={0.5,0.98,0.94}]{article}

\usepackage{testclasskey}
\begin{document}

\blub
\end{document}
 
9:28 PM
@UlrikeFischer kv version:
\documentclass[pagecolor={0.5,0.98,0.94}]{article}

\makeatletter
\show\@unusedoptionlist

\usepackage{abc}
\begin{document}


\end{document}
where abc.sty is
% warning but no error
% \DeclareOption{pagecolor}{}
% \ProcessOptions

\RequirePackage{kvoptions}
\def\KVO@ProcessKeyvalOptions#1{%
  \let\@tempc\relax
  \let\KVO@temp\@empty
  \ifx\@currext\@clsextension
  \else
    \KVO@GetClassOptionsList
    \ifx\KVO@classoptionslist\relax
    \else
      \@for\KVO@CurrentOption:=\KVO@classoptionslist\do{%
        \@ifundefined{KV@#1@\expandafter\KVO@getkey
                      \KVO@CurrentOption=\@nil}{%
        }{%
          \@ifundefined{KVO@local@#1@\expandafter\KVO@getkey
 
@DavidCarlisle looks good. Now @JosephWright should do the same in the new handler.
 
@UlrikeFischer @DavidCarlisle can just change it :)
 
@JosephWright \clist_remove_all:Nn \@unusedoptionlist {##1} I think?
 
@DavidCarlisle that is what breaks.
 
@UlrikeFischer @JosephWright
\ExplSyntaxOn
\let\__keys_options_package:n \undefined

\cs_generate_variant:Nn \clist_remove_all:Nn {Ne}
\cs_new_protected:Npn \__keys_options_package:n #1
  {
    \clist_map_inline:Nn \@classoptionslist
      {
        \keys_if_exist:neT {#1} { \__keys_remove_equals:n {##1} }
          {
            \clist_put_right:Nn \l__keys_options_clist {##1}
            \clist_remove_all:Ne \@unusedoptionlist {\expandafter\@remove@eq@value##1=\@nil}
          }
      }
  }
\ExplSyntaxOff
\DeclareKeys
 {
 
9:42 PM
@DavidCarlisle You going to change for PL1?
 
testclasskey.sty is e expansion compleely safe here, think it is ....
@JosephWright probably \@remove@eq@value should be an expl3 version rather that coming back to 2e at that point? What would be the l3 key way to get the key name, junking any value?
@JosephWright oh what is \__keys_remove_equals:n ??
 
@DavidCarlisle What you said :)
@DavidCarlisle You remind me that Frank still needs to give the OK on the 'expand the keyname' business
 
@DavidCarlisle @JosephWright it I repair kvoptions then I get a similar error from the \ProcessKeysOptions { myclass } in Denis examples
 
@JosephWright can that easily be refactored to only do \__keys_remove_equals:n once?
 
@DavidCarlisle Not sure what you mean ...
 
9:51 PM
\keys_if_exist:neT {#1} { \__keys_remove_equals:n {##1} }
          {
            \clist_put_right:Nn \l__keys_options_clist {##1}
            \clist_remove_all:Ne \@unusedoptionlist {\__keys_remove_equals:n {##1} }
@JosephWright ^^^ has __keys_remove_equals:n {##1} twice,
@JosephWright maybe that is OK, or could store it in a local or ...
@UlrikeFischer ?
 
@DavidCarlisle try example from tex.stackexchange.com/q/647885/2388 but remove hyperref. It will error at the class keyval handler.
 
@UlrikeFischer OK I see it now., tracing....
@UlrikeFischer oh l3keys2e so almost biut not quite the new handler
 
@DavidCarlisle yes
 
Apr 16 at 12:35, by David Carlisle
@UlrikeFischer not my fault
 
10:22 PM
@DavidCarlisle ;-) I have prepared the ctan upload of kvoptions and will push it (we should rename the branch ...). I can sent it tomorrow to ctan.
 
@UlrikeFischer error in the example pagecolor .code:n = { definecolor{myclass_pagecolor}{rgb}{#1} } } should be \definecolor
\begin{filecontents}[overwrite]{myclass.cls}
\ProvidesExplClass{myclass}{2022-06-15}{0.1}{Class of mine}
\NeedsTeXFormat{LaTeX2e}
\LoadClass { article }

\RequirePackage{l3keys2e}

\let\__keys_latexe_options_class:n\undefined
\cs_new_protected:Npn \__keys_latexe_options_class:n #1
  {
    \cs_if_free:cF { opt@ \@currname . \@currext }
      {
        \keys_if_exist:nnTF {#1} { unknown }
          {
            \clist_put_right:Nv \l__keys_latexe_options_clist
              { opt@ \@currname . \@currext }
 
@DavidCarlisle oh ;-)
 
@JosephWright @UlrikeFischer l3keys2e version
^
 
@DavidCarlisle I wonder how many package options keyval handler there are in the wild. Perhaps @Skillmon has a list ;-)
 
@UlrikeFischer \tracingall waded through dozens of lines of l3 code trace trying to work out where the \ was dropped then finally looked at the test example....
@UlrikeFischer oh didn't we master-main ho-tex at the time? hmmm
 
10:35 PM
@DavidCarlisle not everything obviously, but I can do it tomorrow.
 
10:45 PM
@UlrikeFischer not too many. I can think of KOMA's keyval based stuff, kvoptions, l3keys2e, options, pgfopts, expkv-opt, and I think that's it, the others don't work anymore (and I honestly hope I didn't forget one -- the information is only saved in my brain, which uses a lossy compression)
@FaheemMitha some of this is contained in the documentation of expkv, which includes a (non-exhaustive) list of the key=value parsers available on CTAN and a very brief comparison (among of which is a table that's really interestng -- it contains benchmark results of the different parsers as well as two stability measures, of which only four packages meet all, and of those one is unusable (ltxkeys if you wondered))
(the non-exhaustive criteria being: not based on another parser listed there, and I had to get it to work at some point in time)
@DavidCarlisle thanks, I could finally appreciate your commend :)
 
11:06 PM
@FaheemMitha putting anything against pgfkeys feature wise is a rough ride, especially with the limited set of parsers that get things rightâ„¢. From those three l3keys is likely to be the most tested and feature-comparable to pgfkeys. Compared to l3keys my own expkv lacks key filtering (I just didn't bother to implement an expandable key filter). Also expkv is made a lot more convenient by the accompanying packages expkv-def and expkv-cs (the former provides common key types [...]
[...] comparable to pgfkeys's key handlers or l3keys approach -- the latter provides means to set up expandable macros that take a key=value argument, and also is nice to define very simple key=value interfaces). But what's one of the features that makes pgfkeys so useful in many cases is the design choice to have the key-defining and the key-setting interface be actually the same. That's a choice that both l3keys and expkv don't share with it, [...]
[...] but in both cases you could define a key in your set that allows you to define additional keys. Regarding stability: I'm fairly certain that expkv is well-tested (but you have to trust a single person on this for the most part), and l3keys is used by some of the big packages (fontspec, siunitx, ...), and maintained by the kernel team (and I took some looks on it as well), so should be pretty stable. Oh and both are using unit tests, so that code changes shouldn't break too much.
 

« first day (4245 days earlier)      last day (681 days later) »