Aufsummieren von Punkten

Fragen und Probleme, die nicht den obigen Kategorien zugeordnet werden können


Latex_User_2014
Forum-Newbie
Forum-Newbie
Beiträge: 8
Registriert: Di 17. Jun 2014, 15:58

Aufsummieren von Punkten

Beitrag von Latex_User_2014 »

Hallo User,

bin neu im Forum und stark am verzweifeln. Hat jemand eine Lösung für folgendes Problem:
% Mein Problem!
\documentclass[11pt,a4paper]{scrartcl}
\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{fp}
\setlength{\parindent}{0pt}
\usepackage{lastpage}

\FPset\Summe{0}
\newcommand{\Punkte}[1]{
	[Punkt(e)~#1~P]	
	\FPadd\Summe{\Summe}{#1}
	}

\begin{document}

Hier soll bereits die maximale Anzahl Punkte stehen!
Max. Punkte: \Summe

\Punkte{2.5}

\Punkte{10}

\Punkte{2}

Sie wird aber erst hier ausgegeben. Erscheint logisch unter der Betrachtung, dass die Aufsummierung schrittweise nach Aufruf erfolgt.

Max. Punkte: \Summe

Jedoch kann man sich mit dem package{lastpage} die Seitenzahl \pageref{LastPage} des Dokumentes vorab ausgeben lassen!

P.S. Und die Nullen nerven auch.

\end{document}
% Ende des Problems
Bin für jegliche Hilfe dankbar.

Euer Latex_User_2014

Benutzeravatar
Johannes_B
Moderator
Moderator
Beiträge: 5079
Registriert: Do 1. Nov 2012, 14:55
Kontaktdaten:

Beitrag von Johannes_B »

Möchtest du sowas wie Aufgabenblätter machen? Dann schau dir mal das Paket exsheets an.

LaTeX kann am Anfang noch gar nicht wissen, was am Ende passiert. Möchtest du Informationen von einem Lauf zum nächsten übertragen, dann musst du diese in eine Hilfsdatei schreiben. Das passiert ja auch bei Referenzen, Inhaltsverzeichnis ...
TeXwelt - Fragen und Antworten Schaut vorbei und stellt Fragen.
LaTeX-Vorlagen?

Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.

rais
Forum-Guru
Forum-Guru
Beiträge: 413
Registriert: Di 21. Sep 2010, 00:37

Beitrag von rais »

hier ein Vorschlag, wie die Summe über die .aux-Datei gesetzt werden kann
\documentclass[11pt,a4paper]{scrartcl}
\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{fp}
\usepackage{siunitx}
\usepackage{lastpage}

\FPset\Summe{0}
\newcommand{\Punkte}[1]{
   [Punkt(e)~#1~P]  
   \FPadd\Summe{\Summe}{#1}
   }
\makeatletter
\AtEndDocument{%
  \immediate\write\@auxout{\string\gdef\string\Summenwert{\FPprint\Summe}}}
\makeatother
\ifx\Summenwert\undefined
  \def\Summenwert{0.0}
\fi
\newcommand*\dieSumme{%
  \num[round-mode=places, round-precision=1]{\Summenwert}%
}
\begin{document}

Hier soll bereits die maximale Anzahl Punkte stehen!
Max. Punkte: \dieSumme

\Punkte{2.5}

\Punkte{10}

\Punkte{2}

Sie wird aber erst hier ausgegeben. Erscheint logisch unter der Betrachtung, dass die Aufsummierung schrittweise nach Aufruf erfolgt.

Max. Punkte: \Summe

Jedoch kann man sich mit dem package{lastpage} die Seitenzahl \pageref{LastPage} des Dokumentes vorab ausgeben lassen!

P.S. Und die Nullen nerven auch.

\end{document}
Da die Summe über die .aux-Datei geschrieben/wieder eingelesen wird, muss mindestens zwei mal kompiliert werden.

PS) um die Nullen kümmert sich hier \num aus dem siunitx-Paket.;-)

MfG
Rainer
One of the joys of travel is visiting new towns and meeting new people---G.Khan (Robert Asprin, Another Fine Myth)

Latex_User_2014
Forum-Newbie
Forum-Newbie
Beiträge: 8
Registriert: Di 17. Jun 2014, 15:58

Beitrag von Latex_User_2014 »

Hallo Rainer,

vielen Dank. Es funktioniert prima.

Vor allem die Benutzung der .aux-Datei hätte ich mir noch komplizierter vorgestellt. Aber ob ich da von allein drauf gekommen wäre!?!?

MfG

Latex_User_2014

Latex_User_2014
Forum-Newbie
Forum-Newbie
Beiträge: 8
Registriert: Di 17. Jun 2014, 15:58

Beitrag von Latex_User_2014 »

Hallo Rainer und alle anderen Interessenten,

habe doch noch ein Problem entdeckt.

Wenn ich mit /input weitere *.tex-Dateien einlade und da wiederum die Punkte haben möchte, funktioniert es nicht. Nichstdestotrotz werde ich das Paket exsheets nochmal ausprobieren.

Vielleicht finde ich eine Lösung!?!?!?

Euer Latex_User_2014

Latex_User_2014
Forum-Newbie
Forum-Newbie
Beiträge: 8
Registriert: Di 17. Jun 2014, 15:58

Beitrag von Latex_User_2014 »

Hallo User,

vorläufige Anmerkungen:

Bei exsheets kann ich die Tabelle der Punkte nicht vorab ausgeben lassen.

Habe das Problem, der Einbindung externen *.tex-Dateien lokalisiert!
\documentclass[11pt,a4paper]{scrartcl}
\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{fp}
\usepackage{siunitx}
\usepackage{lastpage}

\FPset\Summe{0}
\newcommand{\Punkte}[1]{
   [Punkt(e)~#1~P]  
   \FPadd\Summe{\Summe}{#1}
   }
\makeatletter
\AtEndDocument{%
  \immediate\write\@auxout{\string\gdef\string\Summenwert{\FPprint\Summe}}}
\makeatother
\ifx\Summenwert\undefined
  \def\Summenwert{0.0}
\fi
\newcommand*\dieSumme{%
  \num[round-mode=places, round-precision=1]{\Summenwert}%
}
\begin{document}

Hier soll bereits die maximale Anzahl Punkte stehen!
Max. Punkte: \dieSumme

\begin{tabular}{|l|c|}
		\hline
		Max. Punkte & \dieSumme \\
		\hline
		Punkte & \\
		\hline
		\end{tabular}

\section{Neuer Abschnitt. \Punkte{2.5}}

\Punkte{2.5}

\Punkte{10}

\Punkte{2}

Sie wird aber erst hier ausgegeben. Erscheint logisch unter der Betrachtung, dass die Aufsummierung schrittweise nach Aufruf erfolgt.

Max. Punkte: \Summe

Jedoch kann man sich mit dem package{lastpage} die Seitenzahl \pageref{LastPage} des Dokumentes vorab ausgeben lassen!

P.S. Und die Nullen nerven auch.

\end{document} 
Kann es folglich nicht in /section benutzen, wo ich es aber brauche.

Jemand eine Idee?

Danke für alle Antworten.

Euer Latex_User_2014

Benutzeravatar
Johannes_B
Moderator
Moderator
Beiträge: 5079
Registriert: Do 1. Nov 2012, 14:55
Kontaktdaten:

Beitrag von Johannes_B »

Naja, also irgendwie ...
Clemens hat sich bei dem Paket schon was gedacht ;-)
\documentclass{article}
\usepackage{exsheets}
\begin{document}
\begin{tabular}{|l|c|}
	\hline
	Max. Punkte & \totalpoints \\
	\hline
	Punkte & \\
	\hline
\end{tabular}

Insgesamt \totalpoints

\begin{question}{3}
	Welcher Tag ist heute?
\end{question}
\begin{question}{1}
	Wie spät ist es?
\end{question}
\begin{question}{17}
	Wie heißen Sie?
\end{question}
\end{document}
TeXwelt - Fragen und Antworten Schaut vorbei und stellt Fragen.
LaTeX-Vorlagen?

Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.

Latex_User_2014
Forum-Newbie
Forum-Newbie
Beiträge: 8
Registriert: Di 17. Jun 2014, 15:58

Beitrag von Latex_User_2014 »

Hallo Johannes_B,

danke für die Hilfe. Aber woran lag es nun? Ich werde es mal erneut ausprobieren.

Und ich habe noch ein anderes Problem generiert:
\documentclass[11pt,a4paper]{scrartcl}
\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{fp}
\usepackage{siunitx}
\usepackage{lastpage}

\FPset\Summe{0}

\newcommand{\Frage}[1]{\textbf{#1}}
\newcommand{\Punkte}[1]{
   (Punkt(e)~#1~P)
   \FPadd\Summe{\Summe}{#1}
   }
\makeatletter
\AtEndDocument{%
  \immediate\write\@auxout{\string\gdef\string\Summenwert{\FPprint\Summe}}}
\makeatother
\ifx\Summenwert\undefined
  \def\Summenwert{0.0}
\fi
\newcommand*\dieSumme{%
  \num[round-mode=places, round-precision=1]{\Summenwert}%
}
\begin{document}

Hier stimmt die maximale Anzahl der Punkte nicht!
Max. Punkte: \dieSumme

%\section{Alter Abschnitt}

\Frage{Hier gibt es die ersten Punkte und zwar: \Punkte{1.5}}

\Punkte{1.5}

\end{document} 
Habe auch schon ##1 für \Punkte ausprobiert, nach
http://www.tex.ac.uk/cgi-bin/texfaq2html?label=ltxhash!
\documentclass[11pt,a4paper]{scrartcl}
\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{fp}
\usepackage{siunitx}
\usepackage{lastpage}

\FPset\Summe{0}

\newcommand{\Frage}[1]{\textbf{#1}
\newcommand{\Punkte}[1]{
   (Punkt(e)~##1~P)
   \FPadd\Summe{\Summe}{##1}
   }}
\makeatletter
\AtEndDocument{%
  \immediate\write\@auxout{\string\gdef\string\Summenwert{\FPprint\Summe}}}
\makeatother
\ifx\Summenwert\undefined
  \def\Summenwert{0.0}
\fi
\newcommand*\dieSumme{%
  \num[round-mode=places, round-precision=1]{\Summenwert}%
}
\begin{document}

Hier stimmt die maximale Anzahl der Punkte nicht!
Max. Punkte: \dieSumme

%\section{Alter Abschnitt}

\Frage{Hier gibt es die ersten Punkte und zwar: \Punkte{1.5}}

\end{document} 
Wohl gemerkt ohne Erfolg!

Vielen Dank für eure Geduld!

Benutzeravatar
Johannes_B
Moderator
Moderator
Beiträge: 5079
Registriert: Do 1. Nov 2012, 14:55
Kontaktdaten:

Beitrag von Johannes_B »

Workaround:
\newcommand{\Frage}[1]{\bfseries #1\par\normalfont}
Aber versuch nicht das Rad neu zu erfinden. Lies dich mal in exsheets ein. Es gibt massenhaft Optionen, und wenn du ein Feature-Request hast, dann kümmert sich Clemens bestimmt gern darum.
TeXwelt - Fragen und Antworten Schaut vorbei und stellt Fragen.
LaTeX-Vorlagen?

Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.

Latex_User_2014
Forum-Newbie
Forum-Newbie
Beiträge: 8
Registriert: Di 17. Jun 2014, 15:58

Beitrag von Latex_User_2014 »

Hallo Forum und Co.,

habe eine halbfertige Lösung zum präsentieren:
\documentclass[11pt,a4paper]{scrartcl}
\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{fp}
\usepackage{siunitx}
\usepackage{lastpage}

\FPset\Summe{0}
\newcounter{t1}

\newcommand{\Frage}[2]{
	\stepcounter{t1}
	\textbf{\arabic{t1}. #1
	(Punkt(e)~#2~P)}
	\FPadd\Summe{\Summe}{#2}
	}
\makeatletter
\AtEndDocument{%
  \immediate\write\@auxout{\string\gdef\string\Summenwert{\FPprint\Summe}}}
\makeatother
\ifx\Summenwert\undefined
  \def\Summenwert{0.0}
\fi
\newcommand*\dieSumme{%
  \num[round-mode=places, round-precision=1]{\Summenwert}%
}
\begin{document}

Jetzt stimmt die maximale Anzahl der Punkte!
Max. Punkte: \dieSumme


\Frage{Hier gibt es die ersten Punkte und zwar:}{1.5}

\Frage{Nun kommen noch Punkte hinzu.}{2.5}

\end{document}
Jetzt muss ich nur noch Kategorien einfügen und abfragen nach folgendem Schema:
\Frage{Beantworten Sie die Frage?}{A}{1.5}
\Frage{Beantworten Sie die Frage?}{A}{2.5}
\Frage{Beantworten Sie die Frage?}{B}{0.5}
\Frage{Beantworten Sie die Frage?}{C}{3}
Die Zeit läuft tick, tick, tick...

Euer Latex_User_2014

Antworten