सामग्री पर जाएँ
Topos Uranos

सारांश

यह पाठ सिखाता है कि गणितीय मोड में कैसे प्रवेश करें और विवेक के साथ उससे कैसे बाहर निकलें। यह समझाता है कि इस मोड में पाठ की तुलना में क्या बदलता है: अक्षर चरों की तरह तिरछे (इटैलिक) टाइपसेट होते हैं, स्रोत कोड की रिक्तियाँ नहीं गिनी जातीं और इंजन हर चिह्न की दूरी उसके वर्ग के अनुसार गणना करता है, खाली पंक्तियाँ वर्जित हैं, और कुछ चिह्न दोनों में से केवल एक मोड में होते हैं; यह दिखाता है कि चर को \textit से क्यों नहीं लिखा जाता और LuaLaTeX में अपने मोड से बाहर लिखे गए गणितीय प्रतीक का क्या होता है। यह पंक्ति के भीतर के सूत्र प्रस्तुत करता है, $…$ और \(…\) के साथ, उनकी सीमित ऊँचाई, उनके भीतर पंक्ति का टूटना, टिल्ड और विराम चिह्न; प्रदर्शित सूत्र, \[…\] और equation तथा equation* परिवेशों के साथ, वाक्य के ऐसे अंशों के रूप में जिन पर विराम चिह्न लगते हैं, और $$…$$ का प्रयोग न करने तथा उनसे पहले खाली पंक्ति न छोड़ने के कारण; क्रमांकन, \label, \eqref, \numberwithin और \tag के साथ; सूत्र के भीतर पाठ, \text और \mathrm के साथ, और स्पष्ट रिक्तियाँ; गणितीय मोड में दशमलव बिंदु और अल्पविराम, तथा संख्याओं और इकाइयों के लिए siunitx पैकेज। अंत में सामान्य त्रुटियाँ, जैसे लॉग फ़ाइल उन्हें लिखती है, और वे बातें जिनसे बचना अच्छा है।

अधिगम उद्देश्य

  1. समझाना कि गणितीय मोड में पाठ की तुलना में क्या बदलता है, और गलत मोड में लिखे गए चर, शब्द या प्रतीक के परिणाम का पूर्वानुमान लगाना।
  2. पंक्ति के भीतर के सूत्र और प्रदर्शित सूत्र में से चुनना, और प्रत्येक को वाक्य के अंश के रूप में, उसके विराम चिह्नों के साथ और अनुचित खाली पंक्तियों के बिना लिखना।
  3. प्रदर्शित सूत्रों को equation से क्रमांकित करना, \eqref से उनका संदर्भ देना, और \numberwithin तथा \tag से बनने वाले क्रमांकन का पूर्वानुमान लगाना।
  4. दशमलव संख्याएँ और इकाइयों वाली राशियाँ भारतीय प्रचलन के अनुसार लिखना, यह जानते हुए कि गणितीय मोड बिंदु और अल्पविराम के साथ क्या करता है।
  5. लॉग फ़ाइल से “Missing $ inserted”, “Bad math environment delimiter” और “Missing character” त्रुटियों का निदान करना, और स्रोत कोड में उनका कारण ढूँढना।

टाइपसेटिंग के दो मोड

अब तक इंजन ने पाठ टाइपसेट किया है: रिक्तियों से अलग किए गए शब्द, जो पंक्तियों और अनुच्छेदों में बँटते हैं। सूत्र दूसरे नियमों का पालन करता है, और इसीलिए LaTeX उसे एक अलग गणितीय मोड में टाइपसेट करता है, जिसमें सीमांककों से प्रवेश किया जाता है और जिससे बाहर निकला जाता है। प्रवेश करते ही बहुत कुछ बदलता है, और सीमांककों को देखने से पहले उसे गिना देना उचित है, क्योंकि इस पाठ की लगभग सभी सलाहें उसी से निकलती हैं।

  • अक्षर अपने ही तिरछे फ़ॉन्ट में टाइपसेट होते हैं, चरों के फ़ॉन्ट में, जिसकी चौड़ाई और दूरी इस तरह बनाई गई है कि वे शब्दों की तरह नहीं, प्रतीकों की तरह पढ़े जाएँ; इस फ़ॉन्ट में केवल लैटिन अक्षर हैं, देवनागरी नहीं।
  • स्रोत कोड की रिक्तियाँ नहीं गिनी जातीं: $x=a-b$ और $x = a - b$ ठीक एक ही परिणाम देते हैं। दूरी इंजन हर चिह्न के वर्ग के अनुसार गणना करता है: साधारण (एक अक्षर, एक अंक), द्विआधारी संक्रिया (+, -), संबंध (=, <), विराम चिह्न (अल्पविराम), खुलने और बंद होने वाले (कोष्ठक)।
  • खाली पंक्ति की अनुमति नहीं है: खाली पंक्ति अनुच्छेद समाप्त करती है, और अनुच्छेद के अंत में कोई सूत्र खुला नहीं रह सकता।
  • कुछ चिह्न दोनों में से केवल एक मोड में होते हैं: ^ और _, जो घातांक और पादांक बनाते हैं, या \alpha जैसे यूनानी अक्षर गणितीय हैं; देवनागरी अक्षर और é जैसे चिह्नयुक्त अक्षर पाठ के हैं।
उदाहरणइंजन चिह्नों को उनके वर्ग के अनुसार दूरी देता है
LaTeX कोड
पाठ के रूप में: x=a-b, y=-b.​गणितीय मोड में: $x=a-b$, $y=-b$.​स्रोत में अलग रिक्तियों के साथ: $x   =   a-   b$, $y = - b$.
परिणाम
परिणाम

दूसरी और तीसरी पंक्तियाँ एक जैसी हैं, यद्यपि उनके स्रोत अलग हैं। $x=a-b$ में ऋण चिह्न द्विआधारी है, क्योंकि उसके दोनों ओर एक-एक संकार्य है, और उसे मध्यम रिक्ति मिलती है; $y=-b$ में बराबर के चिह्न के बाद उसके बाईं ओर कोई संकार्य नहीं है, इसलिए उसे एक संकार्य वाला चिह्न माना जाता है और वह b से चिपक जाता है। पहली पंक्ति, जो पाठ के रूप में टाइपसेट हुई है, कुछ भेद नहीं करती: हाइफ़न हाइफ़न है और बराबर के चिह्न के आसपास रिक्ति नहीं है।

चर को textit से क्यों नहीं लिखा जाता

इससे यह निकलता है कि पाठ का तिरछा फ़ॉन्ट और गणितीय मोड का तिरछा फ़ॉन्ट एक ही चीज़ नहीं हैं। \textit{x} पाठ के फ़ॉन्ट का अक्षर देता है, उस दूरी के बिना जो इंजन चिह्नों को देता है; और गणितीय मोड में लिखा गया शब्द शब्द नहीं, बल्कि गुणा किए गए चरों का अनुक्रम है, यदि उसके अक्षर गणितीय फ़ॉन्ट में हों भी।

उदाहरणपाठ का फ़ॉन्ट, सूत्र के रूप में शब्द और सही रूप
LaTeX कोड
textit के साथ: \textit{f}(\textit{x}) = \textit{x} + 1, यदि \textit{x} > 0।​सूत्र के रूप में: $f(x) = x + 1$, यदि $x > 0$।​गणितीय मोड में शब्द: $लागत = मूल्य - छूट$।​पाठ के रूप में शब्द: $\text{लागत} = \text{मूल्य} - \text{छूट}$।
परिणाम
परिणाम

पहली पंक्ति में रिक्तियाँ केवल वही हैं जो लेखक ने टाइप कीं, और चिह्न पाठ के फ़ॉन्ट के हैं; इस दस्तावेज़ के फ़ॉन्ट IBM Plex Sans Devanagari में कोई तिरछा रूप भी नहीं है, इसलिए \textit से लिखे अक्षर सीधे ही रहते हैं और स्पष्ट रूप से चर नहीं दिखते। सूत्र के भीतर, इसके विपरीत, इंजन बराबर और “से बड़ा” चिह्न को दोनों ओर संबंध की रिक्ति देता है। तीसरी पंक्ति में हिंदी के शब्द पूरी तरह गायब हो जाते हैं और केवल बराबर तथा ऋण के चिह्न बचते हैं: अतिरिक्त पैकेजों के बिना LuaLaTeX के गणितीय तिरछे फ़ॉन्ट में देवनागरी नहीं है, और यह बात केवल लॉग फ़ाइल बताती है, हर अक्षर के लिए एक “Missing character” पंक्ति से। लैटिन अक्षरों वाला शब्द गायब नहीं होता, बल्कि अनियमित दूरियों वाले चरों के गुणनफल की तरह पढ़ा जाता। \text कमांड, जो amsmath पैकेज का है, इस पाठ में आगे पढ़ा जाएगा।

अपने मोड से बाहर गणितीय प्रतीक

pdfLaTeX में पाठ में \alpha लिखने से “Missing $ inserted” त्रुटि आती है। LuaLaTeX में, जो इस पाठ्यक्रम का इंजन है, ऐसा नहीं होता: यूनानी अक्षर बिना त्रुटि के टाइपसेट होता है, पर अप्रत्याशित ढंग से। यदि दस्तावेज़ में अभी तक कोई सूत्र टाइपसेट नहीं हुआ, तो वह गायब हो जाता है; यदि कोई सूत्र टाइपसेट हो चुका है, तो वह गणितीय फ़ॉन्ट से लिया जाकर अगले शब्द से चिपका हुआ दिखाई देता है, क्योंकि कमांड के बाद की रिक्ति खो जाती है।

उदाहरणएक ही यूनानी अक्षर, तीन बार
LaTeX कोड
पहला: कोण \alpha न्यून है।​दूसरा: कोण $\alpha$ न्यून है।​तीसरा: कोण \alpha न्यून है।
परिणाम
परिणाम

पहला वाक्य बिना किसी दृश्य चेतावनी के अक्षर खो देता है; तीसरा संयोग से उसे बचा लेता है, “न्यून” से चिपका हुआ। एकमात्र निशान लॉग फ़ाइल में है, और केवल पहले वाक्य का:

संकलन लॉग
Missing character: There is no ^^K (U+000B) in font nullfont!

अतः LuaLaTeX में अपने मोड से बाहर लिखा गया गणितीय प्रतीक त्रुटि के रूप में नहीं बताया जाता: उसे हमेशा सीमांककों के बीच लिखना चाहिए, और किसी दस्तावेज़ को पूरा मानने से पहले लॉग फ़ाइल में “Missing character” खोज लेना उचित है।