MathGroup Archive 2007

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

Search the Archive

Re: Documentation Center (v6): do-it-yourself Mathematica

  • To: mathgroup at smc.vnet.net
  • Subject: [mg79820] Re: [mg79791] Documentation Center (v6): do-it-yourself Mathematica
  • From: Murray Eisenberg <murray at math.umass.edu>
  • Date: Sun, 5 Aug 2007 04:58:27 -0400 (EDT)
  • Organization: Mathematics & Statistics, Univ. of Mass./Amherst
  • References: <200708041000.GAA06032@smc.vnet.net>
  • Reply-to: murray at math.umass.edu

Please ignore the reply I sent earlier about this not formatting 
correctly: I instinctually clicked an OK button on one of the pop-up 
warning message windows.  I re-ran the code without doing that and 
everything was fine.

The idea and execution of this code are very clever -- and very useful!

Now perhaps some enterprising soul will create some code that will:

(1) number the parts, sections, and subsections;

(2) append a contents listing for The Mathematica Book's "Part A. 
Mathematica Reference Guide";

(3) print in order, and correctly numbered, all the tutorial content of 
the sections, subsections, and items in this table of contents -- 
including all the "home pages" for functions that would correspond to 
The Book's section A.10, "Listing of Major Built-in Mathematica Objects";

(4) create and print an index; and

(5) export a file to control one of those new 3D printers in order to 
produce a hardbound cover and spine.

Presumably it is currently beyond the control capabilities of 
Mathematica to take the final, missing step: to stitch together the 
printed pages and attach said binding to them.


thomas wrote:
> Many users on this discussion group have complained about the absence
> of "The Mathematica Book" in the new Documentation Center; mainly
> because of a missing linear introductory text of Mathematica which was
> present in the old Help system.
> 
> I completely agree. However, I noticed that the various tutorial files
> in the Documentation center contain the text of "The Book". What is
> really missing is the outline. So I decided to build my own do-it-
> yourself version of the book. It turned out to be quite simple, thanks
> to the ingenious naming rules of the tutorial files (all main chapter
> TOC files end with "...Overview.nb".)
> 
> The following code opens a new notebook, and prints a collection of
> hyperlinks to Documentation Center tutorials, laid out in the order of
> the good old Mathematica book. Simply execute the code and save the
> notebook for your own use. There are 11 chapters that I could not find
> in "The Mathematica Book" of the v5.2 Help system, I integrated them
> in an order that seemed most appropriate to me. The are marked by
> "New: ".
> 
> Note that this link collection does not contain links to all
> tutorials. For example, no links to the "Manipulate" tutorials exist.
> Neither are the packages represented.
> 
> Also be warned that the code opens help files to extract hyperlinks
> for incorporation in "The Book", and closes them again. Lots of
> windows appearing and disappearing on the screen. There will also be
> warnings and a "beeps" popping up because of a mismatch in cell
> styles, which you can ignore. Everything works fine despite the
> mismatch. At the end, just close the "Why the beep" dialog box.
> 
> Here is the code that you need to execute to build your own book in
> v6.0.x:
> 
> fn = FileNames[
>    "*Overview.nb", $InstallationDirectory <>
>     "\\Documentation\\English\\System\\Tutorials\\"];
> (*Find "Overview.nb" files in the tutorials-directory*)
> 
> nameList = {StringTake[#, {StringPosition[#, "\\"][[-1, 1]] +
>         1, -12}],
>      "paclet:tutorial/" <>
>       StringTake[#, {StringPosition[#, "\\"][[-1, 1]] +
>          1, -4}], #} & /@ fn;
> (*create a list of strings needed for future code*)
> 
> Do[nameList[[i, 1]] =
>    "New: " <> nameList[[i, 1]], {i, {3, 6, 7, 8, 18, 28, 29, 40, 41,
>     46, 48}}];
> (* mark the chapter not present in v5.2 with "New: "*)
> 
> orderOfChapters = {{36, 3, 8, 31, 4, 47, 1, 39, 32, 14, 20, 16, 18,
>     17, 11, 43}, {10, 13, 35, 48, 22, 45, 9, 27, 38, 42, 44, 23, 12,
>     26, 15, 40, 41}, {30, 25, 2, 21, 5, 7, 37, 19, 33, 34, 28, 29, 6,
>     46, 24}};
> (*The file list is alphabetical-this is the order in which the \
> chapters should appear*)
> 
> structure = Table[nameList[[i]], {k, 3}, {i, orderOfChapters[[k]]}];
> (*needed for the code further down-represents the structure of the \
> Matehmatica book*)
> 
> mainChapters = {"A practical introduction to Mathematica",
>    "Principles of Mathematica",
>    "Advanced Mathematics in Mathematica"};
> (*The three main headings*)
> 
> d[x_] := Cell[
>    BoxData[TagBox[
>      ButtonBox[
>       PaneSelectorBox[{False -> x[[1]],
>         True -> StyleBox[x[[1]], "HyperlinkActive"]},
>        Dynamic[CurrentValue["MouseOver"]],
>        BaselinePosition -> Baseline, FrameMargins -> 0,
>        ImageSize -> Automatic], BaseStyle -> "Link",
>       ButtonData -> x[[2]], ButtonNote -> x[[2]]],
>      Annotation[#, x[[2]], "Hyperlink"] &]], "Subsection"];
> (*Cell representing a hyperlink to the "...Overview.nb" files*)
> 
> nb = NotebookPut[];
> SetOptions[nb, StyleDefinitions -> "Book\\Textbook.nb"];
> NotebookWrite[
>   nb, {Cell["The Virtual Mathematica Book (v6)", "Title"],
>    Cell["A collection of links to the tutorials present in the \
> Mathematica 6.0 Documentation Center, arranged in the order of \
> chapters in \"The Mathematica Book\".", "Author"]}];
> Do[NotebookWrite[nb, Cell[mainChapters[[k]], "Section"]];
>   Do[NotebookWrite[nb, d[i]];
>    With[{nb1 = NotebookOpen[i[[3]]]},
>     NotebookFind[nb1, "TOCChapter", All, CellStyle];
>     NotebookWrite[nb, NotebookRead[nb1]]; NotebookClose[nb1]], {i,
>     structure[[k]]}], {k, 3}];
> SelectionMove[nb, All, Notebook]; FrontEndExecute[
>  FrontEndToken["SelectionCloseAllGroups"]]; FrontEndExecute[
>  FrontEndToken["OpenCloseGroup"]];
> (*Creates the Mathematica Book.The With[...] block in the middle \
> opens an "Overview.nb" file,extracts the embedded hyperlinks,and \
> prints those into the Mathematica Book as well.*)
> 
> I hope that you might find this as helpful as I do!
> 
> Happy clicking,
> Thomas
> 
> 

-- 
Murray Eisenberg                     murray at math.umass.edu
Mathematics & Statistics Dept.
Lederle Graduate Research Tower      phone 413 549-1020 (H)
University of Massachusetts                413 545-2859 (W)
710 North Pleasant Street            fax   413 545-1801
Amherst, MA 01003-9305


  • Prev by Date: Cube codes just done in Mathematica
  • Next by Date: Re: Re: request for a few minutes CPU-time
  • Previous by thread: Documentation Center (v6): do-it-yourself Mathematica Book
  • Next by thread: Re: Re: Documentation Center (v6): do-it-yourself Mathematica