وحدات الماكرو التي تحافظ على التدوين صادقًا

newcommand، NewDocumentCommand، ملف وحدات ماكرو مشترك.

وحدات الماكرو التي تحافظ على التدوين صادقًا

تحتوي كل ورقة على تدوين يتكرر: الأعداد الحقيقية، وعامل التوقع، والقيمة المطلقة بأشرطة ذات حجم مناسب. إذا كتبت \mathbb{R} في أربعين مكانًا وفضل مستشارك لاحقًا \mathbf{R}، فلديك أربعون تعديلًا يجب عليك إجراؤها وستفوتك تعديلًا واحدًا. يقوم الماكرو بتحويل هذا الترميز إلى أمر مسمى واحد، يتم تعريفه مرة واحدة. تغيير التعريف ويتبع الوثيقة بأكملها. هذه هي الطريقة التي تحافظ بها على صدق التدوين: لا يمكن للمصدر أن يخرج عن التزامن مع نفسه.

تعريف الأوامر بأمر جديد

\newcommand{\R}{\mathbb{R}}
\newcommand{\E}[1]{\mathbb{E}\left[#1\right]}
\newcommand{\abs}[1]{\left\lvert #1 \right\rvert}

التعريف الأول هو أبسط نوع: \R أصبح الآن اختصارًا خالصًا، وكتابة \R في أي مكان تنتج \mathbb{R}.

النموذج الثاني يأخذ حجة. يوضح [1] بعد الاسم أن \E يقبل وسيطة واحدة، ويشير #1 إلى مكان وصول تلك الوسيطة في التوسيع. لذا يصبح \E{X} \mathbb{E}\left[X\right]. يشتري التعريف أكثر من الإيجاز: الزوج \left[ و \right] يجعل الأقواس تنمو لتناسب كل ما بداخلها، لذا فإن \E{\frac{X}{n}} تحصل على أقواس طويلة تلقائيًا. يفعل الماكرو \abs الشيء نفسه مع \lvert و\rvert، الزوج الصحيح من الأشرطة الرأسية للقيمة المطلقة. يمكنك الإعلان عن ما يصل إلى تسع وسيطات والإشارة إليها باسم #1 حتى #9.

إذا كان الأمر موجودًا بالفعل، يرفض \newcommand إعادة تعريفه ويتوقف مع وجود خطأ، مما يحميك من كسر شيء ما بصمت. لاستبدال أمر موجود عمدًا، استخدم \renewcommand بدلاً من ذلك.

الواجهة الحديثة

يوفر LaTeX الحالي أيضًا أمرًا تعريفيًا أكثر ثراءً:

\NewDocumentCommand{\citepair}{mm}{\cite{#1}, \cite{#2}}

يستخدم \NewDocumentCommand سلسلة مواصفات وسيطة بدلاً من العدد. هنا يعني mm وسيطتين إلزاميتين، لذا فإن \citepair{knuth84}{lamport94} يستشهد بكلا المفتاحين. تذهب لغة المواصفات إلى أبعد مما يمكن لـ \newcommand: أن تعلن o عن وسيطة اختيارية بين قوسين مربعين، وتكتشف s متغيرًا نجميًا، وتعطي O{default} وسيطة اختيارية قيمة افتراضية. لأي شيء يتجاوز الاستبدال البسيط، يمكنك الوصول إلى هذه الواجهة.

مشاركة التعاريف

احتفظ بـ “macros.sty” مشتركًا عبر الفصول. ضع تعريفاتك في هذا الملف، وقم بتحميله بـ \usepackage{macros} من كل مستند، وكل فصل من فصول الأطروحة، بالإضافة إلى الشرائح والنسخة الورقية، كلها متفقة على التدوين. عندما ينضم أحد المتعاونين، فإنه يقرأ ملفًا قصيرًا واحدًا للتعرف على اصطلاحاتك بدلاً من إجراء هندسة عكسية لها من النص. يقترن هذا بشكل طبيعي مع إعداد متعدد الملفات.

نصيحة حول التسمية: قم بتسمية وحدات الماكرو بأسماء ذات معنى مثل \abs أو \norm بدلاً من الأسماء المستندة إلى المظهر مثل \bigbars. يجب أن يوضح الاسم ما يعنيه التدوين، وبالتالي فإن التعريف له الحرية في تغيير شكله. وقاوم تحديد ماكرو لشيء تستخدمه مرتين؛ يبدأ المردود عند الاستخدام الثالث تقريبًا.

العودة إلى {المسار}