
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.
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, \AtBeginShipout
parece 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
\doinsidethislinehook
para 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 reledmac
distribuiçã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 \autoversenumber
aos seus requisitos de estilo: ele constrói seu contador verseno
e 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.
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 \vnum
e 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}
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
.