Module: Plurimath::Formatter::Numbers::TextRenderer

Defined in:
lib/plurimath/formatter/numbers/text_renderer.rb

Overview

Renders a Formatter result (FormattedNotation, FormattedNumber, or String) into a plain-text format (LaTeX, AsciiMath, HTML, UnicodeMath). For semantic base notation, each format’s template lives in BASE_TEMPLATES; adding a new text format is a one-line change there. When the caller supplies an explicit base_prefix/base_postfix, the literal prefix+postfix take precedence (no format-specific decoration).

Constant Summary collapse

BASE_TEMPLATES =

%<sign>s %<digits>s %<base>d — sign_text returns “” for positives without explicit :plus, so interpolation collapses cleanly.

{
  asciimath: "%<sign>s%<digits>s_(%<base>d)",
  unicodemath: "%<sign>s%<digits>s_(%<base>d)",
  latex: "%<sign>s\\mathrm{%<digits>s}_{%<base>d}",
  html: "%<sign>s%<digits>s<sub>%<base>d</sub>",
}.freeze

Class Method Summary collapse

Class Method Details

.render(result, format) ⇒ Object



24
25
26
27
28
29
30
31
32
# File 'lib/plurimath/formatter/numbers/text_renderer.rb', line 24

def render(result, format)
  return result.to_s unless structured_number?(result)

  if result.base_notation.literal?
    result.to_s
  else
    render_semantic(result, format)
  end
end