Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

auf vorhandensein der option "draft" pruefen

119 views
Skip to first unread message

Thomas Wimmer

unread,
Dec 27, 1999, 3:00:00 AM12/27/99
to
Hi

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.

Martin Schroeder

unread,
Dec 27, 1999, 3:00:00 AM12/27/99
to
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...

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)

Heiko Oberdiek

unread,
Dec 28, 1999, 3:00:00 AM12/28/99
to
On Mon, 27 Dec 99 22:55:42 +0100, m...@dream.kn-bremen.de (Martin
Schroeder) wrote:

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

Thomas Wimmer

unread,
Dec 29, 1999, 3:00:00 AM12/29/99
to
Heiko Oberdiek schrieb:

>
> On Mon, 27 Dec 99 22:55:42 +0100, m...@dream.kn-bremen.de (Martin
> Schroeder) wrote:
>
> >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 %%%

(...)

> %%% 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>

Thomas Wimmer

unread,
Dec 29, 1999, 3:00:00 AM12/29/99
to
0 new messages