في
مقال سابق ، تحدثت عن كيفية كتابة ملاحظات الرياضيات على LaTeX في Vim. في هذه المقالة ، سأوضح لك كيفية إنشاء رسومات لهذه الملخصات باستخدام Inkscape ، بالإضافة إلى التحدث عن مدير هوتكي محلي الصنع.
بعض الأمثلة
أولاً ، اسمح لي أن أريك بعض الأمثلة على الأرقام. وهي مصممة للتحليل المعقد ، والهندسة التفاضلية ، والديناميكا الكهربائية ، وأطروحة البكالوريوس في المنحنيات الإهليلجية. وجهتها خلال محاضرة - باستثناء ، بالطبع ، عن أطروحتي - باستخدام Inkscape ، لذلك دعونا نبدأ مع هذا.





ما هو إنكسكيب؟
إنكسكيب هو محرر رسومات متجه مفتوح المصدر متاح لجميع المنصات الرئيسية. هذا بديل مجاني ، لكن ربما أقل وظيفية لبرنامج Adobe Illustrator. يمكن استخدامه لتصميم النشرات والشعارات ، كما في الصورة أدناه ، لكنها أيضًا أداة قوية لرسم الأشكال الهندسية.

لماذا إنكسكيب؟
الحلول الأكثر شيوعًا لإضافة الرسومات إلى مستندات LaTeX هي TikZ و PSTricks و Asymptote. لديهم شيء واحد مشترك: كلهم يعملون في فرق ، أي أنك تكتب رمزًا يحدد كيفية رسم شخصية. على سبيل المثال ، رمز TikZ:
\begin{tikzpicture} \coordinate (A) at (1, 3); \draw[thick, ->] (0, 0) -- (A); \node[above right] at (A) {$A = (1, 2)$}; \end{tikzpicture}
يعرض الصورة التالية:

تكمن ميزة هذه الحزم في أن الرسم يشبه إلى حد كبير البرمجة: يمكنك استخدام المتغيرات وإجراء العمليات الحسابية واستخدام الحلقات وما إلى ذلك. بالإضافة إلى ذلك ، تتناسب الرسومات جيدًا مع المستند ، لأن النص بأكمله يتم كتابته مباشرةً في LaTeX. هذا يعني أنه من السهل كتابة الصيغ ، وإذا قررت لاحقًا تغيير خط المستند ، فسوف تتغير جميع الصور تلقائيًا وفقًا للخط الجديد.
ومع ذلك ، بالنسبة لهذه المزايا ، عليك أن تدفع مقابل نقص الملاحظات المرئية والسرعة المنخفضة. يعد رسم الأشكال المعقدة مهمة بيانية بطبيعتها وبدون واجهة رسومية يمكن أن يستغرق وقتًا طويلاً للغاية. لا يمكن النقر فوق كائن وسحبه أو رسم منحنى يدويًا أو سحب نقاط التحكم في منحنيات Bezier. لهذا السبب ، فإن TikZ أكثر تعقيدًا وأبطأ من Inkscape. على الرغم من أنني أحيانًا أستخدم TikZ للرسومات المعقدة ، إلا أن مزايا Inkscape في معظم الحالات تفوق مزايا TikZ ، خاصة إذا كنت تحت ضغط الوقت أثناء المحاضرة.
انتهى الأمر ، دعنا نبدأ.
تضمين رسومات Inkscape في مستند LaTeX
مثل TikZ ، إنكسكيب لديه القدرة على عرض النص في رسم باستخدام LaTeX. للقيام بذلك ، يقوم المحرر بتصدير الأرقام بصيغة pdf وملف LaTeX. في الصورة الأولى مع نص منفصل ، وفي ملف LaTeX - الكود ضروري لوضع النص بشكل صحيح. على سبيل المثال ، أنت تعمل في Inkscape على رسم مثل هذا:
نظرية ريمانلتضمين هذا الرقم في مستند LaTeX ، انتقل إلى القائمة
ملف ›حفظ باسم ، وحدد" pdf "كملحق ، ثم انقر فوق
حفظ ، وسيظهر مربع الحوار التالي:
يؤدي تحديد "حذف النص بتنسيق pdf وإنشاء ملف LaTeX" إلى حفظ الرسم بتنسيق pdf + LaTeX. لإدراج رسومات Inkscape في مستند LaTeX ، يمكنك إضافة الكود التالي إلى الديباجة:
\usepackage{import} \usepackage{xifthen} \usepackage{pdfpages} \usepackage{transparent} \newcommand{\incfig}[1]{
على افتراض أن الشكل موجود في ملف
figures/riemmans-theorem.svg
، فيمكنك إدراجه برمز بسيط:
\begin{figure}[ht] \centering \incfig{riemmans-theorem} \caption{Riemmans theorem} \label{fig:riemmans-theorem} \end{figure}
بعد تجميع المستند ، سترى ذلك:

كما ترون ، يتم تقديم النص باستخدام LaTeX ، والذي يبدو لطيفًا جدًا. إذا قررت لاحقًا تغيير الخط ، فسيتم تحديثه وفقًا لذلك:

يسمح لك هذا النظام برسم Inkscape ، مع الاستمرار في الكتابة في LaTeX.
بسرعة إنشاء وإدراج الرسومات
عندما أكتب خلاصة وافية خلال محاضرة ، أحتاج إلى إضافة رسومات على الطاير دون تعطيل التدفق ، أي عدم إضاعة الوقت في فتح Inkscape ، والعثور على الدليل الصحيح ، وإدخال كود LaTeX لإدراج الرقم يدويًا ، وما إلى ذلك. لتجنب ذلك ، أضفت بعض اختصارات لوحة المفاتيح إلى Vim لإدارة الرسومات. على سبيل المثال ، عندما أكتب عنوان صورة
Ctrl+F
، يحدث ما يلي:
- يعثر البرنامج النصي على كتالوج الصور بناءً على موقع ملف الجذر LaTeX.
- ثم يتحقق لمعرفة ما إذا كان هناك رسم بنفس الاسم. إذا كان الأمر كذلك ، فإن البرنامج النصي لا يفعل شيئًا.
- إذا لم يكن الأمر كذلك ، يتم نسخ قالب النمط إلى دليل
/figures
.
- يتم استبدال السطر الحالي مع عنوان الصورة برمز LaTeX لإدراجه.
- يفتح رسم جديد في إنكسكيب.
- يتم تكوين مراقبة الملفات بطريقة يمكنك حفظها عند حفظ صورة في ملف svg بالضغط على
Ctrl+S
كملف pdf + LaTeX. وبالتالي ، لم يعد يظهر مربع حوار حفظ pdf المزعج الذي ناقشناه سابقًا.
مخطط في العمل:

عندما أرغب في تحرير صورة ،
Ctrl+F
في الوضع العادي. يتم فتح مربع حوار تحديد يتيح لك البحث عن الأنماط الموجودة في المستند الحالي. بمجرد تحديده ، يفتح الرسم في Inkscape. عندما أحفظه ، يتم نسخ رمز اللصق إلى الحافظة. وبالتالي ، يمكنني إعادة إدخاله إذا حذفت المصدر.

هذه المفاتيح الساخنة تسمح لك بإضافة وفتح الرسومات على الطاير. لا تحتاج أن تتذكر أنه لكل من تحتاج إلى تحديد pdf + LaTeX ، اختر الدليل الصحيح أو اكتب الكود لإدراجه. يكون حاجز إضافة صورة جديدة أقل بكثير مما لو كنت تفعل ذلك يدويًا. يتم نشر برنامج نصي لإدارة الصور
على جيثب .
بعد فهم الإدارة ، دعنا نتحدث عن كيفية رسم الأشكال في Inkscape بالفعل.
رسم
على الرغم من أن الرسم في Inkscape عادة ما يكون أسرع منه في TikZ ، إلا أنه لا يزال أبطأ من الرسم باليد. تتسارع العملية من خلال اختصارات لوحة المفاتيح المدمجة في Inkscape ، لكن لا تزال غير كافية.
لذلك قررت أن أبرمج في Python مدير اختصارات محلي الصنع يسمح لك باعتراض كل أحداث لوحة المفاتيح قبل أن تصل إلى Inkscape. لذلك لدي سيطرة كاملة على كيفية تفسير كل ضغطة ، مما يعطي مرونة كبيرة.
رسم الأشكال
لنبدأ باختصارات لوحة المفاتيح المدمجة في Inkscape. على سبيل المثال ، تقوم
r
بتنشيط أداة رسم المستطيل ، و
e
draws ellipses ، وما إلى ذلك. من وجهة نظر التنفيذ ، هذا يعني أن مدير المجموعة "سيعيد تشغيل" أحداث لوحة المفاتيح هذه ، أي ببساطة نقلها إلى Inkscape.
ومع ذلك ، بدلاً من الاختصارات الافتراضية
p
للقلم الرصاص و
b
لمنحنيات Bezier ، أستخدم
w
و
f
، لأنهما أكثر ملاءمةً للنقر باليد اليسرى ، إذا كان الماوس الأيمن. بروح التوليفات اليسرى ، قمت أيضًا بمطابقة
z
للإلغاء ، و
Shift+z
للحذف ، و
x
للتبديل snap ، والتي يتم تعيينها عادةً إلى
%
يصعب الوصول إليها.
مجموعات المفاتيح لأنماط شائعة الاستخدام
كائنات النمط هي الشيء الثاني الأكثر شيوعًا الذي أقوم به في Inkscape. أنماط رسم الأشكال بسيطة جدًا:
- الأشكال مثل المستطيلات والدوائر عادة ما تكون سوداء أو رمادية فاتحة أو بيضاء أو شفافة ، ربما. مع كفاف.
- الخطوط (بما في ذلك الخطوط) هي في الغالب صلبة أو متقطعة أو منقطة. يمكن أن تكون جريئة (جداً) أو ذات عرض عادي ، وأحيانًا يكون السهم على أحد الجانبين أو كلاهما.
يوفر مزيج هذه الخيارات الجدول التالي للأنماط الشائعة الاستخدام:

نظرًا لأنني غالباً ما أستخدم هذه الأنماط ، أرغب في القيام بذلك بسرعة ، لكن استخدام اختصارات Inkscape الافتراضية يستغرق وقتًا طويلاً. على سبيل المثال ، تريد تغيير نمط بعض الكائنات كما يلي:

يجب عليك الضغط على
Ctrl+Shift+F
لفتح لوحة الأنماط وتحديث نمط كل كائن بالنقر فوقه ، لأنه لا يمكنك القيام بذلك باستخدام اختصارات لوحة المفاتيح في Inkscape. هذا متعب. من الناحية المثالية ، أود إجراء مثل هذه العملية في جزء من الثانية.

هذا هو المكان الذي تظهر فيه اختصارات لوحة المفاتيح ، والتي تتكون من ضغطتين مفاتيح متزامنة أو أكثر. على سبيل المثال ، عندما أقوم بالضغط على
s
و
f
في نفس الوقت ، سيقوم مدير المجموعة الخاص بي بتطبيق مخطط صلب وملء رمادي على التحديد الحالي. عندما تحتاج إلى مخطط غامق ، أضغط
s+f+g
معًا ، حيث
g
تعني gold.
وبالتالي ، فإن كل خاصية تتوافق مع المفتاح: تشير إلى محيط طبيعي ، تشير
f
إلى تعبئة رمادية ، تشير
g
إلى سماكة ، تشير إلى سهم ، تشير إلى
d
، تشير إلى
e
إلى خط منقط ، وهكذا ، فيما يلي جدول كامل بالخيارات الممكنة:

تتوافق بعض الأنماط في هذا الجدول مع مفتاح واحد فقط ، على سبيل المثال ، النمط الموجود في الزاوية العلوية اليسرى: تعبئة رمادية بدون مخطط تفصيلي. يمكن أن يكون ذلك مشكلة لأن الضغط على
f
واحد يؤدي إلى تشغيل أداة منحنى Bezier. الحل هو الضغط على
+ f
، حيث يعمل الفضاء كعنصر نائب.
باستخدام هذه المجموعات ، يتم حل المشكلة السابقة في بضع نقرات:
f
+ s
يجعل المستطيل رماديًا ويضيف مخططًا صلبًا ؛
f
+ h
+ e
تعني الحشو والمنقط الغامق
- يضيف
a
+ g
+ d
سهمًا ويحول الخط إلى خط منقط عريض.

إضافة نص
نظرًا لوجود صيغ رياضية غالبًا في الرسومات ، أريد استخدام
قصاصاتي في Vim. للقيام بذلك ، أضغط
t
، الذي يفتح نافذة Vim صغيرة ، حيث أقوم بإدخال كود LaTeX. بعد الخروج ، يتم إدراج جزء النص في Inkscape:

كما قلت ، سيتم عرض هذا النص بواسطة LaTeX عند إدراج صورة في مستند. لكن في بعض الأحيان أرغب في عرض LaTeX على الفور ، والذي يمكن إجراؤه باستخدام
Shift+T
:

كلا الخيارين لهما مزايا وعيوب. بشكل أساسي ، استخدم الطريقة الأولى لأن النص يتم عرضه في مستند LaTeX. هذا يعني أن الخطوط تتطابق دائمًا ويمكنك استخدام وحدات الماكرو المعرفة في ديباجة المستند. ولكن هناك عيبًا: في بعض الأحيان يكون من الصعب إجراء تحديد موضع النص. نظرًا لأنك لا ترى النتيجة النهائية في Inkscape ، فأنت في بعض الأحيان تحتاج إلى التبديل من Inkscape إلى عارض pdf والعودة إلى ضبط النتائج.
حفظ واستخدام أنماط أندر
على الرغم من أن الأنماط الأساسية تكفي في 90٪ من الحالات ، إلا أنك في بعض الأحيان تريد استخدام نمط خاص. على سبيل المثال ، لرسم مخططات على البصريات ، من المفيد أن يكون لديك أنماط من الزجاج والحزم. للقيام بذلك ، تحتاج أولاً إلى إنشاء نمط في Inkscape باستخدام المجموعات الافتراضية:

لحفظ هذه الأنماط ، حدد أحد الكائنات واضغط على
Shift + s
. ثم أدخل اسم النمط الجديد ، في هذه الحالة "زجاج" ، واضغط على Enter للتأكيد. الآن يتم حفظ النمط ، وبعد ذلك يمكنني استخدامه.
الآن ، عندما أقوم بتحديد كائن ، اضغط على
s
وأدخل "زجاج" ، سيتم تطبيق النمط المقابل على الكائن. ومع ذلك ، ليست هناك حاجة لإدخال الاسم الكامل ، لأنه يتم تطبيق النمط على الفور إذا كان وحده يطابق الأحرف التي تم إدخالها. على سبيل المثال ، إذا كان لدي نمط واحد فقط يبدأ بـ "g" ، فإن إدخال واحد من هذه الرسالة يكفي لتطبيق النمط. إذا كان لديك العديد من الأنماط ، فسيتعين عليك إدخال "gl" أو حتى "gla".
في مثل هذه الحالة ، يكون التعطل عند إدخال عدد كبير جدًا من الأحرف مزعجًا: لنفترض أن نمط الإدخال "gl" سوف يؤدي إلى الكتابة ، لكنك تكتب "gla" ومن ثم سيتم تفسير الأمر على أنه أمر آخر. لذلك ، ينتظر مدير المجموعة 500 مللي ثانية قبل العودة إلى الوضع الافتراضي. هذه المرة كافية لشخص يرى أنه قد تم تطبيق النمط وإيقاف الطباعة.

إضافة وحفظ الكائنات
العنصر الأخير من الإعدادات هو إضافة وحفظ الكائنات ، والتي تتم باستخدام مفاتيح
Shift+a
، على التوالي. على سبيل المثال ، يضيف الضغط
a
"وكتابة" ec "منحنًا بيضاويًا:

كمثال آخر: يؤدي الضغط على
a
والكتابة "dg" إلى إضافة ثقب المفتاح ، keyhole ("dg" هي صورة معكوسة لـ "kh" على لوحة المفاتيح). باستخدام
Ctrl+-
يمكن طرح الشكل من الشكل المحدد:

بعض الأمثلة الأخرى: النقط والفؤوس ثنائية الأبعاد ثلاثية الأبعاد ، والتي غالباً ما أستخدمها في التحليل المعقد والهندسة التفاضلية.

قانون
إذا كنت ترغب في تجربتها بنفسك ،
فسيتم نشر
البرنامج النصي لإدارة الرسومات في Vim ومدير اختصارات لوحة المفاتيح Inkscape على Github. كلا البرنامجين يعملان فقط على أنظمة Linux. الأول يجب أن ينفد من الصندوق ، والثاني ربما يحتاج إلى تكوين إضافي.
استنتاج
مع Inkscape ، يمكنك بسهولة وبسرعة إنشاء رسوم توضيحية للمقالات والكتب والعروض التقديمية. تبدو احترافية وتتوافق جيدًا مع المستند. على الرغم من أن هذا أبطأ من الرسم باليد ، إلا أن Inkscape في معظم الحالات يكون أسرع من TikZ. تعمل اختصارات لوحة المفاتيح والبرنامج النصي لإدارة الرسومات في Vim على تسريع العمل أكثر ، مما يسمح لك برسم الأشكال أثناء المحاضرات ومواكبة المحاضر.