MathGroup Archive 2007

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

Search the Archive

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


Hi David,

Thanks a lot. This works perfectly.

Regards,

Tim


On 7 Aug 2007, at 06:29, David Reiss wrote:

> Hi Tim,
>
> The original posting was Windows specific because it used explicit
> path constructs.  See the original thread for an OS-indepenedent
> version:
>
> http://groups.google.com/group/comp.soft-sys.math.mathematica/ 
> browse_thread/thread/cd70b00cdf27107f/2e54396141432495
>
>
> --David
>
>
> On Aug 6, 3:38 am, Tim Brophy <timbro... at mac.com> wrote:
>> 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                     mur... 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: Two different packages can not Need[] the same utility package?
  • Next by Date: Integrate with PrincipalValue->True
  • Previous by thread: Re: Documentation Center (v6): do-it-yourself Mathematica
  • Next by thread: Re: Documentation Center (v6): do-it-yourself Mathematica Book