texform-transform 0.1.0

Profile-based AST transform engine for TeXForm (internal; use the texform crate)
Documentation
declaratives:
  - command: base:bf
    set: { math_font: VARIANT.BOLD }
  - command: base:cal
    set: { math_font: VARIANT.CALLIGRAPHIC }
  - command: base:it
    set: { math_font: VARIANT.MATHITALIC }
  - command: base:mit
    set: { math_font: VARIANT.ITALIC }
  - command: base:oldstyle
    set: { math_font: -tex-oldstyle }
  - command: base:rm
    set: { math_font: VARIANT.NORMAL }
  - command: base:sf
    set: { math_font: VARIANT.SANSSERIF }
  - command: base:tt
    set: { math_font: VARIANT.MONOSPACE }
  - command: textmacros:bf
    set: { text_series: bold }
  - command: textmacros:cal
    set: { text_family: calligraphic }
  - command: textmacros:it
    set: { text_shape: italic }
  - command: textmacros:mit
    set: { text_family: italic }
  - command: textmacros:oldstyle
    set: { text_family: oldstyle }
  - command: textmacros:rm
    set: { text_family: roman }
  - command: textmacros:sf
    set: { text_family: sansserif }
  - command: textmacros:tt
    set: { text_family: typewriter }
  - command: base:Huge
    set: { math_size: 2.49 }
  - command: base:huge
    set: { math_size: 2.07 }
  - command: base:LARGE
    set: { math_size: 1.73 }
  - command: base:Large
    set: { math_size: 1.44 }
  - command: base:large
    set: { math_size: 1.2 }
  - command: base:normalsize
    set: { math_size: 1.0 }
  - command: base:scriptsize
    set: { math_size: 0.7 }
  - command: base:small
    set: { math_size: 0.85 }
  - command: base:Tiny
    set: { math_size: 0.6 }
  - command: base:tiny
    set: { math_size: 0.5 }
  - command: textmacros:Huge
    set: { text_size: 2.49 }
  - command: textmacros:huge
    set: { text_size: 2.07 }
  - command: textmacros:LARGE
    set: { text_size: 1.73 }
  - command: textmacros:Large
    set: { text_size: 1.44 }
  - command: textmacros:large
    set: { text_size: 1.2 }
  - command: textmacros:normalsize
    set: { text_size: 1.0 }
  - command: textmacros:scriptsize
    set: { text_size: 0.7 }
  - command: textmacros:small
    set: { text_size: 0.85 }
  - command: textmacros:Tiny
    set: { text_size: 0.6 }
  - command: textmacros:tiny
    set: { text_size: 0.5 }
  - command: base:displaystyle
    set: { math_style: { letter: D, display: true, level: 0 } }
  - command: base:textstyle
    set: { math_style: { letter: T, display: false, level: 0 } }
  - command: base:scriptstyle
    set: { math_style: { letter: S, display: false, level: 1 } }
  - command: base:scriptscriptstyle
    set: { math_style: { letter: SS, display: false, level: 2 } }
attribute_targets:
  math_font:
    - value: VARIANT.BOLD
      math:
        prefix: base:mathbf
        declarative: base:bf
    - value: VARIANT.CALLIGRAPHIC
      math:
        prefix: base:mathcal
        declarative: base:cal
    - value: VARIANT.MATHITALIC
      math:
        prefix: base:mathit
        declarative: base:it
    - value: VARIANT.NORMAL
      math:
        prefix: base:mathrm
        declarative: base:rm
    - value: VARIANT.SANSSERIF
      math:
        prefix: base:mathsf
        declarative: base:sf
    - value: VARIANT.MONOSPACE
      math:
        prefix: base:mathtt
        declarative: base:tt
    - value: VARIANT.ITALIC
      math:
        prefix: base:symit
        declarative: base:mit
    - value: -tex-oldstyle
      math:
        declarative: base:oldstyle
  math_size:
    - value: 2.49
      math:
        declarative: base:Huge
    - value: 2.07
      math:
        declarative: base:huge
    - value: 1.73
      math:
        declarative: base:LARGE
    - value: 1.44
      math:
        declarative: base:Large
    - value: 1.2
      math:
        declarative: base:large
    - value: 1.0
      math:
        declarative: base:normalsize
    - value: 0.85
      math:
        declarative: base:small
    - value: 0.7
      math:
        declarative: base:scriptsize
    - value: 0.6
      math:
        declarative: base:Tiny
    - value: 0.5
      math:
        declarative: base:tiny
  math_style:
    - value: { letter: D, display: true, level: 0 }
      math:
        declarative: base:displaystyle
    - value: { letter: T, display: false, level: 0 }
      math:
        declarative: base:textstyle
    - value: { letter: S, display: false, level: 1 }
      math:
        declarative: base:scriptstyle
    - value: { letter: SS, display: false, level: 2 }
      math:
        declarative: base:scriptscriptstyle
  text_family:
    - value: roman
      text:
        prefix: textmacros:textrm
        declarative: textmacros:rm
    - value: sansserif
      text:
        prefix: textmacros:textsf
        declarative: textmacros:sf
    - value: typewriter
      text:
        prefix: textmacros:texttt
        declarative: textmacros:tt
    - value: calligraphic
      text:
        declarative: textmacros:cal
    - value: italic
      text:
        declarative: textmacros:mit
    - value: oldstyle
      text:
        declarative: textmacros:oldstyle
  text_series:
    - value: bold
      text:
        prefix: textmacros:textbf
        declarative: textmacros:bf
  text_shape:
    - value: italic
      text:
        prefix: textmacros:textit
        declarative: textmacros:it
  text_size:
    - value: 2.49
      text:
        declarative: textmacros:Huge
    - value: 2.07
      text:
        declarative: textmacros:huge
    - value: 1.73
      text:
        declarative: textmacros:LARGE
    - value: 1.44
      text:
        declarative: textmacros:Large
    - value: 1.2
      text:
        declarative: textmacros:large
    - value: 1.0
      text:
        declarative: textmacros:normalsize
    - value: 0.85
      text:
        declarative: textmacros:small
    - value: 0.7
      text:
        declarative: textmacros:scriptsize
    - value: 0.6
      text:
        declarative: textmacros:Tiny
    - value: 0.5
      text:
        declarative: textmacros:tiny