我有两份英文文本,它们是同一部作品的翻译,我想将它们并列起来:我不打算包含原始的非英语文本。顺便说一句,这是针对一份文档(约 100 页),而不是针对一本书。我实际上已经使用 创建了上述文档Open/Libre Office
,因此我有一个工作副本。但我想使用 重新创建同一份文档TeX/LaTeX
。
我Open/Libre Office
使用了一个两列三行的表格(翻译文本占一行,其他两行是标题)。大约LaTeX
一年前,我做了一些实验,使用表格完成任务取得了一些初步成功,但最终未能完成该项目。以下是成功部分以及最终失败的描述。
我只使用了大约一页文本进行初始测试。输出看起来很棒——比我的Open/Libre office
文档好得多。但我的热情很快就消失了:我发现我尝试的所有表格包都缺乏生成跨页列的能力。换句话说,任何长度超过一页的列都会在页面底部被毫不留情地截断。在我这样的情况下,我有一列最终会长达数页,最终我只会得到一页的输出(overfull vbox
我记得是错误的);不会生成任何后续页面。
我确实研究过其他ledpar
专门用于创建平行文本的软件包(我相信?),并且也取得了一些成功。但在我看来,表格解决方案的输出看起来最好。我记得,我在尝试使用软件包引入我放在表格标题中的材料时遇到了问题parallel text
,我认为在每一页上都有一个重复的标题(这将指示哪一列包含哪个翻译)。所以我很沮丧。
我仍然希望我可以在这个项目中使用表格,尽管这有点违反表格的预期用途。有人能就如何完成我在 中描述的任务提出建议吗TeX/LaTeX
?在我看来,使用表格真的是不可能的吗?
更新:
感谢您迄今为止提供的答案。我不得不回去再看看我创建的实验文档,因为这是一段时间前做的,我的记忆有点模糊了。
我应该首先说明,我在 OP 中对我的文档的描述有些过于简单了——对此我深表歉意。而且,再次查看了我的示例文件后,我现在意识到我在使用表格包(是的,我确实尝试了longtable
s)和并行文本包(实际上是 ,parcolumns
而不是ledpar
)时都遇到了问题。使用表格后,最终输出看起来要好一些,但parcolumns
实验的外观也不错。
我所描述的表格包的问题在于:表格列不允许超过页面长度(这似乎是编码到包中的限制——是的,longtable
我相信甚至是包本身)。这是这个项目的一大障碍:我将在这个文档中设置许多超出页面长度的列——这让我想到了我在 OP 中给出的过于简单的描述以及我在使用该parcolumns
包时遇到的问题。
文档实际上可能包含许多列块,并且该parcolumns
包确实可以处理超出页面的列。我使用此包遇到的问题是插入表格标题:它们应该出现在文档的每一页上,而我很难做到这一点。
我可能暂时就到此为止了,因为此处对文档的更详细描述可能会造成混淆,并让我容易受到批评,被指责为“改变目标”。但最后我要指出的是,文档中实际上有几个子部分,每个子部分都需要有一组在每一页上重复的标题。
抱歉,我的开场白没有更加精确。
另一更新:
哇,这个论坛太棒了——这么多精彩的建议。非常感谢你们的帮助性评论和问题。TeX/LaTeX
多年来,我一直在努力理解和使用,直到最近才有所收获。如果这个论坛在我刚开始学习时TeX/LaTeX
(大约 10 年前)就存在,我现在会进步很多。
是的,这两个译本的段落长度确实会有所不同——有时差别很大。这是因为一个译本有时看起来更像是一个段落的摘要,而不是真正的译文。因此,保持两者同步是一项挑战。表格非常适合这样做,因为每个译本的每个段落都放在一个单元格中。这种技术的不良影响是在某些地方引入了大量无关的空白,但它确实保持了段落同步。
对于parcolumns
,我使用段落来保持两个译文同步——效果与表格差不多。如果较长的译文能够以某种方式绕过较短的译文,以防其中一个译文比另一个译文长得多,那就太好了,但是对于我所说的标题,这可能不可行。
rdhs 提供的页眉建议启发了我继续使用parcolumns
--非常感谢。我在我的Open/Libre Office
文档中实现的页眉布局非常复杂,但产生了我需要的外观。实现它TeX/LaTeX
注定是一个挑战。实际上需要的是 3 组页眉:一组用于页面(给出作品的标题);一组用于作品的每个部分(应包含像第 1 章、第 2 章这样的标题,并且应该跨越两列);一组用于每一列(包含类似于的标题translation 1, translation 2
)。使用表格时,最后两个可以轻松完成,方法是指定前两个表格行是要在每一页上重复的表格标题,并且第一行的列合并且文本居中。描述的第一个页眉只是一个标准的页眉。
这些标题应该在每一页上重复出现,并且任何给定页面上都可能有不止一组标题(例如,有一章非常短,占不到一页)。我实际上设法使用表格包实现了这种外观。但是,正如我所说,任何表格包都不允许超出页面的单元格(我之前说过超出页面的列,但说表格的单元格可能更准确)。所以实验失败了,我转而尝试parcolumns
重新创建我在 中实现的布局Open/Libre Office
。
再次感谢大家的提示。这个论坛真的很棒(虽然使用起来有点混乱,至少对我来说)
詹姆士
答案1
atbegshi
好的,这里有一个用于添加标题的技巧parcolumns
:
\documentclass{article}
\usepackage{parcolumns}
\usepackage{atbegshi}
\newcommand{\pcheaderfmt}[1]{{\large\sf\textbf{#1}}}
\newcommand{\pcheader}{}
\AtBeginShipout{\pcheader}
\begin{document}
\section{Latin and Piglatin}
\renewcommand{\pcheader}
{\par\noindent\pcheaderfmt{Latin}\hfill\pcheaderfmt{Piglatin}%
\vspace{0.5ex}\hrule\vspace{1.5ex}}
\pcheader
\begin{parcolumns}{2}
%
\colchunk{Latin}
%
\colchunk{Piglatin}
\colplacechunks
%
\colchunk{Latin}
%
\colchunk{Piglatin}
%
\end{parcolumns}
\renewcommand{\pcheader}{}
\section{English and Pigenglish}
\renewcommand{\pcheader}
{\par\noindent\pcheaderfmt{English}\hfill\pcheaderfmt{Pigenglish?}%
\vspace{0.5ex}\hrule\vspace{1.5ex}}
\pcheader
\begin{parcolumns}{2}
%
\colchunk{English}
%
\colchunk{Pigenglish}
%
\end{parcolumns}
\renewcommand{\pcheader}{}
\end{document}
答案2
该parcolumns
包在这里可能有用。下面是 MWE - 有许多可以调整的选项(例如colwidths
);请参阅文档以获取更多示例。
\documentclass{article}
\usepackage{parcolumns}
\usepackage{lipsum}
\begin{document}
\begin{parcolumns}{2}
\colchunk{\section{1st column}
\lipsum }
\colchunk{\section{2nd column}
\lipsum}
\end{parcolumns}
\end{document}
您可能还会发现以下帖子很有帮助:
答案3
我不确定我是否完全理解你的问题的要求,但在我看来,你可能想尝试一下longtable
包装以及fancyhdr
包裹。
\documentclass{article}
\usepackage{longtable}
\usepackage{fancyhdr}
\usepackage{lipsum}
\def\chapterName{}
\def\leftName{}
\def\rightName{}
\newcommand*{\Chapter}[3]{%
\endlongtable%
\gdef\chapterName{#1}%
\gdef\leftName{#2}%
\gdef\rightName{#3}%
%% ELIMINATE THE || characters to remove the vertical rules
\longtable[c]{||p{0.45\textwidth}|p{0.45\textwidth}||}
\multicolumn{2}{c}{\Large\chapterName} \tabularnewline
\textbf{\leftName} & \textbf{\rightName} \endhead
}
\let\Title=\chead
% \renewcommand{\headrulewidth}{0pt} %% OPTIONAL
\begin{document}
\pagestyle{fancy}
\Title{A Polyglot Tale}
\begin{longtable}[c]{||p{0.45\textwidth}|p{0.45\textwidth}||}
\Chapter{The taming of Lipsum}{Language A}{Language B}
\lipsum[1] & \lipsum[2] \\
\lipsum[3] & \lipsum[4] \\
\Chapter{The breaking of Lipsum}{Language C}{Language D}
\lipsum[5] & \lipsum[6] \\
\lipsum[7] & \lipsum[8]
\end{longtable}
\end{document}
这将在每个页眉上显示“多语言故事”,然后有一个连续的表头,其中包含章节名称,后面是语言名称。它目前有一个限制(嵌入到longtable
)是没有单独的行(这里对应于一对段落)可以跨越页面。如果这是您的要求,那么就longtable
无法帮助您。但如果这是可以接受的,那么长度就没有限制longtable
……无论如何,这个特定的解决方案会longtable
在每章结束时完成并重新启动环境。(此外,各种规则完全是可选的;它们用于显示页面和表格的范围。)