parseDimension static method
Parses a TeX dimension either in braces ({1.2em}) or in the usual
unbraced form (1.2em). Leading whitespace is ignored.
Implementation
static String parseDimension(
LatexParserContext ctx,
LatexTokenStream stream,
) {
if (stream.peek() is LeftBraceToken) {
final arg = ctx.parseArgument();
if (arg == null) return "0pt";
final text = extractText([arg]).trim();
return text.isEmpty ? "0pt" : text;
}
while (stream.peek() is WhitespaceToken) {
stream.advance();
}
final rawBuffer = StringBuffer();
while (true) {
final token = stream.peek();
if (token is! TextToken) break;
rawBuffer.write(token.content);
stream.advance();
if (_dimensionPattern.hasMatch(rawBuffer.toString())) break;
}
final raw = rawBuffer.toString();
final match = _dimensionPattern.firstMatch(raw);
return match?.group(0) ?? (raw.isEmpty ? "0pt" : raw);
}