Take the 2-minute tour ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

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",")"}],
        TraditionalForm]], FormatType->"TraditionalForm"]}],
   "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:

CellPrint

I can display text temporarily using PrintTemporary:

PrintTemporary

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

PrintTemporary doesn't work

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

DisplayForm doesn't work

So I really need a CellPrintTemporary function.

share|improve this question

1 Answer 1

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] :=
 Internal`InheritedBlock[{MakeBoxes},
  MakeBoxes[expr, _] := expr;
  PrintTemporary[expr]
 ]

myPrintTemp[cell]; Pause[5];
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.