Source code for salbpone.latex_converter

"""
Модуль перетворень обмежень.
Забезпечує адаптацію існуючого формату обмежень для друку у документах.
"""
from typing import List


[docs]class LatexConverter: """ Конвертер обмежень до Latex. """ def __init__(self, constraints: List[str]): self.constraints = constraints
[docs] def to_latex(self) -> List[str]: """ Перетворює рядки обмежень у формат LaTeX. :return: Список рядків у форматі LaTeX """ latex_constraints = [] for constraint in self.constraints: # Заміна індексів x[i][j] на x_{i,j} для LaTeX latex_constraint = constraint latex_constraint = latex_constraint.replace('][', ',').replace('[', '_{').replace(']', '}') # Заміна знаків нерівності на формат LaTeX latex_constraint = latex_constraint.replace("<=", r"\leq").replace(">=", r"\geq") # Заміна знаків множення на LaTeX формат latex_constraint = latex_constraint.replace("*", r"\cdot") latex_constraints.append(f"{latex_constraint}") return latex_constraints
[docs] def print_latex(self) -> None: """ Друкує обмеження у форматі LaTeX. """ latex_constraints = self.to_latex() for constraint in latex_constraints: print(constraint)