मैक्रोज़ जो नोटेशन को ईमानदार रखते हैं
न्यूकमांड, न्यूडॉक्यूमेंटकमांड, एक साझा मैक्रोज़ फ़ाइल।
मैक्रोज़ जो नोटेशन को ईमानदार रखते हैं
प्रत्येक पेपर में ऐसे नोटेशन होते हैं जो दोहराते हैं: वास्तविक संख्याएं, एक अपेक्षा ऑपरेटर, उचित आकार की पट्टियों के साथ एक निरपेक्ष मान। यदि आप चालीस स्थानों पर \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} के साथ लोड करें, और थीसिस के प्रत्येक अध्याय, साथ ही स्लाइड और पेपर संस्करण, सभी नोटेशन पर सहमत हों। जब कोई सहयोगी शामिल होता है, तो वे आपके सम्मेलनों को पाठ से रिवर्स-इंजीनियरिंग करने के बजाय सीखने के लिए एक छोटी फ़ाइल पढ़ते हैं। यह स्वाभाविक रूप से एक मल्टी-फ़ाइल सेटअप के साथ जुड़ता है।
नामकरण पर एक युक्ति: मैक्रोज़ को \bigbars जैसे उपस्थिति-आधारित नामों के बजाय \abs या \norm जैसे सार्थक नाम दें। नाम को यह बताना चाहिए कि अंकन का क्या अर्थ है, इसलिए परिभाषा यह बदलने के लिए स्वतंत्र है कि यह कैसा दिखता है। और किसी ऐसी चीज़ के लिए मैक्रो को परिभाषित करने का विरोध करें जिसे आप दो बार उपयोग करते हैं; भुगतान तीसरे उपयोग के आसपास शुरू होता है।