(*********************************************************************** Mathematica-Compatible Notebook This notebook can be used on any computer system with Mathematica 4.0, MathReader 4.0, or any compatible application. The data for the notebook starts with the line containing stars above. To get the notebook into a Mathematica-compatible application, do one of the following: * Save the data starting with the line of stars above into a file with a name ending in .nb, then open the file inside the application; * Copy the data starting with the line of stars above to the clipboard, then use the Paste menu command inside the application. Data for notebooks contains only printable 7-bit ASCII and can be sent directly in email or through ftp in text mode. Newlines can be CR, LF or CRLF (Unix, Macintosh or MS-DOS style). NOTE: If you modify the data for this notebook not in a Mathematica- compatible application, you must delete the line below containing the word CacheID, otherwise Mathematica-compatible applications may try to use invalid cache data. For more information on notebooks and Mathematica-compatible applications, contact Wolfram Research: web: http://www.wolfram.com email: info@wolfram.com phone: +1-217-398-0700 (U.S.) Notebook reader applications are available free of charge from Wolfram Research. ***********************************************************************) (*CacheID: 232*) (*NotebookFileLineBreakTest NotebookFileLineBreakTest*) (*NotebookOptionsPosition[ 22485, 624]*) (*NotebookOutlinePosition[ 57987, 1835]*) (* CellTagsIndexPosition[ 57943, 1831]*) (*WindowFrame->Normal*) Notebook[{ Cell[TextData[{ StyleBox["J/Link", FontSlant->"Italic"], " Tutorial" }], "Title"], Cell["Creating Java palettes", "Subtitle"], Cell[TextData[{ "One of the goals of ", StyleBox["J/Link", FontSlant->"Italic"], " is to allow Java user interface elements to be as close as possible to \ first-class members of the notebook front end environment. One way this is \ accomplished is with the ", StyleBox["ShareKernel", FontFamily->"Courier"], " function, which allows Java windows to share the \ kernel\[CloseCurlyQuote]s attention with notebook windows. We refer to such \ Java windows as modeless, not in the traditional sense of allowing other Java \ windows to remain active, but modeless with respect to the kernel, meaning \ that the kernel is not kept busy until they are dismissed." }], "Text"], Cell[TextData[{ "Beyond the ability to have Java windows share the kernel with the front \ end, it would be nice to allow actions in Java to cause effects in notebook \ windows, such as printing something, displaying a graph, or any of the \ notebook-manipulation commands like ", StyleBox["NotebookApply", FontFamily->"Courier"], ", ", StyleBox["NotebookPrint", FontFamily->"Courier"], ", ", StyleBox["SelectionEvaluate", FontFamily->"Courier"], ", ", StyleBox["SelectionMove", FontFamily->"Courier"], ", and so on. A good example of this is palette buttons. A palette button \ can, for example, cause the current selection to be replaced by something \ else and the resulting expression to be evaluated in place." }], "Text"], Cell[TextData[{ "The ", StyleBox["ShareFrontEnd", FontFamily->"Courier"], " function lets actions in Java modeless windows trigger events in a \ notebook window just like palette buttons or ", StyleBox["Mathematica", FontSlant->"Italic"], " code you evaluate manually in a notebook. " }], "Text"], Cell[CellGroupData[{ Cell["Starting Out", "Section"], Cell[TextData[{ "In the example below, a simple palette-type button is developed in Java \ that prints its label at the current cursor position in the active notebook. \ Because of current limitations with ", StyleBox["ShareFrontEnd", FontFamily->"Courier"], ", this example will not work with a remote kernel; the same machine must \ be running the kernel and the front end." }], "Text"], Cell[TextData[{ "The code is mostly straightforward. You should use the ", StyleBox["MathFrame", FontFamily->"Courier"], " class for the frame window because it closes and disposes of itself when \ its close box is clicked. You can create a ", StyleBox["MathActionListener", FontFamily->"Courier"], " that calls ", StyleBox["buttonFunc", FontFamily->"Courier"], " and assign it to the button. From the table in section 1.2.5 of the ", StyleBox["J/Link User Manual", FontSlant->"Italic"], ", you see that ", StyleBox["buttonFunc", FontFamily->"Courier"], " will be called with two arguments, the first of which is the ", StyleBox["ActionEvent", FontFamily->"Courier New"], " object. From this object you can obtain the button that was clicked and \ then its label, which you insert at the current cursor location using the \ standard ", StyleBox["NotebookApply", FontFamily->"Courier"], " function. You need to specify ", StyleBox["SelectedNotebook[]", FontFamily->"Courier"], " as the target for notebook operations like ", StyleBox["NotebookApply", FontFamily->"Courier"], ", ", StyleBox["NotebookWrite", FontFamily->"Courier"], ", ", StyleBox["NotebookPrint", FontFamily->"Courier"], ", and so on, which take a notebook as an argument. Because of \ implementation details of ", StyleBox["ShareFrontEnd", FontFamily->"Courier"], ", the notebook given by ", StyleBox["EvaluationNotebook[]", FontFamily->"Courier"], " is not the correct target. After all, there isn\[CloseCurlyQuote]t any \ evaluation currently in progress in the front end when the button is \ clicked." }], "Text"], Cell[TextData[{ "The last thing to do in ", StyleBox["PrintButton", FontFamily->"Courier"], " before you show the window is call ", StyleBox["ShareFrontEnd[]", FontFamily->"Courier"], ", which puts Java into a state where it forwards everything other than the \ result of a computation to the front end and puts the front end into a state \ where it is able to receive it. This is why the ", StyleBox["Print", FontFamily->"Courier"], " output triggered by a click on the ", StyleBox["Java", FontFamily->"Futura"], " button, which would normally be sent to Java, appears in the front end. \ ", StyleBox["ShareFrontEnd", FontFamily->"Courier"], " is discussed in more detail in Section 1.2.5 of the ", StyleBox["J/Link User Manual.", FontSlant->"Italic"] }], "Text"], Cell[TextData[{ "Here is the code that ", StyleBox["J/Link", FontSlant->"Italic"], " will need in order to write a Java palette." }], "Text"], Cell[BoxData[ StyleBox[\(PrintButton[label_String]\ := \n\t JavaBlock[\n\t\tModule[{frm, \ button, \ listener}, \n\t\t\tInstallJava[]; \n\t\t\tfrm\ = \ JavaNew["\"]; \n\t\t\tbutton\ = \ \ JavaNew["\"]; \n\t\t\tfrm@add[button]; \n\t\t\tfrm@ pack[]; \n\t\t\tbutton@setLabel[label]; \n\t\t\tlistener\ = \ JavaNew["\", \n\t\t\t\t\t\ \ \ \ \ \ \ \ \ \ \ \ \ "\"]; \n\t\t\tbutton@ addActionListener[ listener]; \n\t\t\tShareFrontEnd[]; \n\t\t\tJavaShow[ frm]\n\t\t]\n\t]\n\t\n printButtonFunc[event_, \ _]\ := \n\t JavaBlock[\n\t\tNotebookApply[SelectedNotebook[], \ event@\(getSource[]@getLabel[]\)]; \n\t\t (*\ You\ need\ to\ explicitly\ release\ the\ event\ object, \ since\ it\ was\ sent\ to\n\t\t\ \ \ Mathematica\ before\ the\ \ JavaBlock\ was\ \(\(entered\)\(.\)\)\ *) \n\t\tReleaseObject[event]\n\t]\), FontWeight->"Bold"]], "Input"], Cell[TextData[{ "Remember that you get the behavior that ", StyleBox["ShareKernel", FontFamily->"Courier"], " brings when you use a modal dialog box (", StyleBox["i.e.", FontSlant->"Italic"], ", when ", StyleBox["DoModal", FontFamily->"Courier"], " is running). When Java is being run modally, the \ kernel\[CloseCurlyQuote]s ", StyleBox["$ParentLink", FontFamily->"Courier"], " function always points at the front end, so all side-effect outputs get \ sent to the front end automatically. A modal window would not be acceptable \ for the palette example here because you need the palette to be an \ unobtrusive enhancement to the ", StyleBox["Mathematica", FontSlant->"Italic"], " environment. It cannot lock up the kernel while it is alive. ", StyleBox["ShareFrontEnd", FontFamily->"Courier"], " only allows modeless Java windows to interact with the front end." }], "Text"], Cell[TextData[{ "Invoke the ", StyleBox["PrintButton", FontFamily->"Courier"], " function to create and display the palette. Click the button to see the \ button\[CloseCurlyQuote]s label (", StyleBox["foo", FontFamily->"Courier"], " in this example) inserted at the current cursor location. When you are \ done, click the window\[CloseCurlyQuote]s close box." }], "Text"], Cell[BoxData[ \(PrintButton["\", "\"]\)], "Input"], Cell[TextData[{ "Now you can expand this example to include more buttons that perform \ different operations. First, separate the code that manages the frame that \ contains the buttons from the code that produces a button. This way you will \ have a reusable palette frame that can hold any number of different buttons. \ The ", StyleBox["ShowPalette", FontFamily->"Courier"], " function below takes a list of buttons, arranges them vertically in a \ frame window, calls ", StyleBox["ShareFrontEnd", FontFamily->"Courier"], ", and displays the frame in front of the user\[CloseCurlyQuote]s notebook \ window." }], "Text"], Cell[BoxData[ \(ShowPalette[buttons : {__?JavaObjectQ}] := JavaBlock[ Module[{frm}, frm = JavaNew["\"]; \ \[IndentingNewLine]frm@ setLayout[ JavaNew["\", 0, 1]]; \[IndentingNewLine]\(frm@add[#] &\) /@ buttons; \[IndentingNewLine]ReleaseObject[ buttons]; \[IndentingNewLine]frm@ pack[]; \[IndentingNewLine]ShareFrontEnd[]; \ \[IndentingNewLine]JavaShow[frm];]]\)], "Input"], Cell[TextData[{ "Note that you don\[CloseCurlyQuote]t return anything from the ", StyleBox["ShowPalette", FontFamily->"Courier"], " function\[LongDash]specifically, you don\[CloseCurlyQuote]t return the \ frame object itself because you don\[CloseCurlyQuote]t need to refer to the \ frame ever again. It is destroyed automatically when its close box is \ clicked. This is a feature of the ", StyleBox["MathFrame", FontFamily->"Courier"], " class. Because you don\[CloseCurlyQuote]t need to keep references to any \ of the Java objects you create, the entire body of ", StyleBox["ShowPalette", FontFamily->"Courier"], " can be wrapped in ", StyleBox["JavaBlock", FontFamily->"Courier"], "." }], "Text"], Cell[TextData[{ "Now you can create a reusable ", StyleBox["PaletteButton", FontFamily->"Courier"], " function that creates a button. You have to pass in only two things: the \ label text you want on the button and the function (as a string) you want to \ have invoked when the button is clicked. This is sufficient to allow \ completely arbitrary button behavior, as the entire functionality of the \ button is tied up in the button function you pass in as the second argument. \ You need to return the button object, so use the usual technique of creating \ it before the ", StyleBox["JavaBlock", FontFamily->"Courier"], " is entered." }], "Text"], Cell[BoxData[ \(PaletteButton[label_String, buttonFunc_String] := Module[{button, listener}, button = JavaNew["\"]; \[IndentingNewLine]JavaBlock[ button@setLabel[label]; \[IndentingNewLine]listener = JavaNew["\", buttonFunc]; \[IndentingNewLine]button@ addActionListener[ listener];]; \[IndentingNewLine]button]\)], "Input"], Cell[TextData[{ "Now use the ", StyleBox["PaletteButton", FontFamily->"Courier"], " function to create four buttons. The first is just the print button \ defined above, whose behavior is specified by ", StyleBox["printButtonFunc", FontFamily->"Courier"], "." }], "Text"], Cell[BoxData[ \(\(btn1 = PaletteButton["\", "\"];\)\)], "Input"], Cell[TextData[{ "The second button will duplicate the functionality of the buttons in the \ standard ", StyleBox["AlgebraicManipulation", FontFamily->"Courier"], " front end palette. These buttons wrap a function (e.g., Expand) around \ the current selection and evaluate the resulting expression in place. Here is \ how you create the button and define the button function for that operation." }], "Text"], Cell[BoxData[ \(\(btn2 = PaletteButton["\", \ "\"];\)\)], "Input"], Cell[BoxData[ \(applyButtonFunc[event_, _] := JavaBlock[\(With[{nb = SelectedNotebook[]}, NotebookApply[nb, event@\(getSource[]@getLabel[]\), All]; \[IndentingNewLine]ReleaseObject[ event]; \[IndentingNewLine]SelectionEvaluate[ nb]];\)]\)], "Input"], Cell[TextData[{ "The third button will create a plot. All you have to do is call a plotting \ function. The work of directing the graphics output to a new cell in the \ frontmost notebook is handled internally by ", StyleBox["J/Link", FontSlant->"Italic"], " using ", StyleBox["ShareFrontEnd", FontFamily->"Courier"], "." }], "Text"], Cell[BoxData[ \(\(btn3 = PaletteButton["\", "\"];\)\)], "Input"], Cell[BoxData[ \(plotButtonFunc[ event_, _] := \((Plot[x, {x, 0, 1}]; \[IndentingNewLine]ReleaseObject[ event];)\)\)], "Input"], Cell[TextData[{ "The final button demonstrates another method for causing text to be \ inserted at the current cursor location. The first example of this, ", StyleBox["printButtonFunc", FontFamily->"Courier"], ", uses ", StyleBox["NotebookApply", FontFamily->"Courier"], ". You can also just call ", StyleBox["Print.", FontFamily->"Courier"], " ", StyleBox["A", FontFamily->"Courier"], "s with graphics, ", StyleBox["Print", FontFamily->"Courier"], " output is automatically routed to the frontmost notebook window by ", StyleBox["J/Link", FontSlant->"Italic"], " when front end sharing is on. This quick-and-easy ", StyleBox["Print", FontFamily->"Courier"], " method works fine for many situations when you want something to appear \ in a notebook window, but using ", StyleBox["NotebookApply", FontFamily->"Courier"], " is a more rigorous technique. You will see some differences in the \ effects of these two buttons, for example, if you put the insertion point \ into a ", StyleBox["StandardForm", FontFamily->"Courier"], " cell and try them." }], "Text"], Cell[BoxData[ \(\(btn4 = PaletteButton["\", "\"];\)\)], "Input"], Cell[BoxData[ \(printButtonFunc2[event_, _] := JavaBlock[ Print[event@\(getSource[]@ getLabel[]\)]; \[IndentingNewLine]ReleaseObject[ event];]\)], "Input"], Cell["Now you are ready to create the palette and show it.", "Text"], Cell[BoxData[ \(ShowPalette[{btn1, btn2, btn3, btn4}]\)], "Input"], Cell[TextData[{ "Clicking the close box will destroy the window, but it does not turn off \ front end sharing. To do that, you must manually execute ", StyleBox["UnshareFrontEnd[]", FontFamily->"Courier"], ". You could set things up to have this called automatically when the \ window is closed, but turning off front end sharing, like turning off kernel \ sharing or calling ", StyleBox["UninstallJava", FontFamily->"Courier"], ", is best left to the user\[CloseCurlyQuote]s discretion. Your code cannot \ know whether there is some other component in the user\[CloseCurlyQuote]s \ environment that is also using front end or kernel sharing." }], "Text"], Cell[TextData[{ "Front end sharing relies on kernel sharing, so when you call ", StyleBox["ShareFrontEnd", FontFamily->"Courier"], ", ", StyleBox["ShareKernel", FontFamily->"Courier"], " is called internally. Calling ", StyleBox["UnshareFrontEnd", FontFamily->"Courier"], " does not call ", StyleBox["UnshareKernel", FontFamily->"Courier"], " for the reason given above. To turn off all sharing initiated by ", StyleBox["ShareFrontEnd", FontFamily->"Courier"], ", we must call ", StyleBox["UnshareFrontEnd", FontFamily->"Courier"], " and ", StyleBox["UnshareKernel", FontFamily->"Courier"], ". Alternatively, you can just call ", StyleBox["UnshareKernel", FontFamily->"Courier"], ", which calls ", StyleBox["UnshareFrontEnd", FontFamily->"Courier"], " because front end sharing cannot function if kernel sharing is not \ enabled." }], "Text"], Cell[BoxData[ \(\(UnshareKernel[];\)\)], "Input"], Cell[TextData[{ "Although this example has demonstrated some useful techniques, it is not a \ particularly valuable way to use ", StyleBox["ShareFrontEnd", FontFamily->"Courier"], ". In creating a simple palette of buttons, you have done nothing that the \ front end cannot do all by itself. The real uses you find for ", StyleBox["ShareFrontEnd", FontFamily->"Courier"], " will presumably involve aspects that cannot be duplicated within the \ front end, such as more sophisticated dialog boxes or other user interface \ elements." }], "Text"] }, Open ]], Cell[CellGroupData[{ Cell["Final Code", "Section"], Cell[TextData[{ "The following example combines all the above elements for ", StyleBox["J/Link ", FontSlant->"Italic"], "to ", StyleBox["write a Java palette.", FontVariations->{"CompatibilityType"->0}] }], "Text"], Cell[BoxData[{ \(Needs["\"]\), "\[IndentingNewLine]", \(PaletteButton[label_String, buttonFunc_String] := Module[{button, listener}, button = JavaNew["\"]; \[IndentingNewLine]JavaBlock[ button@setLabel[label]; \[IndentingNewLine]listener = JavaNew["\", buttonFunc]; \[IndentingNewLine]button@ addActionListener[ listener];]; \[IndentingNewLine]button]\), \ "\[IndentingNewLine]", \(ShowPalette[buttons : {__?JavaObjectQ}] := JavaBlock[ Module[{frm}, frm = JavaNew["\"]; \ \[IndentingNewLine]frm@ setLayout[ JavaNew["\", 0, 1]]; \[IndentingNewLine]\(frm@add[#] &\) /@ buttons; \[IndentingNewLine]ReleaseObject[ buttons]; \[IndentingNewLine]frm@ pack[]; \[IndentingNewLine]ShareFrontEnd[]; \ \[IndentingNewLine]JavaShow[frm];]]\), "\[IndentingNewLine]", \(printButtonFunc[event_, _] := JavaBlock[ NotebookApply[SelectedNotebook[], event@\(getSource[]@getLabel[]\)]; \[IndentingNewLine] (*\ You\ need\ to\ explicitly\ release\ the\ event\ object\ since\ it\ \ was\ sent\ to\ Mathematica\ before\ the\ JavaBlock\ was\ \(\(entered\)\(.\)\)\ \ *) ReleaseObject[event]]\), "\[IndentingNewLine]", \(applyButtonFunc[event_, _] := JavaBlock[\(With[{nb = SelectedNotebook[]}, fixedNotebokApply[nb, event@\(getSource[]@getLabel[]\), All]; \[IndentingNewLine]ReleaseObject[ event]; \[IndentingNewLine]SelectionEvaluate[ nb]];\)]\), "\[IndentingNewLine]", \(plotButtonFunc[ event_, _] := \((Plot[x, {x, 0, 1}]; \[IndentingNewLine]ReleaseObject[ event];)\)\), "\[IndentingNewLine]", \(printButtonFunc2[event_, _] := JavaBlock[ Print[event@\(getSource[]@ getLabel[]\)]; \[IndentingNewLine]ReleaseObject[ event];]\[IndentingNewLine] (*\ NotebookApply\ appears\ to\ be\ broken\ in\ Mathematica\ 4.0\ because\ \ it\ does\ not\ properly\ handle\ \\[SelectionPlaceHolder]\ substitution . \ Here\ is\ an\ implementation\ of\ NotebookApply\ from\ \ \(\(scratch\)\(.\)\)\ *) \), "\[IndentingNewLine]", \(fixedNotebokApply[nb_, buttonText_String, selType_] := Module[{sel, e}, sel = NotebookRead[nb]; \[IndentingNewLine]e = MakeExpression[ sel]; \[IndentingNewLine]With[{result = Function[Null, ReleaseHold[ ToExpression[buttonText, StandardForm, Hold] /. \[SelectionPlaceholder] \[RuleDelayed] #], HoldFirst] @@ e}, NotebookWrite[nb, If[Head[sel] === BoxData, MakeBoxes[result], ToString[result, InputForm]], selType]]]\), "\[IndentingNewLine]", \(PaletteDemo[] := JavaBlock[ Module[{btn1, btn2, btn3, btn4}, btn1 = PaletteButton["\", "\"]; \ \[IndentingNewLine]btn2 = PaletteButton["\", \ "\"]; \[IndentingNewLine]btn3 = PaletteButton["\", "\"]; \ \[IndentingNewLine]btn4 = PaletteButton["\", "\"]; \ \[IndentingNewLine]ShowPalette[{btn1, btn2, btn3, btn4}]]]\)}], "Input"], Cell[CellGroupData[{ Cell["Examples", "Subsection"], Cell[TextData[{ "You must call ", StyleBox["InstallJava", FontFamily->"Courier"], " prior to running this example." }], "Text"], Cell[BoxData[ \(\(InstallJava[];\)\)], "Input"], Cell["PaletteDemo[]", "Input"], Cell["\<\ You can continue to use the front end normally while the palette \ window is visible and active. When you are finished with the palette window, \ close it and then turn off front end and kernel sharing with the following \ command.\ \>", "Text"], Cell["UnshareKernel[]", "Input"] }, Open ]] }, Open ]] }, FrontEndVersion->"4.0 for Macintosh", ScreenRectangle->{{0, 1024}, {0, 748}}, WindowSize->{851, 603}, WindowMargins->{{37, Automatic}, {Automatic, 16}}, StyleDefinitions -> Notebook[{ Cell[CellGroupData[{ Cell["Style Definitions", "Subtitle"], Cell["\<\ Modify the definitions below to change the default appearance of \ all cells in a given style. Make modifications to any definition using \ commands in the Format menu.\ \>", "Text"], Cell[CellGroupData[{ Cell["Style Environment Names", "Section"], Cell[StyleData[All, "Working"], PageWidth->WindowWidth, CellLabelMargins->{{12, Inherited}, {Inherited, Inherited}}, ScriptMinSize->9], Cell[StyleData[All, "Presentation"], PageWidth->WindowWidth, CellLabelMargins->{{24, Inherited}, {Inherited, Inherited}}, ScriptMinSize->12], Cell[StyleData[All, "Condensed"], PageWidth->WindowWidth, CellLabelMargins->{{8, Inherited}, {Inherited, Inherited}}, ScriptMinSize->8], Cell[StyleData[All, "Printout"], PageWidth->PaperWidth, CellLabelMargins->{{2, Inherited}, {Inherited, Inherited}}, ScriptMinSize->5, PrivateFontOptions->{"FontType"->"Outline"}] }, Closed]], Cell[CellGroupData[{ Cell["Notebook Options", "Section"], Cell["\<\ The options defined for the style below will be used at the \ Notebook level.\ \>", "Text"], Cell[StyleData["Notebook"], PageHeaders->{{Cell[ TextData[ { CounterBox[ "Page"]}], "PageNumber"], None, Cell[ TextData[ { ValueBox[ "FileName"]}], "Header"]}, {Cell[ TextData[ { ValueBox[ "FileName"]}], "Header"], None, Cell[ TextData[ { CounterBox[ "Page"]}], "PageNumber"]}}, CellFrameLabelMargins->6, StyleMenuListing->None] }, Closed]], Cell[CellGroupData[{ Cell["Styles for Headings", "Section"], Cell[CellGroupData[{ Cell[StyleData["Title"], ShowCellBracket->False, CellMargins->{{0, 0}, {0, 0}}, PageBreakBelow->False, InputAutoReplacements->{"TeX"->StyleBox[ RowBox[ {"T", AdjustmentBox[ "E", BoxMargins -> {{-0.075, -0.085}, {0, 0}}, BoxBaselineShift -> 0.5], "X"}]], "LaTeX"->StyleBox[ RowBox[ {"L", StyleBox[ AdjustmentBox[ "A", BoxMargins -> {{-0.36, -0.1}, {0, -0}}, BoxBaselineShift -> -0.2], FontSize -> Smaller], "T", AdjustmentBox[ "E", BoxMargins -> {{-0.075, -0.085}, {0, 0}}, BoxBaselineShift -> 0.5], "X"}]], "mma"->"Mathematica", "Mma"->"Mathematica", "MMA"->"Mathematica"}, LineSpacing->{1, 11}, CounterIncrements->"Title", CounterAssignments->{{"Section", 0}, {"Equation", 0}, {"Figure", 0}, { "Subtitle", 0}, {"Subsubtitle", 0}}, FontSize->34, FontColor->GrayLevel[1], Background->RGBColor[0.571389, 0.19675, 0.570504]], Cell[StyleData["Title", "Presentation"], CellMargins->{{0, 0}, {0, 0}}, LineSpacing->{1, 0}, FontSize->44], Cell[StyleData["Title", "Condensed"], CellMargins->{{0, 0}, {0, 0}}, FontSize->20], Cell[StyleData["Title", "Printout"], CellMargins->{{0, 0}, {0, 0}}, FontSize->24, FontTracking->"Plain", Background->GrayLevel[0]] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["Subtitle"], ShowCellBracket->False, CellMargins->{{0, 0}, {0, 0}}, PageBreakBelow->False, InputAutoReplacements->{"TeX"->StyleBox[ RowBox[ {"T", AdjustmentBox[ "E", BoxMargins -> {{-0.075, -0.085}, {0, 0}}, BoxBaselineShift -> 0.5], "X"}]], "LaTeX"->StyleBox[ RowBox[ {"L", StyleBox[ AdjustmentBox[ "A", BoxMargins -> {{-0.36, -0.1}, {0, -0}}, BoxBaselineShift -> -0.2], FontSize -> Smaller], "T", AdjustmentBox[ "E", BoxMargins -> {{-0.075, -0.085}, {0, 0}}, BoxBaselineShift -> 0.5], "X"}]], "mma"->"Mathematica", "Mma"->"Mathematica", "MMA"->"Mathematica"}, LineSpacing->{1, 3}, ParagraphIndent->-96, CounterIncrements->"Subtitle", CounterAssignments->{{"Section", 0}, {"Equation", 0}, {"Figure", 0}, { "Subsubtitle", 0}}, FontFamily->"Helvetica", FontSize->18, FontColor->GrayLevel[1], Background->RGBColor[0.2, 0.700008, 0.700008]], Cell[StyleData["Subtitle", "Presentation"], CellMargins->{{0, 0}, {0, 0}}, LineSpacing->{1, 6}, ParagraphIndent->-157, FontSize->30], Cell[StyleData["Subtitle", "Condensed"], CellMargins->{{0, 0}, {0, 0}}, ParagraphIndent->-78, FontSize->14], Cell[StyleData["Subtitle", "Printout"], CellMargins->{{0, 0}, {0, 0}}, ParagraphIndent->-85, FontSize->16, Background->GrayLevel[0.6]] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["Subsubtitle"], ShowCellBracket->False, CellMargins->{{10, 4}, {30, 10}}, PageBreakBelow->False, InputAutoReplacements->{"TeX"->StyleBox[ RowBox[ {"T", AdjustmentBox[ "E", BoxMargins -> {{-0.075, -0.085}, {0, 0}}, BoxBaselineShift -> 0.5], "X"}]], "LaTeX"->StyleBox[ RowBox[ {"L", StyleBox[ AdjustmentBox[ "A", BoxMargins -> {{-0.36, -0.1}, {0, -0}}, BoxBaselineShift -> -0.2], FontSize -> Smaller], "T", AdjustmentBox[ "E", BoxMargins -> {{-0.075, -0.085}, {0, 0}}, BoxBaselineShift -> 0.5], "X"}]], "mma"->"Mathematica", "Mma"->"Mathematica", "MMA"->"Mathematica"}, CounterIncrements->"Subsubtitle", CounterAssignments->{{"Section", 0}, {"Equation", 0}, {"Figure", 0}}, FontFamily->"Helvetica", FontSize->14, FontSlant->"Italic"], Cell[StyleData["Subsubtitle", "Presentation"], CellMargins->{{8, 10}, {40, 20}}, LineSpacing->{1, 0}, FontSize->24], Cell[StyleData["Subsubtitle", "Condensed"], CellMargins->{{8, 10}, {12, 8}}, FontSize->12], Cell[StyleData["Subsubtitle", "Printout"], CellMargins->{{9, 10}, {50, 10}}, FontSize->14] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["Section"], CellFrame->{{6, 0}, {0, 1}}, CellDingbat->None, CellMargins->{{12, Inherited}, {4, 24}}, CellGroupingRules->{"SectionGrouping", 30}, PageBreakBelow->False, CellFrameMargins->6, InputAutoReplacements->{"TeX"->StyleBox[ RowBox[ {"T", AdjustmentBox[ "E", BoxMargins -> {{-0.075, -0.085}, {0, 0}}, BoxBaselineShift -> 0.5], "X"}]], "LaTeX"->StyleBox[ RowBox[ {"L", StyleBox[ AdjustmentBox[ "A", BoxMargins -> {{-0.36, -0.1}, {0, -0}}, BoxBaselineShift -> -0.2], FontSize -> Smaller], "T", AdjustmentBox[ "E", BoxMargins -> {{-0.075, -0.085}, {0, 0}}, BoxBaselineShift -> 0.5], "X"}]], "mma"->"Mathematica", "Mma"->"Mathematica", "MMA"->"Mathematica"}, LineSpacing->{1, 7}, CounterIncrements->"Section", CounterAssignments->{{"Subsection", 0}, {"Subsubsection", 0}}, FontFamily->"Helvetica", FontSize->16, FontWeight->"Bold", FontColor->RGBColor[0.571389, 0.19675, 0.570504]], Cell[StyleData["Section", "Presentation"], CellMargins->{{10, 10}, {8, 32}}, LineSpacing->{1, 2}, FontSize->24, FontTracking->"Condensed"], Cell[StyleData["Section", "Condensed"], CellMargins->{{8, Inherited}, {2, 12}}, FontSize->12], Cell[StyleData["Section", "Printout"], CellMargins->{{9, 0}, {2, 50}}, FontSize->14, FontTracking->"Plain", FontColor->GrayLevel[0]] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["Subsection"], CellMargins->{{12, Inherited}, {8, 20}}, CellGroupingRules->{"SectionGrouping", 40}, PageBreakBelow->False, InputAutoReplacements->{"TeX"->StyleBox[ RowBox[ {"T", AdjustmentBox[ "E", BoxMargins -> {{-0.075, -0.085}, {0, 0}}, BoxBaselineShift -> 0.5], "X"}]], "LaTeX"->StyleBox[ RowBox[ {"L", StyleBox[ AdjustmentBox[ "A", BoxMargins -> {{-0.36, -0.1}, {0, -0}}, BoxBaselineShift -> -0.2], FontSize -> Smaller], "T", AdjustmentBox[ "E", BoxMargins -> {{-0.075, -0.085}, {0, 0}}, BoxBaselineShift -> 0.5], "X"}]], "mma"->"Mathematica", "Mma"->"Mathematica", "MMA"->"Mathematica"}, LineSpacing->{1, 7}, CounterIncrements->"Subsection", CounterAssignments->{{"Subsubsection", 0}}, FontFamily->"Helvetica", FontSize->13, FontWeight->"Bold"], Cell[StyleData["Subsection", "Presentation"], CellMargins->{{11, 10}, {8, 32}}, LineSpacing->{1, 0}, FontSize->22], Cell[StyleData["Subsection", "Condensed"], CellMargins->{{8, Inherited}, {2, 12}}, FontSize->12], Cell[StyleData["Subsection", "Printout"], CellMargins->{{9, 0}, {4, 40}}, FontSize->12] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["Subsubsection"], CellDingbat->"\[FilledSquare]", CellMargins->{{25, Inherited}, {8, 12}}, CellGroupingRules->{"SectionGrouping", 50}, PageBreakBelow->False, InputAutoReplacements->{"TeX"->StyleBox[ RowBox[ {"T", AdjustmentBox[ "E", BoxMargins -> {{-0.075, -0.085}, {0, 0}}, BoxBaselineShift -> 0.5], "X"}]], "LaTeX"->StyleBox[ RowBox[ {"L", StyleBox[ AdjustmentBox[ "A", BoxMargins -> {{-0.36, -0.1}, {0, -0}}, BoxBaselineShift -> -0.2], FontSize -> Smaller], "T", AdjustmentBox[ "E", BoxMargins -> {{-0.075, -0.085}, {0, 0}}, BoxBaselineShift -> 0.5], "X"}]], "mma"->"Mathematica", "Mma"->"Mathematica", "MMA"->"Mathematica"}, LineSpacing->{1, 9}, CounterIncrements->"Subsubsection", FontFamily->"Times", FontSize->13, FontWeight->"Bold"], Cell[StyleData["Subsubsection", "Presentation"], CellMargins->{{29, 10}, {8, 26}}, LineSpacing->{1, 0}, FontSize->18], Cell[StyleData["Subsubsection", "Condensed"], CellMargins->{{22, Inherited}, {2, 12}}, FontSize->10], Cell[StyleData["Subsubsection", "Printout"], CellMargins->{{21, 0}, {4, 20}}, FontSize->11] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell["Styles for Body Text", "Section"], Cell[CellGroupData[{ Cell[StyleData["Text"], CellMargins->{{12, 10}, {7, 7}}, InputAutoReplacements->{"TeX"->StyleBox[ RowBox[ {"T", AdjustmentBox[ "E", BoxMargins -> {{-0.075, -0.085}, {0, 0}}, BoxBaselineShift -> 0.5], "X"}]], "LaTeX"->StyleBox[ RowBox[ {"L", StyleBox[ AdjustmentBox[ "A", BoxMargins -> {{-0.36, -0.1}, {0, -0}}, BoxBaselineShift -> -0.2], FontSize -> Smaller], "T", AdjustmentBox[ "E", BoxMargins -> {{-0.075, -0.085}, {0, 0}}, BoxBaselineShift -> 0.5], "X"}]], "mma"->"Mathematica", "Mma"->"Mathematica", "MMA"->"Mathematica"}, Hyphenation->True, LineSpacing->{1, 3}, CounterIncrements->"Text"], Cell[StyleData["Text", "Presentation"], CellMargins->{{24, 10}, {10, 10}}, LineSpacing->{1, 5}, FontSize->16], Cell[StyleData["Text", "Condensed"], CellMargins->{{8, 10}, {6, 6}}, LineSpacing->{1, 1}, FontSize->11], Cell[StyleData["Text", "Printout"], CellMargins->{{2, 2}, {6, 6}}, TextJustification->0.5, FontSize->10] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["SmallText"], CellMargins->{{12, 10}, {6, 6}}, DefaultNewInlineCellStyle->"None", Hyphenation->True, LineSpacing->{1, 3}, LanguageCategory->"NaturalLanguage", CounterIncrements->"SmallText", FontFamily->"Helvetica", FontSize->9], Cell[StyleData["SmallText", "Presentation"], CellMargins->{{24, 10}, {8, 8}}, LineSpacing->{1, 5}, FontSize->12], Cell[StyleData["SmallText", "Condensed"], CellMargins->{{8, 10}, {5, 5}}, LineSpacing->{1, 2}, FontSize->9], Cell[StyleData["SmallText", "Printout"], CellMargins->{{2, 2}, {5, 5}}, TextJustification->0.5, FontSize->7] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell["Styles for Input/Output", "Section"], Cell["\<\ The cells in this section define styles used for input and output \ to the kernel. Be careful when modifying, renaming, or removing these \ styles, because the front end associates special meanings with these style \ names.\ \>", "Text"], Cell[CellGroupData[{ Cell[StyleData["Input"], CellFrame->{{3, 0}, {0, 0}}, CellMargins->{{52, 10}, {8, 8}}, Evaluatable->True, CellGroupingRules->"InputGrouping", CellHorizontalScrolling->True, PageBreakWithin->False, GroupPageBreakWithin->False, CellLabelMargins->{{5, Inherited}, {Inherited, Inherited}}, DefaultFormatType->DefaultInputFormatType, HyphenationOptions->{"HyphenationCharacter"->"\[Continuation]"}, LanguageCategory->"Formula", FormatType->InputForm, ShowStringCharacters->True, NumberMarks->True, LinebreakAdjustments->{0.85, 2, 10, 0, 1}, CounterIncrements->"Input", FontWeight->"Bold", Background->RGBColor[1, 0.700008, 0.4]], Cell[StyleData["Input", "Presentation"], CellMargins->{{62, Inherited}, {10, 10}}, LineSpacing->{1, 0}], Cell[StyleData["Input", "Condensed"], CellMargins->{{40, 10}, {4, 4}}], Cell[StyleData["Input", "Printout"], CellMargins->{{44, 0}, {6, 6}}, LinebreakAdjustments->{0.85, 2, 10, 1, 1}, Background->GrayLevel[0.8]] }, Closed]], Cell[StyleData["InlineInput"], Evaluatable->True, CellGroupingRules->"InputGrouping", CellHorizontalScrolling->True, PageBreakWithin->False, GroupPageBreakWithin->False, DefaultFormatType->DefaultInputFormatType, HyphenationOptions->{"HyphenationCharacter"->"\[Continuation]"}, AutoItalicWords->{}, FormatType->InputForm, ShowStringCharacters->True, NumberMarks->True, CounterIncrements->"Input", FontWeight->"Bold"], Cell[CellGroupData[{ Cell[StyleData["Output"], CellFrame->{{3, 0}, {0, 0}}, CellMargins->{{52, 10}, {8, 8}}, CellEditDuplicate->True, CellGroupingRules->"OutputGrouping", CellHorizontalScrolling->True, PageBreakWithin->False, GroupPageBreakWithin->False, GeneratedCell->True, CellAutoOverwrite->True, CellLabelMargins->{{3, Inherited}, {Inherited, Inherited}}, DefaultFormatType->DefaultOutputFormatType, HyphenationOptions->{"HyphenationCharacter"->"\[Continuation]"}, LanguageCategory->"Formula", FormatType->InputForm, CounterIncrements->"Output", Background->RGBColor[1, 0.900008, 0.900008]], Cell[StyleData["Output", "Presentation"], CellMargins->{{62, Inherited}, {12, 5}}, LineSpacing->{1, 0}], Cell[StyleData["Output", "Condensed"], CellMargins->{{40, Inherited}, {4, 1}}], Cell[StyleData["Output", "Printout"], CellMargins->{{44, 0}, {6, 2}}, Background->GrayLevel[0.900008]] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["Message"], CellMargins->{{62, Inherited}, {Inherited, Inherited}}, CellGroupingRules->"OutputGrouping", PageBreakWithin->False, GroupPageBreakWithin->False, GeneratedCell->True, CellAutoOverwrite->True, ShowCellLabel->False, DefaultFormatType->DefaultOutputFormatType, HyphenationOptions->{"HyphenationCharacter"->"\[Continuation]"}, FormatType->InputForm, CounterIncrements->"Message", StyleMenuListing->None, FontColor->RGBColor[1, 0, 0]], Cell[StyleData["Message", "Presentation"], CellMargins->{{74, Inherited}, {Inherited, Inherited}}, LineSpacing->{1, 0}], Cell[StyleData["Message", "Condensed"], CellMargins->{{50, Inherited}, {Inherited, Inherited}}], Cell[StyleData["Message", "Printout"], CellMargins->{{54, Inherited}, {Inherited, Inherited}}, FontColor->GrayLevel[0]] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["Print"], CellMargins->{{62, Inherited}, {Inherited, Inherited}}, CellGroupingRules->"OutputGrouping", CellHorizontalScrolling->True, PageBreakWithin->False, GroupPageBreakWithin->False, GeneratedCell->True, CellAutoOverwrite->True, ShowCellLabel->False, DefaultFormatType->DefaultOutputFormatType, HyphenationOptions->{"HyphenationCharacter"->"\[Continuation]"}, FormatType->InputForm, CounterIncrements->"Print", StyleMenuListing->None], Cell[StyleData["Print", "Presentation"], CellMargins->{{74, Inherited}, {Inherited, Inherited}}, LineSpacing->{1, 0}], Cell[StyleData["Print", "Condensed"], CellMargins->{{50, Inherited}, {Inherited, Inherited}}], Cell[StyleData["Print", "Printout"], CellMargins->{{54, Inherited}, {Inherited, Inherited}}] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["Graphics"], CellMargins->{{62, Inherited}, {Inherited, Inherited}}, CellGroupingRules->"GraphicsGrouping", CellHorizontalScrolling->True, PageBreakWithin->False, GeneratedCell->True, CellAutoOverwrite->True, ShowCellLabel->False, DefaultFormatType->DefaultOutputFormatType, FormatType->InputForm, CounterIncrements->"Graphics", StyleMenuListing->None], Cell[StyleData["Graphics", "Presentation"], CellMargins->{{74, Inherited}, {Inherited, Inherited}}], Cell[StyleData["Graphics", "Condensed"], CellMargins->{{52, Inherited}, {Inherited, Inherited}}, ImageSize->{175, 175}], Cell[StyleData["Graphics", "Printout"], CellMargins->{{54, Inherited}, {Inherited, Inherited}}, ImageSize->{250, 250}] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["CellLabel"], StyleMenuListing->None, FontFamily->"Helvetica", FontSize->11, FontWeight->"Bold", FontColor->RGBColor[0.571389, 0.19675, 0.570504]], Cell[StyleData["CellLabel", "Presentation"], FontSize->12], Cell[StyleData["CellLabel", "Condensed"], FontSize->8], Cell[StyleData["CellLabel", "Printout"], FontSize->8, FontColor->GrayLevel[0]] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell["Inline Formatting", "Section"], Cell["\<\ These styles are for modifying individual words or letters in a \ cell exclusive of the cell tag.\ \>", "Text"], Cell[StyleData["RM"], StyleMenuListing->None, FontWeight->"Plain", FontSlant->"Plain"], Cell[StyleData["BF"], StyleMenuListing->None, FontWeight->"Bold"], Cell[StyleData["IT"], StyleMenuListing->None, FontSlant->"Italic"], Cell[StyleData["TR"], StyleMenuListing->None, FontFamily->"Times", FontWeight->"Plain", FontSlant->"Plain"], Cell[StyleData["TI"], StyleMenuListing->None, FontFamily->"Times", FontWeight->"Plain", FontSlant->"Italic"], Cell[StyleData["TB"], StyleMenuListing->None, FontFamily->"Times", FontWeight->"Bold", FontSlant->"Plain"], Cell[StyleData["TBI"], StyleMenuListing->None, FontFamily->"Times", FontWeight->"Bold", FontSlant->"Italic"], Cell[StyleData["MR"], HyphenationOptions->{"HyphenationCharacter"->"\[Continuation]"}, StyleMenuListing->None, FontFamily->"Courier", FontWeight->"Plain", FontSlant->"Plain"], Cell[StyleData["MO"], HyphenationOptions->{"HyphenationCharacter"->"\[Continuation]"}, StyleMenuListing->None, FontFamily->"Courier", FontWeight->"Plain", FontSlant->"Italic"], Cell[StyleData["MB"], HyphenationOptions->{"HyphenationCharacter"->"\[Continuation]"}, StyleMenuListing->None, FontFamily->"Courier", FontWeight->"Bold", FontSlant->"Plain"], Cell[StyleData["MBO"], HyphenationOptions->{"HyphenationCharacter"->"\[Continuation]"}, StyleMenuListing->None, FontFamily->"Courier", FontWeight->"Bold", FontSlant->"Italic"], Cell[StyleData["SR"], StyleMenuListing->None, FontFamily->"Helvetica", FontWeight->"Plain", FontSlant->"Plain"], Cell[StyleData["SO"], StyleMenuListing->None, FontFamily->"Helvetica", FontWeight->"Plain", FontSlant->"Italic"], Cell[StyleData["SB"], StyleMenuListing->None, FontFamily->"Helvetica", FontWeight->"Bold", FontSlant->"Plain"], Cell[StyleData["SBO"], StyleMenuListing->None, FontFamily->"Helvetica", FontWeight->"Bold", FontSlant->"Italic"], Cell[CellGroupData[{ Cell[StyleData["SO10"], StyleMenuListing->None, FontFamily->"Helvetica", FontSize->10, FontWeight->"Plain", FontSlant->"Italic"], Cell[StyleData["SO10", "Printout"], StyleMenuListing->None, FontFamily->"Helvetica", FontSize->7, FontWeight->"Plain", FontSlant->"Italic"], Cell[StyleData["SO10", "EnhancedPrintout"], StyleMenuListing->None, FontFamily->"Futura", FontSize->7, FontWeight->"Plain", FontSlant->"Italic"] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell["Formulas and Programming", "Section"], Cell[CellGroupData[{ Cell[StyleData["InlineFormula"], CellMargins->{{10, 4}, {0, 8}}, CellHorizontalScrolling->True, HyphenationOptions->{"HyphenationCharacter"->"\[Continuation]"}, LanguageCategory->"Formula", ScriptLevel->1, SingleLetterItalics->True], Cell[StyleData["InlineFormula", "Presentation"], CellMargins->{{24, 10}, {10, 10}}, LineSpacing->{1, 5}, FontSize->16], Cell[StyleData["InlineFormula", "Condensed"], CellMargins->{{8, 10}, {6, 6}}, LineSpacing->{1, 1}, FontSize->11], Cell[StyleData["InlineFormula", "Printout"], CellMargins->{{2, 0}, {6, 6}}, FontSize->10] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["DisplayFormula"], CellMargins->{{42, Inherited}, {Inherited, Inherited}}, CellHorizontalScrolling->True, DefaultFormatType->DefaultInputFormatType, HyphenationOptions->{"HyphenationCharacter"->"\[Continuation]"}, LanguageCategory->"Formula", ScriptLevel->0, SingleLetterItalics->True, UnderoverscriptBoxOptions->{LimitsPositioning->True}], Cell[StyleData["DisplayFormula", "Presentation"], LineSpacing->{1, 5}, FontSize->16], Cell[StyleData["DisplayFormula", "Condensed"], LineSpacing->{1, 1}, FontSize->11], Cell[StyleData["DisplayFormula", "Printout"], FontSize->10] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["Program"], CellFrame->{{0, 0}, {0.5, 0.5}}, CellMargins->{{10, 4}, {0, 8}}, CellHorizontalScrolling->True, Hyphenation->False, LanguageCategory->"Formula", ScriptLevel->1, FontFamily->"Courier"], Cell[StyleData["Program", "Presentation"], CellMargins->{{24, 10}, {10, 10}}, LineSpacing->{1, 5}, FontSize->16], Cell[StyleData["Program", "Condensed"], CellMargins->{{8, 10}, {6, 6}}, LineSpacing->{1, 1}, FontSize->11], Cell[StyleData["Program", "Printout"], CellMargins->{{2, 0}, {6, 6}}, FontSize->9] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell["Hyperlink Styles", "Section"], Cell["\<\ The cells below define styles useful for making hypertext \ ButtonBoxes. The \"Hyperlink\" style is for links within the same Notebook, \ or between Notebooks.\ \>", "Text"], Cell[CellGroupData[{ Cell[StyleData["Hyperlink"], StyleMenuListing->None, ButtonStyleMenuListing->Automatic, FontColor->RGBColor[0, 0, 1], FontVariations->{"Underline"->True}, ButtonBoxOptions->{ButtonFunction:>(FrontEndExecute[ { FrontEnd`NotebookLocate[ #2]}]&), Active->True, ButtonNote->ButtonData}], Cell[StyleData["Hyperlink", "Presentation"], FontSize->16], Cell[StyleData["Hyperlink", "Condensed"], FontSize->11], Cell[StyleData["Hyperlink", "Printout"], FontSize->10, FontColor->GrayLevel[0], FontVariations->{"Underline"->False}] }, Closed]], Cell["\<\ The following styles are for linking automatically to the on-line \ help system.\ \>", "Text"], Cell[CellGroupData[{ Cell[StyleData["MainBookLink"], StyleMenuListing->None, ButtonStyleMenuListing->Automatic, FontColor->RGBColor[0, 0, 1], FontVariations->{"Underline"->True}, ButtonBoxOptions->{ButtonFunction:>(FrontEndExecute[ { FrontEnd`HelpBrowserLookup[ "MainBook", #]}]&), Active->True, ButtonFrame->"None"}], Cell[StyleData["MainBookLink", "Presentation"], FontSize->16], Cell[StyleData["MainBookLink", "Condensed"], FontSize->11], Cell[StyleData["MainBookLink", "Printout"], FontSize->10, FontColor->GrayLevel[0], FontVariations->{"Underline"->False}] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["AddOnsLink"], StyleMenuListing->None, ButtonStyleMenuListing->Automatic, FontFamily->"Courier", FontColor->RGBColor[0, 0, 1], FontVariations->{"Underline"->True}, ButtonBoxOptions->{ButtonFunction:>(FrontEndExecute[ { FrontEnd`HelpBrowserLookup[ "AddOns", #]}]&), Active->True, ButtonFrame->"None"}], Cell[StyleData["AddOnsLink", "Presentation"], FontSize->16], Cell[StyleData["AddOnsLink", "Condensed"], FontSize->11], Cell[StyleData["AddOnsLink", "Printout"], FontSize->10, FontColor->GrayLevel[0], FontVariations->{"Underline"->False}] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["RefGuideLink"], StyleMenuListing->None, ButtonStyleMenuListing->Automatic, FontFamily->"Courier", FontColor->RGBColor[0, 0, 1], FontVariations->{"Underline"->True}, ButtonBoxOptions->{ButtonFunction:>(FrontEndExecute[ { FrontEnd`HelpBrowserLookup[ "RefGuide", #]}]&), Active->True, ButtonFrame->"None"}], Cell[StyleData["RefGuideLink", "Presentation"], FontSize->16], Cell[StyleData["RefGuideLink", "Condensed"], FontSize->11], Cell[StyleData["RefGuideLink", "Printout"], FontSize->10, FontColor->GrayLevel[0], FontVariations->{"Underline"->False}] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["GettingStartedLink"], StyleMenuListing->None, ButtonStyleMenuListing->Automatic, FontColor->RGBColor[0, 0, 1], FontVariations->{"Underline"->True}, ButtonBoxOptions->{ButtonFunction:>(FrontEndExecute[ { FrontEnd`HelpBrowserLookup[ "GettingStarted", #]}]&), Active->True, ButtonFrame->"None"}], Cell[StyleData["GettingStartedLink", "Presentation"], FontSize->16], Cell[StyleData["GettingStartedLink", "Condensed"], FontSize->11], Cell[StyleData["GettingStartedLink", "Printout"], FontSize->10, FontColor->GrayLevel[0], FontVariations->{"Underline"->False}] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["OtherInformationLink"], StyleMenuListing->None, ButtonStyleMenuListing->Automatic, FontColor->RGBColor[0, 0, 1], FontVariations->{"Underline"->True}, ButtonBoxOptions->{ButtonFunction:>(FrontEndExecute[ { FrontEnd`HelpBrowserLookup[ "OtherInformation", #]}]&), Active->True, ButtonFrame->"None"}], Cell[StyleData["OtherInformationLink", "Presentation"], FontSize->16], Cell[StyleData["OtherInformationLink", "Condensed"], FontSize->11], Cell[StyleData["OtherInformationLink", "Printout"], FontSize->10, FontColor->GrayLevel[0], FontVariations->{"Underline"->False}] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell["Styles for Headers and Footers", "Section"], Cell[StyleData["Header"], CellMargins->{{0, 0}, {4, 1}}, DefaultNewInlineCellStyle->"None", LanguageCategory->"NaturalLanguage", StyleMenuListing->None, FontSize->10, FontSlant->"Italic"], Cell[StyleData["Footer"], CellMargins->{{0, 0}, {0, 4}}, DefaultNewInlineCellStyle->"None", LanguageCategory->"NaturalLanguage", StyleMenuListing->None, FontSize->9, FontSlant->"Italic"], Cell[StyleData["PageNumber"], CellMargins->{{0, 0}, {4, 1}}, StyleMenuListing->None, FontFamily->"Times", FontSize->10] }, Closed]], Cell[CellGroupData[{ Cell["Palette Styles", "Section"], Cell["\<\ The cells below define styles that define standard \ ButtonFunctions, for use in palette buttons.\ \>", "Text"], Cell[StyleData["Paste"], StyleMenuListing->None, ButtonStyleMenuListing->Automatic, ButtonBoxOptions->{ButtonFunction:>(FrontEndExecute[ { FrontEnd`NotebookApply[ FrontEnd`InputNotebook[ ], #, After]}]&)}], Cell[StyleData["Evaluate"], StyleMenuListing->None, ButtonStyleMenuListing->Automatic, ButtonBoxOptions->{ButtonFunction:>(FrontEndExecute[ { FrontEnd`NotebookApply[ FrontEnd`InputNotebook[ ], #, All], SelectionEvaluate[ FrontEnd`InputNotebook[ ], All]}]&)}], Cell[StyleData["EvaluateCell"], StyleMenuListing->None, ButtonStyleMenuListing->Automatic, ButtonBoxOptions->{ButtonFunction:>(FrontEndExecute[ { FrontEnd`NotebookApply[ FrontEnd`InputNotebook[ ], #, All], FrontEnd`SelectionMove[ FrontEnd`InputNotebook[ ], All, Cell, 1], FrontEnd`SelectionEvaluateCreateCell[ FrontEnd`InputNotebook[ ], All]}]&)}], Cell[StyleData["CopyEvaluate"], StyleMenuListing->None, ButtonStyleMenuListing->Automatic, ButtonBoxOptions->{ButtonFunction:>(FrontEndExecute[ { FrontEnd`SelectionCreateCell[ FrontEnd`InputNotebook[ ], All], FrontEnd`NotebookApply[ FrontEnd`InputNotebook[ ], #, All], FrontEnd`SelectionEvaluate[ FrontEnd`InputNotebook[ ], All]}]&)}], Cell[StyleData["CopyEvaluateCell"], StyleMenuListing->None, ButtonStyleMenuListing->Automatic, ButtonBoxOptions->{ButtonFunction:>(FrontEndExecute[ { FrontEnd`SelectionCreateCell[ FrontEnd`InputNotebook[ ], All], FrontEnd`NotebookApply[ FrontEnd`InputNotebook[ ], #, All], FrontEnd`SelectionEvaluateCreateCell[ FrontEnd`InputNotebook[ ], All]}]&)}] }, Closed]], Cell[CellGroupData[{ Cell["Placeholder Styles", "Section"], Cell["\<\ The cells below define styles useful for making placeholder \ objects in palette templates.\ \>", "Text"], Cell[CellGroupData[{ Cell[StyleData["Placeholder"], Placeholder->True, StyleMenuListing->None, FontSlant->"Italic", FontColor->RGBColor[0.890623, 0.864698, 0.384756], TagBoxOptions->{Editable->False, Selectable->False, StripWrapperBoxes->False}], Cell[StyleData["Placeholder", "Presentation"]], Cell[StyleData["Placeholder", "Condensed"]], Cell[StyleData["Placeholder", "Printout"]] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["PrimaryPlaceholder"], StyleMenuListing->None, DrawHighlighted->True, FontSlant->"Italic", Background->RGBColor[0.912505, 0.891798, 0.507774], TagBoxOptions->{Editable->False, Selectable->False, StripWrapperBoxes->False}], Cell[StyleData["PrimaryPlaceholder", "Presentation"]], Cell[StyleData["PrimaryPlaceholder", "Condensed"]], Cell[StyleData["PrimaryPlaceholder", "Printout"]] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell["FormatType Styles", "Section"], Cell["\<\ The cells below define styles that are mixed in with the styles \ of most cells. If a cell's FormatType matches the name of one of the styles \ defined below, then that style is applied between the cell's style and its \ own options. This is particularly true of Input and Output.\ \>", "Text"], Cell[StyleData["CellExpression"], PageWidth->Infinity, CellMargins->{{6, Inherited}, {Inherited, Inherited}}, ShowCellLabel->False, ShowSpecialCharacters->False, AllowInlineCells->False, Hyphenation->False, AutoItalicWords->{}, StyleMenuListing->None, FontFamily->"Courier", FontSize->12, Background->GrayLevel[1]], Cell[StyleData["InputForm"], InputAutoReplacements->{}, AllowInlineCells->False, Hyphenation->False, StyleMenuListing->None, FontFamily->"Courier"], Cell[StyleData["OutputForm"], PageWidth->Infinity, TextAlignment->Left, LineSpacing->{0.6, 1}, StyleMenuListing->None, FontFamily->"Courier"], Cell[StyleData["StandardForm"], InputAutoReplacements->{ "->"->"\[Rule]", ":>"->"\[RuleDelayed]", "<="->"\[LessEqual]", ">="->"\[GreaterEqual]", "!="->"\[NotEqual]", "=="->"\[Equal]", Inherited}, LineSpacing->{1.25, 0}, StyleMenuListing->None, FontFamily->"Courier"], Cell[StyleData["TraditionalForm"], InputAutoReplacements->{ "->"->"\[Rule]", ":>"->"\[RuleDelayed]", "<="->"\[LessEqual]", ">="->"\[GreaterEqual]", "!="->"\[NotEqual]", "=="->"\[Equal]", Inherited}, LineSpacing->{1.25, 0}, SingleLetterItalics->True, TraditionalFunctionNotation->True, DelimiterMatching->None, StyleMenuListing->None], Cell["\<\ The style defined below is mixed in to any cell that is in an \ inline cell within another.\ \>", "Text"], Cell[StyleData["InlineCell"], TextAlignment->Left, ScriptLevel->1, StyleMenuListing->None], Cell[StyleData["InlineCellEditing"], StyleMenuListing->None, Background->RGBColor[1, 0.749996, 0.8]] }, Closed]], Cell[CellGroupData[{ Cell["Automatic Styles", "Section"], Cell["\<\ The cells below define styles that are used to affect the display \ of certain types of objects in typeset expressions. For example, \ \"UnmatchedBracket\" style defines how unmatched bracket, curly bracket, and \ parenthesis characters are displayed (typically by coloring them to make them \ stand out).\ \>", "Text"], Cell[StyleData["UnmatchedBracket"], StyleMenuListing->None, FontColor->RGBColor[0.760006, 0.330007, 0.8]] }, Closed]] }, Open ]] }], MacintoshSystemPageSetup->"\<\ 00<0001804P000000]P2:?oQon82n@960dL5:0?l0080001804P000000]P2:001 0000I00000400`<300000BL?00400@0000000000000006P801T1T00000000000 00000000000000000000000000000000\>" ] (*********************************************************************** Cached data follows. If you edit this Notebook file directly, not using Mathematica, you must remove the line containing CacheID at the top of the file. The cache data will then be recreated when you save this file from within Mathematica. ***********************************************************************) (*CellTagsOutline CellTagsIndex->{} *) (*CellTagsIndex CellTagsIndex->{} *) (*NotebookFileOutline Notebook[{ Cell[1717, 49, 89, 4, 62, "Title"], Cell[1809, 55, 42, 0, 38, "Subtitle"], Cell[1854, 57, 686, 14, 80, "Text"], Cell[2543, 73, 761, 19, 78, "Text"], Cell[3307, 94, 328, 9, 48, "Text"], Cell[CellGroupData[{ Cell[3660, 107, 31, 0, 59, "Section"], Cell[3694, 109, 399, 8, 46, "Text"], Cell[4096, 119, 1689, 47, 130, "Text"], Cell[5788, 168, 812, 22, 64, "Text"], Cell[6603, 192, 151, 5, 32, "Text"], Cell[6757, 199, 1119, 18, 415, "Input"], Cell[7879, 219, 926, 24, 82, "Text"], Cell[8808, 245, 389, 10, 46, "Text"], Cell[9200, 257, 78, 1, 47, "Input"], Cell[9281, 260, 640, 14, 62, "Text"], Cell[9924, 276, 534, 12, 159, "Input"], Cell[10461, 290, 735, 18, 62, "Text"], Cell[11199, 310, 667, 14, 78, "Text"], Cell[11869, 326, 465, 8, 127, "Input"], Cell[12337, 336, 288, 9, 30, "Text"], Cell[12628, 347, 92, 1, 47, "Input"], Cell[12723, 350, 416, 8, 46, "Text"], Cell[13142, 360, 131, 3, 47, "Input"], Cell[13276, 365, 316, 6, 111, "Input"], Cell[13595, 373, 351, 10, 48, "Text"], Cell[13949, 385, 108, 2, 47, "Input"], Cell[14060, 389, 148, 3, 63, "Input"], Cell[14211, 394, 1133, 33, 96, "Text"], Cell[15347, 429, 93, 1, 47, "Input"], Cell[15443, 432, 198, 5, 63, "Input"], Cell[15644, 439, 68, 0, 30, "Text"], Cell[15715, 441, 70, 1, 47, "Input"], Cell[15788, 444, 673, 13, 78, "Text"], Cell[16464, 459, 916, 30, 62, "Text"], Cell[17383, 491, 53, 1, 47, "Input"], Cell[17439, 494, 562, 12, 62, "Text"] }, Open ]], Cell[CellGroupData[{ Cell[18038, 511, 29, 0, 59, "Section"], Cell[18070, 513, 230, 7, 32, "Text"], Cell[18303, 522, 3579, 73, 767, "Input"], Cell[CellGroupData[{ Cell[21907, 599, 30, 0, 49, "Subsection"], Cell[21940, 601, 137, 5, 30, "Text"], Cell[22080, 608, 51, 1, 47, "Input"], Cell[22134, 611, 30, 0, 47, "Input"], Cell[22167, 613, 255, 5, 46, "Text"], Cell[22425, 620, 32, 0, 47, "Input"] }, Open ]] }, Open ]] } ] *) (*********************************************************************** End of Mathematica Notebook file. ***********************************************************************)