Rilevamento del dispositivo di output in LaTeX
-
03-07-2019 - |
Domanda
Esiste un modo, in un file di classe / stile LaTeX, per rilevare quale dispositivo di output viene utilizzato (o almeno quali funzionalità ha)? Il motivo è che sto scrivendo un file di classe in cui desidero utilizzare alcuni pacchetti specifici di Postscript (ad esempio pstricks
) se Postscript è disponibile, ma se scrivo
\RequirePackage{pstricks}
allora ovviamente succedono cose brutte se sto compilando il documento con pdflatex
. Quindi idealmente sto cercando qualcosa che posso usare come
\if@postscriptokay\RequirePackage{pstricks}\fi
Sembra che questo debba essere possibile perché so che pacchetti come pgf
possono cambiare il loro comportamento per utilizzare i comandi grafici appropriati basati sul dispositivo di output, ma ho fatto alcune ricerche su Google e ho controllato nel mio Il libro LaTeX e non ho trovato il modo.
Soluzione
\usepackage{ifpdf}
\ifpdf
% nothing
\else
\RequirePackage{pstricks}
\fi
Altri suggerimenti
Puoi rilevare pdfTeX in questo modo (questo è ciò che 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 e pgf.sty hanno i propri meccanismi di rilevamento automatico incorporati. Caricano un file di driver diverso (come pdftex.def
e hpdftex.def
) basato sul rilevamento automatico e sull'opzione del pacchetto. Se si carica uno di questi nel file .tex, provare a ottenere le informazioni sul driver caricato. I file del driver rilevanti sono:
/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
Il nome del driver per pgf.sty
e graphicx.sty
è memorizzato nella macro \ Gin @ driver
. Puoi controllare questa macro dopo aver caricato uno di questi pacchetti.
Dai un'occhiata ai pacchetti pstool e auto-pst-pdf . Sono qui per aiutare a usare pstricks
e gli amici con pdfLaTeX.