Take the 2-minute tour ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

If I use the following function to define me a fancy subscript:

Needs["Notation`"];
Symbolize[ParsedBoxWrapper[SubscriptBox["_", "_"]]]

SetAttributes[fancySubscript,HoldFirst]

fancySubscript[var_Symbol, tag_String, index_Integer] /;
  Not[ValueQ[var]] := Subscript[var, tag <> ToString[index]]

fancySubscript[var_Symbol, tags : {_String ..}, index_Integer] /; 
  Not[ValueQ[var]] := fancySubscript[var, #, index] & /@ tags

fancySubscript[var_Symbol, tags : {_String ..}, indices : {_Integer ..}] /; 
  Not[ValueQ[var]] := fancySubscript[var, tags, #] & /@ indices

I can use the following now:

fancySubscript[b, {"b"}, Range@3]

$\left( \begin{array}{c} b_{\text{b1}} \\ b_{\text{b2}} \\ b_{\text{b3}} \\ \end{array} \right)$

With the notation module by symbolizing the subscripts: the values are now :

b\[UnderBracket]Subscript\[UnderBracket]DoubleQuote\[UnderBracket]b1\[UnderBracket]DoubleQuote

1. Problem
But when I want to refer to such a variable in the list above and write with the shortcuts in a cell by typing b then Ctrl+_ then 1.

The variable is a new symbol because i did not use Quotes ""

b\[UnderBracket]Subscript\[UnderBracket]b1

How can we circumvent this that I can still write all variables in the cell and they are parsed and interpreted as the one defined in the fancySubscript command?

It is not so easy because, when I would use something like this:

fancySubscript[b, {b}, Range@3]

I would get an infinite loop, because it is no more a string, hm...

2. Problem:

I cannot assign it back to the variable b:

 b=fancySubscript[b, {"b"}, Range@3]

This gives an infinite loop, but when I try this:

btemp=fancySubscript[b, {"b"}, Range@3]
b=btemp

This should work, and not give an inifinte loop, because btemp contains the new defined symbols and they should then be assigned to b again, but also here mathematica trys to run a recursion which I dont understand??

share|improve this question
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.