# Configuration

Interactive Ink SDK is a flexible toolkit, and its default configuration can be adjusted to meet different needs. This page lists available options, their default values and usage.

On native platforms, you can access the Configuration via your Engine object. Refer to the Interactive Ink runtime page of the guide for more instructions.

In the tables below, note how the ${KEY_NAME} syntax allows retrieving the value of another key. ## General Key Type Default value Description configuration-manager.search-path string array <empty> List of directories where the configuration files (*.conf) are stored. content-package.temp-folder string <empty> Location for the temporary folder where content packages shall be extracted1. If empty, the folder will be placed alongside the corresponding content package. convert.convert-on-double-tap boolean true If true, double tap on a block will convert it. debug.log-file string <empty> Path to the file where debug logs shall be stored. export.graphml.flavor string yed Defines the flavor you want for GraphML export: possible values are standard and yed. The latter is recommanded if you want to edit exported GraphML into yEd. The yEd flavor is also more expressive and thus truthful. export.image-max-size number 4096 Maximum width and height of exported images. export.image-resolution number 300 Resolution of the images that are exported, in dpi. export.image.guides boolean false If true, guides are visible in the exported images. export.image.viewport.x number none The x-coordinate, in pixels, of the viewport origin to be used for the image export. export.image.viewport.y number none The y-coordinate, in pixels, of the viewport origin to be used for the image export. export.image.viewport.width number none The width, in pixels, of the viewport to be used for the image export. export.image.viewport.height number none The height, in pixels, of the viewport to be used for the image export. export.jiix.bounding-box boolean true If true, JIIX export will contain the bounding boxes of exported items. export.jiix.strokes boolean true If true, JIIX export will include the detailed ink information. export.jiix.glyphs boolean true If true, JIIX export will include the converted glyphs. export.jiix.primitives boolean true If true, JIIX export will include the converted shape primitives. export.jiix.style boolean false If true, JIIX export will include the style information. Note only dynamic style will be exported, not the editor-level stylesheet. export.jiix.text.chars boolean false If true, JIIX export will include the detailed characters information. export.jiix.text.words boolean true If true, JIIX export will include the detailed words information. export.mathml.flavor string standard Defines the flavor you want for MathML export: possible values are standard and ms-office. The latter is recommanded if you want to use exported MathML into Microsoft Office suite. export.temporary-file string <empty> Path to temporary export file. If not set, temporary file will be created alongside the corresponding content package. lang string en_US Defines the language used in the editor. renderer.debug.draw-image-boxes boolean false If true, the bounding of the images are visible. renderer.debug.draw-text-boxes boolean false If true, the bounding of the words (for text) or characters (for math) are visible. gesture.enable boolean true If true, iink SDK will attempt to detect gestures while writing. ## Text Key Type Default value Description text.configuration.bundle string ${lang} Configuration bundle to be used (name of the *.conf file).
text.configuration.name string text Configuration name, within the bundle (configuration within the *.conf file).
text.margin.left number 15 Margin from the left of the part to the left of the text bounding box (used for reflow).
text.margin.right number 15 Margin from the right of the part to the right of the text bounding box (used for reflow).
text.margin.top number 10 Margin from the top of the part to the top of the text bounding box (used for reflow).
text.guides.enable boolean true If true, guides are visible and used for convert and reflow operations. The default line spacing is 10 mm and can be tuned by choosing the .text class font-size and line-height values.
All these text.* parameters only affect the “Text” content type, not “Text Document”.

## Math

Key Type Default value Description
math.configuration.bundle string math Configuration bundle to be used (name of the *.conf file).
math.configuration.name string standard Configuration name, within the bundle (configuration within the *.conf file).
math.convert.animate boolean false If true, math animation (morphing) is performed when converting math strokes to typeset. The math animation requires the renderer to support offscreen buffers
math.eraser.radius number 3 Radius of the eraser tool in mm.
math.eraser.show boolean false If true, a halo shows up at eraser position.
math.margin.bottom number 10 Margin from the bottom of the part to the bottom of the math expression bounding box (used for conversion operations).
math.margin.left number 15 Margin from the left of the part to the left of the math expression bounding box (used for conversion operations).
math.margin.right number 15 Margin from the right of the part to the right of the math expression bounding box (used for conversion operations).
math.margin.top number 10 Margin from the top of the part to the top of the math expression bounding box (used for conversion operations).
math.solver.angle-unit string deg Unit of the angle computation in the solver: It must be either deg (degrees) or rad (radians).
math.solver.decimal-separator string . The decimal separator symbol (usually . or ,).
math.solver.enable boolean true If true, solver result is visible upon conversion.
math.solver.fractional-part-digits number 3 The number of decimals in the solver computation result.
math.solver.fraction-mode string decimal The way the solver displays the results: decimal (e.g. “1.5”), rational (e.g. “3/2”) or mixed (e.g. “1½”).
math.solver.options string algebraic numeric choice lets the solver modify the structure of the expression to obtain something computable. algebraic one preserves the structure of the input in any case.
math.solver.rounding-mode string half up Rounding method used to display solver results: It must be either half up or truncate.
math.undo-redo.mode string stroke Undo/redo mode: default value is stroke mode, but it is possible to modify it to session. See Undo/Redo.

## Diagram

Key Type Default value Description
diagram.configuration.analyzer.bundle string diagram Configuration bundle to be used (name of the *.conf file).
diagram.configuration.analyzer.name string analyzer Configuration name, within the bundle (configuration within the *.conf file).
diagram.configuration.shape.bundle string diagram Configuration bundle to be used (name of the *.conf file).
diagram.configuration.shape.name string shape Configuration name, within the bundle (configuration within the *.conf file).
diagram.configuration.text.bundle string ${lang} Configuration bundle to be used (name of the *.conf file). diagram.configuration.text.name string text Configuration name, within the bundle (configuration within the *.conf file). diagram.convert.edge boolean true If true, Diagram edges will be turned into neat primitives when converting. diagram.convert.node boolean true If true, Diagram nodes will be turned into neat shapes when converting. diagram.convert.text boolean true If true, Diagram text will be turned into typeset when converting. diagram.enable-sub-blocks boolean true If true, Diagram blocks contain sub blocks that describe the diagram content. diagram.eraser.radius number 3 Radius of the eraser tool in mm. diagram.eraser.show boolean true If true, a halo shows up at eraser position. diagram.import.jiix.action string update Possible values are update, add and replace. See import for details. diagram.session-time number 1000 Time interval (in milliseconds) between the last pen up event and subsequent contentChanged() notifications. diagram.tap-item-to-unselect boolean true If true, tapping a selected diagram item will unselect it. If false, the only way to unselect a diagram item is to tap outside of it. ## Drawing Key Type Default value Description drawing.eraser.radius number 3 Radius of the eraser tool in mm. drawing.eraser.erase-entire-strokes boolean false If true, the eraser removes any stroke it touches, else it only erases ink portions within its trajectory. ## Raw Content Key Type Default value Description raw-content.configuration.analyzer.bundle string raw-content Configuration bundle to be used for ink analysis (name of the *.conf file). raw-content.configuration.analyzer.name string text-block Configuration name for ink analysis, within the bundle (configuration within the *.conf file). raw-content.configuration.shape.bundle string diagram Configuration bundle to be used for shape recognition (name of the *.conf file). raw-content.configuration.shape.name string shape Configuration name for shape recognition, within the bundle (configuration within the *.conf file). raw-content.configuration.text.bundle string ${lang} Configuration bundle to be used for text recognition (name of the *.conf file).
raw-content.configuration.text.name string text Configuration name for text recognition, within the bundle (configuration within the *.conf file).
raw-content.eraser.radius number 3 Radius of the eraser tool in mm.
raw-content.eraser.erase-entire-strokes boolean false If true, the eraser removes any stroke it touches, else it only erases ink portions within its trajectory.
raw-content.eraser.show boolean true If true, a halo shows up at eraser position.
raw-content.import.jiix.action string add Possible values are add and replace. See import for details.
raw-content.recognition.shape boolean false If set to true, non-text will be recognized as shapes and the result will be available in the JIIX export.
raw-content.recognition.text boolean false If set to true, text blocks will be recognized and the result will be available in the JIIX export.
raw-content.feedback.type boolean false If set to true, activates the recognition feebdack via styling. See styling for details.
raw-content.feedback.fill-shape boolean false If set to true, and when raw-content.recognition.shape is enabled, sets whether shapes should be filled. See styling for details.

## Text Document

The following options apply to “Math”, “Drawing”, “Diagram” and “Raw Content” blocks within a Text Document:

Key Type Default value Description
text-document.eraser.radius number 3 Radius of the eraser tool in mm.
text-document.eraser.show boolean true If true, a halo shows up at eraser position.
text-document.eraser.drawing.erase-entire-strokes boolean false If true, the eraser removes any stroke it touches in Text Document drawing blocks, else it only erases ink portions within its trajectory.

No other configuration options directly apply to a Text Document. The pre-set values are as follows:

• The text bundle is \${lang},
• The text configuration name is text,
• The diagram shape and analyzer bundle is diagram,
• The diagram shape configuration name is shape,
• The diagram analyzer configuration name is analyzer,
• The math bundle is math,
• The math configuration bundle is standard.
• The raw content text recognition is true, and shape recognition is false.

As these cannot be changed, please make sure that these configuration bundles and items are available if you want to work with this type of part.

1. This setting only affects packages created or opened after the modification.