Wie lautet die Bedingung (bei benutzung des ifthen-paketes), wenn
ich auf Vorhandensein der Option "draft" bei \documentclass pruefen
will ?
Thomas
--
Thomas Wimmer | When you're in a fight with an idiot,
tho...@wimmer.net | its difficult for other people
Stuttgart, Germany | to tell which one the idiot is.
Ein Blick in classes.dtx verr"at, da"s die draft-Option nur die
\overfullrule setzt. Es wird kein Schalter definiert, der dann abgefragt
werden kann. Man k"onnte aber nat"urlich leicht eine Package bauen, die
eine Draft-Option hat, die einen entsprechenden Schalter setzt...
Oder tief in den Eingeweiden des LaTeX-Kernels w"uhlen, um Optionen
abzufragen...
Was willst Du tun?
Gru"s
Martin
--
Martin Schr"oder, mar...@oneiros.de
Love is the triumph of imagination over intelligence. (Oscar Wilde)
>In <3867CD41...@wimmer.net> Thomas Wimmer <tho...@wimmer.net> writes:
>>Wie lautet die Bedingung (bei benutzung des ifthen-paketes), wenn
>>ich auf Vorhandensein der Option "draft" bei \documentclass pruefen
>>will ?
>
>Ein Blick in classes.dtx verr"at, da"s die draft-Option nur die
>\overfullrule setzt. Es wird kein Schalter definiert, der dann abgefragt
>werden kann. Man k"onnte aber nat"urlich leicht eine Package bauen, die
>eine Draft-Option hat, die einen entsprechenden Schalter setzt...
%%% cut %%% ifdraft.sty %%% cut %%%
% File: ifdraft.sty
% Version: 1999/12/29 v1.0
% Author: Heiko Oberdiek
%
% Function: Switch for option draft.
%
% Copyright: Copyright (C) 1999 Heiko Oberdiek.
%
% This program may be distributed and/or modified under
% the conditions of the LaTeX Project Public License,
% either version 1.1 of this license or (at your option)
% any later version. The latest version of this license
% is in
% http://www.latex-project.org/lppl.txt
% and version 1.1 or later is part of all distributions
% of LaTeX version 1999/06/01 or later.
%
% Use: \usepackage{ifdraft}
% \ifdraft{<draft case>}{<final case>}
%
% History: 1999/12/28 v1.0: first public release
%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{ifdraft}[1999/12/28 v1.0 Switch for option draft
(HO)]
\newif\if@draft
\DeclareOption{draft}{\@drafttrue}
\DeclareOption{final}{\@draftfalse}
\ProcessOptions
\newcommand*{\ifdraft}{%
\if@draft
\expandafter\@firstoftwo
\else
\expandafter\@secondoftwo
\fi
}
\endinput
%%% cut %%% ifdraft.sty %%% cut %%%
%%% cut %%% test1.tex %%% cut %%%
\documentclass[draft]{article}
\usepackage{ifdraft}
\ifdraft{%
\typeout{*DRAFT=TRUE*}%
}{%
\typeout{*DRAFT=FALSE*}%
}
\begin{document}
\end{document}
%%% cut %%% test1.tex %%% cut %%%
>Oder tief in den Eingeweiden des LaTeX-Kernels w"uhlen, um Optionen
>abzufragen...
Wenn der Klassennamen bekannt ist, kommt man noch mit moderaten
Internas aus (funktioniert so aber nur vor \begin{document} wegen
\@onlypreamble\@ifclasswith):
%%% cut %%% test2.tex %%% cut %%%
\documentclass[draft]{article}
\makeatletter
\newcommand*{\ifwithdraft}[1]{%
\@ifclasswith{#1}{final}\@secondoftwo{%
\@ifclasswith{#1}{draft}\@firstoftwo\@secondoftwo
}%
}
\makeatother
\ifwithdraft{article}{%
\typeout{*DRAFT ON*}%
}{%
\typeout{*DRAFT OFF*}%
}%
\begin{document}
\end{document}
%%% cut %%% test2.tex %%% cut %%%
Eine naechste Variante kommt ohne Klassennamen aus, verwendet aber
dafuer schon tiefere Internas (ebenfalls so nur vor \begin{document}
verwendbar):
%%% cut %%% test3.tex %%% cut %%%
\documentclass[draft]{article}
\makeatletter
\newcommand*{\ifoptiondraft}{%
\expandafter
\@if@pti@ns\expandafter{\@classoptionslist}{final}%
\@secondoftwo{%
\expandafter
\@if@pti@ns\expandafter{\@classoptionslist}{draft}%
\@firstoftwo\@secondoftwo
}%
}
\makeatother
\ifoptiondraft{%
\typeout{*DRAFT ON*}%
}{%
\typeout{*DRAFT OFF*}%
}%
\begin{document}
\end{document}
%%% cut %%% test3.tex %%% cut %%%
Viele Gruesse
Heiko <ober...@ruf.uni-freiburg.de>
(...)
> %%% cut %%% ifdraft.sty %%% cut %%%
>
> %%% cut %%% test1.tex %%% cut %%%
(...)
> %%% cut %%% test1.tex %%% cut %%%
Ja genau so was habe ich gesucht !
Vielen Dank. Das nenne ich eine schnelle und kompetente Antwort.
> >Oder tief in den Eingeweiden des LaTeX-Kernels w"uhlen, um
> >Optionen abzufragen...
>
> Wenn der Klassennamen bekannt ist, kommt man noch mit moderaten
Hab das dann nicht mehr ausprobiert, die erste Loesung war voellig
ausreichend.
(...)
> Viele Gruesse
> Heiko <ober...@ruf.uni-freiburg.de>