एल्गोरिदम और स्रोत सूचीकरण

वास्तविक कोड के लिए एल्गोरिदम2ई स्केच और लिस्टिंग।

एल्गोरिदम और स्रोत सूची

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

एल्गोरिथम2ई के साथ स्यूडोकोड

\usepackage[ruled,vlined]{algorithm2e}
\begin{algorithm}
\caption{Train}
\While{not converged}{
Update $\theta$\;
}
\end{algorithm}

पैकेज विकल्प दृश्य शैली निर्धारित करते हैं: ruled एल्गोरिदम के ऊपर और नीचे क्षैतिज नियम बनाता है और कैप्शन को शीर्ष पर रखता है, सम्मेलन अधिकांश स्थानों की अपेक्षा करता है, जबकि vlined प्रत्येक ब्लॉक की सीमा को चिह्नित करते हुए एक छोटी ऊर्ध्वाधर रेखा खींचता है, इसलिए नेस्टिंग भारी इंडेंटेशन के बिना पढ़ने योग्य रहती है। एल्गोरिदम वातावरण एक फ्लोट है, एक आकृति की तरह, इसलिए इसमें \caption होता है जो इसे उद्धृत करने के लिए \ref के लिए एक संख्या देता है।

अंदर, \While{condition}{body} लूप को बोल्ड कीवर्ड, कंडीशन और बॉडी को इंडेंटेड ब्लॉक के रूप में टाइप करता है। \For, \If, और \Return समान पैटर्न का पालन करते हैं। कथन \; के साथ समाप्त होते हैं, जो लाइन के टर्मिनेटर को प्रिंट करता है और एक नई लाइन शुरू करता है। इसे भूलना क्लासिक शुरुआती त्रुटि है: लाइनें एक साथ चलती हैं। क्योंकि यह सामान्य LaTeX है, $\theta$ जैसा गणित इनलाइन काम करता है, जो कि स्यूडोकोड है: किसी विशेष भाषा के बजाय नोटेशन में अद्यतन नियम का वर्णन करना।

लिस्टिंग के साथ वास्तविक कोड

\usepackage{listings}
\begin{lstlisting}[language=Python]
def f(x):
return x**2
\end{lstlisting}

Lstlisting वातावरण अपनी सामग्री को सटीक रूप से पुन: पेश करता है, रिक्त स्थान को संरक्षित करता है और विशेष वर्णों का शाब्दिक रूप से इलाज करता है, ताकि आप बिना कुछ भी छोड़े कोड पेस्ट कर सकें। भाषा=पायथन विकल्प उस भाषा के लिए कीवर्ड हाइलाइटिंग चालू करता है, और लिस्टिंग दर्जनों अन्य को जानता है। डिफ़ॉल्ट रूप से आउटपुट सादा है. अधिकांश लोग पंक्ति संख्याओं के साथ एक उचित आकार में एक मोनोस्पेस्ड फ़ॉन्ट प्राप्त करने के लिए प्रस्तावना में एक बार \lstset{basicstyle=\ttfamily\small, number=left} जोड़ते हैं। किसी फ़ाइल को चिपकाने के बजाय सीधे शामिल करने के लिए, \lstinputlisting[भाषा=पायथन]{train.py} इसे डिस्क से पढ़ता है, जो कागज़ को वास्तविक स्रोत के साथ समन्वयित रखता है। यदि आप रंगीन, उच्च-निष्ठा हाइलाइटिंग चाहते हैं, तो बाहरी उपकरण और शेल एस्केप की आवश्यकता की कीमत पर मिंटेड पैकेज एक मजबूत विकल्प है।

उनके बीच चयन करना

विचार को संप्रेषित करने के लिए पेपर बॉडी में छद्म कोड का उपयोग करें, और जहां सटीक कोड मायने रखता है, जैसे परिशिष्ट या टूल विवरण, कलाकृतियों के लिए शब्दशः लिस्टिंग आरक्षित करें। एक सामान्य गलती [नाजुक] विकल्प के बिना बीमर फ्रेम के अंदर lstlisting रखना है, जो एक अपारदर्शी त्रुटि के साथ विफल हो जाता है; वही सावधानी पहले बीमर डेक में दिखाई देती है।

{ट्रैक} पर वापस जाएँ