مرحباً، يبدو أن إضافة الرياضيات تعتمد على الواجهة الأمامية لعرض الصيغة. لذلك، لا يمكن لمستخدمي البريد الإلكتروني لدينا تلقي الصيغة الرياضية المعروضة.
هل هناك أي طريقة لحل هذه المشكلة؟
من الناحية الفنية، نعم… ولكن الأمر صعب. سنحتاج إلى تحميل MathJax في Mini Racer (أو Node) ومحاكاة DOM وعرضه على SVG.
أنا متأكد من أن بعض الأشخاص قاموا بذلك من قبل ولكن لا يمكنني العثور على أمثلة سهلة في البرية يتم صيانتها. ربما يستحق الأمر اختبار ما إذا كانت حزمة Node تعمل في البداية.
منفتح تمامًا على ذلك، إذا شعر شخص ما بالرغبة في المساعدة فسأكون سعيدًا.
كما تتبعت في ذلك الموضوع، نظرًا لأن MathJax 3 يتعامل مع ملف التكوين الخاص به بشكل مختلف عن MathJax 2.x، فإن ترقية هذا المكون الإضافي ستتطلب أكثر من مجرد تغيير عنوان URL.
الذكاء الاصطناعي يقدم إجابات بتنسيق لاتكس. لقد كتبت موجهًا لتحويل تنسيق لاتكس هذا إلى تنسيق MathJax، ولكن الموجه لا يتم تنفيذه دائمًا ويستجيب بتنسيق لاتكس. عندما كتبت مشكلتي إلى مجتمع OpenAI، جاء الاقتراح التالي.
"لقد قررت أنه لا يستحق حتى عناء إرباك موجه النظام، عندما يمكنني ببساطة القيام بما يلي من جانبي بالنتائج:
أعجبني هذا الاقتراح، أتفق على أن لاتكس يمكن أن يكون مزعجًا في ردود الذكاء الاصطناعي والتعليمات النظامية إذا كان الأمر صعبًا. خاصة وأن GPT4o تم ضبطه بدقة على لاتكس. أؤيد تمامًا إنشاء نوع من طلب السحب مع خيار لدعم “وضع لاتكس” إذا قمت بتحديد مربع في إعدادات الموقع.
لا أعرف ما إذا كنت أتحدث عن نفس الشيء، ولكن بالنسبة لي نجح هذا. لا أستخدم أي صيغ صعبة حقًا.
أنت تفهم MathJax بشكل كامل وتقوم بإنشائه.
عند تقديم التعبيرات الرياضية، استخدم القواعد التالية:
1. بالنسبة للتعبيرات الرياضية المضمنة، استخدم علامات الدولار المفردة `$...$`.
2. بالنسبة للتعبيرات الرياضية بأسلوب العرض، استخدم علامات الدولار المزدوجة `$$...$$`.
على سبيل المثال:
- مضمن: معادلة تكافؤ الكتلة والطاقة هي $e=mc^2$.
- عرض:
$$
e=mc^2
$$
هل يمكنك إضافة هذه الميزة في التحديث القادم. بغض النظر عن عدد المرات التي أكتب فيها الموجه، فإنه لا يعمل بشكل صحيح دائمًا. في منتدى OpenAI، يقترحون ترتيبًا مثل الترتيب أعلاه، وليس موجهًا، كحل نهائي.
لقد لاحظت أنه على Meta، لا يتم عرض الرياضيات في نافذة المعاينة، ولكنها (أعتقد) يتم عرضها في المنشورات. سأختبر ذلك هنا:
$$\n1 - a = 1 - \frac{1}{1 + e^{-z}}\n$$
في نافذة المعاينة أرى 1 - a = 1 - \\frac{1}{1 + e^{-z}}.
هل هذه مشكلة معروفة؟ أتساءل عما إذا كان هناك تكوين معين يسبب ذلك.
في موقع DeepLearning.AI Discourse، يتم عرض الرياضيات في المعاينة، ولكنه متقطع جدًا - ينتقل من كود MathJax إلى الرياضيات المعروضة مع كل ضغطة مفتاح. لا أجد هذه المشكلة على موقع التطوير المحلي الخاص بي. مرة أخرى، أتساءل عما إذا كانت هذه مشكلة تكوين.
هناك اقتراحات جديدة من مجتمع OpenAI بخصوص المشاكل التي أواجهها. هل تخططون لإجراء تحديث بخصوص هذا؟ الاقتراحات هي كالتالي:
الاقتراح 1:
def parse_stream_to_katex(stream: Stream):
"""
تأخذ دفق OpenAI وتستبدل محددات ChatGPT LaTeX
بمحددات KateX.
تُنتج نصًا، وليس أجزاءً
"""
last_text = ""
for chunk in stream:
text = chunk.choices[0].delta.content
if text:
# أحيانًا يمكن تقسيم المحددات مثل \( على جزأين.
# إذا انتهى الجزء السابق بـ \، قم بإلحاقه بهذا الجزء
if last_text.endswith("\\"):
text = last_text + text
text = (
text.replace(r"\[", "$$")
.replace(r"\]", "$$")
.replace(r"\(", "$")
.replace(r"\)", "$")
)
last_text = text
# إذا انتهى النص بـ \، فلن نعيده، سنقوم بتضمينه في الجزء التالي
if not text.endswith("\\"):
yield text
الاقتراح 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 }) => {
// استبدل \[ بـ $$ و \] بـ $$ لضمان التوافق
const processedText = content
.replace(/\[/g, '$$') // استبدل كل تكرارات \[ بـ $$
.replace(/\]/g, '$$') // استبدل كل تكرارات \] بـ $$
.replace(/\(/g, '$') // استبدل كل تكرارات \( بـ $
.replace(/\)/g, '$'); // استبدل كل تكرارات \) بـ $
const remarkMathOptions = {
singleDollarTextMath: false,
};
return (
<ReactMarkdown
className="markdown-content"
children={processedText}
remarkPlugins={[[remarkMath, remarkMathOptions], remarkGfm]} // مرر الخيارات كالعنصر الثاني في المصفوفة
rehypePlugins={[rehypeRaw, rehypeKatex]} // قم بتضمين rehypeRaw لـ HTML، و rehypeKatex لـ LaTeX
/>
);
عند عرض الصيغ الرياضية على جهازي المحمول، لا يمكنني رؤية الصيغة بأكملها بشكل صحيح (الصيغة طويلة جدًا). هل يعرف أحد كيفية حل هذه المشكلة؟
أدناه العرض الصحيح على جهاز الكمبيوتر.
هل يتم تدوير الهاتف أفقيًا؟ ولكن لماذا تم اقتباسه، وهل يمكن أن يكون هذا هو السبب؟
بخلاف ذلك. سألت الذكاء الاصطناعي في منتداي فأجاب بهذا (لا أعرف ما إذا كان مفيدًا أم مجرد هراء).
حلول لمحاذاة المعادلات الطويلة باستخدام MathJaxAI
Jagster:
يستخدم المنتدى MathJax للرياضيات والمعادلات. في بعض الأحيان، تكون المعادلة طويلة جدًا بحيث لا تتناسب مع شاشة الهاتف المحمول. هل هناك طريقة لتقسيم المعادلة إلى عدة أسطر بطريقة ما؟
Asiavastaaja:
لا يدعم MathJax بشكل مباشر التقسيم التلقائي للأسطر للمعادلات، ولكن يمكنك استخدام بعض التقنيات لجعل المعادلات الطويلة تتناسب بشكل أفضل مع شاشات الهواتف المحمولة. إليك بعض النصائح:
استخدم بيئة align: يمكنك تقسيم المعادلة إلى عدة أسطر باستخدام بيئة align. يتيح لك ذلك محاذاة وتوزيع أجزاء المعادلة عبر عدة أسطر. على سبيل المثال:
$$
\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}
$$
استخدم بيئة split: هذه طريقة أخرى لتقسيم المعادلة إلى عدة أسطر. وهي مفيدة بشكل خاص عندما تريد تقسيم المعادلة إلى أجزاء دون الحاجة إلى المحاذاة. على سبيل المثال:
$$
\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}
$$
استخدم بيئة multline: تم تصميم هذه البيئة للمعادلات الطويلة التي لا تتناسب مع سطر واحد. تقوم بتقسيم المعادلة إلى عدة أسطر دون محاذاة. على سبيل المثال:
$$
\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}
$$
تسمح لك هذه البيئات بالتحكم في عرض المعادلات وضمان سهولة قراءتها حتى على الشاشات الصغيرة. تذكر أن بيئات MathJax غالبًا ما تتطلب حزمة amsmath، والتي يتم تمكينها عادةً افتراضيًا في MathJax.
يتم عرضه بشكل جيد، ولكن لا توجد شريط تمرير لرؤية الرياضيات بأكملها. ومع ذلك، توجد في المعاينة.
في المنشور، يمكنك فقط رؤية الجزء الآخر إذا قمت بالتكبير: