# Combination of CellPrint and PrintTemporary, or DisplayForm for Cells

I'm programmatically generating some formatted output that generates a cell in the form of a Cell[] expression. For instance, the output might be

cell = Cell[TextData[{"Function ",
Cell[BoxData[FormBox[RowBox[{"f","(","x",")"}],
"Subsection"];


(where $f(x)$ will actually be some complicated expression). How can I get the rendered Cell expression displayed in the notebook temporarily during evaluation?

I can display it (permanently) in the notebook using CellPrint:

I can display text temporarily using PrintTemporary:

But combining them doesn't work, because PrintTemporary assumes its argument is an expression to print rather than a box structure:

Adding DisplayForm doesn't work; it seems DisplayForm only works for boxes when not wrapped in a complete Cell expression:

So I really need a CellPrintTemporary function.

I don't know if it will be possible to produce the Cell dingbat et al, as those don't appear on inline cells. However, you can at least get the formatting of your Cell expression by preventing it from being converted to Box form (doubly, making it inert).

Here is a practical example:

myPrintTemp[expr_Cell] :=
InternalInheritedBlock[{MakeBoxes},
MakeBoxes[expr, _] := expr;
PrintTemporary[expr]
]

myPrintTemp[cell]; Pause[5];


You can use RawBoxes to render a Cell object:

PrintTemporary[RawBoxes @ cell]; Pause[2]
`