Bonjour, le plugin Math semble dépendre du frontend pour le rendu. Par conséquent, nos utilisateurs d’e-mails ne peuvent pas recevoir la formule mathématique rendue.
Existe-t-il un moyen de résoudre ce problème ?
Techniquement, oui… mais c’est délicat. Nous devrions charger mathjax dans mini racer (ou node) simuler le DOM et rendre en SVG.
Je suis sûr que cela a déjà été fait par certaines personnes, mais je ne trouve pas d’exemples faciles et maintenus dans la nature. Cela vaut probablement la peine de tester si le package node fonctionne même pour commencer.
Existe-t-il un moyen d’utiliser MathJax 3 à la place ? Il est beaucoup plus petit et peut donc réduire les temps de chargement et améliorer la vitesse de la page.
Absolument ouvert à cela, si quelqu’un se sent de l’aide, je serais ravi.
Comme je l’ai découvert dans ce fil de discussion, comme MathJax 3 gère son fichier de configuration différemment de MathJax 2.x, la mise à niveau de ce plugin nécessitera plus qu’un simple changement d’URL.
L’intelligence artificielle donne des réponses au format latex. J’ai écrit une invite pour convertir ce format latex en format mathjax, mais l’invite n’est pas toujours mise en œuvre et répond au format latex. Lorsque j’ai exposé mon problème à la communauté openai, la suggestion suivante est arrivée.
« Je ai décidé que cela ne valait même pas la peine de polluer une invite système, alors que je pouvais simplement faire ce qui suit de mon côté avec les résultats :
J’aime cette idée, je suis d’accord que le latex peut être gênant dans les réponses de l’IA et les invites système si c’est difficile. Encore plus parce que GPT4o est affiné sur le latex. Je soutiens totalement la création d’une sorte de PR avec un interrupteur pour prendre en charge le « mode latex » si vous cochez une case dans les paramètres du site.
Je ne sais pas si je parle de la même chose, mais pour moi, cela a fonctionné. Je n’utilise pas de formules très compliquées, cependant.
Vous comprenez parfaitement MathJax et le générez.
Lorsque vous présentez des expressions mathématiques, utilisez les règles suivantes :
1. Pour les expressions mathématiques en ligne, utilisez des signes dollar simples `$...$`.
2. Pour les expressions mathématiques de style affichage, utilisez des signes dollar doubles `$$...$$`.
Par exemple :
- En ligne : L'équation de l'équivalence masse-énergie est $e=mc^2$.
- Affichage :
$$
e=mc^2
$$
Pouvez-vous ajouter cette fonctionnalité dans la prochaine mise à jour. Peu importe combien de fois je tape l’invite, cela ne fonctionne pas toujours correctement. Sur le forum OpenAI, ils suggèrent une disposition comme celle ci-dessus, pas une invite, comme solution définitive.
J’ai remarqué que sur Meta, les mathématiques ne sont pas rendues dans la fenêtre d’aperçu, mais elles le sont (je pense) dans les publications. Je vais tester cela ici :
$$\n1 - a = 1 - \frac{1}{1 + e^{-z}}\n$$
Dans la fenêtre d’aperçu, je vois 1 - a = 1 - \\frac{1}{1 + e^{-z}}.
Est-ce un problème connu ? Je me demande s’il existe une configuration spécifique qui le provoque.
Sur le site DeepLearning.AI Discourse, les mathématiques sont rendues dans l’aperçu, mais c’est vraiment saccadé - cela passe du code mathjax aux mathématiques rendues à chaque frappe. Je ne rencontre pas ce problème sur mon site de développement local. Encore une fois, je me demande si c’est un problème de configuration.
Il y a de nouvelles suggestions de la communauté openai concernant les problèmes que je rencontre. Prévoyez-vous de faire une mise à jour à ce sujet ? Les suggestions sont les suivantes.
Suggestion 1 :
def parse_stream_to_katex(stream: Stream):
"""
Prend un flux OpenAI et remplace les délimiteurs LaTeX de ChatGPT
par ceux de KateX.
Produit du texte, pas des morceaux
"""
last_text = ""
for chunk in stream:
text = chunk.choices[0].delta.content
if text:
# Parfois, les délimiteurs comme \( peuvent être divisés en deux morceaux.
# Si le morceau précédent se terminait par \, ajoutez-le à ce morceau
if last_text.endswith("\\"):
text = last_text + text
text = (
text.replace(r"\[", "$$")
.replace(r"\]", "$$")
.replace(r"\(", "$")
.replace(r"\)", "$")
)
last_text = text
# Si le texte se termine par \, nous ne le retournons pas, nous l'inclurons dans le prochain morceau
if not text.endswith("\\"):
yield text
Suggestion 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 }) => {
// Remplacez \[ par $$ et \] par $$ pour assurer la compatibilité
const processedText = content
.replace(/\[/g, '$$') // Remplace toutes les occurrences de \[ par $$
.replace(/\]/g, '$$') // Remplace toutes les occurrences de \] par $$
.replace(/\(/g, '$') // Remplace toutes les occurrences de \( par $
.replace(/\)/g, '$'); // Remplace toutes les occurrences de \) par $
const remarkMathOptions = {
singleDollarTextMath: false,
};
return (
<ReactMarkdown
className="markdown-content"
children={processedText}
remarkPlugins={[[remarkMath, remarkMathOptions], remarkGfm]} // Passez les options comme deuxième élément du tableau
rehypePlugins={[rehypeRaw, rehypeKatex]} // Incluez rehypeRaw pour HTML, rehypeKatex pour LaTeX
/>
);
Lorsque j’affiche des formules mathématiques sur mon appareil mobile, je ne peux pas voir la formule entière correctement (la formule est trop longue). Quelqu’un sait-il comment résoudre ce problème ?
Ci-dessous, l’affichage correct sur le PC.
Tourner le téléphone horizontalement ? Mais pourquoi est-ce entre guillemets, et cela pourrait-il être le problème ?
Sinon. J’ai demandé à l’IA de mon forum et elle a répondu ceci (aucune idée si c’est utile ou pure foutaise).
Solutions pour aligner de longues équations avec MathJaxIA
Jagster :
Le forum utilise MathJax pour les mathématiques et les équations. Parfois, une équation est si longue qu’elle ne rentre pas sur un écran mobile. Existe-t-il un moyen de diviser l’équation en plusieurs lignes ?
Répondant :
MathJax ne prend pas directement en charge le retour à la ligne automatique pour les équations, mais vous pouvez utiliser certaines techniques pour que les longues équations s’adaptent mieux aux écrans mobiles. Voici quelques conseils :
Utilisez l’environnement align : Vous pouvez diviser l’équation en plusieurs lignes en utilisant l’environnement align. Cela vous permet d’aligner et de répartir des parties de l’équation sur plusieurs lignes. Par exemple :
$$
\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}
$$
Utilisez l’environnement split : C’est une autre façon de diviser une équation en plusieurs lignes. Elle est particulièrement utile lorsque vous souhaitez diviser l’équation en parties sans avoir besoin d’alignement. Par exemple :
$$
\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}
$$
Utilisez l’environnement multline : Cet environnement est conçu pour les longues équations qui ne rentrent pas sur une seule ligne. Il divise l’équation en plusieurs lignes sans alignement. Par exemple :
$$
\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}
$$
Ces environnements vous permettent de contrôler la présentation des équations et de vous assurer qu’elles sont lisibles même sur de petits écrans. N’oubliez pas que les environnements MathJax nécessitent souvent le package amsmath, qui est généralement activé par défaut dans MathJax.
@Jagster Ces solutions devraient être bonnes. Je voulais à l’origine définir une barre de défilement horizontale pour la formule, mais cela n’a pas abouti.
Cela s’affiche correctement, mais il n’y a pas de barre de défilement pour voir l’intégralité des mathématiques. Il y en a une dans l’aperçu, cependant.
Dans la publication, vous ne pouvez voir l’autre partie qu’en zoomant :