Skip to main content
يوفر Overleaf تكاملًا مع knitr، مما يتيح لك إضافة شيفرة R إلى مستند LaTeX لتوليد مخرجات ديناميكية. يجب حفظ المستندات التي تحتوي على شيفرة R بالامتداد .Rtex أو .Rnw، وإلا فلن تعمل الشيفرة. لنلقِ نظرة على مثال:
KnitrDemo1.png افتح مثال knitr هذا على Overleaf كما ترى، فإن النص الواقع بين المحرفين <<>>= و@ هو شيفرة R. وتُطبع هذه الشيفرة ومخرجاتها بتنسيق يشبه القوائم البرمجية (listing). ويمكن أن تقبل هذه القطعة من الشيفرة بعض المعاملات الإضافية لتخصيص المخرجات الديناميكية، كما هو موضح في القسم التالي.

قطع الشيفرة (Chunks)

تُسمى كتلة الشيفرة مثل تلك المعروضة في القسم السابق عادةً قطعة (chunk). ويمكنك ضبط بعض الخيارات الإضافية في قطع knitr. انظر المثال أدناه:
KnitrDemo2.png افتح مثال knitr هذا على Overleaf هناك خياران إضافيان مُمرَّران داخل << و>>.
  • echo=FALSE يُخفي هذا الخيار الشيفرة ويطبع فقط المخرجات التي يولدها R.
  • cache=TRUE إذا ضُبط cache على true، فلن تُشغَّل القطعة، بل تُستخدم فقط الكائنات التي ولّدتها. وهذا يوفر الوقت إذا لم تتغير البيانات في تلك القطعة.
    لاحظ أن الخيار cache=TRUE غير مدعوم حاليًا في Overleaf، لكنه يُفترض أن يعمل محليًا.
راجع الدليل المرجعي لمزيد من الخيارات.

الأوامر المضمّنة (Inline)

يمكن الوصول إلى الكائنات المولَّدة في قطعة ما وطباعتها ضمن السطر.
KnitrDemo3.png افتح مثال knitr هذا على Overleaf يطبع الأمر \Sexpr{mean(X)} المخرجات التي تعيدها شيفرة R mean(X). ويمكن تمرير أي أمر من أوامر R داخل الأقواس المعقوصة.

الرسوم البيانية

يمكن أيضًا إضافة رسوم بيانية إلى مستند knitr، كما في هذا المثال:
KnitrDemo4.png افتح مثال knitr هذا على Overleaf يستخدم هذا المدرج التكراري بيانات مخزنة في “data.txt”، المحفوظ في مجلد العمل الحالي. وتُمرَّر بعض الخيارات المتعلقة بالشكل إلى القطعة. plot1 هذه هي التسمية المستخدمة للإشارة إلى الرسم البياني. والبادئة “fig:” إلزامية. ويمكنك أن ترى في المثال أن الإشارة إلى الشكل تتم باستخدام \ref{fig:plot1}. fig.pos="t" معامل تحديد الموضع. وهو نفسه المستخدم في بيئة figure. fig.height=4, fig.width=4 عرض الشكل وارتفاعه. fig.cap="First plot" تعليق الشكل.

سكربتات R الخارجية

يمكنك استيراد أجزاء من سكربت R خارجي إلى مستند knitr. وهذا مفيد جدًا، إذ من الشائع إلى حد ما كتابة السكربت وتصحيحه في برنامج خارجي قبل تضمينه في مستندك. لنفترض أن لدينا شيفرة R التالية في ملف يُسمى mycode.R نضمّنه في مستند LaTeX الخاص بنا:
لاحظ السطرين:
و
يحدد هذان السطران بداية قطعة من الشيفرة، وهما إلزاميان إذا أردت استخدام هذا السكربت في مستندنا، كما هو موضح في مقطع الشيفرة التالي:
KnitrDemo5.png لا تُطبع القطعة الأولى، وتُستخدم فقط لاستيراد السكربت عبر الأمر read_chunk("mycode.R"). ولهذا ضُبط الخيار echo=FALSE. كما يجب ألا تُخزَّن السكربتات مؤقتًا. وبعد استيراد السكربت، يمكنك طباعة قطعة باستخدام التسمية التي حددتها بعد ## ----. وفي هذه الحالة هي myrcode2. وضعنا جميع مقاطع الشيفرة الواردة في هذا المقال في مشروع يمكنك فتحه على Overleaf.

الدليل المرجعي

بعض خيارات القطع:
  • results. يغيّر سلوك النتائج التي تولدها شيفرة R. والقيم الممكنة هي:
    • markup استخدام LaTeX لتنسيق المخرجات.
    • asis طباعة النتائج الخام من R.
    • hold الاحتفاظ بنتائج المخرجات ودفعها إلى نهاية القطعة.
    • hide إخفاء النتائج.
  • echo. ما إذا كان سيُضمَّن الشيفرة المصدرية لـ R. ومن المعاملات الأخرى:
    • echo=2:3 يطبع السطرين الثاني والثالث فقط؛
    • echo=-2:-3 يستثني السطرين الثاني والثالث فقط.
  • cache. ما إذا كانت قطعة الشيفرة ستُخزَّن مؤقتًا. والقيم الممكنة هي: TRUE وFALSE
  • highlight. ما إذا كان سيُبرز تلوين الشيفرة المصدرية. والقيم الممكنة هي: TRUE وFALSE
  • background. لون خلفية القطعة. ويمكن استخدام صيغتي rgb وHTML. والقيمة الافتراضية هي “#F7F7F7”.
آخر تعديل في ٤ أكتوبر ٢٠٢٦