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?Using newcommand to display user input that may contain special characters that need to be escapedHow to replace textHow can own commands be aware of global?how to use a global foreach?How to make NewDocumentCommand global?replace text with variablesReplace all shorthands defined by newcommand with full commands

How do campaign rallies gain candidates votes?

When going by a train from Paris to Düsseldorf (Thalys), can I hop off in Köln and then hop on again?

This message is flooding my syslog, how to find where it comes from?

Is it legal to use cash pulled from a credit card to pay the monthly payment on that credit card?

Why is it considered Acid Rain with pH <5.6

Piece-drop Mate #2

Request for a Latin phrase as motto "God is highest/supreme"

Get delta of days by current hour and added delta of days

How can I receive packages while in France?

Commercial jet accompanied by small plane near Seattle

Integral of the integral using NIntegrate

"I you already know": is this proper English?

Why is drive/partition number still used?

Suggestions for protecting jeans from saddle clamp bolt

Terence Tao–type books in other fields?

Can two figures have the same area, perimeter, and same number of segments have different shape?

Is dd if=/dev/urandom of=/dev/mem safe?

Why/when is AC-DC-AC conversion superior to direct AC-Ac conversion?

How do we explain the E major chord in this progression?

Where to place an artificial gland in the human body?

Basic Questions on Wiener Filtering

Problem in styling a monochrome plot

Leaf-Spine network without routing

Getting an rgb color from highlight group



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?Using newcommand to display user input that may contain special characters that need to be escapedHow to replace textHow can own commands be aware of global?how to use a global foreach?How to make NewDocumentCommand global?replace text with variablesReplace all shorthands defined by newcommand with full commands






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








10















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
    Mar 26 at 15:46






  • 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
    Mar 26 at 15:48











  • @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
    Mar 26 at 15:50






  • 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
    Mar 26 at 15:54






  • 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
    Mar 27 at 13:16

















10















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
    Mar 26 at 15:46






  • 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
    Mar 26 at 15:48











  • @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
    Mar 26 at 15:50






  • 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
    Mar 26 at 15:54






  • 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
    Mar 27 at 13:16













10












10








10








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 Mar 27 at 11:37







Brad

















asked Mar 26 at 15:39









BradBrad

807 bronze badges




807 bronze badges












  • 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
    Mar 26 at 15:46






  • 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
    Mar 26 at 15:48











  • @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
    Mar 26 at 15:50






  • 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
    Mar 26 at 15:54






  • 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
    Mar 27 at 13:16

















  • 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
    Mar 26 at 15:46






  • 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
    Mar 26 at 15:48











  • @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
    Mar 26 at 15:50






  • 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
    Mar 26 at 15:54






  • 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
    Mar 27 at 13:16
















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
Mar 26 at 15:46





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
Mar 26 at 15:46




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
Mar 26 at 15:48





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
Mar 26 at 15:48













@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
Mar 26 at 15:50





@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
Mar 26 at 15:50




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
Mar 26 at 15:54





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
Mar 26 at 15:54




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
Mar 27 at 13:16





@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
Mar 27 at 13:16










6 Answers
6






active

oldest

votes


















10














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
    Mar 26 at 19:34


















9














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
    Mar 27 at 11:36












  • 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
    Mar 27 at 11:45


















6














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
    Mar 26 at 16:02











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

    – David Carlisle
    Mar 26 at 16:05











  • 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
    Mar 26 at 16:06











  • @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
    Mar 26 at 19:33






  • 3





    @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
    Mar 26 at 19:39


















4














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









        10














        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
          Mar 26 at 19:34















        10














        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
          Mar 26 at 19:34













        10












        10








        10







        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 Mar 26 at 18:09









        egregegreg

        758k90 gold badges1983 silver badges3328 bronze badges




        758k90 gold badges1983 silver badges3328 bronze badges







        • 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
          Mar 26 at 19:34












        • 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
          Mar 26 at 19:34







        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
        Mar 26 at 19:34





        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
        Mar 26 at 19:34













        9














        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
          Mar 27 at 11:36












        • 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
          Mar 27 at 11:45















        9














        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
          Mar 27 at 11:36












        • 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
          Mar 27 at 11:45













        9












        9








        9







        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 Mar 26 at 19:32









        Bruno Le FlochBruno Le Floch

        34.5k6 gold badges116 silver badges211 bronze badges




        34.5k6 gold badges116 silver badges211 bronze badges












        • 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
          Mar 27 at 11:36












        • 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
          Mar 27 at 11:45

















        • 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
          Mar 27 at 11:36












        • 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
          Mar 27 at 11:45
















        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
        Mar 27 at 11:36






        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
        Mar 27 at 11:36














        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
        Mar 27 at 11:45





        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
        Mar 27 at 11:45











        6














        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
          Mar 26 at 16:02











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

          – David Carlisle
          Mar 26 at 16:05











        • 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
          Mar 26 at 16:06











        • @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
          Mar 26 at 19:33






        • 3





          @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
          Mar 26 at 19:39















        6














        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
          Mar 26 at 16:02











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

          – David Carlisle
          Mar 26 at 16:05











        • 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
          Mar 26 at 16:06











        • @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
          Mar 26 at 19:33






        • 3





          @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
          Mar 26 at 19:39













        6












        6








        6







        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 Mar 26 at 15:57









        David CarlisleDavid Carlisle

        517k44 gold badges1172 silver badges1941 bronze badges




        517k44 gold badges1172 silver badges1941 bronze badges












        • 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
          Mar 26 at 16:02











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

          – David Carlisle
          Mar 26 at 16:05











        • 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
          Mar 26 at 16:06











        • @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
          Mar 26 at 19:33






        • 3





          @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
          Mar 26 at 19:39

















        • 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
          Mar 26 at 16:02











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

          – David Carlisle
          Mar 26 at 16:05











        • 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
          Mar 26 at 16:06











        • @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
          Mar 26 at 19:33






        • 3





          @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
          Mar 26 at 19:39
















        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
        Mar 26 at 16:02





        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
        Mar 26 at 16:02













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

        – David Carlisle
        Mar 26 at 16:05





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

        – David Carlisle
        Mar 26 at 16:05













        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
        Mar 26 at 16:06





        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
        Mar 26 at 16:06













        @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
        Mar 26 at 19:33





        @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
        Mar 26 at 19:33




        3




        3





        @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
        Mar 26 at 19:39





        @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
        Mar 26 at 19:39











        4














        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














          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












            4








            4







            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 Mar 26 at 16:21









            Steven B. SegletesSteven B. Segletes

            168k9 gold badges214 silver badges433 bronze badges




            168k9 gold badges214 silver badges433 bronze badges





















                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 Mar 27 at 7:02









                    MicoMico

                    299k32 gold badges410 silver badges812 bronze badges




                    299k32 gold badges410 silver badges812 bronze badges





















                        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 Mar 26 at 16:49

























                            answered Mar 26 at 16:40









                            Hood ChathamHood Chatham

                            4,41214 silver badges28 bronze badges




                            4,41214 silver badges28 bronze badges



























                                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

                                Kamusi Yaliyomo Aina za kamusi | Muundo wa kamusi | Faida za kamusi | Dhima ya picha katika kamusi | Marejeo | Tazama pia | Viungo vya nje | UrambazajiKuhusu kamusiGo-SwahiliWiki-KamusiKamusi ya Kiswahili na Kiingerezakuihariri na kuongeza habari

                                SQL error code 1064 with creating Laravel foreign keysForeign key constraints: When to use ON UPDATE and ON DELETEDropping column with foreign key Laravel error: General error: 1025 Error on renameLaravel SQL Can't create tableLaravel Migration foreign key errorLaravel php artisan migrate:refresh giving a syntax errorSQLSTATE[42S01]: Base table or view already exists or Base table or view already exists: 1050 Tableerror in migrating laravel file to xampp serverSyntax error or access violation: 1064:syntax to use near 'unsigned not null, modelName varchar(191) not null, title varchar(191) not nLaravel cannot create new table field in mysqlLaravel 5.7:Last migration creates table but is not registered in the migration table

                                은진 송씨 목차 역사 본관 분파 인물 조선 왕실과의 인척 관계 집성촌 항렬자 인구 같이 보기 각주 둘러보기 메뉴은진 송씨세종실록 149권, 지리지 충청도 공주목 은진현