ميتا بوست
يشير مصطلح MetaPost إلى كلٍ من لغة البرمجة ومفسرها . وكلاهما مشتق من لغة ومفسر Metafont الخاصين بدونالد كنوث . تُنتج MetaPost مخططات رسومية متجهة من وصف هندسي/جبري. وتتشارك اللغة مع Metafont في بناء الجملة التصريحي لمعالجة الخطوط والمنحنيات والنقاط والتحويلات الهندسية. ومع ذلك،
- تم إعداد Metafont لإنتاج الخطوط، على شكل ملفات صور (بتنسيق .gf) مع ملفات قياس الخطوط المرتبطة بها (بتنسيق .tfm)، بينما ينتج MetaPost ملفات EPS أو SVG أو PNG
- يتكون ناتج Metafont من الخطوط بدقة ثابتة بتنسيق قائم على الصور النقطية، بينما يكون ناتج MetaPost عبارة عن رسومات متجهة (خطوط، منحنيات بيزير ).
- يكون إخراج Metafont أحادي اللون، بينما يستخدم MetaPost ألوان RGB أو CMYK .
- يمكن للغة MetaPost أن تتضمن تسميات نصية على المخططات، سواء كانت سلاسل من خط محدد، أو أي شيء آخر يمكن طباعته باستخدام TeX .
- ابتداءً من الإصدار 1.8، يسمح Metapost بإجراء العمليات الحسابية ذات الفاصلة العائمة باستخدام 64 بت (الافتراضي: العمليات الحسابية ذات الفاصلة الثابتة 32 بت).
تنشأ العديد من قيود MetaPost من خصائص Metafont. على سبيل المثال، لا يدعم MetaPost جميع خصائص PostScript . ومن أبرزها، أن المسارات لا يمكن أن تحتوي إلا على جزء واحد (بحيث تكون المناطق متصلة ببساطة )، ولا يمكن ملء المناطق إلا بألوان موحدة. يدعم PostScript المستوى 1 الأنماط المتجانبة، بينما يدعم PostScript المستوى 3 تظليل Gouraud .
التوافر والاستخدام
يتم توزيع MetaPost مع العديد من توزيعات إطار عمل TeX و Metafont، على سبيل المثال، يتم تضمينه في توزيعات MiKTeX و TeX Live .
يمكن تضمين ملف PostScript المُغلّف الناتج عن Metapost في مستندات LaTeX و ConTeXt و TeX باستخدام أوامر تضمين الرسومات القياسية. كما يمكن استخدام مُخرجات PostScript المُغلّفة مع مُحرك PDFTeX ، مما يُتيح إنشاء ملفات PDF مباشرةً . هذه الميزة مُتاحة في ConTeXt وحزمة رسومات LaTeX، ويمكن استخدامها من TeX العادي عبر ملف الماكرو supp-pdf.tex.
يدعم كل من ConTeXt و LuaTeX تضمين كود MetaPost ضمن ملف الإدخال. كما يُمكن تضمين كود MetaPost في LaTeX باستخدام حزم LaTeX، على سبيل المثال gmpأو mpgraphics.
أمثلة
هذا ملف واحدمثال.mpوالتي عند معالجتها بواسطة مترجم MetaPost (عبر الأمر mpostعلى نظام Linux ) تنتج ثلاثة ملفات epsمثال 1،مثال 2،مثال 3هذه الصور معروضة على اليمين.

تحويل إحداثيات الصفحة ؛ إحداثيات الصفحة := متطابقة، مُقاسة بمقدار 10 مم، مُزاحة ( 100 مم ، 150 مم )؛ بدء الشكل ( 1 ) تعبئة (( 0 ، 0 ) -- ( 2 ، 0 ) -- ( 2 ، 1 ) -- ( 1 ، 1 ) -- ( 1 ، 2 ) -- ( 0 ، 2 ) -- دورة ) إحداثيات الصفحة المُحوّلة باللون الأخضر ؛ رسم (( 2 ، 0 )..( 2 ، 1 )..( 1 ، 1 )..( 1 ، 2 )..( 0 ، 2 )) إحداثيات الصفحة المُحوّلة ؛ رسم سهم (( 0 ، 0 ) -- ( 2 ، 2 )) إحداثيات الصفحة المُحوّلة ؛ نهاية الشكل ؛ بدء الشكل ( 2 ) رسم ( لـ i = 0 حتى 7 : اتجاه ( 135 i ) -- نهاية دورة ) إحداثيات الصفحة المُحوّلة ؛ endfig ; pagecoords := identity scaled 15 mm shifted ( 100 mm , 150 mm ); beginfig ( 3 ); % تعريف المسارات المراد استخدامها path p [], p [] t ; % إعداد النقاط بتحديد العلاقات z1 = ( 0 , 0 ); z2 = z1 + 2 up ; z3 = z1 + whatever * dir ( 60 ) = z2 + whatever* dir ( - 50 ); z4 = z3 + ( - 1.5 , - . 5 ); z5 = z1 + dir ( 135 ); z0 = whatever [ z1 , z2 ]= whatever [ z3 , z4 ]; % إعداد المسارات p0 = fullcircle yscaled . 5 rotated 45 shifted z0 ; p1 = z2 --- z4 .. z0 .. z3 --- z1 ; p2 = p1 cutbefore p0 cutafter p0 ; p3 = p0 cutbefore p1 cutafter p1 ; p4 = p2 --- p3 --- cycle ; % تعريف النسخ المحولة من المسارات والنقاط for i = 0 upto 4 : p [ i ] t = p [ i ] transformed pagecoords ; endfor for i = 0 upto 5 : z [ i ] t = z [ i ] transformed pagecoords ; endfor % do some drawing fill p4t withcolor ( 1 , 1 , 0.2 ); draw z1t --- z2t withcolor . 5 white ; draw z3t --- z4t withcolor . 5 white ; pickup pencircle ; draw p0t dashed withdots scaled . 3 ; draw p1t dashed equally ; draw p2t withcolor blue ; draw p3t withcolor red; label.lrt ( btex $ z_0 $ etex , z0t ) ; label.llft ( btex $ z_1 $ etex , z1t ) ; label.top ( btex $ z_2 $ etex , z2t ) ; label.rt ( btex $ z_3 $ etex , z3t ) ; label.llft ( btex $ z_4 $ etex , z4t ) ; for i = 0 upto 4 : drawdot z [ i ] t withpen pencircle scaled 2 ; endfor endfig ; byeيمكن استخدام ملفات eps الثلاثة الناتجة في TeX عبر أمر LaTeX\includegraphics ، أو أمر ConTeXt\externalfigure ، أو أمر Plain TeX \epsfbox، أو (في Plain pdftex) \convertMPtoPDFالأمر منsupp-pdf.tex. لعرض أو طباعة الرسم التخطيطي الثالث، فإن هذا الإدراج ضروري، حيث أن خطوط TeX ( Computer Modern ) غير مضمنة في ملفات eps التي ينتجها MetaPost بشكل افتراضي.
انظر أيضاً
مراجع
- هاجن، هانز. "MetaFun" (وحدات Metapost).
- كنوت، دونالد (1986). كتاب ميتافونت . الحواسيب والتنضيد . المجلد ج . أديسون-ويسلي . ISBN 0-201-13444-6.
- " شبكة أرشيفات TEX الشاملة" ( CTAN ) . مستودع لمصدر TEX ومئات الإضافات وملفات الأنماط.
- "يوفر برنامج (La)TeX Navigator 305 مثالًا بسيطًا لـ MetaPost" . مؤرشف من الأصل بتاريخ 27 يوليو 2013. تم الاطلاع عليه بتاريخ 17 نوفمبر 2006 .
- هوك ووتر، تاكو (2006). "تطورات ميتابوست - خريف 2006" (ملف PDF) . مجلة TUGboat . 27 (1).
روابط خارجية
- خصصت مجموعة مستخدمي TeX ( TUG ) http://www.tug.org/ صفحةً لـ MetaPost: http://www.tug.org/metapost.html
- لغات البرمجة التي تم إنشاؤها عام 1994
- لغات البرمجة التصريحية
- لغات البرمجة الخاصة بالمجال
- برنامج TeX مجاني
- ملاحظة لاحقة
- برامج متاحة للجميع
- لغات ترميز الرسومات المتجهة
