انتقل إلى المحتوى
Topos Uranos

ملخص

يعلّم هذا الدرس كيف يكتب عدة مؤلفين مستندًا واحدًا دون أن يضيع عمل أو تختلط النسخ. يشرح لماذا يفشل تبادل النسخ بالبريد الإلكتروني، ولماذا يتيح المصدر المكتوب نصًّا خامًا مقارنة التغييرات ودمجها سطرًا سطرًا؛ ويقدّم Overleaf محررًا مشتركًا على الشبكة، مع دعوة المشاركين إلى مشروع، والتحرير المتزامن، والتعليقات، وتتبع التغييرات، والسجل ونسخه الموسومة، واختيار LuaLaTeX، ورفع مشروع محلي؛ ويعلّم سير العمل الأدنى في Git داخل مشروع LaTeX، مع ملفه .gitignore، وكتابة جملة واحدة في كل سطر، وحلّ تعارض في ملف .tex، بمخرجات حقيقية من مستودع تجريبي؛ ويصف تكامل Overleaf مع Git ومزامنته مع GitHub؛ ويجمع الأعراف التي ينبغي أن يتفق عليها الفريق؛ ويختم بـ latexdiff الذي ينتج ملف PDF تظهر فيه التغييرات بين نسختين.

أهداف التعلم

  1. أن يشرح لماذا يتيح المصدر المكتوب نصًّا خامًا مقارنة عمل عدة مؤلفين ودمجه، ولماذا لا يتيح ذلك ملفُّ معالج النصوص بالطريقة نفسها.
  2. أن يشارك مشروعًا في Overleaf بالصلاحية المناسبة، وأن يعلّق، ويراجع مع تتبع التغييرات، ويستعيد نسخة سابقة من السجل.
  3. أن يدير مشروع LaTeX بـ Git: إنشاء المستودع، وإيداع التغييرات، وقراءة السجل والفروق، ومزامنته مع مستودع بعيد.
  4. أن يكتب ملف .gitignore يستبعد الملفات المساعدة دون أن يستبعد ما يحتاج إليه المستند.
  5. أن يتنبأ متى يؤدي تغييران متزامنان إلى تعارض، وأن يحلّه في ملف .tex ثم يتحقق من أن المستند يُترجم ويقول ما ينبغي أن يقوله.
  6. أن يتفق مع فريقه على ديباجة مشتركة، وقاعدة مراجع مشتركة، وتقسيم إلى ملفات، وعُرف للوسوم، وأن ينتج بـ latexdiff ملف PDF يُظهر التغييرات بين نسختين.

لماذا تصعب الكتابة الجماعية

أكثر طرق الكتابة الجماعية شيوعًا هي أيضًا أكثرها هشاشة: يرسل مؤلفٌ الملف بالبريد، فيصحّحه آخر ويعيده باسم جديد، وبعد بضعة أسابيع يحتوي المجلد على التقرير-النهائي.docx والتقرير-النهائي-2.docx والتقرير-النهائي-تعديلات-آنا.docx. وإذا عمل مؤلفان في الوقت نفسه على النسخة ذاتها، وجب على أحدهم أن ينقل يدويًّا تغييرات أحدهما إلى ملف الآخر، وما يُنسى في هذا النقل يضيع دون أن ينتبه إليه أحد. ولا يساعد معالج النصوص على المقارنة، لأن ملفه ليس نصًّا مقروءًا، بل حزمة مضغوطة تمزج المحتوى بالتنسيق؛ وأدوات المقارنة فيه موجودة، لكنها لا تتيح دمج خطَّي عمل مستقلين دمجًا آليًّا.

أما مصدر LaTeX فشيء آخر: إنه نص خام يستطيع أي برنامج أن يقرأه سطرًا سطرًا. ويترتب على ذلك عمليتان لا تتيسّران مع معالج النصوص. الأولى هي الفرق (بالإنجليزية diff): إذا أُعطي برنامجٌ نسختين من ملف، ذكر بدقة أي الأسطر حُذفت وأيها أُضيفت. والثانية هي الدمج (بالإنجليزية merge): إذا أُعطي مجموعتين من التغييرات أُجريتا على النسخة نفسها، جمعهما من تلقاء نفسه متى مسّتا مواضع مختلفة من الملف، ولم يطلب تدخّل المؤلف إلا حين يمسّ كلاهما الموضع ذاته. غير أن هاتين العمليتين لا تنفعان إلا بتنظيم إضافي: مكان مشترك توجد فيه النسخة المعتمدة، وسجل يبيّن من غيّر ماذا ومتى. ويقدّم هذا الدرس الطريقتين اللتين يعتمدهما المقرر لتحقيق ذلك: Overleaf الذي يحل المشكلة في المتصفح، وGit الذي يحلها في حاسوب كل مؤلف، مع Texmaker محررًا.