Search All of the Math Forum:
Views expressed in these public forums are not endorsed by
Drexel University or The Math Forum.
|
|
|
|
Formatting Input Cells within a NotebookWrite[]
Posted:
Feb 27, 2013 3:03 AM
|
|
Hello Mathgroup,
I'd like to have NotebookWrite[] create an input cell *exactly* as I have typed that input cell. I'm trying to create set of tutorials with exercises and worked solutions.
Here are two *almost working* method, however they don't reproduce the code as it is written---which is what I'm trying to do. I'm stuck.
(*--------------------------Method 1--------------------------------*) SetAttributes[expressionCell, HoldAll];
expressionCell[expr_] := NotebookWrite[EvaluationNotebook[], Cell[Block[{BoxForm`$UseTextFormattingWhenEvaluating = True}, RawBoxes[MakeBoxes[expr]]], "Input", LanguageCategory -> "Mathematica"]]
(*examples---these "almost" work, but the FrontEnd converts to StandardForm 2d form and removes indentation. I'm trying to make it look more like InputForm*)
expressionCell[Integrate[x y^2, {y, 1, 2}]]
expressionCell[ Manipulate[x y^2, {y, 1, 2}] ]
expressionCell[ Module[{x, y, z}, x y z ] ]
(*--------------------------Method 2, wrap expr in InputForm--------------------------------*)
Clear[expressionCell] SetAttributes[expressionCell, HoldAll];
expressionCell[expr_] := NotebookWrite[EvaluationNotebook[], Cell[Block[{BoxForm`$UseTextFormattingWhenEvaluating = True}, RawBoxes[MakeBoxes[InputForm[expr]]]], "Input", LanguageCategory -> "Mathematica"]]
(*examples---these work, but I am trying to indicate to students what I am typing, and so wish to eliminate the explicit *-multiplication, and I'd like to keep my line returns and indentation on the Module example *)
expressionCell[Integrate[x y^2, {y, 1, 2}]]
expressionCell[Manipulate[x y^2, {y, 1, 2}]]
expressionCell[ Module[{x, y, z}, x y z ] ]
This is a follow on question to "Re: Using Defer on Dynamic Expressions?" which was answered by John Fultz and by Mark Maclure on the Wolfram community site.
W Craig Carter Professor of Materials Science, MIT
|
|
|
|