lampatho hat geschrieben:\RequirePackage{ifpdf}
\ifpdf
\documentclass[a4paper,10pt,pdftex]{article}
\else
\documentclass[a4paper,10pt,dvips]{article}
\fi
Das hat Dir offenbar jemand beigebracht, der keine Ahnung von LaTeX hat. Option pdftex wird normalerweise nicht gebraucht, weil alle relevanten Pakete (bzw. ihre Standardkonfigurationsdateien) pdftex selbst erkennen und entsprechende Einstellungen verwenden. dvips wird als Option nicht benötigt, weil das normalerweise der Standard-Fallback ist, wenn pdftex nicht erkannt wird. 10pt ist Voreinstellung von article. Also kann man diese Zeilen einfach durch:
\documentclass[a4paper]{article}
ersetzen.
Ich würde Dir übrigens die KOMA-Script-Klasse scrartcl empfehlen (siehe
KOMA-Script-Anleitung oder
KOMA-Script-Buch, wobei die Anleitung vermutlich bereits auf Deinem Rechner zu finden ist, wenn Du KOMA-Script installiert hast):
\documentclass[10pt,pagesize]{scrartcl}
lampatho hat geschrieben:\emph{Nennen Sie zwei verschiedene Fermentations-Typen und das jeweilige Produkt das dabei entsteht.}\marginpar{\fbox{\bf 2.0\,Pt.}}
\bf ist überholt. Min. seit April 1994 schreibt man \bfseries oder verwendet die Anweisung \textbf{…} (siehe
usrguide und
fntguide.
lampatho hat geschrieben:
\\ hat ein optionales Argument für zusätzlichen vertikalen Abstand. Sinnvoller wäre also »\\[14pt]« und das Weglassen der \vspace-Anweisung. Allerdings scheint mir, dass das hier für Absatzabstand missbraucht wird. Das ist keine gute Idee. Absätze macht man mit Leerzeile oder \par. Will man generell Absatzabstand statt Absatzeinzug verwendet man bei den KOMA-Script-Klassen (siehe oben) Option parskip (Hinweis: Die Option unterstützt verschiedene Werte). Bei Verwendung einer Standardklasse nimmt man als Notbehelf das Paket
parskip.
Soll stattdessen nur an dieser Stelle ein vertikaler Abstand verwendet werden, um nicht nur einen neuen Absatz, sondern einen neuen Abschnitt unterster Ordnung zu erzeugen, kann man notfalls auf \bigskip, \medskip oder \smallskip zurück greifen. Besser ist IMHO, wenn man bei den KOMA-Script-Klassen beispielsweise \minisec verwendet.
lampatho hat geschrieben:\opt{Aufgabe}{\vspace{0pt}\noindent\rule{\linewidth-2\parindent}{0.4pt}\par\vspace{10pt}\noindent\rule{\linewidth-2\parindent}{0.4pt}\par}
%%%%%%%%%%%%%%%%%Loesung%%%%%%%%%%%%%%%%%%%
\opt{Loesung}{\begin{rmfamily} Ethanol-G{"a}rung (0.5\,Pt.), Ethanol (0.5\,Pt.), Milchs{"a}ure-G{"a}rung , Milchs{"a}ure (0.5\,Pt.), Essigs{"a}ure-G{"a}rung (0.5\,Pt.), Essigs{"a}ure (0.5\,Pt.)\end{rmfamily}
}
Diesen grauenvollen Spaghetti-Code zu lesen, ist extrem anstrengend. Du solltest Dir angewöhnen, den Code lesbarer zu Formatieren und dabei zur Verbesserung der Übersicht auch mit Einrückung arbeiten. Ein ordentliche Form ist für das Erfassen und Begreifen der Information wichtig! Aber wem sage ich das …
Jedenfalls wird die \rule-Anweisung so nicht funktionieren. Dafür würde min. das Paket calc benötigt. Wie es ohne geht, werde ich zeigen.
So, nun zu Deinem Problem. Das optional-Paket ist für Deine Zwecke deshalb von Nachteil, weil es mit Befehlen und Argumenten arbeitet. Die Arbeit mit Umgebungen wäre dem Zweck weit angemessener. Außerdem sei darauf hingewiesen, dass es eine ganze
Reihe von Paketen für Aufgaben und Lösungen gibt, die meist auch das Ausblenden der Lösungen anbieten. Ich würde empfehlen, all diese einmal anzuschauen und künftig mit einem davon zu arbeiten.
Da optional nicht mit Umgebungen arbeitet, muss man die Befehle schon recht deutlich umdefinieren, um automatisch Umgebungen hinein zu patchen. Es ist nicht ausgeschlossen, dass dann nicht mehr alles wie bisher funktioniert:
\documentclass[10pt,pagesize]{scrartcl}% Alternativen: siehe Text oben
\usepackage[ngerman]{babel}
\usepackage{selinput}% Man kann bei LaTeX durchaus Umlaute eingeben,
\SelectInputMappings{% wenn man LaTeX sagt, was man vor hat.
adieresis={ä},
germandbls={ß},
}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
% Es folgt eine Reihe von Paketen, die für das vollständige Minimalbeispiel
% unerheblich sind und deshalb bei der Frage besser weggelassen worden
% wären. Siehe dazu erneut die Anleitung für vollständige Minimalbeispiele,
% die bereits früher verlinkt wurde:
\usepackage{url}
\usepackage{xcolor}% besser als color
\usepackage{amssymb,amsmath}
\usepackage{tabularx} % Erweiterte Tabellen Optionen
\usepackage{wasysym}
\usepackage{longtable}
\usepackage[version=3, font=sf]{mhchem}
%%%%%%%%%%%% Aufgaben oder Lösungen %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%\usepackage[Aufgabe]{optional}%Lösung
\usepackage[Loesung]{optional}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\renewcommand{\familydefault}{\sfdefault}% Grundschrift serifenlos (was das
% Lesen normalerweise nicht gerade fördert)
% ----------------------------------------------------------------------------
% Wir definieren jetzt \opt neu, damit wir am Anfang und Ende noch
% zusätzlichen Code ausführen können:
\usepackage{etoolbox}
\makeatletter
\patchcmd{\opt}
{\@firstofone}
{\begingroup \csname #1init\endcsname\expandafter\opt@firstofone}
{\typeout{Patch erfolgreich!}}
{\typeout{Patch misslungen!}}
\newcommand{\opt@firstofone}[1]{#1\endgroup}
% Lösungen sollen in \rmfamily gesetzt werden. Sie sind ebenfalls eigene
% Absätze:
\newcommand\Loesunginit{\par\rmfamily\aftergroup\par}
% Aufgaben sollen immer einen neuen Absatz erzeugen. Am Ende ist ebenfalls ein
% neuer Absatz
\newcommand\Aufgabeninit{%
\par\aftergroup\par
}
% Der Standardfall für Aufgaben sind einige Zeilen Platz zum Ausfüllen:
\newcommand*\AufgabenLinien[1][1]{% Als optionales Argument kann die Anzahl
% der Linien übergeben werden. Voreingestellt
% ist nur eine Linie. Für zwei Linien würde
% man im Text also beispielsweise
% \AufgabenLinien[2]
% schreiben.
\opt{Aufgabe}{%
\par
\setlength{\parskip}{0pt}% Kein Einzig
\setlength{\parindent}{2pt}% Zusätzlicher Abstand
\setlength{\parfillskip}{2em plus 1fil}% letzte Zeile bis auf 2em voll
\@tempcnta=0\relax
\@whilenum \@tempcnta<#1\relax\do{%
\rule{0pt}{14pt}% unsichtbare Stütze für genügend Platz
\hrulefill% komplette Zeile mit einer Linie ausfüllen
% Alternative:
% \rule{\dimexpr \linewidth-2\parindent\relax}{.4pt}
\par
\advance\@tempcnta by 1\relax
}%
}
}
% Und dann noch eine Anweisung, um die Punkte darzustellen:
\newcommand*{\Punkte}[1]{\marginpar{\fbox{\textbf{#1\,Pt.}}}}
% Und für den Aufgabentext
\newcommand{\Aufgabe}[2][1]{\emph{#2}\Punkte{#1}}
% Und eine, um die Summe zu bilden.
\makeatother
\begin{document}
\section{Repetition}
\subsection{Stoffwechselbiologie: Fermentation}
\Aufgabe[2.0]{%
Nennen Sie zwei verschiedene Fermentations-Typen und das jeweilige
Produkt das dabei entsteht.
}
\AufgabenLinien
\opt{Loesung}{%
Ethanol-Gärung (0.5\,Pt.), Ethanol (0.5\,Pt.), Milchsäure-Gärung ,
Milchsäure (0.5\,Pt.), Essigs{"a}ure-G{"a}rung (0.5\,Pt.), Essigs{"a}ure
(0.5\,Pt.)
}
\end{document}
Der Witz ist, dass wenn ich so weiter mache, ich irgendwann dabei lande, eines der oben erwähnten Aufgaben-Pakete nachzuprogrammieren. Daher belasse ich es dabei und werde insbesondere nicht zeigen, wie man die Punktezahl aus den Lösungen selbst aufsummieren lassen kann.
Wichtiger Hinweis: Die Links in diesem Vorschlag sind Teil der Antwort und daher unbedingt zurück zu verfolgen! Dasselbe gilt für die Anleitungen der neu hinzugekommenen Pakete!