Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

What are functions?

Certain properties of elements within the document can be defined as a function or formula. This function can refer to other elements properties and variable values.

To turn a static frame property into a calculated value based on a function, you simply click the function button next to the property input field in the interface.

Info
titleCase Sensitivity

Important to know, functions, tags and references are not Case Sensitive.

E.g. The variable with name "AddWidth" can be used in a formula as "addwidth".

E.g. The PageWidth can be used in a calculation as "pageWidth"

 

Image Added

A function field will appear below the property input field. The property input field is now no longer editable becuase because the value is calculated based on the function defined in the function input field.

If a function is not valid and cannot be calculated properly, the last calculated value is kept.

Errors

 

When a function does not work out, it will turn red, and you'll get a notification.

Image Added

...

Image Added

 

What is supported within a function?

Arithmic operators

+

adding

-

substracting

*

multiplying

/

deviding

()

parentheses

Parentheses will influence the order of calculation.

Referencing

In the functions, you can use absolute numbers, or you can reference other elements.

...

  • Page:
    By typing “Page” followed by a dot, and the name of the property you want to reference.
  • Paragraph within a text frame:
    A text paragraph can be tagged, and can also be referenced in a Dynamic Layout function. This is possible by first typing the name (tag) of the frame, followed by a dot, followed by the name of the paragraph (tag)
    Bram Verniest (Unlicensed) new screenshot needed here
    Image RemovedImage Added
  • Variable:
    By typing the name of the variable, nothing more.

Image Added

Image Added

Image Added

Properties (to reference of)

The following These properties can be referenced on frame and page level:used from the page, frame, inline frame or tagged paragraph which is referenced by the tag of the frame.

CenterY
XThe X position of the referenced rotated frame (note reference point) (or 0 for page)
YThe Y position of the referenced rotated frame (note reference point) (or 0 for page)
TopThe Y value of the top of the referenced rotated frame (or 0 for page)
BottomThe Y value of the bottom of the referenced rotated frame or page height
LeftThe X value of the left of the referenced rotated frame (or 0 for page)
RightThe X value of the right of the referenced rotated frame or page widthCenterX
CenterYThe Y value of the center of the referenced rotated frame or page
CenterXThe X value of the center of the referenced rotated frame or page
WidthThe width of the referenced frame or page (note value is scaled)
NonScaledWidthThe non scaled width of the referenced frame
HeightThe height of the referenced frame or page (note value is scaled)
NonScaledHeightThe non scaled height of the referenced frame
RotationRotation of the frame (note doesn't exist on inline frames)
ScaleXX Scale of the frame
ScaleYY Scale of the frame

Examples

  • page.width
  • frametag.height
  • frametag.paragraphtag.centerX

Self

When using a formula in the location of a frame, you can use the tag of the frame, but you can also use "self".

E.g. self.height refers to the own height of the frame.

Below an example to align the frame to the bottom, by using a rather complex formula (wink) combined with a reference point at the top.

You can set the Y position, to the page height (would be bottom) minus the own (self) height. 

Image Added

...

 

Variables

It is possible to use variables in the calculation, but only variables of type number or coordinate. For now, only the value of the variable can be referenced. No other meta information.

"variable.value" or "variable" will both resolve to the actual value of the variable.

In case a variable has the same name as a frame tag, this property being used will indicate if the user intends to use the variable value or the frame property. (there is no "value" property on frames and no width, height, etc on a variable)

If page.property is used in a calculated value, it will always refer to the page in the document, never to a frame with tag "page".

Functions within the calculation

  Following additional functions are available for application in the calculations

MinMax(min, max, input)

Clamps a given value between a minimum and maximum value.

E.g. MinMax(300,700, addwidth)

When the width of the add is lower than 300, the function will return 300.
If the width is above 700, the function will return 700.
If the addwidth is somewhere between, it will return the actual value (e.g. 450)

ClampMin(min, input)

If the input value is less than the minimum, return the minimum value otherwise return the input value

ClampMax(max, input)

If the input value is greater than the maximum, return the maximum value otherwise return the input value

Use of units within a function

Units (millimeters, inches, points, pixels) can be used within a function.

If no unit is are specified the Dynamic layout engine will assume the value is in points. Multiple units can be used within a single function.

...

frameA.width=50mm+10in+5pt

Anchoring

Achoring is a feature which existed before Dynamic Layout. It was a basic form of Dynamic Layout. With the introduction of Dynamic Layout we replaced the legacy anchoring module by Dynamic Layout. The anchoring settings interface can still be used. When an anchoring setting is configured, CHILI Publisher will automatically assign a Dynamic Layout function to the properties of the frame.
The link with the Dynamic Layout function and the anchoring setting is maintained. If the Dynamic Layout function is modified, the link with the anchoring setting is removed.

Alternate layouts

Dynamic layout functions can be different per alternate layout. This makes it possible to let frames behave completely different per document size aspect ratio.

For example:

A frame can be configured to always have a width which is 50% of the document width for a landscape aspect ratio. On a skyscraper aspect ratio we can configure the frame to be 100% of the width.

“Landscape” alternate layout

 Image Removed

“skyscraper” alternate layout:

Image Removed

Snippets

Dynamic Layout functions can be used in snippets. Functions are executed within the scope of the snippet. So references to page or variables refer to the page and variables within the snippet.
If the snippet is converted to frames, the Dynamic Layout functions are removed and the calculated value for the properties are applied.

A snippet frame can be configured to select the best fitting alternate layout and to resize the snippet document. These options work in conjunction with Dynamic Layout functions.

Constraints

Dynamic Layout functions are a form of constraints which are baked into the document. They overrule the end-user constraints.

Frame reference points

The reference point of a frame is configurable on document and frame level (cascading: frame overrules document setting)

Image Removed

The frame’s reference point defines how the frame will behave if the width, height, scale, x or y values are modified through the frame location panel, actions or dynamic layout functions. Changing these properties inline by using the frame handles on the document canvas is not affected by this setting.