# Can I Print to a different notebook? (within the context of the same kernel)

For[i=1,i<=100,i++,
Print[i];
];


We can ask Print[] to output $(1,2,3,4,...)$ to a different notebook (in the context of the same kernel)?

-
You could look up NotebookWrite. – Yves Klett Sep 23 '13 at 9:27
@YvesKlett Sorry, should have found that. – RM1618 Sep 23 '13 at 9:28
Not to worry - perhaps someone can help with Print as well. – Yves Klett Sep 23 '13 at 9:29
Possible duplicates / related: (1041), (5040), (7081), (10456), (22584), (29235) – Mr.Wizard Sep 23 '13 at 9:52
Also this: mathematica.stackexchange.com/q/5734/5 (just change MessagesNotebook[] to your desired notebook. – R. M. Sep 23 '13 at 13:58

As Yves already mentioned, you can easily create and edit notebooks through Mathematica commands. A start would be this tutorial, which you can find in the Documentation Center under tutorial/ManipulatingNotebooksFromTheKernel

Here is a short example printing the i values into a new notebook:

nb = CreateDocument[];

For[i = 1, i <= 10, i++,
SelectionMove[nb, Next, Cell];
NotebookWrite[nb,
Cell[BoxData@RowBox[{"i is now ", ToString[i]}], "Output"]];
]


If you want to know how to construct cell expressions, you could just go over any cell in a notebook and hit Ctrl+Shift+E to see the underlying structure.

-

Although the question has been answered, no reason for this question was given. One possible motivation is to be able to discard a lot of diagnostic output, e.g. from an iterative process, by trashing the newly created notebook.

In such a case an alternative could be Dynamic[.], e.g.

ClearAll[iter];
Dynamic[iter]
For[i = 1, i <= 10, i++,
Pause[1.0];
iter = "i is now " <> ToString[i]
]

-
Thanks for your answer - my reason for asking was that I was interested in printing multiple plots or outputs at different speeds while running a computation. It became cumbersome to have everything moving around in the same notebook. – RM1618 Sep 23 '13 at 23:44