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 trying to write a notebook from the kernel, so using one list of elements in one document, I'd like to create a second document with some interactions between the elements of the list.

For that, I'm already trying to write on a separate document, which works with

 NotebookWrite[ newDoc, Cell[ "2+3", "Input"]]

Now, this works fine, but I'm trying to get this string "2+3" computed in the new notebook. Nor using ToExpression, Evaluate seems to be working.

Any help for this? Also: is there a good book explaining these different concepts of how the Kernel works? I'm reading the online documentation, but sometimes, I'd like to have a more "book"-approach, if possible. What would you recommend?

Thanks all, once again!

share|improve this question
    
Maybe NotebookWrite[newDoc, Cell["2+3", "Input"], All]; SelectionEvaluate[newDoc] ? –  andre Sep 7 '13 at 18:23
    
"The Mathematica book" has a chapter called "Manipulating Notebooks from the Kernel" : reference.wolfram.com/legacy/v5_2/book/section-2.11.3 –  andre Sep 7 '13 at 18:59
add comment

1 Answer

up vote 1 down vote accepted

Let's set things up first

newDoc = NotebookPut[Notebook[{}]]
NotebookWrite[newDoc, Cell["2+3", "Input"]]

If you don't mind evaluating the whole notebook, you could do

NotebookEvaluate[newDoc, InsertResults -> True]

If you only want to evaluate that cell, may want to consider setting a CellTag for your Cell. For example

NotebookWrite[newDoc, Cell["2+3", "Input", CellTags-> "targetCell"]]

then you can evaluate only this Cell by using

NotebookEvaluate[newDoc, InsertResults -> True, 
 EvaluationElements -> {"Tags" -> {"targetCell"}}]

Note that if you want to insert Cell's in this way, it is probably a good idea to make nice box expressions instead of just strings like "2+3". An alternative would then be

NotebookWrite[newDoc, Cell[ RowBox[{"2", "+", "3"}]], "Input", CellTags-> "targetCell"]]

You can find the boxes by using Show Expression from the Cell menu.

The syntax of the option EvaluationElements is a bit confusing to me. See also this question, which is very closely related.

share|improve this answer
add comment

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.