# 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.

Further options are available to customize your styling with css properties. They are inventoried in the styling page.

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 recommended 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.jiix.deprecated.text.linebreaks boolean false If true, JIIX export will include detailed information about the line breaks within a text. Deprecated, you should rather use the export.jiix.text.structure option. export.jiix.text.structure boolean false If true, JIIX export will include detailed information about the text layout structure for Text blocks. export.mathml.flavor string standard Defines the flavor you want for MathML export: possible values are standard and ms-office. The latter is recommended 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. gesture.raw-content.enable-scratch boolean false If true, the scratch gesture is active in Raw Content and allows users to erase ink by scratching it out. ## 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.eraser.radius number 3 Radius of the eraser tool in mm.
text.eraser.show boolean false If true, a halo shows up at eraser position.
text.eraser.erase-precisely boolean false If false, the eraser removes any character it touches, else it only erases ink portions within its trajectory.
text.eraser.dynamic-radius boolean false If false, the eraser is fixed, its value is the radius. If true, the eraser size is dynamic and grows with the speed.
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.eraser.erase-precisely boolean false If false, the eraser removes any symbol it touches, else it only erases ink portions within its trajectory.
math.eraser.dynamic-radius boolean false If false, the eraser is fixed, its value is the radius. If true, the eraser size is dynamic and grows with the speed.
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.

## 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.convert.match-text-size boolean false If true, enable scaling font so that on convert typeset text size fits handwritten text one. diagram.convert.text-size-scale number 1.25 When diagram.convert.match-text-size is activated, sets the text scale value. Relevant values are within range 1 to 2. The larger the scale, the less font sizes are used. The closer to 1, the most linear the scale is, thus using more font sizes. If you set a value less than or equal to 1, the default value 1.25 is used. diagram.enable-sub-blocks boolean true If true, Diagram parts contain accessible 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.eraser.erase-precisely boolean false If false, the eraser removes any object (character, shape, line…) it touches, else it only erases ink portions within its trajectory. diagram.eraser.dynamic-radius boolean false If false, the eraser is fixed, its value is the radius. If true, the eraser size is dynamic and grows with the speed. 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. diagram.recognition.feedback string background-fill Sets how shapes should be filled within a Diagram part or Diagram Block of a Text Document part. By default, background-fill indicates to color the shapes background with the .diagram-fill styling class pen fill color. Other possible values are an empty value for no feedback, and animation-fill to highlight transiently the shapes with the .diagram-anim-fill styling class pen fill color. ## Drawing Key Type Default value Description drawing.eraser.radius number 3 Radius of the eraser tool in mm. drawing.eraser.show boolean true If true, a halo shows up at eraser position. drawing.eraser.erase-precisely boolean true If false, the eraser removes any stroke it touches, else it only erases ink portions within its trajectory. drawing.eraser.dynamic-radius boolean false If false, the eraser is fixed, its value is the radius. If true, the eraser size is dynamic and grows with the speed. ## 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-precisely boolean true If false, the eraser removes any object it touches, else it only erases ink portions within its trajectory.
raw-content.eraser.dynamic-radius boolean false If false, the eraser is fixed, its value is the radius. If true, the eraser size is dynamic and grows with the speed.
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. This feedback should be used for debug purpose only.
raw-content.recognition.feedback string <empty> When raw-content.recognition.shape is enabled, sets how shapes should be filled within a Raw Content part. By default, there is no feedback. Other possible values are background-fill to color the shapes background with the .raw-content-fill styling class pen fill color or animation-fill to highlight transiently with the .raw-content-anim-fill styling class pen fill color.

## 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.enable-sub-blocks boolean true If true, Raw Content and Diagram blocks contain accessible sub-blocks that describe the blocks contents.
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.erase-precisely boolean false If false, the eraser removes any object it touches in Text Document blocks, else it only erases ink portions within its trajectory.
text-document.eraser.dynamic-radius boolean false If false, the eraser is fixed, its value is the radius. If true, the eraser size is dynamic and grows with the speed.
text-document.raw-content.line-pattern string grid Sets the line pattern that shall be used for Raw Content blocks backgrounds. Possible values are grid and none. By default there is a background grid. Set a none value if you don’t want any pattern.
text-document.slice-gesture.enable boolean true Set to false, to disable the slice gesture that allows adding a freeform section as a Raw Content block into a Text Document part.

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.