Como imprimir números de versículos no cabeçalho, não em números de linha, ao usar o reledmac?

Como imprimir números de versículos no cabeçalho, não em números de linha, ao usar o reledmac?

Estou compondo um texto bíblico e gostaria de imprimir o intervalo de versículos de cada página no cabeçalho. Eu consegui replicaresseem um texto normal. No entanto, encontro problemas ao usá-lo no ambiente de numeração do reledmac, pois é criado espaço vertical extra (veja o segundo parágrafo abaixo, versículos 5-8). Observe que funciona bem fora desse ambiente.

insira a descrição da imagem aqui

Aqui está o exemplo mínimo de trabalho:

\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}

Existe uma maneira de contornar este problema?

***EDITAR***

Descobri que o problema está relacionado ao \marks1{\theverseno}comando, aparentemente porque o reledmac faz uso das marcas de uma forma diferente.

Tentei uma solução usando o pacote atbegshi para atualizar um contador no início de cada página (primeiro verso do intervalo) e usando o contador versono para o último verso do intervalo. No entanto, encontrei outro problema: com o reledmac, \AtBeginShipoutparece ser aplicado a cada parágrafo como um bloco, e não a cada página.

Responder1

Como @Maïeul, o mantenedor do reledmac,explica, devido à estrutura peculiar dos parágrafos numerados, você deve

use \doinsidethislinehookpara incluir um comando confidencial como \marking.

Em particular, Maïeul aponta para um arquivo de amostra (cuidadosamente construído e muito útil) que está incluído na reledmacdistribuição:Número da subdivisão no cabeçalho. Esse documento basicamente cobre suas necessidades; aqui escrevi uma solução concreta baseada no seu MWE.

Variante 1: comutação manual

Adaptei o comando de Maïeul \autoversenumberaos seus requisitos de estilo: ele constrói seu contador versenoe compõe os números de acordo. Isso significa que a numeração permanece contínua conforme você alterna entre ela e \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.
}

Observe que este comando funcionará apenas em texto numerado e vice-versa para o seu arquivo \vnum. Portanto, você precisa escolher o comando apropriado com base no contexto.

O resultado quando aplicado ao seu MWE

Variante 2: comando agnóstico escolhe para você

Para simplificar as coisas, você pode definir um comando que detecta se ele é invocado dentro de uma seção numerada ( \ifnumbering) e escolhe de acordo entre seu original \vnume meu \autoversenumber. Não há necessidade de fazer essa determinação sozinho.

Eu usei este comando na segunda parte do meu MWE, que é o versículo 9-16 (por favor, remova a primeira ocorrência de \end{document}para ativar essa parte).

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

resultado do MWE com comando automático

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: No interesse de reduzir espaços em branco desnecessários, sugiro evitar linhas vazias nas partes numeradas do seu documento (ou seja, dentro de um \pstart...\pend). Uma linha vazia geralmente inicia um novo parágrafo e isso tende a produzir surpresas desagradáveis ​​em arquivos reledmac.

informação relacionada