Representing Textual Forms by Boxes
All textual and graphical forms in
Mathematica are ultimately represented in terms of nested collections of
boxes. Typically the elements of these boxes correspond to objects that are to be placed at definite relative positions in two dimensions.
Here are the boxes corresponding to the expression

.
| Out[1]= |  |
Out[2]//DisplayForm= |
| |  |
| DisplayForm[boxes] | show boxes as they would be displayed |
Showing the displayed form of boxes.
This displays three strings in a row.
Out[3]//DisplayForm= |
| |  |
This displays one string as a subscript of another.
Out[4]//DisplayForm= |
| |  |
This puts two subscript boxes in a row.
Out[5]//DisplayForm= |
| |  |
| "text" | literal text |
| RowBox[{a,b,...}] | a row of boxes or strings  |
| GridBox[{{a1,b1,...},{a2,b2,...},...}] |
| a grid of boxes  |
| SubscriptBox[a,b] | subscript  |
| SuperscriptBox[a,b] | superscript  |
| SubsuperscriptBox[a,b,c] | subscript and superscript  |
| UnderscriptBox[a,b] | underscript  |
| OverscriptBox[a,b] | overscript  |
| UnderoverscriptBox[a,b,c] | underscript and overscript  |
| FractionBox[a,b] | fraction  |
| SqrtBox[a] | square root  |
| RadicalBox[a,b] | b root  |
Some basic box types.
This nests a fraction inside a radical.
Out[6]//DisplayForm= |
| |  |
This puts a superscript on a subscripted object.
Out[7]//DisplayForm= |
| |  |
This puts both a subscript and a superscript on the same object.
Out[8]//DisplayForm= |
| |  |
Inserting frames and grid lines.
This shows a fraction with a frame drawn around it.
Out[9]//DisplayForm= |
| |  |
This puts lines between rows and columns of an array.
Out[10]//DisplayForm= |
| |  |
And this also puts a frame around the outside.
Out[11]//DisplayForm= |
| |  |
| StyleBox[boxes,options] | render boxes with the specified option settings |
| StyleBox[boxes,"style"] | render boxes in the specified style |
Modifying the appearance of boxes.
StyleBox takes the same options as
Style. The difference is that
Style is a high-level function that applies to an expression to determine how it will be displayed, while
StyleBox is the corresponding low-level function in the underlying box structure.
This shows the string

in italics.
Out[12]//DisplayForm= |
| |  |
This shows

in the style used for section headings in your current notebook.
Out[13]//DisplayForm= |
| |  |
This uses section heading style, but with characters shown in gray.
Out[14]//DisplayForm= |
| |  |
If you use a notebook front end for
Mathematica, then you will be able to change the style and appearance of what you see on the screen directly by using menu items. Internally, however, these changes will still be recorded by the insertion of appropriate
StyleBox objects.
| FormBox[boxes,form] | interpret boxes using rules associated with the specified form |
| InterpretationBox[boxes,expr] | interpret boxes as representing the expression expr |
| TagBox[boxes,tag] | use tag to guide the interpretation of boxes |
| ErrorBox[boxes] | indicate an error and do not attempt further interpretation of boxes |
Controlling the interpretation of boxes.
This prints as

with a superscript.
Out[15]//DisplayForm= |
| |  |
It is normally interpreted as a power.
Out[16]//InputForm= |
| |  |
This again prints as

with a superscript.
Out[17]//DisplayForm= |
| |  |
But now it is interpreted as

, following the specification given in the
InterpretationBox.
Out[18]//InputForm= |
| |  |
If you edit the boxes given in an
InterpretationBox, then there is no guarantee that the interpretation specified by the interpretation box will still be correct. As a result,
Mathematica provides various options that allow you to control the selection and editing of
InterpretationBox objects.
Options for InterpretationBox and related boxes.
TagBox objects are used to store information that will not be displayed but which can nevertheless be used by the rules that interpret boxes. Typically the
tag in
TagBox
is a symbol which gives the head of the expression corresponding to
boxes. If you edit only the arguments of this expression then there is a good chance that the interpretation specified by the
TagBox will still be appropriate. As a result,
Editable->True is effectively the default setting for a
TagBox.
The rules that
Mathematica uses for interpreting boxes are in general set up to ignore details of formatting, such as those defined by
StyleBox objects. Thus, unless
False, a red

, for example, will normally not be distinguished from an ordinary black

.
A red

is usually treated as identical to an ordinary one.
| Out[19]= |  |