MathGroup Archive 2010

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: FrontEnd and bash automatization

  • To: mathgroup at smc.vnet.net
  • Subject: [mg109638] Re: FrontEnd and bash automatization
  • From: David Bailey <dave at removedbailey.co.uk>
  • Date: Sun, 9 May 2010 07:50:44 -0400 (EDT)
  • References: <hrtvuh$s97$1@smc.vnet.net>

Arturas Acus wrote:
> Dear group,
> 
> I have a large collection of notebooks I want to run in Mathematica FrontEnd authomatically.
> 
> math < in > out solution is not applicable, because Notebooks contains commands like NotebookCreate[], etc..
> 
> I tried JLink solution,  something like 
> Needs["JLink`"]; $FrontEndLaunchCommand="mathematica -matlink -display :1 -nogui"; ConnectToFrontEnd[]
> Unfortunatelly, thought I can use commands like Plot*, it do not allow open notebooks in the connected FrontEnd.
> 
> The only way I found  to execute notebook in Mathematica FrontEnd authomatically is to set all notebook cells as initialization cells, then    
> set the following options in the init.m file
> 
> AutoOpenNotebooks->{"/home/acus/test.nb"},
> InitializationCellEvaluation->True,
> InitializationCellWarning->False
> 
> But this solution has drawback is that I have to execute different notebooks. Probably it could be solved creating some master notebook, which 
> consequently opens and executes other notebooks.
> 
> But may be somebody could suggest better way? Thanks in advance.
> 
> 
> Sincerely, 
It would be easy to create a script of things you needed to do as a .m 
file. Such a file is much easier to execute automatically (with Get) and 
because it is a simple text file, it could even be partially constructed 
in a bash script. It could also use the Environment[] function for even 
greater flexibility. The leaves the little matter of starting the whole 
thing by command.

There is a function UseFrontEnd which you can wrap around a sequence of 
operations that need the FE, and then execute the whole thing as input 
to Math. I executed the following using Math:

UseFrontEnd[
nb=NotebookCreate[];
Print[nb];
]

Obtaining:

In[1]:= NotebookObject[<<Untitled-1>>]


This may do exactly what you want, but I would caution slightly that 
this is the sort of area in which Mathematica bugs seem to reside - so 
test it well with the kind of operation you want to do before committing 
to it!

David Bailey
http://www.dbaileyconsultancy.co.uk


  • Prev by Date: Re: Variables in Iterator limits?
  • Next by Date: Re: Variables in Iterator limits?
  • Previous by thread: FrontEnd and bash automatization
  • Next by thread: Scoping with Module