global variant of csname…endcsnameWhat exactly do csname and endcsname do?global confusionWhat causes the difference appearance by the useages of two “csname…endcsname”?Defining parametric commands - issue with nested csnameExpansion rules for csname/endcsname inside edefNon-alphabet letter in csname …endcsnameUse let with csnameWhat is the difference between somecmd and csname somecmdendcsname?Isn't csname fooendcsname = foo?

Can anyone help me what's wrong here as i can prove 0 = 1?

Can a countable set contain uncountably many infinite subsets such that the symmetric difference of any two such distinct subsets is finite?

Why is the battery jumpered to a resistor in this schematic?

Output with the same length always

Is the Microsoft recommendation to use C# properties applicable to game development?

Adding things to bunches of things vs multiplication

Do I need to start off my book by describing the character's "normal world"?

Why do we use low resistance cables to minimize power losses?

Does writing regular diary entries count as writing practice?

If a person claims to know anything could it be disproven by saying 'prove that we are not in a simulation'?

What is the spellcasting ability of a Barbarian Totem Warrior?

Duplicate and slide edge (rip from boundary)

Why do so many people play out of turn on the last lead?

Did Michelle Obama have a staff of 23; and Melania have a staff of 4?

Would molten tin solidify and coat an organic horn?

What's a good pattern to calculate a variable only when it is used the first time?

6502: is BCD *fundamentally* the same performance as non-BCD?

What is the fastest way to level past 95 in Diablo II?

The space of cusp forms for GL_2 over F_q(T)

What allows us to use imaginary numbers?

When did Bilbo and Frodo learn that Gandalf was a Maia?

Airline power sockets shut down when I plug my computer in. How can I avoid that?

What is the question mark?

May the tower use the runway while an emergency aircraft is inbound?



global variant of csname…endcsname


What exactly do csname and endcsname do?global confusionWhat causes the difference appearance by the useages of two “csname…endcsname”?Defining parametric commands - issue with nested csnameExpansion rules for csname/endcsname inside edefNon-alphabet letter in csname …endcsnameUse let with csnameWhat is the difference between somecmd and csname somecmdendcsname?Isn't csname fooendcsname = foo?






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








9















Please consider the following minimal example:



documentclassarticle
tracingrestores=1

deffoobarfoobar
defbargdeftestAblabb
deffoobarexpandaftergdefcsname testBendcsnameblubb

begindocument
foo

testA
testB

enddocument


The resulting log file contains an entry retaining testB=macro:->blubb, but no corresponding entry for testA. As far as I understand TeX, this means that csname...endcsname defines the macro testA as relax locally, which I immediately after reassign globally as "blubb", which, in turn, adds an retaining-entry on my save_stack.



In my real-world application, i need to be able to define a potentially infinite number of individually named macros using csname-constructions, which now has lead to a stack overflow because of this. (well, maybe not infinite, but definitely more than 80000s…)



My question now is: Is there a way to initialize a csname…endcsname-construct globally to avoid them being stacked on the save-stack? Or some kind of workaround which keeps my save-stack clean?










share|improve this question
























  • luatex a possibility?

    – David Carlisle
    8 hours ago











  • why are you defining so many global variables in a local context?

    – Ulrike Fischer
    8 hours ago











  • xmltex… in a nutshell i'm reading the information from style- and class attributes in html tables and store that information in control sequences to render them later after some calculations and processing. For each cell. Individually.... And we have books that consist only of tables… And no, luatex is not an option: too slow for professional typesetting.

    – Lupino
    8 hours ago











  • I still don't see why this should means that you need groups. Also it sounds as if you would gain a lot by using lua to do the processing.

    – Ulrike Fischer
    8 hours ago











  • @UlrikeFischer As I said, lua(la)tex is not an option. Unfortunately… (and neither is xelatex, pdflatex, and anything other than latex with dvi output and xmltex). Besides, everything works perfectly well within tex: calculating, processing, and rendering. It is just that the "feature" described in the OP prevents scaling: If the tables are too long, TeX bites the dust with a "memory exceeded"-error.

    – Lupino
    7 hours ago

















9















Please consider the following minimal example:



documentclassarticle
tracingrestores=1

deffoobarfoobar
defbargdeftestAblabb
deffoobarexpandaftergdefcsname testBendcsnameblubb

begindocument
foo

testA
testB

enddocument


The resulting log file contains an entry retaining testB=macro:->blubb, but no corresponding entry for testA. As far as I understand TeX, this means that csname...endcsname defines the macro testA as relax locally, which I immediately after reassign globally as "blubb", which, in turn, adds an retaining-entry on my save_stack.



In my real-world application, i need to be able to define a potentially infinite number of individually named macros using csname-constructions, which now has lead to a stack overflow because of this. (well, maybe not infinite, but definitely more than 80000s…)



My question now is: Is there a way to initialize a csname…endcsname-construct globally to avoid them being stacked on the save-stack? Or some kind of workaround which keeps my save-stack clean?










share|improve this question
























  • luatex a possibility?

    – David Carlisle
    8 hours ago











  • why are you defining so many global variables in a local context?

    – Ulrike Fischer
    8 hours ago











  • xmltex… in a nutshell i'm reading the information from style- and class attributes in html tables and store that information in control sequences to render them later after some calculations and processing. For each cell. Individually.... And we have books that consist only of tables… And no, luatex is not an option: too slow for professional typesetting.

    – Lupino
    8 hours ago











  • I still don't see why this should means that you need groups. Also it sounds as if you would gain a lot by using lua to do the processing.

    – Ulrike Fischer
    8 hours ago











  • @UlrikeFischer As I said, lua(la)tex is not an option. Unfortunately… (and neither is xelatex, pdflatex, and anything other than latex with dvi output and xmltex). Besides, everything works perfectly well within tex: calculating, processing, and rendering. It is just that the "feature" described in the OP prevents scaling: If the tables are too long, TeX bites the dust with a "memory exceeded"-error.

    – Lupino
    7 hours ago













9












9








9








Please consider the following minimal example:



documentclassarticle
tracingrestores=1

deffoobarfoobar
defbargdeftestAblabb
deffoobarexpandaftergdefcsname testBendcsnameblubb

begindocument
foo

testA
testB

enddocument


The resulting log file contains an entry retaining testB=macro:->blubb, but no corresponding entry for testA. As far as I understand TeX, this means that csname...endcsname defines the macro testA as relax locally, which I immediately after reassign globally as "blubb", which, in turn, adds an retaining-entry on my save_stack.



In my real-world application, i need to be able to define a potentially infinite number of individually named macros using csname-constructions, which now has lead to a stack overflow because of this. (well, maybe not infinite, but definitely more than 80000s…)



My question now is: Is there a way to initialize a csname…endcsname-construct globally to avoid them being stacked on the save-stack? Or some kind of workaround which keeps my save-stack clean?










share|improve this question














Please consider the following minimal example:



documentclassarticle
tracingrestores=1

deffoobarfoobar
defbargdeftestAblabb
deffoobarexpandaftergdefcsname testBendcsnameblubb

begindocument
foo

testA
testB

enddocument


The resulting log file contains an entry retaining testB=macro:->blubb, but no corresponding entry for testA. As far as I understand TeX, this means that csname...endcsname defines the macro testA as relax locally, which I immediately after reassign globally as "blubb", which, in turn, adds an retaining-entry on my save_stack.



In my real-world application, i need to be able to define a potentially infinite number of individually named macros using csname-constructions, which now has lead to a stack overflow because of this. (well, maybe not infinite, but definitely more than 80000s…)



My question now is: Is there a way to initialize a csname…endcsname-construct globally to avoid them being stacked on the save-stack? Or some kind of workaround which keeps my save-stack clean?







tex-core grouping csname






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked 9 hours ago









LupinoLupino

1,2957 silver badges11 bronze badges




1,2957 silver badges11 bronze badges















  • luatex a possibility?

    – David Carlisle
    8 hours ago











  • why are you defining so many global variables in a local context?

    – Ulrike Fischer
    8 hours ago











  • xmltex… in a nutshell i'm reading the information from style- and class attributes in html tables and store that information in control sequences to render them later after some calculations and processing. For each cell. Individually.... And we have books that consist only of tables… And no, luatex is not an option: too slow for professional typesetting.

    – Lupino
    8 hours ago











  • I still don't see why this should means that you need groups. Also it sounds as if you would gain a lot by using lua to do the processing.

    – Ulrike Fischer
    8 hours ago











  • @UlrikeFischer As I said, lua(la)tex is not an option. Unfortunately… (and neither is xelatex, pdflatex, and anything other than latex with dvi output and xmltex). Besides, everything works perfectly well within tex: calculating, processing, and rendering. It is just that the "feature" described in the OP prevents scaling: If the tables are too long, TeX bites the dust with a "memory exceeded"-error.

    – Lupino
    7 hours ago

















  • luatex a possibility?

    – David Carlisle
    8 hours ago











  • why are you defining so many global variables in a local context?

    – Ulrike Fischer
    8 hours ago











  • xmltex… in a nutshell i'm reading the information from style- and class attributes in html tables and store that information in control sequences to render them later after some calculations and processing. For each cell. Individually.... And we have books that consist only of tables… And no, luatex is not an option: too slow for professional typesetting.

    – Lupino
    8 hours ago











  • I still don't see why this should means that you need groups. Also it sounds as if you would gain a lot by using lua to do the processing.

    – Ulrike Fischer
    8 hours ago











  • @UlrikeFischer As I said, lua(la)tex is not an option. Unfortunately… (and neither is xelatex, pdflatex, and anything other than latex with dvi output and xmltex). Besides, everything works perfectly well within tex: calculating, processing, and rendering. It is just that the "feature" described in the OP prevents scaling: If the tables are too long, TeX bites the dust with a "memory exceeded"-error.

    – Lupino
    7 hours ago
















luatex a possibility?

– David Carlisle
8 hours ago





luatex a possibility?

– David Carlisle
8 hours ago













why are you defining so many global variables in a local context?

– Ulrike Fischer
8 hours ago





why are you defining so many global variables in a local context?

– Ulrike Fischer
8 hours ago













xmltex… in a nutshell i'm reading the information from style- and class attributes in html tables and store that information in control sequences to render them later after some calculations and processing. For each cell. Individually.... And we have books that consist only of tables… And no, luatex is not an option: too slow for professional typesetting.

– Lupino
8 hours ago





xmltex… in a nutshell i'm reading the information from style- and class attributes in html tables and store that information in control sequences to render them later after some calculations and processing. For each cell. Individually.... And we have books that consist only of tables… And no, luatex is not an option: too slow for professional typesetting.

– Lupino
8 hours ago













I still don't see why this should means that you need groups. Also it sounds as if you would gain a lot by using lua to do the processing.

– Ulrike Fischer
8 hours ago





I still don't see why this should means that you need groups. Also it sounds as if you would gain a lot by using lua to do the processing.

– Ulrike Fischer
8 hours ago













@UlrikeFischer As I said, lua(la)tex is not an option. Unfortunately… (and neither is xelatex, pdflatex, and anything other than latex with dvi output and xmltex). Besides, everything works perfectly well within tex: calculating, processing, and rendering. It is just that the "feature" described in the OP prevents scaling: If the tables are too long, TeX bites the dust with a "memory exceeded"-error.

– Lupino
7 hours ago





@UlrikeFischer As I said, lua(la)tex is not an option. Unfortunately… (and neither is xelatex, pdflatex, and anything other than latex with dvi output and xmltex). Besides, everything works perfectly well within tex: calculating, processing, and rendering. It is just that the "feature" described in the OP prevents scaling: If the tables are too long, TeX bites the dust with a "memory exceeded"-error.

– Lupino
7 hours ago










2 Answers
2






active

oldest

votes


















12














Instead of making the csname assignment global, you can make it even more local:



documentclassarticle
tracingrestores=1

deffoobarfoobar
defbargdeftestAblabb
deffoobarbegingroupexpandafterendgroupexpandaftergdefcsname testBendcsnameblubb

begindocument
foo

testA
testB

enddocument


Now the expandafter is executed in a group, so the csname defined testB to relax in a group which ends before gdef starts. So testB is undefined when the global definition occurs which should avoid the retaining entry.






share|improve this answer

























  • I dont quite understand why this is working, but it works. Thanks.

    – Lupino
    7 hours ago











  • Masterful! +1!!

    – Steven B. Segletes
    7 hours ago


















6














I don't know squat about (La)TeX stacks (other than stackengine, LOL), but if the goal is to avoid having the csname inside a def...



Expand the csname before executing the outer def.



documentclassarticle
tracingrestores=1

deffoobarfoobar
defbargdeftestAblabb
expandafterdefexpandafterfoobarexpandafterexpandaftergdefcsname testBendcsnameblubb

begindocument
foo

testA
testB

enddocument





share|improve this answer

























  • good trick, but I expect that's cheating, as the OP would probably need 80000 top level instances of that in the stated use case. (+1anyway:-)

    – David Carlisle
    8 hours ago











  • Gaining that extra-level of depth (height?), actually helps for most of my cases, but not for all :/ Am I assuming correctly that i would need one level of expandafter for each "layer" of embeded macro? That woudl be bad, because foo could itself be embedded in another macro, or not. And since I'm using (forced to use) xmltex, i probably never will reach "real" top-level with that method… Thanks anyways for the quick reply.

    – Lupino
    8 hours ago











  • @Lupino As I said, I don't profess to understand what is under TeX's hood, such as stacks. However, if the csname is the issue, you would not need additional layers of expandafter...only on the layer employing the csname. If, on the other hand, the issue is one of def vs. gdef, then I am not sure. But if David thinks I am cheating, I probably am.

    – Steven B. Segletes
    8 hours ago











  • @Lupino The key would be if you can think of a problem case that uses no csnames...

    – Steven B. Segletes
    8 hours ago






  • 1





    @StevenB.Segletes If i use defbazexpandafterdefexpandafterfoobarexpandafterexpandaftergdefcsname testBendcsnameblubb and later bazfoo i would need to extend the expandafters outwards to defbaz to raise the csname to the same level as my call to testB, otherwise i have the same problem as before…

    – Lupino
    7 hours ago














Your Answer








StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "85"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f504501%2fglobal-variant-of-csname-endcsname%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























2 Answers
2






active

oldest

votes








2 Answers
2






active

oldest

votes









active

oldest

votes






active

oldest

votes









12














Instead of making the csname assignment global, you can make it even more local:



documentclassarticle
tracingrestores=1

deffoobarfoobar
defbargdeftestAblabb
deffoobarbegingroupexpandafterendgroupexpandaftergdefcsname testBendcsnameblubb

begindocument
foo

testA
testB

enddocument


Now the expandafter is executed in a group, so the csname defined testB to relax in a group which ends before gdef starts. So testB is undefined when the global definition occurs which should avoid the retaining entry.






share|improve this answer

























  • I dont quite understand why this is working, but it works. Thanks.

    – Lupino
    7 hours ago











  • Masterful! +1!!

    – Steven B. Segletes
    7 hours ago















12














Instead of making the csname assignment global, you can make it even more local:



documentclassarticle
tracingrestores=1

deffoobarfoobar
defbargdeftestAblabb
deffoobarbegingroupexpandafterendgroupexpandaftergdefcsname testBendcsnameblubb

begindocument
foo

testA
testB

enddocument


Now the expandafter is executed in a group, so the csname defined testB to relax in a group which ends before gdef starts. So testB is undefined when the global definition occurs which should avoid the retaining entry.






share|improve this answer

























  • I dont quite understand why this is working, but it works. Thanks.

    – Lupino
    7 hours ago











  • Masterful! +1!!

    – Steven B. Segletes
    7 hours ago













12












12








12







Instead of making the csname assignment global, you can make it even more local:



documentclassarticle
tracingrestores=1

deffoobarfoobar
defbargdeftestAblabb
deffoobarbegingroupexpandafterendgroupexpandaftergdefcsname testBendcsnameblubb

begindocument
foo

testA
testB

enddocument


Now the expandafter is executed in a group, so the csname defined testB to relax in a group which ends before gdef starts. So testB is undefined when the global definition occurs which should avoid the retaining entry.






share|improve this answer













Instead of making the csname assignment global, you can make it even more local:



documentclassarticle
tracingrestores=1

deffoobarfoobar
defbargdeftestAblabb
deffoobarbegingroupexpandafterendgroupexpandaftergdefcsname testBendcsnameblubb

begindocument
foo

testA
testB

enddocument


Now the expandafter is executed in a group, so the csname defined testB to relax in a group which ends before gdef starts. So testB is undefined when the global definition occurs which should avoid the retaining entry.







share|improve this answer












share|improve this answer



share|improve this answer










answered 8 hours ago









Marcel KrügerMarcel Krüger

15.1k1 gold badge18 silver badges38 bronze badges




15.1k1 gold badge18 silver badges38 bronze badges















  • I dont quite understand why this is working, but it works. Thanks.

    – Lupino
    7 hours ago











  • Masterful! +1!!

    – Steven B. Segletes
    7 hours ago

















  • I dont quite understand why this is working, but it works. Thanks.

    – Lupino
    7 hours ago











  • Masterful! +1!!

    – Steven B. Segletes
    7 hours ago
















I dont quite understand why this is working, but it works. Thanks.

– Lupino
7 hours ago





I dont quite understand why this is working, but it works. Thanks.

– Lupino
7 hours ago













Masterful! +1!!

– Steven B. Segletes
7 hours ago





Masterful! +1!!

– Steven B. Segletes
7 hours ago













6














I don't know squat about (La)TeX stacks (other than stackengine, LOL), but if the goal is to avoid having the csname inside a def...



Expand the csname before executing the outer def.



documentclassarticle
tracingrestores=1

deffoobarfoobar
defbargdeftestAblabb
expandafterdefexpandafterfoobarexpandafterexpandaftergdefcsname testBendcsnameblubb

begindocument
foo

testA
testB

enddocument





share|improve this answer

























  • good trick, but I expect that's cheating, as the OP would probably need 80000 top level instances of that in the stated use case. (+1anyway:-)

    – David Carlisle
    8 hours ago











  • Gaining that extra-level of depth (height?), actually helps for most of my cases, but not for all :/ Am I assuming correctly that i would need one level of expandafter for each "layer" of embeded macro? That woudl be bad, because foo could itself be embedded in another macro, or not. And since I'm using (forced to use) xmltex, i probably never will reach "real" top-level with that method… Thanks anyways for the quick reply.

    – Lupino
    8 hours ago











  • @Lupino As I said, I don't profess to understand what is under TeX's hood, such as stacks. However, if the csname is the issue, you would not need additional layers of expandafter...only on the layer employing the csname. If, on the other hand, the issue is one of def vs. gdef, then I am not sure. But if David thinks I am cheating, I probably am.

    – Steven B. Segletes
    8 hours ago











  • @Lupino The key would be if you can think of a problem case that uses no csnames...

    – Steven B. Segletes
    8 hours ago






  • 1





    @StevenB.Segletes If i use defbazexpandafterdefexpandafterfoobarexpandafterexpandaftergdefcsname testBendcsnameblubb and later bazfoo i would need to extend the expandafters outwards to defbaz to raise the csname to the same level as my call to testB, otherwise i have the same problem as before…

    – Lupino
    7 hours ago
















6














I don't know squat about (La)TeX stacks (other than stackengine, LOL), but if the goal is to avoid having the csname inside a def...



Expand the csname before executing the outer def.



documentclassarticle
tracingrestores=1

deffoobarfoobar
defbargdeftestAblabb
expandafterdefexpandafterfoobarexpandafterexpandaftergdefcsname testBendcsnameblubb

begindocument
foo

testA
testB

enddocument





share|improve this answer

























  • good trick, but I expect that's cheating, as the OP would probably need 80000 top level instances of that in the stated use case. (+1anyway:-)

    – David Carlisle
    8 hours ago











  • Gaining that extra-level of depth (height?), actually helps for most of my cases, but not for all :/ Am I assuming correctly that i would need one level of expandafter for each "layer" of embeded macro? That woudl be bad, because foo could itself be embedded in another macro, or not. And since I'm using (forced to use) xmltex, i probably never will reach "real" top-level with that method… Thanks anyways for the quick reply.

    – Lupino
    8 hours ago











  • @Lupino As I said, I don't profess to understand what is under TeX's hood, such as stacks. However, if the csname is the issue, you would not need additional layers of expandafter...only on the layer employing the csname. If, on the other hand, the issue is one of def vs. gdef, then I am not sure. But if David thinks I am cheating, I probably am.

    – Steven B. Segletes
    8 hours ago











  • @Lupino The key would be if you can think of a problem case that uses no csnames...

    – Steven B. Segletes
    8 hours ago






  • 1





    @StevenB.Segletes If i use defbazexpandafterdefexpandafterfoobarexpandafterexpandaftergdefcsname testBendcsnameblubb and later bazfoo i would need to extend the expandafters outwards to defbaz to raise the csname to the same level as my call to testB, otherwise i have the same problem as before…

    – Lupino
    7 hours ago














6












6








6







I don't know squat about (La)TeX stacks (other than stackengine, LOL), but if the goal is to avoid having the csname inside a def...



Expand the csname before executing the outer def.



documentclassarticle
tracingrestores=1

deffoobarfoobar
defbargdeftestAblabb
expandafterdefexpandafterfoobarexpandafterexpandaftergdefcsname testBendcsnameblubb

begindocument
foo

testA
testB

enddocument





share|improve this answer













I don't know squat about (La)TeX stacks (other than stackengine, LOL), but if the goal is to avoid having the csname inside a def...



Expand the csname before executing the outer def.



documentclassarticle
tracingrestores=1

deffoobarfoobar
defbargdeftestAblabb
expandafterdefexpandafterfoobarexpandafterexpandaftergdefcsname testBendcsnameblubb

begindocument
foo

testA
testB

enddocument






share|improve this answer












share|improve this answer



share|improve this answer










answered 8 hours ago









Steven B. SegletesSteven B. Segletes

168k9 gold badges214 silver badges435 bronze badges




168k9 gold badges214 silver badges435 bronze badges















  • good trick, but I expect that's cheating, as the OP would probably need 80000 top level instances of that in the stated use case. (+1anyway:-)

    – David Carlisle
    8 hours ago











  • Gaining that extra-level of depth (height?), actually helps for most of my cases, but not for all :/ Am I assuming correctly that i would need one level of expandafter for each "layer" of embeded macro? That woudl be bad, because foo could itself be embedded in another macro, or not. And since I'm using (forced to use) xmltex, i probably never will reach "real" top-level with that method… Thanks anyways for the quick reply.

    – Lupino
    8 hours ago











  • @Lupino As I said, I don't profess to understand what is under TeX's hood, such as stacks. However, if the csname is the issue, you would not need additional layers of expandafter...only on the layer employing the csname. If, on the other hand, the issue is one of def vs. gdef, then I am not sure. But if David thinks I am cheating, I probably am.

    – Steven B. Segletes
    8 hours ago











  • @Lupino The key would be if you can think of a problem case that uses no csnames...

    – Steven B. Segletes
    8 hours ago






  • 1





    @StevenB.Segletes If i use defbazexpandafterdefexpandafterfoobarexpandafterexpandaftergdefcsname testBendcsnameblubb and later bazfoo i would need to extend the expandafters outwards to defbaz to raise the csname to the same level as my call to testB, otherwise i have the same problem as before…

    – Lupino
    7 hours ago


















  • good trick, but I expect that's cheating, as the OP would probably need 80000 top level instances of that in the stated use case. (+1anyway:-)

    – David Carlisle
    8 hours ago











  • Gaining that extra-level of depth (height?), actually helps for most of my cases, but not for all :/ Am I assuming correctly that i would need one level of expandafter for each "layer" of embeded macro? That woudl be bad, because foo could itself be embedded in another macro, or not. And since I'm using (forced to use) xmltex, i probably never will reach "real" top-level with that method… Thanks anyways for the quick reply.

    – Lupino
    8 hours ago











  • @Lupino As I said, I don't profess to understand what is under TeX's hood, such as stacks. However, if the csname is the issue, you would not need additional layers of expandafter...only on the layer employing the csname. If, on the other hand, the issue is one of def vs. gdef, then I am not sure. But if David thinks I am cheating, I probably am.

    – Steven B. Segletes
    8 hours ago











  • @Lupino The key would be if you can think of a problem case that uses no csnames...

    – Steven B. Segletes
    8 hours ago






  • 1





    @StevenB.Segletes If i use defbazexpandafterdefexpandafterfoobarexpandafterexpandaftergdefcsname testBendcsnameblubb and later bazfoo i would need to extend the expandafters outwards to defbaz to raise the csname to the same level as my call to testB, otherwise i have the same problem as before…

    – Lupino
    7 hours ago

















good trick, but I expect that's cheating, as the OP would probably need 80000 top level instances of that in the stated use case. (+1anyway:-)

– David Carlisle
8 hours ago





good trick, but I expect that's cheating, as the OP would probably need 80000 top level instances of that in the stated use case. (+1anyway:-)

– David Carlisle
8 hours ago













Gaining that extra-level of depth (height?), actually helps for most of my cases, but not for all :/ Am I assuming correctly that i would need one level of expandafter for each "layer" of embeded macro? That woudl be bad, because foo could itself be embedded in another macro, or not. And since I'm using (forced to use) xmltex, i probably never will reach "real" top-level with that method… Thanks anyways for the quick reply.

– Lupino
8 hours ago





Gaining that extra-level of depth (height?), actually helps for most of my cases, but not for all :/ Am I assuming correctly that i would need one level of expandafter for each "layer" of embeded macro? That woudl be bad, because foo could itself be embedded in another macro, or not. And since I'm using (forced to use) xmltex, i probably never will reach "real" top-level with that method… Thanks anyways for the quick reply.

– Lupino
8 hours ago













@Lupino As I said, I don't profess to understand what is under TeX's hood, such as stacks. However, if the csname is the issue, you would not need additional layers of expandafter...only on the layer employing the csname. If, on the other hand, the issue is one of def vs. gdef, then I am not sure. But if David thinks I am cheating, I probably am.

– Steven B. Segletes
8 hours ago





@Lupino As I said, I don't profess to understand what is under TeX's hood, such as stacks. However, if the csname is the issue, you would not need additional layers of expandafter...only on the layer employing the csname. If, on the other hand, the issue is one of def vs. gdef, then I am not sure. But if David thinks I am cheating, I probably am.

– Steven B. Segletes
8 hours ago













@Lupino The key would be if you can think of a problem case that uses no csnames...

– Steven B. Segletes
8 hours ago





@Lupino The key would be if you can think of a problem case that uses no csnames...

– Steven B. Segletes
8 hours ago




1




1





@StevenB.Segletes If i use defbazexpandafterdefexpandafterfoobarexpandafterexpandaftergdefcsname testBendcsnameblubb and later bazfoo i would need to extend the expandafters outwards to defbaz to raise the csname to the same level as my call to testB, otherwise i have the same problem as before…

– Lupino
7 hours ago






@StevenB.Segletes If i use defbazexpandafterdefexpandafterfoobarexpandafterexpandaftergdefcsname testBendcsnameblubb and later bazfoo i would need to extend the expandafters outwards to defbaz to raise the csname to the same level as my call to testB, otherwise i have the same problem as before…

– Lupino
7 hours ago


















draft saved

draft discarded
















































Thanks for contributing an answer to TeX - LaTeX Stack Exchange!


  • Please be sure to answer the question. Provide details and share your research!

But avoid


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f504501%2fglobal-variant-of-csname-endcsname%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

ParseJSON using SSJSUsing AMPscript with SSJS ActivitiesHow to resubscribe a user in Marketing cloud using SSJS?Pulling Subscriber Status from Lists using SSJSRetrieving Emails using SSJSProblem in updating DE using SSJSUsing SSJS to send single email in Marketing CloudError adding EmailSendDefinition using SSJS

Кампала Садржај Географија Географија Историја Становништво Привреда Партнерски градови Референце Спољашње везе Мени за навигацију0°11′ СГШ; 32°20′ ИГД / 0.18° СГШ; 32.34° ИГД / 0.18; 32.340°11′ СГШ; 32°20′ ИГД / 0.18° СГШ; 32.34° ИГД / 0.18; 32.34МедијиПодациЗванични веб-сајту

19. јануар Садржај Догађаји Рођења Смрти Празници и дани сећања Види још Референце Мени за навигацијуу