ドキュメントセンターに組み込まれるドキュメントを作成する方法を示すために、非常に単純な関数とそのドキュメントを含むパッケージを作成します。パッケージを呼び出しましょうSOPackage
。このパッケージは同じ名前のフォルダに保存され、そのようなフォルダはまたはのいずれかに保存する必要があり$BaseDirectory
ます$UserBaseDirectory$
。フォルダは次のSOPakage
ツリー構造である必要があります。

ルートがディレクトリであることに注意してくださいSOPackage
。
SOPackage
SOPackage
次に、 :内に新しいノートブックファイルを作成しますSOPackage.nb
。これらはノートブックの内容です
BeginPackage["SOPackage`"];
AddTwo::usage = "AddTwo[\!\(\*StyleBox[\"a\", \"TI\"]\), \!\(\*StyleBox[\"b\", \"TI\"]\)] returns \!\(\*StyleBox[\"a\", \"TI\"]\)+\!\(\*StyleBox[\"b\", \"TI\"]\).";
DotTwo::usage = "DotTwo[\!\(\*StyleBox[\"a\", \"TI\"]\), \!\(\*StyleBox[\"b\", \"TI\"]\)] returns \!\(\*StyleBox[\"a\", \"TI\"]\)*\!\(\*StyleBox[\"b\", \"TI\"]\).";
AddTwo::argnum = "AddTwo was called with `1` arguments. It expected 2.";
DotTwo::argnum = "DotTwo was called with `1` arguments. It expected 2.";
Begin["`Private`"];
AddTwo[a_, b_] := a + b
AddTwo[args___] := (Message[AddTwo::argnum, Length[{args}]]; $Failed)
DotTwo[a_, b_] := a*b
DotTwo[args___] := (Message[DotTwo::argnum, Length[{args}]]; $Failed)
End[];
EndPackage[];
これがあなたが見るべきもののスクリーンショットです

使用法メッセージは通常、特別な方法でパラメータをフォーマットすることに注意してください。このフォーマット(@ alexey-popkovによって指摘される)を取得するためのショートカットは、フォーマットしたい文字を強調表示し、Command+0(Alt+0Windowsで)を押して「TI」と入力することです。変更が必要なすべての文字について、このプロセスを繰り返します。を介してセルを初期化セルに変更しCell->CellProperties->Initialization Cell
ます。ここで、このノートブックをとして保存しSOPackage.nb
ます。セルを初期化セルに変更するのを忘れたためにMathematicaがパッケージを作成するかどうか尋ねなかった場合は、に進むことができますFormat->OptionInspector
。「SOPackage.nbのオプション」を選択していることを確認してください。選択していない場合、trueに設定する必要のあるオプションはグレー表示されます。次にクリックしNotebook Options->FileOptions->AutoGeneratedPackage
て選択しますAutomatic
。オプションウィンドウを閉じて、ファイルを保存します。SOPackage.nb
ファイルを保存するたびSOPackage.m
に更新されます(このmファイルを台無しにしないでください)。
ディレクトリには、次のKernel
1つのファイルのみを含める必要がありますinit.m
。このファイルには次の行が必要です。
Get["SOPackage`SOPackage`"];
この後、作業パッケージができました。次のことを試して、すべてが正常に機能していることを確認できます。
<<SOPackage`
?AddTwo
?DotTwo
DotTwo[]
DotTwo[2, 3]
ドキュメンテーション
ガイドページの作成から始めましょう。SOPackage
これは、ドキュメントセンターに入力したときに表示されるページになります。ノートブックを作成し、の下にSOPackage/Documentation/English/Guides
として保存することから始めましょうSOPackage_E.nb
。拡張子「_E」を付けるのは、これが編集可能なコピーになるためです。ドキュメントセンターでは、どのドキュメントも編集できないことに注意してください。できますが、これらの変更が有効になることはありません。パッケージを作成するときにドキュメントを変更することをお勧めします。そのため、編集可能なコピーを用意しておくことをお勧めします。この例では、の内容をコピーできますCombinatorica guide
。ドキュメントセンターCombinatorica/guide/CombinatoricaPackage
で、セルを含むすべてを選択し、それらをコピーしてファイルに貼り付けSOPackage_E.nb
ます(または、ファイルをコピーします)。C:\Program Files\Wolfram Research\Mathematica\10.4\Documentation\English\Packages\Combinatorica\Documentation\English\Guides\CombinatoricaPackage.nb
または他のOSで同等のもの)。それらがあなたが行っているものであることがわかるように、いくつかの変更を加えます。私の場合、CombinatoricaをSOPackageに置き換えました。テキストの一部を変更できない場合は、次のようにする必要があります。
1:変更できないテキストをクリックします。

2:Windowsに移動するCell->Show Expression
か、入力するか、同等のものを入力します。Command+Shift+E

3:式の2番目の引数を探しCell
ます(フォームのオプションの直前A -> B
)。これはスタイル名です。場合によっては、「Usage」、「Notes」、「ObjectName」などが表示されます。変更できないセルのスタイルを見つけたら、編集しているノートブックをクリックして入力Command+Shift+E
し、式を表示します。
4:に移動しFormat->Edit StyleSheet...
、前に見たスタイル名をの下に入力しますEnter a style name:
。

5:スタイルを示すセルが表示されます。このセルが選択されていることを確認して、に移動しFormat->Object Inspector
ます。それが言うことを確認してくださいShow option values
Selection。
6:に移動してtrueEditing Options
に設定Editable
します。

7:変更不可を変更します。

スクリーンショットに示したように、最初に編集できるようにするすべてのスタイルの名前を入力することをお勧めします。これまでのところ、手順3で説明したものだけを変更しました。リストにそれらを追加したら、それらをすべて選択し、を一度に編集可能に設定します。もう1つの重要な点は、このファイルがテンプレートになる可能性があることです。このファイルをどこかに保存する必要があります。ドキュメントを作成する必要がある場合は、ファイルを開いて、正しいパスに別の名前で保存し、既存のドキュメントノートブックからセルのコピーを開始します。
このガイドをどのように作成するかはあなた次第です。今のところ、ナンセンスを入れましょう。私のスクリーンショットが表示されます。次の2つのファイルは、関数のドキュメントです。テンプレートファイルをコピーしてに貼り付け、ファイルに名前SOPackage/Documentation/English/ReferencePages/Symbols
を付けます。気に入ったドキュメントを探して、たとえば、情報をコピーしてそれらのファイルに貼り付けます。名前を変更して、それらがどのように機能するかを示します。AddTwo_E.nb
DotTwo_E.nb
Sin
テンプレートファイルの作成を確実に減らすことができます。プログラムでこれを行う方法を誰かが知っている場合は、ここでこのセクションを編集して、コードに置き換えてください。あなたは私たち全員に大きな恩恵を与えるでしょう。
PacletInfo.m
このファイルはディレクトリのすぐ下にSOPackage
あり、次のものが含まれています。
Paclet[
Name -> "SOPackage",
Version -> "0.0.1",
MathematicaVersion -> "8+",
Extensions -> {{
"Documentation",
Resources -> {
"Guides/SOPackage"
},
Language -> "English"
}}
]
ドキュメントを準備する前に、最後にやらなければならないことが1つあります。すべての関数ドキュメントを編集不可にする必要があり、残りのドキュメントと同じ形式にする必要があります。今回は、これを行うスクリプトを作成しました。インデックスも作成するので、MakeDocと呼びます。このファイルを。の下に保存しますOSPackage
。説明が得られるように、このファイルを2つの4つの部分に分割します。
pname = "SOPackage";
Get[pname <> "`"];
basepath = $UserBaseDirectory<>"/Applications/"<>pname<>"/Documentation/English/ReferencePages/Symbols/";
$UserBaseDirectory <> "/Applications/" <> pname <> "/Documentation/English/ReferencePages/Symbols/";
これを行う前に、必ずMathematicaを再起動する必要があります。まず、パッケージをロードし、すべての関数ドキュメントのルートディレクトリを設定します。次のステップでは、基本的に貼り付けコードをコピーします。関数ごとに次の手順を実行します。
snname := "AddTwo";
nb = NotebookOpen[basepath <> snname <> "_E.nb"];
NotebookSave[nb, basepath <> snname <> ".nb"];
SetOptions[nb,
TaggingRules -> {
"ModificationHighlight" -> False,
"Metadata" -> {
"context" -> pname <> "`",
"keywords" -> {},
"index" -> True,
"label" -> "OSPackage Package Paclet Symbol",
"language" -> "en",
"paclet" -> "OSPackage Package",
"status" -> "",
"summary" -> AddTwo::usage,
"synonyms" -> {},
"title" -> "AddTwo",
"type" -> "Symbol",
"uri" -> pname <> "/ref/AddTwo"},
"SearchTextTranslated" -> ""
}
];
SetOptions[nb, Saveable -> False];
SetOptions[nb,
StyleDefinitions ->
FrontEnd`FileName[{"Wolfram"}, "Reference.nb"]];
NotebookSave[nb];
このコードブロックは、編集可能な関数のドキュメントを開きます。正しい名前で保存されます。次に、属性を変更して編集できないようにし、残りのドキュメントと同じ外観にします。各関数について同じことを行います。usage
関数のメッセージに「summary」が設定されていることに注意してください。これは、関数を検索したときに表示されるものです。
snname := "DotTwo";
nb = NotebookOpen[basepath <> snname <> "_E.nb"];
NotebookSave[nb, basepath <> snname <> ".nb"];
SetOptions[nb,
TaggingRules -> {
"ModificationHighlight" -> False,
"Metadata" -> {
"context" -> pname <> "`",
"keywords" -> {},
"index" -> True,
"label" -> "OSPackage Package Paclet Symbol",
"language" -> "en",
"paclet" -> "OSPackage Package",
"status" -> "",
"summary" -> DotTwo::usage,
"synonyms" -> {},
"title" -> "DotTwo",
"type" -> "Symbol",
"uri" -> pname <> "/ref/DotTwo"},
"SearchTextTranslated" -> ""
}
];
SetOptions[nb, Saveable -> False];
SetOptions[nb,
StyleDefinitions ->
FrontEnd`FileName[{"Wolfram"}, "Reference.nb"]];
NotebookSave[nb];
非常に重要なことですが、ガイドは変更していません。必要なのはこれだけです。
snname := "SOPackage";
nb = NotebookOpen[guidepath <> snname <> "_E.nb"];
NotebookSave[nb, guidepath <> snname <> ".nb"];
SetOptions[nb, Saveable -> False];
SetOptions[nb, StyleDefinitions -> FrontEnd`FileName[{"Wolfram"}, "Reference.nb"]];
NotebookSave[nb];
そして最後に、次のようなインデックスを作成します。
indir = $UserBaseDirectory<>"/Applications/"<>pname<>"/Documentation/English/Index";
If[FileNames[indir] != {}, DeleteDirectory[indir, DeleteContents -> True]];
ind = DocumentationSearch`NewDocumentationNotebookIndexer[indir];
DocumentationSearch`AddDocumentationNotebook[ind, basepath <> "AddTwo.nb"];
DocumentationSearch`AddDocumentationNotebook[ind, basepath <> "DotTwo.nb"];
DocumentationSearch`CloseDocumentationNotebookIndexer[ind];
AddDocumenationNotebook
関数ごとに1行にする必要があることに注意してください。MakeDoc.nb
ファイルを実行したAddTwo.nb
後、、DotTwo.nb
がSOPackage.nb
作成されます。これらのファイルは変更できません。。という名前のフォルダも表示されIndex
ます。これは、ドキュメントセンターの情報を含むすべてのバイナリデータです。ドキュメントに変更を加えた場合は、変更を有効にするために実行MakeDoc.nb
する必要があります。これが現在のドキュメントツリーです。

この後、Mathematicaを再起動し、ドキュメントを試してみる必要があります。
これは、「SOPackage」を探すときに起こることです。

の使用法を探しましょうAddTwo

ドキュメントページへのリンクが付いた矢印が自動的に追加されたことに注意してください。
AddTwo
残念ながら、ドキュメントセンターで検索すると、次のようになります。

関数の要約がフォーマットされないようにするにはどうすればよいですか?
ここからダウンロードして、コードを自由に変更してください。
読んでくれてありがとう。
マヌエル