KaTeX не форматирует курсор (^) для верхних индексов в математических выражениях.Javascript

Форум по Javascript
Ответить
Anonymous
 KaTeX не форматирует курсор (^) для верхних индексов в математических выражениях.

Сообщение Anonymous »

Я создаю виджет чата вопросов и ответов, который использует отмеченный.js для рендеринга Markdown и KaTeX для математических выражений. Хотя большинство выражений LaTeX отображаются правильно, символ каретки (^) для надстрочных индексов не форматируется и отображается как обычный текст.
Текущее поведение:
Верхние индексы, использующие ^ (например, b^2, a^2, x^2), отображаются как необработанный текст, а не форматированные надстрочные индексы. Большинство математических обозначений работают нормально.
Пример ответа API:

Код: Выделить всё

json
{
"success": true,
"data": {
"answer": "In the context of mathematics... the expression \\( (a + b)^2 \\) expands to: \\[ a^2 + 2ab + b^2 \\] ... Formulas can represent quadratic equations (e.g., \\( ax^2 + bx + c = 0 \\))."
}
}
В этом ответе \\( (a + b)^2 \\) должен отображаться как (a+b)², но курсор остается неформатированным.
Соответствующий код:
Настройка HTML:

Код: Выделить всё

html
[*]



JavaScript rendering:

javascript
function renderMath(element) {
if (window.renderMathInElement) {
renderMathInElement(element, {
delimiters: [
{left: '$$', right: '$$', display: true},
{left: '$', right: '$', display: false},
{left: '\\[', right: '\\]', display: true},
{left: '\\(', right: '\\)', display: false},
{left: '[ ', right: ' ]', display: true},
{left: '[', right: ']', display: true}
],
throwOnError: false,
ignoredTags: ['script', 'noscript', 'style', 'textarea', 'pre', 'code'],
processEscapes: true
});
}
}

function appendMessage(text, from) {
const wrap = document.createElement("div");
wrap.className = `message ${from}`;
const bubble = document.createElement("div");

if (from === "model") {
bubble.className = "bubble";
bubble.innerHTML = marked.parse(text);

setTimeout(() => {
renderMath(bubble);
}, 10);
} else {
bubble.textContent = text;
}

wrap.appendChild(bubble);
messagesEl.appendChild(wrap);
}
Ожидаемое поведение:
  • b^2 должно отображаться как b² с правильным форматированием надстрочного индекса.
  • x^2 должно отображаться как x².
  • (a + b)^2 должно отображаться как (a+b)².
  • Все верхние индексы на основе символов курсора и все математические выражения должны быть правильно отформатированы.
Я не тестировал другие математические выражения, такие как \frac и т. д. Как я могу гарантировать правильный формат верхних индексов на основе символов курсора и всех математических выражений?

Подробнее здесь: https://stackoverflow.com/questions/797 ... xpressions
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»