अपरिभाषित नियंत्रण अनुक्रम
अज्ञात कमांड नाम: टाइपो त्रुटियां, गुम पैकेज, गलत इंजन।
अपरिभाषित नियंत्रण अनुक्रम
लक्षण
संकलन ` के साथ रुकता है! अपरिभाषित नियंत्रण अनुक्रम। लॉग तब उस पंक्ति को दिखाता है जहां यह हुआ था, दो भागों में विभाजित: टीईएक्स ने जो कुछ भी पढ़ा था और एक पंक्ति में आपत्तिजनक कमांड और उसके नीचे की बाकी स्रोत लाइन भी शामिल थी। उस ऊपरी पंक्ति पर अंतिम टोकन वह कमांड है जिसे TeX ने नहीं पहचाना, जो इसे सटीक रूप से पता लगाने में आसान त्रुटियों में से एक बनाता है।
ऐसा क्यों होता है
नियंत्रण अनुक्रम वह चीज़ है जो बैकस्लैश से शुरू होती है। TeX की कोई निश्चित शब्दावली नहीं है: कमांड केवल इसलिए मौजूद हैं क्योंकि कर्नेल, दस्तावेज़ वर्ग, एक पैकेज, या आपके स्वयं के \newcommand ने उन्हें परिभाषित किया है। जब TeX एक बैकस्लैश पढ़ता है जिसके बाद कोई ऐसा नाम आता है जिसे कुछ भी परिभाषित नहीं किया गया है, तो यह अनुमान नहीं लगा सकता कि आपका क्या मतलब है और रुक जाता है। त्रुटि आमतौर पर कमांड के “गलत” होने के बारे में नहीं है। यह उस नाम के बारे में है जो इस दस्तावेज़ में, इस बिंदु पर, इस इंजन के अंतर्गत अज्ञात है।
इसे तीन चेक में ठीक करें
पहले वर्तनी जांचें. \textbf के बजाय \texbf, \label के बजाय \lable, या अधिकांश मामलों में दो खातों में एक नाम को तोड़ने वाला एक आवारा स्थान। लॉग का लाइन नंबर आपको सीधे टाइपो पर ले जाता है।
यदि वर्तनी सही है, तो संभवतः परिभाषित पैकेज गायब है। \includegraphics \usepackage{graphicx} के बिना कुछ नहीं करता है, \torule को booktabs की आवश्यकता है, और \SI को siunitx की आवश्यकता है। जब आप किसी अन्य दस्तावेज़ से या मॉडल के उत्तर से एक स्निपेट कॉपी करते हैं तो यह सबसे कठिन होता है: मुख्य पाठ साथ आया, प्रस्तावना पंक्ति नहीं। पता लगाएं कि कौन सा पैकेज एक कमांड को परिभाषित करता है [प्रत्येक कमांड समझाया गया] (/ सीखें/प्रत्येक-कमांड-समझाया/), \usepackage लाइन जोड़ें, और पुन: संकलित करें। यदि पैकेज स्वयं स्थापित नहीं है, तो लापता पैकेज स्थापित करें देखें।
यदि पैकेज लोड हो गया है और त्रुटि बनी रहती है, तो इंजन पर संदेह करें। कुछ कमांड केवल एक विशेष इंजन के अंतर्गत मौजूद होते हैं: \fontspec और इसके रिश्तेदारों को XeLaTeX या LuaLaTeX की आवश्यकता होती है और बिल्कुल इसी त्रुटि के साथ pdfLaTeX के अंतर्गत समाप्त हो जाएंगे। टेम्प्लेट जो अपने दस्तावेज़ में एक इंजन निर्दिष्ट करते हैं, आमतौर पर इसी कारण से ऐसा करते हैं। इस प्रोजेक्ट के लिए कौन सा इंजन अंतर बताता है।
जानने लायक दो विचित्रताएँ
ऑर्डर मायने रखता है: \usepackage लाइन से पहले इस्तेमाल किया गया एक कमांड जो इसे परिभाषित करता है, उस बिंदु पर अभी भी अपरिभाषित है, इसलिए \begin{document} के ऊपर, प्रस्तावना में पैकेज लोडिंग रखें। और एक त्रुटि अक्सर दूसरी को छिपा देती है, क्योंकि TeX के ठीक होने के बाद यह आगे आने वाली हर चीज़ को गलत तरीके से पढ़ सकता है। लॉग में पहले अपरिभाषित नियंत्रण अनुक्रम को ठीक करें, पुनः संकलित करें, और उसके बाद ही देखें कि क्या बचा है।