
나는 성경 본문을 조판하고 있으며 머리글의 각 페이지에 있는 구절의 범위를 인쇄하고 싶습니다. 복습할 수 있게 됐어요이것일반 텍스트에서. 그러나 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: 수동 전환
나는 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
과 my 중에서 선택하는 명령을 정의할 수 있습니다 \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}
추신: 불필요한 공백을 줄이기 위해 문서의 번호가 매겨진 부분(즉, 내부 \pstart...\pend
)에 빈 줄을 피하는 것이 좋습니다. 빈 줄은 일반적으로 새로운 단락을 시작하며 이는 에서 불쾌한 놀라움을 만들어내는 경향이 있습니다 reledmac
.