9

Mathematicaの新しいバージョンでは、完全に機能する昔ながらの Mathematica ヘルプ ブラウザを使用できます。ただし、バージョン 5 の古いドキュメントはMathematicaの新しいバージョンには含まれていません。この古いドキュメントは 209 メガバイトのディスク容量しか必要とせず、新しいバージョンのMathematica内からアクセスできると便利です。

Mathematica 5.2 とMathematica 7 または 8 が同じマシンにインストールされている場合、旧式のヘルプ ブラウザを介して新しいバージョンからレガシー ドキュメントにアクセスできるようにするにはどうすればよいでしょうか?

ドキュメントフォルダをコピーしようとしました

C:\Program Files\Wolfram Research\Mathematica\5.2\Documentation

C:\Documents and Settings\All Users\Application Data\Mathematica\Application\LegacyDocumenation

また、従来のヘルプ ブラウザの内部には、「ヘルプ ブラウザ」がアドオンとして表示されるようになりました。しかし、それは正しく動作しません。

Mathematica 5のヘルプブラウザの外観を調整するための有益な情報がここにあります. しかし、これを新しいバージョンのMathematicaに適用する方法がわかりません。

4

2 に答える 2

7

ソリューション

ちなみに、新しいバージョンのMathematicaで、すべてのMathematica5.2ドキュメントをレガシーヘルプブラウザに追加する方法を見つけました。

キーは、ディレクトリ(Windowsの場合)にある「HelpBrowserSetup.tr」ファイルです。

C:\Program Files\Wolfram Research\Mathematica\7.0\SystemFiles\FrontEnd\TextResources

その内容を次のように置き換える必要があります。

@@resource HelpBrowserSetup
BrowserCategory["Help Browser", None, {
    HelpDirectoryListing[{"RefGuide"}, False],
    HelpDirectoryListing[{"AddOns"}, False],
    HelpDirectoryListing[{"MainBook"}, False],
    HelpDirectoryListing[{"OtherInformation"}, False],
    HelpDirectoryListing[{"GettingStarted"}, False],
    HelpDirectoryListing[{"Tour"}, False],
    HelpDirectoryListing[{"Demos"}, False],
    BrowserCategory["Master Index", None, {HelpMasterIndex[]}]
}]

$InstallationDirectory次に、Mathematica 5.2の「Documentation」フォルダ$InstallationDirectoryを新しいバージョンのMathematicaに置き換えてコピーする必要があります(重要でないファイルが1つ置き換えられます)。別の可能性は、それをディレクトリにコピーすることです(Windowsの場合)

C:\Documents and Settings\All Users\Application Data\Mathematica

(おそらくそれ$UserBaseDirectoryも適切です)。

Mathematicaを起動して評価します

FrontEndTokenExecute["HelpDialog"]

従来のヘルプブラウザが開き、バージョン5.2のすべてのドキュメントが含まれます。

スクリーンショット

編集

私はさらに簡単な解決策を見つけました。「HelpBrowserSetup.tr」ファイルを次のように変更できます。

@@resource HelpBrowserSetup
HelpDirectoryListing[SystemHelpPath, False, True, True]

(または、このファイルをバージョン5.2のインストールから新しいバージョンのフォルダーに置き換えてコピーするだけです)。

Mathematica5.2をインストールしている人のための追加

ドキュメントをコピーする必要はありません。2つの可能性があります。

1.)バージョン5.2のインストールから新しいバージョンのフォルダに「HelpBrowserSetup.tr」ファイルのみをコピーします。次に、次のようなものを評価します

SetOptions[$FrontEnd, 
 SystemHelpPath -> 
  Union[SystemHelpPath /. 
    Options[$FrontEnd, 
     SystemHelpPath], {"C:/Program Files/Wolfram \
Research/Mathematica/5.2/"}]]

(ここで、「C:/ Program Files / Wolfram Research / Mathematica / 5.2/」はMathematica5.2のもの$InstallationDirectoryです

2.)「HelpBrowserSetup.tr」ファイルを次のように変更するだけです(ただし、この場合、インストールされているバージョン6より前のアドオンはすべてレガシーヘルプブラウザに表示されません)。

@@resource HelpBrowserSetup
HelpDirectoryListing[{"C:/Program Files/Wolfram Research/Mathematica/5.2/"}, False, True, True]

その後、評価します

FrontEndTokenExecute["RebuildHelpIndex"]
FrontEndTokenExecute["HelpDialog"]

PSヘルプメニューへのヘルプブラウザ項目の追加

このためにはMenuItem["Help Browser...", "HelpDialog"],、MenuSetup.trの適切な場所に行を追加する必要があります。

HelpMenu["&Help", 
{
    MenuItem["Documentation &Center", "OpenHelpLink"],
    MenuItem["Help Browser...", "HelpDialog"],

スクリーンショット

于 2011-08-01T04:56:19.300 に答える
5

警告:新しいドキュメントのインデックスを作成すると、Windows マシンで望ましくない結果が生じる可能性があることを最近知りました。詳細については、Alexey のコメントをお読みください。私が知る限り、Mac OS X ではすべて正常に動作しています。問題の原因が特定できたら、最新情報を提供します。

ここでは、任意のノートブックをMathematica 8のドキュメンテーション センターの一部にできるようにする関数を紹介します。 Mathematicaに次の評価をさせることから始めることができます。

Clear[FormatDoc, AddDocs];
FormatDoc[dir_, last_, num_, appName_, pacFile_, index_] := 
 Module[{dirs, nbs, nb, str, comma = ",", title, tags}, 
  nbs = FileNames[dir <> "/*.nb"];
  dirs = FileNames[dir <> "/*"];
  Do[If[last && i == Length@nbs, comma = ""];
   str = FileNameDrop[nbs[[i]], {1, num}];
   title = StringDrop[FileNameTake[nbs[[i]]], -3];
   Print[Row[{Style["Adding: ", "MSG", Black], 
      Style[str, "MSG", Blue]}]];
   str = StringDrop[str, -3];
   WriteString[pacFile, 
    "\t\t\t\t\"" <> str <> "\"" <> comma <> "\n"];
   nb = NotebookOpen[nbs[[i]]];
   tags = 
    DeleteDuplicates@
     Flatten@Map[#[[2]] &, 
       Cases[NotebookGet[
         nb], (_Dummy | (CellTags -> _)), \[Infinity]]];
   SetOptions[nb, 
    DockedCells -> 
     FEPrivate`FrontEndResource["FEExpressions", "HelpViewerToolbar"],
     Saveable -> False, 
    WindowTitle -> 
     "Mathematica 5.2 | " <> FileNameDrop[str] <> " | " <> title, 
    TaggingRules -> {"ModificationHighlight" -> False, 
      "Metadata" -> {"context" -> appName <> "`", "keywords" -> tags, 
        "index" -> True, 
        "label" -> "Mathematica 5.2 | " <> FileNameDrop[str], 
        "language" -> "en", "paclet" -> appName, "status" -> "", 
        "summary" -> ToString@tags, "synonyms" -> {}, 
        "title" -> title, "windowtitle" -> title, "type" -> "Doc", 
        "uri" -> 
         StringReplace[FileNameJoin[{appName, str}], "\\" -> "/"]}, 
      "SearchTextTranslated" -> "", "LinkTrails" -> ""}];
   NotebookSave[nb];
   NotebookClose[nb];
   DocumentationSearch`AddDocumentationNotebook[index, nbs[[i]]];, {i,
     Length@nbs}];
  Do[If[DirectoryQ[dirs[[i]]], str = FileNameDrop[dirs[[i]], {1, num}];
    Print[
     Row[{Style["Adding from: ", "MSG", Black], 
       Style[str, "MSG", Gray]}]];
    FormatDoc[dirs[[i]], last, num, appName, pacFile, index];], {i, 
    Length@dirs}]]
AddDocs[appName_] := 
 Module[{appDir, appDocs, dirs, pacFile, index, indexDir, str, num}, 
  appDir = FileNameJoin[{$UserBaseDirectory, "Applications"}];
  appDocs = 
   FileNameJoin[{appDir, appName, "Documentation", "English"}];
  indexDir = FileNameJoin[{appDocs, "Index"}];
  dirs = FileNames[appDocs <> "/*"];
  If[Length@dirs == 0, 
   Print[Style["There are no documents to add... ", "MSG", Orange]];
   Return[]];
  Print[Row[{Style["Working in: ", "MSG", Black], 
     Style[appDocs, "MSG", Red]}]];
  num = Length@FileNameSplit[appDocs];
  index = 
   DocumentationSearch`NewDocumentationNotebookIndexer[indexDir];
  pacFile = OpenWrite[FileNameJoin[{appDir, appName, "PacletInfo.m"}]];
  WriteString[pacFile, "Paclet[
                Name -> \"" <> appName <> "\",
                Version -> \"5.2.0\",
                MathematicaVersion -> \"7+\",
                Extensions -> {
                    {
                        \"Kernel\",
                        \"Context\" -> {
                        }
                    },
                    {
                        \"Documentation\",
                        Language -> \"English\",
                        LinkBase -> \"" <> appName <> "\",
                        Resources -> {\n"];
  Do[If[DirectoryQ[dirs[[i]]], str = FileNameDrop[dirs[[i]], {1, num}];
    Print[
     Row[{Style["Adding from: ", "MSG", Black], 
       Style[str, "MSG", Gray]}]];
    FormatDoc[dirs[[i]], i == Length@dirs, num, appName, pacFile, 
     index];], {i, Length@dirs}];
  WriteString[pacFile, "\t\t\t}
                }
            }
          ]\n"];
  Close[pacFile];
  DocumentationSearch`CloseDocumentationNotebookIndexer[index];
  PacletManager`RestartPacletManager[];]

それの使い方:

新しいドキュメントまたは関数を評価した同じドキュメントで、この変数が何であるかを調べることから始めます。

$UserBaseDirectory

私の場合、Mac OS XI を使用しているため、次のようになります。

/Users/jmlopez/Library/Mathematica

あなたのものを見つけてください。このディレクトリには、フォルダが表示されますApplications。内部Applicationsに、MMA5 ドキュメントを配置するフォルダーを作成します。短いのでフォルダに名前を付けましMMA5たが、好きな名前を付けることができます.Alexeyの場合はLegacyDocumentation. Documentationこのフォルダー内に、MMA5 のインストール ディレクトリにあるという名前のフォルダーのコピーを転送します。

ほぼ完了です。関数を呼び出しますAddDocs。この関数は引数を 1 つだけ取ります: ドキュメントを追加したいアプリケーションの名前です。私の場合、フォルダーに名前を付けたMMA5ので、次のように呼びます。

AddDocs["MMA5"]

次に表示されるのは、一連のノートブックの表示と非表示、および一連のメッセージの印刷です。以下は、一連のメッセージの一部です。

出力

MMA5 のドキュメントは非常に広範囲にわたるため、このプロセスにはしばらく時間がかかります。この関数でタイミングを計ったところ、約 40 秒かかったとのことでした (私にはもっと長いように思えました)。

これで完了です。MMA5 のドキュメントは、ドキュメント センターで入手できるようになりました。

試乗

に関する情報を調べたいとしますDSolve。を検索するDSolveと、次のように表示されます。

DSolve MM8

MMA5 ドキュメントをDSolve検索するには、「DSolve を含むすべてのページを検索」にあるリンクをクリックする必要があります。これで、次のようなものが得られます。

DSolve MM5

上のスクリーンショットでは、Mathematica 5 のドキュメントにアクセスできるエントリを赤でマークしています。ドキュメント内の各ファイルの適切な要約を書く方法がないので、MathematicaCellTagsにノートブックにあるものを書かせました。これが、文字列のリストが表示される理由です。

最初の赤いエントリをクリックすると、これが得られます

ジャックポット

これで、Mathematica の新しいバージョンで動作する従来のドキュメントの作業コピーができました。MMA7 でこれをテストしたことはありませんが、うまくいくと感じています。誰かがこれを試したら、私に知らせてください。

ノート

これを別のアプリケーションの他のドキュメントに適用する場合。これに注意する必要があります:

    WindowTitle -> 
     "Mathematica 5.2 | " <> FileNameDrop[str] <> " | " <> title,
    TaggingRules -> {
      "ModificationHighlight" -> False,
      "Metadata" -> {
        "context" -> appName <> "`",
        "keywords" -> tags,
        "index" -> True,
        "label" -> "Mathematica 5.2 | " <> FileNameDrop[str],
        "language" -> "en",
        "paclet" -> appName,
        "status" -> "",
        "summary" -> ToString@tags,
        "synonyms" -> {},
        "title" -> title,
        "windowtitle" -> title,
        "type" -> "Doc",
        "uri" -> 
         StringReplace[FileNameJoin[{appName, str}], "\\" -> "/"]
        },

ラベルに「Mathematica 5.2」をハードコードしたことに注意してください。必要に応じて、これを「LegacyDocumentation」に変更することもできます。これは単なるラベルです。もう 1 つの重要なポイントは、keywords. keywords変数に設定しましたtags。ノートブックのすべてのセルには、追加するオプションがありますCellTags。ドキュメントを作成する場合は、それらを使用する必要があります。これを利用して、ドキュメンテーション センターにドキュメントの検索方法を知らせました。これは私が最近学んだことであり、間違いなくパッケージに実装します。

ドキュメントを含む完全なアプリケーションを作成したい場合は、ノートブックを MMA doc center に統合するという私の投稿をご覧になることをお勧めします。ここでは、ここで提供した機能がどのように機能するかを理解できるようにするための詳細情報を見つけることができます。

最後に、Windows マシンでもこれをテストしたところ、問題なく動作したことを付け加えたいと思います。これが、このコード行の背後にある理由です。

StringReplace[FileNameJoin[{appName, str}], "\\" -> "/"]

編集:

MMA7で正しく動作するように機能を変更しました。MMA7 と MMA8 で動作するには、pacletInfo.mファイルに次の行が必要であることが判明しました。MathematicaVersion -> 7+

編集2:

関数をコピーして貼り付けるときに間違えました。今すぐ修正する必要があります。MMA7 と MMA8 の両方を持っている場合は、MMA7 で 1 回だけ実行することをお勧めします。そうすれば、ドキュメントは MMA7 と MMA8 の両方で利用できるようになります。

于 2011-07-31T16:31:19.970 に答える