PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Anfängerfrage genereller Natur



Phantom
09-11-2013, 15:50
Liebe Helfer,

ich habe eine eher allgemeine Frage. Wenn ich z.B. den Befehl \paragraph neu definieren möchte, wo finde ich dann die originale Definition? Ist das abhängig davon, welche Klasse ich benutze? Ich benutze scrbook von Koma-Script. Ich möchte beispielsweise analog hierzu die Definition von subparagraph ändern:

\makeatletter
\renewcommand{\paragraph}{%
\@startsection{paragraph}{4}%
{\z@}{3.25ex \@plus 1ex \@minus .2ex}{-1em}%
{\normalfont\normalsize\bfseries}%
}
\makeatother
Jetzt weiß ich nicht, in welcher Datei ich gucken muss, um die ursprüngliche Definition von \subparapraph zu bekommen. Wie findet man das raus? Ich hoffe ihr versteht überhaupt, was ich fragen möchte :o...


Vielen Dank und liebe Grüße
Phantom

klops
09-11-2013, 17:12
Die Originaldefinition von Befehlen, die in der Klasse definiert sind, findest Du in der verwendeten Klasse. Die Originaldefinition von Befehlen, die in einem Paket definiert sind, findest Du im Paket. Die Originaldefinition von LaTeX-Kern-Befehlen, die nicht von der Klasse und nicht von einem Paket umdefiniert werden, findest Du im LaTeX-Kern.

Neben den eigentlichen Dateien (bei Klassen mit Endung .cls, bei Paketen mit Endung .sty und beim LaTeX-Kern latex.ltx) gibt es meist auch dokumentierte Quellen. Bei KOMA-Script ist das beispielsweise srcsource.pdf (oder scrsource.dvi), das leider von den wenigsten Distributionen bereits gestellt wird, bzw. die dtx-Dateien unter source/tex/latex/koma-script. Bei Paketen sind die teilweise in der Paketdoku enthalten, teilweise auch nicht. Im Zweifelsfall macht man sich ebenfalls auf die Suche nach einer passenden dtx-Datei (die man normalerweise über die Kommentare am Anfang der Paketdatei findet). Bei LaTeX gibt es source.pdf, das normalerweise bei allen Distributionen dabei ist.

Leider gibt es keinen eindeutigen Weg, um die Klasse oder das Paket zu finden, in dem die Originaldefinition steht. Wenn beispielsweise ein Paket einen Befehl einer Klasse umdefiniert, dann muss man das schon wissen, bzw. bei der Suche sehr sorgfältig sein.

Man kann aber auch TeX selbst nach der Originaldefinition fragen. Ein \show\foo schreibt die aktuelle Definition von \foo in die Log-Datei. Bei Befehlen, die mit \DeclareRobustCommand definiert wurden, ergibt das dann allerdings nur \protect\foo. In dem Fall hilft \begingroup\let\protect\show\foo\endgroup. Befehle, die mit \DeclareRobustCommand definiert wurden, sollte man übrigens auch nur mit \DeclareRobustCommand umdefinieren, damit sie robust bleiben.

Übrigens, wenn man alle Dateien wissen will, in denen ein Befehl definiert ist, die man also ggf. konsultieren muss, so hilft http://www.komascript.de/texcommandlist weiter.

Phantom
14-11-2013, 03:29
Vielen lieben Dank für deine Antwort! Jetzt weiß ich mehr, aber, wenn man wie ich wenig Ahnung hat, sucht man echt lange nach manchen Dingen ;-)....