आप एक से अधिक बार संकलन क्यों करते हैं?
औक्स फ़ाइलें, ग्रंथ सूची पास, और संदर्भ क्यों प्रिंट होते हैं ?? पहले रन पर.
#आप एक से अधिक बार संकलन क्यों करते हैं?
देर-सबेर आप एक दस्तावेज़ संकलित करेंगे, पीडीएफ खोलेंगे, और ?? पाएंगे जहां एक अंक संख्या या उद्धरण होना चाहिए। कुछ भी टूटा नहीं है. एक एकल संकलन आपकी फ़ाइल को एक बार पास करना है, और कुछ जानकारी वास्तव में एक बार में नहीं जानी जा सकती है।
यहाँ लघु रूप में समस्या है। पृष्ठ 2 पर आप लिखते हैं “देखें चित्र \ref{अंजीर:परिणाम}”, लेकिन वह आंकड़ा पृष्ठ 7 पर आता है। जब इंजन पृष्ठ 2 को टाइप करता है, तो यह अभी तक पृष्ठ 7 पर नहीं पहुंचा है, इसलिए यह पता नहीं है कि आंकड़ा कौन सा नंबर प्राप्त करेगा। यही बात विषय-सूची पर भी लागू होती है, जिसमें पृष्ठ एक के समाप्त होने से पहले ही प्रत्येक अनुभाग की पृष्ठ संख्या की आवश्यकता होती है।
इंजन इसे कैसे हल करता है
एक LaTeX इंजन आपकी .tex फ़ाइल को पढ़ता है, प्रत्येक मैक्रो को हल करता है, और एक पीडीएफ लिखता है। पीडीएफ के साथ-साथ यह छोटी सहायक फ़ाइलें भी लिखता है: लेबल और उद्धरणों के लिए .aux, सामग्री की तालिका के लिए .toc, स्वरूपित ग्रंथ सूची के लिए .bbl। ये फ़ाइलें वे नोट हैं जिन्हें इंजन अपने भविष्य के लिए छोड़ता है।
- पहली बार में, इंजन आपके टेक्स्ट को टाइप करता है और प्रत्येक
\labelऔर\citeको.auxफ़ाइल में लिखता है, और??को प्रिंट करता है, जहां भी उसे ऐसे नंबर की आवश्यकता होती है जिसे वह अभी तक नहीं जानता है। - यदि आप कुछ भी उद्धृत करते हैं, तो एक ग्रंथ सूची उपकरण (bibtex या biber)
.auxफ़ाइल को पढ़ता है, आपके.bibडेटाबेस में प्रत्येक उद्धरण को देखता है, और स्वरूपित संदर्भ सूची को.bblफ़ाइल में लिखता है। - दूसरे और कभी-कभी तीसरे पास पर, इंजन उन सहायक फ़ाइलों को वापस पढ़ता है, इसलिए क्रॉस-रेफरेंस, सामग्री प्रविष्टियों की तालिका, और उद्धरण लेबल अंततः वास्तविक संख्याओं में हल हो जाते हैं।
आधुनिक सेटअप आपके लिए इन पासों को स्वचालित रूप से चलाते हैं, इसलिए व्यवहार में आप शायद ही कभी स्वयं कमांड टाइप करते हैं। लेकिन चक्र को जानने से लक्षण स्पष्ट हो जाता है: एक लेबल या उद्धरण जोड़ने के बाद एक ताज़ा ?? का अर्थ है कि सहायक फ़ाइलें अभी तक पकड़ में नहीं आई हैं, और एक और संकलन इसे ठीक करता है।
प्रत्येक इंजन एक पंक्ति में
कई प्रोग्राम “इंजन” की भूमिका निभा सकते हैं। पीडीएफएलएटीएक्स व्यापक जर्नल समर्थन के साथ क्लासिक विकल्प है। XeLaTeX पूर्ण यूनिकोड जोड़ता है और आपको अपने सिस्टम पर इंस्टॉल किए गए फ़ॉन्ट का उपयोग करने देता है। LuaLaTeX यूनिकोड भी बोलता है और उन्नत पैकेजों के लिए एक स्क्रिप्टिंग भाषा एम्बेड करता है। टेक्टोनिक एक आधुनिक इंजन है जो पहली बार आपकी जरूरत पड़ने पर पैकेज डाउनलोड करता है। Oleafly इसे बंडल करता है ताकि पहले TeX वितरण स्थापित किए बिना एक नया प्रोजेक्ट संकलित हो सके।
अधिकांश दस्तावेज़ों के लिए मतभेद बमुश्किल मायने रखते हैं; आपका टेम्प्लेट या स्थल जो अपेक्षा करता है उसे चुनें और आगे बढ़ें। जब आपको जानबूझकर चयन करने की आवश्यकता हो तो इंजन की तुलना देखें।
जब कोई चीज़ वास्तव में विफल हो जाती है
एक असफल संकलन एक लंबे लॉग को डंप कर देता है, और स्वाभाविक प्रवृत्ति इसे नीचे से ऊपर तक पढ़ने की होती है। उसका विरोध करो. लॉग में पहली त्रुटि पढ़ें और केवल उसे ठीक करें; बाद की त्रुटियाँ अक्सर पहली त्रुटि के कारण होने वाला व्यापक शोर होती हैं। यदि लगातार दो सफल संकलनों के बाद भी संदर्भ ?? प्रिंट करते हैं, तो सामान्य अपराधी एक लापता पास के बजाय \label या \ref नाम में एक टाइपो है।