\documentclass[paper=a5]{scrartcl}
\usepackage{tikz}
\usepackage{marginnote}
\usepackage{scrlayer-scrpage}
\usepackage{lipsum}
\newcounter{parnumber}
\newcommand\parnum[1][\theparnumber]{
\leavevmode
\refstepcounter{parnumber}
\marginnote{\theparnumber\label{pn:#1}}
}
\newcommand{\PageParnumList}{}
\let\PageParnumList=\empty
\makeatletter
\ifx\empty\PageParnumList{} \protected@xdef\PageParnumList{\theparnumber}
\else \protected@xdef\PageParnumList{\PageParnumList,\theparnumber}
\fi
\makeatother
\pgfmathtruncatemacro{\PageParnumMin}{min(\PageParnumList)}
\pgfmathtruncatemacro{\PageParnumMax}{max(\PageParnumList)}
\begin{document}
\parnum \theparnumber \lipsum[66]
\parnum \theparnumber \lipsum[66]
\lipsum[67]
\parnum \theparnumber \lipsum[66]
\section{pagerefs}
\pageref{pn:1},\pageref{pn:2},\pageref{pn:3}
\section{parnums auf Seite \thepage}
\PageParnumList,~
Minimum auf Seite \thepage: \PageParnumMin, Maximum auf Seite \thepage: \PageParnumMax
Das Ergebnis ist nicht verwunderlich: Du trägst nur in der Präambel die Ausgabe des zu dem Zeitpunkt aktuellen Wertes des Zählers
parnum
ein. Und der ist an der Stelle noch0
...Das wird nicht funktionieren, weil Makros im Gegensatz zu
\mark
nicht mit\shipout
synchronisiert sind. Das wird zu zufälligen »off by one« Problemen führen. Hier ein kleines Beispiel (ohne die überflüssige Liste): https://termbin.com/iom7Aufgrund des asynchronen Seitenumbruchs in TeX musst du bei sowas immer entweder über Marken oder wie bei label/ref über eine externe Datei und (mindestens) zwei Kompilationen gehen (für die zweite Methode empfehle ich zref).
Ja, das es so nicht mit der Liste funktioniert ist schon klar. Wenn es täte würde ich hier nicht fragen.
Was könnte ich denn noch machen?
Du könntest Ulrikes Kommentar lesen.
@Henri Was sagt mir dieser Kommentar? Von mir aus kann das auch 5mal kompilieren, wenn es dann tut. Oder soll ich jetzt versuchen zref zu verwenden?
Ja, also das Handbuch zref macht den Eindruck, dass es damit geht. Wie jetzt genau im Detail: da habe ich keine Ahnung...