2012-04-08 26 views
7

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

नोट: मैंने एक्सएसएल-एफओ को पीडीएफ उत्पन्न करने के लिए माना है लेकिन ओपन सोर्स टूल्स की टाइपोग्राफिक गुणवत्ता अभी भी टीएक्स के पीछे है। सबसे उन्नत अनुमान लगाएं Apache FOP है। लेकिन मैं वास्तव में एक शानदार दिखने वाले पीडीएफ में रूचि रखता हूं (अन्यथा मैं अपने ब्राउज़र के प्रिंट संवाद का उपयोग कर सकता हूं)। इस पर कोई विचार, अद्यतन?

तो मैं अपने अनुकूलित एक्सएमएल/एक्सएचटीएमएल बोली को डॉकबुक में परिवर्तित करने के लिए एक्सएसएलटी का उपयोग करने के बारे में सोच रहा हूं और वहां से (DocBook via XSLT उचित HTML पर बहुत अच्छी तरह से काम करने लगता है, इसलिए मैं इसके लिए भी इसका उपयोग कर सकता हूं)। लेकिन मैं डॉकबुक से टीएक्स कैसे जा सकता हूं? मैं कई समाधानों में आया हूं।

  • dblatex लाटेक्स आउटपुट करने वाली एक्सएसएलटी स्टाइलशीट का एक सेट।
  • db2latex dblatex के क्लोन के रूप में शुरू किया गया लेकिन अब लाटेक्स पैकेज के साथ कड़े एकीकरण प्रदान करता है और आउटपुट पीडीएफ के लिए एक एकल स्क्रिप्ट प्रदान करता है, जो काफी अच्छा है।
  • passiveTex एक्सएसएलटी के बजाय यह टीएक्स में लिखे गए एक्सएमएल पार्सर का उपयोग करता है।
  • TeXML अनिवार्य रूप से लाटेक्स भाषा का एक एक्सएमएल क्रमबद्धीकरण है जिसे एक इंटरमीडिएट प्रारूप के रूप में उपयोग किया जा सकता है और एक साथ पाइथन टूल जो उस एक्सएमएल प्रारूप से लाटेक्स/कॉनटेक्स में बदल जाता है। वे claimed कि यह मौजूदा प्रतीकों के साथ मौजूदा समाधान की समस्याओं से बचाता है, कुछ ब्रेसिज़ या रिक्त स्थान खो देता है और केवल लैटिन -1 एन्कोडिंग के लिए समर्थन करता है। (क्या यह अभी भी मामला है?)

जैसा कि मेरे इनपुट एक्सएमएल में यूनिकोड में प्रदर्शित कुछ विशेष वर्ण शामिल हो सकते हैं, अंतिम बिंदु मेरे लिए विशेष रूप से महत्वपूर्ण है। मैं इस समस्या को हल करने के लिए पीडीएफटीएक्स के बजाय XeTeX का उपयोग करने के बारे में भी सोच रहा हूं। (हालांकि मैं कुछ टाइपोग्राफिक गुणवत्ता खो सकता हूं, लेकिन वर्तमान ओपन सोर्स एक्सएसएल-एफओ प्रोसेसर से अभी भी बेहतर हो सकता है?) तो डीबी 2 लेटेक्स और टीएक्सएमएल पसंदीदा लगते हैं। तो क्या कोई उन लोगों की मजबूती पर टिप्पणी कर सकता है?

वैकल्पिक रूप से, मुझे ConTeXt का उपयोग करके अधिक भाग्य हो सकता है, क्योंकि ऐसा लगता है कि interest in the ConTeXt community in XML काफी कुछ है। विशेष रूप से, मैं "My Way: Getting Web Content and pdf-Output from One Source" और "Dealing with XML in ConTeXt MkIV" पर गहराई से देख सकता हूं। दोनों दस्तावेज़ LuaTeX के साथ संयुक्त ConTeXt का उपयोग करके एक दृष्टिकोण का वर्णन करते हैं। दूसरा दस्तावेज़ नोट्स (DocBook In ConTeXt ही लेकिन नवीनतम संस्करण 2003 से है के बारे में क्या लगता है):

आप सोच रहे होंगे कि हम क्यों TEX में इन जोड़तोड़ करते हैं और बजाय xslt का उपयोग नहीं। एक एकीकृत दृष्टिकोण का लाभ यह है कि यह उपयोग को सरल बनाता है। न केवल दस्तावेज़ को संसाधित करने के बारे में सोचें, बल्कि उसी रन में संसाधनों के प्रबंधन के लिए xml का उपयोग भी करें। एक xslt दृष्टिकोण केवल वर्बोज़ के समान है (आखिरकार, आपको अभी भी टेक्स कोड बनाने की आवश्यकता है) और शायद कम पठनीय। एमकेआईवी के मामले में एकीकृत दृष्टिकोण भी तेज़ है और हमें लुआ का उपयोग कर रनटाइम पर सामग्री में हेरफेर करने का विकल्प देता है।

इस बारे में आप क्या सोचते हैं? कृपया ध्यान रखें कि मुझे एक्सएसएलटी और टीएक्स दोनों के साथ कुछ अनुभव है लेकिन उनमें से किसी भी में कभी गहराई से नहीं चला है।कभी कई अलग अलग LaTeX संकुल या इस तरह के संदर्भ (या XeTeX/pdfTeX के बजाय LuaTeX) के रूप में विकल्प, लेकिन मैं अंत में मेरी सुंदर पीडीएफ़ पाने के लिए कुछ नया सामान जानने के लिए तैयार हूँ की कोशिश की;)

इसके अलावा

, मैं Pandoc से अधिक ठोकर खाई लेकिन इस बारे में कोई जानकारी नहीं मिली कि यह अन्य उल्लिखित दृष्टिकोणों की तुलना में कैसे तुलना करता है। और आखिरकार, how to use TeXML with ConTeXt पर कुछ व्यापक दस्तावेज का एक लिंक।

+0

यह प्रश्न http://tex.stackexchange.com/ –

+0

@ डेवजर्विस के लिए बेहतर अनुकूल प्रतीत होता है मैं स्पष्ट रूप से टीएक्स के विकल्पों की तलाश में था। – mb21

+0

आह, वह कुछ नहीं होगा। आदर्श रूप से एक webservice।एक पैक की गई डॉकबुक अपलोड करें और एक सुंदर, सबूत-पढ़ा प्रकाशन तैयार एकल दस्तावेज़ प्राप्त करें;) –

उत्तर

1

अंत में, मैंने Pandoc के साथ जाने का निर्णय लिया है, यह बहुत पॉलिश और ठोस कोड आधार प्रतीत होता है। एक संभावित दोष यह है कि आपको अपने आप को पांडोक के आंतरिक प्रतिनिधित्व में उपलब्ध मार्कअप सुविधाओं की संख्या तक सीमित करना होगा जो मूल रूप से एक-से-एक को extended markdown पर मानचित्रित करता है।

क्योंकि मुझे नहीं लगता था कि मेरे एक्सएचटीएमएल-जैसे स्रोत से उत्पन्न मार्कडाउन एक अच्छा विचार था, मैं पैंडोक component that reads DocBook शुरू करने में सफल रहा, जो वर्तमान में पांडोक के विकास रेपो की मास्टर शाखा में है। तो अब मेरे पास एक साधारण एक्सएसएलटी स्टाइलशीट है जो मेरी एक्सएचटीएमएल बोली से डॉकबुक (जो एक्सएमएल भी है) में परिवर्तित हो जाती है और फिर मैं अन्य प्रारूपों के उत्थान में निर्यात करने के लिए पांडोक का उपयोग करता हूं, जिसमें कॉनटेक्स के माध्यम से पीडीएफ शामिल है।

1

आप questions tagged with XML on TeX.sx, विशेष रूप से this एक को देखना चाहते हैं। मेरा सुझाव है कि आप ConTeXt का उपयोग करें; वर्तमान संस्करण में यूनिकोड के साथ कोई समस्या नहीं है और ओपनटाइप को पूरी तरह से संभाल सकता है - और यह लुआ में प्रोग्राम करने योग्य है। लाटेक्स के साथ सबसे अधिक उपयोग किया जाने वाला विकल्प XMLTeX है, लेकिन इसे बहुत सारे टीएक्स फू की आवश्यकता है।

यदि आपके दस्तावेज़ पैंडोक द्वारा संभाले जा सकते हैं, तो इसका उपयोग करें: आपके पास एकाधिक आउटपुट विकल्प होंगे, जो कि किसी भी TeX- आधारित सिस्टम से अधिक है।

+0

प्रतिक्रिया के लिए धन्यवाद! मैंने पैंडोक पर नजदीकी नजर डाली है और यह वास्तव में आशाजनक लग रहा है; आउटपुट प्रारूपों की संख्या एक बड़ा प्लस होगा। लेकिन फुटनोट्स आदि के लिए, मुझे शायद कुछ एक्सएसएलटी (या कुछ) लिखना होगा ताकि मेरी एक्सएचटीएमएल-बोली को पैंडोक के विस्तारित मार्कडाउन में प्राप्त किया जा सके जो उत्पन्न करने के लिए एक बड़ा दर्द प्रतीत होता है (उदाहरण के लिए टेबल)। – mb21

+0

तो शायद मुझे ConTeXt के साथ सीधे पार्सिंग के लिए जाना चाहिए। और अन्य आउटपुट प्रारूपों के लिए कुछ एक्सएसएलटी स्टाइलशीट प्राप्त करें जिन्हें मैं प्राप्त करना चाहता हूं। विश्वास नहीं कर सकता कि वहां से कई मजबूत स्टाइलशीट्स के साथ मानक प्रारूप नहीं है ..: -/मैंने एक बार सोचा था कि डॉकबुक ऐसा माना जाता था, लेकिन शायद नहीं .. – mb21

2

मैंने अतीत में ऐसा कुछ किया है (यानी, एक्सएमएल में दस्तावेज़ों के मास्टर संस्करणों को बनाए रखना, और उनसे लाटेक्स आउटपुट बनाना चाहते हैं)।

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

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

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

चूंकि आप कहते हैं कि आपको इनपुट में यूनिकोड वर्णों को संभालने की आवश्यकता है, तो हाँ, XeLaTeX पाइपलाइन के लाटेक्स भाग के लिए एक अच्छा विकल्प होगा।