PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Befehl nur ausführen wenn Paket geladen ist



nyphis
20-08-2008, 09:31
wie kann ich in meinem Dokument überprüfen, ob ein Befehl existiert, bevor ich ihn ausführe?

ich wollte mein Dokument etwas bequemer gestalten und z.B. \pagewiselinenumbers nur ausführen, wenn auch das Paket lineno geladen ist ...

ich hatte es über das folgende Konstrukt versucht - aber da bringt LaTeX Fehlermeldungen ...
\documentclass[pdftex,a4paper,ngerman,12pt]{scrreprt}

\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{blindtext}
\usepackage[modulo,pagewise]{lineno}


begin{document}

\makeatletter
\@ifundefined{\pagewisenumbers}{}{\pagewisenumbers }
\makeatother

\blinddocument

\end{document}gibt es keinen Befehl auf "Nutzerebene" mit dem man das Geladen-sein eines Paketes oder das Vorhanden-sein eines Befehls einfach abfragen kann?

krihaa
20-08-2008, 10:06
Hallo,

probiers mal hiermit:
\documentclass[pdftex,a4paper,ngerman,12pt]{scrreprt}

\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{blindtext}
\usepackage[modulo,pagewise]{lineno}
\makeatletter
\@ifpackageloaded{lineno}{\pagewiselinenumbers}{}
\makeatother

\begin{document}



\blinddocument

\end{document}


Gruß

nyphis
20-08-2008, 11:20
erstmal danke für den Tipp ...
das klappt schon mal ganz gut ...

nun habe ich leider auch noch einen Fall, wo ich im Dokument einen Befehl anwenden muss und der sollte an der Stelle auch definiert sein ...

konket will ich bei meinem Anhangverzeichnis (http://www.mrunix.de/forums/showthread.php?t=60497) (siehe Minimalbeispiel dort) zwischen der Variante mit Anhangverzeichnis und dem ganz normalen Inhaltsverzeichnis hin- und herspringen ...

dazu muss entweder \tableofcontents oder \maintoc und \appendixtoc aktiviert sein und man muss das Makro in der Präambel (de)aktivieren ...
am liebsten würde ich irgendwo im Dokument eine Variable definieren mit der ich das ein- und ausschalten kann ...