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.texDas 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
