numToTex function

String numToTex(
  1. String input
)

A number: digit groups of three with thin spaces (from five digits), e-exponents as \times 10^{n}, +- as \pm.

Implementation

String numToTex(String input) {
  var s = input.replaceAll(' ', '').replaceAll(r'\pm', '±');
  if (s.isEmpty) return '';
  s = s.replaceAll('+-', '±');
  final parts = s.split('±');
  final value = _number(parts.first);
  if (value == null) return input;
  if (parts.length == 1) return value;
  final uncertainty = _number(parts[1]);
  return '$value\\pm ${uncertainty ?? parts[1]}';
}