Use of noexpand in the implementation of TextOrMath for eTeXWhen to use edef, noexpand, and expandafter?Does noexpand have to be a primitive?Problem with nested noexpand and edefReplacement for unexpanded without eTeX extensionWhy do some arguments in a macro need to be preceded by noexpand?How to use noexpand in an edef?Why six noexpand in a row?How can I use noexpand and unexpanded without appending a space to the unexpanded tokens?How should I /protect this command for use in csname?ifx doesn't treat noexpand as relax

Machine learning testing data

Placement of More Information/Help Icon button for Radio Buttons

Can someone clarify Hamming's notion of important problems in relation to modern academia?

Is it possible to create a QR code using text?

Are British MPs missing the point, with these 'Indicative Votes'?

Why is it a bad idea to hire a hitman to eliminate most corrupt politicians?

Where would I need my direct neural interface to be implanted?

Why was the shrink from 8″ made only to 5.25″ and not smaller (4″ or less)

Standard deduction V. mortgage interest deduction - is it basically only for the rich?

How to show a landlord what we have in savings?

How to compactly explain secondary and tertiary characters without resorting to stereotypes?

Pact of Blade Warlock with Dancing Blade

Rotate ASCII Art by 45 Degrees

How to prevent "they're falling in love" trope

What is an equivalently powerful replacement spell for Yuan-Ti's Suggestion spell?

Do Iron Man suits sport waste management systems?

Different meanings of こわい

Knowledge-based authentication using Domain-driven Design in C#

How to stretch the corners of this image so that it looks like a perfect rectangle?

Implication of namely

Is it "common practice in Fourier transform spectroscopy to multiply the measured interferogram by an apodizing function"? If so, why?

Does Dispel Magic work on Tiny Hut?

How to travel to Japan while expressing milk?

Blending or harmonizing



Use of noexpand in the implementation of TextOrMath for eTeX


When to use edef, noexpand, and expandafter?Does noexpand have to be a primitive?Problem with nested noexpand and edefReplacement for unexpanded without eTeX extensionWhy do some arguments in a macro need to be preceded by noexpand?How to use noexpand in an edef?Why six noexpand in a row?How can I use noexpand and unexpanded without appending a space to the unexpanded tokens?How should I /protect this command for use in csname?ifx doesn't treat noexpand as relax













4















In latexrelease 2015/01/01, there are two implementations of TextOrMath: one for regular
TeX, the other one for eTeX-like engines (more precisely: those which support protected). My question concerns the latter:



protectedexpandafterdefcsname TextOrMathspaceendcsname%
(...) % no problem here
edefTextOrMath#1#2% from latex.ltx
expandafternoexpandcsname TextOrMathspaceendcsname
#1#2


I think I understand well these definitions, however I can't figure out why the edef isn't simply written this way:



edefTextOrMath#1#2% from me
csname TextOrMathspaceendcsname
#1#2


Since the internal TextOrMath<space> macro is protected, what is the point of preceding it with noexpand inside the edef? Is it because the author feared that protected might be deficient?..



I made a test like this (ran with pdfTeX):



% From latex.ltx (or p. 153 of source2e.pdf)
protectedexpandafterdefcsname TextOrMathspaceendcsname%
ifmmode expandafter@secondoftwo
else expandafter@firstoftwo fi

edefTextOrMath#1#2%
expandafternoexpandcsname TextOrMathspaceendcsname
#1#2

% My simpler way of doing the same (?)
edefaltTextOrMath#1#2%
csname TextOrMathspaceendcsname
#1#2

showTextOrMath % TextOrMath=macro:#1#2->TextOrMath #1#2.
showaltTextOrMath % altTextOrMath=ditto

ifxTextOrMathaltTextOrMath
identical
else
different
fi

vfill
eject
bye


This test prints 'identical' and seems to indicate that my definition is equivalent to the one in latex.ltx (but slightly simpler). Did I miss something?



Thanks!










share|improve this question






















  • thanks I suppose we could change that:-)

    – David Carlisle
    3 hours ago











  • Many thanks for your insight into this, I was really puzzled!

    – frougon
    3 hours ago















4















In latexrelease 2015/01/01, there are two implementations of TextOrMath: one for regular
TeX, the other one for eTeX-like engines (more precisely: those which support protected). My question concerns the latter:



protectedexpandafterdefcsname TextOrMathspaceendcsname%
(...) % no problem here
edefTextOrMath#1#2% from latex.ltx
expandafternoexpandcsname TextOrMathspaceendcsname
#1#2


I think I understand well these definitions, however I can't figure out why the edef isn't simply written this way:



edefTextOrMath#1#2% from me
csname TextOrMathspaceendcsname
#1#2


Since the internal TextOrMath<space> macro is protected, what is the point of preceding it with noexpand inside the edef? Is it because the author feared that protected might be deficient?..



I made a test like this (ran with pdfTeX):



% From latex.ltx (or p. 153 of source2e.pdf)
protectedexpandafterdefcsname TextOrMathspaceendcsname%
ifmmode expandafter@secondoftwo
else expandafter@firstoftwo fi

edefTextOrMath#1#2%
expandafternoexpandcsname TextOrMathspaceendcsname
#1#2

% My simpler way of doing the same (?)
edefaltTextOrMath#1#2%
csname TextOrMathspaceendcsname
#1#2

showTextOrMath % TextOrMath=macro:#1#2->TextOrMath #1#2.
showaltTextOrMath % altTextOrMath=ditto

ifxTextOrMathaltTextOrMath
identical
else
different
fi

vfill
eject
bye


This test prints 'identical' and seems to indicate that my definition is equivalent to the one in latex.ltx (but slightly simpler). Did I miss something?



Thanks!










share|improve this question






















  • thanks I suppose we could change that:-)

    – David Carlisle
    3 hours ago











  • Many thanks for your insight into this, I was really puzzled!

    – frougon
    3 hours ago













4












4








4








In latexrelease 2015/01/01, there are two implementations of TextOrMath: one for regular
TeX, the other one for eTeX-like engines (more precisely: those which support protected). My question concerns the latter:



protectedexpandafterdefcsname TextOrMathspaceendcsname%
(...) % no problem here
edefTextOrMath#1#2% from latex.ltx
expandafternoexpandcsname TextOrMathspaceendcsname
#1#2


I think I understand well these definitions, however I can't figure out why the edef isn't simply written this way:



edefTextOrMath#1#2% from me
csname TextOrMathspaceendcsname
#1#2


Since the internal TextOrMath<space> macro is protected, what is the point of preceding it with noexpand inside the edef? Is it because the author feared that protected might be deficient?..



I made a test like this (ran with pdfTeX):



% From latex.ltx (or p. 153 of source2e.pdf)
protectedexpandafterdefcsname TextOrMathspaceendcsname%
ifmmode expandafter@secondoftwo
else expandafter@firstoftwo fi

edefTextOrMath#1#2%
expandafternoexpandcsname TextOrMathspaceendcsname
#1#2

% My simpler way of doing the same (?)
edefaltTextOrMath#1#2%
csname TextOrMathspaceendcsname
#1#2

showTextOrMath % TextOrMath=macro:#1#2->TextOrMath #1#2.
showaltTextOrMath % altTextOrMath=ditto

ifxTextOrMathaltTextOrMath
identical
else
different
fi

vfill
eject
bye


This test prints 'identical' and seems to indicate that my definition is equivalent to the one in latex.ltx (but slightly simpler). Did I miss something?



Thanks!










share|improve this question














In latexrelease 2015/01/01, there are two implementations of TextOrMath: one for regular
TeX, the other one for eTeX-like engines (more precisely: those which support protected). My question concerns the latter:



protectedexpandafterdefcsname TextOrMathspaceendcsname%
(...) % no problem here
edefTextOrMath#1#2% from latex.ltx
expandafternoexpandcsname TextOrMathspaceendcsname
#1#2


I think I understand well these definitions, however I can't figure out why the edef isn't simply written this way:



edefTextOrMath#1#2% from me
csname TextOrMathspaceendcsname
#1#2


Since the internal TextOrMath<space> macro is protected, what is the point of preceding it with noexpand inside the edef? Is it because the author feared that protected might be deficient?..



I made a test like this (ran with pdfTeX):



% From latex.ltx (or p. 153 of source2e.pdf)
protectedexpandafterdefcsname TextOrMathspaceendcsname%
ifmmode expandafter@secondoftwo
else expandafter@firstoftwo fi

edefTextOrMath#1#2%
expandafternoexpandcsname TextOrMathspaceendcsname
#1#2

% My simpler way of doing the same (?)
edefaltTextOrMath#1#2%
csname TextOrMathspaceendcsname
#1#2

showTextOrMath % TextOrMath=macro:#1#2->TextOrMath #1#2.
showaltTextOrMath % altTextOrMath=ditto

ifxTextOrMathaltTextOrMath
identical
else
different
fi

vfill
eject
bye


This test prints 'identical' and seems to indicate that my definition is equivalent to the one in latex.ltx (but slightly simpler). Did I miss something?



Thanks!







macros expansion definition protected-macro






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked 5 hours ago









frougonfrougon

641611




641611












  • thanks I suppose we could change that:-)

    – David Carlisle
    3 hours ago











  • Many thanks for your insight into this, I was really puzzled!

    – frougon
    3 hours ago

















  • thanks I suppose we could change that:-)

    – David Carlisle
    3 hours ago











  • Many thanks for your insight into this, I was really puzzled!

    – frougon
    3 hours ago
















thanks I suppose we could change that:-)

– David Carlisle
3 hours ago





thanks I suppose we could change that:-)

– David Carlisle
3 hours ago













Many thanks for your insight into this, I was really puzzled!

– frougon
3 hours ago





Many thanks for your insight into this, I was really puzzled!

– frougon
3 hours ago










1 Answer
1






active

oldest

votes


















3














No you didn't miss anything, just old habits die hard as we gradually add these modern post 1992 features into the sources....






share|improve this answer























    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%2f482829%2fuse-of-noexpand-in-the-implementation-of-textormath-for-etex%23new-answer', 'question_page');

    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    3














    No you didn't miss anything, just old habits die hard as we gradually add these modern post 1992 features into the sources....






    share|improve this answer



























      3














      No you didn't miss anything, just old habits die hard as we gradually add these modern post 1992 features into the sources....






      share|improve this answer

























        3












        3








        3







        No you didn't miss anything, just old habits die hard as we gradually add these modern post 1992 features into the sources....






        share|improve this answer













        No you didn't miss anything, just old habits die hard as we gradually add these modern post 1992 features into the sources....







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered 3 hours ago









        David CarlisleDavid Carlisle

        497k4111441891




        497k4111441891



























            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%2f482829%2fuse-of-noexpand-in-the-implementation-of-textormath-for-etex%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

            Are there any comparative studies done between Ashtavakra Gita and Buddhim?How is it wrong to believe that a self exists, or that it doesn't?Can you criticise or improve Ven. Bodhi's description of MahayanaWas the doctrine of 'Anatta', accepted as doctrine by modern Buddhism, actually taught by the Buddha?Relationship between Buddhism, Hinduism and Yoga?Comparison of Nirvana, Tao and Brahman/AtmaIs there a distinction between “ego identity” and “craving/hating”?Are there many differences between Taoism and Buddhism?Loss of “faith” in buddhismSimilarity between creation in Abrahamic religions and beginning of life in Earth mentioned Agganna Sutta?Are there studies about the difference between meditating in the morning versus in the evening?Can one follow Hinduism and Buddhism at the same time?Are there any prohibitions on participating in other religion's practices?Psychology of 'flow'

            Is compression “encryption” under FCC regs?Signing of messages transmitted over ham radioWhy do Amateur Radio organizations in the United States oppose the relaxation of encryption prohibitions?How far from earth do FCC regulations apply?How can I know whether a radio is FCC approved?FCC tracking of unlicensed FRS/GMRS transmissionsWhy does the FCC put restrictions on symbol rates?legal - Do FCC regulations only apply in U.S.A?What are FCC/Industry Canada certification requirements for amateur radio related products?How to get professional or official clarification of FCC Part 97 rules for specific complicated situations?Is there any point to keep the CSCE after the FCC registers the upgrade?Do FCC regulations limit digital data rate?

            macOS: Name for app shortcut screen found by pinching with thumb and three fingers Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 23, 2019 at 23:30UTC (7:30pm US/Eastern) Should an RSS feed of hot network questions feed any chat room(s) here?How do I get three finger gestures working again in Twitter for Mac after installing Lion?After my MacBook Pro sleeps some gestures don't work anymoreIs it possible to reassign the “Pinch with thumb and three fingers” gesture to activate Dashboard instead of Launchpad?Disable animation for “Swipe between full-screen apps”?OSX Yosemite Can't disable four-finger swipeDrag with three fingers missing in OS X 10.11 Beta “El Capitan” (15A215h)A shortcut for Merge all Windows on macOS SierraSet the hostname/computer name for macOSmacOS: Identify tool and keyboard shortcutQuickly save Screenshot in MacOS Mojave with keyboard Shortcut