Ich habe gerade in meinem Testdokument ein command definiert. In meinem Produktivdokument wird aber der Fehler geworfen, dass es schont existiert. Gibt es eine Möglichkeit herauszufinden, welches Package das command definiert? |
Zunächst hat man natürlich die Möglichkeit, nach dem Laden jedes Pakets zu ermitteln, ob ein Befehl bereits definiert ist. Das geht sehr einfach, mit Open in writeLaTeX
\usepackage{scrbase} \ifundefinedorrelax{foo}{}{\typeout{Jetzt ist \string\foo definiert!}} Weitere Möglichkeiten werden bereits in den Antworten der Frage »Undefined control sequence - wie finde ich heraus, was fehlt?« geliefert. Dabei sei auch ausdrücklich auf die Möglichkeit der (La)TeX-Befehlsliste hingewiesen, die in der Antwort von @sap zu finden ist. Dort kann man gezielt nach den Paketen und Klassen suchen, die einen bestimmten Befehl definieren. 100% sicher ist das zwar nicht, weil die Liste nur in gewissen Abständen aktualisiert wird und nur normal definierte Befehle auf Anwenderebene findet, aber ich finde das trotzdem nützlich. beantwortet 11 Aug '14, 18:14 gast3 |
Du kannst Dir mit
\show\befehl
die Definition von\befehl
ins log schreiben lassen. Manchmal gibt die Definition einen Hinweis aufs Paket. Ansonsten: bis auf den Befehl leeres Test-Dokument mit gleicher Präambel und dann nach und nach jedes Paket entfernen, bis der Fehler verschwindet...Im Prinzip ist das ein Doppel zu: »Undefined control sequence - wie finde ich heraus, was fehlt?«, wenn auch scheinbar genau das Gegenteil gefragt wird. Ich habe daher in meiner Antwort nur durch diesen Unterschied zusätzlich vorhandene Möglichkeiten genannt.