Re: Best practise for defining shortened display versions
- To: mathgroup at smc.vnet.net
- Subject: [mg80410] Re: [mg80370] Best practise for defining shortened display versions
- From: Carl Woll <carlw at wolfram.com>
- Date: Tue, 21 Aug 2007 05:10:58 -0400 (EDT)
- References: <200708200738.DAA18725@smc.vnet.net>
Andrew Moylan wrote:
>Expressions with head InterpolatingFunction display in a shortened format in
>StandardForm:
>
>Evaluating:
>
>InterpolatingFunction[{{1, 4}}, {3, 1, 0, {4}, {4}, 0, 0, 0,
> 0}, {{1, 2, 3, 4}}, {{1}, {4}, {9}, {16}}, {Automatic}]
>
>yields:
>
>InterpolatingFunction[{{1,4}},<>]
>
>How does InterpolatingFunction[] do this? Is it via custom definitions for
>MakeBoxes[] or ToBoxes[] or Format[]?
>
It is done via custom definitions for MakeBoxes.
> What is the best way to do this for my
>own functions?
>
>
>
You can use either MakeBoxes or Format. The advantage of using Format is
that you don't have to worry about using boxes, so that you don't have
to learn about boxes, and your code will be easier to understand when
you look back at it later. The advantage of using MakeBoxes is that you
have better control over what the appearance will be and more options in
which boxes you can use. There are boxes which don't have a nonbox input
form.
I like using Format if the new formatting isn't complicated, such as in
the InterpolatingFunction example above. On the other hand, if I want to
change formatting of an existing kernel function I will use MakeBoxes.
If you use MakeBoxes, be sure to use TagSet. This way you can clear
MakeBoxes definitions, and you can use FormatValues to figure out the
formatting definitions you created for your symbols.
Carl Woll
Wolfram Research
- References:
- Best practise for defining shortened display versions of custom functions
- From: "Andrew Moylan" <andrew.j.moylan@gmail.com>
- Best practise for defining shortened display versions of custom functions