ich versuche gerade, mir ein eigenes Paket zu bauen und habe eine Frage zu den Optionen:
[Minimalbeispiel am Ende des Codes...]
Ich würde gerne alle Optionen der in mein Paket eingebundenen Pakete mit
\usepackage[hier alle Optionen]{mypkg} % Befehl in der Präambel von test.tex
Das ist mir zum teil auch schon gelungen durch
\DeclareOptions*{\PassOptionsToPackage{\CurrentOption}{paket1}} % Befehl in mypkg.sty
\RequirePackage[optionen]{paket1} % Befehl in mypkg.sty
\DeclareOption{...}{...}
Problem 1: Wenn ich jetzt – mal angenommen ich (als Fremdanwender) wüsste nicht, dass mypkg paket1 lädt – in test.tex mit
\usepackage[opt]{paket1}
! LaTeX Error: Missing \begin{document}. See the LaTeX manual or LaTeX Companion for explanation. Type H <return> for immediate help. ... l.13 \usepackage [% ? ! You can't use `macro parameter character #' in horizontal mode. \in@ #1#2->\def \in@@ ##1#1## 2##3\in@@ {\ifx \in@ ##2\in@false \else \in@tru... l.13 \usepackage [% ? ! You can't use `macro parameter character #' in horizontal mode. \in@ #1#2->\def \in@@ ##1#1##2## 3\in@@ {\ifx \in@ ##2\in@false \else \in@tru... l.13 \usepackage [% ? ! Extra \else. <argument> ...tput-decimal-marker=|,}\ifin@ \else \let \reserved@a \@secondo... l.13 \usepackage [% ? ! Extra \fi. \@for ... \@forloop #2,\@nil ,\@nil \@@ #1{#3}\fi l.13 \usepackage [% ? ! LaTeX Error: Option clash for package siunitx. See the LaTeX manual or LaTeX Companion for explanation. Type H <return> for immediate help. ... l.13 \usepackage [% ? (./test.aux) [1] (./test.aux) ) Output written on test.dvi (1 page, 484 bytes). Transcript written on test.log.
So und hier das Minimalbeispiel:
\begin{filecontents*}{mypkg.sty} %%%%% Kenndaten \ProvidesPackage{mypkg}[2010/08/12] \NeedsTeXFormat{LaTeX2e}[2009/01/01] %%%%% Initialisierung %%%%% Deklarieren von Optionen \DeclareOption{noautosolution}{\setboolean{@utosol}{false}} % neue Option, mit der das Anhängen der Lösung verhindert wird \DeclareOption*{% \PassOptionsToPackage{\CurrentOption}{siunitx} % Reicht undefinierte Optionen an siunitx weiter, hat keine Probleme mit lcg-Optionen und unbekannten Optionen [Problem 2] % \PassOptionsToPackage{\CurrentOption}{lcg} % Sollte unbekannte Optionen an lcg weitergeben, macht aber Probleme mit siunitx-Optionen [Problem 2] } %%%%% Ausführen von Optionen \ProcessOptions %%%%% Laden von Paketen \RequirePackage[ output-decimal-marker = {|} % Hier lassen sich die Optionen ebefalls setzen ]{siunitx} \RequirePackage[% first=4, % Hier lassen sich die Optionen setzten last = 6 ]{lcg} %%%%% Haupteil % keine Definitionen für dieses Bsp... \end{filecontents*} \documentclass[11pt,a4paper]{scrartcl} \usepackage[latin1]{inputenc} \usepackage[% noautosolve, % Option für mypkg output-decimal-marker = {;}, % Option für siunitx first=0, % Option für lcg last=3, % Option für lcg dfggjh, % völlig frei erfunden, allenn Paketen unbekannt ]{mypkg} \usepackage[% %output-decimal-marker = {*}, % Hier lassen sich die Optionen nicht setzten [Problem 1] ]{siunitx} \usepackage[% %first=7, % Hier lassen sich die Optionen nicht setzten [Problem 1] %last=10 ]{lcg} \sisetup{output-decimal-marker = {!}} % Setzen von Optionen mit diesem Befehl geht, an dieser Stelle letzte Definition, so dass ! verwendet wird \begin{document} \section*{Pakettest} Reiner num-Befehl: \num{2.35} num-Befehl mit in Befehlsoption gesetztem Dezimalmarker \num[output-decimal-marker = {,}]{1.45} % hier lässt sich die Option auch setzten, wodurch ! noch mal durch , ersetzt wird \end{document}
Tobi