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

सारांश

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

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

  1. इकाई की विषय-वस्तु के क्रम का वर्णन करना और समझाना कि हर पाठ अगले पाठ को क्या देता है।
  2. इकाई जिन पूर्व-ज्ञानों को मानकर चलती है उन्हें पहचानना और कंप्यूटर को उसके लिए तैयार करना, विशेष रूप से फ़ाइलों के एक्सटेंशन दिखाई देने की व्यवस्था।
  3. एक उदाहरण से समझाना कि LaTeX का कोई दस्तावेज़ कोई परिणाम क्यों नहीं दे सकता और त्रुटि हमेशा वहीं क्यों नहीं बताई जाती जहाँ वह होती है।
  4. अन्य विषयों में और आगे की इकाइयों में लिखने, कंपाइल करने और सुधारने के उस चक्र को पहचानना जिसे यह इकाई बनाती है।

प्रवेश मूल्यांकन

इकाई शुरू करने से पहले आरंभ-बिंदु को माप लेना उपयोगी है। यह मूल्यांकन एक स्व-मूल्यांकन है: इसमें अंक नहीं दिए जाते, और इसका एकमात्र उद्देश्य अध्ययन को दिशा देना है। इसके आठ प्रश्न, दो-दो करके और क्रम से, इकाई के चार पाठों से संबंधित हैं; जिसने कभी LaTeX का उपयोग नहीं किया, उसे इनके सही उत्तर की अपेक्षा नहीं करनी चाहिए, और इससे कोई फ़र्क़ नहीं पड़ता: हर उत्तर, सही हो या ग़लत, बात को समझाता है और उस पाठ का नाम बताता है जिसमें वह बात आती है। यही कौशल अंत में, सारांश वाले पाठ में, फिर से मापे जाते हैं; चूँकि यह पाठ्यक्रम की पहली इकाई है, इसलिए पिछली इकाइयों पर कोई प्रश्न नहीं है।

प्रवेश मूल्यांकन

इकाई शुरू करने से पहले अपना आरंभ बिंदु मापें। यह एक छोटा स्व-मूल्यांकन है: इस पर अंक नहीं दिए जाते और इसका परिणाम केवल आपके ब्राउज़र में रहता है।

  1. प्रश्न 1एक शोधकर्ता हिंदी में एक लेख लिख रही हैं जिसमें बहुस्वराघाती (polytonic) यूनानी के अंश उद्धृत हैं, और पत्रिका एक OpenType फ़ॉन्ट की माँग करती है जो उनके कंप्यूटर पर इंस्टॉल है। इस पाठ्यक्रम की कसौटी के अनुसार उन्हें लेख किस इंजन से कंपाइल करना चाहिए?

  2. प्रश्न 2किसी दस्तावेज़ के मुख्य भाग में ज्यों-की-त्यों लिखी पंक्ति परीक्षा में सफल छात्रों का अनुपात 70% रहा। क्या छापती है?

  3. प्रश्न 3एक शोध-प्रबंध के फ़ोल्डर में thesis.tex, thesis.aux, thesis.log, thesis.toc, thesis.pdf और map.png हैं; अंतिम फ़ाइल एक चित्र है जिसे शोध-प्रबंध शामिल करता है। एक सह-लेखक इस शोध-प्रबंध को अपने कंप्यूटर पर कंपाइल करेगा। उसे कम-से-कम क्या मिलना चाहिए?

  4. प्रश्न 4एक छात्र अपना स्रोत सुधारकर कंपाइल करता है, पर व्यूअर में दिखने वाली PDF नहीं बदलती। लॉग फ़ाइल इस पंक्ति पर समाप्त होती है: Fatal error occurred, no output PDF file produced!। वह कौन-सी PDF देख रहा है?

  5. प्रश्न 5किसी दस्तावेज़ के मुख्य भाग में, कई अनुच्छेदों के बाद, लेखक \usepackage{amsmath} लिखता है। कंपाइल करने पर क्या होता है?

  6. प्रश्न 6किसी दस्तावेज़ के मुख्य भाग में ज्यों-का-त्यों लिखा यह वाक्य है: फ़ाइल को final_report.tex नाम से सहेजें। कंपाइल करने पर क्या होता है?

  7. प्रश्न 7एक कंपाइलेशन की लॉग फ़ाइल में त्रुटि ! Undefined control sequence. है और उसके नीचे पंक्ति l.7 \sectoin है। इससे क्या पता चलता है?

  8. प्रश्न 8कंपाइलेशन PDF बना देता है, पर लॉग में यह पंक्ति है: Overfull \hbox (3.21451pt too wide) in paragraph at lines 20--24। इसका क्या अर्थ है?

इकाई की विषय-वस्तु

यह इकाई पाठ्यक्रम के पहले उद्देश्य की पूर्ति करती है, अर्थात दस्तावेज़ बनाना और कंपाइल करना, उनकी त्रुटियों का निदान और सुधार करते हुए, और यह बाक़ी सभी उद्देश्यों की शर्त है: कई भाषाओं और लिपियों में पाठ टाइपसेट करना, लंबे दस्तावेज़ों की संरचना बनाना, गणित और तर्कशास्त्र लिखना, तालिकाएँ और चित्र प्रस्तुत करना, संदर्भ-सूची का प्रबंधन करना और हर अकादमिक विधा के लिए उपयुक्त क्लास चुनना, ये सब मानकर चलते हैं कि लिखने, कंपाइल करने और सुधारने का चक्र अब कोई कठिनाई नहीं देता। इसका लक्ष्य यह है कि जिसने कभी LaTeX का उपयोग नहीं किया, वह इसे पूरा करने पर एक ख़ाली फ़ाइल से एक छोटा दस्तावेज़ लिख सके, उसे Texmaker में या Overleaf पर LuaLaTeX से कंपाइल कर सके और, जब वह कंपाइल न हो, तो कारण को स्वयं ढूँढ़कर सुधार सके। इसके चार पाठ एक शृंखला बनाते हैं जिसमें हर पाठ पिछले पाठों पर टिका है।

  1. LaTeX क्या है। यह टाइपसेटिंग को समझाता है, मार्कअप भाषा की तुलना वर्ड प्रोसेसर से करता है, TeX और LaTeX की उत्पत्ति और विषय-वस्तु को रूप से अलग रखने के उनके सिद्धांत की कहानी बताता है, LuaLaTeX के चुनाव का औचित्य देता है और दिखाता है कि एक स्रोत PDF में कैसे बदलता है। यह पूरी इकाई की शब्दावली तय करता है: स्रोत, इंजन, कंपाइलेशन, प्रस्तावना, मुख्य भाग और लॉग।
  2. कार्य-परिवेश। यह वह सब इंस्टॉल करता है जिसका वर्णन पहले पाठ ने किया: TeX का एक डिस्ट्रीब्यूशन, अपने पैकेज मैनेजर सहित, और Texmaker एडिटर, जिसे LuaLaTeX से कंपाइल करने और UTF-8 में सहेजने के लिए सेट किया गया हो; यह ब्राउज़र में विकल्प के रूप में Overleaf का परिचय देता है, और समझाता है कि कंपाइलेशन कौन-सी फ़ाइलें छोड़ता है और किन्हें रखा जाता है। यह दो परीक्षण-दस्तावेज़ों के साथ समाप्त होता है जो इंस्टॉलेशन की जाँच करते हैं।
  3. एक दस्तावेज़ की संरचना। यह स्रोत को उसके हिस्सों में बाँटता है: प्रस्तावना और मुख्य भाग, कमांड और उनके आर्ग्युमेंट, घोषणाओं के प्रभाव-क्षेत्र को सीमित करने वाले समूह, परिवेश, दस आरक्षित वर्ण, टिप्पणियाँ, पैकेज और क्लास। इसके बाद पहले पाठ का न्यूनतम दस्तावेज़ एक नुस्ख़ा नहीं रह जाता, बल्कि एक संरचना बन जाता है जिसे हिस्सा-दर-हिस्सा समझा जा सकता है।
  4. कंपाइल करना और त्रुटियाँ सुधारना। यह लॉग पढ़ना सिखाता है: त्रुटियों को चेतावनियों से अलग करना, हर त्रुटि को स्रोत में खोजना, सबसे आम संदेशों को पहचानना और, जब संदेश पर्याप्त न हो, कारण को अलग करना। यह पिछले सब को जोड़ता है, क्योंकि लगभग हर त्रुटि स्रोत की संरचना के किसी नियम का उल्लंघन है, और उसका निदान कार्य-परिवेश पर टिका है।

इकाई सारांश और चुनौतियों वाले पाठ के साथ समाप्त होती है, जो उपलब्धियों को अवधारणाओं और प्रक्रियाओं की एक शृंखला में जोड़ता है, अपने समापन मूल्यांकन में प्रवेश मूल्यांकन के कौशलों को दोहराता है और ऐसी चुनौतियाँ देता है जो कई पाठों को मिलाती हैं।

जो पहले से ज्ञात माना गया है

इकाई लगभग शून्य से शुरू होती है। यह नहीं मानती कि आपने LaTeX का उपयोग किया है, न यह कि आप प्रोग्रामिंग जानते हैं, न गणित का कोई ज्ञान; यह अंग्रेज़ी जानना भी नहीं मानती, यद्यपि इंजन के संदेश उसी भाषा में होते हैं, क्योंकि पाठ्यक्रम अपने हर प्रस्तुत संदेश को समझाता है। यह केवल कंप्यूटर के सामान्य उपयोग को मानती है: फ़ोल्डर बनाना, किसी फ़ाइल को निश्चित नाम से और निश्चित फ़ोल्डर में सहेजना, बाद में उसे ढूँढ़ना, फ़ाइलों को कॉपी करना, खिसकाना और मिटाना, और कोई प्रोग्राम इंस्टॉल करना, या फिर एक ब्राउज़र और Overleaf पर एक खाता होना।

इससे केवल एक पूर्व-तैयारी निकलती है, जिसे कार्य-परिवेश वाले पाठ से पहले कर लेना अच्छा है। फ़ाइल के नाम में एक आधार और एक एक्सटेंशन होता है, अर्थात अंतिम बिंदु के बाद वाला हिस्सा: report.tex में आधार report है और एक्सटेंशन tex। परंतु Windows का फ़ाइल एक्सप्लोरर और macOS का Finder ज्ञात एक्सटेंशनों को डिफ़ॉल्ट रूप से छिपा देते हैं, जिससे report.tex और report.pdf दोनों report के रूप में दिखती हैं, और कंपाइलेशन की सहायक फ़ाइलें, जो केवल अपने एक्सटेंशन से अलग पहचानी जाती हैं, एक-दूसरे से अलग नहीं पहचानी जा सकतीं। इसलिए एक्सटेंशन दिखाने वाला विकल्प चालू कर लेना चाहिए: Windows में फ़ाइल एक्सप्लोरर के व्यू मेनू में; macOS में Finder की उन्नत सेटिंग्स में। Linux में फ़ाइल मैनेजर उन्हें डिफ़ॉल्ट रूप से दिखाते हैं।

वह समस्या जिसे इकाई हल करती है

वर्ड प्रोसेसर में लिखने वाला व्यक्ति लिखते-लिखते परिणाम देखता है। LaTeX में स्रोत और पृष्ठ के बीच एक प्रोग्राम होता है जो स्रोत को अक्षरशः पढ़ता है, और परिणाम केवल कंपाइल करने पर दिखता है। इससे दो समस्याएँ खड़ी होती हैं, जो इस इकाई की समस्याएँ हैं। पहली यह कि ख़ाली फ़ाइल से टाइपसेट दस्तावेज़ तक कैसे पहुँचा जाए: क्या इंस्टॉल करना होगा, स्रोत में कम-से-कम क्या होना चाहिए और इंजन उसके साथ क्या करता है। दूसरी यह कि जब दस्तावेज़ न बने, या जैसा चाहा था उससे अलग बने, तब क्या किया जाए: इंजन त्रुटि को पृष्ठ पर नहीं दिखाता, बल्कि लॉग में अपनी ही भाषा में उसका वर्णन करता है, और कभी-कभी उसे उस जगह से दूर बताता है जहाँ वह हुई थी। अगला उदाहरण सत्रह पंक्तियों के एक दस्तावेज़ में दोनों समस्याएँ दिखाता है।

उदाहरणएक छूटा हुआ कोष्ठक

नीचे का स्रोत एक पूरा दस्तावेज़ है: यह क्लास घोषित करता है, पैकेज लोड करता है, शीर्षक, लेखक और एक ख़ाली तारीख़ सहेजता है, और दो अनुभाग टाइपसेट करता है। babel वाली तीन पंक्तियाँ हिंदी को मुख्य भाषा बनाती हैं: \babelprovide हिंदी की सेटिंग आयात करता है और \babelfont देवनागरी वाला फ़ॉन्ट (यहाँ IBM Plex Sans Devanagari) चुनता है, क्योंकि डिफ़ॉल्ट फ़ॉन्ट (Latin Modern) में देवनागरी अक्षर नहीं हैं; और चूँकि देवनागरी में तिरछे (italic) अक्षरों की परंपरा नहीं है, शब्द पर ज़ोर \textbf से मोटे अक्षरों में दिया गया है। LuaLaTeX से कंपाइल करने पर यह परिणाम मिलता है।

LaTeX कोड
\documentclass{article}\usepackage{fontspec}\usepackage{babel}\babelprovide[import,main]{hindi}\babelfont{rm}[Script=Devanagari]{IBM Plex Sans Devanagari}\title{पठन रिपोर्ट}\author{अनन्या शर्मा}\date{}​\begin{document}\maketitle\section{प्रश्न}यह पाठ 40\% मामलों के बारे में एक \textbf{परिकल्पना} की जाँच करता है।​\section{उत्तर}उत्तर पिछले खंड पर आधारित है।\end{document}
परिणाम
परिणाम

यदि तेरहवीं पंक्ति में \textbf के आर्ग्युमेंट को बंद करने वाला कोष्ठक छोड़ दिया जाए, तो इंजन कोई PDF नहीं बनाता, और लॉग में अन्य पंक्तियों के साथ ये पंक्तियाँ होती हैं।

संकलन लॉग
Runaway argument?{परिकल्पना की जाँच करता है।\ETC.! File ended while scanning use of \textbf ....!  ==> Fatal error occurred, no output PDF file produced!

त्रुटि तेरहवीं पंक्ति में नहीं, बल्कि फ़ाइल के अंत में बताई जाती है: इंजन \textbf के आर्ग्युमेंट को अनुच्छेद, अगले अनुभाग और \end{document} के पार पढ़ता चला गया, जब तक फ़ाइल समाप्त नहीं हो गई। परंतु लॉग वह सुराग़ देता है जो कम था: “Runaway argument?” के बाद की पंक्ति बेक़ाबू आर्ग्युमेंट को उसकी शुरुआत से दोहराती है, और वह शुरुआत, यानी “परिकल्पना” से पहले वाला कोष्ठक, ठीक त्रुटि का स्थान है। लॉग को इस तरह पढ़ना कंपाइल करने और त्रुटियाँ सुधारने वाला पाठ सिखाता है; यह समझना कि बंद न किया गया कोष्ठक अपने बाद की हर चीज़ को क्यों घसीट ले जाता है, दस्तावेज़ की संरचना वाला पाठ सिखाता है।

अतः इन दोनों समस्याओं का इकाई का उत्तर दो भागों में है। पहली के लिए, एक इंस्टॉल किया हुआ और परखा हुआ परिवेश, और एक ऐसा स्रोत जिसकी संरचना हिस्सा-दर-हिस्सा समझ में आती है, ताकि उसमें कुछ भी जादुई मंत्र न हो। दूसरी के लिए, एक विधि: लॉग को पहली त्रुटि से पढ़ना, त्रुटि को स्रोत में ढूँढ़ना, टूटे हुए नियम को पहचानना और, यदि संदेश पर्याप्त न हो, तो स्रोत के हिस्सों को निष्क्रिय करके कारण को अलग करना। किसी भी भाग में कमांडें रटने की ज़रूरत नहीं; दोनों में स्रोत को वैसे पढ़ना ज़रूरी है जैसे इंजन उसे पढ़ता है।

विभिन्न विषयों में इकाई

इकाई जो चक्र सिखाती है वह सभी विषयों में एक ही है, और एक विषय से दूसरे में केवल वह बदलता है जो लिखा जाता है। रसायन-विज्ञान की प्रयोगशाला रिपोर्ट, सौ पाद-टिप्पणियों वाला दर्शनशास्त्र का निबंध, लैटिन पाठ और उसके अनुवाद के साथ सिसरो के किसी अंश पर टीका, तालिकाओं वाला अर्थशास्त्र का शोध-पत्र, अभिलेखागार के दस्तावेज़ों वाला इतिहास का शोध-प्रबंध और प्रमेयों वाला गणित का लेख, सब एक ही तरह शुरू होते हैं: एक फ़ोल्डर, अपनी प्रस्तावना और मुख्य भाग वाली एक स्रोत फ़ाइल, एक कंपाइलेशन और उसके लॉग का पठन। इसी तरह इस इकाई की त्रुटियाँ, जैसे बंद न किया गया कोष्ठक, ज्यों-का-त्यों लिखा गया आरक्षित वर्ण, ग़लत जगह लोड किया गया पैकेज, इनमें से किसी भी दस्तावेज़ में आ सकती हैं, विषय चाहे जो हो।

इसलिए इकाई जो सिखाती है उसका उपयोग साइट के अन्य पाठ्यक्रमों में होता है। अरस्तू का तर्कशास्त्र या यांत्रिकी के मूल सिद्धांत के गृहकार्य और नोट्स पहले सप्ताह से LaTeX में लिखे जा सकते हैं; R के साथ डेटा विश्लेषण में किसी विश्लेषण के परिणाम एक टाइपसेट दस्तावेज़ में जोड़े जाते हैं; और C++ में प्रोग्रामिंग I में चक्र मूलतः वही है: एक स्रोत लिखा जाता है, एक कंपाइलर उसे पढ़ता है, और उसके संदेश, जो पंक्ति-संख्याओं की ओर इशारा करते हैं, उसी विधि से पढ़े जाते हैं जो यह इकाई सिखाती है।

यह कहाँ ले जाती है

इकाई पूरी होने पर न्यूनतम दस्तावेज़ एक परिचित आरंभ-बिंदु होगा, और आगे की इकाइयाँ उसी पर निर्माण करेंगी। दूसरी इकाई स्वयं पाठ से संबंधित होगी: भाषाएँ और लिपियाँ, जिनमें यूनानी और लैटिन भी हैं, फ़ॉन्ट, पाद-टिप्पणियाँ और लंबे उद्धरण। तीसरी, लंबे दस्तावेज़ों की संरचना से, उनके अध्यायों, विषय-सूची और आंतरिक संदर्भों के साथ, जो कई फ़ाइलों में बँटे होते हैं। चौथी, गणित और तर्कशास्त्र को सही संकेतन में लिखने से; पाँचवीं, तालिकाओं और चित्रों से; छठी, संदर्भ-सूची और हर विषय की उद्धरण-परंपराओं से; और सातवीं, हर अकादमिक विधा के लिए उपयुक्त दस्तावेज़ क्लासों से, प्रस्तुतियों से लेकर पत्रों और पोस्टरों तक। इन सब में हर नई कमांड लिखी जाएगी, कंपाइल की जाएगी और, विफल होने पर, उसी से सुधारी जाएगी जो इस इकाई में सीखा गया।