Hallo und Herzlich Willkommen
Zitat von
yeahright
Ich möchte ein Skript mit Übungsbeispielen für Studenten erstellen, wobei jedes Beispiel aus drei Teilen besteht: Einer Angabe, einer Lösung (d.h. mit dem gesamten Lösungsweg), und dem Ergebnis (d.h. ohne Lösungsweg, nur das Endergebnis). Jedes Beispiel soll eine eindeutige ID (z.B. LZI001) erhalten und mit dieser ID als Dateinamen als .tex-Datei (also z.B. LZI001.tex) abgelegt sein, also pro Beispiel eine Datei, die jeweils wie folgt aufgebaut sein soll:
Code:
\begin{exercise}{Titel des Beispiels}
\begin{problem}
Gegeben sei... (Angabe)
\end{problem}
\begin{solution}
Um dieses Beispiel zu lösen, geht man am besten wie folgt vor: ... (Lösung)
\end{solution}
\begin{result}
$x = 42$ (Ergebnis)
\end{result}
\end{exercise}
wenn Du in der Gestaltung dieser Übungen noch frei bist, würde ich in etwa
Code:
%%%LZI001.tex:
\begin{exercise}{Titel des Beispiels}
\problem{%
Gegeben sei... (Angabe)%
}
\solution{%
Um dieses Beispiel zu lösen, geht man am besten wie folgt vor: ... (Lösung)%
}
\result{%
$x = 42$ (Ergebnis)%
}
\end{exercise}
vorschlagen, evtl. auch den Titel in einen eigenen Befehl packen und die Umgebung hier weglassen und stattdessen im \inputExercise setzen ... hmm
Zumindest funzt es dann mit der eigenen Defintion
Code:
\documentclass[ngerman]{article}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\newcounter{exercise}
\newif\ifprintProblem
\newif\ifprintSolution
\newif\ifprintResult
\newif\ifgotprintedProblem
\newif\ifgotprintedSolution
\newif\ifgotprintedResult
\gotprintedProblemfalse
\gotprintedSolutionfalse
\gotprintedResultfalse
\newcommand*\exerciseTitle{}
\newcommand*\problemname{Problemstellung}
\newcommand*\solutionname{Lösungsweg}
\newcommand*\resultname{Ergebnis}
\newcommand{\inputExercise}[4]{%
\renewcommand*\exerciseTitle{#1}%
\ifnum#2 > 0 \printProblemtrue \else \printProblemfalse \fi%
\ifnum#3 > 0 \printSolutiontrue \else \printSolutionfalse \fi%
\ifnum#4 > 0 \printResulttrue \else \printResultfalse \fi%
\input{#1}}%
\newenvironment{exercise}[1]{%
\gotprintedProblemfalse
\gotprintedSolutionfalse
\gotprintedResultfalse
\refstepcounter{exercise}
\subsection*{(\theexercise) #1}
}{%
\ifprintProblem %
\ifgotprintedProblem\relax\else\typeout{Environment exercise: `\problemname' was requested for `\exerciseTitle' (\theexercise) but none was given!}%
\fi\fi%
\ifprintSolution %
\ifgotprintedSolution\relax\else\typeout{Environment exercise: `\solutionname' was requested for `\exerciseTitle' (\theexercise) but none was provided!}%
\fi\fi%
\ifprintResult %
\ifgotprintedResult\relax\else\typeout{Environment exercise: `\resultname' was requested for `\exerciseTitle' (\theexercise) but none was provided!}%
\fi\fi%
}
\newcommand\problem[1]{%
\ifprintProblem \noindent\textbf{\problemname:} #1\par\gotprintedProblemtrue\fi%
}
\newcommand\solution[1]{%
\ifprintSolution \noindent\textbf{\solutionname:} #1\par\gotprintedSolutiontrue\fi%
}
\newcommand\result[1]{%
\ifprintResult \noindent\textbf{\resultname:} #1\par\gotprintedResulttrue\fi%
}
\begin{document}
\inputExercise{LZI001}{1}{1}{0}
\inputExercise{LZI002}{0}{0}{1}
\inputExercise{LZI001}{1}{0}{0}
\end{document}
d. h. mit
Code:
%%% LZI002.tex:
\begin{exercise}{Titel eines anderen Beispiels}
\problem{%
Gegeben sei... (Angabe)%
}
\solution{%
Um dieses Beispiel zu lösen, geht man am besten wie folgt vor: ... (Lösung)%
}
\end{exercise}
dann siehst Du auch gleich was passiert, wenn eine Anforderung mal nicht erfüllt wird.
...nutzt natürlich nix, wenn die ganze exercise-Umgebung fehlt.
Wenn Du bei Umgebungen bleiben willst, dann schau Dir mal das comment-Paket an, afaik kannst Du da per \includecomment bzw. \excludecomment Deine Umgebungen entsprechend zum Nichts/-Tun überreden; vermutlich findest Du auch dazu hier bereits irgend einen Thread.;-)
MfG
Lesezeichen