Per quanto ne so, non c'è una risposta generale valida a questo. Ma ci sono un certo numero di tecniche che potresti provare per ogni comando dato. Nel caso di \qquad
, fa parte del TeX di base. Ricorda che puoi sempre utilizzare TeX in modalità interattiva:
$ tex '\show\qquad'
This is TeX, Version 3.141592 (Web2C 7.5.6)
> \qquad=macro:
->\hskip 2em\relax .
\show\qquad
? x
No pages of output.
Alcune macro sono aggiunti da LaTeX sulla parte superiore del TeX, come ad esempio \begin
:
$ tex '\show\begin'
This is TeX, Version 3.141592 (Web2C 7.5.6)
> \begin=undefined.
\show\begin
? x
No pages of output.
mentre
$ latex '\show\begin'
This is pdfTeXk, Version 3.141592-1.40.3 (Web2C 7.5.6)
%&-line parsing enabled.
entering extended mode
LaTeX2e
Babel and hyphenation patterns for english, usenglishmax, dumylang, noh
yphenation, greek, monogreek, ancientgreek, ibycus, pinyin, loaded.
> \begin=macro:
#1->\@ifundefined {#1}{\def \[email protected] {\@[email protected] {Environment #1 undefine
d}\@eha }}{\def \[email protected] {\def \@currenvir {#1}\edef \@currenvline {\[email protected]
}\csname #1\endcsname }}\@ignorefalse \begingroup \@endpefalse \[email protected] .
\show\begin
? x
No pages of output.
Tutto il resto viene dai pacchetti. Se vuoi veramente sapere da quale pacchetto proviene una macro (diversa da google o grepping del tuo texmf tree), puoi controllare dopo che ogni pacchetto che hai caricato sia definito. Prova la definizione di questo prima di qualsiasi comando \usepackage
:
\let\oldusepackage\usepackage
\renewcommand\usepackage[1]{
\oldusepackage{#1}
\ifcsname includegraphics\endcsname
\message{^^Jincludegraphics is defined in #1^^J}
\let\usepackage\oldusepackage
\fi}
Poi, quando si esegue latex
sul file .tex
, cercare una riga nell'output che dice includegraphics is defined in graphicx
. Non è probabile, ma alcuni pacchetti subdoli potrebbero fare cose cattive con \usepackage
quindi c'è una possibilità che questo potrebbe non funzionare.Un'altra alternativa sarebbe quella di definire semplicemente il comando che ti interessa prima di caricare qualsiasi pacchetto:
\newcommand\includegraphics{}
Poi si potrebbe ottenere un messaggio di errore quando il pacchetto che definisce il comando è carico. Questo è in realtà meno affidabile rispetto al precedente approccio, poiché molti pacchetti utilizzano \def
e \let
per definire i loro macro anziché \newcommand
, ignorando il controllo "già definito". Puoi anche inserire un assegno manualmente tra ogni carico:
\ifcsname includegraphics\endcsname\message{^^Jdefined after graphicx^^J}\fi
'\ qquad' deriva da TeX (ovvero dal nucleo principale), quindi non è necessario alcun pacchetto speciale LaTeX per consentirne l'utilizzo. –
Noram: Sono un po 'OCD così. Mi piace conoscere il pacchetto e la documentazione originali per qualsiasi comando che utilizzo. Faccio lo stesso con MSDN quando utilizzo le API Microsoft. –