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
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 ...
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)
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.
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.
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}
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}
\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}
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.
\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}