Re: Documentation Center (v6): do-it-yourself Mathematica
- To: mathgroup at smc.vnet.net
- Subject: [mg79860] Re: Documentation Center (v6): do-it-yourself Mathematica
- From: David Reiss <dbreiss at gmail.com>
- Date: Tue, 7 Aug 2007 01:29:17 -0400 (EDT)
- References: <200708041000.GAA06032@smc.vnet.net>
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
- Follow-Ups:
- Re: Re: Documentation Center (v6): do-it-yourself Mathematica
- From: Tim Brophy <timbrophy@mac.com>
- Re: Re: Documentation Center (v6): do-it-yourself Mathematica
- References:
- Documentation Center (v6): do-it-yourself Mathematica Book
- From: thomas <thomas.muench@gmail.com>
- Documentation Center (v6): do-it-yourself Mathematica Book