The Mathematica Frontend: We're on the Road (again)
Mr. Theodore W. Gray Dr. Neil M. Soiffer, Esq Wolfram Research, Inc
Successes of Version 3
Symbolic document format
The fact that notebook documents are ordinary Mathematica expressions was a controversial decision. However, experience over the last two years has shown that the ability to seamlessly process notebook documents in the kernel is genuinely useful in real-world situations.
Some things that can be done include: Automatic index generation Automatic table of contents/references Maintenance of hyperlinks (dead links checking)
Calculus and Mathematica
Conversion process proved usefulness of symbolic representation. Removing unnecessary option settings using patterns. Complex program read inconsistent, messed up title blocks from all 184 files and replaced them intelligently with correct versions.
Look at the difference between 2.2 and 3.0... System`Convert`HTMLDump`HyperlinkAnchor[{FrontEnd`FileName[{C&M Old}, 01.Numbers.nb, CharacterEncoding -> MacintoshRoman], None}, System`Convert`CommonDump`InlineCell -> True]Old System`Convert`HTMLDump`HyperlinkAnchor[{FrontEnd`FileName[{ParentDirectory[], C&M Files, 0.FeelofMathematica}, 01.Numbers.nb, CharacterEncoding -> MacintoshRoman], None}, System`Convert`CommonDump`InlineCell -> True]New
Beginner's Guide
Processing to adapt to new possibilities offered by style mechanism. For example, the following code rewrites all bold, Courier text as being in Input style instead:
![[Graphics:indexgr2.gif]](indexgr2.gif) ![[Graphics:indexgr1.gif]](indexgr1.gif)
Physica
Alternative front end, completely replaces menus, methods of input, syntax. Presents a limited, physics-problems only environment, built using front end programming commands. ![[Graphics:indexgr3.gif]](indexgr3.gif)
Books
Before V3 came out, we told you about how it would be possible to create books that integrate into Mathematica.
It actually works!
Books really do integrate into the help browser, and master index.
New Features in 3.1
Spell checker
Hyphenation
Inline cells
Double buffering
Improved line breaking
General Placeholders
AutoIndent
Improvements to keyboard editing/selection/motion commands
Keyboard short names
AutoReplace
Safe file save
Remote file system support
Experimental Features in 3.1
Future Features
Real time 3D Graphics
Stephen showed this earlier.
Graphics
Interactive graphics, integrated as tightly with the kernel as typeset expressions are now.
Programmability and symbolic foundation will make this another revolutionary feature in Mathematica.
Stephen showed it earlier, but this is a better example.
Implementation
Setup
![[Graphics:indexgr2.gif]](indexgr2.gif) ![[Graphics:indexgr41.gif]](indexgr41.gif)
![[Graphics:indexgr2.gif]](indexgr2.gif) ![[Graphics:indexgr42.gif]](indexgr42.gif)
ExpressionToGraphics[]
![[Graphics:indexgr2.gif]](indexgr2.gif) ![[Graphics:indexgr43.gif]](indexgr43.gif)
![[Graphics:indexgr2.gif]](indexgr2.gif) ![[Graphics:indexgr44.gif]](indexgr44.gif)
![[Graphics:indexgr2.gif]](indexgr2.gif) ![[Graphics:indexgr45.gif]](indexgr45.gif)
arrangeInputs[]
Positions the elements of a list of Graphics[] so that the rhs of their bounding boxes are at x=0, the top of the first is at y=0, and the rest descend downward with vSpacing units inbetween each. Returns a doublet containing a list of the arranged graphics and the bounding box of the graphics.
![[Graphics:indexgr2.gif]](indexgr2.gif) ![[Graphics:indexgr46.gif]](indexgr46.gif)
![[Graphics:indexgr2.gif]](indexgr2.gif) ![[Graphics:indexgr47.gif]](indexgr47.gif)
![[Graphics:indexgr2.gif]](indexgr2.gif) ![[Graphics:indexgr48.gif]](indexgr48.gif)
![[Graphics:indexgr2.gif]](indexgr2.gif) ![[Graphics:indexgr49.gif]](indexgr49.gif)
![[Graphics:indexgr2.gif]](indexgr2.gif) ![[Graphics:indexgr50.gif]](indexgr50.gif)
GraphicsToExpression
![[Graphics:indexgr2.gif]](indexgr2.gif) ![[Graphics:indexgr51.gif]](indexgr51.gif)
![[Graphics:indexgr2.gif]](indexgr2.gif) ![[Graphics:indexgr52.gif]](indexgr52.gif)
![[Graphics:indexgr2.gif]](indexgr2.gif) ![[Graphics:indexgr53.gif]](indexgr53.gif)
![[Graphics:indexgr2.gif]](indexgr2.gif) ![[Graphics:indexgr54.gif]](indexgr54.gif)
![[Graphics:indexgr2.gif]](indexgr2.gif) ![[Graphics:indexgr55.gif]](indexgr55.gif)
![[Graphics:indexgr2.gif]](indexgr2.gif) ![[Graphics:indexgr56.gif]](indexgr56.gif)
![[Graphics:indexgr2.gif]](indexgr2.gif) ![[Graphics:indexgr57.gif]](indexgr57.gif)
MakeBoxes[] and MakeExpression[]
![[Graphics:indexgr2.gif]](indexgr2.gif) ![[Graphics:indexgr58.gif]](indexgr58.gif)
![[Graphics:indexgr2.gif]](indexgr2.gif) ![[Graphics:indexgr59.gif]](indexgr59.gif)
![[Graphics:indexgr2.gif]](indexgr2.gif) ![[Graphics:indexgr60.gif]](indexgr60.gif)
![[Graphics:indexgr2.gif]](indexgr2.gif) ![[Graphics:indexgr61.gif]](indexgr61.gif)
![[Graphics:indexgr2.gif]](indexgr2.gif) ![[Graphics:indexgr62.gif]](indexgr62.gif)
![[Graphics:indexgr2.gif]](indexgr2.gif) ![[Graphics:indexgr63.gif]](indexgr63.gif)
![[Graphics:indexgr2.gif]](indexgr2.gif) ![[Graphics:indexgr64.gif]](indexgr64.gif)
![[Graphics:indexgr2.gif]](indexgr2.gif) ![[Graphics:indexgr65.gif]](indexgr65.gif)
Example
Dialog Boxes
That's all Folks
|