Reference: Difference between revisions

From iMath
Jump to navigation Jump to search
No edit summary
(Page deleted)
 
(108 intermediate revisions by the same user not shown)
Line 1: Line 1:
It is recommended to always use the iMath menus to create or modify iFormulas. Nevertheless, sometimes it will be necessary to fine-tune equations by editing them directly.


All iMath commands start with the string <code>%%ii</code> at the beginning of a line, which will be interpreted as a comment by Openoffice. When the document is recalculated, iMath parses the string and generates the formula that is displayed. The generated lines are marked by <code>%%gg</code> at the end of the line. Editing such a line makes no sense because it will be deleted at the next recalculation! Always modify the <code>%%ii</code> lines if you want to tweak an iFormula. Formulas may also have lines without either <code>%%ii</code> or <code>%%gg</code>, these will not be touched by iMath.
There is also a reference section integrated into the Office help. Press F1 and enter "iFormula" into the Index tab of the help.
== Elements ==
The following elements can be part of an iFormula definition string
* <code>symbol</code>
The name of a mathematical symbol or function, e.g. <code>x</code> or <code>a_n</code>
* <code>unit</code>
The name of a physical unit, either preceded by a percent sign or enclosed in quotation marks, e.g. <code>%meter</code> or <code>"meter"</code>
* <code>expression</code>
A mathematical expression in Openoffice math format
* <code>equation</code>
A kind of expression which has the form <code>expression1 = expression2</code>
* <code>expression1 : expression2 : expression3</code>
A vector of expressions where expression1 is the first element, expression2 the second element and the optional expression3 the step. By default the given interval will be subdivided into 20 steps, so for example <code>x = 1:20</code> will give a vector containing the integer numbers from 1 to 20.
* <code>symbol [ number ] or symbol [ number, number ]</code>
Accesses an element of a matrix.
* <code>#label#</code>
A equation label, used to reference a previously defined equation. The label MUST be enclosed in hash signs.
* <code>list = { element; element; ... }</code>
A list of other elements, enclosed in parentheses and separated by semicolons
* <code>*</code>
If the asterisk is given, then the output of this line is supressed, which is useful for hiding intermediate calculations.
* <code>{ option; option; ... }</code>
The options can be any of those described for the OPTIONS keyword. It is not necessary to specify options (you need to leave away the brackets, too, if you don't).
== Commands ==
After the initial <code>%%ii</code>, the following commands are possible:
* <code>READFILE { "path/to/file" }</code>
Open the given file and parse the iMath commands in this file. This command can be used to put common formulas in a file to re-use them. At the moment, the path is operation-system dependent, not a Openoffice URL!
* <code>CLEAREQUATIONS</code>
iMath stores all equations and functions that it encounters. If you want to make a fresh start in your document, use this command
* <code>FUNCTION { hints, symbol, expression }</code>
Declare a user-defined function. <code>symbol</code> is the name of the function. The expression declares the arguments of the function and can be either a single symbol or a list of symbols. The way that iMath treats this function can be influenced by function hints:
** none: No function hints (must be used because iMath requires three arguments to the <code>FUNCTION</code> declaration
** lib: A library function: It will not be affected by <code>CLEAREQUATIONS</code>
** trig: For trigonometric functions. Tells iMath that this function will get special treatment when printing (e.g. <math>sin^2 x</math> instead of <math>(sin x)^2</math>)
** expand: The function is to be expanded immediately. Useful for functions that are really abbreviations, e.g. <code>square(x)</code> will be expanded to <math>x^2</math>
** nobracket: The function does not require brackets around the argument (e.g. <code>sqrt(x)</code> is printed as <math>root x</math>)
** defdiff: Differentiate the definition of the function, not the function itself

Latest revision as of 18:01, 9 July 2017