
私は聖書のテキストをタイプセットしており、各ページのヘッダーに節の範囲を印刷したいと考えています。これ通常のテキストでは、しかし、これを reledmac の番号付け環境内で使用すると、余分な垂直スペースが作成されるため、問題が発生します (以下の 2 番目の段落、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: 手動切り替え
私は、Maïeul のコマンドを\autoversenumber
あなたのスタイル要件に合わせて調整しました。それは、カウンターを構築し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
。したがって、コンテキストに基づいて適切なコマンドを選択する必要があります。
バリエーション2: 不可知論コマンドがあなたに代わって選択する
\ifnumbering
物事を単純化するために、番号付きセクション ( ) 内で呼び出されたかどうかを検出し、それに応じてオリジナル\vnum
と私のを選択するコマンドを定義できます\autoversenumber
。自分でその決定を行う必要はありません。
私はこのコマンドを MWE の 2 番目の部分、つまり 9 節から 16 節で使用しました (\end{document}
その部分をアクティブにするには、 の最初の出現を削除してください)。
\newcommand{\myautovnum}{\ifnumbering\autoversenumber\else\vnum\fi}
ムウェ
\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
。