]>
The content insert mode allows you to insert Content MathML and OpenMath. The two languages are very similar. Therefore, most commands can produce both, MathML or its equivalent OpenMath. Which of those two they produce depends on the element the cursor is located in. There are also commands which force one of the two languages for the next element.
The content insert mode is similar to the UCD insert mode.
When you insert a character that is
not a command, a ci
or OMV
or, if it is a
digit, a cn
or a OMI
element is
generated. Various commands let you insert elements. If such an
element can contain further elements, the cursor is placed inside it instead of
after it. But the position after the new element gets remembered. When
you hit
Command | title | Function name |
---|
Terminates the mode.
Inserts an apply
or OMA
element
and positions the cursor inside it.
Creates an Identifier (ci
or OMV
)
with the given content.
Creates a number (cn
or OMI
)
with given content. At the moment, only integers are supported.
Inserts a bind
or OMBIND
element and places the cursor
inside it.
Creates a bvar
or OMBVAR
element and places the cursor
inside it. In some situations this commands behaves specially in
order to make it easier for the user to handle the differences between
MathML and OpenMath.
In MathML, the bind
element can have more than one
bvar
element, each contains exactly one variable. If you
use this command inside a bvar
element, the cursor is
moved behind it before creating the new one.
In OpenMath, the OMBIND
element contains exactly
one OMBVAR
element, which itself contains one or more
variables. If you use this command inside a OMBIND
which
already contains an OMBVAR
, then the cursor is moved into
the OMBVAR
. If you use it inside an OMBVAR
nothing happens.
In both cases, MathML and OpenMath, this allows you to
insert the bound variables by doing the following for every variable:
Hit this command and then insert the variable itself. For example the
following can be achieved by
x y ]]> z
]]>
Creates a semantics
or OMATTR
element
and places the cursor inside it.
Creates an OMATP
element. This command is only
useful when you write OpenMath.
Note that in OpenMath, every
OMATTR
element contains exactly one OMATP
element, which has to be its first child. The OMATP
element then contains one or more key/value pairs of elements.
Inserts an annotation-xml
element with encoding
MathML-Content
. The the cd and name have to be given
as first and second arguments, separated by a newline.
This command is only useful if you write MathML.
Inserts an annotation-xml
element with encoding
MathML-Presentation
. The the cd and name have to be given
as first and second arguments, separated by a newline.
This command is only useful if you write MathML.
Inserts an annotation-xml
element with encoding
application/openmath+xml
. The the cd and name have to be given
as first and second arguments, separated by a newline.
This command is only useful if you write MathML.
Inserts an annotation
element.
The the cd, name and encoding have to be given
as first and second and third arguments, separated by newline
characters.
This command is only useful if you write MathML.
Inserts an annotation-xml
element with encoding.
The the cd, name and encoding have to be given
as first and second and third arguments, separated by newline
characters.
This command is only useful if you write MathML.
Shorthand for creating a lambda expression. It inserts a bind
element at the cursor which contains the symbol
fns1#lambda
, a bvar
or
OMBVAR
element and an
apply
or OMA
element. The cursor is placed in the
bvar
or OMBVAR
element.
The apply
or OMA
is remembered as a cursor location. This
means that when you are done with the bound variables of
the first one, do
apply
or OMA
element.
In the case of MathML, it looks like this:
lambda ]]>
And if you are writing OpenMath:
]]>
Inserts a prototype
element in the OMDoc
namespace. This is a child of the notation
element. It contains a pattern which is matched against the
expression.
Inserts a rendering
element in the OMDoc
namespace. This is a child of the notation
element. It describes how an expression to which this notation
definition is applied has to be rendered.
Inserts an exprlist
element in the OMDoc
namespace. It is used inside a prototype
in order to
match a sequence of expressions of unspecified length.
It contains one or more expr
elements.
As an argument, the name of this exprlist
has to be provided.
Inserts an expr
element in the OMDoc
namespace. It does not necessarily need to be inside an
exprlist
element.
As an argument, the name of this expr
has to be provided.
Selects one more element to the left. The next time, you insert
an element, the selection is used in a way depending on the type
of the inserted element. If it is a symbol, an apply
or OMA
element is inserted, containing
the symbol element followed by the
selected elements. Otherwise, the selection simply becomes the
content of the newly inserted element.
Removes the leftmost element from the selection.
Forces the creation of a new element for the next character
inserted. This is useful when you want to insert two consecutive
numbers, since it prevents them to be merged into the same
mn
or OMI
element.
Forces the next command to produce MathML.
Forces the next command to produce OpenMath.
Makes shure that the language the next command will produce is determined automatically.
Inserts a csymbol
or OMS
. For the cd
attribute, the first line of the argument is used and for the
content of the element, the second line is use.
Inserts an arbitrary empty element in the MathML or OpenMath namespace. You can use also this command to insert any non-strict Content MathML operator. (If you have a selection, the element is considered to be an operator.)
Inserts an arbitrary empty element in the MathML or OpenMath namespace. (If you have a selection, the selection becomes the content of the new element, since this element is never considered an operator.)
Inserts a arith1#plus
symbol or plus
element. (Depending
whether you want to use pragmatic or strict ContentMathML)
Inserts a arith1#minus
symbol or minus
element. (Depending
whether you want to use pragmatic or strict ContentMathML)
Inserts a arith1#times
symbol or times
element. (Depending
whether you want to use pragmatic or strict ContentMathML)
Inserts a arith1#divide
symbol or divide
element. (Depending
whether you want to use pragmatic or strict ContentMathML)
Inserts a power#divide
symbol or power
element. (Depending
whether you want to use pragmatic or strict ContentMathML)