# String-Oriented Output Formats

In[1]:= |

Out[1]= |

In[2]:= |

Out[2]//InputForm= | |

You can put any kind of text into a *Mathematica* string. This includes non-English characters, as well as newlines and other control information. "Strings and Characters" discusses in more detail how strings work.

StringForm["cccc``cccc",x_{1},x_{2},...] | output a string in which successive are replaced by successive |

StringForm["cccc`i`cccc",x_{1},x_{2},...] | output a string in which each `i` is replaced by the corresponding |

In many situations, you may want to generate output using a string as a "template", but "splicing" in various *Mathematica* expressions. You can do this using StringForm.

In[3]:= |

Out[3]= |

In[4]:= |

Out[4]= |

The string in StringForm acts somewhat like a "format directive" in the formatted output statements of languages such as C and Fortran. You can determine how the expressions in StringForm will be formatted by wrapping them with standard output format functions.

In[5]:= |

Out[5]= |

You should realize that StringForm is only an output format. It does not evaluate in any way. You can use the function ToString to create an ordinary string from a StringForm object.

In[6]:= |

Out[6]= |

In[7]:= |

Out[7]//InputForm= | |

In[8]:= |

Out[8]//InputForm= | |

StringForm allows you to specify a "template string", then fill in various expressions. Sometimes all you want to do is to concatenate together the output forms for a sequence of expressions. You can do this using Row.

Row[{expr_{1},expr_{2},...}] | give the output forms of the concatenated together |

Row[list, s] | insert s between successive elements |

Spacer[w] | a space of w points that can be used in Row |

Invisible[expr] | a space determined by the physical dimensions of expr |

Output of sequences of expressions.

In[9]:= |

Out[9]= |

In[10]:= |

Out[10]= |

In[11]:= |

Out[11]= |

In[12]:= |

Out[12]= |

Column[{expr_{1},expr_{2},...}] | a left-aligned column of objects |

Column[list,alignment] | a column with a specified horizontal alignment (Left, Center, or Right) |

Column[list,alignment,s] | a column with elements separated by s x-heights |

Output of columns of expressions.

In[13]:= |

Out[13]= |

Defer[expr] | give the output form of expr, with expr maintained unevaluated |

Interpretation[e,expr] | give an output which displays as e, but evaluates as expr |

Output of unevaluated expressions.

Using text strings and functions like Row, you can generate pieces of output that do not necessarily correspond to valid *Mathematica* expressions. Sometimes, however, you want to generate output that corresponds to a valid *Mathematica* expression, but only so long as the expression is not evaluated. The function Defer maintains its argument unevaluated, but allows it to be formatted in the standard *Mathematica* output form.

In[14]:= |

Out[14]= |

In[15]:= |

Out[15]= |

When the output of Defer is evaluated again, which might happen by modifying the output or by using copy and paste, it will evaluate normally.

In[16]:= |

Out[16]= |

It is also possible to produce output whose appearance has no direct correlation to how it evaluates by using Interpretation. This method is effectively used by *Mathematica* when formatting some kinds of outputs where the most readable form does not correspond well to the internal representation of the object. For example, Series always generates an Interpretation object in its default output.

In[17]:= |

Out[17]= |

In[18]:= |

Out[18]= |