Ziel: Von-bis-Bereich der Paragraphennummern im den Kopf ergänzen: Da das mit dem Mark-Mechanismus unzuverlässigf funktionert hatte ich mir überlegt: Das müsste doch irgendwie so gehen: % PageParnumList erstellen \newcommand{\PageParnumList}{}% Name reservieren \let\PageParnumList=\empty% Liste erstellen \makeatletter \ifx\empty\PageParnumList{} \protected@xdef\PageParnumList{\theparnumber}% \else \protected@xdef\PageParnumList{\PageParnumList,\theparnumber}% \fi \makeatother tut es aber nicht. Was muss ich anders machen? \documentclass[paper=a5]{scrartcl} \usepackage{tikz} \usepackage{marginnote} \usepackage{scrlayer-scrpage} \usepackage{lipsum} % Paragraph numbers \newcounter{parnumber} \newcommand\parnum[1][\theparnumber]{% \leavevmode% \refstepcounter{parnumber}% \marginnote{\theparnumber\label{pn:#1}}% } % PageParnumList erstellen \newcommand{\PageParnumList}{}% Name reservieren \let\PageParnumList=\empty% Liste erstellen \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 % Input in head: \chead*{\PageParnumMin--\PageParnumMax} \end{document} gefragt 15 Jun '19, 22:01 cis
Ergebnis 5 von 7
show 2 more comments
|
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...