Es gibt neue Vorschläge von der OpenAI-Community bezüglich der Probleme, die ich habe. Planen Sie, diesbezüglich ein Update vorzunehmen? Vorschläge lauten wie folgt:
Vorschlag 1;
def parse_stream_to_katex(stream: Stream):
"""
Nimmt einen OpenAI Stream und ersetzt ChatGPT LaTeX-Begrenzer
durch KateX-Begrenzer.
Gibt Text aus, nicht Chunks
"""
last_text = ""
for chunk in stream:
text = chunk.choices[0].delta.content
if text:
# Manchmal können Begrenzer wie \\( über zwei Chunks aufgeteilt sein.
# Wenn der vorherige Chunk mit \\ endete, fügen Sie diesen Chunk hinzu
if last_text.endswith("\\"):
text = last_text + text
text = (
text.replace(r"\[", "$$")
.replace(r"\]", "$$")
.replace(r"\(", "$")
.replace(r"\)", "$")
)
last_text = text
# Wenn der Text mit \\ endet, geben wir ihn nicht zurück, wir werden ihn im nächsten Chunk einbeziehen
if not text.endswith("\\"):
yield text
Vorschlag 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 }) => {
// Ersetzen Sie \\[ durch $$ und \\] durch $$, um Kompatibilität zu gewährleisten
const processedText = content
.replace(/\[/g, '$$') // Ersetzen Sie alle Vorkommen von \\[ durch $$
.replace(/\]/g, '$$') // Ersetzen Sie alle Vorkommen von \\] durch $$
.replace(/\\(/g, '$') // Ersetzen Sie alle Vorkommen von \\( durch $$
.replace(/\\\)/g, '$'); // Ersetzen Sie alle Vorkommen von \\) durch $$
const remarkMathOptions = {
singleDollarTextMath: false,
};
return (
<ReactMarkdown
className="markdown-content"
children={processedText}
remarkPlugins={[[remarkMath, remarkMathOptions], remarkGfm]} // Optionen als zweites Element des Arrays übergeben
rehypePlugins={[rehypeRaw, rehypeKatex]} // rehypeRaw für HTML, rehypeKatex für LaTeX einschließen
/>
);
Und als Endbenutzer… Ich verwende dafür die Systemaufforderung (OpenAI).
Wenn Mathematik in einer eigenen Zeile oder einem eigenen Kapitel steht, ändern Sie \( und \) → in eigene Zeilen, davor und danach, $$ ist ziemlich zuverlässig.
Aber wenn dasselbe Inline mit einem einzelnen $ geschehen soll… das schlägt fast jedes Mal fehl.
Wenn das automatisch geschehen könnte… umso besser.
Wenn ich mathematische Formeln auf meinem Mobilgerät ansehe, kann ich die gesamte Formel nicht richtig sehen (die Formel ist zu lang). Weiß jemand, wie man dieses Problem löst?
Unten ist die korrekte Anzeige auf dem PC.
Telefon horizontal drehen? Aber warum ist das in Anführungszeichen gesetzt und kann das das Problem sein?
Ansonsten habe ich die KI meines Forums gefragt und sie hat Folgendes geantwortet (keine Ahnung, ob es hilfreich oder reiner Mist ist).
Lösungen zum Ausrichten langer Gleichungen mit MathJaxKI
Jagster:
Das Forum verwendet MathJax für Mathematik und Gleichungen. Manchmal ist eine Gleichung so lang, dass sie nicht auf einen mobilen Bildschirm passt. Gibt es eine Möglichkeit, die Gleichung irgendwie in mehrere Zeilen aufzuteilen?
Antwortende KI:
MathJax unterstützt das automatische Zeilenumbruch für Gleichungen nicht direkt, aber Sie können einige Techniken verwenden, um lange Gleichungen besser auf mobile Bildschirme zu passen. Hier sind ein paar Tipps:
Verwenden Sie die align-Umgebung: Sie können die Gleichung mit der align-Umgebung in mehrere Zeilen aufteilen. Dies ermöglicht es Ihnen, Teile der Gleichung über mehrere Zeilen hinweg auszurichten und zu verteilen. Zum Beispiel:
$$
\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}
$$
Verwenden Sie die split-Umgebung: Dies ist eine weitere Möglichkeit, eine Gleichung in mehrere Zeilen aufzuteilen. Sie ist besonders nützlich, wenn Sie die Gleichung in Teile aufteilen möchten, ohne dass eine Ausrichtung erforderlich ist. Zum Beispiel:
$$
\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}
$$
Verwenden Sie die multline-Umgebung: Diese Umgebung ist für lange Gleichungen konzipiert, die nicht auf eine einzige Zeile passen. Sie teilt die Gleichung ohne Ausrichtung in mehrere Zeilen auf. Zum Beispiel:
$$
\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}
$$
Diese Umgebungen ermöglichen es Ihnen, die Darstellung von Gleichungen zu steuern und sicherzustellen, dass sie auch auf kleineren Bildschirmen lesbar sind. Denken Sie daran, dass MathJax-Umgebungen oft das amsmath-Paket erfordern, das in MathJax normalerweise standardmäßig aktiviert ist.
@Jagster Dies sollten gute Lösungen sein. Ich wollte ursprünglich eine horizontale Bildlaufleiste für die Formel einstellen, aber das war nicht erfolgreich.
Es wird zwar richtig dargestellt, aber es gibt keine Bildlaufleiste, um die gesamte Mathematik zu sehen. In der Vorschau gibt es jedoch eine.
Im Beitrag kann man den anderen Teil nur sehen, wenn man zoomt:
Im Vorschaufenster, während Sie einen Beitrag entwerfen, scrollt das Vorschaufenster nach oben, wenn die SVG gerendert wird. Gibt es eine Einstellung, die geändert werden kann, damit das Scrollen zur untersten Position zurückkehrt?
Ich muss jedes Mal nach unten scrollen, wenn ich Mathematik bearbeite, was meine Dozenten ärgert, aber ich habe es ertragen.
Nach einem vollständigen Update/Neubau scheint die Mathematik korrekt gerendert zu werden
Für diejenigen, die es noch nicht gehört haben, dieses Plugin ist jetzt im Kern gebündelt. Bitte siehe Revision/Neubau 2 von 3 dieses Beitrags, um dies zu zeigen.
Mit dabei! Entschuldigung, dass ich Besorgnis erregt habe. Sie sollten jetzt startklar sein.
Dieses Plugin ist jetzt Teil des Discourse-Kerns im Rahmen von Bundling more popular plugins with Discourse core. Wenn Sie selbst hosten und das Plugin verwenden, müssen Sie es vor Ihrem nächsten Upgrade aus Ihrer app.yml entfernen.
Ich habe ein Problem mit mathematischen Zeichen in den KI-Antworten. Sie gibt mir Antworten im Latex-Format, obwohl ich die erforderliche Aufforderung eingegeben habe. Dies erzeugt ein Bild, als ob es kaputte Zeichen gäbe. Können Sie dieses Problem lösen? Beispiel;
\( 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{korrekt automatisch}) \\
A_{21} = B^T_{21} \Rightarrow z = y \\
A_{22} = B^T_{22} \Rightarrow 2y = 8 \\
\end{cases}
\]
Ich habe zuvor Lösungen aus der OpenAI-Community geteilt.
Ich habe auch dieses Problem. Meine Empfehlung wäre:
Melden Sie sich für ein Konto beim KI-Anbieter an
Weisen Sie das KI-Konto an:
Merken Sie sich für zukünftige Antworten, dass Discourse mit MathJax/Katex $…$$$…$$ Inline- oder zentrierter Formatierung über mehrere Zeilen kompatibel ist.
Sie sollten feststellen, dass Ihre Ausgabe besser kopierbar ist, wenn Sie in Ihrem KI-Konto angemeldet sind.
Sie müssen möglicherweise weiterhin auf das beste Gedächtnis drängen
Ein weiterer guter Tipp, um ChatGPT zu ermutigen, sich zu erinnern, ist, dass Sie keine mathematischen Formeln in den Titeln von Details-Bereichen rendern können