GithubHelp home page GithubHelp logo

Comments (9)

FrankMittelbach avatar FrankMittelbach commented on June 23, 2024 2

Something to contemplate, for sure (and maybe decide against it), but "n" doesn't mean no expansion, it just mean no expansion before calling the base form of the command and the base form then may do all kind of expansions on its own (e.g., \int_set:Nn etc). hooks, sockets and I guess also properties are of the kind where automatic expansion is natural (and happens in fact down the road where the argument is used to make up internal csnames which is typical for complex "named" types. As I said the "prop" type is different, there whatever you feed in becomes a key unchanged and that "kind of" makes sense, but that key is not a complex type and not intended for anything other than retrival from the prop.

It guess it needs looking at case by case, but complex, named types have the tendency that the name should be a simple ascii string with a clear set of allowed characters and as such expansion towards that at some point is the norm rather than the exception. An inthat case make the "n" expand directly in the base command saves a lot of hassle imho. But I guess something to think about and discuss further.

from latex3.

josephwright avatar josephwright commented on June 23, 2024 1

Just e-type variants to add? No problem ...

from latex3.

agrahn avatar agrahn commented on June 23, 2024 1

To be honest, I think it would be OK if such arguments generally do e-type expansion because right now anything other than string would be invalid syntax at the moment.

I would prefer this behaviour.

from latex3.

u-fischer avatar u-fischer commented on June 23, 2024

yes, I agree, some e-variants would be useful.

from latex3.

FrankMittelbach avatar FrankMittelbach commented on June 23, 2024

To be honest, I think it would be OK if such arguments generally do e-type expansion because right now anything other than string would be invalid syntax at the moment, but I'm also OK with just adding the extra decorations.

from latex3.

josephwright avatar josephwright commented on June 23, 2024

@FrankMittelbach Not sure I follow: the name at the TeX end could be \foo and that would be fine, surely? It's just a label. But I've no real issue in changing behaviour if we feel that's useful on balance.

from latex3.

josephwright avatar josephwright commented on June 23, 2024

OK, I'll make it so: checkin later today.

from latex3.

FrankMittelbach avatar FrankMittelbach commented on June 23, 2024

@FrankMittelbach Not sure I follow: the name at the TeX end could be \foo and that would be fine, surely? It's just a label. But I've no real issue in changing behaviour if we feel that's useful on balance.

in my opinion that is (barely) okay for the keys on the prop type but the object names on other types are very regularly used in code to build substructures and it is basically a mess if you end up with \foo in the middle of a csname that looks like a command when displayed but is effectively a string. In my opinion such names such be fairly well regulated ... and I'm very much for duck typing in that respect. It is a bit like "can an environment contain | < > % \ what have you in its name" ... technically it can (for some of them) but the documented syntax (for good reasons) is much more restrictive, same with hooks and hook labels etc. And I think pdf objects fall into the same category. Down the road it will simplify usage a lot. (my 2 cents after midnight)

from latex3.

u-fischer avatar u-fischer commented on June 23, 2024

I quite agree that if there is a command in the name I want to expand that, but would it be in line with similar cases if we change the behaviour here and expand even if the argument is n? E.g. hook names, socket names, property names?

from latex3.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.