newenvironment mit countern

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: newenvironment mit countern

von LillyLa » Di 24. Mai 2016, 12:35

Habe den Punkt gefunden, der gefhelt hat :) Danke :)

von esdd » Di 24. Mai 2016, 11:54

LillyLa hat geschrieben: Und wieso schreibt Latex den ersten Buchstaben des ersten Wortes nach der Teilaufgabe nicht?
Das habe ich eigentlich oben erklärt??

Eine kurze Erklärung wie \newenvironment zu verwenden ist, findest Du in der LaTeX Referenz von Herbert Voß, die Du unter www.lehmanns.de/page/latexreferenz herunterladen oder bestellen kannst. Falls das nicht reicht, dann schau mal unter Wo finde ich gute Materialien um TeX/LaTeX/ConTeXt zu lernen?.

von LillyLa » Di 24. Mai 2016, 09:21

Dankeschön für den Hinweis mit der Präambel. :)

Wie erstelle ich denn so ein Argument? also ein optionales und ein festes?
Und wieso schreibt Latex den ersten Buchstaben des ersten Wortes nach der Teilaufgabe nicht?

von esdd » Mo 23. Mai 2016, 22:19

LillyLa hat geschrieben: Ich habe prinzipiell das Erstellen der kursiv geschriebenen Teilaufgabe hinbekommen. Nur beim folgenden "normalen" Text verschluckt Latex jetzt immer den ersten Buchstaben. Woran liegt das?
Bei der Definition der teilaufgabe Umgebung gibst Du an, dass die Umgebung ein obligatorisches Argument hat. Bei Deiner Anwendung der Umgebung gibst Du dann aber keines an, weshalb das erste Zeichen als solches angesehen wird. In der Definition der Umgebung wird das obligatorische Argument aber gar nicht verwendet. Also wird dieses erste Zeichen auch nirgendwo ausgegeben.

LillyLa hat geschrieben:
%Counter Teilaufgabe
\newcounter{teilaufgabe}[section] 
\renewcommand*\theteilaufgabe{\thesection.\arabic{aufgabe}\roman{teilaufgabe}}
Ich glaube nicht, dass Du den Zähler teilaufgabe so definieren willst. Wann soll dieser Zähler zurück gesetzt werden bzw. wann soll die Zählung der Teilaufgaben neu beginnen?

Innerhalb der Definition von \theteilaufgabe fehlt außerdem ein Punkt.

Beachte bitte, dass die Definition von Zählern, Befehlen und Umgebungen in aller Regel in die Präambel gehört.

von LillyLa » Mo 23. Mai 2016, 22:02

Wow super dankeschön :)

Das hat mir sehr weitergeholfen...Ich muss nun in diese Aufgabe noch Teilaufgaben reinbekommen (auch durch eine neue Umgebung) und habe schon mal weiterprobiert und deinen Teil entsprechend erweitert.
Dabei gibt es folgende Vorgabe:
Am Beginn soll kursiv Teilaufgabe xx.yy.zz (w P.): stehen, wobei xx die Nummer der aktuellen Section, yy die Nummer der aktuellen Aufgabe innerhalb der Section und zz die Nummer der Teilaufgabe innerhalb der aktuellen Aufgabe sein soll. zz soll in kleinen römischen Ziffern angegeben sein (z.B. iii für 3). w ist die Anzahl er Punkte für diese Teilaufgabe und soll als verpflichtender Parameter übergeben werden. Anschließend (nach dem Doppelpunkt) soll der eigentliche Inhalt der Teilaufgabe auf der gleichen (!) Zeile (und nicht mehr kursiv) fortgesetzt werden. Am Ende der Teilaufgabe soll am Zeilenende ein (fett gesetztes) Zeichen (oder auch mehrere) stehen, welches beim Aufrufen der Umgebung als optionales Argument
eingegeben werden kann. Wird es nicht angegeben, so soll (ebenso fett) das
Ausrufezeichen dort erscheinen.

Ich habe prinzipiell das Erstellen der kursiv geschriebenen Teilaufgabe hinbekommen. Nur beim folgenden "normalen" Text verschluckt Latex jetzt immer den ersten Buchstaben. Woran liegt das?

Zudem verstehe ich noch nicht, wie es mit der Punktezahl gemeint ist und dem optinalen fetten Argument. Verstehst du bzw. wer anders das? :?

Also es soll dann wiefolgt aussehen:
\begin{Aufgabe}{Thema 1}
\begin{Teilaufg}[?]{4}
Hier ist der Text.
\end{Teilaufg}
\begin{Teilaufg}{3}
Hier ist der Text.
\end{Teilaufg}
\end{Aufgabe}

Wenn ich es richtig verstehe ist das Zeichen in den [] das optionale Argument und in den {} die Punktzahl. Aber wie bekommt man das in der Umgebung hin zu definieren?

Vielen lieben Dank schon mal im Voraus. :)
%Präambel wie gehabt

\begin{document}


%Counter der Section
\newcounter{aufgabe}[section] 
\renewcommand*\theaufgabe{\thesection.\arabic{aufgabe}} 
%Umgebung Aufgabe
\newenvironment{Aufgabe}[1] 
  { 
    \par 
    \textbf{Aufgabe \refstepcounter{aufgabe} \theaufgabe\enskip(#1)} 
    \par 
  } 
 {\par\hfill Gesamtpunktzahl bei Aufgabe \theaufgabe: ...P.} 
 
%Counter Teilaufgabe
\newcounter{teilaufgabe}[section] 
\renewcommand*\theteilaufgabe{\thesection.\arabic{aufgabe}\roman{teilaufgabe}} 
%Umgebung Teilaufgabe
\newenvironment{Teilaufgabe}[1] 
  { 
    \par 
    \textit{Teilaufgabe \refstepcounter{teilaufgabe} \theteilaufgabe ...P.:} 
  } 
 {}

%Beispieltext 
\section{Beispiel} 
 \begin{Aufgabe}{Thema 1} 
   Text 
 \end{Aufgabe}
 \begin{Aufgabe}{Thema 2} 
   Text 
 \end{Aufgabe} 

 \section{Beispiel} 
 \begin{Aufgabe}{Thema 1} 
 Dieses ist die Hauptaufgabe, für die es eine Gesamtpunktzahl gibt. Im weiteren ist diese Aufgabe in zwei Teilaufgaben unterteilt. Die Summe der Punktzahlen der einzelnen Teilaufgaben ergibt die Gesamtpunktzahl
  \begin{Teilaufgabe}
  Dieses ist die erste spannende Teilaufgabe. Hierfür soll es im folgenden vier   Punkte geben.
  \end{Teilaufgabe}
  \begin{Teilaufgabe}
  Dieses ist die zweite verrückte Teilaufgabe. Hierfür soll es im folgenden drei Punkte geben.  
  \end{Teilaufgabe}
 \end{Aufgabe}


\end{document}

von esdd » Mo 23. Mai 2016, 21:14

Du kannst mit
\newcounter{aufgabe}[section] 
einen Zähler aufgabe erstellen. Der wird bei jedem neuen Abschnitt (section) wieder zurückgesetzt, d.h. in einem neuen Abschnitt beginnt die Zählung der Aufgaben wieder bei 1.

Wenn in der Aufgabennummer die Abschnittsnummer mit angegeben werden soll, musst Du die Ausgabe des Aufgabenzählers, also \thesection entsprechend formatieren:
\renewcommand*\theaufgabe{\thesection.\arabic{aufgabe}.}
Dabei ist die \theaufgabe die formatierte Ausgabe der Abschnittsnummer. Der section Zähler wird bereits von der Klasse definiert.

Wenn die Aufgabe einschließlich Thema in einer eigenen Zeile stehen sollen, dann füge \par Befehle ein.

Auf das Paket inputenc mit Angabe der Kodierung der Dateien lässt sich schlecht verzichten, sonst wird die Eingabe der Umlaute aufwändig.

\documentclass[12pt,a4paper,parskip=half-]{scrartcl} 
 \usepackage[ngerman]{babel} 
 \usepackage[T1]{fontenc} 
 \usepackage[utf8]{inputenc}% muss mit Kodierung der Datei übereinstimmen

 \newcounter{aufgabe}[section] 
 \renewcommand*\theaufgabe{\thesection.\arabic{aufgabe}.}

 \newenvironment{Aufgabe}[1] 
  {%
    \par
    \textbf{Aufgabe \refstepcounter{aufgabe} \theaufgabe\enskip(#1)}
    \par
  } 
 {\par\hfill Gesamtpunktzahl bei Aufgabe \theaufgabe: ...} 

 \begin{document} 
 \section{Beispiel} 
 \begin{Aufgabe}{Thema 1} 
   Text
 \end{Aufgabe} 
  \begin{Aufgabe}{Thema 2} 
   Text
 \end{Aufgabe}

 \section{Beispiel} 
 \begin{Aufgabe}{Thema 1} 
  Text
 \end{Aufgabe} 
 \end{document} 

von LillyLa » Mo 23. Mai 2016, 20:22

Leider ist dies eine Vorgabe.

Also es soll hinterher so aussehen:
Aufgabe 1.1 (Thema 1)
Teilaufgabe 1.1.i (4 P.):
Teilaufgabe 1.1.ii (3 P.):

Gesamtpunktzahl bei Aufgabe 1.1: 7 P.

Und noch eine Aufgabe:
Aufgabe 1.2 (Thema 2)
Teilaufgabe 1.2.i (5 P.):

Leider bekomme ich den zweiten zähler nicht hin, also das 1.2 und das er automatisch die Themen entsprechend hochzählt.

\documentclass[12pt,a4paper]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\setlength{\parindent}{0mm}
\usepackage{booktabs}
\usepackage{tabularx}
\usepackage{dcolumn}


%----------------------------------------------------------------------
\begin{document}


%Aufgabe 3
%Counter der Section
\newcounter{sec}[section]
\renewcommand*\thesec{\arabic{sec}.}

%Counter dahinter
\newcounter{thema}[section]
%%%%%%%%%%%
\newenvironment{Aufgabe}
{\, \hfill \newline
\textbf{Aufgabe \stepcounter{sec} \thesec} }
{%ende
}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Beispiel}
\begin{Aufgabe}{Thema 1}
dsfefe
\end{Aufgabe}

\section{Beispiel}
\begin{Aufgabe}{Thema 1}
dsfefe
\end{Aufgabe}

\end{document}

von esdd » Mo 23. Mai 2016, 19:20

Kannst Du bitte ein richtiges Minimalbeispiel erstellen? Es sollte möglichst klein, aber lauffähig sein und Dein Problem zeigen - also das Nicht-Weiterzählen des Zählers.

Off topic: Warum dürfen keine weiteren Pakete geladen werden?

von LillyLa » Mo 23. Mai 2016, 16:37

stimmt....ist versehentlich doppelt. Danke für den Hinweis. :)
Weißt du auch eine Lösung für mein eigentliches Problem?
Insbesondere bei den countern weiß ich nicht, wie man diese definiert, da sie einfach nicht weiterzählen.... und ich brauche doch auf mehrere auch für die Teilaufgaben

von Bartman » Mo 23. Mai 2016, 16:19

Du änderst \parindent zweimal mit dem gleichen Wert in Deiner Präambel. Stattdessen solltest Du lieber die Klassenoption parskip verwenden. Dann brauchst Du für mögliche Absätze kein \\ aufzurufen, sondern setzt eine Leerzeile im Quelltext.

Nach oben