Documentation

  • Demos
  • Visit our website
  • Contact us
  • MathType

    • Wiris Quizzes

      • Learning Lemur

        • CalcMe

          • MathPlayer

            • Store FAQ

              • VPAT for the electronic documentation

                • MathFlow

                  • BF FAQ

                    • Home
                    • MathFlow
                    • MathFlow for Oxygen
                    • Style Editor
                    • Style Editor

                    Style Editor: customizing the Editor

                    Reading time: 5min

                    Customizing editing behavior

                    The General Editing Preferences dialog allows you to customize a variety of editing behaviors.

                    Customizing the toolbar

                    The Editor toolbar can be customized. The MathFlow Editor comes with a standard toolbar as well as other predefined toolbars. You can also define your own custom toolbar configurations. In fact, the default toolbar is a customized one, containing most of the symbols from the pre-defined palettes and most templates.

                    To use an alternative toolbar, you must first have defined a Config file for the custom toolbar (see documentation on the Toolbar definition language). If you've done that, select Custom from the Toolbar section of the General Editing Preferences dialog, and browse to its Config file:

                    To change from one custom toolbar to another, switch to a standard toolbar and switch back to custom, choosing the new config file. Alternatively, choose the new config file, then close and reopen the MathFlow Editor.

                    To update a custom toolbar, you'll need to manually edit its toolbar configuration file (config file) first. Then either switch to a standard toolbar and switch back to custom, or close and reopen the MathFlow Editor.

                    To return to default settings

                    Choose the Standard toolbar from the toolbar list.

                    Pressing spacebar will insert

                    You can choose what gets inserted when pressing the spacebar, modifying the default behavior. Your choices are to insert

                    • an Invisible times after an operand, space otherwise,
                    • an Invisible times always,
                    • a Space always, or
                    • Nothing

                    The most convenient spacebar behavior depends on whether accurately encoding the underlying mathematical meaning of an expression is important in a particular context.

                    In many situations, the underlying mathematical meaning is not as important as the visual appearance of an expression. In these contexts, most users prefer the spacebar simply insert space characters, as on a typewriter. However, MathML rendering engines employ standard mathematical typesetting rules to automatically add space around operators and other constructs. Inserting additional space characters in markup generally produces worse-looking results unless there is a specific reason. Regardless, touch-typists often find themselves hitting the spacebar out of habit. As a result, users may want to turn the spacebar off entirely.

                    In contexts, the mathematical meaning of an expression is important, such as material intended for symbolic computation, automatic answer checking, etc. In these situations, extraneous space characters may cause trouble. Moreover, in these contexts, adding invisible "hint characters" to resolve ambiguous situations is important. The most common situation where ambiguity arises is determining whether adjacent constructs should be multiplied or whether they represent a function application (e.g., does m(x + y) mean "m times x plus y" or "m of x plus y"?). The convention in MathML is to resolve the ambiguity by marking the multiplications with an Invisible Times character. Thus, users creating semantically meaningful MathML generally prefer to have the space bar insert the Invisible Times character. The option to have the spacebar insert an Invisible Times character only after an operand is a convenient compromise allowing one to space normally within text tokens without modifying the overall editing behavior.

                    Make "fence" characters non-stretchy by default

                    Check this box to make inserted parentheses and other "fence" characters not stretch by default. In MathML, fence characters marked as non-stretchy will remain their default size (i.e., not growing automatically to cover the height of other content within the same parent element). In order for fences to grow to the expected height in many contexts, the conscious insertion of additional expression groups to collect fences and surrounding content is required. While this is good practice and results in semantically meaningful markup, many users prefer to instead turn off automatic stretching for fences.

                    Make single characters italic by default

                    Single characters will be inserted in italic if this box is checked, and as upright text if not. Since single character identifiers are traditionally typeset in italics in mathematics, this option is primarily useful when entering chemical equations where single character identifiers are traditionally typeset in an upright style.

                    Make uppercase Greek letters normal by default

                    Uppercase Greek letters will be inserted as normal if checked (i.e., upright, not italicized) or italic if not checked.

                    Recognize common functions

                    Check this box to turn on automatic recognition of functions. When this option is not selected, you must manually control how characters are wrapped in MathML token elements. For more detail, see Recognize common functions in the next section.

                    Render differential d in double struck

                    Differential ⅆ will appear as a double struck character to differentiate it from a regular character d. This also affects the exponential ⅇ, imaginary ⅈ, and imaginary ⅉ.

                    Recognize common functions

                    Within the General Editing Preferences dialog, you may customize the way MathFlow Editor groups successive characters into MathML elements. Character placement within MathML "token" elements affects several things. Most obviously, it affects how characters are typeset:

                    • By default, tokens containing single alphabetic characters are assumed to be variables, typeset in italics.
                    • Tokens containing multiple alphabetic characters are assumed to be function names and are typeset in an upright font.
                    • Similarly, digits are normally typeset in an upright font.
                    • Finally, symbol characters require special handling, including special spacing considerations.

                    The MathFlow Editor can generally detect numeric and symbol characters, thereby automatically tagging them appropriately. However, alphabetic characters are more ambiguous. When a user types s i n for example, does the user intend the sine function, or is it three variables being multiplied together? The MathFlow "Recognize Common Functions" preference gives users a choice between two basic models for dealing with this issue.

                    When recognition of common functions is enabled,

                    1. MathFlow Editor scans successive runs of characters and compares them to a list of common functions.
                    2. When a match is detected, the MathFlow Editor groups those characters together in a single token element and adds an invisible semantic hint character (following the token) to indicate function application.
                    3. If no match is detected, each typed character is assumed to be a variable and is placed in a token element by itself.

                    In most situations, users find this editing model most convenient. For mathematics up to college level, it generally produces high-quality, semantically-meaningful MathML.

                    When function recognition is not enabled, the user must manually divide alphabetic characters into tokens. Alphabetic characters entered in adjacent positions are always added to a single token element. To break the token element apart, the user must enter a non-alphabetic character. Note in this mode, it is necessary to enter an Invisible Times semantic hint character between two variables (e.g. "xy"), since they would otherwise be grouped together and typeset in an upright font. Consequently, when recognition of common functions is not enabled, it is best to set the spacebar to insert the Invisible Times character. See Customizing editing behavior for more information.

                    By clicking the Customize button next to the Recognize Common Functions checkbox in the General Preferences dialog, users may define their own functions to be recognized by the application:

                    When a set of characters is entered into the "New function:" box and "Add" is selected, the editor will recognize those individual characters as a function. You may also remove previously defined functions by selecting them and clicking the "Remove" button.

                    Linebreaking preferences

                    MathFlow has two styles of automatic linebreaking, both of which are controlled with the Line Breaking Preferences dialog.

                    Enable automatic linebreaking Lines are filled based on an algorithm that balances filling the line with keeping mathematical sub-expressions such as ax + b together on a line.
                    Enable dsi-linebreakop linebreak style MathML operators that have dsi:linebreakop="true" have special breaking behavior. Typically, relational symbols (such as "=") are marked with dsi:linebreakop="true". For the purposes of description, assume that all occurrences of "=" are marked as being dsi:linebreakop="true".

                    Applying font styles

                    MathFlow allows you to control the font face, weight and slant of individual characters or entire subexpressions. This is accomplished by applying named styles. MathML defines 12 generic named styles you can use. Only the style names appear in the markup, not the literal font, weight and slant information. Thus, style information can easily be reprocessed via the use of XSLT transformations to produce style commands appropriate for a specific composition engine.

                    To quickly apply a style to an expression, select the expression and use the mini-toolbar drop-down list of styles to select the desired style. (Note: Custom toolbar shown in this screen shot.)

                    This will wrap the chosen expression with an mstyle element, making the style sticky, as explained in the Working with math properties section. The working font style (i.e., the current default), can be quickly determined by looking at the drop-down list of font styles in the minitoolbar.

                    Alternatively, you can apply styles to characters and expressions from the Font Properties dialog. To apply a style, select the expression to be styled and open the Font Properties dialog from the Properties menu. Select a style from the drop-down list in the Logical Font section.

                    At the bottom of the Font Properties dialog are two checkboxes to determine whether the property settings will be sticky or not.

                    • If you choose "Apply to each token element in the selection", MathFlow will set the style on each individual character within the selection, and the style will "stick" with them if you cut part of the expression and paste it elsewhere.
                    • By contrast, if you choose "Set as default for selected expression", MathFlow will insert a style change template as needed, and set the style once for the entire selection. In this case, the style is associated with the entire expression and not the individual characters within it. Consequently, new characters added inside the expression will inherit that style, and characters cut from the expression and pasted elsewhere will lose the style. Hence, this is referred to as being "not sticky" (or "non-sticky").

                    Was this article helpful?

                    Yes
                    No
                    Give feedback about this article

                    Related Articles

                    • Structure Editor: controlling style properties
                    • Releases 3.77.1 - September 2019
                    • Releases 3.78.1 - February 2020
                    • Style Editor: controlling style properties

                    Style Editor: customizing the Editor

                    Customizing editing behavior Customizing the toolbar To return to default settings Pressing spacebar will insert Make "fence" characters non-stretchy by default Make single characters italic by default Make uppercase Greek letters normal by default Recognize common functions Render differential d in double struck Recognize common functions Linebreaking preferences Applying font styles

                    Making people’s STEM work more meaningful

                    MathType

                    • MathType for Office Tools
                    • MathType for Mac
                    • MathType for Microsoft 365
                    • MathType for Google Workspace
                    • MathType for LMS
                    • MathType for XML Editors
                    • Arabic notation
                    • Our products accessibility
                    • MathType is online

                    WirisQuizzes

                    Learning Lemur

                    Solutions for Education

                    • Blackboard Learn
                    • Brightspace by D2L
                    • Canvas
                    • Google Classroom
                    • Moodle
                    • Schoology

                    Solutions for Publishing Houses

                    Solutions for Technical Writers

                    Solutions for Chemistry

                    Integrations

                    • HTML Editors
                    • MathType in WordPress

                    Pricing

                    Company

                    Careers

                    Blog

                    Contact Us

                    Buy Now

                    Plugin Downloads

                    © Wiris 2025

                    • Cookie Settings
                    • Cookie Policy
                    • Terms of Use
                    • Privacy Policy / GDPR
                    • Student Data Privacy
                    • Compliance
                    • Powered by Helpjuice
                    Expand