الكشف عن جهاز الإخراج في اللثي
-
03-07-2019 - |
سؤال
هل هناك طريقة، في ملف أسلوب مطاط / فئة، للكشف عن جهاز إخراج يتم استخدامه (أو على الأقل القدرات التي لديه)؟ والسبب هو، أنا أكتب ملف فئة التي أريد أن استخدام بعض حزم التذييل محددة (على سبيل المثال pstricks
) إذا التذييل هو متاح، ولكن إذا كنت مجرد كتابة
\RequirePackage{pstricks}
وبعد ذلك بالطبع تحدث أمور سيئة إذا أنا تجميع وثيقة مع pdflatex
. حتى من الناحية المثالية أنا أبحث عن شيء يمكنني استخدام مثل
\if@postscriptokay\RequirePackage{pstricks}\fi
ويبدو أن هذا يجب أن يكون من الممكن لأنني أعرف حزم مثل pgf
يمكن تغيير سلوكهم استخدام أوامر الرسومات المناسبة بناء على جهاز الإخراج، ولكني فعلت بعض عمليات البحث جوجل ودققت في كتابي مطاط ولم يتم العثور على وسيلة.
المحلول
\usepackage{ifpdf}
\ifpdf
% nothing
\else
\RequirePackage{pstricks}
\fi
نصائح أخرى
ويمكنك الكشف عن 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 لديها آليات اوتوديتيكتيون الخاصة بنيت فيها وهي تحميل ملف برنامج تشغيل مختلف (مثل 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
في \Gin@driver
الماكرو. يمكنك فحص هذا الماكرو بعد تحميل أي من هذه الحزم.
وإلقاء نظرة على حزم pstool و لصناعة السيارات في توقيت المحيط الهادي، قوات الدفاع الشعبي . انهم هنا لمساعدة استخدام pstricks
والأصدقاء مع pdfLaTeX.