From d427d3028ac164025a942394a34e490844861bbc Mon Sep 17 00:00:00 2001
From: Giovanni Lafratta ";
+ $matches = array();
+ $matchingFileIndices = array();
+ $rankings = array();
+
+ $isFirst = true;
+
+ foreach($keywords as $word)
+ {
+ if (!array_key_exists($word, $wordDictionary))
+ {
+ return "Nothing found";
+ }
+ $occurrences = $wordDictionary[$word];
+
+ $matches[$word] = $occurrences;
+ $occurrenceIndices = array();
+
+ // Get a list of the file indices for this match
+ foreach($occurrences as $entry)
+ array_push($occurrenceIndices, ($entry >> 16));
+
+ if($isFirst)
+ {
+ $isFirst = false;
+ foreach($occurrenceIndices as $i)
+ {
+ array_push($matchingFileIndices, $i);
+ }
+ }
+ else
+ {
+ // After the first match, remove files that do not appear for
+ // all found keywords.
+ for($idx = 0; $idx < count($matchingFileIndices); $idx++)
+ {
+ if (!in_array($matchingFileIndices[$idx], $occurrenceIndices))
+ {
+ array_splice($matchingFileIndices, $idx, 1);
+ $idx--;
+ }
+ }
+ }
+ }
+
+ if(count($matchingFileIndices) == 0)
+ {
+ return "Nothing found";
+ }
+
+ // Rank the files based on the number of times the words occurs
+ foreach($matchingFileIndices as $index)
+ {
+ // Split out the title, filename, and word count
+ $fileIndex = explode("\x00", $fileInfo[$index]);
+
+ $title = $fileIndex[0];
+ $filename = $fileIndex[1];
+ $wordCount = intval($fileIndex[2]);
+ $matchCount = 0;
+
+ foreach($keywords as $words)
+ {
+ $occurrences = $matches[$word];
+
+ foreach($occurrences as $entry)
+ {
+ if(($entry >> 16) == $index)
+ $matchCount += $entry & 0xFFFF;
+ }
+ }
+
+ $r = new Ranking($filename, $title, $matchCount * 1000 / $wordCount);
+ array_push($rankings, $r);
+
+ if(count($rankings) > 99)
+ break;
+ }
+
+ // Sort by rank in descending order or by page title in ascending order
+ if($sortByTitle)
+ {
+ usort($rankings, "cmprankbytitle");
+ }
+ else
+ {
+ usort($rankings, "cmprank");
+ }
+
+ // Format the file list and return the results
+ foreach($rankings as $r)
+ {
+ $f = $r->filename;
+ $t = $r->pageTitle;
+ $sb .= "
Omitted $c more results
Adding LaTeX equations |
+ The instructions on this page + demonstrate how to install the + + Novacta.Shfb.LatexTools + , + and how to use them + to insert Latex content in documentation topics. +
Install a supported version of SHFB
+ The current release of + Novacta.Shfb.LatexTools + targets SHFB, version 2021.10.23.0 or later. +
+ Make sure that a supported SHFB version of your choice + is currently installed on your host machine. +
+ You can download the required SHFB release + here. +
Install a full LaTeX distribution
+ You need a full TeX distribution installed on your host machine. + You can find a list of TeX implementations + here. +
+ In particular, the LatexTools + have been tested using the + MiKTeX distribution. +
Create a SHFB documentation project
+ Documentation projects can be created via the + SHFB standalone GUI, + or via the + SHFB Visual Studio package. +
Add the Latex Tools to the SHFB documentation project
+ Right click on node Component Packages of your project + and, from the contextual menu, select Manage Component Packages... + (if your are using the SHFB standalone GUI), or + Manage NuGet Packages... (if you are + inside Visual Studio). Hence search package + Novacta.Shfb.LatexTools and install it. +
+ In this way, a reference to + the Novacta.Shfb.LatexTools + NuGet package will be added to your documentation project, and the following + SHFB extensions will be available while processing help files. +
+ The LatexComponent + enables the representation of LaTeX equations + as images in SHFB documentation topics. + Supported image formats are + PNG and + SVG. +
+ The LatexPlugIn, which + is responsible to support the SVG + image file format for the MSHelpViewer + help output. +
+ The presentation styles + VS2010WithLatex and + VS2013WithLatex, + which add the ability to manage LaTeX content to styles + VS2010 and + VS2013, respectively. +
Selecting a LaTeX-aware presentation style
+ To select a presentation style able to manage LaTeX content, open + the project properties and click on the + Build tab. From the list + of available presentation styles, select the one + of your choice among those defined + as VS2010 + LaTeX or + VS2010 + LaTeX. + For example, the following figure shows a project + in which the + VS2013 + LaTeX style + has been selected. +
Configuring the LatexComponent
+ The + LatexComponent + must be added to a documentation project + in order to manage LaTeX content in documentation topics. +
+ To such purpose, open the project properties and click on the + Components tab. From the list + of available components, select the one + referred to as + Novacta.Shfb.LaTeXComponent + and click the Add button. + Now the Latex component is inserted in the list of the + components executed during + the build process of the documentation project. + Such list is showed on the right side + of the tab, as exemplified in the following figure. +
+ Once the LaTeX component has been committed for execution, + it must be configured. By clicking the + Configure button, the following + pop-up window will be displayed. +
+ Through that window, configuration options can be set as follows. +
Option | Description |
---|---|
+ Image file format + | + Through this option, one of the + image formats supported for LaTeX + content representation can be selected. + |
+ Image depth correction + | + When a LaTeX element is in-lined, + then the corresponding image depth, i.e. the distance of the + bottom of the image from its baseline, must be modified in + order for the text represented in the image to have the same + baseline of the surrounding text. + + The initial image depth is returned by the DviPng executable of + the LaTeX distribution. Then, the difference between such value and + that set for the Image Depth Correction option + is taken as the final image depth. + By default, the Image Depth Correction option + is set to 0, + a value that works well for the default text size. + + Such behavior can be overridden for each specific equation, + as discussed in the following section. + |
+ Image scale percentage + | + This option controls the size of the text in a LaTeX equation. + The default value is 100, + and is equivalent to apply the \normalsize + text sizing LaTeX command while adopting + 10pt as the size of the main font in the document. + Values other than + 100 modify the size, + but negative values are not allowed. + + Such behavior can be overridden for each specific equation, + as discussed in the following section. + |
+ Redirect file processors + | + If checked, this option enables the redirection of + LaTeX console outputs to the SHFB + Help Build Log Content. + |
+ Default LaTeX Mode + | + This option controls if a LaTeX equation must be interpreted, + by default, as entered in inline mode, or + in display mode. + The default configuration sets this option + to display. + + Such behavior can be overridden for each specific equation, + as discussed in the following section. + |
+ Additional Preamble Commands + | + If needed, this option enables the addition of specific + commands to the preamble + of the documents processed to get the + LaTeX equations required in the documentation. + |
+ LaTeX bin folder + | + Through this option, you can specify the folder where + are contained the binary files of the installed + LaTeX distribution. + |
+ DviSvgm bin folder + | + Through this option, you can specify the folder where + are contained the binary files of + + DviSvgm, + a converter of DVI files to the SVG graphics format. + + The converter has been added to several LaTeX distributions. + If the installed distribution includes the tool, you can + specify here the same path set for option + LaTeX bin folder. + Otherwise, you can download the converter + here, + save it in a folder and set the option + accordingly. + + These binaries are only needed if you + select the SVG image file format. + |
The LatexPlugIn
+ The + LatexPlugIn + must be added to a documentation project + only if the project needs to support the SVG + image file format for the MSHelpViewer + help output. +
+ To do so, open the project properties and click on the + Plug-Ins tab. From the list + of available plug-ins, select the one + referred to as + Novacta.Shfb.LatexPlugIn + and click the Add button. + Now the Latex plug-in is inserted in the list of the + plug-ins executed during + the build process of the documentation project. + The plug-ins committed for execution are listed on the right side + of the tab, as exemplified in the following figure. +
+ LaTeX equations can be added to the XML comments on your + source code by inserting custom XML elements, referred + to as the LaTeX elements. +
+ The start-tag of such elements + is <latex>. + The basic form of a LaTeX element, + i.e. a form with no XML + attributes, is as follows. +
<latex>X_{(0)}=2^{-1/3}</latex>
+ When LaTeX elements are processed, + their content is interpreted as having document class + article, + with an option of + 10pt for the size of the + main font in the document, and the + \pagestyle set to + empty. You can also + assume as available the packages + amsmath + and + amsfonts. +
+ When the default configuration + is active and the latex element is in basic form, then its content + is interpreted as inserted in a displayed mathematical + environment (separated by the main text), and sized + applying the \normalsize LaTeX command. +
+ Such behavior can be overridden by adding attributes + to the latex element or overriding the default configuration. +
+ If you want a LaTeX formula displayed in-line, + that is, within the body of text where it is declared, + you can add a mode attribute + having the "inline" value, as in the following + example. +
/// Let us assume that the random variable +/// <latex mode="inline">Y_{i}</latex> has distribution function +/// <latex mode="inline">F_{Y_{i}}</latex>.
+ If a LaTeX element has + no mode attribute, then its + mode is set, by default, according to the + + Default LaTeX mode + + configuration option. +
+ The Novacta + LatexComponent + inserts images in help files + to represent your equations. + When + a LaTeX element is in-lined, + then the corresponding image + depth is, by default, set according to the + + Image depth correction + + configuration option. + However, the image depth for a given + LaTeX element + can be hard coded by adding a depth attribute, + as in the following example. +
<latex depth="10">F_{Y_{i}}</latex>
+ In a LaTeX element, + the size of the text is controlled, by default, + through the + + Image scale percentage + + configuration option. + However, the size of a given + LaTeX element can be + overridden by adding to it + a scale attribute. + For example, if you want its size being the + 70% of the basic size, you can write + a LaTeX element as follows. +
<latex scale="scriptsize">F_{Y_{i}}</latex>
+ More thoroughly, you can set the value of the + scale attribute + using any of the predefined values shown in the following table, + where the corresponding percentages are also reported. +
Predefined LaTeX size | Percentage | Example |
---|---|---|
+ tiny + | + 50 + | |
+ scriptsize + | + 70 + | |
+ footnotesize + | + 80 + | |
+ small + | + 90 + | |
+ normalsize + | + 100 + | |
+ large + | + 120 + | |
+ Large + | + 144 + | |
+ LARGE + | + 172.8 + | |
+ huge + | + 207.4 + | |
+ Huge + | + 248.8 + |
+ As an example, the following file printout shows the source code for + type + IntegerOperation, + as defined in project + SampleClassLibrary: +
1using System; + 2 + 3namespace SampleClassLibrary + 4{ + 5 /// <summary> + 6 /// Provides a method to operate on integers. + 7 /// </summary> + 8 public static class IntegerOperation + 9 { +10 /// <summary> +11 /// Applies the specified function to the given operand. +12 /// </summary> +13 /// <param name="func">The function.</param> +14 /// <param name="operand">The operand.</param> +15 /// <returns>The result of the operation.</returns> +16 /// <exception cref="ArgumentNullException"> +17 /// <paramref name="func"/> is <b>null</b>.</exception> +18 /// <example> +19 /// <para> +20 /// In the following example, the applied function, say +21 /// <latex mode='inline'>f:\mathbb{N}\rightarrow \mathbb{N},</latex> is defined as +22 /// <latex mode='display'> +23 /// \forall n \in \mathbb{N}: n \mapsto f\left(n\right)=n^2. +24 /// </latex> +25 /// An integer is thus squared +26 /// executing the <see cref="Operate(Func{int, int}, int)"/> method. +27 /// In addition, input validation is also checked. +28 /// </para> +29 /// <para> +30 /// <code language="cs"> +31 /// using System; +32 /// namespace SampleClassLibrary.CodeExamples +33 /// { +34 /// public class IntegerOperationExample +35 /// { +36 /// public void Main() +37 /// { +38 /// // Define an operator that squares its operand +39 /// Func<![CDATA[<]]>int, int> square = (int operand) => operand * operand; +40 /// +41 /// // Define an operand +42 /// int integer = 2; +43 /// +44 /// // Operate on it +45 /// Console.WriteLine("Squaring {0}...", integer); +46 /// int result = IntegerOperation.Operate(square, integer); +47 /// Console.WriteLine("...the result is {0}.", result); +48 /// +49 /// // Check that an operator cannot be null +50 /// try +51 /// { +52 /// IntegerOperation.Operate(null, 0); +53 /// } +54 /// catch (Exception e) +55 /// { +56 /// Console.WriteLine(); +57 /// Console.WriteLine("Cannot apply a null function:"); +58 /// Console.WriteLine(e.Message); +59 /// } +60 /// } +61 /// } +62 /// } +63 /// +64 /// // Executing method Main() produces the following output: +65 /// // +66 /// // Squaring 2... +67 /// // ...the result is 4. +68 /// // +69 /// // Cannot apply a null function: +70 /// // Value cannot be null. +71 /// // Parameter name: func +72 /// </code> +73 /// </para> +74 /// </example> +75 public static int Operate(Func<int, int> func, int operand) +76 { +77 if (func==null) +78 { +79 throw new ArgumentNullException(nameof(func)); +80 } +81 return func(operand); +82 } +83 } +84}
+ Note the LaTeX elements at line 21-24 + in the XML comments on method + Operate. + You can check + here + how the + corresponding documentation looks like. +
+ Elements in + MAML + conceptual topics must be qualified using a namespace. + To qualify LaTeX elements, + add to the topic's document element a namespace attribute + associated with prefix ltx, + as shown in the following example. +
<topic id="303c996a-2911-4c08-b492-6496c82b3edb" revisionNumber="1"> + <!-- This element name will change based on the document type --> + <developerConceptualDocument + xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:ltx="http://www.novacta.net/2018/XSL/ShfbLatexTools"> + + <!-- The content goes here --> + + </developerConceptualDocument> +</topic>
+ Now LaTeX elements can be added + by prefixing their tags with ltx, + as follows. +
<ltx:latex scale="LARGE" mode="inline">X_{(0)}</ltx:latex>
+ As an example, the following file printout shows the source code for + a conceptual topic about + IntegerOperation, + as defined in project + SampleClassLibrary: +
1<?xml version="1.0" encoding="utf-8"?> + 2<topic id="b10d4d75-3729-4247-a58a-b9e5b6e4bb4d" revisionNumber="1"> + 3 <developerConceptualDocument + 4 xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5" + 5 xmlns:xlink="http://www.w3.org/1999/xlink" + 6 xmlns:ltx="http://www.novacta.net/2018/XSL/ShfbLatexTools"> + 7 + 8 <introduction> + 9 <para> +10 Class <codeEntityReference qualifyHint="false"> +11 T:SampleClassLibrary.IntegerOperation +12 </codeEntityReference> provides method +13 <codeEntityReference qualifyHint="false"> +14 M:SampleClassLibrary.IntegerOperation.Operate(System.Func{System.Int32,System.Int32},System.Int32) +15 </codeEntityReference> +16 to manage operations on integer values. +17 </para> +18 <para> +19 In the following example, an integer is squared +20 executing the <codeEntityReference qualifyHint="false"> +21 M:SampleClassLibrary.IntegerOperation.Operate(System.Func{System.Int32,System.Int32},System.Int32) +22 </codeEntityReference> method. +23 This is equivalent to define the applied function, +24 say <ltx:latex mode="inline">f:\mathbb{N}\rightarrow \mathbb{N},</ltx:latex> +25 as <ltx:latex>\forall n \in \mathbb{N}: n \mapsto f\left(n\right)=n^2.</ltx:latex> +26 In addition, input validation is also checked. +27 </para> +28 <code source="..\SampleClassLibrary\IntegerOperationExample.cs.txt" +29 language="cs" title="C#" /> +30 </introduction> +31 +32 <relatedTopics> +33 <link xlink:href="4c3871a5-d7c6-477c-96ee-e71f0a67f7a8" /> +34 </relatedTopics> +35 +36 </developerConceptualDocument> +37</topic>
+ Note the LaTeX elements at lines 24-25. + You can check + here + how such conceptual topic looks like. +
License agreement |
+ This software is licensed under the following terms. +
+ Copyright (c) 2021 Giovanni Lafratta. All rights reserved. +
+ Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons + to whom the Software is furnished to do so, subject to the + following conditions: +
+ The above copyright notice and this permission notice shall + be included in + all copies or substantial portions of the Software. +
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +
Version History |
+ The topics in this section describe the various changes made to + Novacta.Shfb.LatexTools over the + life of the project. +
Select a version below to see a description of its changes.
Namespaces |
[Missing <summary> documentation for "G:"]
Namespace | Description |
---|---|
Novacta.Shfb | Provide support to LaTeX content in files generated by the Sandcastle Help File Builder. |
SampleClassLibrary | Provide information about a library containing sample code whose documentation has been created exploiting the Novacta SHFB LaTeX Tools. |
Novacta.Shfb Namespaces |
Namespace | Description |
---|---|
Novacta.Shfb.LatexTools | Provides types able to represent LaTeX content in files generated by the Sandcastle Help File Builder. |
Novacta.Shfb.LatexTools.PresentationStyles | Provides presentation styles able to manage LaTeX content in files generated by the Sandcastle Help File Builder. |
SampleClassLibrary Namespaces |
Namespace | Description |
---|---|
SampleClassLibrary | Provides support for operations on integers. |
SampleClassLibrary.Advanced | Provides support for operations on integer arrays. |
Please try to load the page again. If the error persists, please contact the site administrator.
+DviPngProcessorArguments Method |
+ Namespace: + Novacta.Shfb.LatexTools
public override string Arguments( + string fileName, + string additionalInfo +)
DviPngProcessor Constructor |
+ Namespace: + Novacta.Shfb.LatexTools
public DviPngProcessor( + string latexBinPath, + string workingPath, + string defaultImageResolution +)
DviSvgmProcessorArguments Method |
+ Namespace: + Novacta.Shfb.LatexTools
public override string Arguments( + string fileName, + string additionalInfo +)
DviSvgmProcessor Constructor |
+ Namespace: + Novacta.Shfb.LatexTools
public DviSvgmProcessor( + string dvisvgmBinPath, + string workingPath, + string defaultZoomFactor, + bool redirectFileProcessors +)
FileProcessorArguments Method |
+ Namespace: + Novacta.Shfb.LatexTools
public abstract string Arguments( + string fileName, + string additionalInfo +)
FileProcessorRun Method (String) |
+ Namespace: + Novacta.Shfb.LatexTools
public string Run( + string fileName +)
Exception | Condition |
---|---|
InvalidOperationException | + The process exited with errors. + |
FileProcessorRun Method (String, String) |
+ Namespace: + Novacta.Shfb.LatexTools
public string Run( + string fileName, + string additionalInfo +)
Exception | Condition |
---|---|
InvalidOperationException | + The process exited with errors. + |
FileProcessor Constructor |
+ Namespace: + Novacta.Shfb.LatexTools
protected FileProcessor()
LatexComponentApply Method |
+ Namespace: + Novacta.Shfb.LatexTools
public override void Apply( + XmlDocument document, + string key +)
LatexComponentFactoryCreate Method |
+ Namespace: + Novacta.Shfb.LatexTools
public override BuildComponentCore Create()
LatexComponentFactory Constructor |
+ Namespace: + Novacta.Shfb.LatexTools
public Factory()
LatexComponentInitialize Method |
+ Namespace: + Novacta.Shfb.LatexTools
public override void Initialize( + XPathNavigator configuration +)
LatexComponent Constructor |
+ Namespace: + Novacta.Shfb.LatexTools
protected LatexComponent( + BuildAssemblerCore buildAssembler +)
LatexPlugInDispose Method |
+ Namespace: + Novacta.Shfb.LatexTools
LatexPlugInExecute Method |
+ Namespace: + Novacta.Shfb.LatexTools
public void Execute( + ExecutionContext context +)
LatexPlugInFinalize Method |
+ Namespace: + Novacta.Shfb.LatexTools
LatexPlugInInitialize Method |
+ Namespace: + Novacta.Shfb.LatexTools
public void Initialize( + BuildProcess buildProcess, + XElement configuration +)
LatexPlugIn Constructor |
+ Namespace: + Novacta.Shfb.LatexTools
public LatexPlugIn()
LatexProcessorArguments Method |
+ Namespace: + Novacta.Shfb.LatexTools
public override string Arguments( + string fileName, + string additionalInfo +)
LatexProcessor Constructor |
+ Namespace: + Novacta.Shfb.LatexTools
public LatexProcessor( + string latexBinFolder, + string workingFolder +)
VS2010WithLatex Constructor |
+ Namespace: + Novacta.Shfb.LatexTools.PresentationStyles
public VS2010WithLatex()
VS2013WithLatex Constructor |
+ Namespace: + Novacta.Shfb.LatexTools.PresentationStyles
public VS2013WithLatex()
IntegerArrayOperationOperate Method |
+ Namespace: + SampleClassLibrary.Advanced
public static int[] Operate( + Func<int, int> func, + int[] operands +)
Exception | Condition |
---|---|
ArgumentNullException | func is null. + -or- operands is null. + |
+ In the following example, the applied function, say
+ is defined as
+
+ Integers in a given array are thus squared
+ executing the Operate(FuncInt32, Int32, Int32) method.
+ In addition, input validation is also checked.
+
using System; +using SampleClassLibrary.Advanced; + +namespace SampleClassLibrary.CodeExamples.Advanced +{ + public class IntegerArrayOperationExample + { + public void Main() + { + // Define an operator that squares its operand + Func<int, int> square = (int operand) => operand * operand; + + // Define an array of operands + int[] operands = new int[3] { 2, 4, 8 }; + + // Operate on it + int[] results = IntegerArrayOperation.Operate(square, operands); + + // Show results + for (int i = 0; i < results.Length; i++) + { + Console.WriteLine( + "The result of squaring {0} is {1}.", + operands[i], + results[i]); + } + + // Check that an operator cannot be null + try + { + IntegerArrayOperation.Operate(null, new int[1]); + } + catch (Exception e) + { + Console.WriteLine(); + Console.WriteLine("Cannot apply a null function:"); + Console.WriteLine(e.Message); + } + + // Check that an array of operands cannot be null + try + { + IntegerArrayOperation.Operate(square, null); + } + catch (Exception e) + { + Console.WriteLine(); + Console.WriteLine("Cannot apply a function to a null array:"); + Console.WriteLine(e.Message); + } + } + } +} + +// Executing method Main() produces the following output: +// +// The result of squaring 2 is 4. +// The result of squaring 4 is 16. +// The result of squaring 8 is 64. +// +// Cannot apply a null function: +// Value cannot be null. +// Parameter name: func +// +// Cannot apply a function to a null array: +// Value cannot be null. +// Parameter name: operands
IntegerOperationOperate Method |
+ Namespace: + SampleClassLibrary
public static int Operate( + Func<int, int> func, + int operand +)
Exception | Condition |
---|---|
ArgumentNullException | func is null. |
+ In the following example, the applied function, say
+ is defined as
+
+ An integer is thus squared
+ executing the Operate(FuncInt32, Int32, Int32) method.
+ In addition, input validation is also checked.
+
using System; +namespace SampleClassLibrary.CodeExamples +{ + public class IntegerOperationExample + { + public void Main() + { + // Define an operator that squares its operand + Func<int, int> square = (int operand) => operand * operand; + + // Define an operand + int integer = 2; + + // Operate on it + Console.WriteLine("Squaring {0}...", integer); + int result = IntegerOperation.Operate(square, integer); + Console.WriteLine("...the result is {0}.", result); + + // Check that an operator cannot be null + try + { + IntegerOperation.Operate(null, 0); + } + catch (Exception e) + { + Console.WriteLine(); + Console.WriteLine("Cannot apply a null function:"); + Console.WriteLine(e.Message); + } + } + } +} + +// Executing method Main() produces the following output: +// +// Squaring 2... +// ...the result is 4. +// +// Cannot apply a null function: +// Value cannot be null. +// Parameter name: func
DviPngProcessor Methods |
The DviPngProcessor type exposes the following members.
+ + | Name | Description |
---|---|---|
Arguments |
+ Returns the process arguments for the specified file.
+ (Overrides FileProcessorArguments(String, String).) | |
Equals | Determines whether the specified object is equal to the current object. (Inherited from Object.) | |
Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) | |
GetHashCode | Serves as the default hash function. (Inherited from Object.) | |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) | |
Run(String) |
+ Runs the processor on the specified file.
+ (Inherited from FileProcessor.) | |
Run(String, String) |
+ Runs the processor on the specified file applying
+ command-line arguments specific to that file.
+ (Inherited from FileProcessor.) | |
ToString | Returns a string that represents the current object. (Inherited from Object.) |
DviSvgmProcessor Methods |
The DviSvgmProcessor type exposes the following members.
+ + | Name | Description |
---|---|---|
Arguments |
+ Returns the process arguments for the specified file.
+ (Overrides FileProcessorArguments(String, String).) | |
Equals | Determines whether the specified object is equal to the current object. (Inherited from Object.) | |
Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) | |
GetHashCode | Serves as the default hash function. (Inherited from Object.) | |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) | |
Run(String) |
+ Runs the processor on the specified file.
+ (Inherited from FileProcessor.) | |
Run(String, String) |
+ Runs the processor on the specified file applying
+ command-line arguments specific to that file.
+ (Inherited from FileProcessor.) | |
ToString | Returns a string that represents the current object. (Inherited from Object.) |
FileProcessor Methods |
The FileProcessor type exposes the following members.
+ + | Name | Description |
---|---|---|
Arguments |
+ Returns the process arguments for the specified file.
+ | |
Equals | Determines whether the specified object is equal to the current object. (Inherited from Object.) | |
Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) | |
GetHashCode | Serves as the default hash function. (Inherited from Object.) | |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) | |
Run(String) |
+ Runs the processor on the specified file.
+ | |
Run(String, String) |
+ Runs the processor on the specified file applying
+ command-line arguments specific to that file.
+ | |
ToString | Returns a string that represents the current object. (Inherited from Object.) |
LatexComponent Methods |
The LatexComponent type exposes the following members.
+ + | Name | Description |
---|---|---|
Apply |
+ Performs the component tasks.
+ (Overrides BuildComponentCore.Apply(XmlDocument, String).) | |
Dispose |
+ This implements the Dispose() interface to properly dispose of the build component.
+ (Inherited from BuildComponentCore.) | |
Dispose(Boolean) |
+ This can be overridden by derived classes to add their own disposal code if necessary.
+ (Inherited from BuildComponentCore.) | |
Equals | Determines whether the specified object is equal to the current object. (Inherited from Object.) | |
Finalize |
+ This handles garbage collection to ensure proper disposal of the build component if not done
+ explicitly with Dispose.
+ (Inherited from BuildComponentCore.) | |
GetHashCode | Serves as the default hash function. (Inherited from Object.) | |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
Initialize |
+ Initializes the build component.
+ (Overrides BuildComponentCore.Initialize(XPathNavigator).) | |
MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) | |
OnComponentEvent |
+ This can be used to raise the ComponentEvent
+ event with the specified event arguments.
+ (Inherited from BuildComponentCore.) | |
ToString | Returns a string that represents the current object. (Inherited from Object.) | |
WriteMessage(MessageLevel, String, Object) |
+ This can be used to report a message
+ (Inherited from BuildComponentCore.) | |
WriteMessage(String, MessageLevel, String, Object) |
+ This can be used to report a message for a specific topic ID
+ (Inherited from BuildComponentCore.) |
Factory Methods |
The LatexComponentFactory type exposes the following members.
+ + | Name | Description |
---|---|---|
Create |
+ This is implemented to provide a build component factory
+ (Overrides BuildComponentFactory.Create.) | |
Equals | Determines whether the specified object is equal to the current object. (Inherited from Object.) | |
GetHashCode | Serves as the default hash function. (Inherited from Object.) | |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
ToString | Returns a string that represents the current object. (Inherited from Object.) |
LatexPlugIn Methods |
The LatexPlugIn type exposes the following members.
+ + | Name | Description |
---|---|---|
Dispose |
+ Performs application-defined tasks associated with freeing,
+ releasing, or resetting unmanaged resources.
+ | |
Equals | Determines whether the specified object is equal to the current object. (Inherited from Object.) | |
Execute |
+ Executes the plug-in during the build process.
+ | |
Finalize |
+ Allows this instance to try to free resources and perform other
+ cleanup operations before it is reclaimed by garbage collection.
+ (Overrides ObjectFinalize.) | |
GetHashCode | Serves as the default hash function. (Inherited from Object.) | |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
Initialize |
+ Initializes the plug-in at the start of the build process.
+ | |
ToString | Returns a string that represents the current object. (Inherited from Object.) |
LatexProcessor Methods |
The LatexProcessor type exposes the following members.
+ + | Name | Description |
---|---|---|
Arguments |
+ Returns the process arguments for the specified file.
+ (Overrides FileProcessorArguments(String, String).) | |
Equals | Determines whether the specified object is equal to the current object. (Inherited from Object.) | |
Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) | |
GetHashCode | Serves as the default hash function. (Inherited from Object.) | |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) | |
Run(String) |
+ Runs the processor on the specified file.
+ (Inherited from FileProcessor.) | |
Run(String, String) |
+ Runs the processor on the specified file applying
+ command-line arguments specific to that file.
+ (Inherited from FileProcessor.) | |
ToString | Returns a string that represents the current object. (Inherited from Object.) |
VS2010WithLatex Methods |
The VS2010WithLatex type exposes the following members.
+ + | Name | Description |
---|---|---|
CheckForErrors |
+ This is used to check the presentation style for errors
+ (Inherited from PresentationStyleSettings.) | |
CopyHelpContent |
+ This is used to copy the presentation style help file content to the given destination folder
+ (Inherited from PresentationStyleSettings.) | |
Equals | Determines whether the specified object is equal to the current object. (Inherited from Object.) | |
GetHashCode | Serves as the default hash function. (Inherited from Object.) | |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
ResolvePath |
+ This is used to resolve a presentation style path
+ (Inherited from PresentationStyleSettings.) | |
ToString | Returns a string that represents the current object. (Inherited from Object.) |
VS2013WithLatex Methods |
The VS2013WithLatex type exposes the following members.
+ + | Name | Description |
---|---|---|
CheckForErrors |
+ This is used to check the presentation style for errors
+ (Inherited from PresentationStyleSettings.) | |
CopyHelpContent |
+ This is used to copy the presentation style help file content to the given destination folder
+ (Inherited from PresentationStyleSettings.) | |
Equals | Determines whether the specified object is equal to the current object. (Inherited from Object.) | |
GetHashCode | Serves as the default hash function. (Inherited from Object.) | |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
ResolvePath |
+ This is used to resolve a presentation style path
+ (Inherited from PresentationStyleSettings.) | |
ToString | Returns a string that represents the current object. (Inherited from Object.) |
IntegerArrayOperation Methods |
The IntegerArrayOperation type exposes the following members.
Novacta.Shfb.LatexTools Namespace |
+ + | Class | Description |
---|---|---|
DviPngProcessor |
+ Represents a DviPng process.
+ | |
DviSvgmProcessor |
+ Represents a DviSvgm process.
+ | |
FileProcessor |
+ Represents a process that supports file elaborations.
+ | |
LatexComponent |
+ Provides support for LaTeX formatted formulas in
+ reference XML comments and conceptual content topics.
+ | |
LatexComponentFactory |
+ Provides a factory method to create LatexComponent instances.
+ | |
LatexPlugIn |
+ Provides support in MS Help Viewer files for LaTeX content
+ represented via the SVG image format.
+ | |
LatexProcessor |
+ Represents a LaTeX process.
+ |
Novacta.Shfb.LatexTools.PresentationStyles Namespace |
+ + | Class | Description |
---|---|---|
VS2010WithLatex |
+ Represents a VS2010-based presentation style that supports
+ LaTeX formatted formulas in reference XML comments and conceptual content topics.
+ | |
VS2013WithLatex |
+ Represents a VS2013-based presentation style that supports
+ LaTeX formatted formulas in reference XML comments and conceptual content topics.
+ |
SampleClassLibrary Namespace |
+ + | Class | Description |
---|---|---|
IntegerOperation |
+ Provides a method to operate on integers.
+ |
SampleClassLibrary.Advanced Namespace |
+ + | Class | Description |
---|---|---|
IntegerArrayOperation |
+ Provides a method to operate on arrays of integers.
+ |
FileProcessorRun Method |
+ + | Name | Description |
---|---|---|
Run(String) |
+ Runs the processor on the specified file.
+ | |
Run(String, String) |
+ Runs the processor on the specified file applying
+ command-line arguments specific to that file.
+ |
DviPngProcessorExecutable Property |
+ Namespace: + Novacta.Shfb.LatexTools
public override string Executable { get; }
DviPngProcessorWorkingDirectory Property |
+ Namespace: + Novacta.Shfb.LatexTools
public override string WorkingDirectory { get; }
DviSvgmProcessorExecutable Property |
+ Namespace: + Novacta.Shfb.LatexTools
public override string Executable { get; }
DviSvgmProcessorWorkingDirectory Property |
+ Namespace: + Novacta.Shfb.LatexTools
public override string WorkingDirectory { get; }
FileProcessorExecutable Property |
+ Namespace: + Novacta.Shfb.LatexTools
public abstract string Executable { get; }
FileProcessorWorkingDirectory Property |
+ Namespace: + Novacta.Shfb.LatexTools
public abstract string WorkingDirectory { get; }
LatexComponentFactoryDefaultConfiguration Property |
+ Namespace: + Novacta.Shfb.LatexTools
public override string DefaultConfiguration { get; }
LatexPlugInExecutionPoints Property |
+ Namespace: + Novacta.Shfb.LatexTools
public IEnumerable<ExecutionPoint> ExecutionPoints { get; }
LatexProcessorExecutable Property |
+ Namespace: + Novacta.Shfb.LatexTools
public override string Executable { get; }
LatexProcessorWorkingDirectory Property |
+ Namespace: + Novacta.Shfb.LatexTools
public override string WorkingDirectory { get; }
VS2010WithLatexLocation Property |
+ Namespace: + Novacta.Shfb.LatexTools.PresentationStyles
public override string Location { get; }
VS2013WithLatexLocation Property |
+ Namespace: + Novacta.Shfb.LatexTools.PresentationStyles
public override string Location { get; }
The URL might be misspelled or the page you are looking for is no longer available. If you entered +the web address, check that it doesn't contain a typo. You can use the search box at the top of the page to +try and locate the page.
+DviPngProcessor Properties |
The DviPngProcessor type exposes the following members.
+ + | Name | Description |
---|---|---|
Executable |
+ Gets the path of the processor.
+ (Overrides FileProcessorExecutable.) | |
WorkingDirectory |
+ Gets the working directory of the processor.
+ (Overrides FileProcessorWorkingDirectory.) |
DviSvgmProcessor Properties |
The DviSvgmProcessor type exposes the following members.
+ + | Name | Description |
---|---|---|
Executable |
+ Gets the path of the processor.
+ (Overrides FileProcessorExecutable.) | |
WorkingDirectory |
+ Gets the working directory of the processor.
+ (Overrides FileProcessorWorkingDirectory.) |
FileProcessor Properties |
The FileProcessor type exposes the following members.
+ + | Name | Description |
---|---|---|
Executable |
+ Gets the path of the processor.
+ | |
WorkingDirectory |
+ Gets the working directory of the processor.
+ |
LatexComponent Properties |
The LatexComponent type exposes the following members.
+ + | Name | Description |
---|---|---|
BuildAssembler |
+ This read-only property returns a reference to the build assembler instance using the component
+ (Inherited from BuildComponentCore.) | |
GroupId |
+ This is used to set an optional group ID for use with component events
+ (Inherited from BuildComponentCore.) |
Factory Properties |
The LatexComponentFactory type exposes the following members.
+ + | Name | Description |
---|---|---|
ConceptualBuildPlacement |
+ This is used to get or set a placement action for conceptual content builds
+ (Inherited from BuildComponentFactory.) | |
DefaultConfiguration |
+ This read-only property can be overridden to define a default configuration for the build component
+ (Overrides BuildComponentFactory.DefaultConfiguration.) | |
Dependencies |
+ This read-only property can be overridden to provide a list of build components on which this
+ component depends.
+ (Inherited from BuildComponentFactory.) | |
ReferenceBuildPlacement |
+ This is used to get or set a placement action for reference content builds
+ (Inherited from BuildComponentFactory.) |
LatexPlugIn Properties |
The LatexPlugIn type exposes the following members.
+ + | Name | Description |
---|---|---|
ExecutionPoints |
+ Returns a collection of execution points that define
+ when the plug-in should be invoked during the build process.
+ |
LatexProcessor Properties |
The LatexProcessor type exposes the following members.
+ + | Name | Description |
---|---|---|
Executable |
+ Gets the path of the processor.
+ (Overrides FileProcessorExecutable.) | |
WorkingDirectory |
+ Gets the working directory of the processor.
+ (Overrides FileProcessorWorkingDirectory.) |
VS2010WithLatex Properties |
The VS2010WithLatex type exposes the following members.
+ + | Name | Description |
---|---|---|
ApiTableOfContentsGenerator |
+ This is used to get or set the table of content generator for API content
+ (Inherited from PresentationStyleSettings.) | |
BasePath |
+ This is used to get or set the presentation style base path used to resolve relative paths within the
+ presentation style.
+ (Inherited from PresentationStyleSettings.) | |
BuildAssemblerConfiguration |
+ This is used to get or set the BuildAssembler configuration filename
+ (Inherited from PresentationStyleSettings.) | |
ContentFiles |
+ This read-only property returns the list of help content file locations
+ (Inherited from PresentationStyleSettings.) | |
DocumentModelApplicator |
+ This is used to get or set the document model applicator
+ (Inherited from PresentationStyleSettings.) | |
Location |
+ This is overridden in derived classes to provide the location of the presentation style files
+ (Overrides PresentationStyleSettings.Location.) | |
PlugInDependencies |
+ This read-only property returns any plug-in dependencies required by the presentation style
+ (Inherited from PresentationStyleSettings.) | |
ResourceItemsPath |
+ This is used to get or set the path in which BuildAssembler resource item files are stored
+ (Inherited from PresentationStyleSettings.) | |
SupportedFormats |
+ This is used to get or set the help file formats supported by the presentation style
+ (Inherited from PresentationStyleSettings.) | |
SupportsCodeSnippetGrouping |
+ This is used to get or set whether or not code snippet grouping is supported by the presentation
+ style.
+ (Inherited from PresentationStyleSettings.) | |
SupportsNamespaceGrouping |
+ This is used to get or set whether or not namespace grouping is supported by the presentation style
+ (Inherited from PresentationStyleSettings.) | |
ToolResourceItemsPath |
+ This is used to get or set the path in which help file builder resource item files are stored
+ (Inherited from PresentationStyleSettings.) | |
TransformComponentArguments |
+ This read-only property returns the transform component arguments if any
+ (Inherited from PresentationStyleSettings.) |
VS2013WithLatex Properties |
The VS2013WithLatex type exposes the following members.
+ + | Name | Description |
---|---|---|
ApiTableOfContentsGenerator |
+ This is used to get or set the table of content generator for API content
+ (Inherited from PresentationStyleSettings.) | |
BasePath |
+ This is used to get or set the presentation style base path used to resolve relative paths within the
+ presentation style.
+ (Inherited from PresentationStyleSettings.) | |
BuildAssemblerConfiguration |
+ This is used to get or set the BuildAssembler configuration filename
+ (Inherited from PresentationStyleSettings.) | |
ContentFiles |
+ This read-only property returns the list of help content file locations
+ (Inherited from PresentationStyleSettings.) | |
DocumentModelApplicator |
+ This is used to get or set the document model applicator
+ (Inherited from PresentationStyleSettings.) | |
Location |
+ This is overridden in derived classes to provide the location of the presentation style files
+ (Overrides PresentationStyleSettings.Location.) | |
PlugInDependencies |
+ This read-only property returns any plug-in dependencies required by the presentation style
+ (Inherited from PresentationStyleSettings.) | |
ResourceItemsPath |
+ This is used to get or set the path in which BuildAssembler resource item files are stored
+ (Inherited from PresentationStyleSettings.) | |
SupportedFormats |
+ This is used to get or set the help file formats supported by the presentation style
+ (Inherited from PresentationStyleSettings.) | |
SupportsCodeSnippetGrouping |
+ This is used to get or set whether or not code snippet grouping is supported by the presentation
+ style.
+ (Inherited from PresentationStyleSettings.) | |
SupportsNamespaceGrouping |
+ This is used to get or set whether or not namespace grouping is supported by the presentation style
+ (Inherited from PresentationStyleSettings.) | |
ToolResourceItemsPath |
+ This is used to get or set the path in which help file builder resource item files are stored
+ (Inherited from PresentationStyleSettings.) | |
TransformComponentArguments |
+ This read-only property returns the transform component arguments if any
+ (Inherited from PresentationStyleSettings.) |
DviPngProcessor Class |
+ Namespace: + Novacta.Shfb.LatexTools
public class DviPngProcessor : FileProcessor
The DviPngProcessor type exposes the following members.
+ + | Name | Description |
---|---|---|
DviPngProcessor |
+ Initializes a new instance of the DviPngProcessor class.
+ |
+ + | Name | Description |
---|---|---|
Executable |
+ Gets the path of the processor.
+ (Overrides FileProcessorExecutable.) | |
WorkingDirectory |
+ Gets the working directory of the processor.
+ (Overrides FileProcessorWorkingDirectory.) |
+ + | Name | Description |
---|---|---|
Arguments |
+ Returns the process arguments for the specified file.
+ (Overrides FileProcessorArguments(String, String).) | |
Equals | Determines whether the specified object is equal to the current object. (Inherited from Object.) | |
Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) | |
GetHashCode | Serves as the default hash function. (Inherited from Object.) | |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) | |
Run(String) |
+ Runs the processor on the specified file.
+ (Inherited from FileProcessor.) | |
Run(String, String) |
+ Runs the processor on the specified file applying
+ command-line arguments specific to that file.
+ (Inherited from FileProcessor.) | |
ToString | Returns a string that represents the current object. (Inherited from Object.) |
DviSvgmProcessor Class |
+ Namespace: + Novacta.Shfb.LatexTools
public class DviSvgmProcessor : FileProcessor
The DviSvgmProcessor type exposes the following members.
+ + | Name | Description |
---|---|---|
DviSvgmProcessor |
+ Initializes a new instance of the DviSvgmProcessor class.
+ |
+ + | Name | Description |
---|---|---|
Executable |
+ Gets the path of the processor.
+ (Overrides FileProcessorExecutable.) | |
WorkingDirectory |
+ Gets the working directory of the processor.
+ (Overrides FileProcessorWorkingDirectory.) |
+ + | Name | Description |
---|---|---|
Arguments |
+ Returns the process arguments for the specified file.
+ (Overrides FileProcessorArguments(String, String).) | |
Equals | Determines whether the specified object is equal to the current object. (Inherited from Object.) | |
Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) | |
GetHashCode | Serves as the default hash function. (Inherited from Object.) | |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) | |
Run(String) |
+ Runs the processor on the specified file.
+ (Inherited from FileProcessor.) | |
Run(String, String) |
+ Runs the processor on the specified file applying
+ command-line arguments specific to that file.
+ (Inherited from FileProcessor.) | |
ToString | Returns a string that represents the current object. (Inherited from Object.) |
FileProcessor Class |
+ Namespace: + Novacta.Shfb.LatexTools
public abstract class FileProcessor
The FileProcessor type exposes the following members.
+ + | Name | Description |
---|---|---|
FileProcessor | Initializes a new instance of the FileProcessor class |
+ + | Name | Description |
---|---|---|
Executable |
+ Gets the path of the processor.
+ | |
WorkingDirectory |
+ Gets the working directory of the processor.
+ |
+ + | Name | Description |
---|---|---|
Arguments |
+ Returns the process arguments for the specified file.
+ | |
Equals | Determines whether the specified object is equal to the current object. (Inherited from Object.) | |
Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) | |
GetHashCode | Serves as the default hash function. (Inherited from Object.) | |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) | |
Run(String) |
+ Runs the processor on the specified file.
+ | |
Run(String, String) |
+ Runs the processor on the specified file applying
+ command-line arguments specific to that file.
+ | |
ToString | Returns a string that represents the current object. (Inherited from Object.) |
LatexComponent Class |
+ Namespace: + Novacta.Shfb.LatexTools
public class LatexComponent : BuildComponentCore
The LatexComponent type exposes the following members.
+ + | Name | Description |
---|---|---|
LatexComponent |
+ Initializes a new instance of the LatexComponent class
+ with the specified build assembler.
+ |
+ + | Name | Description |
---|---|---|
BuildAssembler |
+ This read-only property returns a reference to the build assembler instance using the component
+ (Inherited from BuildComponentCore.) | |
GroupId |
+ This is used to set an optional group ID for use with component events
+ (Inherited from BuildComponentCore.) |
+ + | Name | Description |
---|---|---|
Apply |
+ Performs the component tasks.
+ (Overrides BuildComponentCore.Apply(XmlDocument, String).) | |
Dispose |
+ This implements the Dispose() interface to properly dispose of the build component.
+ (Inherited from BuildComponentCore.) | |
Dispose(Boolean) |
+ This can be overridden by derived classes to add their own disposal code if necessary.
+ (Inherited from BuildComponentCore.) | |
Equals | Determines whether the specified object is equal to the current object. (Inherited from Object.) | |
Finalize |
+ This handles garbage collection to ensure proper disposal of the build component if not done
+ explicitly with Dispose.
+ (Inherited from BuildComponentCore.) | |
GetHashCode | Serves as the default hash function. (Inherited from Object.) | |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
Initialize |
+ Initializes the build component.
+ (Overrides BuildComponentCore.Initialize(XPathNavigator).) | |
MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) | |
OnComponentEvent |
+ This can be used to raise the ComponentEvent
+ event with the specified event arguments.
+ (Inherited from BuildComponentCore.) | |
ToString | Returns a string that represents the current object. (Inherited from Object.) | |
WriteMessage(MessageLevel, String, Object) |
+ This can be used to report a message
+ (Inherited from BuildComponentCore.) | |
WriteMessage(String, MessageLevel, String, Object) |
+ This can be used to report a message for a specific topic ID
+ (Inherited from BuildComponentCore.) |
LatexComponentFactory Class |
+ Namespace: + Novacta.Shfb.LatexTools
public sealed class Factory : BuildComponentFactory
The LatexComponentFactory type exposes the following members.
+ + | Name | Description |
---|---|---|
LatexComponentFactory |
+ Initializes a new instance of the LatexComponentFactory class.
+ |
+ + | Name | Description |
---|---|---|
ConceptualBuildPlacement |
+ This is used to get or set a placement action for conceptual content builds
+ (Inherited from BuildComponentFactory.) | |
DefaultConfiguration |
+ This read-only property can be overridden to define a default configuration for the build component
+ (Overrides BuildComponentFactory.DefaultConfiguration.) | |
Dependencies |
+ This read-only property can be overridden to provide a list of build components on which this
+ component depends.
+ (Inherited from BuildComponentFactory.) | |
ReferenceBuildPlacement |
+ This is used to get or set a placement action for reference content builds
+ (Inherited from BuildComponentFactory.) |
+ + | Name | Description |
---|---|---|
Create |
+ This is implemented to provide a build component factory
+ (Overrides BuildComponentFactory.Create.) | |
Equals | Determines whether the specified object is equal to the current object. (Inherited from Object.) | |
GetHashCode | Serves as the default hash function. (Inherited from Object.) | |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
ToString | Returns a string that represents the current object. (Inherited from Object.) |
LatexPlugIn Class |
+ Namespace: + Novacta.Shfb.LatexTools
public sealed class LatexPlugIn : IPlugIn, + IDisposable
The LatexPlugIn type exposes the following members.
+ + | Name | Description |
---|---|---|
LatexPlugIn | Initializes a new instance of the LatexPlugIn class |
+ + | Name | Description |
---|---|---|
ExecutionPoints |
+ Returns a collection of execution points that define
+ when the plug-in should be invoked during the build process.
+ |
+ + | Name | Description |
---|---|---|
Dispose |
+ Performs application-defined tasks associated with freeing,
+ releasing, or resetting unmanaged resources.
+ | |
Equals | Determines whether the specified object is equal to the current object. (Inherited from Object.) | |
Execute |
+ Executes the plug-in during the build process.
+ | |
Finalize |
+ Allows this instance to try to free resources and perform other
+ cleanup operations before it is reclaimed by garbage collection.
+ (Overrides ObjectFinalize.) | |
GetHashCode | Serves as the default hash function. (Inherited from Object.) | |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
Initialize |
+ Initializes the plug-in at the start of the build process.
+ | |
ToString | Returns a string that represents the current object. (Inherited from Object.) |
LatexProcessor Class |
+ Namespace: + Novacta.Shfb.LatexTools
public class LatexProcessor : FileProcessor
The LatexProcessor type exposes the following members.
+ + | Name | Description |
---|---|---|
LatexProcessor |
+ Initializes a new instance of the LatexProcessor class.
+ |
+ + | Name | Description |
---|---|---|
Executable |
+ Gets the path of the processor.
+ (Overrides FileProcessorExecutable.) | |
WorkingDirectory |
+ Gets the working directory of the processor.
+ (Overrides FileProcessorWorkingDirectory.) |
+ + | Name | Description |
---|---|---|
Arguments |
+ Returns the process arguments for the specified file.
+ (Overrides FileProcessorArguments(String, String).) | |
Equals | Determines whether the specified object is equal to the current object. (Inherited from Object.) | |
Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) | |
GetHashCode | Serves as the default hash function. (Inherited from Object.) | |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) | |
Run(String) |
+ Runs the processor on the specified file.
+ (Inherited from FileProcessor.) | |
Run(String, String) |
+ Runs the processor on the specified file applying
+ command-line arguments specific to that file.
+ (Inherited from FileProcessor.) | |
ToString | Returns a string that represents the current object. (Inherited from Object.) |
VS2010WithLatex Class |
+ Namespace: + Novacta.Shfb.LatexTools.PresentationStyles
public sealed class VS2010WithLatex : PresentationStyleSettings
The VS2010WithLatex type exposes the following members.
+ + | Name | Description |
---|---|---|
VS2010WithLatex |
+ Initializes a new instance of the VS2010WithLatex class.
+ |
+ + | Name | Description |
---|---|---|
ApiTableOfContentsGenerator |
+ This is used to get or set the table of content generator for API content
+ (Inherited from PresentationStyleSettings.) | |
BasePath |
+ This is used to get or set the presentation style base path used to resolve relative paths within the
+ presentation style.
+ (Inherited from PresentationStyleSettings.) | |
BuildAssemblerConfiguration |
+ This is used to get or set the BuildAssembler configuration filename
+ (Inherited from PresentationStyleSettings.) | |
ContentFiles |
+ This read-only property returns the list of help content file locations
+ (Inherited from PresentationStyleSettings.) | |
DocumentModelApplicator |
+ This is used to get or set the document model applicator
+ (Inherited from PresentationStyleSettings.) | |
Location |
+ This is overridden in derived classes to provide the location of the presentation style files
+ (Overrides PresentationStyleSettings.Location.) | |
PlugInDependencies |
+ This read-only property returns any plug-in dependencies required by the presentation style
+ (Inherited from PresentationStyleSettings.) | |
ResourceItemsPath |
+ This is used to get or set the path in which BuildAssembler resource item files are stored
+ (Inherited from PresentationStyleSettings.) | |
SupportedFormats |
+ This is used to get or set the help file formats supported by the presentation style
+ (Inherited from PresentationStyleSettings.) | |
SupportsCodeSnippetGrouping |
+ This is used to get or set whether or not code snippet grouping is supported by the presentation
+ style.
+ (Inherited from PresentationStyleSettings.) | |
SupportsNamespaceGrouping |
+ This is used to get or set whether or not namespace grouping is supported by the presentation style
+ (Inherited from PresentationStyleSettings.) | |
ToolResourceItemsPath |
+ This is used to get or set the path in which help file builder resource item files are stored
+ (Inherited from PresentationStyleSettings.) | |
TransformComponentArguments |
+ This read-only property returns the transform component arguments if any
+ (Inherited from PresentationStyleSettings.) |
+ + | Name | Description |
---|---|---|
CheckForErrors |
+ This is used to check the presentation style for errors
+ (Inherited from PresentationStyleSettings.) | |
CopyHelpContent |
+ This is used to copy the presentation style help file content to the given destination folder
+ (Inherited from PresentationStyleSettings.) | |
Equals | Determines whether the specified object is equal to the current object. (Inherited from Object.) | |
GetHashCode | Serves as the default hash function. (Inherited from Object.) | |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
ResolvePath |
+ This is used to resolve a presentation style path
+ (Inherited from PresentationStyleSettings.) | |
ToString | Returns a string that represents the current object. (Inherited from Object.) |
VS2013WithLatex Class |
+ Namespace: + Novacta.Shfb.LatexTools.PresentationStyles
public sealed class VS2013WithLatex : PresentationStyleSettings
The VS2013WithLatex type exposes the following members.
+ + | Name | Description |
---|---|---|
VS2013WithLatex |
+ Initializes a new instance of the VS2013WithLatex class.
+ |
+ + | Name | Description |
---|---|---|
ApiTableOfContentsGenerator |
+ This is used to get or set the table of content generator for API content
+ (Inherited from PresentationStyleSettings.) | |
BasePath |
+ This is used to get or set the presentation style base path used to resolve relative paths within the
+ presentation style.
+ (Inherited from PresentationStyleSettings.) | |
BuildAssemblerConfiguration |
+ This is used to get or set the BuildAssembler configuration filename
+ (Inherited from PresentationStyleSettings.) | |
ContentFiles |
+ This read-only property returns the list of help content file locations
+ (Inherited from PresentationStyleSettings.) | |
DocumentModelApplicator |
+ This is used to get or set the document model applicator
+ (Inherited from PresentationStyleSettings.) | |
Location |
+ This is overridden in derived classes to provide the location of the presentation style files
+ (Overrides PresentationStyleSettings.Location.) | |
PlugInDependencies |
+ This read-only property returns any plug-in dependencies required by the presentation style
+ (Inherited from PresentationStyleSettings.) | |
ResourceItemsPath |
+ This is used to get or set the path in which BuildAssembler resource item files are stored
+ (Inherited from PresentationStyleSettings.) | |
SupportedFormats |
+ This is used to get or set the help file formats supported by the presentation style
+ (Inherited from PresentationStyleSettings.) | |
SupportsCodeSnippetGrouping |
+ This is used to get or set whether or not code snippet grouping is supported by the presentation
+ style.
+ (Inherited from PresentationStyleSettings.) | |
SupportsNamespaceGrouping |
+ This is used to get or set whether or not namespace grouping is supported by the presentation style
+ (Inherited from PresentationStyleSettings.) | |
ToolResourceItemsPath |
+ This is used to get or set the path in which help file builder resource item files are stored
+ (Inherited from PresentationStyleSettings.) | |
TransformComponentArguments |
+ This read-only property returns the transform component arguments if any
+ (Inherited from PresentationStyleSettings.) |
+ + | Name | Description |
---|---|---|
CheckForErrors |
+ This is used to check the presentation style for errors
+ (Inherited from PresentationStyleSettings.) | |
CopyHelpContent |
+ This is used to copy the presentation style help file content to the given destination folder
+ (Inherited from PresentationStyleSettings.) | |
Equals | Determines whether the specified object is equal to the current object. (Inherited from Object.) | |
GetHashCode | Serves as the default hash function. (Inherited from Object.) | |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
ResolvePath |
+ This is used to resolve a presentation style path
+ (Inherited from PresentationStyleSettings.) | |
ToString | Returns a string that represents the current object. (Inherited from Object.) |
IntegerArrayOperation Class |
+ Namespace: + SampleClassLibrary.Advanced
public static class IntegerArrayOperation
The IntegerArrayOperation type exposes the following members.
IntegerOperation Class |
+ Namespace: + SampleClassLibrary
public static class IntegerOperation
The IntegerOperation type exposes the following members.
Operating on integers |
+ Class IntegerOperation provides method + Operate + to manage operations on integer values. +
+ In the following example, an integer is squared + executing the Operate method. + This is equivalent to define the applied function, + say + as + In addition, input validation is also checked. +
using System; +namespace SampleClassLibrary.CodeExamples +{ + public class IntegerOperationExample + { + public void Main() + { + // Define an operator that squares its operand + Func<int, int> square = (int operand) => operand * operand; + + // Define an operand + int integer = 2; + + // Operate on it + Console.WriteLine("Squaring {0}...", integer); + int result = IntegerOperation.Operate(square, integer); + Console.WriteLine("...the result is {0}.", result); + + // Check that an operator cannot be null + try + { + IntegerOperation.Operate(null, 0); + } + catch (Exception e) + { + Console.WriteLine(); + Console.WriteLine("Cannot apply a null function:"); + Console.WriteLine(e.Message); + } + } + } +} + +// Executing method Main() produces the following output: +// +// Squaring 2... +// ...the result is 4. +// +// Cannot apply a null function: +// Value cannot be null. +// Parameter name: func
Version 1.0.0 |
+ Version 1.0.0 was released on November 15 2021. +
Initial release of the assembly.
Welcome |
Novacta.Shfb.LatexTools is a .NET library + that provides types to manage LaTeX equations in reference and conceptual content files + generated by the + Sandcastle Help File Builder. +
+ The project supports SHFB, version 2021.10.23.0 or later. +
+ The library is licensed under + the + MIT license. +
+ The current documentation includes the following topics. +
Adding LaTeX equations includes topics showing how to define LaTeX + content in documentation files. +
Library reference + contains reference information about library + types by namespace. +
SampleClassLibrary Namespaces + points to a sample documentation obtained + through the Novacta.Shfb.LatexTools library. +
$_p%X3$}lctf$1e_tdtFSo(X!1 zj|_I;CBX5%PngDb*+_97zyA+YP%!?eXj+q%Ee-&qUg8}4anfkrCqNp@UF-)xVt#KL zWCuLULo`^L->-Ik$+U<%-e2rG*uK9D7PXkq3r-VUO~d}gN5m2Kj{TR3(tGir&I1QO z`_WKH`Mfx%|AhXdSmRy+;u;FCP=1@UkCnC608RfYl{`Rt)3w5YOR(;;zl2_~>gM z&SON8S2B8GJl?b6jc1NvHNWpLJc=_Rdj^up-)$-W&so_Xe-4eOV87-%_T*CAK3tt*ueR4HqgQVpYC+cVEfe)JCo=~@Fp4DTh0Q{p&|4@J9uq<_ zlri{YIAh?^=Rsh>Wjf};yqG8R=5eeiz*ge&*S_#y`@(|s?ED_;_nyzwU930F+PMR(x9~dru}CZtchYt(`bXChH?klF63s+SEg^ zvsxj;n1VT(Og8tCUOoJ69Ax&gS$_TTf1)_IhyU})mU&r?kl{tw=X>}|8(y-JHjD7Q zyKfKwd6>FkTzgLJZ$Az*N`LY7{!47VWXr_0ve&qS_uuS1DL{Ny3>fIz`(c#tFMjgj zu)cv0zd3n~=+7!(#&-aV@q0wmBVOPQ#?oF=E@KG2{E?(PLEl>t3NecaMVIT3E|=k6 zNy-OaDDVq$wnsm~bpFN`1g`=_Y36{N|L;;-=;g}vxVpULjvrNSQei@9$hlMhjyb9_ z6Y2{y8p}%>RW*%`4GoQrb@dHu=~J&(H`Y`%+{&-bO_E}{ir>3qRA60#QL%q7Oq6F&v@ggcS;x$#b8a0|ab$yMxzBE5K z{-;wRAFsZ#abDQEx1v6JKjFZt^s~nb6cH5_6(|L0+Q!EEqO3nsgeoUdt5&fo8a0(= zx6{ua4PEv6^?5Ia% E)%7Am8ISdlt)qgLB^TY3K? zAh}Lm!;&{@Ze=CM_`3wp9dKjbOW|%q!@OUKJoB&WT9u}zB4xKnn9HEh`GbSs?;q?o zBKfO5l@;YGwOXUqH56yxtBAa)YufT6txi|3(-+HchA(#xnL8kS!SE=L5pfHK1g(AN zW<;c3--Jbg%D8LM9>efHV!?<|*C9c32gnbus;;b1*Vlu*E EvphFF zVuf?4?4?ML5iy=4 RU?tcK-s4cpu{+@kuhE)qdkU)xep7P^I}rK z##$A8p;22~nHLj$M-jJ@B6PJCT78pRU8mUX9V#0b Ek^z-g8*&4v&hM zU-M5Nh+i~1!E< wYCwPyLFL*i5ZBU%+OYt5<6TC-CpHcDNqo7E%=Ll3sl;4c1+a(Pe zjkcz|AU?FMh`Nl}##?z!%`J_MjY)gF!sic)^R|;O8ZBQW@dqof5pfIc;*V~u2t8LB zdM0(_toQ{(%tc5F#(9l`F>lBQ 8ca(pm z+-rE$qOsS%2~=zKrXsRFMiGO!h=rqotXMn-E)fI%nerxsQCD><`tsQ}{zhXfs7k-z zld^1V`l<=3D;yF#^9LWf=g`PSV v4He>+I@IQ- zz|^|xcK)!xv4u&huYQrWdVG%Gq>NSLVImN=8QF9r_Z$+r*giSYuu|w9PVOE;bybE6*H}lU<&{yAP z>}Fl{ryk{7XO?W5p0#>H;>rn$2Uq2M_et5+uhTw)&kr^g5$7?iNFK)QVbY(ECM_J9 zv3h*g2TmzV$J{!*pWhmd@EH?x{IAQ1ZY<8`_poa0dG)ThYWKcZvhlSPzt>{JLeyIB z)2hPG!{^a* SQJfhlX>NZ$NzY4lZ7L#U~# z&O5NAz|W~<^Nhl^ld8_{We!BzilWG0zH5^oH|5EZ+VVnEE|sLv*DL7jRn14;3-`Lp zqr%a&O<4wwx<#)w-D_J~OX5OqZ+okH=j^I&Gpi4Kw`yvUWi%M>I$TOBuqikdh0|q! zy0nE(t+@Twrc6bAExN6y7F|oLuEl`n1EW=BC96;R>JQCtKJ2DF;%+QXF_G#jisP=B zJ-?$0%BZUiMVTfX{$G_wNhc}(I9=bRySS&~#+m%6kj&^%d +K0Yb zN#{3FxtY+Q(^O~4JF@L~UzrxuZY309s3BDpRa~O{? W7Ha_>csZ5J)D9nJSZM2pf^db15?c&4zNn6s_mfy8b?^Q~E#BX(ZN$6t@ z`o=aUzrQgWTF{rGt1nKtc`sJ?d0(C!p~_8cC`^YxH`mvq)qo*B2A#I4wnB3&A2OGv zM&F0S1GCf_F%5YNb&ec;6zZ=1ldDi?#;G%7AIJd+ZHkBDI0R0X@SX$q9te97n+vfI z5o+Gs@W=iH&@sbkgM007wBayKs0n%(f*12--fjCD{*T?Uukke4|6fQ;T;BWni{rTo z5oI}PWx464nThi27Z3Qaw;ws=4@$GrLspO+YidpCd>WfuwFc6*7@H07RU=&V!q=bK z4d%tK`y}9?lSYT8(&!6vvf?j(pYYw`w6n)@uAV7MiLb1#uGclAzEq|8Zg0PNFFtv( zp}=WqGL#o9lfT>@vV2m|+?Q@Hb&B5bcJRDGAq(tcwz=nqUPSQU)M_+p>Y)4YSxJ&m zgTAFWF*4Hc&5$|$!siXRvD`U1>Sj}ObN=_AgyHf17lUPk6(=@TR#fO)je1q(#Id6~ zvRdQqil(YH7)ui)!xlT-oHqcWAO^A^zu9RyJkFNIUW;8YG{$2%V)&r<`pQ4`t*Na= zZ=M|&*2X6<=$tA)wb@8DWu?(;XNJiJ#&YmEO71-(+S@Me`-2F`6F0tvu^0g@f{;k} zVZn1=%s6wTK@VHC`Yl>uVx>z9Z`IW6jg)idFoXvaxhaB`B22|nha{g@<>r`;V`H!i zcO4wIbbNVUCaN$q`i6;5V`i+O)!3k_j$b!3+I@&QQkBB^s3nfsVON@}O7f1aj-4;X zcv66hP(1Yg{#j>_qV(q4vhjAqz)Dw=1x>3`V`97!p4lPDk#kIrKxkORB8QA5IqY-$ zVqna?z6gN%J+rclnE#Suw^yS^i;>L7Lk2!ARV8f6n?J>Q4M&&+KBhPUVP~wz(6FzM z=nQ12ugTi$5i5nA9B?ik9fK(S!&wa~9uqhCEMY!U5K?*LOya^(sVf{4m$dO=k-`@{ zCS3g)VHUc?tUU`5`^guLLdX>FHA1m|W}}KD&y7Ay!Kb;h829S FIGFQKvylgDX z0~L7EF;c!@Fj!?phXALkraWcsv;@y#$xFv_ |OZ z>!+k6f #8e(R(k$0IH#_3Oj MV<|cN#g0lzn zR*x%K>s-9g-9(jm<5w_2QpNwKE6xHHx&?|nMPDq|9h{f(`PTB9I)10u=*kM<7)VvO zOG^)WS8bhMxqVhscC_@)uyEcxCO*tce%;WZ;`c^9CI3KIx3+x$LCK|)w+oaNRkam0 z>Z%%5ZBcIh`F+iYU0RO08xmL}r1XgEZA?rz+MEPq3->K7RdoU>&yf6RQ`m9UjW4Q# zKC24~G+f$2Kdqzd`=}&ILL+r~@f}P|k4 L_ XLvpCTBn#XuYPPd9>NQa2^49?m zWMXEO7T%a1uFX%>6{WRQ6}MEEHkT>2c?wN>Bq{G1o}oM^qd-o2VS*F(L!7WL;)MMX zCw~Br3YbB}^ ;UWs90QyHd=B`+44>h89B>e@6R;kz2=Erb9?%c)B;bES50iwWMvRCyg1j^(xY0Jkeo1(v{{A<5#CfwFG^AybOHK0a%xR0X_z> zpK*P%>;E0Vb^X5p{}nx$hH1Gzp9Q?~h|R-pDZia5l4QP>M>>|Zv4OBuMGXxNR9|0D zSP_z-uCA`_p5JjE<7t4eQ$wfQN=cX0tLM}`yLbBq{J#gV&us&^1Gp}p2Rs5`zx}g1 zu c!hHh?IKw%r_Q20mhQ`BY|#qC~1$)E3_?5jUeacTmUm))k0daxbX z_q19q>Ct}bvlCipPkl8K<(~!|0k94e0nY)rJ+OTDN}R|2%#+`Iym<}kwY90SUgFJV zbhLR{aRFst|B)hgEv6tZdkS(LM#1xkn!t4^g_yzeF35E_g)DTSxQ~}n_O&x~yHF|V z&vszH;yPuY)T6w{+(hI1( Oq1c_C6vXnH<-FlGj6wl7y~k4A{#BIvw$e~AHWsB;~meN@75M9e)B?oR)VgnQ4OEbNj}qN_sR-N z`*uHtE^?G)vB(_eKAf;QL19bAQ^fZHl$n_+(Q+SJ@XKcu;W2{3fpgQ{q@zWTV9zmF zcG^N^h53>{cG3a$z`pcQ7wexO?^ghSz)XNG;BJ1zWB20~iJ=8ewdJJO>m^&TO}Ku` z3vx()zz1> N|ki5_>!qTR8c|XZ(7K877z&Fw!mZc6M#EojfXRSJ$(SdxUspp zN%9*@KU1#ErnqhMO>(1LE+5-HlH6EFC+wRLHa6(OzV&qN+BHdEgTX+pt*sI$PalwQ zu {>Di_S`&@^*h($eMl|ky?ENy}7595yUQ5&0|A@4~5kI`HQ9D{KkNU1dP%K4`9 z0^&MvYqOY-W_-JkLQ#ffbJz`AS;XaIJ}$|O`5##zYK1dhJ#}0vpY5;0xRw3$Ny0=K zI3p#Hbih5=8T%a9MY|5eur#`vs;ercI^=$X>!7Ln7RCMYO$`L)I@kr^7=z IRv2X0f7WH
?R#d`f{DI&v89=)FIS!G%0WV+_?@g_HfMd?BAcf2w{%_yaC)7bpr_M#E@ p!K`a5-q+wMkHrNxpTTIvA5 zA3>K+etHYyehF9y;Q0o(V?mQ0UuI~mlYGb0XWohnq6p7Xush2>s)Ouygq0qX4tL59 zed3pmqa@$Sl=Q)5N?tRSu &fLZ=KZI9 AUC%GPr$(X zl(27_5fgKHY=8EjvgqFkd&BLrFCIhK(j;u--rIK|f8@$Zbp5B(QoLc5Hc^Qh^OFht ziucrk>(b MtUpL*gzEsV=3M z4t8zPVNA`6H$d($0c!vwb@@q6mh~;RR}17%-@SkmmW(CEGJ8q_U c{A^*```Llfcx z#HEm%?eA-rzu6+cR0oKevDHqA%N;0rg(Kkr0Aa_Pu!W8`!2W-K`B{f+o80Ky#a|@f zwfGV9u9XK-vfpc+b+E_}-rUCIfH>&D{YK)Jxztd@b0?kT7p+*5L?1+uo9Fu+%MC-{ z*-3tCZK0fxJt<}7cuMn`02ohLzeXLvhyI}atiyGG4+;wjYHQ1u{-{ Y%yHDyvAvedOivfe-KibwN^ENdb38~=73QAw? zM47%50ZxR)Zq$Lj)CT^D{UyJK4#8X8Ngf*`*^leN(jKZKFOVFvGM-8P(UR;*uo3&K z9KIV59a49?Vb0xXvORp;h%pNO(+ar{16%?9u~J-STGBSj&i^ZZ*hATVlPPB{z;6;| zL5H-JjwT=Cc7}5QD1_`-O!-;qQr~8gAA=1kKU?1>Ki4ZZ4J1EJhOZ_rbCB9!)*&B> zj&0AW6)U^EJ_fmYKK3@iR+AZ%WKdU0`Idj0$R8>H!`Dc;;dN5tiW44`v1$UPz&3xz zhge7MlR}Sd{#{$BOO1q__LA>#-@x^Y4GRF`5BRGBIuxBfAoal(xeN`pR2X@+0dj8v zOaVOIkaF`g(;kZj3)e~|6>t3~;UooMIu$~XoHfp-I*|IIKUW7azOPYHMzYjDTk3%4 zcIsC69;v;ht$LL*H@{6rX@kcs5$LdEKzsa_ z-h|w4fPsKVRk4@5>7_o%a$LlWpYj{k?43ikfa=}v(CsZVNx6P1Wx_sjyS+&+my=Sd zl*UG;;5kOJ-|Kg67x62ds0h2smN89=Q?T}!eP9XtHV4AKnpD5JXm8o !0SN|0R(M!oD@TJBEW<0Pn3VT}TBz%C@o&Q%JGt zT?)H)MOsVaxJpVm)P?=YyUL$@bS D92i1QvkIJ{r zlG^souMSD;3>JUpats*XZ~c6Xunj52tN0B*N;~RD)rGl|?=TMQz;oM@gqxJJ9{mIC zQT)*xQd=wDG@S}IPNUijhZ(g!vG0^-)8Wk@T!q}c{>|&UJa=rHzw4Dr4ctHdE?ves zsIOKMeYt|@vqhvueN^q7O)2{pQ|OHlDOT=GW5hanF4d+)P)&9s)~D+wf4AVU@9=tQ z(T|6yXyfaWUs~GPZS)!ChrHp8ys_Dya1@Oia^)QN@Vs$2pw0HUmr`xQHIJrSxxcRi z-k!suB|7&Z(V2C`$Cz3Jyhy$8eM 4^4bFRFE{p|Otg6OxML{|Zq zw?Ur`M5la6dtxc2|MEF06bfnGhTG@865GA3tc)shQmFQ;52^8h3+a!zOMa<4>`n~_ z=MyQ+8?qgkw8AG<=`lLU$m7+E0G_kobsf4Y=JF_gVOlHB*LC1vxy8n56#O#!C{e_x zL_zSYUp5nczmCc;22fU9gtT^^o}Nyrsi_k1T6#uC2Ib`BP*H)BYT~a^)AykHY%$Rn z%i)*sNxt%P(nU)_?N{^(`l58>p^sJ{hs;9(j|1*pcf+gp)R-D}u(_h>E`DTYn|ltY zFTTa5^(olvBvIrcqHDWRFMCNJ^tm(^ltf&nLWb~5R2p%SYD3RZ>!tlfr`HgjU61 Kc9++bfW=J0=U2Yo!{VHr=-h{leg4$jww2@Mf*y{5sk|@ z&~XX=`ZH1P4}=A0qPPH}u!E+$VPE@o2mB6jZI|g?$UdSQpAdz7Y|=UYYp}h$&vC3! zF27L;!Fb)g7vK-cZc#*+rzkL=Cg>!3=Z8!T5|KE-iUX+X5FAnXjp!D9xZp?Vbebp& z^^^e_xvo;bB1-;(Nd6g78uT@mb!OG!iG98yJAr-P&MbSUzS1J&gRc7g#G)2e1
BRO9bAb-pD-O-GiS&U5&N>1kKx1otz-wANHAh z>7vbvi*7D2H2(ga!aW4|FTUnJqq(ZYSebaU0J8K2a39|V@IZeD&V3Ww^j E+wON!gAWP0=nImH^~D*j+`qMI>!o=qD&`IW z?|6irS!ZsW&4^WT9;+4W`ju&yzvXz0$0U}U$EE)fxxu$ns!O %~_d&$$n1DpMNy#E-r(wGMP=5i?Hd#PI*(gIa!VGUjpXwK=g@ zrMf9hsh0HOYe8}e`halcZ>(1Y&A@zv_ul^75+Cf9ejhCq6^GwHBY&{wE0-|A{5x{J z+poNM$G^)4G7y@7j}5;ESIEz}hVoT3Uxf!>{TUy4{(Qkzy8Iu!`b!12mmkW{7Wr{4 z P=V|z(<+uXs9p=P^U>?|F2Mn3s>wfx>(PmtOI{=_*gj-$o{ zcpc_vz{L*mBks2Wcz?$RaA$f(Hv7$uMe>Mx{t7}P&fYYZ I0smEE3WeZ#spgRKK zn49|stEAwIKWK0sv=LoP;t7BHb^23u)zgu(e>y>-bNbNLcl%QMPhXG@`TQl7*>6mV z0UfW^{NsxQJ4e(*K0WfHKbk|=CwHT$H=m%eZ;nbGRrVq5)lYkjew+L#DZrcY@P$mS z4n9NRjqj)w@xE@>>4OyfT6dB!7(#NlffT>gp0f5YqPY13DPh52igg)CSEu%*!q{NK zSJUX|F8>_R|Er-8WkcsktZT=~UL?grtnJL}Lvec+6OL#~Yg=)1`w+fBMB%faqv&grlpJF!w(xY$sx8r1Bp>r3lE+GQ_(MAbjzS z@O@6!fnDpD`l4)V$ciKRynj$4(|Zmj9C@XPcY5Qe))8wV6`uT%qGvw~y#`Sf^wFqm zsIDNL>3>v1{+62Cl)GdEr7pt$>HGl{JLf+s_U&ir<{LdRZHkh3Bw@`|KG#;-GcaI2 zqf(|a{Smb?P0H5 `d595WA zvZI33pntnAC-Ek}42rd>T%x_0H}8@Wq5+IOtyFgPE8+;Op~*;vs~zdKj~yOrsj;k( zwyark1@yfEf<*?ZP!L`4q3WM@QFU tb58!kIVT*mdLS^KKk!3ASNGUCr~eI_expJF literal 0 HcmV?d00001 diff --git a/docs/icons/privclass.gif b/docs/icons/privclass.gif new file mode 100644 index 0000000000000000000000000000000000000000..0939694ce08ad44508f6f017b68e46f0f22377b9 GIT binary patch literal 621 zcmZ?wbhEHb6krfwc;?UW|NsB|hUt&r{rL9oM)d3(_aDFd`{wV%RU+Tt-(Iu*bdPSY zqjyAO5)Xs%%*W4OT}r)t^1|KQ1$X{_`1|40mlNl1p1OGN*V KPj>%-QMrvo Z0aqv=U>zv((uk1Z`&AIsGhXbbm$u+t4({AM4 zoUwe*+pV&@k6t-)=GK>oZB< oaqPkBNogHUHno4%^Ngbh!J5dZ96zXj&rOBmSr#rWBn`?Qta4AyNBlN99gXZF;U z(BWY`VYPQZo4>HAqB^H51EW8i _+6gJ+{k9ar8DD%q6<$7gRGgrgar((tRfl{0+c)& nCbWOC3i z+epk2~OYT literal 0 HcmV?d00001 diff --git a/docs/icons/privdelegate.gif b/docs/icons/privdelegate.gif new file mode 100644 index 0000000000000000000000000000000000000000..d3aa8a65ef5277c6682f106de956da036c50d363 GIT binary patch literal 1045 zcmZ?wbhEHb6krfw_&$x{|NsBD3-0`y@q4k|5=ZZdhfm);e)ek3_S5^0UpsN`=JQu? zFQs0-|M=CZi}!XMxOD0IqaNMfjl0hJCs*%1c5Tz{a|>1 0-$^W=rQx9>k+>ALFmyU(xQe4H?EgI8Snr_bMJEZ?*H@RcuL ze=OZ_+&{Ty;o2jswjSAi IO7^wyn6fTZ3ixeXEp6UdL_BEH>IrC+CTH&qnA?_ zZr-r_?BoSIFQ;Fbx_Ik^d0S4LzjJZVqo>#39XfGwH^BC%mcZTCnHn)n99Wox5`H z=da%fPF&x-_rl%7FP}Vr9h%+{U)V8w*_Mra&Odl`_2jZ^p&5-&p1+&CaMzAQm*=cF zU=x^q`R1Lk-+rv!ekLNjxp&UC=}Y#m-gbJC-Qv>LIg{q^j4SB0@XI)R`PRnW=VJ5Q zXDr?K;^v1fd(Y(7PdmEh)~oK }Z+;!hSv z28L-2Iv@i;d4hrC6N4_N%!&qId44W7EtMCGCW#wQIi?e0vCxHsp-kl9Op6K4Vs;D+ zcRp^uaCVY-@DqoX8 Ynj67>A_%qWsZWPnuD}Kw%&~mCC`=#iz x;#2uhqQ1RGQZ~`_sezFVAOg+I?={@oQh6&3J#O_0`3qcQ@)kJ)ZdG+03e*WmVnF z^Bd>vIB@CF#g+GVc;49Hc ?*VhX^eEL$_I;S?t z;q-yc?{Bw0JskD*+0M2c_oqi=CRPT;=C|KGzkX&z#JAUn!n2y*T&c`&nEqh9%hwnC zj-0t!6=(DDL0?K)@6G+0dyidvbv}Rpw$;g{y)%~Yxxd46$H7ahx1WA_Dm}e?LT>%E z=O RU|^GzS5cL1XHZiY5LXoA)t{s+AtlYi9Tz=Gm|uiP)WbllqpPP+ z)n1a1MVG-Qb@J5dGyP4i^w=yDcg>x@Fn~iQhRG>ed)KlRqDdT#Ok55L&0)4WTUh+8 zU7DCIG@4uk%^kgCje~tTIqkw(n`EO*4C6yN8JXA^6cbM@GzwzkiQs5z?rCOXl94EQ h;J~8BE~;=s>7Yl8atNQ8$3hiOG3k^KQ#n}}tN|oJ0crpM literal 0 HcmV?d00001 diff --git a/docs/icons/privevent.gif b/docs/icons/privevent.gif new file mode 100644 index 0000000000000000000000000000000000000000..30db46df766c1b49bf86b168eaae03052ce8f292 GIT binary patch literal 580 zcmZ?wbhEHb6krfwcoxC%u)XR2<5$m5ME<&1wr2ZjNAHM}7w(?Ac<;oyoByBGKYsS= z!>2EQo@`jK`p~A`=l*@Vx#Pg4eaEjod-~|o^+*5z|L>^sdbOcGw|?5!19>l>J$(7} z{;?esvXVR|%-eGJOka3b)BFnAZ|^Vv{PMV`DW T9hkzICOvb -pxf=`s=6a*ZoWIz zncpzIeag~^VDI;PCrob+ez~A=_t7iqfi@{+eH(Y3%?r|f{`lU39rK<(ymj|z)7mD5 zrw^`IbuB!xslq?GCb_hC@3CvEx1X-eaXWu-;f{ls(#t3KCsj|)mk0WVVIY9wPZmZ7 zh6n~7kmaB_VPId_5Yg1!(%ROnB&Vz4>1!6;9>K)JX=TD-E7GpT#LsNOAR{z!GP4+i z=;C(8xe^TKMzh+PI5{=#92lIWnz-2oTv$x)gOr&WT)msw8CiG(d?KWetLrp#Tk1El zSi2t&_h{jAlx1VncGhE1P;F&n{J )Pg~o YNt8WsjZ2WhW2dPS@^dsgL^v3%0lNU+2mk;8 literal 0 HcmV?d00001 diff --git a/docs/icons/privextension.gif b/docs/icons/privextension.gif new file mode 100644 index 0000000000000000000000000000000000000000..51dd267f0f7fa11a657ef51a69cb9159ced8775f GIT binary patch literal 608 zcmZ?wbhEHb6krfwc$Uj>|M9Ey9p}}Y>Kwfz)@(n0{n3wKGk%}Cc< z_}MGFi~}D&eOa*j(7xl>E?s|g`Sz<#yU*=7aOu e|7!l#yEE=pbuCOO>kH3nI&$V# zjc)DB39o7_8sE)*uj)OkMz7}o|NlqM+ G+UdKH=Bu-=(c{a_gsQ z1uU2rG~KoM((a>IdQJQC8>WYKecrh1?6QF6Z*RPfE9eZ(Xq;m+*QfS@Z~c=GS3ax^ zTJ>w@@5E{UcO1MFKjq)+iEn)CAJ^&CP4Jue`SIu17hjhcRQy`^J9g6Fcl+M0-hSFY zsoJCbCeRHGWC6vWEQ|~cxePiW-Jm#OVBg!2+mtK9sNLMr*(%AH(%Bisn3 JRM%%x*_Q%!)u8UTgK6xaX& literal 0 HcmV?d00001 diff --git a/docs/icons/privfield.gif b/docs/icons/privfield.gif new file mode 100644 index 0000000000000000000000000000000000000000..cbf70f7a3fc3875ee62d9a4dacf3a088e60f2eff GIT binary patch literal 574 zcmZ?wbhEHb6krfwcoxXOU_A5w<5$tMZ>-sV+R-~==Gp&`pS{|2 ck;sB zs9D$d9ly5Yz@<&Q&uu;O@WZDsC9Cc&SbgZy^+%N(9`8MN?Z}y%6XtD6FP{*e)in3~ zzufw1b5DMnaOB&iXFs-|e^#^Q<&J}w)?fS6ec;Rd3;%W>y&~tgvS#!1OV55@eerwW z>8D3;f7FcHFk|_i)!R>>ef+a_)6>Nl|83lLHm;y^;^B`~T?=Do-)Ne+#58$p#rnq@ z;p=xFzH;Qut;^4U{r>&u-rHZLt#eY!di|5Cv#KYq*?aHM%@6qv)B6s6UU=bOMceF@ zvc9J6ue$cWTYU13e{xOrrl-$8{{H{}Kf|B_ia%Kx85jZ?bU-cw#R&uZ?1sRm=9bpB zHaUZU_EvpM9})YWCR<-wR(BDN9!-B`R#p!gogQ@)DOMGBHHIERZ+1g=D~7d!0-U@? z%mRW;3Q87Rw{bEu3yGSVF) U@oS6M zA3Ad8=A4!LcOSW$UOu6=Z^@K}JJxPL8J*X*|M-=-g3j&xFKyU)V)>?{I}TpXZ ~<8FFA!5q?GmgC)b2$HO1z)FWq>|KdHLBV_s-R -W7qZ^xtdtqH)rL+s;-4+F5gKh>zlEBk85Oca%u1E75ir{-(B0g{Nd9# zy|Xv%K71v)w13l{a|_oV*|_WMw*9Ab>!+2r&Z+KNvj6DiBWG>_y~!{@K=CIFBLhP? zgAT}kP@FKZFKY;IYHn$5Yvu6MkYR3b=1}JKwsGk75|9;ZQRHQ1XO;2{7vK;Tv@llE zQ8i=dV%PEww-YrK_mH=CRq&t38YmJjCMfRI!tAads%9?~&cq`ez{u3h9AYkVE}Vyf zQNq@-@4U1N7Z;=E)pj;hOKxsmXSP0WhVKk~l5TxI3@i+?J`E2w7#dhugj6aV4hyoe bg&D1>Sm4~I%pAO=LgC{f*1gV+3=Gx);f>!6 literal 0 HcmV?d00001 diff --git a/docs/icons/privmethod.gif b/docs/icons/privmethod.gif new file mode 100644 index 0000000000000000000000000000000000000000..71f882264291eb056bc55dce1c73f9b7cae1aa4a GIT binary patch literal 603 zcmZ?wbhEHb6krfwc$UHN|NsB{k6)edIDhH-BS-IuHQP_0ICpc??sJcyy*hRA-iJ?L ze$DuO^1|H}0V}UwUGr|~``!6_zJFL f1uPs=8=+o^_@AkcWyykJKdg;o5 zRcp4cO)Tnsaq-2=r>kFIe7)n~r6Xr +a6D*XPzhEogdr`Gor$?uTbJUCqDx;p&H8)4r=Su0A{SY{rsxbq4hpvo3Yb zTvysUr$(=)P^IYQgjc<@*Zx}f``z64DP_I$ZRY>}{pZ*0-%~B7olZY9f7R|9-P$kD zzFf+_TyN0u`SIt=H*SBp^5M;;Hxv9OR%uuJC)eygd}Z&kYjFjgZ*RQ)wfgsm#~*U* zr=^tj{hIlEj?LUh>mU7^|NHgCHwTZbSrxH*!n`dPb1zkO%w4_xbbkF5V7M_*11SDv zVPs&)V9)^>28t5~_8kowP0cN0Opz^}&217)zFjT;OyUj+rW!4Rd|Flv25}MG+;&V} z3=@(B_+7bU)B_m=<@ge%%`? eE&*(~qUwlq@F(Tx>i;Nlc!XZ6ca;`P?Fa5nK| z;ACVKW%g*2m2wwy3o_ 2xq2V9{v&NLh ymNqX2CINOIi^Cfn7?@djBrFazCbqIDYBX3REMswIvEH(0gHSS;U|S;tgEasMh7D{0 literal 0 HcmV?d00001 diff --git a/docs/icons/privproperty.gif b/docs/icons/privproperty.gif new file mode 100644 index 0000000000000000000000000000000000000000..b1e8074654b3fc0601b0302f1be7b39f5bf5eb7b GIT binary patch literal 1054 zcmZ?wbhEHb6krfw_&$T-|NsAs)*t!*_xJtBuWIMsU$g!6|JQkr-VrCx-Te0d|C%NJ z|KDc#`iGpnaQD>3dpizXdi?CwzT?+6?LK$##HE5n?}9|H1*;ETy8h_kiHi+|F+YC) zd+_viY3rPnvfkYKX@^c;e);mzk;$UQ>Y{gVUU{=ZaB^$$wHr64wgkWb^84*^@73E+ zf4QE%Zbro0!wx@w{k?ZEv8rpKe^T|Gy&( BuL?`9o2b8GLhYo9Mg{CZU6pIo!!;H4vHZhpI+=@Sqfn$b98`JViS z>9P6kH|{<=asK9nd0XypGDaQ4Lh`rPOfGiB|kYwkSxG`b>k*`oNO7)Rg0u+B-# z18g0q&0TV2$JD1!?uTbJ)z&xlObBqCXS85iLwZ6`cTr$+Y44wZ{}xYgc=YVeuU$%d zicHs5>iJt4eERnH>E*U%2iKiDb?DLAsx@mjMEZuOl=c1m{r~U3e{*)seD~}B)7PJ$ zz59LO_{HV>mT0EQ{QLiZ egvM@3* z%wW&~X$9p829DnhhMY%Cj-2iAu6$vlInmK)kpr_~;3LCh4M#P#Q*QiBR9>`Hk~>1; z#zz(RF58Sgfryzdj{U;ie_|$HYU1RyEas3fT)cpz)v;7;1EaHA3%^t 7xQ zt(lQk$EC6HC36D tS^a6kC&EH94>aBumn&dwYH7?jjd&y?(eQwQiA89WOHal@#wi@3Dl0lR)+n&> P$sO`(a%OdMV6X-N?RS8o literal 0 HcmV?d00001 diff --git a/docs/icons/privstructure.gif b/docs/icons/privstructure.gif new file mode 100644 index 0000000000000000000000000000000000000000..ed6d1ef68f8736e5c05137be2af0ff7714ddb85b GIT binary patch literal 630 zcmZ?wbhEHb6krfwc$UZT|NsB{k6(RzcjN2h?jGIVhpR-szrX#Y;OUy}ryac`8k2Z_ z@BIDv-H#LJZvJ}l`*!M`Qy1@@ym0sat*<9$h(CVz>ir&_-|zqIIB@CG^+(RdC-)t{ zwqW%k2IHCEUeEn_%=zsWiC@ouZ`ytC_q#uzZe4l1S>nT|FQu(>er^Bt?bY0GYrb7d zy*#gi@9oUD{z=t$my4#9^~M!+KB#{9Vd2N!hp%khb@t2cQqTF1cOShHo8O*N)>pXg z HH@xPxjsT^kdVHrL_XzU(fST zu9>&-#=*NkLo*uhoIn5Zxbw$14}LsZ{^>%@yZhUJzFe1EKP^0~>Dz{HpKp~Oxc4o+ ze8Q^ qrg}0wC#Qc1@2^f+LqyxpDEQ|~cc?>!rt)MtzV87gu*Tlfa%EZvr*_GGAsv#WQ z(cRoC%WNv#-qY2a!kl66Ka)XhQXUiQw9FtmQ57yG_N7gFp3D(BYvs9=`MKGZIy{&| zas!=qE3 _;~z{nwOo0cu4rD^0GYsjLS9HY&}k>n#O z <^9_#Rm)yEerz82^S71ck}Y`NGQz`RA_YP5iejl$gyCd w0t=&*O2!2Rm&vL;0yA$hJnU(cRXnwYAz4e1RXB9Zfenj}c%OG^WMHrc0AYACZvX%Q literal 0 HcmV?d00001 diff --git a/docs/icons/protclass.gif b/docs/icons/protclass.gif new file mode 100644 index 0000000000000000000000000000000000000000..0f9294292a9b5f94a281de7657b5555d06bb4a96 GIT binary patch literal 600 zcmZ?wbhEHb6krfwc;>?J|NsBT?|$SrO#k-o#@{!8qi5gvaU U(s18H{JnJp2FehrhQA?)+N&>)iqU6Enm=U(5M5 fY;zXP32Fyxl50uY&Kx0h7 BEa_ z?`}`~_jQeF^42G}kG*|#swZ3i{XYG#uh+de5exJS!%zc?KUo+V7+e^1Kn@4R2?P7q z2A3um22KuUhUTv3Rt|a5j-IYweO2iRO$>saEp2LIin69W%r1i5vwPJSD61@SVc{0$ zW?}BrkT%y`zfo9Rh>wBUOiR|0hv}r@z5^@__Ply>21}VX=$>`4;I(99Gf{H6wt-Kg ziPy=-fn9;?QL_XqqYJM!8#}wmyT^>I0@{ov6%2_E_j}6!DimmZXz1u?W)nFfFy+ks jL+qbB9Ih JYjEY8z0)sUGw};FY literal 0 HcmV?d00001 diff --git a/docs/icons/protdelegate.gif b/docs/icons/protdelegate.gif new file mode 100644 index 0000000000000000000000000000000000000000..b209f2d816d78188dbcd93907917d7a0ef34eaa9 GIT binary patch literal 1041 zcmZ?wbhEHb6krfw_&$N*|NsBD3+~+A6ZPXp#$vlAiyQQQ&G>zJNB#3xZ!e`@es@5B z!P>(;y1i#F-}-;v$UnLI#LD>oJSE4_{Mix^8B4gbm`4|&u-s;K7H|8YyZs6doR3x z_j&TdT|a;QzPRU+cYNjj^Xpc+uA07N@6j!{KD@sF_1lk==kIRVefIw2S1Y%i+_-M) z-ecE}pSyD{_tJ!U8y49u{ fPP+3%f) zFMoJ(?Q;5+wL8vCUa)iavMt*WUINA!!ziF$2q^w!VPs&Kz@P&%5|k$xINmWRa>{fl zaL=>hVAE3JU}|3=V-}|qvSL}Us7ElH;!KMVf^0?;7;-c>3bamE^yxBiI-JPZ%5C1D zlgXgT(lA?dhsMfcr2~9UzGi0{Ltdygs2goj;e4RvFx{n0&S6)vf 3EF6*!Fv!K9+hCZoKv#l4gfF7O*r}nJDO8B1BdLL*QL>%yjiiD@LlaY-SSZH> z@l#x!T?!Tw1r}#T G8VDV9AMK_f%j88HWS`1}G*;p8?0XW=!tN;K2 literal 0 HcmV?d00001 diff --git a/docs/icons/protenumeration.gif b/docs/icons/protenumeration.gif new file mode 100644 index 0000000000000000000000000000000000000000..cc96bb635982abc9d306f219ebdd71d29f95757c GIT binary patch literal 583 zcmZ?wbhEHb6krfwcoxO*cwfNXJyAbyWGrsbORt)`XI}KX1Nx8l`hR;p|JB8!{ye2m zk0*Y4Hsj0lneXqkzPnNX_FB!CXEVRQJ^%Vr>BoDW-`_5)>RI;bVSiQk^1Q~`_jY(b zy0~)tH18W596!9ie`%$~|MNy?78$<2Sp4<%g8arg54O9UKCt=oqt(k=EpDFOI=>_C z^~1B@UY)qPKlAC~sLu~q&1{HRGO_gO(U`_G=gmtdytz{O{&s73q0h$$edSS>Z8`2O znXX@-?fm*?)7KaKUYv;i_jS$9BQxK h=+*iB+9Zb^Gs7O8ZGCe4*rPpu?{7E1 zJe@hOGymnO^yk+$KR=Q3;`Xc`Z%*Ie;n|Zd|Lygmm*=Xh;%pvX-v0XbmZyg!|NsBb zKwqHvlZBCiA&Nl UeGH< Cw3dOhd6|LdLB 1d>tfmE9rf=H=>LCGe_~~Pf1c9Y zN2i`Wee~h={r~5U{yf?6e(!{TpKh+3o^ba}-}A@!UM^@{)@m^|U;ggVrVlT!J-L1C z-R)^#-)ySPar^!2$G7*FzkmPs?oj7~Znt-@?)5aqoY+)xdVOiOzvlA`ookyEUYv-% zee250RdruquX}!d^YrH6Z=YVqxf{HEdVl$pglFeFPwkt3Y{!I%VDAH)`d=)qdHV2H zN0rz4gA0FtdAw$N*6YVto?c$vlP%wqq4enP)mIzppFX($@9UaRXQte{ac+Kv?2pg) zvXVT$9>{z7?BR!Flm7qz&oIb<;!hSv1_ply9gw>~al*hpvBAHoxuvzO*;ZJ?L_*ch zrrn>JpF`1-!Cax;i&>CWhryd?;$&7A2J6M`@^gI{l(Z*K;^1%>5M?klYT{;7<8% +3`kU9um%8i0?sP{ literal 0 HcmV?d00001 diff --git a/docs/icons/protextension.gif b/docs/icons/protextension.gif new file mode 100644 index 0000000000000000000000000000000000000000..dcd07f5e1a673de3120e3f82e6f8c24f8bcd723b GIT binary patch literal 589 zcmZ?wbhEHb6krfwc$Ua;zT^Cl8yR=^L@jR6yZ-3M V_iN9!Lg_h0dD?)!JI?*07!^J4C$ zcekf`l;3>)@T_a`r57h+f6e|~XHfs-_OS_m6My~sRi$11?bFL;trl$?{)cpY`0(P| z)%>dtImdfV`@X)}RHIk(Y{v7RZ21pYKGf;e?J3w>yyX9{b-&}M{F`Gl_uamCv6KFK zRNVBffAV_bo3O6WH&)F1@c6^Dpy{RRr6o)MKVI`#)q9p!z=9gx+OMzI`P4l;y}s19 z{_#|cX}?zgUKX%?zRmo*GwwY*^UOSc!>^gYUtfHkIPL$3s~`S-UE@>x;Pd0ppB{Yv z^6X2WTmSa1mX$%Pe$D@VG3(O*|Nj|i1{8m?FfuSCGU$M80L2Ld`>KY-rbJ!_hvtsX zRu_iI&Q2o+OEX)BsQzXKQC|)Y5r*g)iGDm>3LL=(%8SILmd1-a>Mx2*&^8H(u`pKg zv~q6dWA); !TW$=&E7f#Oe`l$Rxz<6f%QVnvsc#lR2=N-PEp0 zi(iQGm23xlsCTmx6C<+(o1{U3LTkHh1k2B0^Nc1&4w;G#3JX3QZsO>Wahl*1IH9w< MpF`rM1P6mP0LI|@H~;_u literal 0 HcmV?d00001 diff --git a/docs/icons/protfield.gif b/docs/icons/protfield.gif new file mode 100644 index 0000000000000000000000000000000000000000..9ae6833e0821dae813c941500d1e12a88c7c334f GIT binary patch literal 570 zcmZ?wbhEHb6krfwc;>;tU_A5x|NlR3WZc~owYWhqdiIT(XaB!DpnrKs{iYkgqh?)y zetq+ocMndijNf|XVSk>|hu8NjH$0wu^3#VG*J`%B{P^up-=WVH>mS!{dTN@y_21Vu zPp@u~^IO@q_ubdm>$(qo`S$7MlMla}w>;W@{@MRqDVk9m-o3illPzDl;mP8Q{~o;i zGvUa$|L2XqzS%VQ*xT1%{w%!k@5PDO)9XtQ-TW~B!oPR7r#(B<)Vk%-vrm7Tw!eDv z@z2rQA15CExbO7SHGA)Ags-pO^mOj|e=)OftiSf>^~1AIZXa9LYH{h=PoSq5h5}Ih z$->CM;K85+ax5rL7}%#bcr-P)crdnhG&3qnh_-h&F=~m+3hMWFFj{G7vxy11Pq1*1 zXJa!EQk|e@ 39u6a3Zboxf5ogJLn-A(TF}ZO&v9g|F zu=S9ZlTv5aVNvF~wvVrg!<31cnVrSMnCoe?Fs};JTbCwl2D?^QW+sjq4K62+*_N}g T@^*Y=aB^}~kW%AeVXy`OyDG~U literal 0 HcmV?d00001 diff --git a/docs/icons/protinterface.gif b/docs/icons/protinterface.gif new file mode 100644 index 0000000000000000000000000000000000000000..a1b96d2c6a0b681cb6d65d30f8e212a3c2d29081 GIT binary patch literal 562 zcmZ?wbhEHb6krfwc;?OU<3`5aJyDAr^e*qHzj623`;VWm+ %v`?v$?aqRzOH$9d)n96>o)B hta8)1|Mi^~NxQF@vOm zFpg~@_}FOOyjstQ&;S4bA^8LW000jFEC2ui01*HX000DJ@X1NvaHVQ_1K!j%1YSl7 z!f_N1>3$&4x&a`esrtx(3nZYOW9aw+9|nSwFt7k*i6}5BU@#N{&QsbXpcV~;Vlpr` lA6`ZyJSHd3NCJW(HUuSx#?^k8=*4}04GVmI1%!PO06U9(O_u-w literal 0 HcmV?d00001 diff --git a/docs/icons/protoperator.gif b/docs/icons/protoperator.gif new file mode 100644 index 0000000000000000000000000000000000000000..2cb75ab8b05d4b8d65401c5270ae31836ce04f9b GIT binary patch literal 547 zcmZ?wbhEHb6krfwc*el+|Ns9VH!|+-iCWyCcX>zsy94@eC70hmI`!t=#}BXX|37bZ zVrBfD`%n7wl)S3$oi{TqY?_(4!sFfTX;-}6{(W6jyEikvaza4Ui(`_)xl^8eeY5H7 z>vatWa<`xT8M)A|CtH5zwojcaUd`L~!Z)!hWtF#W`d-U~El+MAtK5~6TR*k)SVdBC zw@-X!Y1^C+FRn#4U3bhm@$S{V*!+%NTUVJzuYUdTY-s1F=hrt!_y0V-zBFO#f8&T{ znd<^isVOXLwRmwNHax4@J*u>DOEkmK1d2adzz){|k)SwXU~gz(Xlib0ZRXKz>tYb# zXp!h<5NolW$Y9jRz~5wLVJ6PU*6zq4JZ*U!JBuZ^v8;k5n}MpDi8aG2DMm&+^NB3d zBJxaJ%=?8HnV49am6~OmbQ$!xxfsuwwrDhKGpI8$G8;B)i8`ssF*r0mIHRcFY}2g# S#-5k6Rj^5?<@@qR25SJ^#+_vV literal 0 HcmV?d00001 diff --git a/docs/icons/protproperty.gif b/docs/icons/protproperty.gif new file mode 100644 index 0000000000000000000000000000000000000000..55473d16e1321bc3e4cbcb5a165f51a55f9f07a0 GIT binary patch literal 1039 zcmZ?wbhEHb6krfw_}<0v|Ns9*>yP~Z`}@a@jJtcH7B}eC&b@zmNB#fTdA|N3?+)m% zS;^7aopc;aF~qSuL)@dr;_n%Q4 680UFSixNI0mLUEZ?`} z#fjKI|NeP<``x{HCBWA4%k}hc51ZeA`ThNF*3aMnPp>b1vqEsyu3Ha3{O_ETIk~lX z-HeEP2NTm1f({(NxOUx|ohP4OIC1FT*EMe*ukg1r@C^+6_UWZhKrk1(z|V(8pU#J+ zhWY<`z2U@6*`93qx38c7dQ^1w#Qx{kHwUkAytY!$e!8Z#0Qaw5N-tkNdUUob(l^}4 zKd3%8`p({vmeRPNkL%z3{BNu-dg$ck?WaC|z7%m}$JFA|njgRZww`HSJiX!D?aX6m zj_D~fEtuBu_OQdJSDO-IVqZTz`|9S@2e(daUDkNw{LN3_{{H> 2Wa z5)tO9PzZ2J_GH&-Ss@Y8nantYm#1ru=I3P>cwO3fRJb-d9AnnClQ?kWF^jXjXc*6g z$c9Ia99*{BJ_t@;!YeGKpvG|G(^D1(UXfKXou3^abO}bWaxgF~Xq_k0z;|QC1jh&b z3|Wj1J{Gi}W3*sq`!jP<22TS6qn83-LBoj&>MSxM0V#~@8yqsyc&rT485o(k)WY3j zk_{(t@v*f`TYRGLDcgp_PZFFH92y0f&hPLzaGOJjGe+eKpX|mT4oo^q4hDIDIzBZr IGBQ{L0HyC{fdBvi literal 0 HcmV?d00001 diff --git a/docs/icons/protstructure.gif b/docs/icons/protstructure.gif new file mode 100644 index 0000000000000000000000000000000000000000..af356a1db0b8e8821d2f6c94734b98354875e85d GIT binary patch literal 619 zcmZ?wbhEHb6krfwc$UoY|Ns9VH!{AxyYcwl4+i6ziyQQMbbBAJ67ih>_({Rj@9%G4 z-ckScarf_?zZ;Wy?(T{D{rb=STVGGi5Px?-|90w~Z?ETmJm&o8{h#-HbUxj>Qn>Bo z+bt6Pc}gc%#yc0E{D0o)*}2x=@BaLH{`>3eb$8C6fAjR(+szV3uHFA~tK`G$`;jYO zo_X;3?aa5^raC;Re)xImr+;79EUgtdc=Pp#7uW7C7yW!b?c;Ih&lh4oUyOO$@%+V! z*k!F2ukX$Le5>Ty%{}+ZA3SM!viAD_d&T$O-JUkjbbj>g8^7Kkt=jqK$EF|OUd?^` z=+xFD_rBaN{d6Jb)r41 q|f1D*d+M+lPf8BUilmaDT_QSMz?o*$)gT1{wgxpDc_F49N^SAhSVn!oYr_ zA-Rcxi=By~sk1A&h22vqqNBUHRg}j^sJ*AFH<8EI!fYmk_@rbe_GucvViIb6Oq@%b zOoDl0%-2fuNs91tDs~tKxdkSf?v~`_<@FFb$fV01Et|lnaym3tUq?jAi`#~g(b~>c z&_66L(o&C&TiGCrU!K)bPSC~A!JbWt+nLFx!eAkT2=5Ob4nqdU13i55Od>XgPq~?x zm?e~$0v x!9%B@<;gKug_44ZM@5qqv}A&K6gC{1vdDqK8UQ3G B8EpUn literal 0 HcmV?d00001 diff --git a/docs/icons/pubclass.gif b/docs/icons/pubclass.gif new file mode 100644 index 0000000000000000000000000000000000000000..1a968ab633207f47ec5e3130ec676f0d43598bb0 GIT binary patch literal 368 zcmZ?wbhEHb6krfwxN5}k|NsAQ?`}lTzVZ0okG0#6JX|I6_s!pL?{8g7z5M o8Mbf(8r2 zp(R0XIx!l@Rf3{yHW~z|JTT0ir6tMRSy-d6W0S){R=L^}M$Ar41`Kl)d3;!=d+P}E z3NrF(N$K-&bt%+03NkRT^J(+3Gq4n@_Qg(`W;COaS31~v-h5AKCe0;2o(q_n1avjl otTWmmAj8DX?Cr$DwQ<*;tzL4nyP1!AF&G}%w~yhJrz3+k0J6oL{{R30 literal 0 HcmV?d00001 diff --git a/docs/icons/pubdelegate.gif b/docs/icons/pubdelegate.gif new file mode 100644 index 0000000000000000000000000000000000000000..0a43eb261adccddee2206769150a9e2d964ed136 GIT binary patch literal 1041 zcmeH`{WFsR0LLG0>%7DvcU^bR#jQK%xKkV}(m0l0*4uHXy30!^gj%}Nd&*TyI9D<@ zvNh&y4`a+Q^=w|YC(LZ@1(C@%8_USsGcV;o=nv@o`{$R>=e{RT;ju>(oB$_ajSB4S z?2Hp9kP-_cv{GkSkR{361hPEe{IHnYgYvO@Za)p|{=Kq({`%wgZh2`S#V}j1RIsSn zG6dOdruCn`mi0N5A?Rh5*9uh`YLGWTss0+9mJ@aLUVa%@B$>cnO6Lh=jK;n?4p`kJ z(i_ZMTifYRixe5MrRCKb-9m56SjfdRc<6idjpwCR4Tg6{G6U4i&QHx4wEAB^W{d(@ zB^hF^tga&b4!;L5-Z7-T}_>mGjR`LrsAj0w1HTP=p6 nY#WHr%q^+ gG;Pa{2b1CXc-3NLHr%U>g(W;)*VhPC+v6*Ex zP-FXG@p~?n*#fqLNE2dST9qe{EH14un??M(;rA8oGL@#YXLNgeyP6|jUE82A8x~B< zYwL(sQ*W_s7JgzEGx!hQR!Byshxr;~;r!UGaRIEPgFWJ*i7Oee*qwt-{2`-h`HM&~ ztk68lrOhf$H?j(2lC!yx%rI}Jh0yC-d%kzi6_j&pBkOoVxk|~ZZGnvoOI2)95uMZB z$I8s1C?>T0-ch}Jk(f>XsWXoM&_`ar`!^`?fB$U2V*_Oc093$dm)QLTU}FM;Y~7-u zZ!RvVJ>D3S82*SOKk|uQ$4DFjJjJUNE5%{l03dpr?X=G|;1!ZWM5S82cE}uf5XFY^ zQ9x=zr60x%=XpFVoTrMO)1vk~^FfQ9X$3hR4uJ=NMeS?HzyRy)X^(@D9XcY=$|_zs zSmNS;LFEkHcP@3L@-V5Gxqf>ev^C`97msuIrMf~1QhX%SKhcEJKTffKNw}%Nk%$Qq zd7kJadkcv;8xp}&xLFhSR`TXVl3grTdMLMuVDApotZUHj_$OW=i!UNB787i>XOA5w W!S3M>-YMZwV($I|X%HF(1pfiQ@~q|n literal 0 HcmV?d00001 diff --git a/docs/icons/pubenumeration.gif b/docs/icons/pubenumeration.gif new file mode 100644 index 0000000000000000000000000000000000000000..46888adef937f09868b1aff485010ad847625183 GIT binary patch literal 339 zcmV-Z0j&N (Pbf!&&RmbLYrp^5KtqjHc?* za^l2s<;7g>)_nBlnc}@q=gfSDY)AL)rrf+_?%03v-ihkZZ{W8?^yiuK(X`h>z|#7Zt2TuZ-Jcm?a$@ITH?{E>B?vC+=aBHilvcv^yZk%qA_}lr+8dCZh@Qc z+k=5-L-F8_pNL-BziE|zWSN9&dR{ztS~=^`gneQ_?9_R@tdifjNurK)@7sl*iE#h_ z{{R30A^8LW002G!EC2ui01yBW000JXK%a0(EE !iiKn z4i!jX__&S%6r$8nkQg@~(+QQv5-foTK=WC#T3itp2L%roH9i4gVq_mXCIcrPD;kPw lY;FuaM>a1!czOUcM>;JygoYO~M -8eVBIr#a7&Z+tGuQt>#pOO#}?0x>=!f)>{|M-0G_pcwfZ(ZrA@_Mnf=Gpnq zmrw66=yp4>bIF?NS=s)YSxFvu&-Bf&kUg=fq9;S?<*K@;53avl(D?lEy|qmWUk~J+ z+Bg61(Wa*lZ~gr8_}GpKpUzCF%yD~nsPq4m`d=5zo}Y+(*xvO2|9=J?K=CIFBLjmu zgAPa@ MKlJCh@8yFl7ixFRNZ06KZzOwPN+z zv<(MOw%xcR)*I23_It(+G5s19o*Z-S8h+h27B({_t~PU7W=)Mr<}8BjGt3 =_Q{DAPKYq>lt?WK&MZn5;OW*I#-&3bo_v!Yh%ePmOK&_XZeGp5`ugJQ8r@p0fCbZnrk_qf<6HlvnK%)epr> z{uingwQcx+G3(OH39sU({EMCR*Qf5`lT%MVJpS`{L6a^97CgNFGw z^IuPVb20bQulc`y>mR?{_b#mKvrp{ <89)!|G(D#{&3~PuhqXFt$#GZ zZ{k#oX?JJbD^)N3^x(63{D%Mk|1%64p!k!8k%1wQK?md_P@FKZw=@Jc1#&W&G 0fUL<3?)XqgsXpxwn5}&UoFGrw} zp=^gSE5D_rwY18jKnW>z4j)miKxbWpepgm2Kjl-+3OeG=EZUBDAGz5-V`O9zlv8v% Z#l^^Np~1s+_cM3E&u2`ke^{9qtN|Sl$x;9S literal 0 HcmV?d00001 diff --git a/docs/icons/pubfield.gif b/docs/icons/pubfield.gif new file mode 100644 index 0000000000000000000000000000000000000000..5aed17576f4493ccfdb12f7a8a55fa2cbd74041c GIT binary patch literal 311 zcmZ?wbhEHb6krfwxT?dzU_3K=_Klfm|8KhSJ8IVTsr#N)Zg{-)$iwF!e=of7Z{p#P z_ul^M+WW3)`>Uh3Kh|z~su8|^-|45`C41!jR$hMoYyGu9l^dR1diL|uvmbqjKJU8z z@&Et-hi-nj`r>!@fiGtt|J;A$y=n5+`4|4pJ^5+Ek#CDH{;OF3xMuV7x#$1I%)U{x z<>i{a_kda$$OVc&Sr{1@bbt^DKz?Fi3vrlM;GrYc@1gXp(Sy%ktu684k_eBco`+3u zGHjR}lT;k%iD)!t7%(bu_c~@WFz)DYZCE9=iP_9ulaaBGLC`~irKODBPllz(&xwyg Nd(!k7GhG}RtO2HXg;M|k literal 0 HcmV?d00001 diff --git a/docs/icons/pubinterface.gif b/docs/icons/pubinterface.gif new file mode 100644 index 0000000000000000000000000000000000000000..c38a4c46a9a7603bc498664c294c7c06a713e555 GIT binary patch literal 314 zcmZ?wbhEHb6krfwxN5|3 ZVUQpY+eD{&7vsdijaq#l?{g*cFIk#xtz9|cLB$xCr-*j~8#$(6M z-8^&oPXD~kdyZV)fBed}{il;l`>VT_0BvC)4k-R)VPs%1V$cC82l E)~P;Pd*c`+O~Z`kDLHZ`GDkm))4&({9xIoBQn2?6teCjWv##q^{)3 yhlKQmSzza_!jd?!NB&pZm x!AK(QVR|IF|6^@a~=O^W*cU zPpJB?`{m-RrckHo(dc?Bd*+zuoTskl%;w{) 5%GwFo3C0s(vtkd@g)-Cw0$= z&;S4bA^8LW002J#EC2ui01yBR000JNz@KnPMEF$1 LIW=%7c@T_3Mdpi3m6Y) bKQTH02`MrHm_Hv1IXxz!LKYr1LO}pKPRg(M literal 0 HcmV?d00001 diff --git a/docs/icons/puboperator.gif b/docs/icons/puboperator.gif new file mode 100644 index 0000000000000000000000000000000000000000..0ebe10a7ec532625741cc8668b1126f2553cdc9c GIT binary patch literal 310 zcmZ?wbhEHb6krfwxXQrr|Nnols(WwVeRM0i9NPIQy8maw)c<$xKM81hkzP3=w|;8n zu9VpPj#Fw1>9hZrw#_+jW|+Ayuy9Ls{=)w$tGs;^tFCyvC9d#rk1DlH*wSzy_n4$` zQgL@-(@dZEO5=!S;aSa*3+-&v_nJnpcFZ}^d90##ZzcovfZ|UUuwgnN667ZawqS>b z0uLQ7ey+tr7X$^&y&alvbTCQyF}P%C2naMD{LsJ{u_oi`k&A!ZJQtmLF?n6|?Szd1 l$~7_ D1)D@O#GT~o%bXk;tN}%7Un2kj literal 0 HcmV?d00001 diff --git a/docs/icons/pubproperty.gif b/docs/icons/pubproperty.gif new file mode 100644 index 0000000000000000000000000000000000000000..dfad7b43006984b0d27846a9c6d23d9bfb94ec95 GIT binary patch literal 609 zcmV-n0-pUxNk%w1VGsZi0OoxFqOZjN|NsB}`$kSweVyO`>u#*1kM{rn|Ltf^PgLme z{K3f4!N}5ZVM Gba^OtU*~#SN;C}nU8wy>*wOldhGfC z-?B2qlNCRgDag;+-oar{IxyDd|Io<7(&G5ItfO0aS?~1wb9H=)lBYqQGU~fAU|e1H z+i8`AQ-Et%&dS31 i;r~82J1CqnCh$bzU0~3xIK4DP|np>HmqGY1XMO=I;CB?f-vmTl3Ob zwWfhgP*e8dgO;77(Bl94x+41PunGqd`1<`&JwatwPwmG`u9#ST!Em?A@zv`8`r>l@ z{{E(-U;O_6j$#x`PEp?J`mC+6`TPHJTtULg)AG+&+`UxY+0;u*PN0^6jF3?6!$9=c zXSvDci*ixKxRuk{ FMI-(}u{I9ZgYI|Ii=*|Nj6000000A^8LW004aeEC2ui z01yBW000NRfPI34goTAAb!|{YZy0w+I6hs3BUVlYm|${jbV@vg87~N21rtDPTUBBe z1g$p)F)j!pEl+VPKX57pIdcY54;nTISsZ#DWI7%MUIuv&DGeYNd=ys^S|&mZ0eD3+ z0Wb|qMl4f;J4oCD0s#SGXK8j#1B5jJ>;V@;Gztny^#-X40001lf(S(f6vP0ZfH7E3 vFfl`d%ECSk3!*_-aK^ Am}xe((G}uY&L6G3OIA#BZnGdAnKS{;jW_hkyQl{pal#iQn)3e7+F# zey`4-_kX^ eH{!7h~?6KmX}M%-b)&zODK8`Bv%2V=k|!ynfp8 ze4gq2kH?)qEd2O(=Gz~eetcf~>GQ3U$dxanR=jvn{qR!i &%1CPg |qcFzfuSnN3rm2{>v z$jq9|;iMv{Ai~7RyQIn8jYC~(l?0QVFh8$khXseZl!o*UIbME#ec^qK0!o6?Ym`q| zI~(W;%X?Z1IIiJi6E#)S)zmU!Z92#Fkc&rD+sxLL^>!2AJ2B1=tS+qLCcFj<667bb vva>O?uq !GFSrunAz6B literal 0 HcmV?d00001 diff --git a/docs/icons/slMobile.gif b/docs/icons/slMobile.gif new file mode 100644 index 0000000000000000000000000000000000000000..5edc31f94c61a7a50c3285ef00dcbe86e8690974 GIT binary patch literal 909 zcmZ?wbhEHb6krfw_|Cw<&~QMZ;eZ1WEjW;{;6MWq9XPP;)QA7SKm7myA1FTxMnhm2 zhky>qZ=k%uz){2?%pv2kVSxi92Q!O8!-mAe%}h)j784dUxU@4Vuq~MJz`> +3{L1~0m@lAUkDoRe1;9$K%)+a)R?z+epkVS_+3 literal 0 HcmV?d00001 diff --git a/docs/icons/static.gif b/docs/icons/static.gif new file mode 100644 index 0000000000000000000000000000000000000000..33723a92be0a7b2b9fc8057fb6f9a2a3ee729a7e GIT binary patch literal 879 zcmZ?wbhEHb;QNUQFEiC% z7n}SzyY0{GNB_QlU>F6XAuzl`K=CIFBLf3JgAT}Bpgh6A;lm)$!85^uv7wn=Tt*;+ zVd3FsMix6Afd zk*vw)JdXGPApH;j#U@kM7;k+&W>y z^wuAltPk$pT~`~kchkxZQyRXfGPHEeZ0eYOFP8aU0_X7)rxq_>)-z%8ruFMDoj-H> z^qK2dF6~Uw+p%NUy!ne7dzQ|dzj*Jy{qIs)>l%8FB+6~*F05{x+}7UT(%Sp$*RQVL z1$(z`+`VV-`swY5cWvHL=&-5K`^3RLyVou`apL5QScdH>+WX>V>l%9-nkN1E^JnSO z73=bxUcUi?x988Dd;aX{#Okt|hW@>K_pi-%S+;WB%NNhr<-4qD%f55_c6Z-`|Ns9p z&=Dy9WMO1rh-T0M*$Ijh2KJ_gNS5f9*0wel8;SOwRxe)eu-;y0H~Yyw>~``!!FopR zvOZc2t?JC;`aM?e!YwYI){K*##LWDIqD=f|C@AVGi)hb?W)k3Z3_TL97O1MibA-#o zAjFl8V}^y0xu&Uc#AHKeR_|zOK7O4ZTP2On(E)-oa_vl_QkK50k`CbvjSLLd0ER== A(*OVf literal 0 HcmV?d00001 diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 0000000..340c1aa --- /dev/null +++ b/docs/index.html @@ -0,0 +1,14 @@ + + + + + + + Novacta.Shfb.LatexTools Documentation - Redirect + + +If you are not redirected automatically, follow this link to the default topic.
+ + diff --git a/docs/media/LatexComponent.png b/docs/media/LatexComponent.png new file mode 100644 index 0000000000000000000000000000000000000000..04acf390efd8bb79ec2899285dc0d4986b432eee GIT binary patch literal 108004 zcmb4q1yo#3uqII?5Q4h|cXtoY;4Xs%cXuZV?l!mtXMn+7gFAz}ySwZ1=YMbaowIxP z?cQ_dOy9bFyQ{joZ&iI=9ikv7frNmI00RSqBqb@T1OxLf76#_69o*Yjiqmet+w0#O zMpaz1N%frr%`0!N62ReR|aY@Olq#C#mTO1A|HS&+kntMh`j+%uAk>=r w=syo@-(gc*^KLR|XcUu_D_KtVx~Y&K;GdS9YJhq~$`Ze1*%=MkgI zb*3QN)S@5QW+=ruh_P+27or3n0>^KDTG1HBy_`QZSUzro-*%qG;~ rWJZ-{RB3ad97~_*HQXloQgq2=!#=1Kk&+_`WP#x#t z8us0ix?5tkbs6ryw( ;j#Uj6tXEYDQr?SpzX~~r;}xZ5Y3~bqZr~T?Omiy zl-h)N$J! z&E$DiR8;~WBjAh05Vx(e)Xfr916M7@63*KG2hx)3^;PQXV6IoyM`E59_tgn==leK& za@u3le3c|pbt6L44e5j>*(e57R7 u1_P;MO9Y=_sovkQ9&s3qBA?DzJ$!j3oGVJhERM-de0U` z*_cUBrd8fJtv{-8571S$0+R(X7LR^UE0lCA;`X6E(++5r2=c3m&?rqnmj{OByQtI% zUo(L^#U>s&Oq7dq +!@qht6 z&?d=&;jGI>gr~JWm@7XUAsK`(QB7gMhT91nJ20WpcVBIwA1DOwUdQ3`Rzumb(l*Xl zIuRmOpdz!3=c&|)?`E~qNtPM>{UwHxxF*_>rnFKa%q451ADu)qhat{FimVv}C+wT~ zCqP#Pe& Ztd<=C#Ya@sEEPVCVGYY`C;Xz1x7g-mTM6O)pwtQ~3~VI0Lj zjOhK9^$zqPwIF>s_IT9(ZCEgG_JD1H s%??Z0e}vT0R47?mqk~+a{*{^~g_+J^|5uqjCh< zZ5BM<(q%F_=i&mq3-nk>57&typF!d#f%07YOh!#zo2y2lg>eQN5rmcrZKu(RaXRLu z*JC!3ODvH34R=r@>qzOO(twXlj1{|q_N-4 qatron9!FN2VR;Be{0EDn(B^ zkhI{!&9qoSTT>z#HZL=jw~#RQPF(s0H*$N|w}KJ0To}4e+!1)By&QF4Gd$v*Qgg(> zQz0Lky+VyCf4bd6!dXKCo#95%s0zb*M6a%4%^Cf9;sF@RP%NNUg>;z7hr~Yf@NF0W z-RhrHH;z%bSm?2o2{BS{=#&(7`(t@EIUUFq8@4120Jg^G?kXM +KC;VS`3T6&M*Ak&%(p<*=}@ z)U~aAjJHketex#E(iaxzf__8{QURT*UAnHCRlt!(`W5Fhe}HW>D@)M2HvVH>19R+| z#Z{0bN%;Q!cUi+mQ4-IQ&LjNg@6mW5D3%~?0$7H8be;mq%U0f;>(AS`SZ%L{&4`3b zp6;{Nv>?>Q*%4 RNB;D8%9kIDqA>P`@wnd$rUG{JC>y0HAj$=De>I~ANA5o zX~KEfnoi)hAEn>FVhOj@N)jzBkMaGjPUpdmYo1+0_9!Zj9?9|rl^~&r-VEb+S6E6L z#qJOzhLy?pFc3?Xm7ROZ7YZ^J6I@QIu=Is0T|G~h&~}aSva@3fnNP3}6Qn;GK0}(S z ZkN)Vx{fyYNnhQ8WEC)0%Z!Lzm zYtT@wOdq1;&DU68`p)nhFQaA3+S;qD^J j{e6?I%y}k13JnTF?^V*krP&gnnw)S^#=+n~^ zW{uN1(`DGuv91XnXR0+?Jd=9U$$`GZ6}NHdShE zN54Y@{XJU=hguV^IK@8o^DNlbaEH4}ch2$Xwsh#ldk6NgpF?rqrFu5XGtbb34OXf{ zX}|#K9>XyIbAy;gzJFX=m=)F
| zpw2aqn`3_S@!Yk}AZQwQT>EzoP0g={>?tY8*Iwd7S>tBLxcuqjCo4nVY^XO`lhoQ` z23qZbI|1F(rHQ__Tob*EjjPt-t~cGe%4U~TEpjGs^P{(%VY`}p0h=Te%oS?-gYqBun3$;YFy`&Rmc@@sZoDG5UI%mK(;00Rr^A- zE>Xduq{^h05`PRssNzLSm2ibE`Og)xdq|7oF>qVtij`Xtr&rVr7h EU=r!E?9fltTN+c73Q-Vu~}qZ){W0pmqA zJvKO(2%SOUU%edgrg77fH@gX%quW;Scw_96e0sBE+TgL`#<^9uQHgRUcSk4_2t#PB z_DpKBBnaMOR^98X34=9mo})hh)zYU1ZJ(_HkmXG2*LQ1cYZ8(8YZrIh_9s8YbCP9D z^!3-4nq2w$_
TB(eTbkVSM7C}1kbOyCF5$%7&(fV^b-k#;H*P|Zi zDA7j<;m%I>r$+i lO?jm_PTqpdY8pf*${ss>21ffWu);J5;02z7}2SOXuF7;Ig& z#rX6HR;~2IL`e04awf|^*z9B9u1rJ#gw5^EWbAd%Mss3V2|)?PSMnqijVDOJL &g@U~_w_DC4Qd z$&tm^w(il2Jy%^2(2O6GaoT$FCM;i{iK>Bw4034$)-E0Y!pv19hmi=C^>DuW*{Og8 z8m&wP8)q%f=mcr %$u0Z+e6dQrQ#F|YT52rI;LX7vXs{7*#3$Fpq z;BRt1m`>+)1&~d7w0KeGKDPgY-5E{|ikFv^EG#MEb2*$1#h{H&a}8{Mb>&Ic09xW} zjjJW>?H?*EE_bhe44ch|_qpn-dzZro_%jMFYuXLR%n%W*OZHgb2M2zw*2n(Ur5dP@ z-os>-LKK@@r2?|d0EPDFN)hnA!*T2M@54v@5d4nU?P*&qQie(cEv<&Ze`D3CaKPEg zes-}yO@imzUYjuXMIBorvSW=ou%Ndb8$F~wX}T|g@(ZC`Ea->HWG#~s32jU&@F%)B zX0D+IqwS7S#Dq?iP%X)WN`AJOArxF=&PDezsC~6UBbSfR)Gg>Oj%gA#PFT+dvnbvC z@`#7IEu$~w-b-UTrPm$Gt;IsPQdJQ~L_m !!%O=zL@2bgxUjW*|@zi_~5tuLij_xJKrj_}6o_#1)Ff8l^Xc+ctOAkplh z{e{yZCPrk(kN>a=14DFvQf>WVwR0dZSw_c@)1oy}>7zOyuvgUP{teY##gmG#^R@#VoF+Zs?EaXv7` ze= xA=FBLRgx1|LP8_GPYW$N_`^4T9O?avAF!vO`= zrKCcHh=p>-w%K3=smPKX9UTpsu(vOfiz+KCo0}hlqDJ0~?m0 TFG&7`)t4zfi<^3*TZ+F8uIX!xN(eR@`B=d8}G&H~;q69{lb65>3 zP%9=NAn*+=2lZ~O*>O4I`Vqy8=jc~xe5svQAhmi*DR6nC{+n~LLU>HWhCX$gd>sj6 zi7Q+6`vtM(r`XSV?Pz_o`_A9l5 I^~mImj^RL&35 ziGSS?7{C2i!0bMo&0wTRP%V;`jBH5%s6O2GVHB}5Hg|je<8cP$fl-I2=Ay4VZNQc7 z?}~e6;Y_t-di`BhK@<+F$9c9$M7}lt-27nL6Uygj=R*YLjays-ggkYSy2IwHp8v88 zQ}mEx4a`g19DQ5EnOZty>10*{e&WN8=x%NrE0W8ZT7wt8!2NRi9+B_ n+kvGCecQgpk&DKPa=37b0=j>9e}>QC{IB% zC@TXPqA&TPeijCxVc$M1lg}xkp=XG*Y}Jek_h_jn5u|Sty}CClDWV(Nk<_(~(=Fac z$2d3I7FdW^vXRruki0tL!1eP@l^ZUjVj=qK;MkxVsMn-L0SJx+do_@H`RV4+3 bepX=r@wC3 z%T>!J3aun;m+f~)vyKJ}Hq&&x+4Ce-qU}z_2Tpvg1f9%Qq8lrfN^u*4B}%uaXlit$ z#?9Gj*d3A?!uZ>^oB{{O+inQwTh6c&7~(o-yyj~J+=yCqL(&wL9NoB5-st9h0SMN0 zmlu`P#~&;7*45_dYQ&@i?`uf8+!ZYhG(q~3^jO=*Sk3ky@8>UhZ1lBMM9mmZro^cL zEJ~pt%Ams*0mQsbLU)z(k{T%}nP1|RKM$9*M@bhKQT1&UR|Fcq|CSsZt@8Epv>PI) zk&v!Q#YC>+@C`-pNO5pxX>9*xg {6+JP&ptpE;V7$y`^*isxmEns3=jt zC@l^x4m(r#yRJLTpPS>b2kQ?jvpbgyMU2ppLG;m7&dZLc3rwug_){|vh!9q>yjS%x zEBL*Aj6Gu8^$Gab3xe*=Lea!_kN-9;2!R=**hEolv`I!A>3b@p-lQXf6$)nJq@)q) zvd~`X9Muw|h5Hm@IIp>>z6-3j9`Ylc`_l${hlJ-r<(2cGA0Ygr+u+Pi1eu=VrF=!L zhK-&g-K2|AMI*!HN z`R$__Bhby;()M~mD;XD4nPRHH;@KKlKN@WqPq%T$TI&2gY<~M)Xfq!*9Uk7~WMU}# z3}8J|?6);O;8VRUZ(XfFKklRFD>fV>>2-mm0mws*5GO5gbHu&3_KvchwWYmv-E#)W ziGgye2(ERQEyd)7!@qgC#55c$swHP8t7~aRqhO)MMaM9z?kUii` n#Z=ux_0Q|WAAdfEU!s1Eg)j^N%DyD;o3l0l9O8>a$Dx7B(lRgr rr6RwWZUY&GQ$?# z#+q{h#sPEY6_PeCAr;i=fxze(9g@dOT&=*IsCOZmaq4HKfo|im!UBV1{Z7xS_R>Xg zwIdnFYGz-1%YVQ;T1J rUWOF^Bkt{9sTL%Hgx6dQ-oz+zOQMKdJBfgulx$2&3Hy&|6jZ{-ERhxCgr z(nyKvx+t0}x};=Ddc=t5Y@(Zx^rj`nTUFrC4OVB5r-eU4&B8@%>~G4aP4cj)m+jFN z(0AgQmiUmEX)A3=KFjwyUD!GN?vt)3vVDR1Q%9OOc<0qBXX<0}K14HyA9q>n5m{*V zeq(fy_71=oAybM{z0anaT!BJPqn6(2{Iu^@1c*a*q>b^)^G}RR)(ogSySmV)l16pp zqT=hG>x>)z&Fy|a?NU2VMTUVd;J`B$9G1O~P&l&u>hD%`04^LH16as_gF7n0Tlo_a zrGP(c07S}<%#?z8lAG&mTUN3X>SqcZ0 rRdlprCZ;wB$R=fl LX_pu;zD4 z!Cg= KaBm(x>FDVzG)kyd*t<()DB@%&QYC)L zf7Cxf7A@=jZg1Q6wjxwrH!F7%yd~7WA%&h&oLZHeJ2{CNZl! K@(sNU9l>q2fZ^7odmrg$G&-dVy@TK2%+u(7p|j3fZQ>NA@mc8 hjkh<^(mdY8F6pJJ7u4v3iK332GQe06=-NQG-)`74TLjOq_o%888gG7 zH_{IZcWjs|a5ZUNJuYfyIyXgG?Cl=;LFH(Rrj1k!N~o}yj*cXIt`tH v^I&F*HnW8YY{ZU8|hf1R+R?31Ev0K&>t?PB^Oqr zmg?8FN8=M5N|OCN8$k}#-}r88{DYDi--_;1qbM#8DMZMmV$OrP3?aa{;eNXK=v4EJ z>xY%<;8G JFY>q-9d~PD+O1FXiF7mTgv?J~`cI>`$T1nFGC2B0_S56DkUCR!6 zIv`JU1BqTff{6_mDMtx+gh>)cmUshEx^uN$BmO$mg~zX*_x4ta+}+)HT%A({1NB=7 z{)xT_YrfN4-DDXGDW9|3S44=>ptAd|9ASZp&gXypdiRlm0fZ2>HkYB$KckQ%?JqTt zPfIbMv>X{6_Glq=!3a@>By%LB$(zV}ghdz*NDfAB?p%MgmJ6?7v4844NR-8(L3o7xabgeN>j#aWxR?q;U-MpR4 z5y_wg iyBKHOJ&^jISH cpGEoHA_=68pdx^}CjU z_tgbz_3n)%c BmWx}cGoACQpXpI8yjMZ%9GOH%OSRKu-hc2R)suU|agd%XGP7J&7 z4gT!gI76q22v%02DRgNYfe9kjuRx7~(~Jv!l*s~1;~M5GeVy6Y6`R5SWQkW 1-wA+}QoMa;)m03AQltJCumaidzc(#E% z_!CQ5J!*s+u$!6=)j(%)HgoP#ZIDq$eu(Y?HcBW~gK)X_J)xeJHnpnzw+~D0b1IG{ z>MClIqtl1#kdV=Y=}4#a-@*uq*)U!!e|MmRg~!a;HqFQr)h*w^J?m)Dxjf#UZFlv4 zmvWMz^fVT;vC%hwMY;2Yr0Psq3!Q+Jo*?F`W+frlbMTf~K$j^`jqtC$3OcalX8uHx zDi40@a96eypdq%yND(e6F*!jLcOkNreq@jlyt<~zfi8v-xMd*QsYF-elpXt+twfz- zVJbyA3Mnyr4-yvtT}4Oro-L)XGT;8(A#`xS&WaK9gQ32$SXZ1TqSrTFxnvDfODR=L zCrOHAnL5|XQksDwMuy^5X$b#8JrIvXGD4}8RHK{@kwABs4Zxn#RhdmACXA6`)9q%< zh>aQ|3Q@}$3;d!2i8eG#NKhe(6*7c(LQu?^0nYI#8#Um7Hs=N8^6}ELD@l;1=H|xM zjYU4NB?x!)7v*B}q&`p4Hp1NUIPnntYQH^f)M(MoQ$fK|LmWSFISs5c0<$4vRyMIR zR}LKhB!N#jG6 ^E91H=~;y$OtIw8>FV8-x#o~ z*`L;rL)6bvVj$Hl-!p37 3vV~%laEL*(f${MC3SlcUn%y+T9|iwzez?tRsR^AR1a@?`ql- zn#C;o_FK-E!hV+oJ4eh%iLah)0m4~I;B7XhMvto^1u7L9kR+FX??%?j^h+ajukPwa zxIZjJrpA19U~ZD?vTet?4RVqL%9G&3Sg1pEdMUGc2a~x db7s@ZP@esDIR_z2*8D0Kt%Jmk2JRx~@6!oO`)Qw0ok&_E_~;YR7_EeK48L zX H1S(B;*yf0IxCK=&+f$o@DHusOT*a`K=G136z2&l0F7kKHbt z$=dH}fy{BD8tGp91>N~ZXK6}XhbKZqlZeAVLRmjQ4&zR=2spLE{u860Uc5$|AOp=d z)rI*I&gCvCXX_b;zQ_C<#_yWNS;Z_{C+ve?1`}V-$gpHhG&F%@S?mn|y!S_bw+;XO zevO3~s7odf6p(&rd6rNte4+8rLzq*vy99k&+}_i}dK>7oNKj-Nf8{{t-97mQSJ6~b z!~^E_v-8@uNN^{t%Z+tcm$#M9 zn_Tqx{S}TWVvvbM@FZvGMK>^@MzlP^bWA9jE7$LAWWLJDq&x-npqKzc`tZZ{FL~Gz zWV JcDDFx0j&4M^2d&8cAuon3UeX68I4fslx+TWOXx! z`=w{=9opG)$nkCp9EWnk`x2}iU*4%yrV{|ts1s9TGec9A6;zxoW@siJO&PVH`BwP; zg)m<^)SuOgKU)>fKT1 5M4JL*Co QeL1*2z{n>NX77N;_-khzAUU)>-icPk#GkvQM z-6ZItTT^9@(wM`i9zS-0u ;?BrAf6%Vy _gI^&nW$lx=g6r1Uf zn_Iit&{xO3Oa@#sZSfc5T5UsycL)~E)-B^KSb3{|;JV%UFPi%&sz`kH9%-T0$4{Js zugRo8q#oZ9_g|GD-@A6GwW#SNC1?}-e=hz@{6l&7O8i@d5%{0ET)Z& mIy=yZ%_7S zF>6qS$x^5Q<;mi mr&$ift%eb#} zxk#4Ax?@6p4V(TIrEMpyQw=Y34(N(}RmVgblQdqj(CS@`$D16-t})A1j%`%UeWe)R z(;{x8QS-Z$bt+9?wDL5mMgJ){`9R((dGErZKSO6nm%pXK+S*cioZjxSm0nq=1TKG* zR)eK;x&1!Jz6xR*l-^rg<7AShFx0bj&u+)G^G{+FjGu2eRuE(bu`_G>5h5`&l!>~l zMsFg<#0Q)ULt{ANW+*>%abWI-Xk^|yj~aRSu`eWvy4RM__7BAeW8`n{tZxefSq$Bc zz%bo*2mA&Oj_QsAf5p00_u4228BLTJ)(HeN{IKoGz~&pP6I+1cE%;p;7{kv~XYZk- zV;Lwm_MRFm|51Q6+;+she?2iPed1WRudfM9cYAaZn&>B UKEgX9SGW+fIy1bF#^U| z>E_sIS`-&tmN_t6=^rl5XZ-v+e@oU5^Eyiau8tRTP1s(s($}js*%qf3m2Tm4GC#!D zPh7-;#qR#Lv}Wi|QW9WrnO5!baIGp!#~ytDw8Mb20Mg+{M33(w b1{YF$kL6HD#1r0Fbc0JOldX}dV4C>B;o@vlE&K4a^WxCn z8xE&*wJ