How can I replace every global instance of “x[2]” with “x_2”Translate in-line equations to TeX code (Any Package?)Automatic LaTeX parsing to replace text with macrosWhat is going wrong with this attempt to use global?How can I automatically replace subscripts and highlight GoTo labels?How to replace textHow can own commands be aware of global?How to do search-and-replace in a macro?how to use a global foreach?How to make NewDocumentCommand global?How to represent just space-character in replace stringreplace text with variables
Why does Optional.map make this assignment work?
Unlock My Phone! February 2018
GFCI outlets - can they be repaired? Are they really needed at the end of a circuit?
Is it acceptable for a professor to tell male students to not think that they are smarter than female students?
Why doesn't H₄O²⁺ exist?
Why doesn't using multiple commands with a || or && conditional work?
Why "Having chlorophyll without photosynthesis is actually very dangerous" and "like living with a bomb"?
What do you call someone who asks many questions?
Arrow those variables!
A category-like structure without composition?
How seriously should I take size and weight limits of hand luggage?
Can ask the recruiters in my resume to put the reason why I am rejected?
table going outside the page
How to prevent "they're falling in love" trope
Is it possible to download Internet Explorer on my Mac running OS X El Capitan?
Why would the Red Woman birth a shadow if she worshipped the Lord of the Light?
What is the word for reserving something for yourself before others do?
Gatling : Performance testing tool
Mathematica command that allows it to read my intentions
Watching something be piped to a file live with tail
How to Aura Handle multiple DmlExceptions
What does it mean to describe someone as a butt steak?
What about the virus in 12 Monkeys?
What reasons are there for a Capitalist to oppose a 100% inheritance tax?
How can I replace every global instance of “x[2]” with “x_2”
Translate in-line equations to TeX code (Any Package?)Automatic LaTeX parsing to replace text with macrosWhat is going wrong with this attempt to use global?How can I automatically replace subscripts and highlight GoTo labels?How to replace textHow can own commands be aware of global?How to do search-and-replace in a macro?how to use a global foreach?How to make NewDocumentCommand global?How to represent just space-character in replace stringreplace text with variables
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
|
show 6 more comments
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
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 likex[2]for example, where I avoided subscripts in my code. I now want to save myself effort and simply definex[2] = x_2in 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 findx[([0-9])]and replace withx_$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
|
show 6 more comments
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
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
macros shorthands
edited Mar 27 at 11:37
Brad
asked Mar 26 at 15:39
BradBrad
637
637
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 likex[2]for example, where I avoided subscripts in my code. I now want to save myself effort and simply definex[2] = x_2in 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 findx[([0-9])]and replace withx_$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
|
show 6 more comments
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 likex[2]for example, where I avoided subscripts in my code. I now want to save myself effort and simply definex[2] = x_2in 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 findx[([0-9])]and replace withx_$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
|
show 6 more comments
6 Answers
6
active
oldest
votes
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

1
Same comment as I made on David's answer. Yes, myl3regexis 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
add a comment |
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.
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 replacex[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
add a comment |
I really can not recommend doing this, but as you ask...

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
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
add a comment |
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

add a comment |
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.

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
add a comment |
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

add a comment |
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
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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

1
Same comment as I made on David's answer. Yes, myl3regexis 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
add a comment |
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

1
Same comment as I made on David's answer. Yes, myl3regexis 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
add a comment |
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

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

answered Mar 26 at 18:09
egregegreg
731k8919303250
731k8919303250
1
Same comment as I made on David's answer. Yes, myl3regexis 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
add a comment |
1
Same comment as I made on David's answer. Yes, myl3regexis 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
add a comment |
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.
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 replacex[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
add a comment |
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.
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 replacex[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
add a comment |
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.
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.
answered Mar 26 at 19:32
Bruno Le FlochBruno Le Floch
34.2k5115211
34.2k5115211
This is actually much more efficient than I realised! I was specifically trying to avid all those dirty symbols in my code but that's a much better overall solution. Big +1, thank you for the advice! I have edited my question to reflect this. I assume one would need to replacex[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
add a comment |
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 replacex[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
add a comment |
I really can not recommend doing this, but as you ask...

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
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
add a comment |
I really can not recommend doing this, but as you ask...

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
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
add a comment |
I really can not recommend doing this, but as you ask...

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
I really can not recommend doing this, but as you ask...

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
answered Mar 26 at 15:57
David CarlisleDavid Carlisle
497k4111441891
497k4111441891
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
add a comment |
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
add a comment |
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

add a comment |
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

add a comment |
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

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

answered Mar 26 at 16:21
Steven B. SegletesSteven B. Segletes
160k9205413
160k9205413
add a comment |
add a comment |
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.

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
add a comment |
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.

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
add a comment |
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.

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
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.

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
answered Mar 27 at 7:02
MicoMico
285k31388778
285k31388778
add a comment |
add a comment |
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

add a comment |
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

add a comment |
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

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

edited Mar 26 at 16:49
answered Mar 26 at 16:40
Hood ChathamHood Chatham
4,3791428
4,3791428
add a comment |
add a comment |
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.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
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 definex[2] = x_2in 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 withx_$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