Pour montrer comment créer de la documentation qui s'incorpore à la Centre de Documentation, nous allons créer un package qui contient des fonctions très simples et de sa documentation. Permet d'appeler notre package SOPackage
. Ce paquet sera stocké dans un dossier du même nom et un tel dossier doit être conservé dans $BaseDirectory
ou $UserBaseDirectory$
. L' SOPakage
le dossier de besoins à la structure de l'arbre.
![enter image description here]()
Notez que la racine est le répertoire SOPackage
.
SOPackage
Maintenant, nous allons créer un nouveau fichier notebook à l'intérieur d' SOPackage
: SOPackage.nb
. Ce sont les contenus de l'ordinateur portable
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[];
Voici une capture d'écran de ce que vous devriez voir
![SOPackage]()
Un raccourci pour obtenir le bon format, comme il a été souligné par @alexey-popkov est de mettre en évidence la lettre que vous voulez mettre en forme, appuyez sur Command+0
(Alt+0
dans windows) et entrez "TI". Ensuite, répétez ce processus pour toutes les lettres qui doivent être modifiées. Maintenant nous sauver ce cahier, comme SOPackage.nb
. En cas de Mathematica ne vous demande pas si vous voulez créer un paquet parce que vous avez oublié de changer la cellule à une cellule d'initialisation, alors vous pouvez aller à l' Format->OptionInspector
. Assurez-vous que vous sélectionnez "Options pour SOPackage.nb", sinon, l'option que vous devez définir à true sera grisé. Maintenant, cliquez sur Notebook Options->FileOptions->AutoGeneratePackage
et sélectionnez Automatic
. Fermer la fenêtre des options et enregistrer le fichier. Chaque fois que vous enregistrez SOPackage.nb
le fichier SOPackage.m
sera mis à jour (Ne plaisante pas avec ce m de fichier).
L' Kernel
répertoire doit contenir qu'un seul fichier: init.m
. Ce fichier doit avoir la ligne suivante:
Get["SOPackage`SOPackage`"];
Après cela, nous avons un plan de travail. Vous pouvez essayer ce qui suit pour vous assurer que tout fonctionne bien.
![Test]()
La Documentation
Nous permet de commencer par créer la page du guide. Ce sera la page qui s'affiche lorsque vous tapez SOPackage
dans le centre de doc. Permet de commencer par la création d'un carnet de notes et l'enregistrer sous SOPackage/Documentation/English/Guides
comme SOPackage_E.nb
. La raison pour laquelle je suis en lui donnant l'extension "_E" est parce que ce sera une copie modifiable. Notez que vous ne pouvez pas modifier les documents dans le centre de documentation. Eh bien, vous pouvez, mais ces changements ne jamais prendre effet. Vous aurez probablement souhaitez modifier votre documentation que vous construisez votre paquet si c'est une bonne idée d'avoir une copie que vous pouvez modifier. Pour cet exemple, on peut copier le contenu de l' Combinatorica guide
, sur la Doc de type centre d' Combinatorica/guide/CombinatoricaPackage
sélectionnez toutes les cellules, de les copier et coller dans votre SOPackage_E.nb
le fichier. Faire quelques changements dans la juste de sorte que vous savez qu'ils sont ceux que vous faites. Dans mon cas, j'ai remplacé Combinatorica avec SOPackage. Dans le cas, vous ne pouvez pas modifier une partie d'un texte, c'est ce que vous devez faire:
1: Cliquez sur le texte que vous ne pouvez pas modifier.
![enter image description here]()
2: rendez - Cell->Show Expression
ou entrez Command+Shift+E
ou quelque chose d'équivalent sous windows.
![enter image description here]()
3: Aspect de l'argument de la cellule. C'est un style. Dans certains cas, vous pourrez voir "Utilisation", "Notes", "ObjectName" parmi d'autres. Une fois que vous localiser le style de la cellule que vous ne pouvez pas modifier, allez cliquer sur le portable à modifier et entrez Command+Shift+E
pour montrer de retour de l'expression.
4: Aller à l' Format->Edit StyleSheet...
, entrez le style que vous devez modifier.
![enter image description here]()
5: Une cellule montrant le style apparaît. Assurez-vous que cette cellule est sélectionnée et aller à l' Format->Object Inspector
.
6: Aller à l' Editing Options
et définissez Editable
de vrai.
![enter image description here]()
7: Modifier la inmodifiable.
![enter image description here]()
Je vous suggère de d'abord saisir le nom de tous les styles que vous voulez être en mesure de les modifier comme je l'ai montré dans la capture d'écran. Pour l'instant j'ai seulement changé de ceux que j'ai mentionné dans l'étape 3. Une fois que vous les avez dans la liste, sélectionnez-les tous et à mettre l'modifiable à la fois. Un autre point important est que ce fichier peut être un modèle. Vous devez enregistrer ce fichier quelque part et lorsque vous avez besoin de faire une documentation viens de l'ouvrir, l'enregistrer sous un autre nom dans le droit chemin et de commencer à copier les cellules à partir de la documentation existante carnets de notes.
C'est à vous de décider comment vous créer ce guide. Pour l'instant permet simplement de mettre des bêtises. Vous allez voir mes captures d'écran. Les deux fichiers sont à la documentation de vos fonctions. Copiez et collez votre fichier de modèle d' SOPackage/Documentation/English/ReferencePages/Symbols
et nommer les fichiers AddTwo_E.nb
et DotTwo_E.nb
. Rechercher de la documentation que vous le souhaitez, prendre en Sin
par exemple et de copier et coller les informations de ces fichiers. Je vais changer les noms juste pour montrer comment ils fonctionnent.
La création du fichier de modèle peut sûrement être réduite. Si quelqu'un sait comment le faire par programmation, n'hésitez pas à modifier cette section ici et de le remplacer par le code. Vous allez tous nous faire une faveur énorme.
PacletInfo.m
Ce fichier va droit dans le répertoire OSPackage
et contient les éléments suivants:
Paclet[
Name -> "SOPackage",
Version -> "0.0.1",
MathematicaVersion -> "8+",
Extensions -> {{
"Documentation",
Resources -> {
"Guides/SOPackage"
},
Language -> "English"
}}
]
Il y a une dernière chose que nous devons faire avant que nous puissions avoir la documenation prêt. Nous avons besoin de faire l'ensemble de la documentation des fonctions non modifiable et nous avons à lui donner le même format que le reste des documents. Cette fois, j'ai écrit un script qui fait cela. Je l'appelle MakeDoc car il permettra aussi de renforcer l'index. Enregistrez ce fichier sous OSPackage
. Je vais briser ce fichier intwo 4 parties de sorte que vous pouvez obtenir une explication.
pname = "SOPackage";
Get[pname <> "`"];
basepath = $UserBaseDirectory<>"/Applications/"<>pname<>"/Documentation/English/ReferencePages/Symbols/";
$UserBaseDirectory <> "/Applications/" <> pname <> "/Documentation/English/ReferencePages/Symbols/";
Nous devons nous assurer que nous redémarrer Mathematica avant de le faire. Nous allons d'abord charger le package et définissez le répertoire racine de l'ensemble de la documentation des fonctions. Sur l'étape suivante, nous allons essentiellement de copier coller le code, nous allons faire ce qui suit pour chaque fonction.
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];
Ce bloc de code ouvre le modifiable en fonction de la documentation. Il enregistre avec le nom correct. Et puis ça change de ses attributs, de sorte qu'il n'est pas modifiable et il lui donne le même aspect que le reste des documents. Nous faisons la même chose pour chaque fonction. Notez que le "résumé" est défini à l' usage
message de la fonction. C'est ce que nous allons voir lorsque l'on recherche la fonction.
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];
Très important, nous n'avons pas modifié le guide, c'est tout ce qu'il faut:
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];
Et enfin, nous avons créer l'index comme ceci:
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];
Notez que nous avons besoin d'une ligne avec AddDocumenationNotebook
pour chaque fonction. Après l'exécution de l' MakeDoc.nb
les fichiers AddTwo.nb
, DotTwo.nb
et SOPackage.nb
me sera créé. Ces fichiers ne peuvent pas être modifiés. Vous pourrez également voir un dossier nommé Index
. C'est tous les binaires de données qui contient des informations pour le centre de doc. Si jamais vous apportez une modification de la documentation, vous devez exécuter MakeDoc.nb
pour effectuer les modifications prennent effet. Voici l'arborescence du document que nous avons maintenant.
![enter image description here]()
Après cela, il faut relancer Mathematica et de prendre notre documentation pour un tour.
C'est ce qui arrive lorsque vous recherchez "SOPackage".
![enter image description here]()
Laisse le regard de l'utilisation de la AddTwo
![enter image description here]()
Notez qu'une flèche avec un lien vers la page de doc a été ajouté automatiquement.
Malheureusement, si l'on recherche de l' AddTwo
dans la doc center c'est ce que nous obtenons:
![enter image description here]()
Comment pouvons-nous faire en sorte que le résumé de la fonction n'est pas formaté?
N'hésitez pas à modifier mon code en le téléchargeant à partir d' ici.
Merci pour la lecture.
Manuel