سؤال

هل هناك طريقة، في ملف أسلوب مطاط / فئة، للكشف عن جهاز إخراج يتم استخدامه (أو على الأقل القدرات التي لديه)؟ والسبب هو، أنا أكتب ملف فئة التي أريد أن استخدام بعض حزم التذييل محددة (على سبيل المثال 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.

scroll top