Writing [content]|_(a)^(b) gives a Math Processing Error?

2 Answers
Oct 23, 2015

As an example:

Content here --> #int_a^b x^ndx = [(x^(n+1))/(n+1)]|_(a)^(b)#

was written as:

int_a^b x^ndx = [(x^(n+1))/(n+1)]|_(a)^(b)

Even this doesn't work:

Content here --> #int_a^b x^ndx = [(x^(n+1))/(n+1)]}_(a)^(b)#

written as:

int_a^b x^ndx = [(x^(n+1))/(n+1)]}_(a)^(b)

It's supposed to look somewhat like this:

#int_a^b x^ndx = [(x^(n+1))/(n+1)]##|_(a)^(b)#

Oct 23, 2015

Here's my take on this.

Explanation:

From what I can tell, that straight bar symbol, #|#, is not a valid character to be followed by an underscore symbol, #_#, in longer character strings.

I think this has something to do with how delimiters are used in the code. For example, you can write

  • without the hashtags

}_a^b

  • with the hashtags

#}_a^b#

and still get a math processing error. But if you write

{_a^b

instead, you will get

#{_a^b#

This time, the left bracket is not considered a valid symbol to be followed by a subscript character. However, if you go

{"regardless of content"}_a^b

you will get

#{"regardless of the content"}_a^b#

My guess is that when content is involved, meaning when you don't have something like this

|_a^b

#|_a^b#

the vertical bar is being seen as a delimiter. Notice what happens when you write

int_a^b x^ndx = |[(x^(n+1))/(n+1)]|_(a)^(b)

#int_a^b x^ndx = |[(x^(n+1))/(n+1)]|_(a)^(b)#

It looks great now because you have two vertical bar delimiters that encapsulate the content, and so the subscript symbol works again.

Notice that it has the right size, too, which delimiters automatically take depending on the content they encapsulate.

Also, notice that you don't get this problem with "regular" characters like letters or numbers

int_a^b x^ndx = [(x^(n+1))/(n+1)] X_(a)^(b)

#int_a^b x^ndx = [(x^(n+1))/(n+1)] X_(a)^(b)#

#int_a^b x^ndx = [(x^(n+1))/(n+1)] 2_(a)^(b)#

So, to bypass this issue, you can use double quote marks as an "invisible" character, like we would use for isotope notation, for example

""_a^b"Mg"

#""_a^b"Mg"#

In this case, you would have

  • without the hashtags

int_a^b x^ndx = [(x^(n+1))/(n+1)]|""_(a)^(b)

  • with the hashtags

#int_a^b x^ndx = [(x^(n+1))/(n+1)] |""_(a)^(b)#

Size is an issue now, since the vertical bar automatically takes the size of a regular charater, but at least it works.

An interesting hack

An interesting way to bypass the size issue is to use a technique we have for writing matrices with invisible brackets.

For example, the curly brackets, #{ }#, can be made invisible by adding dots.

{:

with hashtags #-># #{:#

This means that you could write

{: (2/3) ]_a^b

to get something like this

#{: (2/3) ]_a^b#

It's not perfect, especially since one can clearly tell that it's a right bracket, not vertical line, but it gets the job done.

In this case, you would have

int_a^b x^ndx = {: ((x^(n+1))/(n+1)) ]_(a)^(b)

#int_a^b x^ndx = {: ((x^(n+1))/(n+1)) ]_(a)^(b)#

Impact of this question
2823 views around the world
You can reuse this answer
Creative Commons License