PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : newenvironment mit Optionen



arjuna
20-05-2006, 16:01
HI nochmal,

warum geht dies:
\newenvironment{test}[2]
{
\textit{#1}\\
\textit{#2}\\
\begin{itemize}
}
{
\end{itemize}

}
nicht aber:
\newenvironment{test}[2]
{
\textit{#1}\\
\begin{itemize}
}
{
\end{itemize}
\textit{#2}\\
}

Wie kann ich erreichen, dass die zweite option unten angezeigt wird z.B. hier:
\begin{test}{steht oben}{steht unten}
\item erster Punkt
\item zweiter Punkt
\end{test}

Sprich ich möchte eine item / enumerate / list Aufzählung machen bei der noch oben und Unten Text steht.

freue mich über jeden Hinweis.

Arjuna

voss
20-05-2006, 16:08
\newenvironment{test}[2]{%
\textit{#1}\def\testII{#2}\par
\itemize%
}{%
\enditemize\par
\textit{\testII}}


Herbert

arjuna
20-05-2006, 16:21
hmmm ...
Das funktioniert zwar, aber irgendwie kann ich das jezt nicht auf mein konkretes Problem übertragen, wo ich eben auch unter der Liste nochmal Text haben möchte:

\newcounter{Lcount}
\newenvironment{opt}[1]
{
%Der Fragen Text
\vspace{1ex}
\parindent-0.8em
\hspace{0.5em}
{\bf \scshape{Frage:} \\
\textit{#1?}}
%Die Antwortmöglichkeiten mit \false bzw \true beginnen
\begin{list}{(\alph{Lcount})} {\usecounter{Lcount}
\setlength{\rightmargin}{\leftmargin}}
\newcommand{\false}{\item}
%\newcommand{\true}{\item}
\newcommand{\true}{\item[\stepcounter{Lcount}\textbf{(\alph{Lcount})}]}
}
{
\end{list}
}

arjuna
20-05-2006, 16:25
oder vielleicht allgemeiner,
wie kann ich Deine Lösung für
"list" umsetzen?

voss
20-05-2006, 16:45
hmmm ...
Das funktioniert zwar, aber irgendwie kann ich das jezt nicht auf mein konkretes Problem übertragen, wo ich eben auch unter der Liste nochmal Text haben möchte:


Das ist doch wieder dieses Gewusel. Nimm das Paket enumerate, dann sparst du dir schon mal die Hälfte des COdes. Damm nusst du jetzt endlich mal verraten, was _genau_ du haben willst. Du erzählst immer nur scheibchenweise, was du benötigst. Jetzt hast du wieder zwei neue Makros, von denen man auch nicht genau weiß, was sie wirklich bewirken sollen...

Herbert

arjuna
20-05-2006, 16:54
Ich versuche auf einfache Weise Multiple Choice Fragen zu erstellen. Ich weiss, es gibt fertige Pakete, die Prüfungsfragen herstellen. Aber das ist für mich zu aufwendig. Ich will einfach nur ganz einfache Fragen erstellen.
... jetzt habe ich was ganz passables mit enumerate hinbekommen:

\newcounter{enum}
\newenvironment{question}[2]
{%
%Der Fragen Text
\vspace{1ex}
\parindent-0.8em
\hspace{0.5em}
{\bf \scshape{Frage:} \\ \textit{#1?}}
%Umleitung für Kommentar Text
\def\kommentar{#2}\par
%Definition für Frage Optionen
\newcommand{\false}{\item[\stepcounter{enum}(\alph{enum})]}
\newcommand{\true}{\item[\stepcounter{enum}(\alph{enum})]}
\renewcommand{\true}{\item[\stepcounter{enum}\textbf{(\alph{enum})}]}
% Nun die einzelnen Items
\enumerate%
}
{%
\endenumerate\par
%Ausgabe des Kommentar Textes
\vspace{-2ex}
\parindent-0.8em
\hspace{0.5em}
{\bf \scshape{Kommentar:} \\ \textit{\kommentar.}}
\\ \\
}

Im Text wende ich das dann an:

\begin{question}
{Die Frage}
{Der Kommentar zur Antwort}
\false erste Option
\true zweite Option
\false dritte Option
\end{question}

Was jetzt nur noch fehlt ist eine Nummerierung für die einzelnen Fragen.
Wenn ich oben in der Umgebung zwei Zeilen auskommentiere, dann werden die Fragen ohne Lösungsmarkierung und Kommentar gedruckt.

Was meinst Du dazu?
Macht mein Code Sinn?

voss
20-05-2006, 17:56
Was meinst Du dazu?
Macht mein Code Sinn?

Nein



\documentclass{article}
\usepackage{enumerate}

\newcommand*\itemB{\item[\stepcounter{enumi}\textbf{(\alph{enumi})}]}
\newenvironment{question}[2]{%Der Fragen Text
\vspace{1ex}
\noindent
{\bfseries Frage:} \\\textit{#1?}
\def\kommentar{#2}\par%Umleitung für Kommentar Text
\enumerate[(a)]%
}{%
\endenumerate\par
%Ausgabe des Kommentar Textes
\vspace{-2ex}
\noindent
{\bfseries Kommentar:} \\ \textit{\kommentar.}
\vspace{2ex}}

\begin{document}

\begin{question}{Die Frage}{Der Kommentar zur Antwort}
\item erste Option
\itemB zweite Option
\item dritte Option
\end{question}

\end{document}


Herbert

arjuna
20-05-2006, 18:31
Wenn ich das richtig sehe, ist der Hauptuntereschied, dass
1)
Du den "newcommand" für den Markierten Item außerhalb von "newenvironment" definierst und
2) über [(a)] Du enumerate die Zählweise übergibst und dafür das Paket "enumerate" verwendest.

Was hat das für vorteile?