Re: Stylesheet for input side by side with output
- To: mathgroup at smc.vnet.net
- Subject: [mg128272] Re: Stylesheet for input side by side with output
- From: David Reiss <dbreiss at gmail.com>
- Date: Wed, 3 Oct 2012 03:08:49 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-newout@smc.vnet.net
- Delivered-to: mathgroup-newsend@smc.vnet.net
- References: <20120923070153.D9CA26877@smc.vnet.net> <k466qk$a8c$1@smc.vnet.net>
Ok, here ie the margin :-) .... but it is only a non-debugged sketch
of a start... the rest does not fit in the margin....
Define the function SideBySideFunction,
ClearAll[SideBySideFunction];
SideBySideFunction[nb_] :=
Catch@Module[{nbrInput, nbrOutput},
SelectionMove[nb, All, EvaluationCell, AutoScroll -> False];
nbrInput = NotebookRead[nb];
SelectionMove[nb, Next, Cell, AutoScroll -> False];
nbrOutput = NotebookRead[nb];
If[nbrOutput[[2]] =!= "Output", Throw[Null]];
NotebookDelete[nb];
SelectionMove[nb, Previous, Cell, AutoScroll -> False];
NotebookWrite[nb,
ToBoxes@TextCell[
Grid[{{RawBoxes[nbrInput], RawBoxes[nbrOutput]}}], "Text",
StripOnInput -> True]]
];
SideBySideFunction[] := SideBySideFunction[EvaluationNotebook[]]
Then, in the notebook set the option at the Notebook level by:
SetOptions[EvaluationNotebook[], CellEpilog :> SideBySideFunction[]]
Or, to not depend on the function definition of SideBySideFunction
execute the following in the notebook:
SetOptions[EvaluationNotebook[],
CellEpilog :>
Catch@Module[{nb, nbrInput, nbrOutput},
nb = EvaluationNotebook[];
SelectionMove[nb, All, EvaluationCell, AutoScroll -> False];
nbrInput = NotebookRead[nb];
SelectionMove[nb, Next, Cell, AutoScroll -> False];
nbrOutput = NotebookRead[nb];
If[nbrOutput[[2]] =!= "Output", Throw[Null]];
NotebookDelete[nb];
SelectionMove[nb, Previous, Cell, AutoScroll -> False];
NotebookWrite[nb,
ToBoxes@TextCell[
Grid[{{RawBoxes[nbrInput], RawBoxes[nbrOutput]}}], "Text",
StripOnInput -> True]]
]
]
With apologies to Fermat....
--David
On Sep 29, 3:10 am, Brentt <brenttnew... at gmail.com> wrote:
> Thank you, I was thinking it could probably be done if I got down and dir=
ty
> with some notebook programming. As for the margins, I'm thinking it would
> work well for doing scratch calculations, as in those times I usually hav=
e
> a lot of real estate on the right and find myself wanting to look at
> results and input separately.
>
> Fermat was proven correct in two respects I suppose: the theorem is
> (apparently) correct, and there actually wasn't enough room in the margin=
s
> for the proof.
>
> Fermat was proved correct in two respects: that proof really couldn't hav=
e
> fit in the margins.
>
>
>
>
>
>
>
> On Thu, Sep 27, 2012 at 12:05 AM, Brentt <brenttnew... at gmail.com> wrote:
>
> > Thank you for the suggestions :)
>
> > On Wed, Sep 26, 2012 at 1:12 AM, christopher arthur <
> > chris.arth... at gmail.com
> > > wrote:
>
> > > You could use authortools "makebilateralcells" afterwards...but it
> > > wouldn't be automatic.
>
> > > Brentt a =E9crit :
> > > > Hi, is there a way to make input on the left side of the screen, an=
d
> > then
> > > > output appear on the right side of the screen? For example instead =
of
> > the
> > > > default notebook style
>
> > > > Input[n]: foo
> > > > Output[m]: bar
>
> > > > have
>
> > > > Input[n]: foo | =
Output[m]: bar
>
> > > > where there is some sort of split screen type divider. Seems to me =
like
> > > it
> > > > would be a nicer way to work.