1

を使用せずにセルの $ContextPath を変更するにはどうすればよいですかPrepend:

$ContextPath = Prepend[$ContextPath, "PackageName`"]

ドキュメンテーションを調べていて$ContextPath、そこにある最初の入力セルを評価することにしました。

評価前:

ここに画像の説明を入力

評価後:

ここに画像の説明を入力

ここでの違いは、このドキュメントが書かれているとき、WebServicesそれを書いている人が有効になっていないことだと思います。Globalこれは明示的に言及されているため、そのセルのコンテキストにあることがわかります。に移動して式を確認しCell > Show Expressionます。

ここに画像の説明を入力

オプションCellContextはグローバルに設定されています。それでは、新しいセルを作成して評価しましょう$Context

ここに画像の説明を入力

これは、そのセル内では、他のノートブックで作成したグローバル オブジェクトを使用できないことを意味します。セルの CellContext オプションを変更することで、グローバルを追加できます。表現と編集を見せることでこれを行います。評価すると、コンテキストがグローバルに変更されていることがわかります。さて、念のため、コンテキストをグローバルに変更したばかりのセルでこれを試してみましょう。

Print["Outside Module = ", $ContextPath]
Module[{},
 Print["Inside Module = ", $ContextPath];
 Manipulate[
  Print["Inside Manipulate = ", $ContextPath];
  Row[{
    Plot[x, {x, -3, 3}, PlotRange -> {{-3, 3}, {-3, 3}}]
    }],
  {{p1, {-1, 2}}, Locator, Appearance -> "L1"}
  ]
 ]

あなたはこのようなものを手に入れますか:

ここに画像の説明を入力

Manipulate内でコンテキストが変わるのはなぜですか? 他のノートブックの内部では、これは起こりません。参照スタイルシートの設定に関係していると思いますが、わかりません。ドキュメント ノートブックの設定を一時的に変更して、ノートブック全体のどこでもグローバル コンテキストを使用できるようにするにはどうすればよいでしょうか?

4

1 に答える 1

1

それで、私があなたを正しく理解していれば、あなたはドキュメンテーション センターのノートブックでいくつかのコマンドを実行していて、コンテキストの動作を理解していませんか?

ドキュメンテーション センターではCell[StyleData["Input"]...、 にオプションがあるスタイル シート (Reference.nb) を使用していますCellContext->CellGroup。これは、ドキュメント センターのページのオプション インスペクターを使用して確認することもできます。

オプション インスペクター

この設定は、ドキュメンテーション センターにとって非常に便利です。これは、そこにあるすべての例が相互に干渉したり、Global`定義に干渉したりしないことを意味するためです。


評価メニューを使用して、特定のノートブックのデフォルト コンテキストを設定することもできます。

評価メニュー

于 2011-07-14T09:44:43.147 に答える