2009-05-03 16 views
5

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

\RequirePackage{pstricks} 

तो लिखने के पाठ्यक्रम बुरी चीजें हैं तो ऐसा मैं दस्तावेज़ को pdflatex के साथ संकलित कर रहा हूं। तो आदर्श रूप मैं कुछ के लिए देख रहा हूँ की तरह

\[email protected]\RequirePackage{pstricks}\fi 

यह इस तरह लगता है क्योंकि मैं pgf तरह संकुल पता उचित ग्राफिक्स आउटपुट डिवाइस के आधार पर आदेशों का उपयोग करने के लिए उनके व्यवहार को बदल सकते संभव होना चाहिए मैं उपयोग कर सकते हैं, लेकिन मैं मैंने कुछ Google खोजों को किया है और मेरी लाटेक्स पुस्तक में चेक किया है और मुझे कोई रास्ता नहीं मिला है।

+0

मुझे यकीन नहीं है कि यह सर्वोत्तम शर्तों में कहा गया है। आप पता लगा सकते हैं कि कौन सा प्रोग्राम स्रोत को संसाधित कर रहा है (उदा। Ifpdf के साथ), लेकिन मैं इसका वर्णन नहीं करता कि "आउटपुट डिवाइस का पता लगाना"। YMMV। हालांकि, एक स्पष्ट फॉर्मूलेशन के लिए कोई अच्छा सुझाव नहीं है। – dmckee

उत्तर

7
\usepackage{ifpdf} 

\ifpdf 
    % nothing 
\else 
    \RequirePackage{pstricks} 
\fi 
+0

यह सबसे अच्छा है जो आप कर सकते हैं। Ifxetex, ifluatex भी देखें। –

6

आप pdfTeX इस तरह पता लगा सकते हैं (यह क्या ifpdf.sty करता है):।

\makeatletter 
\ifx\pdfoutput\@undefined 
    no pdfTeX 
\else\ifnum\pdfoutput<1 
    pdfTeX is outputting a .dvi file 
\else 
    pdfTeX is outputting a .pdf file 
\fi\fi 

graphicx.sty, hyperref.sty और pgf.sty अपने स्वयं के autodetection तंत्र में बनाया गया है वे एक लोड ऑटोडेटेक्शन और पैकेज विकल्प के आधार पर अलग-अलग ड्राइवर फ़ाइल (जैसे pdftex.def और hpdftex.def)। यदि आप इनमें से किसी भी अपनी .tex फ़ाइल में लोड करते हैं, तो वह जानकारी प्राप्त करने का प्रयास करें जो उन्होंने लोड किया था। प्रासंगिक ड्राइवर फ़ाइलें हैं:

/usr/share/texmf/tex/generic/pgf/systemlayer/pgfsys-*.def 
/usr/share/texmf-texlive/tex/latex/hyperref/hpdftex.def 
/usr/share/texmf-texlive/tex/latex/graphics/*.def 
    /usr/share/texmf-texlive/tex/latex/pdftex-def/pdftex.def 

pgf.sty और graphicx.sty के लिए ड्राइवर का नाम मैक्रो \[email protected] में संग्रहित है। इनमें से किसी भी पैकेज को लोड करने के बाद आप इस मैक्रो का निरीक्षण कर सकते हैं।

+0

+1 अच्छा स्पष्टीकरण, हालांकि अभ्यास में ifpdf का उपयोग करना आसान है (इसलिए मैंने अन्य जवाब स्वीकार कर लिया है)। –

1

आप KOMA-Script पैकेज (जो मैं वास्तव में सिफारिश कर सकते हैं, जब तक आप निश्चित रूप से एक अलग शैली का उपयोग करने की आवश्यकता है) आप पहले से ही इस बात के लिए एक मैक्रो उपयोग कर रहे हैं: \ifpdfoutput{pdf output}{dvi output} कि पैकेज में परिभाषित किया गया है। यदि नहीं, तो पहले से ही उल्लेख किया गया है कि ifpdf पैकेज का उपयोग करें।

3

पैकेज pstool और auto-pst-pdf पर एक नज़र डालें। वे pstricks और पीडीएफएलएटीएक्स के साथ दोस्तों का उपयोग करने में मदद के लिए यहां हैं।

+0

वास्तव में मैंने कभी भी पस्टल के साथ pstool का उपयोग करने की कोशिश नहीं की है; इसे उपयोगकर्ता के अनुकूल बनाने के लिए शायद थोड़ा और गोंद चाहिए। अगर अन्यथा मुझे बताएं! –