ترقية Mathjax إلى الإصدار 4

إليك، بالمناسبة، مثال على التدقيق اللغوي للرياضيات عبر الذكاء الاصطناعي في نسخة التطوير هذه قيد التنفيذ:

ProofreadMathAI

يمكن للمستخدم اختيار تمييز تعبير رياضي محدد في محرر الماركداون (markdown editor) وطلب تدقيقه لغويًا. قد يكون من الجيد توفير ذلك كخيار في محرر الرياضيات الجديد.

إعجاب واحد (1)

@sam اتضح أن KaTeX لا يعمل بشكل صحيح في المكوّن الإضافي الجديد. إذا ألقيت نظرة عليه، فمن الواضح تمامًا أنها مشكلة نقص في الخطوط، وبالفعل، تشير وحدة التحكم إلى وجود مجموعة من ملفات الخطوط (Woff-v2) غير موجودة.

الخطوط موجودة بالفعل في الموقع الصحيح، والذي يجب أن يكون في مجلد يسمى ‘fonts’ مجاور لورقة الأنماط. كلا الملفين موجودان في نسخة التطوير الخاصة بي، على سبيل المثال:
http://localhost:4200/plugins/discourse-math/katex/katex.min.css
و
http://localhost:4200/plugins/discourse-math/katex/fonts/KaTeX_Size2-Regular.woff2

عندما نلقي نظرة على علامة التبويب “Network” (الشبكة) في وحدة التحكم، يبدو أنه يحاول تنزيل شيء مثل
http://localhost:4200/t/my-topic/fonts/KaTeX_Size2-Regular.woff2

وبالتالي، يبحث المتصفح في مجلد ‘fonts’ مجاور لعنوان URL الخاص بالموضوع، وهو أمر خاطئ بوضوح.

أفترض أن كل هذا له علاقة بدالة loadKaTeX المعرفة في katex-bundle، والتي أعتقد أنها تقوم بتحميل KaTeX بطريقة غير قياسية مما يؤدي إلى عدم معرفة KaTeX حقًا بمكان وجود ملف CSS. ومع ذلك، لا أعرف كيفية إصلاحه.

إعجابَين (2)

شكرًا جزيلاً لك مارك، لقد قمت بدمج التزاماتك، وسألقي نظرة على أمر Katex اليوم

هل يتم ذلك فقط عبر موجه (prompt) مخصص لشخصية المدقق اللغوي؟

لا تقلق بشأن ذلك، أنا ومارك نسيطر على الأمر.

3 إعجابات

رائع في كلتا الحالتين!

هذا صحيح تمامًا - نعم. من الواضح أنه من حسن الحظ أن “التدقيق اللغوي” هو وصف قريب بما فيه الكفاية لما أريده أن يفعله.

3 إعجابات

لقد دفعت للتو إصلاحًا لـ KaTeX، أخبرني إذا كان يعمل، أحتاج إلى مراجعته مع @david للتأكد من أنه آمن، نمط تحميل CSS الخاص بنا غير متوافق مع الروابط النسبية داخل ملف CSS لأننا نقوم بتضمين ورقة أنماط.

إعجابَين (2)

ملاحظة، لقد نقلت هذا إلى موضوع مخصص جديد لأنه كان يضيع ويصبح صاخبًا بعض الشيء في موضوع الرياضيات الرئيسي. أتطلع حقًا إلى هذا الترقية، أشعر أننا قريبون جدًا.

5 إعجابات

يبدو أن KaTeX يعمل بشكل جيد بالنسبة لي مع آخر تثبيت لك!

يبدو لي أن بعض الاختبارات لم تنجح ولكني أتفق على أن الوظيفة كلها موجودة.

أنا متحمس أيضًا! :rocket:

4 إعجابات

إذا كان أي شخص يتوق لتجربة هذه النسخة الجديدة أو إذا كان (مثلي) لا يستطيع الانتظار لأن لديه فصولاً ستستخدمها بدءًا من بضعة أيام، فيمكنك تثبيت هذه النسخة المستقلة هنا:

لقد بنيتها على أساس هذا الالتزام، أعتقد، وقمت بتغييرها لسحب MathJax من شبكة توصيل المحتوى (CDN)، بدلاً من سحبه داخليًا.

يمكنك رؤيتها قيد العمل في هذا المنشور على موقع Discourse الخاص بي.

إعجاب واحد (1)

أعتقد أنه من المفيد الإشارة إلى أن هذا الترقية ستكون أكبر بكثير من مجرد ترقية لـ MathJax. بل ستعمل أيضًا على:

  • تخفيف التحليل بطريقة ستعمل بشكل أفضل مع نماذج اللغة الكبيرة (LLMs)، كما طُلب هنا: requested here و
  • إصلاح المشكلات المتعلقة بالمحرر الغني الجديد، كما تم الإبلاغ عنه هنا: reported here.
إعجابَين (2)

@sam و @david

أرى أنه قد تم دمج طلب السحب هذا، وألاحظ أيضًا أن كلاكما بذل جهدًا كبيرًا لدفع هذا الأمر إلى خط النهاية - لذا شكرًا جزيلاً لكما على ذلك!

لستُ أخطط لتثبيت هذه النسخة بعد، حيث أنني أمتلكها بالفعل وهي تعمل بشكل كافٍ على موقع Discourse الخاص بي؛ ومع ذلك، لديّ بعض الأسئلة.

  1. بخصوص جدول الإصدارات: يبدو أن الكود موجود بالفعل في الفرع الرئيسي (main) على GitHub. أفترض أنه إذا قام أحدهم بتثبيت نسخة Discourse جديدة تمامًا اليوم، فسيحصل تلقائيًا على هذه النسخة الجديدة من إضافة الرياضيات (math plugin). هل هذا صحيح؟
  2. بخصوص المُحمّلات (loaders): بقدر ما أستطيع أن أستنتج من الكود، يبدو أنه تم التخلي عن فكرة تعريف دالتي loadMathjax و loadKatex في الكود الأساسي. يبدو أن أحدث إصدار يعود إلى استخدام loadScript، على الرغم من أنه ليس واضحًا لي من أين يأتي هذا السكريبت. هل هذا صحيح؟ إذا كان كذلك، فلماذا؟

شكرًا مرة أخرى!

3 إعجابات

أنا حاليًا على أحدث إصدار +17 في نسخة إنتاجية تعتمد بشكل كبير على الرياضيات.

من الجيد حقًا رؤية [grid] يعمل الآن بشكل صحيح على Meta - فهذا تحسن كبير في جودة الحياة للمشاركات الكثيفة بالصيغ الرياضية. أنا سعيد بتقديم تنازلات بشأن [center] عند الحاجة.

للسياق، واجهت سابقًا بعض الحالات الطرفية المتعلقة بالصيغ الرياضية داخل [grid] / [details]، والتي وثقتها هنا (في حال كانت لا تزال مفيدة):

شكرًا مرة أخرى لكل من عمل على ترقية MathJax 4 - من الرائع رؤية هذا المستوى من الإتقان يصل.

إعجابَين (2)

أواجه خطأ MathJax “التعشيش الخاطئ لهياكل المعادلات” عند استخدام \begin{align}...\end{align} داخل $$...$$. يبدو أن هذا هو MathJax يفرض قاعدة “عدم تعشيش بيئات المعادلات” بشكل أكثر صرامة أثناء أعمال ترقية الإصدار 4.

عمليًا، النمط الموثوق به في Discourse هو استخدام aligned داخل غلاف $$:

$$\n{\large\n\begin{aligned}\na &= b \\\\\n  &= c\n\end{aligned}\n}\n$$\n```

هذا يتجنب تعشيش هيكل معادلة عرض (align) داخل غلاف عرض آخر (`$$...$$`)، وهو ما يؤدي إلى ظهور الخطأ.
إعجاب واحد (1)

أنا أتفق مع تحليلك يا @Ethsim2.

هذا السلوك يتوافق مع MathJaxV4، وكذلك مع LaTeX النقي، لذا أفترض أنه لا يوجد “خطأ” هنا. بالتأكيد يجدر الإشارة إلى أن استخدام aligned بدلاً من align هو الأسلوب المتبع!

إعجاب واحد (1)