durationToTex function

String durationToTex(
  1. String input, {
  2. SiOptions options = const SiOptions(),
})

\duration{1;2;3} → 1 h 2 min 3 s.

Implementation

String durationToTex(String input, {SiOptions options = const SiOptions()}) {
  final o = options;
  final parts = input.split(';').map((p) => p.trim()).toList();
  final units = [
    o['duration-unit-hour'],
    o['duration-unit-minute'],
    o['duration-unit-second'],
  ];
  final out = <String>[];
  for (var i = 0; i < parts.length && i < 3; i++) {
    if (parts[i].isEmpty) continue;
    out.add(quantityToTex(parts[i], units[i], options: o));
  }
  return out.join(_textSetting(o, 'duration-separator'));
}