# डॉक्यूमेंट इंजन चुनें

जानें कि LaTeX, Typst, Markdown, Quarto और Calepin डॉक्यूमेंट PDF कैसे बनते हैं, और अपने प्रोजेक्ट के लिए सही कंपाइलर चुनें।

एक इंजन आपके सोर्स को वह डॉक्यूमेंट बनाता है जो लोग पढ़ते हैं। प्रोजेक्ट बनाते समय डॉक्यूमेंट भाषा चुनें। LaTeX प्रोजेक्ट के लिए आप यह भी चुन सकते हैं कि कौन सा LaTeX कंपाइलर बिल्ड चलाए।

## भाषा चुनें

| आपका काम | इससे शुरू करें | यह PDF कैसे बनता है |
|---|---|---|
| जर्नल सबमिशन, कोई स्थापित थीसिस क्लास, या कोई मौजूदा `.tex` प्रोजेक्ट | LaTeX | Tectonic, या `latexmk` के ज़रिए चलाया गया कोई कंपाइलर |
| संक्षिप्त टाइपसेटिंग सिंटैक्स वाला नया पेपर, रिपोर्ट या रिज़्यूमे | Typst | बिल्ट-इन Typst 0.15.1, या कोई और Typst वर्शन जो प्रोजेक्ट पिन करे |
| गद्य ड्राफ़्ट, नोट्स, या ऐसा डॉक्यूमेंट जिसे आप कई फ़ॉर्मैट में एक्सपोर्ट करना चाहते हैं | Markdown | Pandoc सोर्स को LaTeX में बदलता है; Tectonic PDF बनाता है |
| विश्लेषण रिपोर्ट, लेख या स्लाइड डेक, जिसके नतीजे उसका R, Python या Julia कोड बनाता है | Quarto | Quarto `.qmd` या `.Rmd` फ़ाइलों को PDF, वेब पेज या स्लाइड में रेंडर करता है |
| कोड चंक वाला Typst डॉक्यूमेंट | Calepin | Calepin कोड चलाता है, फिर बिल्ट-इन Typst PDF बनाता है |

यह चुनाव एडिटर टूलबार, सोर्स सिंटैक्स और उपलब्ध एक्सपोर्ट फ़ॉर्मैट तय करता है। LaTeX कंपाइलर बदलने से डॉक्यूमेंट Typst या Markdown में अनुवाद नहीं होता। LaTeX प्रोजेक्ट को Typst पर ले जाने के लिए उसे [नए Typst प्रोजेक्ट में बदलें](/docs/typst/#convert-a-latex-project-to-typst)।

## Tectonic

सीधे-सादे LaTeX सेटअप के लिए **Tectonic** उपयोग करें। यह Oleafly के साथ आता है, बिल्ड को जो TeX पैकेज चाहिए उन्हें डाउनलोड करता है, और बाद के बिल्ड के लिए उन्हें कैश करता है। जब आपका टेम्पलेट किसी खास कंपाइलर की माँग न करे, तो यहीं से शुरू करें।

यात्रा से पहले ऑनलाइन होकर एक बार कंपाइल करें। कैश किया हुआ प्रोजेक्ट ऑफ़लाइन कंपाइल हो सकता है; नए पैकेज को अब भी डाउनलोड चाहिए हो सकता है। Tectonic से उसका कैश उपयोग करवाने के लिए **Settings → General → Offline mode** सक्षम करें।

## pdfLaTeX

**pdfLaTeX** चुनें जब कोई प्रकाशक या मौजूदा प्रोजेक्ट इसे निर्दिष्ट करे। यह पारंपरिक LaTeX वर्कफ़्लो का पालन करता है और पुरानी क्लासों और पैकेज संयोजनों के लिए उपयोगी मेल है। इसे `latexmk` इंस्टॉल हुई कोई TeX डिस्ट्रीब्यूशन चाहिए।

## XeLaTeX

**XeLaTeX** उस प्रोजेक्ट के लिए चुनें जो इसकी माँग करे, खासकर `fontspec`, OpenType फ़ॉन्ट या बहुभाषी टेक्स्ट उपयोग करने वाला। सुनिश्चित करें कि सोर्स में नाम लिए फ़ॉन्ट इंस्टॉल हों या प्रोजेक्ट के साथ शामिल हों। यह भी `latexmk` से चलता है।

## LuaLaTeX

**LuaLaTeX** उस टेम्पलेट के लिए चुनें जो इसकी माँग करे, Lua-आधारित टाइपसेटिंग, या Oleafly के tagged-PDF वर्कफ़्लो के लिए। टैग किए PDF डॉक्यूमेंट संरचना ले जाते हैं जिसका असिस्टिव टेक्नोलॉजी उपयोग कर सकती है। नतीजा जाँचने के लिए [प्रीफ़्लाइट जाँचें](/docs/preflight/) चलाएँ; केवल कंपाइलर का चुनाव टैग की गुणवत्ता स्थापित नहीं करता।

## Typst

Oleafly Typst 0.15.1 लेकर आता है। Typst प्रोजेक्ट बनाएँ, `.typ` फ़ाइलों में लिखें, और **Recompile** पर क्लिक करें। सेट करने के लिए कोई TeX इंस्टॉलेशन नहीं है।

**Settings → Engines → Typst** Typst 0.11 से 0.15 भी इंस्टॉल कर सकता है और आपके कंप्यूटर पर पहले से इंस्टॉल किए Typst का उपयोग कर सकता है। हर प्रोजेक्ट अपना वर्शन पिन करता है, इसलिए Oleafly के नए Typst पर जाने पर भी पेपर का लेआउट बना रहता है। कोई डॉक्यूमेंट पहली बार पैकेज इंपोर्ट करे, तो Typst उन्हें Typst Universe से डाउनलोड करता है, और **Offline mode** उसे केवल पहले से कैश या प्रोजेक्ट में रखे पैकेजों तक सीमित करता है।

Typst का अपना सिंटैक्स, पैकेज और फ़ॉन्ट हैंडलिंग है। [Typst प्रोजेक्ट](/docs/typst/) वर्शन, पैकेज, फ़ॉन्ट और बिल्ड वेरिएंट कवर करता है। [Typst राइटिंग गाइड](/docs/writing/typst/) में पूरा शुरुआती डॉक्यूमेंट और टूलबार कंट्रोल हैं।

## Markdown

Markdown टाइपसेट डॉक्यूमेंट तैयार करने के लिए **Pandoc** और उसका PDF बनाने के लिए Tectonic उपयोग करता है। Pandoc न मिलने पर **Settings → Engines → Markdown** खोलकर उसे इंस्टॉल करें। फिर अपना Markdown प्रोजेक्ट खोलकर कंपाइल करें।

हेडिंग, सूचियाँ, गणित और विज़ुअल एडिटर के लिए [Markdown राइटिंग](/docs/writing/markdown/) देखें। [एक्सपोर्ट गाइड](/docs/export/) बताता है कि प्रोजेक्ट कौन से आउटपुट फ़ॉर्मैट देता है।

## Quarto

Quarto `.qmd` और `.Rmd` डॉक्यूमेंट को PDF, वेब पेज या स्लाइड में बदलता है। आपके कंप्यूटर पर Quarto मिलने पर Oleafly उसी का उपयोग करता है। न मिले, तो **Settings → Engines → Quarto** खोलें और **Download Quarto 1.10.19** चुनें। बटन डाउनलोड का आकार भी दिखाता है। Oleafly डाउनलोड को खोलने से पहले उसकी जाँच करता है और कॉपी अपने ऐप फ़ोल्डर में रखता है। अगर Quarto आने से पहले आप कंपाइल करते हैं, तो प्रीव्यू उसे वहीं इंस्टॉल करने या **Open engine settings** का विकल्प देता है।

डॉक्यूमेंट जो फ़ॉर्मैट सबसे पहले घोषित करता है, वही तय करता है कि आपको क्या मिलेगा:

- `pdf`, `typst` और `beamer` PDF बनाते हैं। `format: typst` के लिए किसी TeX इंस्टॉलेशन की ज़रूरत नहीं है। `pdf` और `beamer` LaTeX से होकर जाते हैं, इसलिए अगर आपके पास अभी TeX नहीं है, तो **Settings → Engines → LaTeX** से TinyTeX इंस्टॉल करें।
- `html`, `revealjs` और `dashboard` वेब पेज बनाते हैं। उसे देखने के लिए प्रीव्यू में **Open in browser** चुनें।

जब डॉक्यूमेंट कोई फ़ॉर्मैट घोषित नहीं करता, तो Oleafly `_quarto.yml` या `_metadata.yml` में फ़ॉर्मैट ढूँढता है, डॉक्यूमेंट के फ़ोल्डर में और उसके ऊपर के फ़ोल्डरों में, प्रोजेक्ट के रूट तक। कहीं भी फ़ॉर्मैट न हो, तो Quarto वेब पेज बनाता है। जो `.Rmd` फ़ाइल कोई R Markdown `output:` बताती है, जैसे `pdf_document`, उसे उससे मेल खाता Quarto फ़ॉर्मैट मिलता है।

कोड आपके कंप्यूटर पर पहले से मौजूद R, Python या Julia में चलता है। Oleafly इन्हें कभी इंस्टॉल नहीं करता, और उसी सेटिंग टैब में **Languages** दिखाता है कि उसे कौन से मिले। Python कोड के लिए उसी Python में Jupyter भी चाहिए। एक्सपोर्ट DOCX और HTML देता है, दोनों Quarto से रेंडर होते हैं। **New project** डायलॉग में दो Quarto टेम्पलेट हैं: **Quarto article**, Typst से बनने वाला PDF, और **Quarto slides**, एक reveal.js डेक।

## Calepin

Calepin Typst डॉक्यूमेंट का कोड चलाता है और नतीजे PDF में डालता है। Calepin डॉक्यूमेंट एक `.typ` फ़ाइल है जो `/.calepin/calepin.typ` इंपोर्ट करती है। **Calepin report** टेम्पलेट से शुरू करें, या किसी Typst प्रोजेक्ट में **Recompile** के पास का तीर खोलें और **Engine (this project)** के नीचे **Calepin** चुनें।

इसे Quarto की तरह ही **Settings → Engines → Calepin** से, **Download Calepin 0.0.61** के साथ, इंस्टॉल करें। Calepin उस Typst से बिल्ड करता है जो Oleafly के साथ आता है। जिस चंक की भाषा इंस्टॉल नहीं है, वह एक छोटा नोट दिखाता है, और बाकी डॉक्यूमेंट फिर भी बनता है। एक्सपोर्ट HTML देता है, जिसे Calepin रेंडर करता है।

## किसी प्रोजेक्ट में कोड की अनुमति दें

Quarto या Calepin डॉक्यूमेंट का कोड आपकी अनुमतियों के साथ चलता है, इसलिए हर प्रोजेक्ट में वह तब तक बंद रहता है जब तक आप अनुमति न दें। जिस कंपाइल को कोड चाहिए था, उसके बाद एडिटर के ऊपर एक बैनर बताता है कि कोड बंद है और **Allow code in this project** का विकल्प देता है। आप **Recompile** के पास का तीर खोलकर **Code (this computer)** के नीचे **Run code on this computer** भी चुन सकते हैं। **Off** उसे फिर से बंद कर देता है। कोड की अनुमति तभी दें जब आपको प्रोजेक्ट की हर फ़ाइल पर भरोसा हो।

यह चुनाव केवल इसी कंप्यूटर पर लागू होता है। यह प्रोजेक्ट में सहेजा नहीं जाता, और प्रोजेक्ट का इंजन बदलने पर कोड फिर से बंद हो जाता है। किसी [साझा प्रोजेक्ट](/docs/collaboration/) में Oleafly एक बार और पूछता है, क्योंकि जो भी प्रोजेक्ट संपादित कर सकता है, वह उसका कोड बदल सकता है।

कोड बंद रहते हुए:

- Quarto हर चंक का कोड बिना चलाए दिखाता है। फ़िल्टर, शॉर्टकोड, `_extensions`, प्री-रेंडर और पोस्ट-रेंडर स्क्रिप्ट, और इनलाइन R कोड तब भी कोड चलाते हैं, इसलिए जो डॉक्यूमेंट इनका उपयोग करता है, वह तब तक कंपाइल नहीं होता जब तक आप कोड की अनुमति न दें।
- Calepin कोड को छोड़ नहीं सकता। Oleafly सामान्य Typst से PDF उन नतीजों से बनाता है जो Calepin ने पिछली बार चलने पर सहेजे थे। अगर कोई नतीजे नहीं हैं, तो कंपाइल रुक जाता है और आपसे कोड की अनुमति माँगता है।

जिस फ़ोल्डर को आप [वहीं खोलते हैं](/docs/library/#folders-opened-in-place), उस पर भी भरोसा करना होगा, तभी Quarto या Calepin उसे कंपाइल कर सकते हैं। दोनों में से किसी भी इंजन के लिए सोर्स और PDF सिंक उपलब्ध नहीं है।

## नए प्रोजेक्ट के लिए डिफ़ॉल्ट सेट करें

**Settings → Engines → LaTeX** खोलें और **Default compile engine** चुनें: **Tectonic (built in)** या **latexmk (system TeX)**। इसके बाद आप जो भी LaTeX प्रोजेक्ट बनाएँगे, वह इसी पर शुरू होगा:

- खाली प्रोजेक्ट या **New project** डायलॉग का कोई टेम्पलेट, और कोई रिसर्च प्रोजेक्ट।
- इंपोर्ट किया हुआ ZIP, फ़ोल्डर, arXiv पेपर, या GitHub रिपॉज़िटरी।
- कोई डॉक्यूमेंट जिसे आप LaTeX प्रोजेक्ट में बदलते हैं, जैसे कोई Word फ़ाइल या PDF।

इंजन प्रोजेक्ट की `project.json` में लिखा जाता है, इसलिए जो सह-लेखक प्रोजेक्ट खोले, वह उसे उसी तरह कंपाइल करता है। जो इंपोर्ट किया प्रोजेक्ट pdfLaTeX, XeLaTeX या LuaLaTeX नाम ले, वह `latexmk` पर आने पर वही कंपाइलर रखता है। मौजूदा प्रोजेक्ट का सहेजा हुआ कंपाइलर उसका अपना चुनाव रहता है।

जिस फ़ोल्डर को आप [वहीं खोलते हैं](/docs/library/#folders-opened-in-place) और उसका कोई अपना इंजन नहीं है, वह भरोसा होने पर डिफ़ॉल्ट का पालन करता है। तब तक वह Tectonic दिखाता और उसी पर कंपाइल होता है। दोनों ही स्थिति में Oleafly फ़ोल्डर में कुछ नहीं लिखता।

Typst के लिए **Settings → Engines → Typst** खोलकर डिफ़ॉल्ट वर्शन चुनें। नए Typst प्रोजेक्ट उस वर्शन को पिन करते हैं जो आप उन्हें बनाते समय डिफ़ॉल्ट होता है। बाद में डिफ़ॉल्ट बदलने से मौजूदा प्रोजेक्ट नहीं हिलते।

## मौजूदा प्रोजेक्ट का कंपाइलर बदलें

[प्रोजेक्ट टूलबार](/docs/project-toolbar/) में **Recompile** के पास का तीर खोलें। LaTeX प्रोजेक्ट में **Compiler (this project)** के नीचे Tectonic, Auto, pdfLaTeX, XeLaTeX या LuaLaTeX चुनें, फिर कंपाइल करें। अगर टेम्पलेट को कोई पैकेज या फ़ॉन्ट चाहिए जो चुनी हुई इंस्टॉलेशन में नहीं है, तो लॉग पढ़ें।

Typst प्रोजेक्ट में उसी मेनू में इसके बजाय **Typst version (this project)** होता है। कोई इंस्टॉल किया हुआ वर्शन चुनें, या Settings का पालन करने के लिए **Default**। इसका **Engine (this project)** समूह डॉक्यूमेंट को **Typst** और **Calepin** के बीच बदलता है।

## मौजूदा TeX डिस्ट्रीब्यूशन पहचानें

**Settings → Engines → LaTeX** खोलकर पहचानी हुई टूलचेन देखें। Oleafly `latexmk` और सहायक टूल सहित पूरे कंपाइलर सेटअप की जाँच करता है। आधी-अधूरी सिस्टम इंस्टॉलेशन, काम कर रही मैनेज्ड इंस्टॉलेशन पर प्राथमिकता नहीं पाती।

## मैनेज्ड TinyTeX इंस्टॉल करें

अगर आपको पारंपरिक कंपाइलर चाहिए और आपके पास नहीं है, तो LaTeX इंजन सेटिंग्स का इंस्टॉल कंट्रोल उपयोग करें। Oleafly अपनी TinyTeX इंस्टॉलेशन `~/.oleafly/tinytex` के नीचे डाउनलोड करता है; एडमिनिस्ट्रेटर एक्सेस ज़रूरी नहीं है। शुरुआती डाउनलोड के लिए लगभग 250 MB और पैकेजों के लिए अतिरिक्त जगह रखें।

## पैकेज प्रबंधित करें

LaTeX इंजन सेटिंग्स की पैकेज सूची से आप पैकेज फ़िल्टर कर सकते हैं, विवरण देख सकते हैं, और उन्हें जोड़ या हटा सकते हैं। टैगिंग बैज उन पैकेजों को पहचानते हैं जिन्हें टैग किया PDF बनाते समय अतिरिक्त ध्यान चाहिए। ये कंट्रोल `latexmk` द्वारा उपयोग होने वाली TeX डिस्ट्रीब्यूशन प्रबंधित करते हैं; Tectonic का अलग कैश है।

[LaTeX पैकेज और tagged-PDF गाइड पढ़ें →](/docs/latex-engines/)
