MathGroup Archive 2012

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

Search the Archive

Re: Luke's list of mathematica questions

  • To: mathgroup at
  • Subject: [mg127884] Re: Luke's list of mathematica questions
  • From: "djmpark" <djmpark at>
  • Date: Thu, 30 Aug 2012 04:07:06 -0400 (EDT)
  • Delivered-to:
  • Delivered-to:
  • Delivered-to:
  • Delivered-to:
  • References: <32986692.61488.1346217431093.JavaMail.root@m06>

This posting, along with your "How to make links" posting are quite
interesting to me because they are concerned with how to use Mathematica not
only for calculation but also as a medium of technical communication.
Clearly you are able to see the potential. It's a matter of learning how to
use Mathematica in this way. Not entirely easy, and it is not clear to me
what path this will take or what will ultimately prove to be successful.

I would like to suggest a path that is available now. Let's say you have
some technical topic, maybe your 1000 page book, that you wish to develop,
publish AND encourage other people to actively use. Combine regular
publication (without attempting to incorporate active or dynamic features of
Mathematica) with a Mathematica Application.

The book or papers would be spinoffs of the Application. They could contain
results from Mathematica and be typeset with Mathematica. The book could be
published as an e-book and perhaps also as "print on demand" at a reasonable
price. The book or papers would establish a record completely independent of
Mathematica. Partly because there is an Application, the book could be
concise, more elegant and not burdened with lots of extended examples or
"how to use Mathematica" material. 

The Mathematica Application could contain notebook versions of the published
book and papers, but also packages, complete documentation, palettes and
style sheets, tutorials and extended examples. It would give the user the
tools and knowledge to work in the area, checking what you have done and
extending it or applying it to his own material. There might even be a
community of participants and developers who would grow around an
Application. The users of the Application could make full use of all the
current Mathematica capabilities. The Application also provides a convenient
way to organize their work because they could establish their own Folders
within the Application for their personal work in the field. A Mathematica
Application also preserves the work that you have done in an active, usable
and documented form. It's the fruit of your labor, it's worth preserving.

The downside of an Application is that not everyone will have Mathematica. I
argue that if the work is important enough, and good enough, and a potential
user is truly interested in the subject, they should get Mathematica. Why be
satisfied with half-way measures that may be fraught with inter-program
problems and limitations? 

I would only make a few comments on your particular questions and
suggestions. Some ideas sound nifty in theory but do not work out as well in

I would prefer to open and close cell groups by using the left hand opener
(or right hand bracket) than clicking anywhere in the cell. WRI introduced
the click in the cell method for their Function pages in recent versions.
The problem with this is that I am often working back and forth between a
notebook and a Help page.  When I click in the Function page I only want to
establish a focus. Then I may want to do something, like evaluate a cell or
scroll or copy an expression. But I find instead that after I clicked some
whole section has opened of collapsed and I have to spend time
re-establishing the state of the page. I suppose I could train myself to
always click in a "nice" place. In general I think it is a mistake to make a
common operation do more than what is customarily wanted or expected. As
Alexei Boulbitch would say, it's a forced purchase.

What about the idea of a link to jump to a different part of a document to
see an equation or diagram or figure? This is what I call "jerking the
reader around". Wouldn't it be much nicer to bring the material to the
reader when and at the point she needs it? If there is some discussion in
relation to the diagram wouldn't it be better to have them together? With
Mathematica a diagram or presentation could be generated in a window next to
the notebook. If the discussion was extended and required scrolling the
notebook, the diagram would still be visible. Key equations could be saved
and Initialized and recalled wherever they are needed.

Another technique that I think is nice is the reuse of space. If you have
extended connected material such as a derivation or proof or a number of
different data sets, instead of generating a run-on document you can reuse a
fixed space in an organized manner to present various steps or sets of data.
Or in a geometric proof you could use Checkboxes to turn on or off various
portions of the diagram related to various steps, effectively getting
multiple diagrams in the same space.

And generally, what is simpler, easier, clearer and more courteous to the
reader is better. It is more likely to get your idea across.

David Park
djmpark at 

From: luke wallace [mailto:lukewallace1990 at] 

I'm just going to make a repository of questions here because I have so

1. How do you make section text expand the cell (or group, I'm not sure of
the correct term) when clicked, instead of having to click the tiny triangle
to the left?

2. Can you make mouseovers show an image, so you could hover over some text
like "dog" and have it show an image either stored in the notebook somewhere
or pull the first image from google image search with the keyword "dog"

3. If you have lengthy textbook you are trying to make into a Mathematica
notebook interactive ebook (over 1000 pages) is it going to slow down the
notebook or CDF player or is mathematica really efficient with this kind of
thing (compared to PDF)?

4. What are your tips and tricks for newbies learning how to do stuff in
mathematica? For example, one trick I learned is to use the Cell->Show
Expression hotkey (Shift+Ctrl+E) to steal low-level code of things I don't
understand yet and paste them into other things and figure out what they do.
I'm looking for more 'tricks'.

-What are your favorite mathematica resources? Are there websites that have
libraries of resources such as custom stylesheets, or add-ons for
mathematica for free?

5. Can you create custom section frame styles (For example, instead of a
rectangle border box on sections, could we import a custom graphic such as a
gradient to make the boxes fade out from left to right and look cooler)

6. What are the capabilities of mathematica to OCR images? Is there some way
we can import Microsoft OneNote's or Microsoft Word's or Nuance OCR
technology to mathematica so that we can basically import PDF's as image
files and have searchable text in mathematica (Just like in some PDF files
in Reader or Acrobat?)

7. What are the capabilities of mathematica to create "filters" and workflow
charts (mini applications) such as:
If traffic light is green, then go. (Priority 3) If traffic light is yellow,
then slow. (Priority 3) If traffic light is red, then stop. (Priority 3) If
ambulance is active, pull over or stop when possible. (Priority 2) If child
facing near road, slow. (Priority 1)

And then have filters, such as it can ask you questions:
What color is the traffic light? (Green) Is there an active ambulance? (No)
Is there a child facing near road? (No)
Answer: Then go.

What color is the traffic light? (Yellow) Is there an active ambulance?
(Yes) Is there a child facing near road? (No)
Answer: Then pull over or stop when possible.

This concept except applied to much larger and more complicated databases
would be useful. I guess what I'm asking is, can you make 'pull-down' or
checkbox interactive forms in mathematica that would 'filter' textual
information like this?

  • Prev by Date: Re: Find a maxlist of within subsets
  • Next by Date: Extracting Parameter Values from NonlinearModelFit
  • Previous by thread: Re: Luke's list of mathematica questions
  • Next by thread: Find a maxlist of within subsets