PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Nummerierung in ein Verzeichnis übernehmen



Moadin
08-07-2015, 00:28
Hallo zusammen

ich habe ein Matheskript und verwende eine eigene Umgebung "uebung" (ermöglicht eine fortlaufende Nummerierung im gesamten Skript). Zusätzlich habe ich in dieser Umgebung für Unteraufgaben die beiden Umgebungen "tasks" (vom exsheets-Paket) und eine eigene Umgebung "untauf".
Ich kann nun mit einem Befehl "\lsgl{}" die Lösungen direkt hinter meine Aufgaben schreiben und anschliessend werden diese Lösungen in ein Lösungsverzeichnis geschrieben.

Im Moment sieht dieses Beispiel so aus:
1) 35m
1) 40m
2) 4.4m
3) 3m
4) 6.6m
4) 3.2m
4) 9m

Was muss ich ändern, damit ich im Lösungsverzeichnis wieder folgendes sehe?

1a) 35m
1b) 40m
2) 4.4m
3) 3m
4a) 6.6m
4b) 3.2m
4c) 9m

Dieses Verhalten tritt auf egal ob in meiner eigens definierten Umgebung "untauf" oder in der von exsheets.

Ich habe früher diese Unterumgebungen nicht gehabt und mit \begin{enumerate}[label=\alph*)] gearbeitet, das hat damit vorzüglich funktioniert. Im Moment scheint er die Nummerierungstiefe nicht zu erkennen. Aber wie ändere ich das?

Code für meine Uebungs-Umgebung und deren Unterumgebung "untauf":

%== Umgebung für Übungen
\newcounter{ubg}
\newcounter{ubg2}
% nur Nummerierung, wenn vor der Aufgabennummerierung noch die Kapitelnummer zu stehen kommen soll einfach \thechapter einfügen
\newenvironment{uebung}{\begin{list}{\bfseries{} \arabic{ubg}.}{\usecounter{ubg}\setcounter{ubg}{\a rabic{ubg2}}\setlength{\leftmargin}{2em}}}{\end{li st}\vspace{2ex}\setcounter{ubg2}{\arabic{ubg}}}

%== Umgebung für Unteraufgaben der Übungen
\newcounter{ubg4}
\newenvironment{untauf}{\begin{list}{\alph{ubg4})} {\usecounter{ubg4}\setlength{\labelwidth}{0.5cm}\s etlength{\labelsep}{0.5cm}
}}{\end{list}}

und hier der Code für das Erstellen des Lösungsverzeichnis:

% Lösungsverzeichnis
%================================================= ===================================

%== Lösungen sind in den Befehl \lsgl{} einzuschliessen. Für jeden \lsgl{}-Befehl wird sogleich ein Eintrag ins Lösungsverzeichnis geschrieben. Das Lösungsverzeichnis trägt den Namen "Hauptfile"'.los (list of solutions). Das Lösungsverzeichnis wird an beliebiger Stelle im Dokument mit \listofsolutions erzeugt, analog zu \tableofcontents oder \listoffigures.
% Zuerst wird \lsgl definiert. Eintrag ins Lösungsverzeichnis in Abhängigkeit der Nummerierungstiefe
\makeatletter
\def\lsgl#1{ \ifabfrage{\lehrer}{ {\footnotesize {\textcolor{purple}{(#1)} } } }{}
\ifnum \@enumdepth=0
\addcontentsline{los}{solution}{%
\textbf{\arabic{ubg}}) #1}%
\else
\addcontentsline{los}{solution}{%
\textbf{\arabic{ubg}}\alph{enumi}) #1}%
% \textbf{\arabic{ubg}} \alph{ubg4}) #1}%
\fi%
}

%== Nun wird der Befehl \listofsolutions definiert
\newcommand{\listofsolutions}{\newpage\twocolumn\c hapter{Lösungsverzeichnis}%
\@starttoc{los}}
\addtocontents{los}{\protect\thispagestyle{scrhead ings}}

%== Hier kann das Lösungsverzeichnis formatiert werden
\newcommand\l@solution{\@dottedtocline{1}{0em}{2.3 em}}
%\newcommand\l@solution{}
\makeatother
\endinput

Es tut mir leid, dass ich kein Minimalbeispiel erstellen kann, ich glaub das würde den Rahmen sprengen.



Vielen Dank für eure Hilfe!

Grüsse Moadin

u_fischer
08-07-2015, 08:26
Es tut mir leid, dass ich kein Minimalbeispiel erstellen kann, ich glaub das würde den Rahmen sprengen.


Nun, irgendwer wird ein Minimalbeispiel zum Testen erstellen müssen. Wenn nicht du, wer denn sonst?

Moadin
08-07-2015, 13:41
Endlich kommt ein funktionierendes Minimalbeispiel. Ich habe Pakete drin gelassen, die es wahrscheinlich nicht benötigt, aber ich wollte nicht neue Probleme schaffen.

Ich wäre sehr dankbar für Hinweise, ich habe es bis jetzt nicht hinbekommen.



\documentclass[paper=a4,fontsize=11pt,DIV=12,BCOR=8mm,parskip=hal f,titlepage,headings=openright,twoside,bibliograph y=totocnumbered,dvipsnames]{scrreprt} % für zweiseitig: "twoside" also option einfügen und headings=openright bewirkt, dass Chapter immer auf ungeraden Seiten beginnen


% Schrift
%================================================= ===================================

%== Stellt Umlaute und sonstige Spezialzeichen korrekt dar. Die Option muss so gewählt werden, wie der Editor die Datei speichert.
\usepackage[utf8]{inputenc}
% ==Probleme beim Trennen von Wörten, die Umlaute enthalten, vermieden bzw können dann erst überhaupt getrennt werden.
\usepackage[T1]{fontenc}
%== Eine Sammlung von verschieden Sprachen, ermöglicht für diese Sprachen die automatische Worttrennung und die ändert die Bezeichnungen in die jeweilige Sprache. ngerman ist die Option für die neue deutsche Rechtschreibung.
\usepackage[ngerman]{babel}
%== Schrift Helvetica, serifenlos
\usepackage[scaled=0.92]{helvet}
\renewcommand{\familydefault}{\sfdefault}
\fontfamily{phv}\selectfont
%== serifenlose Schrift im Mathesatz
\usepackage[helvet]{sfmath}


% Seitenlayout
%================================================= ===================================

\KOMAoptions{cleardoublepage=empty}
% ==Definition der Seitenränder
\usepackage[left=2.5cm,right=1.5cm,top=1cm,bottom=1cm,includeh eadfoot]{geometry}
% ==Kopf- und Fusszeile
\usepackage[headsepline,automark]{scrpage2}
% ==ändert die Schrift in der Kopfzeile
\setkomafont{pageheadfoot}{\small\sffamily}
% ==kann das gesamte Dokument auf eineinhalb zeiligen Abstand setzen: [onehalfspacing]
\usepackage{setspace}
% ==Setzt den Text linksbündig mit Flattersatz rechts
\usepackage{ragged2e}
%== Für Blocksatz auskommentieren
%\RaggedRight
%== Fügt Bilder oder Hintergründe auf jeder Seite ein
\usepackage{eso-pic}
%== definiert die Beschriftungen von Abbildungen und Tabellen
\usepackage[font=footnotesize,labelfont=bf,format=hang,justifi cation=justified,singlelinecheck=false,figurename= Abb.]{caption}[2008/08/24]



% Generelle Pakete
%================================================= ===================================

%== Ermöglicht Anpassung der drei Umgebungen enumerate, itemize und description
\usepackage{enumitem}
%== Ein Mutlicol-Befehl, der die Nummerierung aber horizontal macht
\usepackage{exsheets}
%== deklariert die Nummerierung in a) b) c) bei tasks
\DeclareInstance{tasks}{alphabetize}{default}{}


% Mathematik Pakete
%================================================= ===================================

%== Das wichtigste Paket für korrekte mathematische Schriftsetzung in LaTeX
\usepackage{amsmath}
%== Erweiterungspaket von amsmath
\usepackage{mathtools}
%== Fügt mathematische Symbole ein, z.B. das Mengensymbol: \mathbb{R}
\usepackage{amssymb}
%== verschiedene mathematische Schriftsätze
\usepackage{amsfonts}
%== Einfache Verwendung von Klammern bei Array
\usepackage{delarray}


% Eigene Definitionen
%================================================= ===================================

% If abfrage zur steuerung der skriptversion falls erster parameter = 0, dann schreib #2 sonst #3
\def\ifabfrage#1#2#3{\def\test{#1}\ifnum\test=0#2\ else#3\fi}



%== Umgebung für Übungen
\newcounter{ubg}
\newcounter{ubg2}
% nur Nummerierung, wenn vor der Aufgabennummerierung noch die Kapitelnummer zu stehen kommen soll einfach \thechapter einfügen
\newenvironment{uebung}{\begin{list}{\bfseries{} \arabic{ubg}.}{\usecounter{ubg}\setcounter{ubg}{\a rabic{ubg2}}\setlength{\leftmargin}{2em}}}{\end{li st}\vspace{2ex}\setcounter{ubg2}{\arabic{ubg}}}
%\newenvironement{uebung}{\begin{list

%== Umgebung für Unteraufgaben der Übungen
\newcounter{ubg4}
\newenvironment{untauf}{\begin{list}{\alph{ubg4})} {\usecounter{ubg4}\setlength{\labelwidth}{0.5cm}\s etlength{\labelsep}{0.5cm}
}}{\end{list}\vspace{2ex}}


% Lösungsverzeichnis
%================================================= ===================================

%== Lösungen sind in den Befehl \lsgl{} einzuschliessen. Für jeden \lsgl{}-Befehl wird sogleich ein Eintrag ins Lösungsverzeichnis geschrieben. Das Lösungsverzeichnis trägt den Namen "Hauptfile"'.los (list of solutions). Das Lösungsverzeichnis wird an beliebiger Stelle im Dokument mit \listofsolutions erzeugt, analog zu \tableofcontents oder \listoffigures.
% Zuerst wird \lsgl definiert. Eintrag ins Lösungsverzeichnis in Abhängigkeit der Nummerierungstiefe
\makeatletter
\def\lsgl#1{ \ifabfrage{\lehrer}{ {\footnotesize {\textcolor{purple}{(#1)} } } }{}
\ifnum \@enumdepth=0
\addcontentsline{los}{solution}{%
\textbf{\arabic{ubg}}) #1}%
\else
\addcontentsline{los}{solution}{%
\textbf{\arabic{ubg}}\alph{enumi}) #1}%
\fi%
}


%== Nun wird der Befehl \listofsolutions definiert
\newcommand{\listofsolutions}{\newpage\twocolumn\c hapter{Lösungsverzeichnis}%
\@starttoc{los}}
\addtocontents{los}{\protect\thispagestyle{scrhead ings}}

%== Hier kann das Lösungsverzeichnis formatiert werden
\newcommand\l@solution{\@dottedtocline{1}{0em}{2.3 em}}
%\newcommand\l@solution{}
\makeatother


% Schalter
%---------
% 1: erzeugt schuelerskript
% 0: erzeugt lehrerskript

%************
%------------
\def\lehrer{1}
%------------
%************


\begin{document}


\begin{uebung}

\item Bestimmen Sie die Anzahl Lösungen folgender Gleichungen:
\begin{untauf}
\item $x^2+x+1=0$ \lsgl{keine Lösungen}
\item $x^2+2x+1=0$ \lsgl{eine Lösung}
\item $x^2+3x+1=0$ \lsgl{zwei Lösungen}
\end{untauf}

\item Für welche Zahlen $k$ haben die Gleichungen keine Lösung, eine Lösung, bzw. zwei Lösungen?
\begin{tasks}(3)
\task $x^2-3x+k=0$ \lsgl{$>2.25$; 2.25; $<2.25$}
\task $kx^2+6x+1=0$ \lsgl{$<9$; 9; $>9$}
\task $x^2-x-k=0$ \lsgl{$<-\frac{1}{4}$; $-\frac{1}{4}$; $>-\frac{1}{4}$}
\task $y^2+ky+1=0$ \lsgl{$-2<k<2$; $k=\pm2$; $-2>k>2$}
\task $x^2+kx-2k^2=0$ \lsgl{$>0$; 0; $<0$}
\task $3k^2x^2+4kx+1=0$ \lsgl{$>0$; 0; $<0$}
\end{tasks}

\item Ein paar schwierigere Aufgaben.
\begin{tasks}(2)
\task $5z-3-2z(3z-4)=4$ \lsgl{$z_1=\frac{7}{6}$, $z_2=1$}
\task $\frac{1}{2}(x+1)^2=\frac{17}{8}-x$ \lsgl{$x_1=0.693$, $x_2=-4.693$}
\task $(x+1)(2x+3)=4x^2-22$ \lsgl{$x_1=5$, $x_2=-\frac{5}{2}$}
\task $(y-3)^2=2(y^2-9)$ \lsgl{$y_1=3$, $y_2=-9$}
\task $t(3t-7)-t+4=(t+2)^2$ \lsgl{$t_1=6$, $t_2=0$}
\task $(3x+5)^2-x(7x-5)=29x+45$ \lsgl{$x_1=2$, $x_2=-5$}
\task! $(3r-4)^2-4(4r-3)^2+(5r-2)(5r+2)=18(r+2)+3$ \lsgl{keine Lösung}
\task! $(1.4x+4)(1.4x-4)=(x-7)(x+3)+(x+2)(2x-3)$ \lsgl{$x_1=5$, $x_2=-2.115$}
\end{tasks}


\item Wie verändern sich die Lösungen der Gleichung $ax^2+bx+c=0$ , wenn
\begin{untauf}
\item $a$ halbiert und $c$ verdoppelt wird, \lsgl{Lösungen werden doppelt so gross}
\item $b$ verdoppelt und $a$ vervierfacht wird,\lsgl{Lösungen werden halb so gross}
\item $a$, $b$ und $c$ halbiert werden? \lsgl{Lösungen bleiben gleich gross}
\end{untauf}

\end{uebung}

ein kleiner weiterer Test

\begin{uebung}

\item Wie verändern sich die Lösungen der Gleichung $ax^2+bx+c=0$ , wenn
\begin{untauf}
\item $a$ halbiert und $c$ verdoppelt wird, \lsgl{Lösungen werden doppelt so gross}
\item $b$ verdoppelt und $a$ vervierfacht wird,\lsgl{Lösungen werden halb so gross}
\item $a$, $b$ und $c$ halbiert werden? \lsgl{Lösungen bleiben gleich gross}
\end{untauf}

\end{uebung}

\listofsolutions

\end{document}

klops
08-07-2015, 14:21
Endlich kommt ein funktionierendes Minimalbeispiel. Ich habe Pakete drin gelassen, die es wahrscheinlich nicht benötigt
Das ist ein Widerspruch. Mit Paketen, die nicht benötigt werden, ist es kein Minimalbeispiel.


aber ich wollte nicht neue Probleme schaffen.
Dann probier aus, was benötigt wird.

Moadin
08-07-2015, 15:55
Hier das funktionierende Minimalbeispiel. Diesmal ist es wirklich minimal.


\documentclass[paper=a4]{scrreprt}

\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{enumitem}
\usepackage{exsheets}
\DeclareInstance{tasks}{alphabetize}{default}{}

% If abfrage zur steuerung der skriptversion falls erster parameter = 0, dann schreib #2 sonst #3
\def\ifabfrage#1#2#3{\def\test{#1}\ifnum\test=0#2\ else#3\fi}



%== Umgebung für Übungen
\newcounter{ubg}
\newcounter{ubg2}
\newenvironment{uebung}{\begin{list}{\bfseries{} \arabic{ubg}.}{\usecounter{ubg}\setcounter{ubg}{\a rabic{ubg2}}\setlength{\leftmargin}{2em}}}{\end{li st}\vspace{2ex}\setcounter{ubg2}{\arabic{ubg}}}

%== Umgebung für Unteraufgaben der Übungen
\newcounter{ubg4}
\newenvironment{untauf}{\begin{list}{\alph{ubg4})} {\usecounter{ubg4}\setlength{\labelwidth}{0.5cm}\s etlength{\labelsep}{0.5cm}
}}{\end{list}\vspace{2ex}}


% Lösungsverzeichnis
%================================================= ===================================

%== Lösungen sind in den Befehl \lsgl{} einzuschliessen. Für jeden \lsgl{}-Befehl wird sogleich ein Eintrag ins Lösungsverzeichnis geschrieben. Das Lösungsverzeichnis trägt den Namen "Hauptfile"'.los (list of solutions). Das Lösungsverzeichnis wird an beliebiger Stelle im Dokument mit \listofsolutions erzeugt, analog zu \tableofcontents oder \listoffigures.
% Zuerst wird \lsgl definiert. Eintrag ins Lösungsverzeichnis in Abhängigkeit der Nummerierungstiefe
\makeatletter
\def\lsgl#1{ \ifabfrage{\lehrer}{ {\footnotesize {\textcolor{purple}{(#1)} } } }{}
\ifnum \@enumdepth=0
\addcontentsline{los}{solution}{%
\textbf{\arabic{ubg}}) #1}%
\else
\addcontentsline{los}{solution}{%
\textbf{\arabic{ubg}}\alph{enumi}) #1}%
\fi%
}


%== Nun wird der Befehl \listofsolutions definiert
\newcommand{\listofsolutions}{\newpage\twocolumn\c hapter{Lösungsverzeichnis}%
\@starttoc{los}}
\addtocontents{los}{\protect}

%== Hier kann das Lösungsverzeichnis formatiert werden
\newcommand\l@solution{\@dottedtocline{1}{0em}{2.3 em}}
\makeatother


% Schalter
%---------
% 1: erzeugt schuelerskript
% 0: erzeugt lehrerskript
\def\lehrer{1}



\begin{document}


\begin{uebung}

\item Bestimmen Sie die Anzahl Lösungen folgender Gleichungen:
\begin{untauf}
\item $x^2+x+1=0$ \lsgl{keine Lösungen}
\item $x^2+2x+1=0$ \lsgl{eine Lösung}
\item $x^2+3x+1=0$ \lsgl{zwei Lösungen}
\end{untauf}

\item Für welche Zahlen $k$ haben die Gleichungen keine Lösung, eine Lösung, bzw. zwei Lösungen?
\begin{tasks}(3)
\task $x^2-3x+k=0$ \lsgl{$>2.25$; 2.25; $<2.25$}
\task $kx^2+6x+1=0$ \lsgl{$<9$; 9; $>9$}
\task $x^2-x-k=0$ \lsgl{$<-\frac{1}{4}$; $-\frac{1}{4}$; $>-\frac{1}{4}$}
\task $y^2+ky+1=0$ \lsgl{$-2<k<2$; $k=\pm2$; $-2>k>2$}
\task $x^2+kx-2k^2=0$ \lsgl{$>0$; 0; $<0$}
\task $3k^2x^2+4kx+1=0$ \lsgl{$>0$; 0; $<0$}
\end{tasks}

\item Ein paar schwierigere Aufgaben.
\begin{tasks}(2)
\task $5z-3-2z(3z-4)=4$ \lsgl{$z_1=\frac{7}{6}$, $z_2=1$}
\task $\frac{1}{2}(x+1)^2=\frac{17}{8}-x$ \lsgl{$x_1=0.693$, $x_2=-4.693$}
\task $(x+1)(2x+3)=4x^2-22$ \lsgl{$x_1=5$, $x_2=-\frac{5}{2}$}
\task $(y-3)^2=2(y^2-9)$ \lsgl{$y_1=3$, $y_2=-9$}
\task $t(3t-7)-t+4=(t+2)^2$ \lsgl{$t_1=6$, $t_2=0$}
\task $(3x+5)^2-x(7x-5)=29x+45$ \lsgl{$x_1=2$, $x_2=-5$}
\task! $(3r-4)^2-4(4r-3)^2+(5r-2)(5r+2)=18(r+2)+3$ \lsgl{keine Lösung}
\task! $(1.4x+4)(1.4x-4)=(x-7)(x+3)+(x+2)(2x-3)$ \lsgl{$x_1=5$, $x_2=-2.115$}
\end{tasks}

\item Wie verändern sich die Lösungen der Gleichung $ax^2+bx+c=0$ , wenn
\begin{untauf}
\item $a$ halbiert und $c$ verdoppelt wird, \lsgl{Lösungen werden doppelt so gross}
\item $b$ verdoppelt und $a$ vervierfacht wird,\lsgl{Lösungen werden halb so gross}
\item $a$, $b$ und $c$ halbiert werden? \lsgl{Lösungen bleiben gleich gross}
\end{untauf}

\end{uebung}

Ein Unterbruch um die fortlaufende Nummerierung zu zeigen

\begin{uebung}

\item Wie verändern sich die Lösungen der Gleichung $ax^2+bx+c=0$ , wenn
\begin{untauf}
\item $a$ halbiert und $c$ verdoppelt wird, \lsgl{Lösungen werden doppelt so gross}
\item $b$ verdoppelt und $a$ vervierfacht wird,\lsgl{Lösungen werden halb so gross}
\item $a$, $b$ und $c$ halbiert werden? \lsgl{Lösungen bleiben gleich gross}
\end{untauf}

\end{uebung}

\listofsolutions

\end{document}

Ich hoffe, jetzt kann mir jemand helfen. Vielen Dank im Voraus.

Moadin

rais
08-07-2015, 22:18
\makeatletter
\def\lsgl#1{ \ifabfrage{\lehrer}{ {\footnotesize {\textcolor{purple}{(#1)} } } }{}
\ifnum \@enumdepth=0
\addcontentsline{los}{solution}{%
\textbf{\arabic{ubg}}) #1}%
\else
\addcontentsline{los}{solution}{%
\textbf{\arabic{ubg}}\alph{enumi}) #1}%
\fi%
}

Du vergleichst auf \@enumdepth, welche von Dir verwendete Umgebung sollte den verändern?
Vllt suchst Du \@listdepth?

Und wer oder was soll Dir den enumi-Zähler verändern? In Deinen Listen verwendest Du explizit eigens definierte Zähler...

MfG

Moadin
09-07-2015, 08:34
Ich habe ehrlich gesagt dieses Lösungsverzeichnis von einem Kollegen übernommen.
Ich habe das Lösungsverzeichnis nun so verändert, dass es kein \ifnum mehr enthält:

\makeatletter
\def\lsgl#1{ \ifabfrage{\lehrer}{ {\footnotesize {\textcolor{purple}{(#1)} } } }{}
\addcontentsline{los}{solution}{%
\textbf{\arabic{ubg}}\alph{enumi}) #1}%
}

und gleichzeitig die eine Unterumgebung verändert in

\newenvironment{untauf}
{\begin{enumerate}[label=\alph*)]}
{\end{enumerate}}

Funktioniert schon besser. Wie bekomme ich aber die Umgebung "uebung" ohne eigene Zähler hin, dass er automatisch durchnummeriert, auch wenn Unterbrechungen da sind?
Zudem erscheinen meine "task"-Items immer noch nicht im Verzeichnis.

Vielen Dank für weitere Hinweise, oder vielleicht habe ich den Hinweis von Dir, rais, nicht richtig verstanden.

rais
09-07-2015, 14:41
Wie bekomme ich aber die Umgebung "uebung" ohne eigene Zähler hin, dass er automatisch durchnummeriert, auch wenn Unterbrechungen da sind?

als enumerate-Umgebung? AFAIK bietet das enumitem-Paket, das Du ja lädst, eine resume-Option.


Zudem erscheinen meine "task"-Items immer noch nicht im Verzeichnis.

versuch es mal so:


\makeatletter
\def\lsgl#1{ \ifabfrage{\lehrer}{ {\footnotesize {\textcolor{purple}{(#1)} } } }{}%
\ifnum\@enumdepth<1
\SaveCounterPattern[tasks]{\tmpa}{\tmpb}{tsk}% siehe `texdoc cntformats_en'
\setcounter{enumi}{\tmpb}%
\fi
\addcontentsline{los}{solution}{%
\textbf{\arabic{ubg}}\alph{enumi}) #1}%
}

wobei, wenn Du Deine uebung-Umgebung auf enumerate umstellst, müsstest Du hier vermutlich alle enumi durch enumii ersetzen, den Test auf \@enumdepth<2 ändern und für ubg wohl enumi einsetzen.

MfG

Moadin
09-07-2015, 14:58
Wow, es klappt mit Deiner Änderung. Vielen Dank.

Ich werde nun auch noch versuchen die Umgebung uebung mit dem enumerate-Befehl zu machen. Das mit dem resume kenne ich natürlich. Habe ich auch in meiner Umgebung versucht anzuwenden, hat noch nicht geklappt. Werde es heute abend testen und mich wieder melden.

Vielen Dank nochmals!!

Moadin

Moadin
09-07-2015, 20:50
Ups, da habe ich mich wohl zu früh gefreut. Ich habe einen Fall herausgefunden, bei welchem diese Methode noch nicht klappt. Wahrscheinlich eine Kleinigkeit, aber ich sehe sie nicht.
Wenn nach den Unteraufgaben nun eine Aufgabe ohne Unteraufgaben folgt, dann übernimmt die normale Aufgabe die Unteraufgabennummerierung der letzten Aufgabe. Dieser Fall war im Minimalbeispiel nicht abgebildet, jetzt schon:


\documentclass[paper=a4]{scrreprt}

\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{enumitem}
\usepackage{tasks}
\DeclareInstance{tasks}{alphabetize}{default}{}
\settasks{
item-indent={2.1em}
%counter-format={tsk[a])}
}


% If abfrage zur steuerung der skriptversion falls erster parameter = 0, dann schreib #2 sonst #3
\def\ifabfrage#1#2#3{\def\test{#1}\ifnum\test=0#2\ else#3\fi}



%== Umgebung für Übungen
\newcounter{ubg}
\newcounter{ubg2}
\newenvironment{uebung}{\begin{list}{\bfseries{} \arabic{ubg}.}{\usecounter{ubg}\setcounter{ubg}{\a rabic{ubg2}}\setlength{\leftmargin}{2em}}}{\end{li st}\vspace{2ex}\setcounter{ubg2}{\arabic{ubg}}}



%== Umgebung für Unteraufgaben der Übungen
\newenvironment{untauf}
{\begin{enumerate}[label=\alph*)]}
{\end{enumerate}}

%================================================= ===================================

%== Lösungen sind in den Befehl \lsgl{} einzuschliessen. Für jeden \lsgl{}-Befehl wird sogleich ein Eintrag ins Lösungsverzeichnis geschrieben. Das Lösungsverzeichnis trägt den Namen "Hauptfile"'.los (list of solutions). Das Lösungsverzeichnis wird an beliebiger Stelle im Dokument mit \listofsolutions erzeugt, analog zu \tableofcontents oder \listoffigures.
% Zuerst wird \lsgl definiert. Eintrag ins Lösungsverzeichnis in Abhängigkeit der Nummerierungstiefe
\makeatletter
\def\lsgl#1{ \ifabfrage{\lehrer}{ {\footnotesize {\textcolor{purple}{(#1)} } } }{}%
\ifnum\@enumdepth<1
\SaveCounterPattern[tasks]{\tmpa}{\tmpb}{tsk}% siehe `texdoc cntformats_en'
\setcounter{enumi}{\tmpb}%
\fi
\addcontentsline{los}{solution}{%
\textbf{\arabic{ubg}}\alph{enumi}) #1}%
}


%== Nun wird der Befehl \listofsolutions definiert
\newcommand{\listofsolutions}{\newpage\twocolumn\c hapter{Lösungsverzeichnis}%
\@starttoc{los}}
\addtocontents{los}{\protect}

%== Hier kann das Lösungsverzeichnis formatiert werden
\newcommand\l@solution{\@dottedtocline{1}{0em}{2.3 em}}
\makeatother


% Schalter
%---------
% 1: erzeugt schuelerskript
% 0: erzeugt lehrerskript
\def\lehrer{1}



\begin{document}

\begin{uebung}

\item Nur eine einzelne Testaufgabe \lsgl{Test}

\item Bestimmen Sie die Anzahl Lösungen folgender Gleichungen:
\begin{untauf}
\item $x^2+x+1=0$ \lsgl{keine Lösungen}
\item $x^2+2x+1=0$ \lsgl{eine Lösung}
\item $x^2+3x+1=0$ \lsgl{zwei Lösungen}
\end{untauf}

\item Für welche Zahlen $k$ haben die Gleichungen keine Lösung, eine Lösung, bzw. zwei Lösungen?
\begin{tasks}(3)
\task $x^2-3x+k=0$ \lsgl{$>2.25$; 2.25; $<2.25$}
\task $kx^2+6x+1=0$ \lsgl{$<9$; 9; $>9$}
\task $x^2-x-k=0$ \lsgl{$<-\frac{1}{4}$; $-\frac{1}{4}$; $>-\frac{1}{4}$}
\task $y^2+ky+1=0$ \lsgl{$-2<k<2$; $k=\pm2$; $-2>k>2$}
\task $x^2+kx-2k^2=0$ \lsgl{$>0$; 0; $<0$}
\task $3k^2x^2+4kx+1=0$ \lsgl{$>0$; 0; $<0$}
\end{tasks}

\item Ein paar schwierigere Aufgaben.
\begin{tasks}(2)
\task $5z-3-2z(3z-4)=4$ \lsgl{$z_1=\frac{7}{6}$, $z_2=1$}
\task $\frac{1}{2}(x+1)^2=\frac{17}{8}-x$ \lsgl{$x_1=0.693$, $x_2=-4.693$}
\task $(x+1)(2x+3)=4x^2-22$ \lsgl{$x_1=5$, $x_2=-\frac{5}{2}$}
\task $(y-3)^2=2(y^2-9)$ \lsgl{$y_1=3$, $y_2=-9$}
\task $t(3t-7)-t+4=(t+2)^2$ \lsgl{$t_1=6$, $t_2=0$}
\task $(3x+5)^2-x(7x-5)=29x+45$ \lsgl{$x_1=2$, $x_2=-5$}
\task! $(3r-4)^2-4(4r-3)^2+(5r-2)(5r+2)=18(r+2)+3$ \lsgl{keine Lösung}
\task! $(1.4x+4)(1.4x-4)=(x-7)(x+3)+(x+2)(2x-3)$ \lsgl{$x_1=5$, $x_2=-2.115$}
\end{tasks}

\item Wie verändern sich die Lösungen der Gleichung $ax^2+bx+c=0$ , wenn \lsgl{Lösungen werden doppelt so gross}

\end{uebung}


Ein Unterbruch um die fortlaufende Nummerierung zu zeigen


\begin{uebung}

\item Wie verändern sich die Lösungen der Gleichung $ax^2+bx+c=0$ , wenn
\begin{untauf}
\item $a$ halbiert und $c$ verdoppelt wird, \lsgl{Lösungen werden doppelt so gross}
\item $b$ verdoppelt und $a$ vervierfacht wird,\lsgl{Lösungen werden halb so gross}
\item $a$, $b$ und $c$ halbiert werden? \lsgl{Lösungen bleiben gleich gross}
\end{untauf}

\end{uebung}


\listofsolutions

\end{document}

Ich sitze wahrlich auf dem Schlauch und wäre dankbar um einen Hinweis.

Liebe Grüsse

Moadin

rais
09-07-2015, 23:27
Wenn nach den Unteraufgaben nun eine Aufgabe ohne Unteraufgaben folgt, dann übernimmt die normale Aufgabe die Unteraufgabennummerierung der letzten Aufgabe. Dieser Fall war im Minimalbeispiel nicht abgebildet, jetzt schon:

es wäre ja einfacher, wenn Du nur eine Art der Unternummerierung verwenden würdest.
Wozu mischst Du `tasks' und `untauf' überhaupt?
Wäre es nicht konsequenter, nur eine dieser beiden Umgebungen zu verwenden?

Wie dem auch sei


\newcounter{altenumi}% um sich den alten Stand von enumi merken zu können
\makeatletter
\def\lsgl#1{ \ifabfrage{\lehrer}{ {\footnotesize {\textcolor{purple}{(#1)} } } }{}%
\ifnum\@enumdepth<1
\SaveCounterPattern[tasks]{\tmpa}{\tmpb}{tsk}% siehe `texdoc cntformats_en'
\setcounter{enumi}{\tmpb}% enumi auf tsk setzen
\ifnum\c@altenumi=\c@enumi % den gab es gerade schon mal
\setcounter{enumi}{0}% enumi löschen
\fi
\fi
\ifnum\c@enumi>0 % nur wenn enumi (noch) >0 ist
\setcounter{altenumi}{\c@enumi}% enumi für nächsten Durchlauf merken
\fi
\addcontentsline{los}{solution}{%
\textbf{\arabic{ubg}}\alph{enumi}) #1}%
}

könnte tun, was Du willst.;-)

MfG

Moadin
09-07-2015, 23:36
Hey Rais,

tut genau das, was es soll. Du scheinst ja voll der Profi zu sein. Vielen Dank.

Dein Hinweis bezüglich konsequenter Nutzung nur einer Umgebung ist berechtigt und ich versuche das umzusetzen. Verändert natürlich das Erstellen des Lösungsverzeichnis wieder. Ich fühle mich wie ein kleiner Junge, der von seinem Papi an der Hand genommen wird und ihm alles zeigt. Es hat mir da ein wenig zu viele @ drin, als dass ich das alleine herausfinden könnte.

Ich lande immer wieder bei dem und das funktioniert nicht richtig (verwende nur noch tasks und habe die Umgebung 'untauf' gestrichen):

\makeatletter
\def\lsgl#1{ \ifabfrage{\lehrer}{ {\footnotesize {\textcolor{purple}{(#1)} } } }{}%
\ifnum\@enumdepth=0
\addcontentsline{los}{solution}{%
\textbf{\arabic{ubg}}) #1}%
\else
\addcontentsline{los}{solution}{%
\textbf{\arabic{ubg}}\alph{tsk}) #1}%
\fi
}

liebe Grüsse

rais
10-07-2015, 01:07
Dein Hinweis bezüglich konsequenter Nutzung nur einer Umgebung ist berechtigt und ich versuche das umzusetzen. Verändert natürlich das Erstellen des Lösungsverzeichnis wieder.

Warum sollte sich das Erstellen des Lösungsverzeichnis dadurch ändern? Wenn es gerade mit `tasks' und `untauf' Ok war ... ?


Es hat mir da ein wenig zu viele @ drin, als dass ich das alleine herausfinden könnte.

Falls Du die \c@... meinst, die könntest Du vermutlich durch \value{...} ersetzen -- aber Du nutzt doch bereits \makeatletter?


Ich lande immer wieder bei dem und das funktioniert nicht richtig (verwende nur noch tasks und habe die Umgebung 'untauf' gestrichen):

\makeatletter
\def\lsgl#1{ \ifabfrage{\lehrer}{ {\footnotesize {\textcolor{purple}{(#1)} } } }{}%
\ifnum\@enumdepth=0
\addcontentsline{los}{solution}{%
\textbf{\arabic{ubg}}) #1}%
\else
\addcontentsline{los}{solution}{%
\textbf{\arabic{ubg}}\alph{tsk}) #1}%
\fi
}

auf `tsk' kannst Du nicht direkt zugreifen, dafür war der \SaveCounterPattern-Befehl drin. Da Du den Kommentar dazu ebenfalls eliminiert hast, siehe `texdoc cntformats_en'.
Davon abgesehen wirst Du damit wohl immer noch Probleme bekommen: Du baust den gerade zuvor von Dir monierten Umstand (was passiert bei einzelnem Aufgabenpunkt ohne tasks) wieder ein (zumindest sehe ich nicht, wie Du das abfangen willst).

MfG