Applies a numbering to a sequence of numbers.

A numbering defines how a sequence of numbers should be displayed as content. It is defined either through a pattern string or an arbitrary function.

A numbering pattern consists of counting symbols, for which the actual number is substituted, their prefixes, and one suffix. The prefixes and the suffix are repeated as-is.


#numbering("1.1)", 1, 2, 3) \
#numbering("1.a.i", 1, 2) \
#numbering("I – 1", 12, 2) \
  (..nums) => nums
    .join(".") + ")",
  1, 2, 3,

Question mark

numbering() -> any

str or function
Question mark

Defines how the numbering works.

Counting symbols are 1, a, A, i, I, , , , , , , א, , , and *. They are replaced by the number in the sequence, in the given case.

The * character means that symbols should be used to count, in the order of *, , , §, , and . If there are more than six items, the number is represented using multiple symbols.

Suffixes are all characters after the last counting symbol. They are repeated as-is at the end of any rendered number.

Prefixes are all characters that are neither counting symbols nor suffixes. They are repeated as-is at in front of their rendered equivalent of their counting symbol.

This parameter can also be an arbitrary function that gets each number as an individual argument. When given a function, the numbering function just forwards the arguments to that function. While this is not particularly useful in itself, it means that you can just give arbitrary numberings to the numbering function without caring whether they are defined as a pattern or function.

Question mark
Question mark

The numbers to apply the numbering to. Must be positive.

If numbering is a pattern and more numbers than counting symbols are given, the last counting symbol with its prefix is repeated.