Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.soft-sys.math.mathematica > #16386

Re: What is the difference Between MakeBoxes and ToBoxes

From eden.harder1@gmail.com
Newsgroups comp.soft-sys.math.mathematica
Subject Re: What is the difference Between MakeBoxes and ToBoxes
Date 2014-01-08 03:46 +0000
Message-ID <laihmk$c75$1@smc.vnet.net> (permalink)
References <713167.1264068057720.JavaMail.root@n11> <hjbvd3$2uq$1@smc.vnet.net>
Organization Time-Warner Telecom

Show all headers | View raw


> George,
>
> MakeBoxes is very useful if you want to have specially formatted output
> display but use standard Mathematica input. Standard input is often more
> convenient than a special input (using the Notation package or
> MakeExpression) because you don't have to bring up a special box structure
> or tab around when entering information.
>
> Here is a simple example taken from one of my Presentations package essays.
> MatrixExp has no special formatting.
>
> MatrixExp[\[Theta] J] 
> % /. J -> ( {
>      {0, -1},
>      {1, 0}
>     } ) // MatrixForm 
>
> Perhaps we would want MatrixExp to format as an exponential when it doesn't
> evaluate. We can do it with the following MakeBoxes definition:
>
> MakeBoxes[MatrixExp[x_], form : StandardForm | TraditionalForm] :=
>  InterpretationBox[#1, #2] & @@
>       {SuperscriptBox["\[ExponentialE]", MakeBoxes[x, form]],
>    MatrixExp[x]} 
>
> Now evaluate the same statements above. (It is the first statement that is
> formatted.) Notice the structure of the rhs of the MakeBoxes definition.
> InterpretationBox has the Attributes HoldAll, but we can circumvent this by
> making it a pure function that we apply to a List. The first item in the
> list is the formatted structure and the second item is the internal
> representations. The list could be replaced by a Module that did some
> calculations to determine the display structure. Notice also that the rhs
> uses MakeBoxes on x because we don't know if it might have its own
> formatting definitions.
>
> InterpretationBox also has an option SyntaxForm that can be used to
> determine the precedence grouping of the formatted expression, and hence
> whether Mathematica adds parentheses in various cases. However, this is not
> fully integrated into Mathematica, and in my experience causes FrontEnd
> crashes. That is a flaw in Mathematica that I don't like, but usually you
> can get by without SyntaxForm.
>
> Instead of writing the displayed form entirely with low level box
> structures, you might be able to write all or part of it with high level
> Mathematica expressions and then use ToBoxes to generate the box structures.
> It depends on whether the format you want fits into regular Mathematica
> formatting, or is just too special. Here we could write the MakeBoxes
> definition above as:
>
> MakeBoxes[MatrixExp[x_], form : StandardForm | TraditionalForm] :=
>  InterpretationBox[#1, #2] & @@
>       {ToBoxes[Superscript["\[ExponentialE]", x], form], MatrixExp[x]} 
>
> We also have the high level Interpretation statement and I've used this
> successfully in some cases, but it is not as versatile as InterpretationBox.
> There is also the Format statement.
>
>
> David Park
> djmpark@comcast.net
> http://home.comcast.net/~djmpark/ 
>
>
> From: George [mailto:gtatishvili@gmail.com]
>
> May you please advise me what is the difference between "ToBoxes" and
> "MakeBoxes"?  I read in Mathematica manual and unerstood that the only
> differerence is that "MakeBoxes" generates boxes without evaluation of
> input...So is that all the difference?
>
> I saw also some examples where on lhs is "MakeBoxes" and on rhs is
> "ToBoxes" when I just changed "MakeBoxes" into "ToBoxes" (and vice
> versa) the Mathematica gave me some errors.... So could anybody
> explain me with a simple practical example with explanation?
>
> Thank you very much
> George

Hi, why you write `form : StandardForm | TraditionalForm` in some sentence? What does it mean? Thanks!

Back to comp.soft-sys.math.mathematica | Previous | Next | Find similar | Unroll thread


Thread

Re: What is the difference Between MakeBoxes and ToBoxes eden.harder1@gmail.com - 2014-01-08 03:46 +0000

csiph-web