Wie druckt man bei Verwendung von reledmac Versnummern in der Kopfzeile, nicht Zeilennummern?

Wie druckt man bei Verwendung von reledmac Versnummern in der Kopfzeile, nicht Zeilennummern?

Ich setze einen Bibeltext und möchte die Anzahl der Verse auf jeder Seite in der Kopfzeile drucken. Ich konnte dies reproduzierenDasin einem normalen Text. Allerdings habe ich Probleme, wenn ich es in der Nummerierungsumgebung von reledmac verwende, da zusätzlicher vertikaler Abstand entsteht (siehe den zweiten Absatz unten, Verse 5-8). Beachten Sie, dass es außerhalb dieser Umgebung problemlos funktioniert.

Bildbeschreibung hier eingeben

Hier ist das minimal funktionierende Beispiel:

\documentclass{memoir}

\usepackage{reledmac}

%% Page style for READER SECTION %%
\makepagestyle{myps}
%\makepsmarks{myps}{}

% Headers
\makeevenhead{myps}{\firstmarks1:\botmarks1}{\leftmark}{\thepage}
\makeoddhead{myps}{\thepage}{\leftmark}{\firstmarks1-\botmarks1}
\markboth{Chapter 1}{Chapter 1}


% Set verse counter (for printing in header)
\newcounter{verseno}
\newcommand{\vnum}{\refstepcounter{verseno}%
    \textbf{\theverseno}. %
    \marks1{\theverseno}}


\begin{document}

    \pagestyle{myps}
    
    \vnum Lorem ipsum dolor sit amet, consectetur adipiscing elit. \vnum  Etiam in semper dolor, ut imperdiet lectus. \vnum  Praesent ut consequat enim, et pretium ligula. \vnum  Sed aliquam purus neque, nec laoreet arcu porta non. Nullam ut finibus lacus. Duis sit amet magna a\linenumannotation{23} metus bibendum vehicula.  Aliquam mollis facilisis tellus quis semper. Curabitur at mi tempus, fringilla odio aliquam, ultrices tellus. Quisque finibus varius dolor at dapibus. Sed vel justo eu odio mollis finibus vel eu nisl.\\
    
    
    %% START NUMBERED LINES %%
    \beginnumbering
    \pstart
    
    \vnum Lorem ipsum dolor sit amet, consectetur adipiscing elit. \vnum  Etiam in semper dolor, ut imperdiet lectus. \vnum  Praesent ut consequat enim, et pretium ligula. \vnum  Sed aliquam purus neque, nec laoreet arcu porta non. Nullam ut finibus lacus. Duis sit amet magna a metus bibendum vehicula.  Aliquam mollis facilisis tellus quis semper. Curabitur at mi tempus, fringilla odio aliquam, ultrices tellus. Quisque finibus varius dolor at dapibus. Sed vel justo eu odio mollis finibus vel eu nisl.
    
    %% END NUMBERED LINES %%
    \pend
    \endnumbering
    
\end{document}

Gibt es eine Möglichkeit, dieses Problem zu umgehen?

*** BEARBEITEN ***

Ich habe herausgefunden, dass das Problem mit dem Befehl zusammenhängt \marks1{\theverseno}, offenbar weil reledmac Markierungen anders verwendet.

Ich habe eine Lösung versucht, indem ich das atbegshi-Paket verwendet habe, um einen Zähler am Anfang jeder Seite (erster Vers im Bereich) zu aktualisieren und den Verseno-Zähler für den letzten Vers im Bereich verwendet habe. Ich bin jedoch auf ein weiteres Problem gestoßen, da es bei reledmac \AtBeginShipoutanscheinend für jeden Absatz als Block und nicht für jede Seite angewendet wird.

Antwort1

Wie @Maïeul, der Betreuer von reledmac,erklärt, wegen der besonderen Struktur der nummerierten Absätze sollten Sie

Verwenden Sie es \doinsidethislinehook, um einen sensiblen Befehl wie einzuschließen \marking.

Insbesondere verweist Maïeul auf eine (sorgfältig erstellte und sehr nützliche) Beispieldatei, die in der reledmacDistribution enthalten ist:Unterteilungsnummer in der Kopfzeile. Dieses Dokument deckt im Wesentlichen Ihre Anforderungen ab; hier habe ich eine konkrete Lösung basierend auf Ihrem MWE geschrieben.

Variante 1: Manuelle Schaltung

Ich habe Maïeuls Befehl \autoversenumberan Ihre Stilanforderungen angepasst: Er baut auf Ihrem Zähler auf versenound setzt die Zahlen entsprechend. Das bedeutet, dass die Nummerierung fortlaufend bleibt, wenn Sie zwischen ihm und wechseln \vnum.

\newcommand{\autoversenumber}{%
  \refstepcounter{verseno}%Add 1 to the counter
  \edef\tmp{\noexpand\marks1{\theverseno}}%\tmp will be expanded to \markboth{<verse-value>}{<verse-value}>
  \expandafter\doinsidethislinehook\expandafter{\tmp}%First, we expand \tmp to  the value, and then, pass the result as argument to \doinsidelinehook
  \textbf{\theverseno}.\space%Typeset the verse counter value in bold, followed by a dot and then a space.
}

Beachten Sie, dass dieser Befehl nur innerhalb von nummeriertem Text funktioniert und umgekehrt für Ihren \vnum. Sie müssen also den entsprechenden Befehl je nach Kontext auswählen.

Das Ergebnis bei Anwendung auf Ihr MWE

Variante 2: Agnostischer Befehl wählt für Sie

Um die Dinge zu vereinfachen, können Sie einen Befehl definieren, der erkennt, ob er innerhalb eines nummerierten Abschnitts ( \ifnumbering) aufgerufen wird und dementsprechend zwischen Ihrem Original \vnumund meinem wählt \autoversenumber. Sie müssen diese Entscheidung nicht selbst treffen.

Ich habe diesen Befehl im zweiten Teil meines MWE verwendet, also in den Versen 9–16 (entfernen Sie bitte das erste Vorkommen, um \end{document}diesen Teil zu aktivieren.)

\newcommand{\myautovnum}{\ifnumbering\autoversenumber\else\vnum\fi}

Ergebnis von MWE mit automatischem Befehl

MWE

\documentclass{memoir}

\usepackage{reledmac}

\makepagestyle{myps}

% Headers
\makeevenhead{myps}{\firstmarks1:\botmarks1}{\leftmark}{\thepage}
\makeoddhead{myps}{\thepage}{\leftmark}{\firstmarks1-\botmarks1}
\markboth{Chapter 1}{Chapter 1}

%%% 1 - \vnum - This block in the original MWE:
%   
% Set verse counter (for printing in header)
\newcounter{verseno}
\newcommand{\vnum}{\refstepcounter{verseno}%
    \textbf{\theverseno}. %
    \marks1{\theverseno}}

%%% 2 - \autoversenumber - This block adapted from the reledmac examples: 2-subdivision-number-in-header.tex:
%
\newcommand{\autoversenumber}{%
  \refstepcounter{verseno}%Add 1 to the counter
  \edef\tmp{\noexpand\marks1{\theverseno}}%\tmp will be expanded to \markboth{<verse-value>}{<verse-value}>
  \expandafter\doinsidethislinehook\expandafter{\tmp}%First, we expand \tmp to  the value, and then, pass the result as argument to \doinsidelinehook
  \textbf{\theverseno}.\space%Typeset the verse counter value in bold, followed by a dot and then a space.
}


%%% Agnostic command detects whether to use \vnum or \autoversenumber
%
\newcommand{\myautovnum}{\ifnumbering\autoversenumber\else\vnum\fi}



\begin{document}
\pagestyle{myps}
%%% VARIANT 1: Manual selection of appropriate verse command
%
    \vnum Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
    \vnum  Etiam in semper dolor, ut imperdiet lectus. 
    \vnum  Praesent ut consequat enim, et pretium ligula. 
    \vnum  Sed aliquam purus neque, nec laoreet arcu porta non. Nullam ut finibus lacus. Duis sit amet magna a\linenumannotation{23} metus bibendum vehicula.  Aliquam mollis facilisis tellus quis semper. Curabitur at mi tempus, fringilla odio aliquam, ultrices tellus. Quisque finibus varius dolor at dapibus. Sed vel justo eu odio mollis finibus vel eu nisl.    
   
    %% START NUMBERED LINES %%
    \beginnumbering
    \pstart
    \autoversenumber Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
    \autoversenumber  Etiam in semper dolor, ut imperdiet lectus. 
    \autoversenumber  Praesent ut consequat enim, et pretium ligula. 
    \autoversenumber  Sed aliquam purus neque, nec laoreet arcu porta non. Nullam ut finibus lacus. Duis sit amet magna a metus bibendum vehicula.  Aliquam mollis facilisis tellus quis semper. Curabitur at mi tempus, fringilla odio aliquam, ultrices tellus. Quisque finibus varius dolor at dapibus. Sed vel justo eu odio mollis finibus vel eu nisl.
    %% END NUMBERED LINES %%
    \pend
    \endnumbering
\end{document}    % Comment to try out the agnostic command, \myautovnum

%%% VARIANT 2: Agnostic verse command
%
    \myautovnum Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
    \myautovnum  Etiam in semper dolor, ut imperdiet lectus. 
    \myautovnum  Praesent ut consequat enim, et pretium ligula. 
    \myautovnum  Sed aliquam purus neque, nec laoreet arcu porta non. Nullam ut finibus lacus. Duis sit amet magna a\linenumannotation{23} metus bibendum vehicula.  Aliquam mollis facilisis tellus quis semper. Curabitur at mi tempus, fringilla odio aliquam, ultrices tellus. Quisque finibus varius dolor at dapibus. Sed vel justo eu odio mollis finibus vel eu nisl.    
   
    %% START NUMBERED LINES %%
    \beginnumbering
    \pstart
    \myautovnum Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
    \myautovnum  Etiam in semper dolor, ut imperdiet lectus. 
    \myautovnum  Praesent ut consequat enim, et pretium ligula. 
    \myautovnum  Sed aliquam purus neque, nec laoreet arcu porta non. Nullam ut finibus lacus. Duis sit amet magna a metus bibendum vehicula.  Aliquam mollis facilisis tellus quis semper. Curabitur at mi tempus, fringilla odio aliquam, ultrices tellus. Quisque finibus varius dolor at dapibus. Sed vel justo eu odio mollis finibus vel eu nisl.
    %% END NUMBERED LINES %%
    \pend
    \endnumbering
\end{document}

PS: Um unnötige Leerzeichen zu vermeiden, empfehle ich, in den nummerierten Teilen Ihres Dokuments (also innerhalb eines \pstart...\pend) leere Zeilen zu vermeiden. Eine leere Zeile leitet normalerweise einen neuen Absatz ein, und das führt in häufig zu unangenehmen Überraschungen reledmac.

verwandte Informationen