Remove extra curly braces for def'ed argument











up vote
1
down vote

favorite












I am trying to combine the answers of Remove extra curly braces and def'ed plain-text argument behaves differently from plain text, and I am failing. Here's an MWE:



documentclass{article}
makeatletter
usepackage{seqsplit}
newcommand{dosomething}[1]{expandafterseqsplitexpandafter{@firstofone#1}}

begin{document}
defkong{looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong}
defkongg{kong}
defkonggg{{looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong}}

% works
dosomething{looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong}

% works, too
expandafterdosomething{expandafterkong}

% works with extra {...}
dosomething{{looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong}}

% works with extra {...}, too
expandafterexpandafterexpandafterdosomething{expandafterexpandafterexpandafterkongg}

% does not work
expandafterexpandafterexpandafterdosomething{expandafterexpandafterexpandafterkonggg}
end{document}


For the larger picture, this is what I am getting at:



documentclass{article}
usepackage[T1]{fontenc}
usepackage{amsmath,hyperref}

%1 usepackage{cleveref}

usepackage{showlabels,xpatch,seqsplit}
makeatletter
patchcmd{SL@margintext}{{SL@prlabelname{#1}}}{#1}{}{err}
patchcmd{maketag@@@}{{df@label}}{{expandafterdf@label}}{}{err}

patchcmd{showlabelsetlabel}{#1}{raisebox{0pt}[0pt][0pt]{parbox{1.5marginparwidth}{scriptsizevspace*{-0.5baselineskip}seqsplit{#1}}}}{}{err}

%2 renewcommand{showlabelsetlabel}[1]{meaningdf@label}

%4 newcommand{dosomethingelse}[1]{expandafterseqsplitexpandafter{@firstofone#1}}
%4 patchcmd{showlabelsetlabel}{seqsplit}{dosomethingelse}{}{err}

begin{document}

%3 patchcmd{label@in@display@noarg}{{{#1}}}{{#1}}{}{err}

section{A}
label{sec:Loooooooooooooooooooooooooooooooooooooooooong}

begin{equation}
label{eqn:Loooooooooooooooooooooooooooooooooooooooooong}
X = Y
end{equation}
end{document}


This code behaves well until I load cleveref (uncomment %1). You will see why after uncommenting %2: df@label, set by amsmath's label@in@display, has an extra layer of {...}.



cleveref, on the other hand, seems to be the one introducing this:



deflabel@in@display@noarg#1{cref@old@label@in@display{{#1}}}%
deflabel@in@display@optarg[#1]#2{%
cref@old@label@in@display{[#1]{#2}}}%


And it seems to depend on it, as you can see when you try to xpatch it out (uncomment %3). So instead of that, I tried to remove the curly braces as before (comment %2, uncomment %4), to no avail.










share|improve this question


















  • 1




    You're are loading 4 packages that change the way label works usually -- there must be interferences ;-)
    – Christian Hupfer
    May 12 '17 at 8:03










  • @ChristianHupfer I am not surprised, but this doesn't mean I don't want to be able to manage these interferences ;)
    – bers
    May 12 '17 at 8:11















up vote
1
down vote

favorite












I am trying to combine the answers of Remove extra curly braces and def'ed plain-text argument behaves differently from plain text, and I am failing. Here's an MWE:



documentclass{article}
makeatletter
usepackage{seqsplit}
newcommand{dosomething}[1]{expandafterseqsplitexpandafter{@firstofone#1}}

begin{document}
defkong{looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong}
defkongg{kong}
defkonggg{{looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong}}

% works
dosomething{looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong}

% works, too
expandafterdosomething{expandafterkong}

% works with extra {...}
dosomething{{looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong}}

% works with extra {...}, too
expandafterexpandafterexpandafterdosomething{expandafterexpandafterexpandafterkongg}

% does not work
expandafterexpandafterexpandafterdosomething{expandafterexpandafterexpandafterkonggg}
end{document}


For the larger picture, this is what I am getting at:



documentclass{article}
usepackage[T1]{fontenc}
usepackage{amsmath,hyperref}

%1 usepackage{cleveref}

usepackage{showlabels,xpatch,seqsplit}
makeatletter
patchcmd{SL@margintext}{{SL@prlabelname{#1}}}{#1}{}{err}
patchcmd{maketag@@@}{{df@label}}{{expandafterdf@label}}{}{err}

patchcmd{showlabelsetlabel}{#1}{raisebox{0pt}[0pt][0pt]{parbox{1.5marginparwidth}{scriptsizevspace*{-0.5baselineskip}seqsplit{#1}}}}{}{err}

%2 renewcommand{showlabelsetlabel}[1]{meaningdf@label}

%4 newcommand{dosomethingelse}[1]{expandafterseqsplitexpandafter{@firstofone#1}}
%4 patchcmd{showlabelsetlabel}{seqsplit}{dosomethingelse}{}{err}

begin{document}

%3 patchcmd{label@in@display@noarg}{{{#1}}}{{#1}}{}{err}

section{A}
label{sec:Loooooooooooooooooooooooooooooooooooooooooong}

begin{equation}
label{eqn:Loooooooooooooooooooooooooooooooooooooooooong}
X = Y
end{equation}
end{document}


This code behaves well until I load cleveref (uncomment %1). You will see why after uncommenting %2: df@label, set by amsmath's label@in@display, has an extra layer of {...}.



cleveref, on the other hand, seems to be the one introducing this:



deflabel@in@display@noarg#1{cref@old@label@in@display{{#1}}}%
deflabel@in@display@optarg[#1]#2{%
cref@old@label@in@display{[#1]{#2}}}%


And it seems to depend on it, as you can see when you try to xpatch it out (uncomment %3). So instead of that, I tried to remove the curly braces as before (comment %2, uncomment %4), to no avail.










share|improve this question


















  • 1




    You're are loading 4 packages that change the way label works usually -- there must be interferences ;-)
    – Christian Hupfer
    May 12 '17 at 8:03










  • @ChristianHupfer I am not surprised, but this doesn't mean I don't want to be able to manage these interferences ;)
    – bers
    May 12 '17 at 8:11













up vote
1
down vote

favorite









up vote
1
down vote

favorite











I am trying to combine the answers of Remove extra curly braces and def'ed plain-text argument behaves differently from plain text, and I am failing. Here's an MWE:



documentclass{article}
makeatletter
usepackage{seqsplit}
newcommand{dosomething}[1]{expandafterseqsplitexpandafter{@firstofone#1}}

begin{document}
defkong{looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong}
defkongg{kong}
defkonggg{{looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong}}

% works
dosomething{looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong}

% works, too
expandafterdosomething{expandafterkong}

% works with extra {...}
dosomething{{looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong}}

% works with extra {...}, too
expandafterexpandafterexpandafterdosomething{expandafterexpandafterexpandafterkongg}

% does not work
expandafterexpandafterexpandafterdosomething{expandafterexpandafterexpandafterkonggg}
end{document}


For the larger picture, this is what I am getting at:



documentclass{article}
usepackage[T1]{fontenc}
usepackage{amsmath,hyperref}

%1 usepackage{cleveref}

usepackage{showlabels,xpatch,seqsplit}
makeatletter
patchcmd{SL@margintext}{{SL@prlabelname{#1}}}{#1}{}{err}
patchcmd{maketag@@@}{{df@label}}{{expandafterdf@label}}{}{err}

patchcmd{showlabelsetlabel}{#1}{raisebox{0pt}[0pt][0pt]{parbox{1.5marginparwidth}{scriptsizevspace*{-0.5baselineskip}seqsplit{#1}}}}{}{err}

%2 renewcommand{showlabelsetlabel}[1]{meaningdf@label}

%4 newcommand{dosomethingelse}[1]{expandafterseqsplitexpandafter{@firstofone#1}}
%4 patchcmd{showlabelsetlabel}{seqsplit}{dosomethingelse}{}{err}

begin{document}

%3 patchcmd{label@in@display@noarg}{{{#1}}}{{#1}}{}{err}

section{A}
label{sec:Loooooooooooooooooooooooooooooooooooooooooong}

begin{equation}
label{eqn:Loooooooooooooooooooooooooooooooooooooooooong}
X = Y
end{equation}
end{document}


This code behaves well until I load cleveref (uncomment %1). You will see why after uncommenting %2: df@label, set by amsmath's label@in@display, has an extra layer of {...}.



cleveref, on the other hand, seems to be the one introducing this:



deflabel@in@display@noarg#1{cref@old@label@in@display{{#1}}}%
deflabel@in@display@optarg[#1]#2{%
cref@old@label@in@display{[#1]{#2}}}%


And it seems to depend on it, as you can see when you try to xpatch it out (uncomment %3). So instead of that, I tried to remove the curly braces as before (comment %2, uncomment %4), to no avail.










share|improve this question













I am trying to combine the answers of Remove extra curly braces and def'ed plain-text argument behaves differently from plain text, and I am failing. Here's an MWE:



documentclass{article}
makeatletter
usepackage{seqsplit}
newcommand{dosomething}[1]{expandafterseqsplitexpandafter{@firstofone#1}}

begin{document}
defkong{looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong}
defkongg{kong}
defkonggg{{looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong}}

% works
dosomething{looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong}

% works, too
expandafterdosomething{expandafterkong}

% works with extra {...}
dosomething{{looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong}}

% works with extra {...}, too
expandafterexpandafterexpandafterdosomething{expandafterexpandafterexpandafterkongg}

% does not work
expandafterexpandafterexpandafterdosomething{expandafterexpandafterexpandafterkonggg}
end{document}


For the larger picture, this is what I am getting at:



documentclass{article}
usepackage[T1]{fontenc}
usepackage{amsmath,hyperref}

%1 usepackage{cleveref}

usepackage{showlabels,xpatch,seqsplit}
makeatletter
patchcmd{SL@margintext}{{SL@prlabelname{#1}}}{#1}{}{err}
patchcmd{maketag@@@}{{df@label}}{{expandafterdf@label}}{}{err}

patchcmd{showlabelsetlabel}{#1}{raisebox{0pt}[0pt][0pt]{parbox{1.5marginparwidth}{scriptsizevspace*{-0.5baselineskip}seqsplit{#1}}}}{}{err}

%2 renewcommand{showlabelsetlabel}[1]{meaningdf@label}

%4 newcommand{dosomethingelse}[1]{expandafterseqsplitexpandafter{@firstofone#1}}
%4 patchcmd{showlabelsetlabel}{seqsplit}{dosomethingelse}{}{err}

begin{document}

%3 patchcmd{label@in@display@noarg}{{{#1}}}{{#1}}{}{err}

section{A}
label{sec:Loooooooooooooooooooooooooooooooooooooooooong}

begin{equation}
label{eqn:Loooooooooooooooooooooooooooooooooooooooooong}
X = Y
end{equation}
end{document}


This code behaves well until I load cleveref (uncomment %1). You will see why after uncommenting %2: df@label, set by amsmath's label@in@display, has an extra layer of {...}.



cleveref, on the other hand, seems to be the one introducing this:



deflabel@in@display@noarg#1{cref@old@label@in@display{{#1}}}%
deflabel@in@display@optarg[#1]#2{%
cref@old@label@in@display{[#1]{#2}}}%


And it seems to depend on it, as you can see when you try to xpatch it out (uncomment %3). So instead of that, I tried to remove the curly braces as before (comment %2, uncomment %4), to no avail.







expansion grouping






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked May 12 '17 at 7:42









bers

2,28311435




2,28311435








  • 1




    You're are loading 4 packages that change the way label works usually -- there must be interferences ;-)
    – Christian Hupfer
    May 12 '17 at 8:03










  • @ChristianHupfer I am not surprised, but this doesn't mean I don't want to be able to manage these interferences ;)
    – bers
    May 12 '17 at 8:11














  • 1




    You're are loading 4 packages that change the way label works usually -- there must be interferences ;-)
    – Christian Hupfer
    May 12 '17 at 8:03










  • @ChristianHupfer I am not surprised, but this doesn't mean I don't want to be able to manage these interferences ;)
    – bers
    May 12 '17 at 8:11








1




1




You're are loading 4 packages that change the way label works usually -- there must be interferences ;-)
– Christian Hupfer
May 12 '17 at 8:03




You're are loading 4 packages that change the way label works usually -- there must be interferences ;-)
– Christian Hupfer
May 12 '17 at 8:03












@ChristianHupfer I am not surprised, but this doesn't mean I don't want to be able to manage these interferences ;)
– bers
May 12 '17 at 8:11




@ChristianHupfer I am not surprised, but this doesn't mean I don't want to be able to manage these interferences ;)
– bers
May 12 '17 at 8:11










1 Answer
1






active

oldest

votes

















up vote
0
down vote













I think the problem with your code isn't the definition of dosomething but your test cases. Let's have a look at how the expansion goes in your test cases:




  1. dosomething{looong}
    expandafterseqsplitexpandafter{@firstofone looong}
    seqsplit{looong}


  2. expandafterdosomething{expandafterkong}
    dosomething{expandafterkong}
    expandafterseqsplitexpandafter{@firstofoneexpandafterkong}
    seqsplit{expandafterkong}


    Here you can see that the expandafters are not properly applied, as one goes into the parameter of seqsplit which probably is not what you intended. It still seems to work accidentally because of how seqsplit works internally.



  3. dosomething{{looong}}
    expandafterseqsplitexpandafter{@firstofone{looong}}
    seqsplit{looong}


  4. expandafterexpandafterexpandafterdosomething{expandafterexpandafterexpandafterkongg}
    expandafterdosomething{expandafterexpandafterexpandafterkongg}
    dosomething{expandafterexpandafterexpandafterkongg}
    expandafterseqsplitexpandafter{@firstofoneexpandafterexpandafterexpandafterkongg}
    seqsplit{expandafterexpandafterexpandafterkongg}


    Again, here expandafters find its way into seqsplit's parameter.




  5. expandafterexpandafterexpandafterdosomething{expandafterexpandafterexpandafterkonggg}
    expandafterdosomething{expandafterexpandafterexpandafterkonggg}
    dosomething{expandafterexpandafterexpandafterkonggg}


    The same problem here, which prevents the @firstofone trick to apply.




On the other hand, if you put expandafters in the right dose, the result is correct with all of your three kong macros:



expandafterdosomethingexpandafter{kong}

expandafterexpandafterexpandafterdosomethingexpandafterexpandafterexpandafter{kongg}

expandafterdosomethingexpandafter{konggg}


enter image description here






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',
    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%2f369351%2fremove-extra-curly-braces-for-defed-argument%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








    up vote
    0
    down vote













    I think the problem with your code isn't the definition of dosomething but your test cases. Let's have a look at how the expansion goes in your test cases:




    1. dosomething{looong}
      expandafterseqsplitexpandafter{@firstofone looong}
      seqsplit{looong}


    2. expandafterdosomething{expandafterkong}
      dosomething{expandafterkong}
      expandafterseqsplitexpandafter{@firstofoneexpandafterkong}
      seqsplit{expandafterkong}


      Here you can see that the expandafters are not properly applied, as one goes into the parameter of seqsplit which probably is not what you intended. It still seems to work accidentally because of how seqsplit works internally.



    3. dosomething{{looong}}
      expandafterseqsplitexpandafter{@firstofone{looong}}
      seqsplit{looong}


    4. expandafterexpandafterexpandafterdosomething{expandafterexpandafterexpandafterkongg}
      expandafterdosomething{expandafterexpandafterexpandafterkongg}
      dosomething{expandafterexpandafterexpandafterkongg}
      expandafterseqsplitexpandafter{@firstofoneexpandafterexpandafterexpandafterkongg}
      seqsplit{expandafterexpandafterexpandafterkongg}


      Again, here expandafters find its way into seqsplit's parameter.




    5. expandafterexpandafterexpandafterdosomething{expandafterexpandafterexpandafterkonggg}
      expandafterdosomething{expandafterexpandafterexpandafterkonggg}
      dosomething{expandafterexpandafterexpandafterkonggg}


      The same problem here, which prevents the @firstofone trick to apply.




    On the other hand, if you put expandafters in the right dose, the result is correct with all of your three kong macros:



    expandafterdosomethingexpandafter{kong}

    expandafterexpandafterexpandafterdosomethingexpandafterexpandafterexpandafter{kongg}

    expandafterdosomethingexpandafter{konggg}


    enter image description here






    share|improve this answer

























      up vote
      0
      down vote













      I think the problem with your code isn't the definition of dosomething but your test cases. Let's have a look at how the expansion goes in your test cases:




      1. dosomething{looong}
        expandafterseqsplitexpandafter{@firstofone looong}
        seqsplit{looong}


      2. expandafterdosomething{expandafterkong}
        dosomething{expandafterkong}
        expandafterseqsplitexpandafter{@firstofoneexpandafterkong}
        seqsplit{expandafterkong}


        Here you can see that the expandafters are not properly applied, as one goes into the parameter of seqsplit which probably is not what you intended. It still seems to work accidentally because of how seqsplit works internally.



      3. dosomething{{looong}}
        expandafterseqsplitexpandafter{@firstofone{looong}}
        seqsplit{looong}


      4. expandafterexpandafterexpandafterdosomething{expandafterexpandafterexpandafterkongg}
        expandafterdosomething{expandafterexpandafterexpandafterkongg}
        dosomething{expandafterexpandafterexpandafterkongg}
        expandafterseqsplitexpandafter{@firstofoneexpandafterexpandafterexpandafterkongg}
        seqsplit{expandafterexpandafterexpandafterkongg}


        Again, here expandafters find its way into seqsplit's parameter.




      5. expandafterexpandafterexpandafterdosomething{expandafterexpandafterexpandafterkonggg}
        expandafterdosomething{expandafterexpandafterexpandafterkonggg}
        dosomething{expandafterexpandafterexpandafterkonggg}


        The same problem here, which prevents the @firstofone trick to apply.




      On the other hand, if you put expandafters in the right dose, the result is correct with all of your three kong macros:



      expandafterdosomethingexpandafter{kong}

      expandafterexpandafterexpandafterdosomethingexpandafterexpandafterexpandafter{kongg}

      expandafterdosomethingexpandafter{konggg}


      enter image description here






      share|improve this answer























        up vote
        0
        down vote










        up vote
        0
        down vote









        I think the problem with your code isn't the definition of dosomething but your test cases. Let's have a look at how the expansion goes in your test cases:




        1. dosomething{looong}
          expandafterseqsplitexpandafter{@firstofone looong}
          seqsplit{looong}


        2. expandafterdosomething{expandafterkong}
          dosomething{expandafterkong}
          expandafterseqsplitexpandafter{@firstofoneexpandafterkong}
          seqsplit{expandafterkong}


          Here you can see that the expandafters are not properly applied, as one goes into the parameter of seqsplit which probably is not what you intended. It still seems to work accidentally because of how seqsplit works internally.



        3. dosomething{{looong}}
          expandafterseqsplitexpandafter{@firstofone{looong}}
          seqsplit{looong}


        4. expandafterexpandafterexpandafterdosomething{expandafterexpandafterexpandafterkongg}
          expandafterdosomething{expandafterexpandafterexpandafterkongg}
          dosomething{expandafterexpandafterexpandafterkongg}
          expandafterseqsplitexpandafter{@firstofoneexpandafterexpandafterexpandafterkongg}
          seqsplit{expandafterexpandafterexpandafterkongg}


          Again, here expandafters find its way into seqsplit's parameter.




        5. expandafterexpandafterexpandafterdosomething{expandafterexpandafterexpandafterkonggg}
          expandafterdosomething{expandafterexpandafterexpandafterkonggg}
          dosomething{expandafterexpandafterexpandafterkonggg}


          The same problem here, which prevents the @firstofone trick to apply.




        On the other hand, if you put expandafters in the right dose, the result is correct with all of your three kong macros:



        expandafterdosomethingexpandafter{kong}

        expandafterexpandafterexpandafterdosomethingexpandafterexpandafterexpandafter{kongg}

        expandafterdosomethingexpandafter{konggg}


        enter image description here






        share|improve this answer












        I think the problem with your code isn't the definition of dosomething but your test cases. Let's have a look at how the expansion goes in your test cases:




        1. dosomething{looong}
          expandafterseqsplitexpandafter{@firstofone looong}
          seqsplit{looong}


        2. expandafterdosomething{expandafterkong}
          dosomething{expandafterkong}
          expandafterseqsplitexpandafter{@firstofoneexpandafterkong}
          seqsplit{expandafterkong}


          Here you can see that the expandafters are not properly applied, as one goes into the parameter of seqsplit which probably is not what you intended. It still seems to work accidentally because of how seqsplit works internally.



        3. dosomething{{looong}}
          expandafterseqsplitexpandafter{@firstofone{looong}}
          seqsplit{looong}


        4. expandafterexpandafterexpandafterdosomething{expandafterexpandafterexpandafterkongg}
          expandafterdosomething{expandafterexpandafterexpandafterkongg}
          dosomething{expandafterexpandafterexpandafterkongg}
          expandafterseqsplitexpandafter{@firstofoneexpandafterexpandafterexpandafterkongg}
          seqsplit{expandafterexpandafterexpandafterkongg}


          Again, here expandafters find its way into seqsplit's parameter.




        5. expandafterexpandafterexpandafterdosomething{expandafterexpandafterexpandafterkonggg}
          expandafterdosomething{expandafterexpandafterexpandafterkonggg}
          dosomething{expandafterexpandafterexpandafterkonggg}


          The same problem here, which prevents the @firstofone trick to apply.




        On the other hand, if you put expandafters in the right dose, the result is correct with all of your three kong macros:



        expandafterdosomethingexpandafter{kong}

        expandafterexpandafterexpandafterdosomethingexpandafterexpandafterexpandafter{kongg}

        expandafterdosomethingexpandafter{konggg}


        enter image description here







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered 12 mins ago









        siracusa

        4,50011127




        4,50011127






























            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.





            Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


            Please pay close attention to the following guidance:


            • 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%2f369351%2fremove-extra-curly-braces-for-defed-argument%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

            Contact image not getting when fetch all contact list from iPhone by CNContact

            count number of partitions of a set with n elements into k subsets

            A CLEAN and SIMPLE way to add appendices to Table of Contents and bookmarks