PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : /newenvironment & Kommandodrumrum



Kai__
19-11-2006, 18:56
Externe Datei:

\begin{test1}
blabla
\end{test1}

nun moechte ich, dass mit Hilfe von \newenvironment automatisch
der Block gekapselt wird:

ergo
\newenvironment
{test}
{
\showandhide {
}
{
}
}

Also so, dass der ganze Block gekapselt wird...

Hab leider auf die externen Daten keinen Zugriff, ums haendisch zu machen...

Ideen?

rais
19-11-2006, 20:56
nun moechte ich, dass mit Hilfe von \newenvironment automatisch
der Block gekapselt wird:

ergo
\newenvironment
{test}
{
\showandhide {
}
{
}
}

Also so, dass der ganze Block gekapselt wird...

Hab leider auf die externen Daten keinen Zugriff, ums haendisch zu machen...

Ideen?
Hmm, ich kann mich zwar vage daran erinnern, mal etwas mit \showandhide gemacht zu haben, um ganze Blöcke auszukommentieren, aber das heißt noch lange nicht, daß der \showandhide in Deinem Code-Schnipsel dasselbe machen soll...
Was genau willst Du eigentlich bezwecken?
MfG,

Kai__
19-11-2006, 21:38
Eigentlich etwas relativ einfaches;

Ich habe eine externe Datei, die folgendermassen aufgebaut ist:

\begin{aufgabe}
foo
\end{aufgabe}

\begin{loesung}
bar
\end{loesung}

loesung soll nur erscheinen, wenn \newcommand{\showme}{1} nicht auskommentiert ist.

Das funktionert auch so weit, das Problem ist, dass ich auf die externen Daten keinen Zugriff habe, ergo im Hauptdokument irgendwie bedingt kompilieren muss.

Das geht meines Erachtens nur dann, wenn ich \showandhide in \newenvironment einbaue, damit der Block "Loesung" umschlossen wird und mein Compiler nur die Aufgabe kompiliert.

rais
20-11-2006, 00:31
Eigentlich etwas relativ einfaches;

Ich habe eine externe Datei, die folgendermassen aufgebaut ist:

\begin{aufgabe}
foo
\end{aufgabe}

\begin{loesung}
bar
\end{loesung}

loesung soll nur erscheinen, wenn \newcommand{\showme}{1} nicht auskommentiert ist.

Das funktionert auch so weit, das Problem ist, dass ich auf die externen Daten keinen Zugriff habe, ergo im Hauptdokument irgendwie bedingt kompilieren muss.

Das geht meines Erachtens nur dann, wenn ich \showandhide in \newenvironment einbaue, damit der Block "Loesung" umschlossen wird und mein Compiler nur die Aufgabe kompiliert.
vllt wirst Du mit dieser Lösung (http://www.mrunix.de/forums/showpost.php?p=212536&postcount=6) (Stichwort: comment-Umgebung) da eher was, schließlich ist das bereits eine Umgebung und kein Befehl wie \showandhide{..}, wenn ich den richtig in Erinnerung hab'.
MfG,

Kai__
20-11-2006, 01:20
Irgendwie stimmt da was nicht:



[LaTeX] main.tex => main.dvi (latex)
[LaTeX] mit Status 1 beendet
./main.tex:46:File ended while scanning use of \next. \makeAufgaben
./main.tex:5:Underfull \hbox (badness 10000) in paragraph
./main.tex:5:Underfull \hbox (badness 10000) in paragraph
./main.tex:46:Overfull \hbox (468.7257pt too wide) in paragraph
./main.tex:46:Underfull \hbox (badness 10000) in paragraph
./main.tex:46:\begin{comment} on input line 7 ended by \end{enumerate}. \makeAufgaben
./main.tex:47:\begin{comment} on input line 7 ended by \end{document}. \end{document}
[LaTeX] 3 errors, 0 warnings, 4 badboxes




\newenvironment{loesung}{\ifthenelse{\isundefined{ \showme}}{\begin{comment}}{\begin{comment}}}{\ifth enelse{\isundefined{\showme}}{\end{comment}}{\end{ comment}}}

Setz ich aber fuer comment abstract ein kompiliert er es ohne Probleme.

\usepackage{comment}

hab ich...

rais
20-11-2006, 20:45
\newenvironment{loesung}{\ifthenelse{\isundefined{ \showme}}{\begin{comment}}{\begin{comment}}}{\ifth enelse{\isundefined{\showme}}{\end{comment}}{\end{ comment}}}

Setz ich aber fuer comment abstract ein kompiliert er es ohne Probleme.

\usepackage{comment}

hab ich...
Hmm, ich kann's derzeit zwar nicht testen, aber wie sieht es bei


\newenvironment{loesung}{\begin{comment}}{\end{com ment}}
aus? Auch wieder dieser Fehler?
Dann könnte vllt


\newenvironment{loesung}{\comment}{\endcomment}
so tun wie geplant?
MfG,

Kai__
20-11-2006, 21:30
Ironischerweise derselbe Fehler :(

rais
20-11-2006, 22:50
versuch es mal etwa so:


\documentclass{scrartcl}
\usepackage{comment,ifthen}
%\newcommand{\nixverraten}{1} %<---als Schalter
\newenvironment{loesung}{%
$\rightarrow$
}{%
}
\ifthenelse{\isundefined{\nixverraten}}{}{%
\excludecomment{loesung}%
}
\begin{document}
bla bla blubb
\begin{loesung}
tadaa;-)
\end{loesung}
und weiter im Text\dots
\end{document}

MfG,

Kai__
21-11-2006, 15:36
Hmm das funktioniert tadellos...

Aber wo der Fehler war weisst Du nicht oder?


Vielen Dank...

rais
21-11-2006, 20:22
Aber wo der Fehler war weisst Du nicht oder?

das nicht, aber es dürfte aus einem artverwandtem Grund nicht gefunzt haben, warum man auch die verbatim-Umgebung nicht einfach in sein eigenes \newenvironment übernehmen kann.
Bezogen auf die comment-Umgebung, ich laß die Bedingung mal weg:


\newenvironment{meins}{%
\begin{comment}%
}{%
\end{comment}%
}

ist jetzt die }{-Anweisung (Ende, was zu Beginn der Umgebung / ab jetzt, was am Ende der neuen Umgebung eingesetzt werden soll) jetzt schon von der comment-Umgebung betroffen?

MfG,