Re: Directing formatted output to different notebooks
- To: mathgroup at smc.vnet.net
- Subject: [mg109445] Re: Directing formatted output to different notebooks
- From: Albert Retey <awnl at gmx-topmail.de>
- Date: Tue, 27 Apr 2010 07:41:17 -0400 (EDT)
- References: <hr65rt$jqh$1@smc.vnet.net>
Am 27.04.2010 10:05, schrieb Paul Howland: > Hello. > > I am dynamically creating a notebook from another notebook. > > I would like to be able to display a formatted table in the > dynamically created notebook (e.g. equivalent of > Print[TableForm[...]]]). Ideally, I would like to be able to direct > the output of the Print[] statement to the new notebook, rather than > the one that is executing the code. > > However, SetSelectedNotebook[] doesn't appear to do this. > > Using NotebookWrite does allow me to write to the new notebook, but > requires low-level manipulation of Boxes, etc. It doesn't seem able > to take higher level formatting commands and direct these to the > notebook. > > Is it possible to do something like NotebookWrite[nb, TableForm[...]] > or to somehow re-direct normal Print output to the new notebook? I'm > getting lost in GridBoxes, etc at the moment and there must be a > simpler way! If you use ToBoxes and define something like this: printtonb[nb_, expr_] := ( SelectionMove[nb, After, Cell]; NotebookWrite[nb, Cell[BoxData[ToBoxes[expr]], "Print"]] ) the printtonb will behave a lot like a Print redirected to the other notebook: nb = CreateDocument[]; printtonb[nb, TableForm[RandomReal[{0, 1}, {3, 3}]]] printtonb[nb, TableForm[RandomReal[{0, 1}, {3, 3}]]] you might also want to consider "Output" as CellStyle instead of "Print"... hth, albert