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

ملخص

يعلّم هذا الدرس الرسم داخل الوثيقة باستخدام TikZ. يشرح ما نكسبه حين نرسم في LaTeX (خط النص وصيغه، والتكبير دون فقدان للجودة، والتصحيح في الشيفرة المصدرية، والتحكم في الإصدارات)، وما يكلّفه ذلك، ومتى يكون الأفضل تصدير الرسم البياني من R أو Python؛ ويبيّن أن TikZ يحتاج إلى مكتبته babel في الوثائق المكتوبة بلغات تجعل وحدةُ babel الخاصة بها بعضَ الرموز اختصاراتٍ نشطة، كالإسبانية، وإلا أحدث أول سهم سلسلة من الأخطاء، وأن الوثيقة العربية تحتاج فوق ذلك إلى الخيار layout=graphics لكي تبقى نصوص العُقد في مواضعها؛ ويقدّم البيئة tikzpicture والأمر \tikz، والإحداثيات الديكارتية والقطبية والنسبية، والمسارات (القطع المستقيمة والمستطيلات والدوائر والأقواس والمنحنيات)؛ ويستعرض خيارات الخط ورؤوس الأسهم في مكتبة arrows.meta؛ ويعلّم العُقد، المسمّاة منها وذات المراسي والمتموضعة بعضها بالنسبة إلى بعض بمكتبة positioning؛ ويثبّت الترميز بأنماط خاصة؛ ويكرّر بالأمر \foreach؛ ويؤلّف مخطط سير عمليات، ومخطط قوى، وشجرة مفاهيم، وشجرة نحوية، ومنحنى دالة، منبّهًا إلى أن plot يقيس الزوايا بالدرجات؛ ويقدّم pgfplots لرسوم البيانات؛ ويضع الرسم في عنصر عائم ويقارن الطرق الثلاث لتغيير حجمه؛ ويختم بالأخطاء الشائعة وزمن الترجمة وما لا يُستحسن فعله.

أهداف التعلم

  1. أن يقرّر المتعلم، مع التعليل، هل يحسن رسم الشكل بـ TikZ، أو رسمه بـ pgfplots، أو تصديره من برنامج لتحليل البيانات.
  2. أن يُعدّ ديباجة وثيقة لاستعمال TikZ، وأن يشرح متى ولماذا تلزم مكتبة babel، ولماذا تحتاج الوثيقة العربية إلى layout=graphics.
  3. أن يرسم بإحداثيات مطلقة وقطبية ونسبية، وأن يتنبأ بالمسار الذي ترسمه سلسلة إحداثيات تستعمل + و++.
  4. أن يؤلّف مخططات من عُقد مسمّاة، متموضعة بمكتبة positioning، وبأنماط خاصة معرّفة مرة واحدة.
  5. أن يُدرج رسمًا في عنصر عائم مع تسميته التوضيحية ووسمه، وأن يغيّر حجمه متنبئًا بما يحدث للنص، وأن يشخّص الأخطاء الشائعة انطلاقًا من سجل الترجمة.

لماذا نرسم في LaTeX

أدرجت الدروس السابقة صورًا صُنعت خارج الوثيقة. أما الرسم المصنوع بـ TikZ فيُكتب في الشيفرة المصدرية بأوامر، ويصفّه المحرّك كما يصفّ النص. ويترتب على ذلك أربع مزايا. الأولى الوحدة الطباعية: تستعمل تسميات الرسم الخط نفسه والحجم نفسه اللذين يستعملهما النص، والصيغة في التسمية مطابقة للصيغة في الفقرة التي تعلّق عليها. والثانية التكبير دون فقدان: الناتج متّجهي، فيُكبَّر دون أن تظهر البكسلات. والثالثة أن الرسم يُصحَّح في الشيفرة المصدرية: تغيير تسمية أو تحريك نقطة هو تغيير سطر واحد، دون الرجوع إلى برنامج رسم ودون البحث عن الملف الأصلي. والرابعة أن الرسم يخضع للتحكم في الإصدارات مع النص، لأنه نص: يبقى في الملف نفسه، وفي النسخة الاحتياطية نفسها، وفي سجل التغييرات نفسه.

غير أن لهذه المزايا ثمنًا. فـ TikZ لغة لها تركيبها الخاص، ويتجاوز دليلها ألف صفحة، والرسم الذي يُنجز بالفأرة في دقيقة في برنامج رسومي قد يتطلب هنا نصف ساعة في المرة الأولى. ولذلك ينبغي التمييز. فالمخططات والرسوم التوضيحية والأشكال الهندسية، المكوّنة من أشكال قليلة مع تسميات، هي الميدان الطبيعي لـ TikZ. أما رسوم البيانات فالأفضل أن تُصنع بـ pgfplots، المبني على TikZ والمعروض في آخر هذا الدرس، أو، إذا كانت البيانات تُحلَّل في R أو في Python، بالبرنامج نفسه الذي يحلّلها: يُصدَّر الرسم بصيغة PDF ويُدرج كما في الدرس المخصص للصور، فيبقى مرتبطًا بالبيانات وبالتحليل اللذين أنتجاه. وتوفّر اللغتان كذلك مخرجات تكتب الرسم شيفرةً لـ LaTeX (الحزمة tikzDevice في R ومخرج PGF في مكتبة matplotlib في Python)، فتأخذ التسميات خط الوثيقة.