listToTex function

String listToTex(
  1. String items, {
  2. String? unit,
  3. SiOptions? options,
})

A list: 1, 2 and 3.

Implementation

String listToTex(String items, {String? unit, SiOptions? options}) {
  final o = options ?? const SiOptions();
  final parts = items
      .split(';')
      .map((s) => s.trim())
      .where((s) => s.isNotEmpty)
      .toList();
  return _withUnits(
    parts,
    unit,
    o,
    o['list-units'],
    (p) {
      if (p.length < 2) return p.join();
      if (p.length == 2) {
        return p.join(_textSetting(o, 'list-pair-separator'));
      }
      return '${p.sublist(0, p.length - 1).join(_textSetting(o, 'list-separator'))}'
          '${_textSetting(o, 'list-final-separator')}${p.last}';
    },
    open: o['list-open-bracket'],
    close: o['list-close-bracket'],
  );
}