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












8















This is a slightly different question to what I've seen before, where I can use something like newcommand{ga}{gamma} 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



newcommand{x[2]}{x_2}



and



newcommand{a[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
    15 hours ago






  • 1





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











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











  • @StevenB.Segletes thank you for your post - Remarkably strange answer for that question, but I'll bear it in mind! I'm sure there must be a simpler way.

    – Brad
    15 hours ago






  • 2





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
















8















This is a slightly different question to what I've seen before, where I can use something like newcommand{ga}{gamma} 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



newcommand{x[2]}{x_2}



and



newcommand{a[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
    15 hours ago






  • 1





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











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











  • @StevenB.Segletes thank you for your post - Remarkably strange answer for that question, but I'll bear it in mind! I'm sure there must be a simpler way.

    – Brad
    15 hours ago






  • 2





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














8












8








8








This is a slightly different question to what I've seen before, where I can use something like newcommand{ga}{gamma} 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



newcommand{x[2]}{x_2}



and



newcommand{a[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














This is a slightly different question to what I've seen before, where I can use something like newcommand{ga}{gamma} 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



newcommand{x[2]}{x_2}



and



newcommand{a[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










asked 15 hours ago









BradBrad

482




482













  • 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
    15 hours ago






  • 1





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











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











  • @StevenB.Segletes thank you for your post - Remarkably strange answer for that question, but I'll bear it in mind! I'm sure there must be a simpler way.

    – Brad
    15 hours ago






  • 2





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






  • 1





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











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











  • @StevenB.Segletes thank you for your post - Remarkably strange answer for that question, but I'll bear it in mind! I'm sure there must be a simpler way.

    – Brad
    15 hours ago






  • 2





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




1




1





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





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













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





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













@StevenB.Segletes thank you for your post - Remarkably strange answer for that question, but I'll bear it in mind! I'm sure there must be a simpler way.

– Brad
15 hours ago





@StevenB.Segletes thank you for your post - Remarkably strange answer for that question, but I'll bear it in mind! I'm sure there must be a simpler way.

– Brad
15 hours ago




2




2





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





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










6 Answers
6






active

oldest

votes


















4














An extensible set of replacements:



documentclass{article}
usepackage{amsmath}
usepackage{xparse}

ExplSyntaxOn
NewDocumentCommand{trans}{m}
{
tl_set:Nn l__brad_trans_tl { #1 }
regex_replace_all:nnN { [(.*?)] } { c{sb}cB{1cE} } l__brad_trans_tl
regex_replace_all:nnN { a } { c{alpha} } l__brad_trans_tl
% other replacements
% ...
% deliver the new token list
l__brad_trans_tl
}
ExplSyntaxOff

begin{document}

$trans{x[1]+x[2]^2+a+a[3]}$

end{document}


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



















6














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



enter image description here



documentclass{article}

begin{document}


mathcode`[="8000
mathcode`]="8000
{
catcode`[=active gdef[{_bgroup}
catcode`]=active gdef]{egroup}
}

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

end{document}





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











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

    – David Carlisle
    15 hours ago











  • 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
    15 hours ago











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






  • 1





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



















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.



documentclass{article}
usepackage{listofitems}
newtokseqtoks
newcommandaddtoeqtoks[1]{expandaftereqtoksexpandafter{theeqtoks#1}}
newcommandtranslate[1]{%
setsepchar{[||]}%
readlistmyeqn{#1}%
eqtoks{}%
foreachitemxinmyeqn{%
ifnumxcnt=1else%
if[myeqnsep[numexprxcnt-1]addtoeqtoks{_bgroup}fi%
if]myeqnsep[numexprxcnt-1]addtoeqtoks{egroup}fi%
fi%
expandafteraddtoeqtoksexpandafter{x}%
}%
theeqtoks%
}
begin{document}
[
translate{a[1]+a[2]+b[c+d[3]] + x}
]
end{document}


enter image description here






share|improve this answer































    4














    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 frac{alpha +beta }{sqrt{gamma }} with no need to tweak the output.






    share|improve this answer































      1














      Here's a solution. The command addreplacementrule{text-to-replace}{replacement-text} specifies replacements to make. Then the command replace{some math} does the replacements.



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



      documentclass{article}
      makeatletter
      newtoksri@activechars
      defaddreplacementrule#1#2{addreplacementrule@#1@nil{#2}}
      defaddreplacementrule@#1#2@nil#3{%
      ri@activecharsexpandafter{theri@activechars\#1}%
      ri@maketransitions#2@nil{#1}{#3}%
      }

      defreplace#1{%
      begingroup
      def\##1{%
      bgrouplccode`~=`##1lowercase{egroup
      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#1}endcsname{#4}%
      letnextrelax
      else
      expandafterdefcsname ri@lookup@detokenize{#3#1}endcsname{ri@continue{#3#1}}%
      defnext{ri@maketransitions#2@nil{#3#1}{#4}}%
      fi
      next
      }


      defri@continue#1#2{%
      @ifundefined{ri@lookup@detokenize{#1#2}}{%
      detokenize{#1}#2%
      }{%
      csname ri@lookup@detokenize{#1#2}endcsname
      }%
      }


      begin{document}
      addreplacementrule{x[2]}{x_2}
      addreplacementrule{x[3]}{x^2}

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

      replace{$x+1+x[2]+x[3]+x[1]$}
      end{document}


      enter image description here






      share|improve this answer

































        0














        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



        documentclass{article}
        usepackage{luacode} % for "luacode" environment and "luastringN" macro
        begin{luacode}


        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


        end{luacode}

        %% TeX-side code
        newcommandtrans[1]{directlua{trans(luastringN{#1})}}

        begin{document}
        $trans{x[1]+x[2]^2+a+a[3]}$

        $trans{a[1]+a[2]+b[c+d[3]]+x}$
        end{document}





        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









          4














          An extensible set of replacements:



          documentclass{article}
          usepackage{amsmath}
          usepackage{xparse}

          ExplSyntaxOn
          NewDocumentCommand{trans}{m}
          {
          tl_set:Nn l__brad_trans_tl { #1 }
          regex_replace_all:nnN { [(.*?)] } { c{sb}cB{1cE} } l__brad_trans_tl
          regex_replace_all:nnN { a } { c{alpha} } l__brad_trans_tl
          % other replacements
          % ...
          % deliver the new token list
          l__brad_trans_tl
          }
          ExplSyntaxOff

          begin{document}

          $trans{x[1]+x[2]^2+a+a[3]}$

          end{document}


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
















          4














          An extensible set of replacements:



          documentclass{article}
          usepackage{amsmath}
          usepackage{xparse}

          ExplSyntaxOn
          NewDocumentCommand{trans}{m}
          {
          tl_set:Nn l__brad_trans_tl { #1 }
          regex_replace_all:nnN { [(.*?)] } { c{sb}cB{1cE} } l__brad_trans_tl
          regex_replace_all:nnN { a } { c{alpha} } l__brad_trans_tl
          % other replacements
          % ...
          % deliver the new token list
          l__brad_trans_tl
          }
          ExplSyntaxOff

          begin{document}

          $trans{x[1]+x[2]^2+a+a[3]}$

          end{document}


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














          4












          4








          4







          An extensible set of replacements:



          documentclass{article}
          usepackage{amsmath}
          usepackage{xparse}

          ExplSyntaxOn
          NewDocumentCommand{trans}{m}
          {
          tl_set:Nn l__brad_trans_tl { #1 }
          regex_replace_all:nnN { [(.*?)] } { c{sb}cB{1cE} } l__brad_trans_tl
          regex_replace_all:nnN { a } { c{alpha} } l__brad_trans_tl
          % other replacements
          % ...
          % deliver the new token list
          l__brad_trans_tl
          }
          ExplSyntaxOff

          begin{document}

          $trans{x[1]+x[2]^2+a+a[3]}$

          end{document}


          enter image description here






          share|improve this answer













          An extensible set of replacements:



          documentclass{article}
          usepackage{amsmath}
          usepackage{xparse}

          ExplSyntaxOn
          NewDocumentCommand{trans}{m}
          {
          tl_set:Nn l__brad_trans_tl { #1 }
          regex_replace_all:nnN { [(.*?)] } { c{sb}cB{1cE} } l__brad_trans_tl
          regex_replace_all:nnN { a } { c{alpha} } l__brad_trans_tl
          % other replacements
          % ...
          % deliver the new token list
          l__brad_trans_tl
          }
          ExplSyntaxOff

          begin{document}

          $trans{x[1]+x[2]^2+a+a[3]}$

          end{document}


          enter image description here







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered 13 hours ago









          egregegreg

          729k8819263237




          729k8819263237








          • 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
            12 hours ago














          • 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
            12 hours ago








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





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











          6














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



          enter image description here



          documentclass{article}

          begin{document}


          mathcode`[="8000
          mathcode`]="8000
          {
          catcode`[=active gdef[{_bgroup}
          catcode`]=active gdef]{egroup}
          }

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

          end{document}





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











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

            – David Carlisle
            15 hours ago











          • 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
            15 hours ago











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






          • 1





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
















          6














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



          enter image description here



          documentclass{article}

          begin{document}


          mathcode`[="8000
          mathcode`]="8000
          {
          catcode`[=active gdef[{_bgroup}
          catcode`]=active gdef]{egroup}
          }

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

          end{document}





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











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

            – David Carlisle
            15 hours ago











          • 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
            15 hours ago











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






          • 1





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














          6












          6








          6







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



          enter image description here



          documentclass{article}

          begin{document}


          mathcode`[="8000
          mathcode`]="8000
          {
          catcode`[=active gdef[{_bgroup}
          catcode`]=active gdef]{egroup}
          }

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

          end{document}





          share|improve this answer













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



          enter image description here



          documentclass{article}

          begin{document}


          mathcode`[="8000
          mathcode`]="8000
          {
          catcode`[=active gdef[{_bgroup}
          catcode`]=active gdef]{egroup}
          }

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

          end{document}






          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered 15 hours ago









          David CarlisleDavid Carlisle

          496k4111421889




          496k4111421889













          • 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
            15 hours ago











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

            – David Carlisle
            15 hours ago











          • 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
            15 hours ago











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






          • 1





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



















          • 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
            15 hours ago











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

            – David Carlisle
            15 hours ago











          • 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
            15 hours ago











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






          • 1





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

















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





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













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

          – David Carlisle
          15 hours ago





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

          – David Carlisle
          15 hours ago













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





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













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





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




          1




          1





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





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











          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.



          documentclass{article}
          usepackage{listofitems}
          newtokseqtoks
          newcommandaddtoeqtoks[1]{expandaftereqtoksexpandafter{theeqtoks#1}}
          newcommandtranslate[1]{%
          setsepchar{[||]}%
          readlistmyeqn{#1}%
          eqtoks{}%
          foreachitemxinmyeqn{%
          ifnumxcnt=1else%
          if[myeqnsep[numexprxcnt-1]addtoeqtoks{_bgroup}fi%
          if]myeqnsep[numexprxcnt-1]addtoeqtoks{egroup}fi%
          fi%
          expandafteraddtoeqtoksexpandafter{x}%
          }%
          theeqtoks%
          }
          begin{document}
          [
          translate{a[1]+a[2]+b[c+d[3]] + x}
          ]
          end{document}


          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.



            documentclass{article}
            usepackage{listofitems}
            newtokseqtoks
            newcommandaddtoeqtoks[1]{expandaftereqtoksexpandafter{theeqtoks#1}}
            newcommandtranslate[1]{%
            setsepchar{[||]}%
            readlistmyeqn{#1}%
            eqtoks{}%
            foreachitemxinmyeqn{%
            ifnumxcnt=1else%
            if[myeqnsep[numexprxcnt-1]addtoeqtoks{_bgroup}fi%
            if]myeqnsep[numexprxcnt-1]addtoeqtoks{egroup}fi%
            fi%
            expandafteraddtoeqtoksexpandafter{x}%
            }%
            theeqtoks%
            }
            begin{document}
            [
            translate{a[1]+a[2]+b[c+d[3]] + x}
            ]
            end{document}


            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.



              documentclass{article}
              usepackage{listofitems}
              newtokseqtoks
              newcommandaddtoeqtoks[1]{expandaftereqtoksexpandafter{theeqtoks#1}}
              newcommandtranslate[1]{%
              setsepchar{[||]}%
              readlistmyeqn{#1}%
              eqtoks{}%
              foreachitemxinmyeqn{%
              ifnumxcnt=1else%
              if[myeqnsep[numexprxcnt-1]addtoeqtoks{_bgroup}fi%
              if]myeqnsep[numexprxcnt-1]addtoeqtoks{egroup}fi%
              fi%
              expandafteraddtoeqtoksexpandafter{x}%
              }%
              theeqtoks%
              }
              begin{document}
              [
              translate{a[1]+a[2]+b[c+d[3]] + x}
              ]
              end{document}


              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.



              documentclass{article}
              usepackage{listofitems}
              newtokseqtoks
              newcommandaddtoeqtoks[1]{expandaftereqtoksexpandafter{theeqtoks#1}}
              newcommandtranslate[1]{%
              setsepchar{[||]}%
              readlistmyeqn{#1}%
              eqtoks{}%
              foreachitemxinmyeqn{%
              ifnumxcnt=1else%
              if[myeqnsep[numexprxcnt-1]addtoeqtoks{_bgroup}fi%
              if]myeqnsep[numexprxcnt-1]addtoeqtoks{egroup}fi%
              fi%
              expandafteraddtoeqtoksexpandafter{x}%
              }%
              theeqtoks%
              }
              begin{document}
              [
              translate{a[1]+a[2]+b[c+d[3]] + x}
              ]
              end{document}


              enter image description here







              share|improve this answer












              share|improve this answer



              share|improve this answer










              answered 15 hours ago









              Steven B. SegletesSteven B. Segletes

              159k9204413




              159k9204413























                  4














                  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 frac{alpha +beta }{sqrt{gamma }} with no need to tweak the output.






                  share|improve this answer




























                    4














                    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 frac{alpha +beta }{sqrt{gamma }} with no need to tweak the output.






                    share|improve this answer


























                      4












                      4








                      4







                      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 frac{alpha +beta }{sqrt{gamma }} 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 frac{alpha +beta }{sqrt{gamma }} with no need to tweak the output.







                      share|improve this answer












                      share|improve this answer



                      share|improve this answer










                      answered 12 hours ago









                      Bruno Le FlochBruno Le Floch

                      34.2k5115211




                      34.2k5115211























                          1














                          Here's a solution. The command addreplacementrule{text-to-replace}{replacement-text} specifies replacements to make. Then the command replace{some math} does the replacements.



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



                          documentclass{article}
                          makeatletter
                          newtoksri@activechars
                          defaddreplacementrule#1#2{addreplacementrule@#1@nil{#2}}
                          defaddreplacementrule@#1#2@nil#3{%
                          ri@activecharsexpandafter{theri@activechars\#1}%
                          ri@maketransitions#2@nil{#1}{#3}%
                          }

                          defreplace#1{%
                          begingroup
                          def\##1{%
                          bgrouplccode`~=`##1lowercase{egroup
                          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#1}endcsname{#4}%
                          letnextrelax
                          else
                          expandafterdefcsname ri@lookup@detokenize{#3#1}endcsname{ri@continue{#3#1}}%
                          defnext{ri@maketransitions#2@nil{#3#1}{#4}}%
                          fi
                          next
                          }


                          defri@continue#1#2{%
                          @ifundefined{ri@lookup@detokenize{#1#2}}{%
                          detokenize{#1}#2%
                          }{%
                          csname ri@lookup@detokenize{#1#2}endcsname
                          }%
                          }


                          begin{document}
                          addreplacementrule{x[2]}{x_2}
                          addreplacementrule{x[3]}{x^2}

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

                          replace{$x+1+x[2]+x[3]+x[1]$}
                          end{document}


                          enter image description here






                          share|improve this answer






























                            1














                            Here's a solution. The command addreplacementrule{text-to-replace}{replacement-text} specifies replacements to make. Then the command replace{some math} does the replacements.



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



                            documentclass{article}
                            makeatletter
                            newtoksri@activechars
                            defaddreplacementrule#1#2{addreplacementrule@#1@nil{#2}}
                            defaddreplacementrule@#1#2@nil#3{%
                            ri@activecharsexpandafter{theri@activechars\#1}%
                            ri@maketransitions#2@nil{#1}{#3}%
                            }

                            defreplace#1{%
                            begingroup
                            def\##1{%
                            bgrouplccode`~=`##1lowercase{egroup
                            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#1}endcsname{#4}%
                            letnextrelax
                            else
                            expandafterdefcsname ri@lookup@detokenize{#3#1}endcsname{ri@continue{#3#1}}%
                            defnext{ri@maketransitions#2@nil{#3#1}{#4}}%
                            fi
                            next
                            }


                            defri@continue#1#2{%
                            @ifundefined{ri@lookup@detokenize{#1#2}}{%
                            detokenize{#1}#2%
                            }{%
                            csname ri@lookup@detokenize{#1#2}endcsname
                            }%
                            }


                            begin{document}
                            addreplacementrule{x[2]}{x_2}
                            addreplacementrule{x[3]}{x^2}

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

                            replace{$x+1+x[2]+x[3]+x[1]$}
                            end{document}


                            enter image description here






                            share|improve this answer




























                              1












                              1








                              1







                              Here's a solution. The command addreplacementrule{text-to-replace}{replacement-text} specifies replacements to make. Then the command replace{some math} does the replacements.



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



                              documentclass{article}
                              makeatletter
                              newtoksri@activechars
                              defaddreplacementrule#1#2{addreplacementrule@#1@nil{#2}}
                              defaddreplacementrule@#1#2@nil#3{%
                              ri@activecharsexpandafter{theri@activechars\#1}%
                              ri@maketransitions#2@nil{#1}{#3}%
                              }

                              defreplace#1{%
                              begingroup
                              def\##1{%
                              bgrouplccode`~=`##1lowercase{egroup
                              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#1}endcsname{#4}%
                              letnextrelax
                              else
                              expandafterdefcsname ri@lookup@detokenize{#3#1}endcsname{ri@continue{#3#1}}%
                              defnext{ri@maketransitions#2@nil{#3#1}{#4}}%
                              fi
                              next
                              }


                              defri@continue#1#2{%
                              @ifundefined{ri@lookup@detokenize{#1#2}}{%
                              detokenize{#1}#2%
                              }{%
                              csname ri@lookup@detokenize{#1#2}endcsname
                              }%
                              }


                              begin{document}
                              addreplacementrule{x[2]}{x_2}
                              addreplacementrule{x[3]}{x^2}

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

                              replace{$x+1+x[2]+x[3]+x[1]$}
                              end{document}


                              enter image description here






                              share|improve this answer















                              Here's a solution. The command addreplacementrule{text-to-replace}{replacement-text} specifies replacements to make. Then the command replace{some math} does the replacements.



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



                              documentclass{article}
                              makeatletter
                              newtoksri@activechars
                              defaddreplacementrule#1#2{addreplacementrule@#1@nil{#2}}
                              defaddreplacementrule@#1#2@nil#3{%
                              ri@activecharsexpandafter{theri@activechars\#1}%
                              ri@maketransitions#2@nil{#1}{#3}%
                              }

                              defreplace#1{%
                              begingroup
                              def\##1{%
                              bgrouplccode`~=`##1lowercase{egroup
                              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#1}endcsname{#4}%
                              letnextrelax
                              else
                              expandafterdefcsname ri@lookup@detokenize{#3#1}endcsname{ri@continue{#3#1}}%
                              defnext{ri@maketransitions#2@nil{#3#1}{#4}}%
                              fi
                              next
                              }


                              defri@continue#1#2{%
                              @ifundefined{ri@lookup@detokenize{#1#2}}{%
                              detokenize{#1}#2%
                              }{%
                              csname ri@lookup@detokenize{#1#2}endcsname
                              }%
                              }


                              begin{document}
                              addreplacementrule{x[2]}{x_2}
                              addreplacementrule{x[3]}{x^2}

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

                              replace{$x+1+x[2]+x[3]+x[1]$}
                              end{document}


                              enter image description here







                              share|improve this answer














                              share|improve this answer



                              share|improve this answer








                              edited 14 hours ago

























                              answered 14 hours ago









                              Hood ChathamHood Chatham

                              4,3541428




                              4,3541428























                                  0














                                  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



                                  documentclass{article}
                                  usepackage{luacode} % for "luacode" environment and "luastringN" macro
                                  begin{luacode}


                                  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


                                  end{luacode}

                                  %% TeX-side code
                                  newcommandtrans[1]{directlua{trans(luastringN{#1})}}

                                  begin{document}
                                  $trans{x[1]+x[2]^2+a+a[3]}$

                                  $trans{a[1]+a[2]+b[c+d[3]]+x}$
                                  end{document}





                                  share|improve this answer




























                                    0














                                    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



                                    documentclass{article}
                                    usepackage{luacode} % for "luacode" environment and "luastringN" macro
                                    begin{luacode}


                                    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


                                    end{luacode}

                                    %% TeX-side code
                                    newcommandtrans[1]{directlua{trans(luastringN{#1})}}

                                    begin{document}
                                    $trans{x[1]+x[2]^2+a+a[3]}$

                                    $trans{a[1]+a[2]+b[c+d[3]]+x}$
                                    end{document}





                                    share|improve this answer


























                                      0












                                      0








                                      0







                                      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



                                      documentclass{article}
                                      usepackage{luacode} % for "luacode" environment and "luastringN" macro
                                      begin{luacode}


                                      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


                                      end{luacode}

                                      %% TeX-side code
                                      newcommandtrans[1]{directlua{trans(luastringN{#1})}}

                                      begin{document}
                                      $trans{x[1]+x[2]^2+a+a[3]}$

                                      $trans{a[1]+a[2]+b[c+d[3]]+x}$
                                      end{document}





                                      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



                                      documentclass{article}
                                      usepackage{luacode} % for "luacode" environment and "luastringN" macro
                                      begin{luacode}


                                      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


                                      end{luacode}

                                      %% TeX-side code
                                      newcommandtrans[1]{directlua{trans(luastringN{#1})}}

                                      begin{document}
                                      $trans{x[1]+x[2]^2+a+a[3]}$

                                      $trans{a[1]+a[2]+b[c+d[3]]+x}$
                                      end{document}






                                      share|improve this answer












                                      share|improve this answer



                                      share|improve this answer










                                      answered 33 mins ago









                                      MicoMico

                                      284k31388778




                                      284k31388778






























                                          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

                                          He _____ here since 1970 . Answer needed [closed]What does “since he was so high” mean?Meaning of “catch birds for”?How do I ensure “since” takes the meaning I want?“Who cares here” meaningWhat does “right round toward” mean?the time tense (had now been detected)What does the phrase “ring around the roses” mean here?Correct usage of “visited upon”Meaning of “foiled rail sabotage bid”It was the third time I had gone to Rome or It is the third time I had been to Rome

                                          Bunad

                                          Færeyskur hestur Heimild | Tengill | Tilvísanir | LeiðsagnarvalRossið - síða um færeyska hrossið á færeyskuGott ár hjá færeyska hestinum