Is there any way to
You can define a custom myPrint
function with AutoScroll -> False
:
myPrint[expr_] :=
NotebookWrite[EvaluationNotebook[],
Cell[BoxData@ToBoxes@expr, "Print"], AutoScroll -> False]
As it is noted in the comments, with this version clicking anywhere inside of the Notebook may result in changing the insertion point and further outputs will be printed starting from the new location. Also there are issues with evaluation of multiple cells at once. Here is an improved version which binds the printing to the EvaluationCell[]
and as a result prints in the reverse order (what may be desirable in some situations):
myPrint[expr_] := (
SelectionMove[EvaluationCell[], After, Cell, AutoScroll -> False];
NotebookWrite[EvaluationNotebook[],
Cell[BoxData@ToBoxes@expr, "Print"], AutoScroll -> False])
And here is a version that prints in the usual order:
myPrint[expr_] := (
SelectionMove[EvaluationCell[], All, CellGroup, AutoScroll -> False];
If[SelectedCells[] === {},
SelectionMove[EvaluationCell[], After, Cell, AutoScroll -> False],
SelectionMove[EvaluationNotebook[], After, CellGroup, AutoScroll -> False]];
NotebookWrite[EvaluationNotebook[],
Cell[BoxData@ToBoxes@expr, "Print"], AutoScroll -> False])