How can I replace every global instance of “x[2]” with “x_2”Translate in-line equations to TeX code (Any Package?)Automatic LaTeX parsing to replace text with macrosWhat is going wrong with this attempt to use global?How can I automatically replace subscripts and highlight GoTo labels?How to replace textHow can own commands be aware of global?How to do search-and-replace in a macro?how to use a global foreach?How to make NewDocumentCommand global?How to represent just space-character in replace stringreplace text with variables

How to be diplomatic in refusing to write code that breaches the privacy of our users

What can we do to stop prior company from asking us questions?

Is there a problem with hiding "forgot password" until it's needed?

Short story about space worker geeks who zone out by 'listening' to radiation from stars

System.debug(JSON.Serialize(o)) Not longer shows full string

Is `x >> pure y` equivalent to `liftM (const y) x`

Is this version of a gravity generator feasible?

Purchasing a ticket for someone else in another country?

What is the difference between "behavior" and "behaviour"?

Customer Requests (Sometimes) Drive Me Bonkers!

What Brexit proposals are on the table in the indicative votes on the 27th of March 2019?

Is HostGator storing my password in plaintext?

Italian words for tools

Opposite of a diet

How do I go from 300 unfinished/half written blog posts, to published posts?

How does the UK government determine the size of a mandate?

How many times can American Tourist re-enter UK in same 6 month period?

Fastening aluminum fascia to wooden subfascia

You cannot touch me, but I can touch you, who am I?

Why not increase contact surface when reentering the atmosphere?

What's the purpose of "true" in bash "if sudo true; then"

What does "I’d sit this one out, Cap," imply or mean in the context?

Why are there no referendums in the US?

Overloading istream>> to read comma-separated input



How can I replace every global instance of “x[2]” with “x_2”


Translate in-line equations to TeX code (Any Package?)Automatic LaTeX parsing to replace text with macrosWhat is going wrong with this attempt to use global?How can I automatically replace subscripts and highlight GoTo labels?How to replace textHow can own commands be aware of global?How to do search-and-replace in a macro?how to use a global foreach?How to make NewDocumentCommand global?How to represent just space-character in replace stringreplace text with variables













9















Thanks to Bruno for suggesting that for my specific case, where my results come from Mathematica, it's simply much easier to change the output in there using trivial replacement rules. However, this stands alone as a general question.



This is a slightly different question to what I've seen before, where I can use something like newcommandgagamma to make shortcuts of things using .



I have a series of LONG equations with stuff like x[2] or a[3] in them. I want to be able to always replace any instance of them with something else, like a command that takes a string and replaces it like something similar to



newcommandx[2]x_2



and



newcommanda[2]beta



Ideally, this would take account of the number inside, but I could easily just do it for all instances that arise. Any guidance would be great (my document class is Report)










share|improve this question
























  • Sort of sounds like translating math equations from one syntax to another, which reminded me of my very strange answer here: tex.stackexchange.com/questions/332012/…. Not that it will help you in the present case, without significant rework.

    – Steven B. Segletes
    yesterday






  • 2





    Do you absolutely need to convert as you typeset, or can you convert your source? If the latter, do you think it would be possible to unambiguously define all the situations in which this syntax would occur?

    – Chris H
    yesterday











  • @ChrisH that's exactly what I'm hoping for. I'm copying some parts of equations from Mathematica, and is written in terms of coefficients like x[2] for example, where I avoided subscripts in my code. I now want to save myself effort and simply define x[2] = x_2 in Latex, since it'll only ever occur within an equation.

    – Brad
    yesterday






  • 3





    My editor of choice supports regex find/replace so I'd simply find x[([0-9])] and replace with x_$1 (on a copy of course)

    – Chris H
    yesterday






  • 1





    @CarlWitthoft thank you for your comment. There are plenty of options for going about solving this, but just to keep everything localised within TeX I was looking for a somewhat simple method of achieving this, for applications even beyond this current issue. Alas, it has been solved now, and also in a multitude of methods. One could argue all night about which way is both, however, I certainly see no issue in solving it externally (which I happen to be doing now in Mathematica).

    – Brad
    8 hours ago















9















Thanks to Bruno for suggesting that for my specific case, where my results come from Mathematica, it's simply much easier to change the output in there using trivial replacement rules. However, this stands alone as a general question.



This is a slightly different question to what I've seen before, where I can use something like newcommandgagamma to make shortcuts of things using .



I have a series of LONG equations with stuff like x[2] or a[3] in them. I want to be able to always replace any instance of them with something else, like a command that takes a string and replaces it like something similar to



newcommandx[2]x_2



and



newcommanda[2]beta



Ideally, this would take account of the number inside, but I could easily just do it for all instances that arise. Any guidance would be great (my document class is Report)










share|improve this question
























  • Sort of sounds like translating math equations from one syntax to another, which reminded me of my very strange answer here: tex.stackexchange.com/questions/332012/…. Not that it will help you in the present case, without significant rework.

    – Steven B. Segletes
    yesterday






  • 2





    Do you absolutely need to convert as you typeset, or can you convert your source? If the latter, do you think it would be possible to unambiguously define all the situations in which this syntax would occur?

    – Chris H
    yesterday











  • @ChrisH that's exactly what I'm hoping for. I'm copying some parts of equations from Mathematica, and is written in terms of coefficients like x[2] for example, where I avoided subscripts in my code. I now want to save myself effort and simply define x[2] = x_2 in Latex, since it'll only ever occur within an equation.

    – Brad
    yesterday






  • 3





    My editor of choice supports regex find/replace so I'd simply find x[([0-9])] and replace with x_$1 (on a copy of course)

    – Chris H
    yesterday






  • 1





    @CarlWitthoft thank you for your comment. There are plenty of options for going about solving this, but just to keep everything localised within TeX I was looking for a somewhat simple method of achieving this, for applications even beyond this current issue. Alas, it has been solved now, and also in a multitude of methods. One could argue all night about which way is both, however, I certainly see no issue in solving it externally (which I happen to be doing now in Mathematica).

    – Brad
    8 hours ago













9












9








9








Thanks to Bruno for suggesting that for my specific case, where my results come from Mathematica, it's simply much easier to change the output in there using trivial replacement rules. However, this stands alone as a general question.



This is a slightly different question to what I've seen before, where I can use something like newcommandgagamma to make shortcuts of things using .



I have a series of LONG equations with stuff like x[2] or a[3] in them. I want to be able to always replace any instance of them with something else, like a command that takes a string and replaces it like something similar to



newcommandx[2]x_2



and



newcommanda[2]beta



Ideally, this would take account of the number inside, but I could easily just do it for all instances that arise. Any guidance would be great (my document class is Report)










share|improve this question
















Thanks to Bruno for suggesting that for my specific case, where my results come from Mathematica, it's simply much easier to change the output in there using trivial replacement rules. However, this stands alone as a general question.



This is a slightly different question to what I've seen before, where I can use something like newcommandgagamma to make shortcuts of things using .



I have a series of LONG equations with stuff like x[2] or a[3] in them. I want to be able to always replace any instance of them with something else, like a command that takes a string and replaces it like something similar to



newcommandx[2]x_2



and



newcommanda[2]beta



Ideally, this would take account of the number inside, but I could easily just do it for all instances that arise. Any guidance would be great (my document class is Report)







macros shorthands






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited 10 hours ago







Brad

















asked yesterday









BradBrad

586




586












  • Sort of sounds like translating math equations from one syntax to another, which reminded me of my very strange answer here: tex.stackexchange.com/questions/332012/…. Not that it will help you in the present case, without significant rework.

    – Steven B. Segletes
    yesterday






  • 2





    Do you absolutely need to convert as you typeset, or can you convert your source? If the latter, do you think it would be possible to unambiguously define all the situations in which this syntax would occur?

    – Chris H
    yesterday











  • @ChrisH that's exactly what I'm hoping for. I'm copying some parts of equations from Mathematica, and is written in terms of coefficients like x[2] for example, where I avoided subscripts in my code. I now want to save myself effort and simply define x[2] = x_2 in Latex, since it'll only ever occur within an equation.

    – Brad
    yesterday






  • 3





    My editor of choice supports regex find/replace so I'd simply find x[([0-9])] and replace with x_$1 (on a copy of course)

    – Chris H
    yesterday






  • 1





    @CarlWitthoft thank you for your comment. There are plenty of options for going about solving this, but just to keep everything localised within TeX I was looking for a somewhat simple method of achieving this, for applications even beyond this current issue. Alas, it has been solved now, and also in a multitude of methods. One could argue all night about which way is both, however, I certainly see no issue in solving it externally (which I happen to be doing now in Mathematica).

    – Brad
    8 hours ago

















  • Sort of sounds like translating math equations from one syntax to another, which reminded me of my very strange answer here: tex.stackexchange.com/questions/332012/…. Not that it will help you in the present case, without significant rework.

    – Steven B. Segletes
    yesterday






  • 2





    Do you absolutely need to convert as you typeset, or can you convert your source? If the latter, do you think it would be possible to unambiguously define all the situations in which this syntax would occur?

    – Chris H
    yesterday











  • @ChrisH that's exactly what I'm hoping for. I'm copying some parts of equations from Mathematica, and is written in terms of coefficients like x[2] for example, where I avoided subscripts in my code. I now want to save myself effort and simply define x[2] = x_2 in Latex, since it'll only ever occur within an equation.

    – Brad
    yesterday






  • 3





    My editor of choice supports regex find/replace so I'd simply find x[([0-9])] and replace with x_$1 (on a copy of course)

    – Chris H
    yesterday






  • 1





    @CarlWitthoft thank you for your comment. There are plenty of options for going about solving this, but just to keep everything localised within TeX I was looking for a somewhat simple method of achieving this, for applications even beyond this current issue. Alas, it has been solved now, and also in a multitude of methods. One could argue all night about which way is both, however, I certainly see no issue in solving it externally (which I happen to be doing now in Mathematica).

    – Brad
    8 hours ago
















Sort of sounds like translating math equations from one syntax to another, which reminded me of my very strange answer here: tex.stackexchange.com/questions/332012/…. Not that it will help you in the present case, without significant rework.

– Steven B. Segletes
yesterday





Sort of sounds like translating math equations from one syntax to another, which reminded me of my very strange answer here: tex.stackexchange.com/questions/332012/…. Not that it will help you in the present case, without significant rework.

– Steven B. Segletes
yesterday




2




2





Do you absolutely need to convert as you typeset, or can you convert your source? If the latter, do you think it would be possible to unambiguously define all the situations in which this syntax would occur?

– Chris H
yesterday





Do you absolutely need to convert as you typeset, or can you convert your source? If the latter, do you think it would be possible to unambiguously define all the situations in which this syntax would occur?

– Chris H
yesterday













@ChrisH that's exactly what I'm hoping for. I'm copying some parts of equations from Mathematica, and is written in terms of coefficients like x[2] for example, where I avoided subscripts in my code. I now want to save myself effort and simply define x[2] = x_2 in Latex, since it'll only ever occur within an equation.

– Brad
yesterday





@ChrisH that's exactly what I'm hoping for. I'm copying some parts of equations from Mathematica, and is written in terms of coefficients like x[2] for example, where I avoided subscripts in my code. I now want to save myself effort and simply define x[2] = x_2 in Latex, since it'll only ever occur within an equation.

– Brad
yesterday




3




3





My editor of choice supports regex find/replace so I'd simply find x[([0-9])] and replace with x_$1 (on a copy of course)

– Chris H
yesterday





My editor of choice supports regex find/replace so I'd simply find x[([0-9])] and replace with x_$1 (on a copy of course)

– Chris H
yesterday




1




1





@CarlWitthoft thank you for your comment. There are plenty of options for going about solving this, but just to keep everything localised within TeX I was looking for a somewhat simple method of achieving this, for applications even beyond this current issue. Alas, it has been solved now, and also in a multitude of methods. One could argue all night about which way is both, however, I certainly see no issue in solving it externally (which I happen to be doing now in Mathematica).

– Brad
8 hours ago





@CarlWitthoft thank you for your comment. There are plenty of options for going about solving this, but just to keep everything localised within TeX I was looking for a somewhat simple method of achieving this, for applications even beyond this current issue. Alas, it has been solved now, and also in a multitude of methods. One could argue all night about which way is both, however, I certainly see no issue in solving it externally (which I happen to be doing now in Mathematica).

– Brad
8 hours ago










6 Answers
6






active

oldest

votes


















9














An extensible set of replacements:



documentclassarticle
usepackageamsmath
usepackagexparse

ExplSyntaxOn
NewDocumentCommandtransm

tl_set:Nn l__brad_trans_tl #1
regex_replace_all:nnN [(.*?)] csbcB1cE l__brad_trans_tl
regex_replace_all:nnN a calpha l__brad_trans_tl
% other replacements
% ...
% deliver the new token list
l__brad_trans_tl

ExplSyntaxOff

begindocument

$transx[1]+x[2]^2+a+a[3]$

enddocument


enter image description here






share|improve this answer


















  • 1





    Same comment as I made on David's answer. Yes, my l3regex is sometimes useful, but here the right solution by far is to do the replacements in Mathematica, not TeX.

    – Bruno Le Floch
    yesterday


















7














I really can not recommend doing this, but as you ask...



enter image description here



documentclassarticle

begindocument


mathcode`[="8000
mathcode`]="8000

catcode`[=active gdef[_bgroup
catcode`]=active gdef]egroup


hmmm
[
a[1]+a[2]+b[c+d[3]] + x
]

enddocument





share|improve this answer























  • Thank you for your answer - this is not quite what I'm after. But since this is not quite a conventional method, perhaps I am better simply going through and replacing things manually... I am moreso hoping to simply find a particular string and replace it with something else.

    – Brad
    yesterday











  • @Brad that really isn't how tex works:-) (unless you are using luatex)

    – David Carlisle
    yesterday











  • No worries at all! I have no problem sorting through everything, but I was hoping to save myself a bit of eyesight. Thank you for your help regardless!

    – Brad
    yesterday











  • @DavidCarlisle Come on, don't advocate crazy solutions to problems that can be trivially solved on the other side of the conversion. Brad should simply do the replacement in Mathematica.

    – Bruno Le Floch
    yesterday






  • 2





    @BrunoLeFloch I'd already said that in comments under the question, or just use perl or any other sane mechanism, but it's easy for you to see that this is beyond what's reasonable to do in tex as you know more than most on where tex's limits are, but I think it is still useful as a general rule to sketch how far you can get (and in particular what you can not reasonably do) in tex for this kind of question.

    – David Carlisle
    yesterday


















7














Inasmuch as I love doing crazy things in TeX, do the replacements in Mathematica! This will save you a huge amount of pain. For instance,



expr = (a[1] + a[2])/Sqrt[a[3]]
expr /. a[1] -> [Alpha], a[2] -> [Beta], a[3] -> [Gamma] // TeXForm


gives fracalpha +beta sqrtgamma with no need to tweak the output.






share|improve this answer























  • This is actually much more efficient than I realised! I was specifically trying to avid all those dirty symbols in my code but that's a much better overall solution. Big +1, thank you for the advice! I have edited my question to reflect this. I assume one would need to replace x[2] with the full subscript notation to achieve the $x_2$ necessary as well?

    – Brad
    10 hours ago












  • Yeah, it's just as easy to do the subscript replacements as well. Thank you for pointing this out Bruno; I will keep the answer above since I guess it does answer the specific question in particular, but I appreciate your solution greatly.

    – Brad
    9 hours ago


















5














Along the vein of my cited Translate in-line equations to TeX code (Any Package?), but a much simpler parsing request, I provide translate.



No catcode changes required. It will retain surrounding math style, etc.



documentclassarticle
usepackagelistofitems
newtokseqtoks
newcommandaddtoeqtoks[1]expandaftereqtoksexpandaftertheeqtoks#1
newcommandtranslate[1]%
setsepchar]%
readlistmyeqn#1%
eqtoks%
foreachitemxinmyeqn[]%
ifnumxcnt=1else%
if[myeqnsep[numexprxcnt-1]addtoeqtoks_bgroupfi%
if]myeqnsep[numexprxcnt-1]addtoeqtoksegroupfi%
fi%
expandafteraddtoeqtoksexpandafterx%
%
theeqtoks%

begindocument
[
translatea[1]+a[2]+b[c+d[3]] + x
]
enddocument


enter image description here






share|improve this answer






























    4














    For the sake of variety, here's a LuaLaTeX-based solution. It sets up a Lua function, called trans, which does most of the work with the help of Lua's versatile string-handling routines. The LaTeX macro trans is a wrapper that invokes the Lua function.



    enter image description here



    documentclassarticle
    usepackageluacode % for "luacode" environment and "luastringN" macro
    beginluacode


    function makesubscr ( s )
    s = s:gsub ( "(%b[])", function(x)
    return ( "_" .. string.sub ( x , 2 , -2 ) .. "" )
    end )
    if s:find ( "%b[]" ) then
    s = makesubscr ( s )
    end
    return s
    end
    function trans ( s )
    s = makesubscr ( s )
    s = s:gsub ( "a" , "\alpha" )
    s = s:gsub ( "b" , "\beta" )
    tex.sprint ( s )
    end


    endluacode

    %% TeX-side code
    newcommandtrans[1]directluatrans(luastringN#1)

    begindocument
    $transx[1]+x[2]^2+a+a[3]$

    $transa[1]+a[2]+b[c+d[3]]+x$
    enddocument





    share|improve this answer






























      2














      Here's a solution. The command addreplacementruletext-to-replacereplacement-text specifies replacements to make. Then the command replacesome math does the replacements.



      This would probably be better done with the l3regex package or really find and replace as many other people mentioned.



      documentclassarticle
      makeatletter
      newtoksri@activechars
      defaddreplacementrule#1#2addreplacementrule@#1@nil#2
      defaddreplacementrule@#1#2@nil#3%
      ri@activecharsexpandaftertheri@activechars\#1%
      ri@maketransitions#2@nil#1#3%


      defreplace#1%
      begingroup
      def\##1%
      bgrouplccode`~=`##1lowercaseegroup
      def~ri@continue##1%
      %
      catcode`##1=active
      %
      theri@activechars
      scantokens#1%
      endgroup


      defri@maketransitions#1#2@nil#3#4%
      deftemp#2%
      ifxtempempty
      expandafterdefcsname ri@lookup@detokenize#3#1endcsname#4%
      letnextrelax
      else
      expandafterdefcsname ri@lookup@detokenize#3#1endcsnameri@continue#3#1%
      defnextri@maketransitions#2@nil#3#1#4%
      fi
      next



      defri@continue#1#2%
      @ifundefinedri@lookup@detokenize#1#2%
      detokenize#1#2%
      %
      csname ri@lookup@detokenize#1#2endcsname
      %



      begindocument
      addreplacementrulex[2]x_2
      addreplacementrulex[3]x^2

      $x+1+x[2]+x[3]+x[1]$

      replace$x+1+x[2]+x[3]+x[1]$
      enddocument


      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',
        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%2f481546%2fhow-can-i-replace-every-global-instance-of-x2-with-x-2%23new-answer', 'question_page');

        );

        Post as a guest















        Required, but never shown

























        6 Answers
        6






        active

        oldest

        votes








        6 Answers
        6






        active

        oldest

        votes









        active

        oldest

        votes






        active

        oldest

        votes









        9














        An extensible set of replacements:



        documentclassarticle
        usepackageamsmath
        usepackagexparse

        ExplSyntaxOn
        NewDocumentCommandtransm

        tl_set:Nn l__brad_trans_tl #1
        regex_replace_all:nnN [(.*?)] csbcB1cE l__brad_trans_tl
        regex_replace_all:nnN a calpha l__brad_trans_tl
        % other replacements
        % ...
        % deliver the new token list
        l__brad_trans_tl

        ExplSyntaxOff

        begindocument

        $transx[1]+x[2]^2+a+a[3]$

        enddocument


        enter image description here






        share|improve this answer


















        • 1





          Same comment as I made on David's answer. Yes, my l3regex is sometimes useful, but here the right solution by far is to do the replacements in Mathematica, not TeX.

          – Bruno Le Floch
          yesterday















        9














        An extensible set of replacements:



        documentclassarticle
        usepackageamsmath
        usepackagexparse

        ExplSyntaxOn
        NewDocumentCommandtransm

        tl_set:Nn l__brad_trans_tl #1
        regex_replace_all:nnN [(.*?)] csbcB1cE l__brad_trans_tl
        regex_replace_all:nnN a calpha l__brad_trans_tl
        % other replacements
        % ...
        % deliver the new token list
        l__brad_trans_tl

        ExplSyntaxOff

        begindocument

        $transx[1]+x[2]^2+a+a[3]$

        enddocument


        enter image description here






        share|improve this answer


















        • 1





          Same comment as I made on David's answer. Yes, my l3regex is sometimes useful, but here the right solution by far is to do the replacements in Mathematica, not TeX.

          – Bruno Le Floch
          yesterday













        9












        9








        9







        An extensible set of replacements:



        documentclassarticle
        usepackageamsmath
        usepackagexparse

        ExplSyntaxOn
        NewDocumentCommandtransm

        tl_set:Nn l__brad_trans_tl #1
        regex_replace_all:nnN [(.*?)] csbcB1cE l__brad_trans_tl
        regex_replace_all:nnN a calpha l__brad_trans_tl
        % other replacements
        % ...
        % deliver the new token list
        l__brad_trans_tl

        ExplSyntaxOff

        begindocument

        $transx[1]+x[2]^2+a+a[3]$

        enddocument


        enter image description here






        share|improve this answer













        An extensible set of replacements:



        documentclassarticle
        usepackageamsmath
        usepackagexparse

        ExplSyntaxOn
        NewDocumentCommandtransm

        tl_set:Nn l__brad_trans_tl #1
        regex_replace_all:nnN [(.*?)] csbcB1cE l__brad_trans_tl
        regex_replace_all:nnN a calpha l__brad_trans_tl
        % other replacements
        % ...
        % deliver the new token list
        l__brad_trans_tl

        ExplSyntaxOff

        begindocument

        $transx[1]+x[2]^2+a+a[3]$

        enddocument


        enter image description here







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered yesterday









        egregegreg

        729k8819273240




        729k8819273240







        • 1





          Same comment as I made on David's answer. Yes, my l3regex is sometimes useful, but here the right solution by far is to do the replacements in Mathematica, not TeX.

          – Bruno Le Floch
          yesterday












        • 1





          Same comment as I made on David's answer. Yes, my l3regex is sometimes useful, but here the right solution by far is to do the replacements in Mathematica, not TeX.

          – Bruno Le Floch
          yesterday







        1




        1





        Same comment as I made on David's answer. Yes, my l3regex is sometimes useful, but here the right solution by far is to do the replacements in Mathematica, not TeX.

        – Bruno Le Floch
        yesterday





        Same comment as I made on David's answer. Yes, my l3regex is sometimes useful, but here the right solution by far is to do the replacements in Mathematica, not TeX.

        – Bruno Le Floch
        yesterday











        7














        I really can not recommend doing this, but as you ask...



        enter image description here



        documentclassarticle

        begindocument


        mathcode`[="8000
        mathcode`]="8000

        catcode`[=active gdef[_bgroup
        catcode`]=active gdef]egroup


        hmmm
        [
        a[1]+a[2]+b[c+d[3]] + x
        ]

        enddocument





        share|improve this answer























        • Thank you for your answer - this is not quite what I'm after. But since this is not quite a conventional method, perhaps I am better simply going through and replacing things manually... I am moreso hoping to simply find a particular string and replace it with something else.

          – Brad
          yesterday











        • @Brad that really isn't how tex works:-) (unless you are using luatex)

          – David Carlisle
          yesterday











        • No worries at all! I have no problem sorting through everything, but I was hoping to save myself a bit of eyesight. Thank you for your help regardless!

          – Brad
          yesterday











        • @DavidCarlisle Come on, don't advocate crazy solutions to problems that can be trivially solved on the other side of the conversion. Brad should simply do the replacement in Mathematica.

          – Bruno Le Floch
          yesterday






        • 2





          @BrunoLeFloch I'd already said that in comments under the question, or just use perl or any other sane mechanism, but it's easy for you to see that this is beyond what's reasonable to do in tex as you know more than most on where tex's limits are, but I think it is still useful as a general rule to sketch how far you can get (and in particular what you can not reasonably do) in tex for this kind of question.

          – David Carlisle
          yesterday















        7














        I really can not recommend doing this, but as you ask...



        enter image description here



        documentclassarticle

        begindocument


        mathcode`[="8000
        mathcode`]="8000

        catcode`[=active gdef[_bgroup
        catcode`]=active gdef]egroup


        hmmm
        [
        a[1]+a[2]+b[c+d[3]] + x
        ]

        enddocument





        share|improve this answer























        • Thank you for your answer - this is not quite what I'm after. But since this is not quite a conventional method, perhaps I am better simply going through and replacing things manually... I am moreso hoping to simply find a particular string and replace it with something else.

          – Brad
          yesterday











        • @Brad that really isn't how tex works:-) (unless you are using luatex)

          – David Carlisle
          yesterday











        • No worries at all! I have no problem sorting through everything, but I was hoping to save myself a bit of eyesight. Thank you for your help regardless!

          – Brad
          yesterday











        • @DavidCarlisle Come on, don't advocate crazy solutions to problems that can be trivially solved on the other side of the conversion. Brad should simply do the replacement in Mathematica.

          – Bruno Le Floch
          yesterday






        • 2





          @BrunoLeFloch I'd already said that in comments under the question, or just use perl or any other sane mechanism, but it's easy for you to see that this is beyond what's reasonable to do in tex as you know more than most on where tex's limits are, but I think it is still useful as a general rule to sketch how far you can get (and in particular what you can not reasonably do) in tex for this kind of question.

          – David Carlisle
          yesterday













        7












        7








        7







        I really can not recommend doing this, but as you ask...



        enter image description here



        documentclassarticle

        begindocument


        mathcode`[="8000
        mathcode`]="8000

        catcode`[=active gdef[_bgroup
        catcode`]=active gdef]egroup


        hmmm
        [
        a[1]+a[2]+b[c+d[3]] + x
        ]

        enddocument





        share|improve this answer













        I really can not recommend doing this, but as you ask...



        enter image description here



        documentclassarticle

        begindocument


        mathcode`[="8000
        mathcode`]="8000

        catcode`[=active gdef[_bgroup
        catcode`]=active gdef]egroup


        hmmm
        [
        a[1]+a[2]+b[c+d[3]] + x
        ]

        enddocument






        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered yesterday









        David CarlisleDavid Carlisle

        496k4111431890




        496k4111431890












        • Thank you for your answer - this is not quite what I'm after. But since this is not quite a conventional method, perhaps I am better simply going through and replacing things manually... I am moreso hoping to simply find a particular string and replace it with something else.

          – Brad
          yesterday











        • @Brad that really isn't how tex works:-) (unless you are using luatex)

          – David Carlisle
          yesterday











        • No worries at all! I have no problem sorting through everything, but I was hoping to save myself a bit of eyesight. Thank you for your help regardless!

          – Brad
          yesterday











        • @DavidCarlisle Come on, don't advocate crazy solutions to problems that can be trivially solved on the other side of the conversion. Brad should simply do the replacement in Mathematica.

          – Bruno Le Floch
          yesterday






        • 2





          @BrunoLeFloch I'd already said that in comments under the question, or just use perl or any other sane mechanism, but it's easy for you to see that this is beyond what's reasonable to do in tex as you know more than most on where tex's limits are, but I think it is still useful as a general rule to sketch how far you can get (and in particular what you can not reasonably do) in tex for this kind of question.

          – David Carlisle
          yesterday

















        • Thank you for your answer - this is not quite what I'm after. But since this is not quite a conventional method, perhaps I am better simply going through and replacing things manually... I am moreso hoping to simply find a particular string and replace it with something else.

          – Brad
          yesterday











        • @Brad that really isn't how tex works:-) (unless you are using luatex)

          – David Carlisle
          yesterday











        • No worries at all! I have no problem sorting through everything, but I was hoping to save myself a bit of eyesight. Thank you for your help regardless!

          – Brad
          yesterday











        • @DavidCarlisle Come on, don't advocate crazy solutions to problems that can be trivially solved on the other side of the conversion. Brad should simply do the replacement in Mathematica.

          – Bruno Le Floch
          yesterday






        • 2





          @BrunoLeFloch I'd already said that in comments under the question, or just use perl or any other sane mechanism, but it's easy for you to see that this is beyond what's reasonable to do in tex as you know more than most on where tex's limits are, but I think it is still useful as a general rule to sketch how far you can get (and in particular what you can not reasonably do) in tex for this kind of question.

          – David Carlisle
          yesterday
















        Thank you for your answer - this is not quite what I'm after. But since this is not quite a conventional method, perhaps I am better simply going through and replacing things manually... I am moreso hoping to simply find a particular string and replace it with something else.

        – Brad
        yesterday





        Thank you for your answer - this is not quite what I'm after. But since this is not quite a conventional method, perhaps I am better simply going through and replacing things manually... I am moreso hoping to simply find a particular string and replace it with something else.

        – Brad
        yesterday













        @Brad that really isn't how tex works:-) (unless you are using luatex)

        – David Carlisle
        yesterday





        @Brad that really isn't how tex works:-) (unless you are using luatex)

        – David Carlisle
        yesterday













        No worries at all! I have no problem sorting through everything, but I was hoping to save myself a bit of eyesight. Thank you for your help regardless!

        – Brad
        yesterday





        No worries at all! I have no problem sorting through everything, but I was hoping to save myself a bit of eyesight. Thank you for your help regardless!

        – Brad
        yesterday













        @DavidCarlisle Come on, don't advocate crazy solutions to problems that can be trivially solved on the other side of the conversion. Brad should simply do the replacement in Mathematica.

        – Bruno Le Floch
        yesterday





        @DavidCarlisle Come on, don't advocate crazy solutions to problems that can be trivially solved on the other side of the conversion. Brad should simply do the replacement in Mathematica.

        – Bruno Le Floch
        yesterday




        2




        2





        @BrunoLeFloch I'd already said that in comments under the question, or just use perl or any other sane mechanism, but it's easy for you to see that this is beyond what's reasonable to do in tex as you know more than most on where tex's limits are, but I think it is still useful as a general rule to sketch how far you can get (and in particular what you can not reasonably do) in tex for this kind of question.

        – David Carlisle
        yesterday





        @BrunoLeFloch I'd already said that in comments under the question, or just use perl or any other sane mechanism, but it's easy for you to see that this is beyond what's reasonable to do in tex as you know more than most on where tex's limits are, but I think it is still useful as a general rule to sketch how far you can get (and in particular what you can not reasonably do) in tex for this kind of question.

        – David Carlisle
        yesterday











        7














        Inasmuch as I love doing crazy things in TeX, do the replacements in Mathematica! This will save you a huge amount of pain. For instance,



        expr = (a[1] + a[2])/Sqrt[a[3]]
        expr /. a[1] -> [Alpha], a[2] -> [Beta], a[3] -> [Gamma] // TeXForm


        gives fracalpha +beta sqrtgamma with no need to tweak the output.






        share|improve this answer























        • This is actually much more efficient than I realised! I was specifically trying to avid all those dirty symbols in my code but that's a much better overall solution. Big +1, thank you for the advice! I have edited my question to reflect this. I assume one would need to replace x[2] with the full subscript notation to achieve the $x_2$ necessary as well?

          – Brad
          10 hours ago












        • Yeah, it's just as easy to do the subscript replacements as well. Thank you for pointing this out Bruno; I will keep the answer above since I guess it does answer the specific question in particular, but I appreciate your solution greatly.

          – Brad
          9 hours ago















        7














        Inasmuch as I love doing crazy things in TeX, do the replacements in Mathematica! This will save you a huge amount of pain. For instance,



        expr = (a[1] + a[2])/Sqrt[a[3]]
        expr /. a[1] -> [Alpha], a[2] -> [Beta], a[3] -> [Gamma] // TeXForm


        gives fracalpha +beta sqrtgamma with no need to tweak the output.






        share|improve this answer























        • This is actually much more efficient than I realised! I was specifically trying to avid all those dirty symbols in my code but that's a much better overall solution. Big +1, thank you for the advice! I have edited my question to reflect this. I assume one would need to replace x[2] with the full subscript notation to achieve the $x_2$ necessary as well?

          – Brad
          10 hours ago












        • Yeah, it's just as easy to do the subscript replacements as well. Thank you for pointing this out Bruno; I will keep the answer above since I guess it does answer the specific question in particular, but I appreciate your solution greatly.

          – Brad
          9 hours ago













        7












        7








        7







        Inasmuch as I love doing crazy things in TeX, do the replacements in Mathematica! This will save you a huge amount of pain. For instance,



        expr = (a[1] + a[2])/Sqrt[a[3]]
        expr /. a[1] -> [Alpha], a[2] -> [Beta], a[3] -> [Gamma] // TeXForm


        gives fracalpha +beta sqrtgamma with no need to tweak the output.






        share|improve this answer













        Inasmuch as I love doing crazy things in TeX, do the replacements in Mathematica! This will save you a huge amount of pain. For instance,



        expr = (a[1] + a[2])/Sqrt[a[3]]
        expr /. a[1] -> [Alpha], a[2] -> [Beta], a[3] -> [Gamma] // TeXForm


        gives fracalpha +beta sqrtgamma with no need to tweak the output.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered yesterday









        Bruno Le FlochBruno Le Floch

        34.2k5115211




        34.2k5115211












        • This is actually much more efficient than I realised! I was specifically trying to avid all those dirty symbols in my code but that's a much better overall solution. Big +1, thank you for the advice! I have edited my question to reflect this. I assume one would need to replace x[2] with the full subscript notation to achieve the $x_2$ necessary as well?

          – Brad
          10 hours ago












        • Yeah, it's just as easy to do the subscript replacements as well. Thank you for pointing this out Bruno; I will keep the answer above since I guess it does answer the specific question in particular, but I appreciate your solution greatly.

          – Brad
          9 hours ago

















        • This is actually much more efficient than I realised! I was specifically trying to avid all those dirty symbols in my code but that's a much better overall solution. Big +1, thank you for the advice! I have edited my question to reflect this. I assume one would need to replace x[2] with the full subscript notation to achieve the $x_2$ necessary as well?

          – Brad
          10 hours ago












        • Yeah, it's just as easy to do the subscript replacements as well. Thank you for pointing this out Bruno; I will keep the answer above since I guess it does answer the specific question in particular, but I appreciate your solution greatly.

          – Brad
          9 hours ago
















        This is actually much more efficient than I realised! I was specifically trying to avid all those dirty symbols in my code but that's a much better overall solution. Big +1, thank you for the advice! I have edited my question to reflect this. I assume one would need to replace x[2] with the full subscript notation to achieve the $x_2$ necessary as well?

        – Brad
        10 hours ago






        This is actually much more efficient than I realised! I was specifically trying to avid all those dirty symbols in my code but that's a much better overall solution. Big +1, thank you for the advice! I have edited my question to reflect this. I assume one would need to replace x[2] with the full subscript notation to achieve the $x_2$ necessary as well?

        – Brad
        10 hours ago














        Yeah, it's just as easy to do the subscript replacements as well. Thank you for pointing this out Bruno; I will keep the answer above since I guess it does answer the specific question in particular, but I appreciate your solution greatly.

        – Brad
        9 hours ago





        Yeah, it's just as easy to do the subscript replacements as well. Thank you for pointing this out Bruno; I will keep the answer above since I guess it does answer the specific question in particular, but I appreciate your solution greatly.

        – Brad
        9 hours ago











        5














        Along the vein of my cited Translate in-line equations to TeX code (Any Package?), but a much simpler parsing request, I provide translate.



        No catcode changes required. It will retain surrounding math style, etc.



        documentclassarticle
        usepackagelistofitems
        newtokseqtoks
        newcommandaddtoeqtoks[1]expandaftereqtoksexpandaftertheeqtoks#1
        newcommandtranslate[1]%
        setsepchar]%
        readlistmyeqn#1%
        eqtoks%
        foreachitemxinmyeqn[]%
        ifnumxcnt=1else%
        if[myeqnsep[numexprxcnt-1]addtoeqtoks_bgroupfi%
        if]myeqnsep[numexprxcnt-1]addtoeqtoksegroupfi%
        fi%
        expandafteraddtoeqtoksexpandafterx%
        %
        theeqtoks%

        begindocument
        [
        translatea[1]+a[2]+b[c+d[3]] + x
        ]
        enddocument


        enter image description here






        share|improve this answer



























          5














          Along the vein of my cited Translate in-line equations to TeX code (Any Package?), but a much simpler parsing request, I provide translate.



          No catcode changes required. It will retain surrounding math style, etc.



          documentclassarticle
          usepackagelistofitems
          newtokseqtoks
          newcommandaddtoeqtoks[1]expandaftereqtoksexpandaftertheeqtoks#1
          newcommandtranslate[1]%
          setsepchar]%
          readlistmyeqn#1%
          eqtoks%
          foreachitemxinmyeqn[]%
          ifnumxcnt=1else%
          if[myeqnsep[numexprxcnt-1]addtoeqtoks_bgroupfi%
          if]myeqnsep[numexprxcnt-1]addtoeqtoksegroupfi%
          fi%
          expandafteraddtoeqtoksexpandafterx%
          %
          theeqtoks%

          begindocument
          [
          translatea[1]+a[2]+b[c+d[3]] + x
          ]
          enddocument


          enter image description here






          share|improve this answer

























            5












            5








            5







            Along the vein of my cited Translate in-line equations to TeX code (Any Package?), but a much simpler parsing request, I provide translate.



            No catcode changes required. It will retain surrounding math style, etc.



            documentclassarticle
            usepackagelistofitems
            newtokseqtoks
            newcommandaddtoeqtoks[1]expandaftereqtoksexpandaftertheeqtoks#1
            newcommandtranslate[1]%
            setsepchar]%
            readlistmyeqn#1%
            eqtoks%
            foreachitemxinmyeqn[]%
            ifnumxcnt=1else%
            if[myeqnsep[numexprxcnt-1]addtoeqtoks_bgroupfi%
            if]myeqnsep[numexprxcnt-1]addtoeqtoksegroupfi%
            fi%
            expandafteraddtoeqtoksexpandafterx%
            %
            theeqtoks%

            begindocument
            [
            translatea[1]+a[2]+b[c+d[3]] + x
            ]
            enddocument


            enter image description here






            share|improve this answer













            Along the vein of my cited Translate in-line equations to TeX code (Any Package?), but a much simpler parsing request, I provide translate.



            No catcode changes required. It will retain surrounding math style, etc.



            documentclassarticle
            usepackagelistofitems
            newtokseqtoks
            newcommandaddtoeqtoks[1]expandaftereqtoksexpandaftertheeqtoks#1
            newcommandtranslate[1]%
            setsepchar]%
            readlistmyeqn#1%
            eqtoks%
            foreachitemxinmyeqn[]%
            ifnumxcnt=1else%
            if[myeqnsep[numexprxcnt-1]addtoeqtoks_bgroupfi%
            if]myeqnsep[numexprxcnt-1]addtoeqtoksegroupfi%
            fi%
            expandafteraddtoeqtoksexpandafterx%
            %
            theeqtoks%

            begindocument
            [
            translatea[1]+a[2]+b[c+d[3]] + x
            ]
            enddocument


            enter image description here







            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered yesterday









            Steven B. SegletesSteven B. Segletes

            159k9204413




            159k9204413





















                4














                For the sake of variety, here's a LuaLaTeX-based solution. It sets up a Lua function, called trans, which does most of the work with the help of Lua's versatile string-handling routines. The LaTeX macro trans is a wrapper that invokes the Lua function.



                enter image description here



                documentclassarticle
                usepackageluacode % for "luacode" environment and "luastringN" macro
                beginluacode


                function makesubscr ( s )
                s = s:gsub ( "(%b[])", function(x)
                return ( "_" .. string.sub ( x , 2 , -2 ) .. "" )
                end )
                if s:find ( "%b[]" ) then
                s = makesubscr ( s )
                end
                return s
                end
                function trans ( s )
                s = makesubscr ( s )
                s = s:gsub ( "a" , "\alpha" )
                s = s:gsub ( "b" , "\beta" )
                tex.sprint ( s )
                end


                endluacode

                %% TeX-side code
                newcommandtrans[1]directluatrans(luastringN#1)

                begindocument
                $transx[1]+x[2]^2+a+a[3]$

                $transa[1]+a[2]+b[c+d[3]]+x$
                enddocument





                share|improve this answer



























                  4














                  For the sake of variety, here's a LuaLaTeX-based solution. It sets up a Lua function, called trans, which does most of the work with the help of Lua's versatile string-handling routines. The LaTeX macro trans is a wrapper that invokes the Lua function.



                  enter image description here



                  documentclassarticle
                  usepackageluacode % for "luacode" environment and "luastringN" macro
                  beginluacode


                  function makesubscr ( s )
                  s = s:gsub ( "(%b[])", function(x)
                  return ( "_" .. string.sub ( x , 2 , -2 ) .. "" )
                  end )
                  if s:find ( "%b[]" ) then
                  s = makesubscr ( s )
                  end
                  return s
                  end
                  function trans ( s )
                  s = makesubscr ( s )
                  s = s:gsub ( "a" , "\alpha" )
                  s = s:gsub ( "b" , "\beta" )
                  tex.sprint ( s )
                  end


                  endluacode

                  %% TeX-side code
                  newcommandtrans[1]directluatrans(luastringN#1)

                  begindocument
                  $transx[1]+x[2]^2+a+a[3]$

                  $transa[1]+a[2]+b[c+d[3]]+x$
                  enddocument





                  share|improve this answer

























                    4












                    4








                    4







                    For the sake of variety, here's a LuaLaTeX-based solution. It sets up a Lua function, called trans, which does most of the work with the help of Lua's versatile string-handling routines. The LaTeX macro trans is a wrapper that invokes the Lua function.



                    enter image description here



                    documentclassarticle
                    usepackageluacode % for "luacode" environment and "luastringN" macro
                    beginluacode


                    function makesubscr ( s )
                    s = s:gsub ( "(%b[])", function(x)
                    return ( "_" .. string.sub ( x , 2 , -2 ) .. "" )
                    end )
                    if s:find ( "%b[]" ) then
                    s = makesubscr ( s )
                    end
                    return s
                    end
                    function trans ( s )
                    s = makesubscr ( s )
                    s = s:gsub ( "a" , "\alpha" )
                    s = s:gsub ( "b" , "\beta" )
                    tex.sprint ( s )
                    end


                    endluacode

                    %% TeX-side code
                    newcommandtrans[1]directluatrans(luastringN#1)

                    begindocument
                    $transx[1]+x[2]^2+a+a[3]$

                    $transa[1]+a[2]+b[c+d[3]]+x$
                    enddocument





                    share|improve this answer













                    For the sake of variety, here's a LuaLaTeX-based solution. It sets up a Lua function, called trans, which does most of the work with the help of Lua's versatile string-handling routines. The LaTeX macro trans is a wrapper that invokes the Lua function.



                    enter image description here



                    documentclassarticle
                    usepackageluacode % for "luacode" environment and "luastringN" macro
                    beginluacode


                    function makesubscr ( s )
                    s = s:gsub ( "(%b[])", function(x)
                    return ( "_" .. string.sub ( x , 2 , -2 ) .. "" )
                    end )
                    if s:find ( "%b[]" ) then
                    s = makesubscr ( s )
                    end
                    return s
                    end
                    function trans ( s )
                    s = makesubscr ( s )
                    s = s:gsub ( "a" , "\alpha" )
                    s = s:gsub ( "b" , "\beta" )
                    tex.sprint ( s )
                    end


                    endluacode

                    %% TeX-side code
                    newcommandtrans[1]directluatrans(luastringN#1)

                    begindocument
                    $transx[1]+x[2]^2+a+a[3]$

                    $transa[1]+a[2]+b[c+d[3]]+x$
                    enddocument






                    share|improve this answer












                    share|improve this answer



                    share|improve this answer










                    answered 14 hours ago









                    MicoMico

                    284k31388778




                    284k31388778





















                        2














                        Here's a solution. The command addreplacementruletext-to-replacereplacement-text specifies replacements to make. Then the command replacesome math does the replacements.



                        This would probably be better done with the l3regex package or really find and replace as many other people mentioned.



                        documentclassarticle
                        makeatletter
                        newtoksri@activechars
                        defaddreplacementrule#1#2addreplacementrule@#1@nil#2
                        defaddreplacementrule@#1#2@nil#3%
                        ri@activecharsexpandaftertheri@activechars\#1%
                        ri@maketransitions#2@nil#1#3%


                        defreplace#1%
                        begingroup
                        def\##1%
                        bgrouplccode`~=`##1lowercaseegroup
                        def~ri@continue##1%
                        %
                        catcode`##1=active
                        %
                        theri@activechars
                        scantokens#1%
                        endgroup


                        defri@maketransitions#1#2@nil#3#4%
                        deftemp#2%
                        ifxtempempty
                        expandafterdefcsname ri@lookup@detokenize#3#1endcsname#4%
                        letnextrelax
                        else
                        expandafterdefcsname ri@lookup@detokenize#3#1endcsnameri@continue#3#1%
                        defnextri@maketransitions#2@nil#3#1#4%
                        fi
                        next



                        defri@continue#1#2%
                        @ifundefinedri@lookup@detokenize#1#2%
                        detokenize#1#2%
                        %
                        csname ri@lookup@detokenize#1#2endcsname
                        %



                        begindocument
                        addreplacementrulex[2]x_2
                        addreplacementrulex[3]x^2

                        $x+1+x[2]+x[3]+x[1]$

                        replace$x+1+x[2]+x[3]+x[1]$
                        enddocument


                        enter image description here






                        share|improve this answer





























                          2














                          Here's a solution. The command addreplacementruletext-to-replacereplacement-text specifies replacements to make. Then the command replacesome math does the replacements.



                          This would probably be better done with the l3regex package or really find and replace as many other people mentioned.



                          documentclassarticle
                          makeatletter
                          newtoksri@activechars
                          defaddreplacementrule#1#2addreplacementrule@#1@nil#2
                          defaddreplacementrule@#1#2@nil#3%
                          ri@activecharsexpandaftertheri@activechars\#1%
                          ri@maketransitions#2@nil#1#3%


                          defreplace#1%
                          begingroup
                          def\##1%
                          bgrouplccode`~=`##1lowercaseegroup
                          def~ri@continue##1%
                          %
                          catcode`##1=active
                          %
                          theri@activechars
                          scantokens#1%
                          endgroup


                          defri@maketransitions#1#2@nil#3#4%
                          deftemp#2%
                          ifxtempempty
                          expandafterdefcsname ri@lookup@detokenize#3#1endcsname#4%
                          letnextrelax
                          else
                          expandafterdefcsname ri@lookup@detokenize#3#1endcsnameri@continue#3#1%
                          defnextri@maketransitions#2@nil#3#1#4%
                          fi
                          next



                          defri@continue#1#2%
                          @ifundefinedri@lookup@detokenize#1#2%
                          detokenize#1#2%
                          %
                          csname ri@lookup@detokenize#1#2endcsname
                          %



                          begindocument
                          addreplacementrulex[2]x_2
                          addreplacementrulex[3]x^2

                          $x+1+x[2]+x[3]+x[1]$

                          replace$x+1+x[2]+x[3]+x[1]$
                          enddocument


                          enter image description here






                          share|improve this answer



























                            2












                            2








                            2







                            Here's a solution. The command addreplacementruletext-to-replacereplacement-text specifies replacements to make. Then the command replacesome math does the replacements.



                            This would probably be better done with the l3regex package or really find and replace as many other people mentioned.



                            documentclassarticle
                            makeatletter
                            newtoksri@activechars
                            defaddreplacementrule#1#2addreplacementrule@#1@nil#2
                            defaddreplacementrule@#1#2@nil#3%
                            ri@activecharsexpandaftertheri@activechars\#1%
                            ri@maketransitions#2@nil#1#3%


                            defreplace#1%
                            begingroup
                            def\##1%
                            bgrouplccode`~=`##1lowercaseegroup
                            def~ri@continue##1%
                            %
                            catcode`##1=active
                            %
                            theri@activechars
                            scantokens#1%
                            endgroup


                            defri@maketransitions#1#2@nil#3#4%
                            deftemp#2%
                            ifxtempempty
                            expandafterdefcsname ri@lookup@detokenize#3#1endcsname#4%
                            letnextrelax
                            else
                            expandafterdefcsname ri@lookup@detokenize#3#1endcsnameri@continue#3#1%
                            defnextri@maketransitions#2@nil#3#1#4%
                            fi
                            next



                            defri@continue#1#2%
                            @ifundefinedri@lookup@detokenize#1#2%
                            detokenize#1#2%
                            %
                            csname ri@lookup@detokenize#1#2endcsname
                            %



                            begindocument
                            addreplacementrulex[2]x_2
                            addreplacementrulex[3]x^2

                            $x+1+x[2]+x[3]+x[1]$

                            replace$x+1+x[2]+x[3]+x[1]$
                            enddocument


                            enter image description here






                            share|improve this answer















                            Here's a solution. The command addreplacementruletext-to-replacereplacement-text specifies replacements to make. Then the command replacesome math does the replacements.



                            This would probably be better done with the l3regex package or really find and replace as many other people mentioned.



                            documentclassarticle
                            makeatletter
                            newtoksri@activechars
                            defaddreplacementrule#1#2addreplacementrule@#1@nil#2
                            defaddreplacementrule@#1#2@nil#3%
                            ri@activecharsexpandaftertheri@activechars\#1%
                            ri@maketransitions#2@nil#1#3%


                            defreplace#1%
                            begingroup
                            def\##1%
                            bgrouplccode`~=`##1lowercaseegroup
                            def~ri@continue##1%
                            %
                            catcode`##1=active
                            %
                            theri@activechars
                            scantokens#1%
                            endgroup


                            defri@maketransitions#1#2@nil#3#4%
                            deftemp#2%
                            ifxtempempty
                            expandafterdefcsname ri@lookup@detokenize#3#1endcsname#4%
                            letnextrelax
                            else
                            expandafterdefcsname ri@lookup@detokenize#3#1endcsnameri@continue#3#1%
                            defnextri@maketransitions#2@nil#3#1#4%
                            fi
                            next



                            defri@continue#1#2%
                            @ifundefinedri@lookup@detokenize#1#2%
                            detokenize#1#2%
                            %
                            csname ri@lookup@detokenize#1#2endcsname
                            %



                            begindocument
                            addreplacementrulex[2]x_2
                            addreplacementrulex[3]x^2

                            $x+1+x[2]+x[3]+x[1]$

                            replace$x+1+x[2]+x[3]+x[1]$
                            enddocument


                            enter image description here







                            share|improve this answer














                            share|improve this answer



                            share|improve this answer








                            edited yesterday

























                            answered yesterday









                            Hood ChathamHood Chatham

                            4,3641428




                            4,3641428



























                                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%2f481546%2fhow-can-i-replace-every-global-instance-of-x2-with-x-2%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

                                Boston (Lincolnshire) Stedsbyld | Berne yn Boston | NavigaasjemenuBoston Borough CouncilBoston, Lincolnshire

                                Ballerup Komuun Stääden an saarpen | Futnuuten | Luke uk diar | Nawigatsjuunwww.ballerup.dkwww.statistikbanken.dk: Tabelle BEF44 (Folketal pr. 1. januar fordelt på byer)Commonskategorii: Ballerup Komuun55° 44′ N, 12° 22′ O

                                Serbia Índice Etimología Historia Geografía Entorno natural División administrativa Política Demografía Economía Cultura Deportes Véase también Notas Referencias Bibliografía Enlaces externos Menú de navegación44°49′00″N 20°28′00″E / 44.816666666667, 20.46666666666744°49′00″N 20°28′00″E / 44.816666666667, 20.466666666667U.S. Department of Commerce (2015)«Informe sobre Desarrollo Humano 2018»Kosovo-Metohija.Neutralna Srbija u NATO okruzenju.The SerbsTheories on the Origin of the Serbs.Serbia.Earls: Webster's Quotations, Facts and Phrases.Egeo y Balcanes.Kalemegdan.Southern Pannonia during the age of the Great Migrations.Culture in Serbia.History.The Serbian Origin of the Montenegrins.Nemanjics' period (1186-1353).Stefan Uros (1355-1371).Serbian medieval history.Habsburg–Ottoman Wars (1525–1718).The Ottoman Empire, 1700-1922.The First Serbian Uprising.Miloš, prince of Serbia.3. Bosnia-Hercegovina and the Congress of Berlin.The Balkan Wars and the Partition of Macedonia.The Falcon and the Eagle: Montenegro and Austria-Hungary, 1908-1914.Typhus fever on the eastern front in World War I.Anniversary of WWI battle marked in Serbia.La derrota austriaca en los Balcanes. Fin del Imperio Austro-Húngaro.Imperio austriaco y Reino de Hungría.Los tiempos modernos: del capitalismo a la globalización, siglos XVII al XXI.The period of Croatia within ex-Yugoslavia.Yugoslavia: Much in a Name.Las dictaduras europeas.Croacia: mito y realidad."Crods ask arms".Prólogo a la invasión.La campaña de los Balcanes.La resistencia en Yugoslavia.Jasenovac Research Institute.Día en memoria de las víctimas del genocidio en la Segunda Guerra Mundial.El infierno estuvo en Jasenovac.Croacia empieza a «desenterrar» a sus muertos de Jasenovac.World fascism: a historical encyclopedia, Volumen 1.Tito. Josip Broz.El nuevo orden y la resistencia.La conquista del poder.Algunos aspectos de la economía yugoslava a mediados de 1962.Albania-Kosovo crisis.De Kosovo a Kosova: una visión demográfica.La crisis de la economía yugoslava y la política de "estabilización".Milosevic: el poder de un absolutista."Serbia under Milošević: politics in the 1990s"Milosevic cavó en Kosovo la tumba de la antigua Yugoslavia.La ONU exculpa a Serbia de genocidio en la guerra de Bosnia.Slobodan Milosevic, el burócrata que supo usar el odio.Es la fuerza contra el sufrimiento de muchos inocentes.Matanza de civiles al bombardear la OTAN un puente mientras pasaba un tren.Las consecuencias negativas de los bombardeos de Yugoslavia se sentirán aún durante largo tiempo.Kostunica advierte que la misión de Europa en Kosovo es ilegal.Las 24 horas más largas en la vida de Slobodan Milosevic.Serbia declara la guerra a la mafia por matar a Djindjic.Tadic presentará "quizás en diciembre" la solicitud de entrada en la UE.Montenegro declara su independencia de Serbia.Serbia se declara estado soberano tras separación de Montenegro.«Accordance with International Law of the Unilateral Declaration of Independence by the Provisional Institutions of Self-Government of Kosovo (Request for Advisory Opinion)»Mladic pasa por el médico antes de la audiencia para extraditarloDatos de Serbia y Kosovo.The Carpathian Mountains.Position, Relief, Climate.Transport.Finding birds in Serbia.U Srbiji do 2010. godine 10% teritorije nacionalni parkovi.Geography.Serbia: Climate.Variability of Climate In Serbia In The Second Half of The 20thc Entury.BASIC CLIMATE CHARACTERISTICS FOR THE TERRITORY OF SERBIA.Fauna y flora: Serbia.Serbia and Montenegro.Información general sobre Serbia.Republic of Serbia Environmental Protection Agency (SEPA).Serbia recycling 15% of waste.Reform process of the Serbian energy sector.20-MW Wind Project Being Developed in Serbia.Las Naciones Unidas. Paz para Kosovo.Aniversario sin fiesta.Population by national or ethnic groups by Census 2002.Article 7. Coat of arms, flag and national anthem.Serbia, flag of.Historia.«Serbia and Montenegro in Pictures»Serbia.Serbia aprueba su nueva Constitución con un apoyo de más del 50%.Serbia. Population.«El nacionalista Nikolic gana las elecciones presidenciales en Serbia»El europeísta Borís Tadic gana la segunda vuelta de las presidenciales serbias.Aleksandar Vucic, de ultranacionalista serbio a fervoroso europeístaKostunica condena la declaración del "falso estado" de Kosovo.Comienza el debate sobre la independencia de Kosovo en el TIJ.La Corte Internacional de Justicia dice que Kosovo no violó el derecho internacional al declarar su independenciaKosovo: Enviado de la ONU advierte tensiones y fragilidad.«Bruselas recomienda negociar la adhesión de Serbia tras el acuerdo sobre Kosovo»Monografía de Serbia.Bez smanjivanja Vojske Srbije.Military statistics Serbia and Montenegro.Šutanovac: Vojni budžet za 2009. godinu 70 milijardi dinara.Serbia-Montenegro shortens obligatory military service to six months.No hay justicia para las víctimas de los bombardeos de la OTAN.Zapatero reitera la negativa de España a reconocer la independencia de Kosovo.Anniversary of the signing of the Stabilisation and Association Agreement.Detenido en Serbia Radovan Karadzic, el criminal de guerra más buscado de Europa."Serbia presentará su candidatura de acceso a la UE antes de fin de año".Serbia solicita la adhesión a la UE.Detenido el exgeneral serbobosnio Ratko Mladic, principal acusado del genocidio en los Balcanes«Lista de todos los Estados Miembros de las Naciones Unidas que son parte o signatarios en los diversos instrumentos de derechos humanos de las Naciones Unidas»versión pdfProtocolo Facultativo de la Convención sobre la Eliminación de todas las Formas de Discriminación contra la MujerConvención contra la tortura y otros tratos o penas crueles, inhumanos o degradantesversión pdfProtocolo Facultativo de la Convención sobre los Derechos de las Personas con DiscapacidadEl ACNUR recibe con beneplácito el envío de tropas de la OTAN a Kosovo y se prepara ante una posible llegada de refugiados a Serbia.Kosovo.- El jefe de la Minuk denuncia que los serbios boicotearon las legislativas por 'presiones'.Bosnia and Herzegovina. Population.Datos básicos de Montenegro, historia y evolución política.Serbia y Montenegro. Indicador: Tasa global de fecundidad (por 1000 habitantes).Serbia y Montenegro. Indicador: Tasa bruta de mortalidad (por 1000 habitantes).Population.Falleció el patriarca de la Iglesia Ortodoxa serbia.Atacan en Kosovo autobuses con peregrinos tras la investidura del patriarca serbio IrinejSerbian in Hungary.Tasas de cambio."Kosovo es de todos sus ciudadanos".Report for Serbia.Country groups by income.GROSS DOMESTIC PRODUCT (GDP) OF THE REPUBLIC OF SERBIA 1997–2007.Economic Trends in the Republic of Serbia 2006.National Accounts Statitics.Саопштења за јавност.GDP per inhabitant varied by one to six across the EU27 Member States.Un pacto de estabilidad para Serbia.Unemployment rate rises in Serbia.Serbia, Belarus agree free trade to woo investors.Serbia, Turkey call investors to Serbia.Success Stories.U.S. Private Investment in Serbia and Montenegro.Positive trend.Banks in Serbia.La Cámara de Comercio acompaña a empresas madrileñas a Serbia y Croacia.Serbia Industries.Energy and mining.Agriculture.Late crops, fruit and grapes output, 2008.Rebranding Serbia: A Hobby Shortly to Become a Full-Time Job.Final data on livestock statistics, 2008.Serbian cell-phone users.U Srbiji sve više računara.Телекомуникације.U Srbiji 27 odsto gradjana koristi Internet.Serbia and Montenegro.Тренд гледаности програма РТС-а у 2008. и 2009.години.Serbian railways.General Terms.El mercado del transporte aéreo en Serbia.Statistics.Vehículos de motor registrados.Planes ambiciosos para el transporte fluvial.Turismo.Turistički promet u Republici Srbiji u periodu januar-novembar 2007. godine.Your Guide to Culture.Novi Sad - city of culture.Nis - european crossroads.Serbia. Properties inscribed on the World Heritage List .Stari Ras and Sopoćani.Studenica Monastery.Medieval Monuments in Kosovo.Gamzigrad-Romuliana, Palace of Galerius.Skiing and snowboarding in Kopaonik.Tara.New7Wonders of Nature Finalists.Pilgrimage of Saint Sava.Exit Festival: Best european festival.Banje u Srbiji.«The Encyclopedia of world history»Culture.Centenario del arte serbio.«Djordje Andrejevic Kun: el único pintor de los brigadistas yugoslavos de la guerra civil española»About the museum.The collections.Miroslav Gospel – Manuscript from 1180.Historicity in the Serbo-Croatian Heroic Epic.Culture and Sport.Conversación con el rector del Seminario San Sava.'Reina Margot' funde drama, historia y gesto con música de Goran Bregovic.Serbia gana Eurovisión y España decepciona de nuevo con un vigésimo puesto.Home.Story.Emir Kusturica.Tercer oro para Paskaljevic.Nikola Tesla Year.Home.Tesla, un genio tomado por loco.Aniversario de la muerte de Nikola Tesla.El Museo Nikola Tesla en Belgrado.El inventor del mundo actual.República de Serbia.University of Belgrade official statistics.University of Novi Sad.University of Kragujevac.University of Nis.Comida. Cocina serbia.Cooking.Montenegro se convertirá en el miembro 204 del movimiento olímpico.España, campeona de Europa de baloncesto.El Partizan de Belgrado se corona campeón por octava vez consecutiva.Serbia se clasifica para el Mundial de 2010 de Sudáfrica.Serbia Name Squad For Northern Ireland And South Korea Tests.Fútbol.- El Partizán de Belgrado se proclama campeón de la Liga serbia.Clasificacion final Mundial de balonmano Croacia 2009.Serbia vence a España y se consagra campeón mundial de waterpolo.Novak Djokovic no convence pero gana en Australia.Gana Ana Ivanovic el Roland Garros.Serena Williams gana el US Open por tercera vez.Biography.Bradt Travel Guide SerbiaThe Encyclopedia of World War IGobierno de SerbiaPortal del Gobierno de SerbiaPresidencia de SerbiaAsamblea Nacional SerbiaMinisterio de Asuntos exteriores de SerbiaBanco Nacional de SerbiaAgencia Serbia para la Promoción de la Inversión y la ExportaciónOficina de Estadísticas de SerbiaCIA. Factbook 2008Organización nacional de turismo de SerbiaDiscover SerbiaConoce SerbiaNoticias de SerbiaSerbiaWorldCat1512028760000 0000 9526 67094054598-2n8519591900570825ge1309191004530741010url17413117006669D055771Serbia