كيف تترجم مستند LaTeX دون إفساد الرياضيات أو الاستشهادات أو التسميات
ما الذي يجب ترجمته في ملف .tex، وما الذي يجب تركه كما هو، ولماذا يمكن لملف مترجم أن يُصرَّف بنجاح ومع ذلك يفقد نصه. مع ملف نموذجي، وأداتَي فحص مجانيتين، واختبار محلي لنموذج لغوي كبير من 9 محاولات.

لترجمة مستند LaTeX، ترجم النثر والوسائط الموجَّهة للقارئ في الأوامر، مثل عناوين الأقسام والتسميات التوضيحية والحواشي ونصوص الروابط. اترك الأوامر وأسماء البيئات ومفاتيح \label و\ref و\cite والرياضيات وكتل النص الحرفي كما هي تمامًا. ثم أجرِ تغييرًا واحدًا لا ينبغي لأي مترجم أن يجريه نيابة عنك: اضبط التمهيد للغة الهدف، لأن الملف الذي يحتفظ بتمهيده الإنجليزي قد يُصرَّف دون خطأ ومع ذلك ينتج PDF يخلو من النص المترجم.
هذه النقطة الأخيرة هي النتيجة الرئيسية لاختبار صغير. ترجمنا ورقة LaTeX من 98 سطرًا إلى الصينية المبسطة تسع مرات باستخدام نموذج محلي، بثلاث طرق مختلفة، وفحصنا كل نتيجة بسكربت ومصرِّف. الأجزاء التي يقلق الناس بشأنها عادةً صمدت في المحاولات التسع جميعًا: التسميات والمراجع والاستشهادات والمعادلات وعناوين URL وأعمدة الجداول والأقواس عادت سليمة، وكل إحالة متقاطعة حُلَّت. كانت المشكلات في مكان آخر. المحاولات الست التي قال فيها الموجِّه "لا تغيّر التمهيد" أطاعت، وصُرِّفت برمز خروج 0، وأنتجت ملفات PDF لا تحتوي على أي نص صيني على الإطلاق. إحدى المحاولات طبّقت قاعدة "اهرب من علامة %" داخل قائمة شيفرة، فيطبع PDF شرطة مائلة عكسية شاذة. وثلاث محاولات على الأقل غيّرت معنى جملة بطرق لا يمكن لأي فحص بنيوي رؤيتها.
إجابة سريعة: ما الذي تترجمه وما الذي تتركه
| جزء من الملف | مثال من نموذجنا | هل تترجمه؟ |
|---|---|---|
التمهيد: \documentclass، \usepackage، \newcommand | \newcommand{\wpm}{\mathrm{wpm}} | لا، لكن أضف إعداد اللغة الهدف بنفسك (انظر أدناه) |
\title, \author, \date | \title{Estimating Reading Time for Translated Ebooks} | العنوان والتاريخ نعم؛ الأسماء عادةً لا |
| العناوين | \section{Method}\label{sec:method} | نعم، النص داخل الأقواس؛ احتفظ بالتسمية |
| التسميات والمراجع | \label{eq:time}, Section~\ref{sec:method}, \eqref{eq:time} | احتفظ بكل مفتاح |
| الاستشهادات ومفاتيح المراجع | \cite{brysbaert2019}, \bibitem{rayner2016} | احتفظ بالمفاتيح؛ ترجم نص المدخل فقط إذا كان مجالك يفعل ذلك |
| الرياضيات المضمّنة والمعروضة | $r_c$, T = \frac{N}{r} | لا |
| النص داخل الرياضيات | \text{ for English silent reading.} | نعم. يُطبع كنص عادي. |
| الماكروات التي تأخذ نصًا | \term{characters per minute} | ترجم الوسيط، واحتفظ بالأمر |
| التسميات التوضيحية والحواشي | \caption{Reading rates used in this paper.} | نعم |
| القوائم الحرفية والبرمجية | shelfmark count --unit chars book.epub # 100% of body text | لا، بما في ذلك التعليقات داخلها |
\url والوسيط الأول لـ \href | \href{https://example.org/shelfmark/survey}{online appendix} | احتفظ بعنوان URL؛ وترجم نص الرابط |
| الأحرف المهرَّبة | 20\%, \$12, R\&D | احتفظ بالشرطة المائلة العكسية في النص العادي |
تعليقات % | % TODO: replace the Chinese rate ... | اختيارية. لا يراها القراء أبدًا. |
| الروابط غير القابلة للفصل قبل المراجع | Table~\ref{tab:rates} | احتفظ بها في اللغات التي تستخدم المسافات؛ اختيارية في الصينية واليابانية |
كل ما عدا ذلك نص عادي: الفقرات، والملخص، وعناصر القوائم، وخلايا الجداول.
ما الذي اختبرناه
كتبنا sample-source.tex، وهو بحث قصير مبتكر حول تقديرات وقت القراءة لتطبيق خيالي يُدعى Shelfmark. يُترجم دون أخطاء ويحتوي على مثال واحد لكل تركيب في الجدول أعلاه، بالإضافة إلى جدول booktabs، وشكل مع تعليق توضيحي، وتعليقين %، وكتلة verbatim تحتوي على % مجردة، وقائمة مراجع مدمجة.
ثم طلبنا من نموذج محلي ترجمته إلى الصينية المبسطة بثلاث طرق:
- الملف كاملًا. الصق الملف بأكمله واطلب ملفًا مترجمًا لا يزال يُترجم دون أخطاء.
- مع التعليمات. نفس الشيء، بالإضافة إلى سبع قواعد: لا تغير الديباجة، واحتفظ بكل أمر وبيئة وتسمية ومرجع ومفتاح استشهاد، واترك الرياضيات كما هي باستثناء
\text{}، واترك كتل verbatim وعناوين URL كما هي، واحتفظ بالأحرف الخاصة مهرَّبة، واحتفظ بالروابط غير القابلة للفصل، وترجم النص العادي والتعليقات التوضيحية والحواشي ونص الروابط. - المقاطع. أبقِ الديباجة خارج الطلب تمامًا (يُرسل سطر
\titleفقط، لذا يبقى\dateبالإنجليزية)، وقسّم المتن عند الأسطر الفارغة، وتجاوز كتلة verbatim، وأرسل كل قطعة مع نفس القواعد، ثم أعد التجميع.
كان النموذج Qwen 3.6 27B (Q4_K_M) في LM Studio، مع إيقاف التفكير ودرجة حرارة 0.3، على جهاز Apple M4 Max بذاكرة 64 جيجابايت. شغّلنا كل حالة ثلاث مرات، أي تسع مرات إجمالًا، في 26 أكتوبر 2026. السكريبت هو run_llm_latex_test.py، وجميع المخرجات التسعة منشورة دون تحرير في مجلد المخرجات. إذا لم تكن قد أعددت نموذجًا محليًا من قبل، فإن دليل ترجمة LLM المحلي يغطي الإعدادات.
ترجمنا كل مخرج باستخدام Tectonic 0.17.0، الذي يستخدم محرك XeTeX، مرة تمامًا كما أُعيد، ومرة مع إضافة إعداد صيني إلى الديباجة. ثم قرأنا النص مرة أخرى من كل PDF. كان هذا اختبارًا صغيرًا لنموذج واحد وزوج لغوي واحد وملف واحد. يوضح المشكلات التي تحدث وكيفية اكتشافها. لا يصنف النماذج أو المطالبات.
النتيجة: نجت البنية؛ والديباجة قررت ما إذا كان النص سيظهر
قارن check_latex_translation.py كل مخرج بالمصدر، وترجمه compile_check.py. المخرجات الكاملة موجودة في check-results.txt وcompile-results.txt، ويحتوي results.csv على صف واحد لكل تشغيل.
| الفحص | الملف كاملًا | تم التعليم | المقاطع |
|---|---|---|---|
| التسميات والمراجع والاستشهادات ومفاتيح الببليوغرافيا دون تغيير | 3 من 3 | 3 من 3 | 3 من 3 |
الرياضيات دون تغيير (النص داخل \text{} مترجم) | 3 من 3 | 3 من 3 | 3 من 3 |
| عناوين URL والأقواس وأعمدة الجدول سليمة | 3 من 3 | 3 من 3 | 3 من 3 |
| أضاف النموذج حزمة صينية إلى المقدمة | 3 من 3 | 0 من 3 | 0 من 3 |
| يُترجم كما تم إرجاعه | 3 من 3 | 3 من 3 | 3 من 3 |
| النص الصيني موجود فعليًا في PDF كما تم إرجاعه | 3 من 3 | 0 من 3 | 0 من 3 |
| كتلة حرفية دون تغيير | 3 من 3 | 2 من 3 | 3 من 3 |
تعليقات % تُركت بالإنجليزية | 3 من 3 | 3 من 3 | 1 من 3 |
| كل مرجع واستشهاد يُحل بعد إضافة الإعداد الصيني | 3 من 3 | 3 من 3 | 3 من 3 |
أبلغ مدققنا في البداية عن تغيير في الرياضيات في التشغيل الأول. كانت الرياضيات سليمة: ترتيب الكلمات الصيني وضع $N$ قبل $r$ في جملة واحدة. لهذا السبب يقارن المدقق المنشور مقاطع الرياضيات كمجموعة غير مرتبة، لذا يُسمح بإعادة الترتيب ولكن ليس بتغيير الرمز.
1. "لا تلمس المقدمة" أنتج ملف PDF خالياً من الصينية
تبدو قاعدة المقدمة كأكثر تعليمات آمنة يمكنك تقديمها. مقدمة نموذجنا تحمّل amsmath وbooktabs وhyperref وتعرف ثلاثة وحدات ماكرو، ولا شيء من ذلك يحتاج إلى ترجمة. لذا تركتها التشغيلات الموجّهة والمقسّمة دون تغيير، تماماً كما طُلب.
لكن الخطوط الافتراضية في إعداد LaTeX القياسي لا تحتوي على أحرف صينية. كل واحد من تلك الملفات الستة تم تجميعه برمز خروج 0. حذّر Tectonic، مرة لكل حرف مفقود، بأسطر مثل Missing character: There is no 估 (U+4F30) in font [lmroman17-regular]، وسجّل ملف السجل بين 554 و577 تحذيراً في كل تشغيل. لكن التحذير لا يوقف البناء. عندما استخرجنا النص من تلك الملفات الستة PDF، كانت تحتوي على أسماء المؤلفين والأرقام والرياضيات، وصفر أحرف صينية. أما ملفات PDF الثلاثة الكاملة فاحتوت على 481 إلى 490. سكربت بناء يتحقق فقط من نجاح التجميع، أو شخص يلقي نظرة سريعة على نهاية المخرجات، كان سيشحن الستة جميعاً.
التشغيلات الثلاثة الكاملة، التي لم تكن لديها هذه القاعدة، أضافت \usepackage{ctex} من تلقاء نفسها، وكانت ملفات PDF الخاصة بها كاملة. هذا ليس سبباً للسماح لنموذج بإعادة كتابة مقدمتك. إنه سبب لرؤية إعداد اللغة الهدف كجزء من مهمة الترجمة، يُنجز مرة واحدة، بواسطتك:
- الصينية: حمّل ctex، الذي يدعم pdfLaTeX وXeLaTeX وLuaLaTeX. افتراضياً يختار خطوطاً لنظام التشغيل الخاص بك؛ يُظهر سجلنا أنه يحمّل مجموعة خطوط macOS. إذا كان الملف يجب أن يُجمّع بنفس الطريقة على أجهزة أخرى، فإن
\usepackage[UTF8,fontset=fandol]{ctex}يستخدم خطوط Fandol المجانية الموزعة مع TeX Live، والتي يقوم Tectonic أيضاً بتنزيلها عند الطلب. هذا ما يضيفهcompile_check.py. - لغات أخرى: حمّل babel مع اللغة الهدف، حتى تتبع الواصلة والكلمات المولّدة مثل "Figure" و"Table" و"Abstract" اللغة الجديدة. اليابانية والكورية واللغات من اليمين إلى اليسار تحتاج كل منها إلى إعداد خاص بها.
بعد التجميع، افحص السجل بحثاً عن Missing character واقرأ ملف PDF، وليس رمز الخروج فقط. اختبرنا فقط XeTeX عبر Tectonic؛ المحركات الأخرى تبلغ عن خط مفقود بشكل مختلف.
2. تسربت قاعدة التهريب إلى قائمة الكود
قالت تعليماتنا بالحفاظ على تهريب الأحرف الخاصة، وفي النثر هذه هي القاعدة الصحيحة: علامة % العارية في LaTeX تبدأ تعليقاً وتبتلع بقية السطر بصمت. حافظت التشغيلات التسعة جميعها على 20\% في الملخص.
في التشغيل الموجَّه الأول، طبّق النموذج القاعدة أيضًا داخل كتلة verbatim وترجم تعليق الكود هناك:
source: shelfmark count --unit chars book.epub # 100% of body text
translation: shelfmark count --unit chars book.epub # 100\% 正文
داخل verbatim، لا شيء يُعدّ أمرًا، لذا يطبع ملف PDF 100\% مع الشرطة المائلة العكسية. الحل ليس موجهًا أفضل. لا ترسل كتل verbatim أو lstlisting أو minted إلى المترجم إطلاقًا، كما فعل شرط المقاطع. ثم ترجم أي تعليق فيها يدويًا إذا احتاج قراؤك إلى ذلك.
3. التزمت التعليقات بحدود الطلب
يحتوي الملف على تعليقين بـ %: ملاحظة فوق تعريفات الماكرو وقائمة TODO فوق قائمة الكود. تركت عمليات التشغيل على الملف كاملًا والتشغيل الموجَّه كليهما باللغة الإنجليزية. ترجم شرط المقاطع قائمة TODO في اثنين من أصل ثلاثة تشغيلات، لأن قائمة TODO صادف أنها وقعت في نفس الكتلة التي أرسلناها للترجمة. كما أضافت عمليتا تشغيل على الملف كاملًا تعليقًا خاصًا بهما بعد الحزمة التي أدخلتاها.
لا شيء من هذا يغيّر ملف PDF. لكنه يهم إذا عاد المصدر المترجم إلى مؤلفين مشاركين أو إلى مستودع، حيث لم تعد قائمة TODO المترجمة تطابق الأصل ويظهر تعليق إضافي في كل فرق. يُبلغ المدقق عن التعليقات المترجمة كتحذير لتقرر أنت.
4. نجحت الفحوصات البنيوية ومع ذلك تغيّر المعنى
يقول الملخص إن "التسمية التي تنحرف بنسبة 20% لا تزال مفيدة". في ثلاثة من أصل تسعة تشغيلات، قال النص الصيني إن التسميات التي بها خطأ ضمن 20% لا تزال مفيدة، مما يحوّل التسامح إلى عتبة. أعادت عدة تشغيلات أخرى ترتيب الجملة بحيث ترتبط جملة "على الرغم من" بالفكرة الخاطئة، وأصبحت إحداها صعبة المتابعة. هذه أحكام من قارئ واحد يقارن الصينية بالإنجليزية، وليست مراجعة معماة، لكن النقطة لا تعتمد على العدد الدقيق: فقد نجحت كل الفحوصات البنيوية على تلك الملفات، لأن 20\% والماكرو والأقواس كانت كلها صحيحة.
كان هناك تغييران آخران مقبولين لكن من المفيد معرفتهما. كتبت عمليات التشغيل على الملف كاملًا \$12 على هيئة 12 دولارًا أمريكيًا، مما يزيل مسألة التهريب تمامًا. كما أسقطت عمليتا تشغيل على الملف كاملًا معظم روابط ~ قبل \ref و\cite. هذا غير ضار في الصينية، التي لا تضع مسافات بين الكلمات، لكن في لغة تضع مسافات، يسمح رابط مفقود لفاصل سطر بفصل "الجدول" عن رقمه. يُبلغ المدقق عن الروابط كتحذير، لا كفشل.
يخبرك الفحص البنيوي أن الملف لا يزال يعمل. لكنه لا يستطيع أن يخبرك أن الورقة لا تزال تقول الشيء نفسه. لذلك، استخدم قراءة ثنائية اللغة للملخص والادعاءات والأرقام، كما هو موضح في دليلنا حول مراجعة ورقة بحثية مترجمة.
سير عمل يصمد
-
احصل على المصدر، وتحقق مما يجوز لك فعله به. على arXiv، عادةً ما توفر الأوراق المقدمة بصيغة TeX مصدرها عبر رابط Source في صفحة الملخص أو صفحة Other formats، كملف مضغوط بـ gzip أو أرشيف tar عند وجود عدة ملفات (مساعدة arXiv). الترجمة لقراءتك الخاصة شيء. ونشر الترجمة شيء آخر: فترخيص arXiv غير الحصري يحد من إعادة الاستخدام من قبل الآخرين، بينما يسمح CC BY وCC BY-SA بالتكييف مع الإسناد، ولا يسمح CC BY-NC-ND بذلك. اسأل المؤلفين عند الشك.
-
قم بتجميع الأصل أولًا. إذا لم يُجمَّع قبل الترجمة، فلا شيء تتعلمه بعد ذلك موثوق. احتفظ بملف PDF الأصلي للمقارنة.
-
قم بإعداد اللغة الهدف في الديباجة بنفسك. أضف
ctexأوbabelكما هو موضح أعلاه، وجمّع مرة واحدة مع النص الإنجليزي، ثم أودع هذا التغيير بشكل منفصل. -
ترجم المتن بدون الديباجة وبدون كتل verbatim. استخدم أداة تحلل LaTeX، أو أرسل المتن على شكل قطع بقواعد صريحة، كما في شرط المقاطع لدينا. TransLaTeX، أداة مفتوحة المصدر مبنية لهذا الغرض، تستبدل تراكيب LaTeX برموز قبل إرسال النص إلى مترجم آلي. وتقول وثائقها أيضًا إنها تحافظ على رأس المستند دون تغيير، ولا تدعم الماكرو، وتتعامل مع المستندات ذات الملف الواحد فقط، دون
\input. حتى الأداة المخصصة تترك قرار الديباجة لك. -
شغّل الفحص البنيوي على كل زوج من الملفات.
python3 check_latex_translation.py main.tex main-zh.tex --keep Shelfmarkيقارن الديباجة وأسماء الأوامر وترتيب البيئات والتسميات والمراجع والاستشهادات ومفاتيح الببليوغرافيا والرياضيات وكتل verbatim وعناوين URL و
%و&و#غير المهربة وتوازن الأقواس والروابط والتعليقات وأي مصطلحات تطلب الاحتفاظ بها. توقع فشل سطر الديباجة بعد الخطوة 3 عند المقارنة مع الأصل؛ قارن مع ملفك الإنجليزي المحدث بدلًا من ذلك. بالنسبة لمشروع مقسم عبر عدة ملفات\input، افحص كل زوج. -
جمّع واقرأ ملف PDF.
python3 compile_check.py main-zh.texيبلغ عن المراجع غير المحلولة (
??) والاستشهادات غير المحلولة ([?]) والمحارف المفقودة. ثم افتح ملف PDF واقرأ الملخص وكل تعليق توضيحي وكل جدول مقابل الأصل. -
قم بقراءة ثنائية اللغة للادعاءات والأرقام. هنا كانت ستُكتشف جملنا الثلاث المتغيرة. احتفظ بـ مسرد ترجمة قصير للمصطلحات التقنية للورقة حتى لا يُترجم المصطلح نفسه بثلاث طرق.
أين يتناسب BookTranslator
يقبل مترجم المستندات من BookTranslator ملفات .tex إلى جانب PDF وDOCX وEPUB وMarkdown وغيرها من التنسيقات المهيكلة. تقول الأسئلة الشائعة إن النتيجة تُعاد في "ملف قابل للاستخدام ومناسب للتنسيق كلما دعم ذلك التنسيق".
لا تصف صفحة المنتج كيفية تعاملها مع ماكرو LaTeX أو الرياضيات أو الديباجة، ولم نشغّل هذه العينة عبر BookTranslator لهذا المقال. أيًا كانت الأداة التي تستخدمها، نفّذ الخطوات من 1 إلى 3 قبل الترجمة والخطوات من 5 إلى 7 بعدها. الملف الذي يحتفظ بديباجة إنجليزية فقط سيظل يُجمَّع دون نص صيني، والادعاء المتغير سيظل يجتاز كل فحص بنيوي.
إذا كان لديك فقط ملف PDF لورقة بحثية، وليس مصدرها، فسير العمل مختلف: راجع دليلنا حول ترجمة ورقة بحثية مع الحفاظ على هيكلها. إذا كان مصدرك Markdown بدلًا من LaTeX، فإن نفس الفصل بين الآلية والنثر ينطبق، مع فخاخ مختلفة؛ اختبرناها في كيفية ترجمة ملفات Markdown.
احصل على ملفات الاختبار
كل ما في هذا الاختبار متاح لإعادة الاستخدام مجانًا:
- sample-source.tex: النموذج الإنجليزي المكوّن من 98 سطرًا؛
- check_latex_translation.py: أداة الفحص البنيوي (مكتبة Python القياسية فقط)؛
- compile_check.py: يُجمِّع كل ملف كما أُعيد، ومع إعداد صيني، ويحصي المراجع غير المحلولة والاستشهادات غير المحلولة والرموز الناقصة (يتطلب Tectonic وpdftotext)؛
- run_llm_latex_test.py: شروط المطالبة الثلاثة لأي خادم محلي متوافق مع OpenAI؛
- المخرجات التسعة في مجلد المخرجات، مع check-results.txt وcompile-results.txt وresults.csv.
مقالات ذات صلة





