-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
The package doesn't provide means for deciding whether properties are to be maintained globally or locally #16
Comments
allocations of properties with That |
Now that I have taken a closer look at the code of the zref package, I think the attempt of defining a property within a local scope is not a design flaw related to the user's intended general way of handling certain data, but is a coding error related to disregarding some technical peculiarities of TeX itself which limit the ways of how zref itself could be implemented at all. I should have guessed right away how matters can be, but sometimes I am not in the condition for making good guesses. Thus I wish to apologize for having raised at all the matter of restricting the defining of properties to a local scope. You know about the details, of course, but maybe other people are reading along who stumble across the problem: Seems the user documentation of zref does not explicitly point out: With the LaTeX 2e kernel cross referencing commands like But with zref the being defined of a property is a prerequisite not only for assigning values to it later in the current LaTeX run, but also
The package also provides methods for doing the above mentioned things which are based on expansion only. With zref's data structure schema this in turn requires an (internal) extraction function specific to that property to be available along with each property at those moments when one of the above mentioned things is to be done with it. (The user usually doesn't need to cope with extraction functions). As extraction functions are defined along with properties, extraction functions are missing during the LaTeX run in these moments in time where properties are not defined yet. In the token sequence consisting of the data stored as a zref label, the presence of the value that a particular property had at some moment in time during the previous LaTeX run is indicated by the presence of a control word token whose name corresponds to the name of the property in question. Thus the desire for expansion based methods leads to the problem of checking only by means of expansion whether a token sequence contains a particular control word token in such a way that it is not enclosed in curly braces/in such a way that it is not placed somewhere between an explicit character token of category 1 and a matching explicit character token of category 2.
Taking the fact that properties and their defaults are defined in terms of
Indeed.This, however, does not contradict the statement that the possibility of a property also being the "source" is nice. |
The package doesn't provide means for deciding whether properties are to be maintained (initializing via \zref@newprop, changing values via \zref@setcurrent) globally or locally.
Most of the time I would like a command like \zref@setcurrent to act globally when changing values of properties from within environments.
Most of the time I would like a command like \zref@newprop to introduce new properties and their defaults globally.
But effects of \zref@setcurrent and \zref@newprop seem in any case to be restricted to the current scope, which may be a local scope.
The text was updated successfully, but these errors were encountered: