मैंने गिटहब, डोकर और ट्रैविसी के साथ लाटेक्स में डिप्लोमा कैसे लिखा

जब से विश्वविद्यालय में अध्ययन किया है, मैंने प्रयोगशाला और टर्म पेपर डिजाइन करने के लिए LaTeX का उपयोग किया है। मैं LaTeX से पहली बार कौरसेरा में मिला था, पाठ्यक्रम " LaTeX पर दस्तावेज़ और प्रस्तुतियाँ " पर।


इस लेख में, मैं वर्णन करूँगा कि कैसे मैंने LaTeX का उपयोग करके एक डिप्लोमा लिखा और मैंने GitHub, Docker और TravisCI का उपयोग क्यों किया।


लेकिन क्यों?


प्रस्तावना


दस्तावेज़ों को संपादित करने और बनाने का मेरा तरीका Microsoft Word के साथ शुरू हुआ, शायद बहुतों की तरह। विंडोज से लिनक्स पर स्विच करने के बाद, मैंने आसानी से पहले ओपनऑफिस का उपयोग करना शुरू किया, और फिर लिबरऑफिस का उपयोग किया, जो मेरे कार्यों में वर्ड के लिए कार्यक्षमता में नीच नहीं था।


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


चलिए LaTeX पर वापस आते हैं, इसका उपयोग करने से पहले, मैंने सभी LaTeX के बारे में सुना है कि वे इसका उपयोग वैज्ञानिक पत्रिकाओं में लेख लिखने के लिए करते हैं क्योंकि यह सूत्रों के साथ काम करने के लिए बहुत सुविधाजनक है। जो लोग ऐसा सोचते हैं, मैं कौरसेरा पर पाठ्यक्रम देखने की सलाह देता हूं, शायद यह आपके दिमाग को बदल देगा, उदाहरण के लिए मुझे वास्तव में पसंद आया।


नमस्ते, लाटेक्स पर विश्व:


\documentclass{article} \begin{document} Hello, World! \end{document} 

वैसे, LaTeX की मदद से आप प्रेजेंटेशन बना सकते हैं। यहाँ आप कई उदाहरण देख सकते हैं कि ये प्रस्तुतियाँ कैसे दिख सकती हैं।


LaTeX के साथ स्नातक की डिग्री


तीसरे वर्ष के अंत तक, मैंने लगभग सभी दस्तावेजों को खींचने के लिए पहले से ही लाटेक्स का सक्रिय रूप से उपयोग किया था, इसके साथ स्नातक की डिग्री लिखने का निर्णय लिया गया था।


सबसे पहले, मैंने एक आईडीई के रूप में लाटेक्सिला का उपयोग किया, जिसमें परियोजना को एक बटन के साथ बनाया गया था, मैं स्पेलचैकर को कनेक्ट कर सकता था, लेकिन यह कभी-कभी दुर्घटनाग्रस्त हो जाता था और धीमा हो जाता था, इसलिए मैंने मेकाइल के साथ सबलेम टेक्स्ट का उपयोग करना शुरू कर दिया।


मेकफाइल उदाहरण:


 all: build run build: latexmk -xelatex -synctex=1 main.tex run: xreader main.pdf & clean: rm *.aux *.fdb_latexmk *.fls *.log *.out *.synctex.gz *.toc 

सभी स्रोतों को गिट में संग्रहीत किया गया था, पर्यवेक्षक के साथ सहयोग की सुविधा के लिए मैंने गिटहब का उपयोग किया था। परियोजना की संरचना बहुत सरल थी, प्रस्तावना और अन्य अध्याय जो एक अलग निर्देशिका में संग्रहीत किए गए थे वे main.tex फ़ाइल से जुड़े थे।


main.tex:


 \documentclass[a4paper,14pt]{extarticle} % 14  \input{inc/preamble} %   \begin{document} \tableofcontents %  \clearpage \input{inc/0-intro} %  \input{inc/1-pz} %   ... \input{inc/0-bibliography} %   \input{inc/a-app} %   \input{inc/b-app} %   \includepdf{act} %   PDF- \end{document} 

सभी शैलियों और स्वरूपण का विवरण preamble.tex फ़ाइल में है, जो दस्तावेज़ की शुरुआत में preamble.tex


सामग्री, ग्रंथ सूची और डिप्लोमा के अन्य हिस्सों को प्रारूपित करने के बारे में चिंता न करना बहुत सुविधाजनक था।


सामग्री
सामग्री


WYSIWYG संपादकों की तुलना में LaTeX के साथ काम करने पर मैं अपने लाभों का वर्णन करूंगा:


  • सुविधाजनक संस्करणक्षमता (डिप्लोमा के बजाय। डिप्लोमा , डिप्लोमा_01.01.2015 . odt , डिप्लोमा_फिक्स_प्रिंट.ओडीटी - गिट में संस्करण और किसी भी प्रतिबद्ध को वापस रोल करने की क्षमता)
  • जब आप गलती से किसी चीज़ पर क्लिक करते हैं, तो लेआउट क्रैश नहीं होता है (यह मेरे साथ हुआ)
  • लचीली सेटिंग्स (जो WYSIWYG संपादकों में हमेशा उपलब्ध नहीं होती हैं या वे स्पष्ट नहीं होती हैं)
  • सब कुछ के लिए सजातीय वातावरण (प्रस्तुति स्रोत डिप्लोमा के रूप में एक ही भंडार में हैं)
  • सहयोग की संभावना (स्नातक प्रबंधक पिछले चेक के बाद से बदल चुके भंडार में देख सकते हैं)
  • कई अलग-अलग दस्तावेजों के लिए टेम्पलेट के रूप में उपयोग करने के लिए सुविधाजनक है
  • उदाहरण या अतिरिक्त पीडीएफ फाइलों के लिए स्रोत कोड के रूप में ऐसे आवेषण को शामिल करना सुविधाजनक है

दस्तावेज़ में स्रोत फ़ाइल को शामिल करना कितना आसान है, इसका एक उदाहरण इस प्रकार है:


 \lstinputlisting[numbers=left]{inc/ddos-deflate/ddos.sh} 

कनेक्टेड स्रोत कोड
दस्तावेज़ में जुड़ा स्रोत कोड


मेरे लिए LaTeX का उपयोग करने का केवल एक माइनस है - आपको वांछित परिणाम के लिए सब कुछ पॉलिश करने के लिए समय बिताने की आवश्यकता है। मैं भी एक पल के लिए सभी आरेखों और आरेखों को देशी तरीके से टीकजेट का उपयोग करने के लिए भ्रमित करना चाहता था, लेकिन इसमें बहुत समय लगता था, इसलिए मैंने शांति से इसके लिए Google चित्र और draw.io का उपयोग किया।


सफलतापूर्वक अपने स्नातक डिप्लोमा का बचाव किया और अंग्रेजी में git, GitHub, Makefile, LaTeXStackExchange google के साथ काम करने का कुछ ज्ञान प्राप्त किया, मैंने मास्टर डिप्लोमा लिखने के लिए अपने टेम्पलेट का उपयोग करने के लिए कुछ वर्षों के लिए डिप्लोमा के बारे में भूल गया।


मास्टर डिग्री


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


सामान्य तौर पर, जब मैंने एक मास्टर डिप्लोमा लिखना शुरू किया, तो पंजीकरण की आवश्यकताएं बहुत अधिक नहीं बदलीं, इसलिए मैंने अपने स्नातक डिप्लोमा के लिए टेम्पलेट लिया और इसे trifles पर पूरा किया, उदाहरण के लिए, सामग्री जैसे कि सामग्री की सूची, संक्षिप्त सूची, और इसी तरह। स्नातक डिप्लोमा का बचाव करते समय, हमने आकार A1 के पोस्टर का उपयोग किया था, और मास्टर के रूप में, हमें पहले से ही स्लाइड के रूप में प्रस्तुतियों का उपयोग करने की अनुमति दी गई थी, इसलिए मैंने LaTeX और बीमर का उपयोग करके स्लाइड भी बनाई।


LaTeX और बीमर के साथ लेआउट
LaTeX और बीमर के साथ लेआउट


सीआई की अवधारणा से दूर, मैंने सोचा कि क्यों न आप रिपॉजिटरी के लिए प्रतिबद्ध हर बार एक नया पीडीएफ इकट्ठा करें? GitHub को TravisCI से कनेक्ट करने में बस कुछ ही मिनट लगे। हालांकि ट्रैविसीआई को पता नहीं है कि कैसे लाटेक्स के साथ सीधे काम करना है, लेकिन यह डॉकर के साथ बहुत अच्छा काम करता है। कूल, मैंने सोचा, मैं एक पत्थर से कई पक्षियों को मारूंगा:


  • डॉकटराइल लिखने का अभ्यास करें
  • मैं सभी LaTeX पैकेजों को Docker में स्थानांतरित करूँगा (और उनमें से बहुत सारे हैं और वे काफी भारी हैं)
  • ट्रैविसीआई का उपयोग कर अभ्यास करें
  • मैं उन लोगों की मदद करूंगा, जो किसी दिन अचानक एक गैर-लिनक्स ओएस पर मेरे टेम्पलेट का उपयोग करना चाहते हैं

TravisCI, Dockerfile और संपादन Makefile के लिए एक कॉन्फ़िगरेशन फ़ाइल लिखना बहुत लंबा नहीं था और यह आसानी से निकला।


डॉकर में प्रोजेक्ट बिल्ड चलाने के लिए मेकफिल का हिस्सा:


 ... docker: docker build -t docker-latex . docker run -ti -v ${PWD}:/master-thesis:Z docker-latex bash -c "make build && make clean" docker run -ti -v ${PWD}:/master-thesis:Z docker-latex bash -c "make -C presentation && make -C presentation clean" 

अब, स्नातक पर्यवेक्षक न केवल कोड में मेरे बदलाव देख सकता है, बल्कि दस्तावेज़ का एक बनाया हुआ संस्करण भी हो सकता है।


विज्ञप्ति
विज्ञप्ति


मेरे द्वारा आवश्यक रूप में डिप्लोमा पूरा करने के बाद, मैंने अपनी स्नातक की डिग्री के साथ सादृश्य द्वारा, समुदाय के साथ टेम्पलेट साझा करने का निर्णय लिया। यह भंडार के README फ़ाइल को खूबसूरती से व्यवस्थित करने का निर्णय लिया गया था, क्योंकि यह परियोजना का चेहरा है। जिस व्यक्ति को इंटरनेट पर आपका प्रोजेक्ट मिला है, उसे तुरंत पता लगाना चाहिए कि README फ़ाइल का उपयोग करके प्रोजेक्ट को कैसे इकट्ठा किया जाए और इसके साथ क्या किया जाए।


README.md फ़ाइल
README.md फ़ाइल


जल्द ही मुझे तीसरा डिप्लोमा लिखना होगा और मुझे लगता है कि इसे लिखने के लिए मेरा दृष्टिकोण बिल्कुल नहीं बदलेगा और मैं इसके डिजाइन पर बहुत कम समय खर्च करूंगा। यह देखते हुए कि मैं लिनक्स से मैक ओएस में स्थानांतरित हो गया हूं, संक्रमण पूरी तरह से दर्द रहित होगा, क्योंकि एक डॉकर है।


परिणाम


LaTeX में सामान्य रुचि ने मुझे इस क्षेत्र में थोड़ा और गोता लगाने की अनुमति दी:


  • LaTeX के साथ काम करते समय "एक हाथ मिला", जिसने बाद में दस्तावेज़ और प्रस्तुतियाँ बनाते समय समय बचाने में मदद की
  • इन पालतू परियोजनाओं के साथ काम करते हुए गिट और गिटहब के साथ काम करने का अनुभव प्राप्त किया
  • डॉकर और ट्रैविसी के रूप में ऐसी चीजों का इस्तेमाल किया जाता है, जिसने मुझे DevOps में डूबने के लिए एक अच्छी प्रेरणा दी
  • सीखें कि बड़े करीने से अपने पालतू परियोजनाओं की व्यवस्था कैसे करें

संभावित प्रश्नों के उत्तर


आप पीडीएफ फाइलों को रिपॉजिटरी में क्यों सहेजते हैं?

केवल इतना है कि जो व्यक्ति रिपॉजिटरी में गया, वह न केवल स्रोत को देख सकता है, बल्कि रिलीज को डाउनलोड किए बिना इस सब का परिणाम भी देख सकता है।


कई चीजें पूरी तरह से स्वचालित क्यों नहीं हैं, जैसे ग्रंथ सूची?

एक कारण या किसी अन्य के लिए, मैं इसमें गहराई तक नहीं गया, शायद जिनके पास इस्तेमाल किए गए साहित्य के सैकड़ों स्रोत हैं, वे आहत होंगे।


क्या टेम्पलेट GOST / DSTU का अनुपालन करता है?

मैं केवल नॉरमोकोलेटर की आवश्यकताओं द्वारा निर्देशित किया गया था, इसलिए वास्तव में नहीं।


लेख का अंग्रेजी में माध्यम में अनुवाद।

Source: https://habr.com/ru/post/hi424805/


All Articles