使用reledmac時如何在標題中列印詩節編號,而不是行號?

使用reledmac時如何在標題中列印詩節編號,而不是行號?

我正在排版聖經文本,並希望在頁眉中的每頁上列印經文範圍。我已經能夠複製在常規文本中。然而,在 reledmac 的編號環境中使用它時,我遇到了問題,因為會建立額外的垂直空間(請參閱下面的第二段,第 5-8 節)。請注意,它在該環境之外運作良好。

在此輸入影像描述

這是最小的工作範例:

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

有辦法解決這個問題嗎?

*** 編輯 ***

我發現這個問題與命令有關\marks1{\theverseno},顯然是因為reledmac以不同的方式使用標記。

我嘗試使用 atbegshi 套件來更新每頁開頭的計數器(範圍內的第一節)並使用 verseno 計數器來更新範圍內的最後一節。然而,我遇到了另一個問題,即,使用reledmac,\AtBeginShipout似乎作為一個區塊應用於每個段落,而不是每個頁面。

答案1

作為 @Maïeul, 的維護者reledmac解釋,由於編號段落的特殊結構,您應該

用於\doinsidethislinehook包含敏感命令,例如\marking.

Maïeul 特別指出了reledmac發行版中包含的一個(精心構建且非常有用的)範例文件:標題中的細分編號。該文件基本上涵蓋了您的需求;這裡我根據你的MWE寫了一個具體的解決方案。

變體 1:手動切換

我已\autoversenumber根據您的風格要求調整了 Maïeul 的命令:它根據您的櫃檯構建verseno並相應地排版數字。這表示當您在 和 之間切換時,編號保持連續\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.
}

請注意,此命令僅在編號文字中起作用,反之亦然\vnum。所以你需要根據上下文選擇合適的命令。

應用於您的 MWE 時的結果

變體 2:為您選擇不可知指令

為了簡化事情,您可以定義一個命令來檢測它是否在編號部分 ( \ifnumbering) 中調用,並在您的原始文件\vnum和我的\autoversenumber.無需自己做出決定。

我在 MWE 的第二部分(即第 9--16 節)中使用了此命令(請刪除第一次出現的\end{document}來啟動該部分。)

\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:為了減少不必要的空白,我建議避免在文件的編號部分(即 內部\pstart...\pend)中出現空行。空行通常會開始一個新段落,這往往會在reledmac.

相關內容