Ci sono nuovi suggerimenti dalla community di openai riguardo ai problemi che sto riscontrando. Hai in programma di apportare un aggiornamento in merito? I suggerimenti sono i seguenti.
Suggerimento 1:
def parse_stream_to_katex(stream: Stream):
"""
Prende uno Stream di OpenAI e sostituisce i delimitatori LaTeX di ChatGPT
con quelli di KateX.
Restituisce testo, non blocchi
"""
last_text = ""
for chunk in stream:
text = chunk.choices[0].delta.content
if text:
# A volte i delimitatori come \( possono essere divisi in due blocchi.
# Se il blocco precedente terminava con \, anteporlo a questo blocco
if last_text.endswith("\\"):
text = last_text + text
text = (
text.replace(r"\[", "$$")
.replace(r"\]", "$$")
.replace(r"\(", "$")
.replace(r"\)", "$")
)
last_text = text
# Se il testo termina con \, non lo restituiamo, lo includeremo nel blocco successivo
if not text.endswith("\\"):
yield text
Suggerimento 2:
// MarkdownLaTeXRenderer.js
import React from 'react';
import ReactMarkdown from 'react-markdown';
import remarkGfm from 'remark-gfm';
import remarkMath from 'remark-math';
import rehypeRaw from 'rehype-raw';
import rehypeKatex from 'rehype-katex';
const MarkdownLaTeXRenderer = ({ content }) => {
// Sostituisce \[ con $$ e \] con $$ per garantire la compatibilità
const processedText = content
.replace(/\[/g, '$$') // Sostituisce tutte le occorrenze di \[ con $$
.replace(/\]/g, '$$') // Sostituisce tutte le occorrenze di \] con $$
.replace(/\(/g, '$') // Sostituisce tutte le occorrenze di \( con $
.replace(/\)/g, '$'); // Sostituisce tutte le occorrenze di \) con $
const remarkMathOptions = {
singleDollarTextMath: false,
};
return (
<ReactMarkdown
className="markdown-content"
children={processedText}
remarkPlugins={[[remarkMath, remarkMathOptions], remarkGfm]} // Passa le opzioni come secondo elemento dell'array
rehypePlugins={[rehypeRaw, rehypeKatex]} // Include rehypeRaw per HTML, rehypeKatex per LaTeX
/>
);
Quando visualizzo formule matematiche sul mio dispositivo mobile, non riesco a vedere l’intera formula correttamente (la formula è troppo lunga). Qualcuno sa come risolvere questo problema?
Di seguito viene visualizzata la visualizzazione corretta sul PC.
Ruotare il telefono in orizzontale? Ma perché è tra virgolette, e può essere quello il problema?
Altrimenti. Ho chiesto all’IA del mio forum e mi ha risposto questo (non ho idea se sia utile o pura spazzatura).
Soluzioni per allineare equazioni lunghe usando MathJaxAI
Jagster:
Il forum utilizza MathJax per la matematica e le equazioni. A volte, un’equazione è così lunga da non entrare in uno schermo mobile. C’è un modo per spezzare l’equazione in più righe?
Risponditore:
MathJax non supporta direttamente l’interruzione automatica di riga per le equazioni, ma puoi usare alcune tecniche per far sì che le equazioni lunghe si adattino meglio agli schermi mobili. Ecco alcuni suggerimenti:
Usa l’ambiente align: Puoi dividere l’equazione in più righe usando l’ambiente align. Questo ti permette di allineare e distribuire parti dell’equazione su più righe. Ad esempio:
$$
\begin{align}
a + b + c + d + e + f + g + h + i + j + k + l + m + n + o + p + q + r + s + t + u + v + w + x + y + z = 0
\end{align}
$$
Usa l’ambiente split: Questo è un altro modo per dividere un’equazione in più righe. È particolarmente utile quando vuoi dividere l’equazione in parti senza bisogno di allineamento. Ad esempio:
$$
\begin{split}
a + b + c + d + e + f + g + h + i + j + k + l + m + n + o + p + q + r + s + t + u + v + w + x + y + z = 0
\end{split}
$$
Usa l’ambiente multline: Questo ambiente è progettato per equazioni lunghe che non entrano in una singola riga. Divide l’equazione in più righe senza allineamento. Ad esempio:
$$
\begin{multline}
a + b + c + d + e + f + g + h + i + j + k + l + m + n + o + p + q + r + s + t + u + v + w + x + y + z = 0
\end{multline}
$$
Questi ambienti ti permettono di controllare la presentazione delle equazioni e assicurarti che siano leggibili anche su schermi più piccoli. Ricorda che gli ambienti MathJax spesso richiedono il pacchetto amsmath, che di solito è abilitato per impostazione predefinita in MathJax.
@Jagster Queste dovrebbero essere buone soluzioni. In origine volevo impostare una barra di scorrimento orizzontale per la formula, ma non ci sono riuscito.
Viene visualizzato correttamente, ma non c’è una barra di scorrimento per vedere l’intera formula. C’è, nell’anteprima, però.
Nel post, puoi vedere l’altra parte solo se fai lo zoom:
Nell’anteprima del piano durante la stesura di un post, quando l’SVG viene renderizzato, l’anteprima del piano scorre verso l’alto. Esiste un’impostazione che può essere modificata in modo che lo scorrimento torni alla posizione più bassa?
Dover scorrere verso il basso ogni volta che modifico la matematica infastidisce i miei docenti, ma ho resistito.
dopo un aggiornamento/ricostruzione completo, la matematica sembra essere renderizzata correttamente
Per coloro che non l’avessero sentito, questo plugin è ora incluso nel core. Si prega di consultare la ricostruzione/revisione 2 di 3 di questo post per dimostrarlo.
Ci sono! Mi dispiace per aver causato preoccupazione. Dovresti essere a posto ora.
Questo plugin è ora incluso nel core di Discourse come parte di Bundling more popular plugins with Discourse core. Se stai auto-ospitando e utilizzi il plugin, devi rimuoverlo dal tuo app.yml prima del tuo prossimo aggiornamento.
Ho un problema con i caratteri matematici nelle risposte dell’IA. Mi fornisce risposte in formato latex anche se ho digitato il prompt richiesto. Questo crea un’immagine come se ci fossero caratteri non corretti. Puoi risolvere questo problema. Esempio;
\( A = \\begin{pmatrix} x & -1 \\ z & 2y \\end{pmatrix} \\)
\\\[
\\boxed{
x = 0, \\quad y = 4, \\quad z = 4
}
\\\]
\\\[
\\begin{cases}
A\{11} = B^T\{11} \\Rightarrow x = y - z \\\\
A\{12} = B^T\{12} \\Rightarrow -1 = -1 \\quad (\\text{corretto automaticamente}) \\\\
A\{21} = B^T\{21} \\Rightarrow z = y \\\\
A\{22} = B^T\{22} \\Rightarrow 2y = 8 \\\\
\\end{cases}
\\\]
In precedenza ho condiviso soluzioni dalla community di openai