![原始问题](https://linux22.com/image/449317/%E5%8E%9F%E5%A7%8B%E9%97%AE%E9%A2%98.png)
原始问题
我有一本随包裹写的小册子马特里塔。现在,我想将这本小册子扩展到两种语言,对页(左页使用一种语言,右页使用另一种语言),我目前正在使用reledmac
和reledpar
包:
\documentclass[11pt]{book}
\usepackage{reledmac}
\usepackage{reledpar}
\numberlinefalse
\usepackage[]{matrita}
另外,我正在使用由梅厄尔在里面reledpar 和 pages 环境线:
\documentclass[11pt]{book}
\usepackage{reledmac}
\usepackage{reledpar}
\numberlinefalse
\title{Two languages on facing pages}
\author{mc}
\begin{document}
\maketitle
\begin{pages}
\begin{Leftside}
\beginnumbering
\pstart
Text for Language ONE
\pend
\endnumbering
\end{Leftside}
\begin{Rightside}
\beginnumbering
\pstart
Text for Language TWO
\pend
\endnumbering
\end{Rightside}
\end{pages}
\Pages
\end{document}
然而,一旦我编译了我的代码,
\newpage
看起来不起作用,如下图所示(在这种情况下,命令\newpage
就在标题之前Seconda Lettura
)
- 整个文本的行距比较混乱,例如经常行距很小并且两行文本部分重叠,如下图所示(左边是原始布局,即没有使用和包
reledmac
,reledpar
而右边是使用reledmac
和reledpar
包的布局):
我该如何解决与(1)\newpage
和(2)行距相关的两个问题,导致文本重叠?
使用 MWE 编辑的问题
感谢 @marquinho 的评论(在这个问题下),我创建了两个版本的 MWE。第一个版本不包含任何reledmac
和reledpar
包,而第二个版本同时包含reledmac
和reledpar
包。
请记住,您需要以下sty
文件来运行 MWE:
matrita.sty
生成自matrita.dtx
,可从Matrita 套餐网站。reledmac.sty
reledpar.sty
此外,仅供参考,我正在使用背页作为文本编辑器,我用它进行编译pdfLaTex
。
没有 MWEreledmac
和reledpar
\documentclass[11pt]{book}
% % reledpar and reledmac packages
% % https://tug.org/texlive/devsrc/Master/texmf-dist/tex/latex/reledmac/
% \usepackage{reledmac}
% \usepackage{reledpar}
% \numberlinefalse
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[italian]{babel}
\usepackage[sc]{mathpazo}
\linespread{1.05}
\usepackage[paperwidth=120mm,paperheight=210mm,top=12mm,bottom=25mm,outer=20mm,inner=13mm]{geometry}
\usepackage[]{matrita}
\usepackage{indentfirst}
\usepackage{xcoffins}
\usepackage{microtype}
\usepackage{lipsum}
\usepackage{xcolor}
\usepackage{xstring}
\usepackage{expl3}
\usepackage{textcase}
\usepackage{graphicx}
\usepackage{graphicx}
\usepackage{lettrine}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhead{} % clear all header fields
\fancyfoot{} % clear all footer fields
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
\renewcommand{\respfont}{\bfseries}
\setlength{\parindent}{0pt}
\definecolor{respcolor}{rgb}{1,0,0}
\definecolor{etgray}{gray}{0.8}
\setlength{\afterpoemtitleskip}{2ex plus 0ex minus 1ex}
\setlength{\beforepoemtitleskip}{2.5ex plus 1ex minus 2ex}
\setlength{\leftmargini}{0em}
\setlength{\titleindent}{0em}
\renewcommand{\poemtitlefont}{\normalfont\large\bfseries}
\definecolor{crosscolor}{rgb}{1,0,0}
\renewcommand{\intestfont}[1]{{\Large\scshape\textcolor{red}{#1}}}
\renewcommand{\nomelibrofont}[1]{{\bfseries#1}}
\ExplSyntaxOn
\NewCoffin\InitialCoffin
\NewCoffin\RestCoffin
\NewCoffin\LineCoffin
\newlength{\InitKernCorr}
\tl_new:N \Part_Title_tl
\tl_new:N \Rest_of_Title_tl
\tl_set:Nn \First_Title_tl {\tl_head:N \Part_Title_tl}
\tl_set:Nn \Rest_of_Title_tl {\tl_tail:N \Part_Title_tl}
\RenewDocumentCommand {\momento}{O{0em}m}{
\tl_set:Nn \Part_Title_tl {#2}
\setlength{\InitKernCorr}{#1}
\SetHorizontalCoffin\InitialCoffin{
\normalfont\scalebox{2}{\Large\textcolor{red}{\First_Title_tl}\hspace{\InitKernCorr}}
}
\SetHorizontalCoffin\RestCoffin{
\normalfont\Large\textcolor{red}{\MakeTextUppercase \Rest_of_Title_tl}
}
\SetHorizontalCoffin\LineCoffin{
\textcolor{black}{\rule[-1.5pt]{\dimexpr\textwidth-\CoffinWidth\InitialCoffin\relax}{0.6pt}}
}
\JoinCoffins\LineCoffin[l,t]\RestCoffin[l,b]
\JoinCoffins\LineCoffin[l,b]\InitialCoffin[r,b]
\par\vspace*{5\baselineskip}\noindent\TypesetCoffin\LineCoffin (0mm, 0mm)\vspace{3\baselineskip}
}
\ExplSyntaxOff
\newcommand{\sottomomento}[1]{{\intestfont{#1}}\par\medskip}
\begin{document}
\sottomomento{Inno di Lode}
\gloria
\newpage%************************
\momento[0.05em]{Riti di introduzione}
\newpage%************************
\momento{Liturgia della parola}
\begin{lettura}[Prima]{Dagli Atti degli Apostoli}{At\,2,\,42--47}
\lettrine[lines=3]{E}{rano} perseveranti nell'insegnamento degli apostoli e nella comunione, nello spezzare il pane e nelle preghiere. Un senso di timore era in tutti, e prodigi e segni avvenivano per opera degli apostoli. Tutti i credenti stavano insieme e avevano ogni cosa in comune; vendevano le loro proprietà e sostanze e le dividevano con tutti, secondo il bisogno di ciascuno. Ogni giorno erano perseveranti insieme nel tempio e, spezzando il pane nelle case, prendevano cibo con letizia e semplicità di cuore, lodando Dio e godendo il favore di tutto il popolo. Intanto il Signore ogni giorno aggiungeva alla comunità quelli che erano salvati.
\end{lettura}
\newpage%************************
\begin{lettura}[Seconda]{Dalla prima lettera ai Corinzi}{1Cor\,13,\,1--13}
\lettrine[lines=3]{S}{e parlassi} le lingue degli uomini e degli angeli, ma non avessi la carità, sarei come bronzo che rimbomba o come cimbalo che strepita.
E se avessi il dono della profezia, se conoscessi tutti i misteri e avessi tutta la conoscenza, se possedessi tanta fede da trasportare le montagne, ma non avessi la carità, non sarei nulla.
E se anche dessi in cibo tutti i miei beni e consegnassi il mio corpo per averne vanto, ma non avessi la carità, a nulla mi servirebbe.
La carità è magnanima, benevola è la carità; non è invidiosa, non si vanta, non si gonfia d'orgoglio, non manca di rispetto, non cerca il proprio interesse, non si adira, non tiene conto del male ricevuto, non gode dell'ingiustizia ma si rallegra della verità. Tutto scusa, tutto crede, tutto spera, tutto sopporta.
La carità non avrà mai fine. Le profezie scompariranno, il dono delle lingue cesserà e la conoscenza svanirà. Infatti, in modo imperfetto noi conosciamo e in modo imperfetto profetizziamo. Ma quando verrà ciò che è perfetto, quello che è imperfetto scomparirà. Quand'ero bambino, parlavo da bambino, pensavo da bambino, ragionavo da bambino. Divenuto uomo, ho eliminato ciò che è da bambino.
Adesso noi vediamo in modo confuso, come in uno specchio; allora invece vedremo faccia a faccia. Adesso conosco in modo imperfetto, ma allora conoscerò perfettamente, come anch'io sono conosciuto.
Ora dunque rimangono queste tre cose: la fede, la speranza e la carità. Ma la più grande di tutte è la carità!
\end{lettura}
\end{document}
对应的结果如下:
MWE 具有reledmac
和reledpar
\documentclass[11pt]{book}
% reledpar and reledmac packages
% https://tug.org/texlive/devsrc/Master/texmf-dist/tex/latex/reledmac/
\usepackage{reledmac}
\usepackage{reledpar}
\numberlinefalse
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[italian]{babel}
\usepackage[sc]{mathpazo}
\linespread{1.05}
\usepackage[paperwidth=120mm,paperheight=210mm,top=12mm,bottom=25mm,outer=20mm,inner=13mm]{geometry}
\usepackage[]{matrita}
\usepackage{indentfirst}
\usepackage{xcoffins}
\usepackage{microtype}
\usepackage{lipsum}
\usepackage{xcolor}
\usepackage{xstring}
\usepackage{expl3}
\usepackage{textcase}
\usepackage{graphicx}
\usepackage{graphicx}
\usepackage{lettrine}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhead{} % clear all header fields
\fancyfoot{} % clear all footer fields
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
\renewcommand{\respfont}{\bfseries}
\setlength{\parindent}{0pt}
\definecolor{respcolor}{rgb}{1,0,0}
\definecolor{etgray}{gray}{0.8}
\setlength{\afterpoemtitleskip}{2ex plus 0ex minus 1ex}
\setlength{\beforepoemtitleskip}{2.5ex plus 1ex minus 2ex}
\setlength{\leftmargini}{0em}
\setlength{\titleindent}{0em}
\renewcommand{\poemtitlefont}{\normalfont\large\bfseries}
\definecolor{crosscolor}{rgb}{1,0,0}
\renewcommand{\intestfont}[1]{{\Large\scshape\textcolor{red}{#1}}}
\renewcommand{\nomelibrofont}[1]{{\bfseries#1}}
\ExplSyntaxOn
\NewCoffin\InitialCoffin
\NewCoffin\RestCoffin
\NewCoffin\LineCoffin
\newlength{\InitKernCorr}
\tl_new:N \Part_Title_tl
\tl_new:N \Rest_of_Title_tl
\tl_set:Nn \First_Title_tl {\tl_head:N \Part_Title_tl}
\tl_set:Nn \Rest_of_Title_tl {\tl_tail:N \Part_Title_tl}
\RenewDocumentCommand {\momento}{O{0em}m}{
\tl_set:Nn \Part_Title_tl {#2}
\setlength{\InitKernCorr}{#1}
\SetHorizontalCoffin\InitialCoffin{
\normalfont\scalebox{2}{\Large\textcolor{red}{\First_Title_tl}\hspace{\InitKernCorr}}
}
\SetHorizontalCoffin\RestCoffin{
\normalfont\Large\textcolor{red}{\MakeTextUppercase \Rest_of_Title_tl}
}
\SetHorizontalCoffin\LineCoffin{
\textcolor{black}{\rule[-1.5pt]{\dimexpr\textwidth-\CoffinWidth\InitialCoffin\relax}{0.6pt}}
}
\JoinCoffins\LineCoffin[l,t]\RestCoffin[l,b]
\JoinCoffins\LineCoffin[l,b]\InitialCoffin[r,b]
\par\vspace*{5\baselineskip}\noindent\TypesetCoffin\LineCoffin (0mm, 0mm)\vspace{3\baselineskip}
}
\ExplSyntaxOff
\newcommand{\sottomomento}[1]{{\intestfont{#1}}\par\medskip}
\begin{document}
\begin{pages}
\begin{Leftside}
\beginnumbering
\pstart
\sottomomento{Inno di Lode}
\gloria
\newpage%************************
\momento[0.05em]{Riti di introduzione}
\newpage%************************
\momento{Liturgia della parola}
\begin{lettura}[Prima]{Dagli Atti degli Apostoli}{At\,2,\,42--47}
\lettrine[lines=3]{E}{rano} perseveranti nell'insegnamento degli apostoli e nella comunione, nello spezzare il pane e nelle preghiere. Un senso di timore era in tutti, e prodigi e segni avvenivano per opera degli apostoli. Tutti i credenti stavano insieme e avevano ogni cosa in comune; vendevano le loro proprietà e sostanze e le dividevano con tutti, secondo il bisogno di ciascuno. Ogni giorno erano perseveranti insieme nel tempio e, spezzando il pane nelle case, prendevano cibo con letizia e semplicità di cuore, lodando Dio e godendo il favore di tutto il popolo. Intanto il Signore ogni giorno aggiungeva alla comunità quelli che erano salvati.
\end{lettura}
\newpage%************************
\begin{lettura}[Seconda]{Dalla prima lettera ai Corinzi}{1Cor\,13,\,1--13}
\lettrine[lines=3]{S}{e parlassi} le lingue degli uomini e degli angeli, ma non avessi la carità, sarei come bronzo che rimbomba o come cimbalo che strepita.
E se avessi il dono della profezia, se conoscessi tutti i misteri e avessi tutta la conoscenza, se possedessi tanta fede da trasportare le montagne, ma non avessi la carità, non sarei nulla.
E se anche dessi in cibo tutti i miei beni e consegnassi il mio corpo per averne vanto, ma non avessi la carità, a nulla mi servirebbe.
La carità è magnanima, benevola è la carità; non è invidiosa, non si vanta, non si gonfia d'orgoglio, non manca di rispetto, non cerca il proprio interesse, non si adira, non tiene conto del male ricevuto, non gode dell'ingiustizia ma si rallegra della verità. Tutto scusa, tutto crede, tutto spera, tutto sopporta.
La carità non avrà mai fine. Le profezie scompariranno, il dono delle lingue cesserà e la conoscenza svanirà. Infatti, in modo imperfetto noi conosciamo e in modo imperfetto profetizziamo. Ma quando verrà ciò che è perfetto, quello che è imperfetto scomparirà. Quand'ero bambino, parlavo da bambino, pensavo da bambino, ragionavo da bambino. Divenuto uomo, ho eliminato ciò che è da bambino.
Adesso noi vediamo in modo confuso, come in uno specchio; allora invece vedremo faccia a faccia. Adesso conosco in modo imperfetto, ma allora conoscerò perfettamente, come anch'io sono conosciuto.
Ora dunque rimangono queste tre cose: la fede, la speranza e la carità. Ma la più grande di tutte è la carità!
\end{lettura}
\pend
\endnumbering
\end{Leftside}
\begin{Rightside}
\beginnumbering
\pstart
\sottomomento{Inno di Lode}
\gloria
\newpage%************************
\momento[0.05em]{Riti di introduzione}
\newpage%************************
\momento{Liturgia della parola}
\begin{lettura}[Prima]{Dagli Atti degli Apostoli}{At\,2,\,42--47}
\lettrine[lines=3]{E}{rano} perseveranti nell'insegnamento degli apostoli e nella comunione, nello spezzare il pane e nelle preghiere. Un senso di timore era in tutti, e prodigi e segni avvenivano per opera degli apostoli. Tutti i credenti stavano insieme e avevano ogni cosa in comune; vendevano le loro proprietà e sostanze e le dividevano con tutti, secondo il bisogno di ciascuno. Ogni giorno erano perseveranti insieme nel tempio e, spezzando il pane nelle case, prendevano cibo con letizia e semplicità di cuore, lodando Dio e godendo il favore di tutto il popolo. Intanto il Signore ogni giorno aggiungeva alla comunità quelli che erano salvati.
\end{lettura}
\newpage%************************
\begin{lettura}[Seconda]{Dalla prima lettera ai Corinzi}{1Cor\,13,\,1--13}
\lettrine[lines=3]{S}{e parlassi} le lingue degli uomini e degli angeli, ma non avessi la carità, sarei come bronzo che rimbomba o come cimbalo che strepita.
E se avessi il dono della profezia, se conoscessi tutti i misteri e avessi tutta la conoscenza, se possedessi tanta fede da trasportare le montagne, ma non avessi la carità, non sarei nulla.
E se anche dessi in cibo tutti i miei beni e consegnassi il mio corpo per averne vanto, ma non avessi la carità, a nulla mi servirebbe.
La carità è magnanima, benevola è la carità; non è invidiosa, non si vanta, non si gonfia d'orgoglio, non manca di rispetto, non cerca il proprio interesse, non si adira, non tiene conto del male ricevuto, non gode dell'ingiustizia ma si rallegra della verità. Tutto scusa, tutto crede, tutto spera, tutto sopporta.
La carità non avrà mai fine. Le profezie scompariranno, il dono delle lingue cesserà e la conoscenza svanirà. Infatti, in modo imperfetto noi conosciamo e in modo imperfetto profetizziamo. Ma quando verrà ciò che è perfetto, quello che è imperfetto scomparirà. Quand'ero bambino, parlavo da bambino, pensavo da bambino, ragionavo da bambino. Divenuto uomo, ho eliminato ciò che è da bambino.
Adesso noi vediamo in modo confuso, come in uno specchio; allora invece vedremo faccia a faccia. Adesso conosco in modo imperfetto, ma allora conoscerò perfettamente, come anch'io sono conosciuto.
Ora dunque rimangono queste tre cose: la fede, la speranza e la carità. Ma la più grande di tutte è la carità!
\end{lettura}
\pend
\endnumbering
\end{Rightside}
\end{pages}
\Pages
\end{document}
对应的结果如下:
第二次编辑
看起来,不仅\newpage
不起作用,而且\par
,或,\nobreak
或\bigskip
,都包含在\newcommand
调用的\momento
,这里
\momento[0.05em]{Riti di introduzione}
和这里
\momento{Liturgia della parola}
命令\momento
包含在里面matrita.sty
,其定义如下:
\newcommand{\momento}[1]{%
{\par\vspace{\premomentoskip}%
\noindent\LARGE\maiuscolettospaziato{#1}}%
\par\nobreak\bigskip%
}
其中\premomentoskip
定义为
\newlength{\premomentoskip}
\setlength{\premomentoskip}{2.5ex plus 0.5ex minus 1ex}
定义\maiuscolettospaziato
为
ifxetex
\newcommand{\maiuscolettospaziato}[1]{%
{\addfontfeature{LetterSpace=6}\textsc{\MakeTextLowercase{#1}}}}
\else
\RequirePackage{microtype}
\newcommand{\maiuscolettospaziato}[1]{%
\textsc{\MakeTextLowercase{\textls[80]{#1}}}}
\fi
答案1
重新定义基本原则(例如段落的形状和设置以及页面的布局)的软件包之间总是会存在一些冲突,并且无法保证可以满足软件包各自的期望并解决冲突。 尤其是当软件包采用不同的方法和工具设计时。
这里,我们有两个(三个)这样的包相互作用。一方面,reledmac
解压传统的 LaTeX 段落,执行行引用魔法,并重新组合段落;reledpar
同样干扰页面的传统顺序和构造。另一方面,matrita
它针对一种非常特殊的文档类型构建,并对 LaTeX 的页面和段落结构设置了非常特殊的要求。
我不知道这些包之间的交互中哪里出了问题,但这里有针对您两个问题的解决方案,或者至少是实用的解决方法。
1. 换行和间距
第一件事要照顾的是空行。在您的第二段代码中,您在\pstart
和之间留下了一些空行\pend
:
\pstart
Text for Language ONE
\pend
不惜一切代价避免这种情况在传统的 LaTeX 中,空行被读作一条指令来打破段落并开始新的。但是reledmac
有了必须将文本分成段落明确地,使用\pend
然后\pstart
。众所周知,留下空行会把事情搞乱(例如行距)。
空行段落之间没问题。如果您需要在代码中留出一些“空”行以提高可读性,您可以随时使用符号“转义”它们%
。
\pstart
Text for Language ONE
\pend
\pstart
%
Some more
%
text
%
\pend
第二个来源图像中的间距问题是由于某些块中最终线条的行为所致。
似乎 定义的特殊环境matrita
(例如lettura
)与 的段落处理相冲突reledmac
。以下方法似乎可以解决这个问题:强制换行在您输入的文本的末尾,就在 之前\end{lettura}
。
我会使用\\
,尽管这通常不是在普通文本中换行的明智方法(看这里)在这里,我们在一个环境大量使用 来\\
断线(参见matrita.sty
),所以我们应该是安全的。
如果在文本的最后一行之后添加\\
,则会获得正确的行距。
Ma la più grande di tutte è la carità!\\ % I have added \\
\end{lettura}
我相信,您可以采用这种方法来解决所有其他情况(或者\\
,您可以尝试\newline
)。
有一个例外:您的示例中有一个情况有所不同,因为行距问题不会出现在您自己的输入文本中。
\gloria
“Gesù Cristo con ... Dio Padre”这几行是文件中定义的自定义命令的最后几行matrita.sty
。解决方案是一样的但是:我们需要在最后一行文本之后和结束命令之前强制换行\rispostatutti
。[我想这是软件包创建者的失误——也许值得告诉他们!]
这是文件中的代码matrita.sty
:
\\nella gloria di Dio Padre.
\rispostatutti{Amen.}
我们希望得到这样的结果:
\\nella gloria di Dio Padre.\\
\rispostatutti{Amen.}
为此,我们修补相关命令涉及\gloria
(实际上称为\mtr@gloria
)与优秀包提供的工具etoolbox
。 (您不需要加载它,因为reledmac
已经调用它。)我们在命令的定义中添加所需的换行符,就在“Padre”之后。
\makeatletter
\patchcmd{\mtr@gloria}{Padre.}{Padre.\\}{}{}
\makeatother
这解决了行距问题。
2. 分页符
我不熟悉xcoffin
你在序言中采用的自定义\momento
命令的结构。我有一种预感,那里的设置可能与分页问题有关,但正如我所说,我不太了解,Coffin
而且我宁愿不触及它。
所有建议的常规解决方案在这里都不起作用;来自 LaTeX 的\newpage
、\clearpage
、\pagebreak
都不起作用。即使是 提供的特定分页机制reledmac
,即命令\ledpb
在这里也失败了(顺便说一句,这是道路如果您需要在块内进行分页,则需要转到numbering
— — 在这种情况下,请忘记\newpage
)。
不过,这种方法似乎有效:无论在哪里需要分页符,关闭pages
环境(以及环境Left
和)并在该点Right
排版。然后,\Pages
开始新的pages
环境。
所以这:
erano salvati.\\
\end{lettura}
\newpage%************************
\begin{lettura}[Seconda]{Dalla prima lettera ai Corinzi}{1Cor\,13,\,1--13}
变成这样:
erano salvati.\\
\end{lettura}
\pend
\endnumbering
\end{Rightside}
\end{pages}
\Pages
\begin{pages}
\begin{Leftside}
\beginnumbering
\pstart
\begin{lettura}[Seconda]{Dalla prima lettera ai Corinzi}{1Cor\,13,\,1--13}
小心!您需要更改代码中的块顺序,跳转并大量复制粘贴,以保留正确的左右顺序。(例如,您必须将长序列分解Left-Right-Pages
为较短的序列Left-Right-Pages-Left-Right-Pages-Left-Right-Pages
。)但它确实适用于您在示例中挑选出的所有情况。
3. 空白页
您注意到,当您使用 时reledpar
,文档的第 1 页突然变为空白。此外,我可以补充一下,理所当然!这是一个功能,而不是一个错误。
对于平行排版(和打印!),您需要将相应的文本放在相对的页面上:左页和右页。文档中的第一个左页是第 2 页。第 1 页将是小册子的封面或一些介绍性材料。我建议您保持这种方式,这也有助于以后的打印。
但是,如果你想改变这种情况,这里有一个快速解决方法:在文档的开头,告诉 LaTeX 第一页是偶数页(fi 编号 0 或 2),即左页。然后,PDF 的第一页将包含第一个文本单元。
\begin{document}
\setcounter{page}{2}
\begin{pages}
答案2
该作品的最终版本现已在github上公开:
https://github.com/2behappy/bilingual_wedding_mass_booklet
您可以在此 PDF 中看到最终结果:
https://github.com/2behappy/bilingual_wedding_mass_booklet/blob/main/Mass_Booklet_Bilingual.pdf