2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему
 
 Скрипт для обработки Latex. Замена окружений формул.
Сообщение19.10.2024, 13:51 


01/02/24
15
Добрый день! Хочется сделать программу, которая модифицирует текст с формулами, меняя окружения. Но есть сомнения - возможно ли реализовать эту идею? Зачем? Чтобы загружать задачи по математике на сайт на базе Moodle, исправляя ошибки автоматически, чтобы не писать окружения для формул. Сначала напишу идею детальнее, после будет пример на входе и выходе, а в конце будет скрипт, который делает частичные изменения, но очень криво.

1) Каждая формула должна начинаться на \(, а заканчиваться на \). Форма для ответов вида "{1:SHORTANSWER:=-4,2}" не является формулой, это критически важно. Если были исходные окружения для формул виде двойных долларов или однократных, то их нужно удалить. Тоже самое касается и следующих двух пунктов.
2) Каждое отдельно стоящее число должно начинаться на \( и заканчиваться на \).
3) Каждая группа латинских символов должна начинаться на \( и заканчиваться на \)
4) Нужно сделать так, чтобы формула примыкала к границам \( и \). не было пробелов между последним символом в формуле и \). Аналогично с началом формулы.
5) Также нужно заменить в формулах sin на \sin и % на \%. А также tan на \operatorname{tg} и символ * на \cdot
6) Внутри формы для ответов "Ответ: {1:SHORTANSWER:=-4,2}" в качестве десятичного разделителя должн быть точка, а не запятая, то есть вот так "Ответ: {1:SHORTANSWER:=-4.2}"

На входе.

Код:
Решите уравнение:  $  \dfrac{5}{2}(c - 3) - \dfrac{1}{6}(2c - 7) = 2$. Ответ: {1:SHORTANSWER:=-45,21}

Решите уравнение:  x*2 + 3= 24  Ответ: {1:SHORTANSWER:=-45,21}

Решите уравнение   \[ \sin x = 1 \]   Ответ: {1:SHORTANSWER:=-45.21}

$$
2*x+110>100
$$

$
x+1>0
$

Свежие фрукты содержат 75% воды, а высушенные – $25\%$. Сколько
требуется свежих фруктов для приготовления \[45\] кг высушенных фруктов?

В треугольнике ABC проведена биссектриса. Прямая a параллельна прямой b.

$sin x + tan x= 1$ {1:SHORTANSWER:=-45}

Упростите \(\dfrac{m^{\frac43} - 27 m^{\frac13} n}{\sqrt[3]{m^{2}} + 3\sqrt[3]{mn} + \sqrt[3]{9 n^{2}}} \cdot \dfrac{1}{\left( 1 - 3 \left( \dfrac{m}{n} \right)^{-\frac{1}{3}} \right)}. \)


На выходе:

Код:
Решите уравнение:  \(\dfrac{5}{2}(c - 3) - \dfrac{1}{6}(2c - 7) = 2\). Ответ: {1:SHORTANSWER:=-45.21}

Решите уравнение:  \(x\cdot 2 + 3 = 24\)  Ответ: {1:SHORTANSWER:=-45.21}

Решите уравнение   \(\sin x = 1\)   Ответ: {1:SHORTANSWER:=-45.21}

\(2\cdot x + 110 > 100\)

\(x+1>0\)

Свежие фрукты содержат \(75\%\) воды, а высушенные – \(25\%\). Сколько
требуется свежих фруктов для приготовления \(45\) кг высушенных фруктов?

В треугольнике \(ABC\) проведена биссектриса. Прямая \(a\) параллельна прямой \(b\).

\(\sin x + \operatorname{tg}x= 1\) {1:SHORTANSWER:=-45}

Упростите \(\dfrac{m^{\frac43} - 27 m^{\frac13} n}{\sqrt[3]{m^{2}} + 3\sqrt[3]{mn} + \sqrt[3]{9 n^{2}}} \cdot \dfrac{1}{\left( 1 - 3 \left( \dfrac{m}{n} \right)^{-\frac{1}{3}} \right)}.\)


Вот такой код ничего толкового не дает.

код: [ скачать ] [ спрятать ]
Используется синтаксис Python
 
import re
import pyperclip

def process_text(text):
    text = re.sub(r'\[|\]', '', text)
    text = re.sub(r'\bsin\b', r'\\sin', text)
    text = re.sub(r'\btan\b', r'\\operatorname{tg}', text)
    text = re.sub(r'%', r'\\%', text)
    text = re.sub(r'\*', r'\\cdot', text)
    text = re.sub(r'(-?\d+),(\d+)', r'\1.\2', text)
    text = re.sub(r'\$\$([^\$]+)\$\$', r'\\(\1\\)', text)
    text = re.sub(r'\$([^\$]+)\$', r'\\(\1\\)', text)
    text = re.sub(r'\b([a-zA-Z]+)\b', r'\\(\1\\)', text)
    text = re.sub(r'\\\(\s*', r'\\(', text)
    text = re.sub(r'\s*\\\)', r'\\)', text)
    return text

text = pyperclip.paste()
processed_text = process_text(text)
pyperclip.copy(processed_text)
print("Текст успешно обработан и скопирован в буфер обмена.")

 


-- 19.10.2024, 13:53 --

Что-то я немного разделом ошибся :facepalm: , извините, пожалуйста.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: dgwuqtj


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group