MathGroup Archive 2007

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

Search the Archive

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


On my Intel Mac using OSX 10.4.10 this code does not work. I have to  
click the OK button when error messages come up or Mathematica  
doesn't go any further.

Tim Brophy


On 5 Aug 2007, at 09:58, Murray Eisenberg wrote:

> 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: Re: Documentation Center (v6): do-it-yourself Mathematica Book
  • Next by Date: How to extract generated mesh data from a Graphics3D object ?
  • Previous by thread: Re: Documentation Center (v6): do-it-yourself Mathematica
  • Next by thread: Re: Documentation Center (v6): do-it-yourself Mathematica