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