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?

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

What allows us to use imaginary numbers?

How would armour (and combat) change if the fighter didn't need to actually wear it?

What are these panels underneath the wing root of a A380?

Setting up a Mathematical Institute of Refereeing?

Is Fourier series a sampled version of Fourier transform?

When does The Truman Show take place?

How can I enter recovery mode (for Mac OS, on an iMac) remotely?

Does writing regular diary entries count as writing practice?

What modifiers are added to the attack and damage rolls of this unique longbow from Waterdeep: Dragon Heist?

How do ultra-stable oscillators for spacecraft work?

How does the Moon's gravity affect Earth's oceans despite Earth's stronger gravitational pull?

Have there ever been other TV shows or Films that told a similiar story to the new 90210 show?

Output the list of musical notes

Is a USB 3.0 device possible with a four contact USB 2.0 connector?

Does the Haste spell's hasted action allow you to make multiple unarmed strikes? Or none at all?

How to train a replacement without them knowing?

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

Has the speed of light ever been measured in vacuum?

What if a restaurant suddenly cannot accept credit cards, and the customer has no cash?

Why does "auf der Strecke bleiben" mean "to fall by the wayside"?

What's the point of writing that I know will never be used or read?

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

Is this bar slide trick shown on Cheers real or a visual effect?



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
    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

















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
    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













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 8 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
    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

















  • 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
    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
















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
7 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
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





@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
    7 hours ago











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

    – Steven B. Segletes
    7 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 7 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
    7 hours ago











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

    – Steven B. Segletes
    7 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
    7 hours ago











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

    – Steven B. Segletes
    7 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
    7 hours ago











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

    – Steven B. Segletes
    7 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
    7 hours ago











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

    – Steven B. Segletes
    7 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
7 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
7 hours ago













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

– Steven B. Segletes
7 hours ago





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

– Steven B. Segletes
7 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

Canceling a color specificationRandomly assigning color to Graphics3D objects?Default color for Filling in Mathematica 9Coloring specific elements of sets with a prime modified order in an array plotHow to pick a color differing significantly from the colors already in a given color list?Detection of the text colorColor numbers based on their valueCan color schemes for use with ColorData include opacity specification?My dynamic color schemes

Invision Community Contents History See also References External links Navigation menuProprietaryinvisioncommunity.comIPS Community ForumsIPS Community Forumsthis blog entry"License Changes, IP.Board 3.4, and the Future""Interview -- Matt Mecham of Ibforums""CEO Invision Power Board, Matt Mecham Is a Liar, Thief!"IPB License Explanation 1.3, 1.3.1, 2.0, and 2.1ArchivedSecurity Fixes, Updates And Enhancements For IPB 1.3.1Archived"New Demo Accounts - Invision Power Services"the original"New Default Skin"the original"Invision Power Board 3.0.0 and Applications Released"the original"Archived copy"the original"Perpetual licenses being done away with""Release Notes - Invision Power Services""Introducing: IPS Community Suite 4!"Invision Community Release Notes

199年 目錄 大件事 到箇年出世嗰人 到箇年死嗰人 節慶、風俗習慣 導覽選單