O ile mi wiadomo, nie ma na to naprawdę ogólnej ogólnej odpowiedzi. Ale istnieje wiele technik, które możesz wypróbować dla każdego polecenia. W przypadku \qquad
jest to część podstawowego TeX-a. Pamiętaj, że zawsze możesz skorzystać TeX w trybie interaktywnym:
$ 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.
Niektóre makra są dodawane przez LaTeX na szczycie TeX, takie jak \begin
:
$ tex '\show\begin'
This is TeX, Version 3.141592 (Web2C 7.5.6)
> \begin=undefined.
\show\begin
? x
No pages of output.
natomiast
$ 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.
Wszystko inne pochodzi z pakietów. Jeśli naprawdę chcesz wiedzieć, z którego paczki pochodzi makro (poza przez google lub grepping twojego drzewa texmf), możesz sprawdzić po każdym załadowanym pakiecie, czy jest on zdefiniowany. Spróbuj zdefiniowania tego wcześniej żadnej \usepackage
poleceń:
\let\oldusepackage\usepackage
\renewcommand\usepackage[1]{
\oldusepackage{#1}
\ifcsname includegraphics\endcsname
\message{^^Jincludegraphics is defined in #1^^J}
\let\usepackage\oldusepackage
\fi}
Następnie po uruchomieniu latex
na pliku .tex
, poszukaj linii na wyjściu, który mówi includegraphics is defined in graphicx
. To mało prawdopodobne, ale niektóre przebiegłe pakiety mogą robić złe rzeczy dzięki \usepackage
, więc jest szansa, że to może nie działać.Inną alternatywą byłoby po prostu zdefiniować polecenia jesteś zainteresowany przed załadowaniem jakichkolwiek pakietów:
\newcommand\includegraphics{}
Następnie można otrzymać komunikat o błędzie, gdy pakiet, który definiuje polecenie jest ładowanie. Jest to w rzeczywistości mniej niezawodne niż poprzednie podejście, ponieważ wiele pakietów używa \def
i \let
do zdefiniowania swoich makr zamiast \newcommand
, pomijając "już zdefiniowaną" kontrolę. Możesz również po prostu wstawić czek ręcznie pomiędzy każdym ładunkiem:
\ifcsname includegraphics\endcsname\message{^^Jdefined after graphicx^^J}\fi
'\ qquad' pochodzi z TeX (tj. Z samego rdzenia), więc nie ma potrzeby instalowania specjalnego pakietu LaTeX, aby można go było używać. –
Noram: Jestem trochę podobny do OCD. Lubię znać oryginalny pakiet i dokumentację dla każdego polecenia, którego używam. Robię to samo z MSDN, gdy używam Microsoft API. –