
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.
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 \AtBeginShipout
anscheinend 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 reledmac
Distribution 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 \autoversenumber
an Ihre Stilanforderungen angepasst: Er baut auf Ihrem Zähler auf verseno
und 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.
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 \vnum
und 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}
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
.