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)
      .map(
        (n) => unit == null ? numToTex(n) : quantityToTex(n, unit, options: o),
      )
      .toList();
  if (parts.length < 2) return parts.join();
  return '${parts.sublist(0, parts.length - 1).join(r',\ ')}'
      '\\text{ and }${parts.last}';
}