MathGroup Archive 2003

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Readability confuses mathematica?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg44630] Re: Readability confuses mathematica?
  • From: "Steve Luttrell" <luttrell at _removemefirst_westmal.demon.co.uk>
  • Date: Tue, 18 Nov 2003 06:42:01 -0500 (EST)
  • References: <p05200f03bbda31b43753@[192.168.0.101]> <bp4ja8$b6l$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

Are you using the Notation palette? I find that Symbolize is likely to fail
to work correctly UNLESS I use the Notation palette.

--
Steve Luttrell
West Malvern, UK

"Andrzej Kozlowski" <akoz at mimuw.edu.pl> wrote in message
news:bp4ja8$b6l$1 at smc.vnet.net...
> I am afraid it is not going to be that simple. It seems that my
> repeated attempts to use Symbolize caused me to enter the
> NotationBoxTag wrapper twice, but this is a red herring and has nothing
> to do with the problem. (It is actually rather unlikely that I would
> have the habit of entering this tag twice. It was just one of those
> unlikely coincidences that keep happening, that when I decide to post
> the error to the MathGroup this kind of thing happens which obscures
> the whole problem.)
>
> In any case, the point is that with only a fresh kernel and only the
> following input:
>
> In[1]:=
> <<Utilities`Notation`
>
> In[2]:=
> Cell[BoxData[
>      RowBox[{"Symbolize", "[",
>        TagBox[
>          SubscriptBox["x", "_"],
>          NotationBoxTag,
>          TagStyle->"NotationTemplateStyle"], "]"}]], "Input",
>    CellLabel->"In[2]:="]
>
> whcih you can now see is quite correct I still get:
>
>
> In[3]:=
> \!\(f[\(x\_1\) : _] := x\_1\^2\)
>
>  From In[3]:=
> \!\(\*FormBox[
>    RowBox[{\(Syntax::"sntxf"\), \(\(:\)\(\ \)\), \
> "\<\"\\\"\\!\\(TraditionalForm\\`\\(f[\\)\\)\\\" cannot be
>        followed by \\\"\\!\\(TraditionalForm\\`\\(\\(\\(x\\_1 :
> _\\)\\)]\\)\\)\
> \\\".\\!\\(TraditionalForm\\`\\\"\\\"\\)
> \\!\\(\\*ButtonBox[\\\"More.\\\", \
> ButtonStyle->\\\"RefGuideLinkText\\\", ButtonFrame->None, \
> ButtonData:>\\\"General::sntxf\\\"]\\)\"\>"}], TraditionalForm]\)
>
>  From In[3]:=
> \!\(\*
>    StyleBox[
>      RowBox[{
>        RowBox[{"f", "[",
>          ErrorBox[\(\(x\_1\) : _\)], "]"}], ":=", \(x\_1\^2\)}],
>      ShowStringCharacters->True]\)
>
> Andrzej
>
>
> On 14 Nov 2003, at 16:23, Jason Harris wrote:
>
> > Hi Andrzej,
> >
> > [Notation example snipped]
> >
> >>  On my system this example just fails miserabley (the
> >>  definiton of transmissionCoefficient does not parse) although it once
> >>  used to work. (Actually, I would like to hear from other people,
> >>  because either the Notation package is no longer working or something
> >>  is wrong with my installation).
> >
> > I know these things can appear frustrating at times, but the Notation
> > package is working fine. In the example you have given, you have
> > managed to include the box wrapper twice in your Symbolize statement.
> > (You likely did this through copying the k subscript including box
> > wrapper and pasted it into a new Symbolize statement.)
> >
> >
> >>  Anyway, if this works on your system than the problem is solved. You
> >>  can symbolize subscripted variables and use them as if they were
> >>  symbols. On the other hand, in the past, when this package used to
> >> work
> >>  on my system, I got myself into a huge mess when I tried to evaluate
> >>  again a notebook that had previously worked correctly.
> >
> > If there is some notebook corruption going on then we definitely want
> > to know about this. In the example you have given it is extremely
> > likely that you inadvertently caused the error with a copy and paste
> > from one symbolize statement to another. (I know notation statements
> > can be tricky and it is not all that hard to "hang yourself".)
> >
> >
> >>  Because of that I finally decided that relying on a package like
> >> this is
> >>  just too risky if you are doing any serious work.
> >
> > Hmm... Actually I personally think its just the opposite. If you are
> > really doing serious work you need to know about typesetting and how
> > to enter expressions in notations which are familiar to
> > Mathematicians, physicists, and other users and have these notations
> > function correctly.
> >
> > First a general comment:
> > When you are troubleshooting problems with setting up notations it is
> > often necessary to look at the underlying boxes representing the
> > typeset expression. You can do this through either the command key
> > shortcut of cmd-shift-E (OSX) and I think cntrl-shift-E (Win), or
> > through the menu item "Format" -> "Show Expression..."
> >
> > Looking at the underlying boxes shows you how the typeset expression
> > is represented. As a Mathematica programmer you no doubt use FullForm
> > at times to examine how a certain pattern is structured. Its really
> > not too different with typesetting in that Mathematica functions
> > through
> > MakeBoxes and MakeExpression which operate on these box structures. If
> > you don't have the correct structures, the boxes will not be
> > interpreted as they should be.
> >
> > In a Symbolize statement waiting to be filled in the underlying
> > structure is
> >
> > Cell[BoxData[
> >     RowBox[{"Symbolize", "[",
> >       TagBox["\[Placeholder]",
> >         NotationBoxTag,
> >         TagStyle->"NotationTemplateStyle"], "]"}]], "Input"]
> >
> > To see this load the notation package, type Esc-symb-Esc and then show
> > the underlying expression. The box structure to be symbolized must be
> > the first argument of this TagBox.
> >
> > The tag box wrapper, NotationBoxTag, is necessary so you can enter
> > typeset expressions into Mathematica that are not currently
> > syntactically valid. Then once the Notation package gets a hold of
> > them, it compiles / translates these into corresponding rules for
> > MakeExpression and MakeBoxes that do what you instructed. The tag box
> > wrapper inertizes the box structure so it becomes syntactically valid
> > Mathematica input.
> >
> > You can see this by copying out the box wrapper into a new cell and
> > entering some syntactically invalid input into the wrapper, say "x"
> > followed by "*", and then viewing how it is interpreted by
> > Mathematica. E.g. after loading the notation package paste the
> > following cell into Mathematica and interpret it:
> >
> > Cell[BoxData[
> >     TagBox[
> >       RowBox[{"x", "*"}],
> >       NotationBoxTag,
> >       TagStyle->"NotationTemplateStyle"]], "Input"]
> >
> > Then evaluate this interpreted cell. Then start a new cell and
> > evaluate FullForm[%]. The answer will be
> >
> > NotationBoxTag[RowBox[List["x", "*"]]]
> >
> > Thus the TagBox wrapper, NotationBoxTag, has allowed us to enter
> > something that is syntactically invalid and get the box structure into
> > the kernel. (Incidentally you can programmatically create symbolize
> > and notation statements this way.) The TagBox wrapper NotationBoxTag
> > can do this miraculous feat because it itself has a corresponding
> > notation. (The TagStyle option is set so you can get some visual
> > indication of where these tag box wrappers occur.)
> >
> > So anyway getting back to your example if you look at the underlying
> > boxes you will see that instead of having
> >
> > Cell[BoxData[
> >     RowBox[{"Symbolize", "[",
> >       TagBox[
> >         SubscriptBox["k", "_"],
> >         NotationBoxTag,
> >         TagStyle->"NotationTemplateStyle"], "]"}]], "Input"]
> >
> > You had
> >
> > Cell[BoxData[
> >     RowBox[{"Symbolize", "[",
> >       TagBox[
> >         TagBox[
> >           SubscriptBox["k", "_"],
> >           NotationBoxTag,
> >           TagStyle->"NotationTemplateStyle"],
> >         NotationBoxTag,
> >         TagStyle->"NotationTemplateStyle"], "]"}]], "Input"]
> >
> > i.e. the wrapper was in there twice. Fixing this mistake resolves your
> > problem.
> >
> > Cheers,
> >   Jason
> >
> > -------------
> > Jason Harris
> > Wolfram Research
> >
> >
> Andrzej Kozlowski
> Yokohama, Japan
> http://www.mimuw.edu.pl/~akoz/
>



  • Prev by Date: Re: Just trying to import an image
  • Next by Date: How to remove part of ODE solution containing (0.+0.i)'s
  • Previous by thread: Re: Readability confuses mathematica?
  • Next by thread: Re: Readability confuses mathematica?