I think this is not specific to SageCell. It is the same in jupyter. implicit_multiplication
changes the behaviour of the preparser, but the whole cell is preparsed according to the previous state of the preparser.
If, in a single cell, you write:
implicit_multiplication(True)
2x
You will get an error. But if you put the two lines in different cells, then it will work.
To take another example, you can do:
preparser(False)
type(1)
You will get <class 'sage.rings.integer.Integer'>
because the whole cell was preparsed before the preparser is turned off. If you put the two lines in two different cells, you will get <class 'int'>
, because the second line will not be preparsed anymore.
About the Sage preparser, see https://doc.sagemath.org/html/en/refe...
The sagecell works like a single jupyter cell.