Marginnote bündig zur Fusszeile

Redefinition von Makros, Definition eigener Befehle sowie neuer Umgebungen


brisi
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Di 7. Nov 2017, 09:40

Marginnote bündig zur Fusszeile

Beitrag von brisi »

Geschätzte Expertinnen & Experten,

ich bin auf der Suche nach zwei Lösungen:
  • (1) Ich würde gerne auf jeder Seite der Prüfung die gesamte Punktzahl der Seite auf gleicher Höhe wie die Fusszeile anzeigen. Zurzeit muss ich das immer mit ausprobieren von unterschiedlichen Längenangaben ausprobieren.
    (2) Weiter wäre es super, wenn ich zum einen die Gesamtpunktzahl der Seite sowie die Gesamtpunktzahl der Gesamtprüfung über einen Befehl abrufen könnte. Gibt es dazu eine Umgebung/Package?
Mein Beispiel:

Code: Alles auswählen

\documentclass[11pt,pagesize, DIV=11]{scrartcl}

\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}
\usepackage{marginnote}


%%%%%%%%%%% Kopf-und Fusszeile %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{scrpage2}
\pagestyle{scrheadings}%             SCRPAGE2 Style aktivieren
\setheadsepline{.4pt}
\setfootsepline{.4pt}
\clearscrheadfoot
\cfoot{}
\refoot{\pagemark}
\rofoot{\pagemark}
\lehead{Pr\"ufungsaufgaben Biologie}
\lohead{Pr\"ufungsaufgaben Biologie}
\lefoot{Institut}
\lofoot{Institut}
\rehead{Test}
\rohead{Test} 
\addtolength{\headsep}{\baselineskip}

\newcounter{ale}

\newcommand{\abc}{\item[(\alph{ale})]\stepcounter{ale}}
\newenvironment{liste}{\begin{itemize}}{\end{itemize}}
\newcommand{\aliste}{\begin{liste} \setcounter{ale}{1}}
\newcommand{\zliste}{\end{liste}}

\newenvironment{abcliste}{\aliste}{\zliste}

\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\sffamily\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}{0em plus 1fil}% letzte Zeile bis auf 2em voll
    \@tempcnta=0\relax
    \@whilenum \@tempcnta<#1\relax\do{%
      \rule{0pt}{20pt}% 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.

\newcommand{\Pt}[1]{\marginpar{\fbox{\textbf{#1\,Pt.}}}}
\makeatother


%%%%%%%%%%%% Inhalt %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}



\begin{center}
\Large\textbf{Titel}\\[2ex]
\end{center}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Grundlagen}
\subsection{Fachbegriffe}
\marginnote{\fbox{\bfseries\dots/5.0}}[20cm]\noindent

\Aufgabe[3.0]{Erkl{\"a}ren Sie kurz und pr{\"a}gnant die Bedeutung folgender Begriffe:}\\
(1.0\,Punkt pro korrekt erkl\"arter Begriff.)

\Aufgabe[2.0]{Frage zwei mit zwei Punkten.}


\end{document}

Vielen herzlichen Dank für Eure Hilfe!!
Thomas[/b][/list][/list]

Gast

Beitrag von Gast »

Ganz generell sei darauf hingewiesen, dass scrpage2 seit einigen Jahren veraltet ist und durch scrlayer-scrpage ersetzt werden sollte. Wenn deine LaTeX-Installation halbwegs aktuell ist, gibt das Paket sogar eine entsprechende Warnung aus.

Außerdem sei darauf hingewiesen, dass es für Aufgabenblätter fertige Pakete wie xsim gibt.

Wenn du die Punkte im Fuß haben willst, würde ich sie an deiner Stelle einfach auch in die Fußdefinition einfügen. Also beispielsweise:

Code: Alles auswählen

\ofoot{\pagemark\makebox[0pt][l]{\hspace{\marginparsep}\GesamtPunkte}}
\newcommand{\GesamtPunkte}{Erreichbar: 10 Pt}
An die Punkte auf dieser Seite heran zu kommen dürfte etwas tricky werden, weil LaTeX einen asynchronen Umbruch hat und überhaupt zu entscheiden wäre, wie mit Punkten von Aufgaben zu verfahren ist, die teilweise auf der einen und teilweise auf der anderen Seite stehen.

Achja: 11pt und pagesize sind Voreinstellung. Für Trennlinien in Kopf und Fuß sollte man die Optionen headsepline und footsepline verwenden. Die Dicken 0,4pt sind dabei dann die Voreinstellung.

Außerdem ist dein Beispiel nicht vollständig oder nicht minimal. Denn entweder fehlt die Definition von \opt und die Verwendung von \AufgabenLinien oder das Patchen von \opt und die Definition von \AufgabenLinien ist überflüssig (und lenkt dann in erster Linie vom Problem ab).

brisi
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Di 7. Nov 2017, 09:40

Beitrag von brisi »

Vielen herzlichen Dank für die Hinweise! Ich habe gleich meine Vorlagen überarbeitet.

Ich schau mir das Packet xsim mal an.

Antworten