col_wrappers

col_wrappers

Column wrapper for LaTeX equation formatting.

This module provides a singledispatch-based wrapper system for decorating columns in mathematical equations. Wrappers add prefix/suffix around formatted values (e.g., “=” before RHS numeric values, “” before RHS text).

Wrapper Architecture

  • Main entry point: wrap_column(value, col_index) -> tuple[str, str]
  • Type-based dispatch using @singledispatch decorator
  • Each type has a registered wrapper implementation
  • Returns (prefix, suffix) tuple for wrapping formatted values

Example

from keecas import wrap_column, symbols

# Define symbol
sigma = symbols(r"\sigma")

# Wrap symbol in LHS (column 0)
wrap_column(sigma, col_index=0)  # Returns: ('', '')
('', '')
# Wrap integer in RHS (column 1+)
wrap_column(42, col_index=1)  # Returns: ('= ', '')
('= ', '')
# Wrap string in RHS
wrap_column("verified", col_index=1)  # Returns: ('\quad', '')
('\\quad', '')

Custom type registration:

# Define a custom type
class MyCustomType:
    def __init__(self, data):
        self.data = data

# Register a wrapper for it
@wrap_column.register(MyCustomType)
def wrap_custom(value, col_index=0, **kwargs):
    if col_index == 0:
        return ("", "")
    return (r"\approx ", "")

Functions

Name Description
wrap_column Return (prefix, suffix) for column wrapping based on value type.
wrap_numeric Wrap numeric types with equals prefix in RHS columns.
wrap_str Wrap strings with quad spacing in RHS columns.
wrap_sympy Wrap SymPy expressions with equals prefix in RHS columns.
wrap_pint Wrap Pint quantities with equals prefix in RHS columns.
wrap_markdown Wrap IPython Markdown/Latex objects with quad spacing in RHS columns.