分页时两列面对面

分页时两列面对面

我想制作一个翻译文本的命令。我希望有两列相对的文本:左边是原文,右边是译文,后面是文本信息。

我已经制作了两种命令,它们运行得很好,除非文本太长,或者文本中有分页符:

  • \kt正在使用多色包,带有分页符,我在第一页的两列中都有原始文本,并且翻译从第二页开始,因此它们并不位于彼此的前面。

  • \ktt正在使用表格环境,但为了避免表格中的分页符,它会将翻译后的文本进一步移动,并且不尊重我想要的书写顺序(即使使用 [h!])。例如,在我的 MWE 中:我写了

    1. 一个正常的段落,
    2. 翻译的文本,
    3. 加粗的段落,

但文档显示的顺序是 1,3,2 (正常、粗体、翻译),其中有一个大空白。

\documentclass[12pt,a4paper,final]{report}

\usepackage[utf8]{inputenc}
\usepackage[frenchb]{babel}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[babel=true]{csquotes}
\usepackage{setspace}
\usepackage{lipsum}
\usepackage{multicol}
\usepackage{relsize}

\newcommand{\kt}[5]{\begin{quote} \begin{singlespace} \begin{multicols}{2}
\smaller \og {\itshape  #4} \fg \vfill \columnbreak #5
\begin{flushright} #2, p. #1, trad. #3 \end{flushright} % normally I have \cite[#1]{#2}
\end{multicols} \end{singlespace} \end{quote}}

\newcommand{\ktt}[5]{%
\begin{table}[h!]
\centering
\begin{singlespace}
\begin{tabular}{p{0.43\textwidth}p{0.43\textwidth}}
\smaller \enquote{{\itshape #4}} (#2, p. #1) & \smaller #5 (#3)\\  % normally I have \cite[#1]{#2}
\end{tabular}
\end{singlespace}
\end{table}}

\begin{document}
\lipsum[1-3]
\kt{PAGE}{BOOK}{TRANSLATOR}{\lipsum[1-2]}{\lipsum[1-2]}

\pagebreak
\lipsum[1]
\ktt{PAGE}{BOOK}{TRANSLATOR}{\lipsum[1-2]}{\lipsum[1-2]}
\textbf{\lipsum[2]}

\end{document}

我认为有两种解决方案是可能的:

  • 使用多色命令,强制第二列从第一列前面开始,即使有分页符
  • 对于表格环境,允许分页并强制其遵循顺序。

我尝试过使用长桌包,使用此代码\ktt,但它并没有改变任何东西,也许我没有很好地使用它:

\newcommand{\ktt}[5]{%
\begin{table}[h!]
\centering
\begin{singlespace}
\begin{longtable}{p{0.43\textwidth}p{0.43\textwidth}}
\smaller \enquote{{\itshape #4}} (#2, p. #1) & \smaller #5 (#3)\\  % normally I have \cite[#1]{#2}
\end{longtable}
\end{singlespace}
\end{table}}

如果有人能帮忙,谢谢。

两个小词:

  • \lipsum出现了括号问题,但是我用普通文本时没有遇到这个问题,所以这里不相关。

  • 我已经修改了命令以避免\引用对于#1 和#2,这样我就不必在 MWE 中添加一些书目参考。

编辑 :

谢谢 Arash 和 touhami。我尝试了不同的软件包,最后使用了帕拉科尔。由于这两列是在“引号”环境中插入的,因此我需要使用负值\setlength{\columnsep}{...},尝试根据我的需要进行调整。

但我现在遇到了新的问题:这两列被打印了在下面脚注。

脚注下各列的 MWE

\documentclass[12pt,a4paper,final]{report}

\usepackage[utf8]{inputenc}
\usepackage[frenchb]{babel}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[babel=true]{csquotes}
\usepackage{setspace}
\usepackage{lipsum}
\usepackage{relsize}
\usepackage{paracol}

\newcommand{\kt}[5]{
\begin{quote}
\setlength{\columnsep}{-.12\textwidth}
\begin{paracol}{2}
\begin{singlespace}
\sloppy \smaller \og {\itshape  #4} \fg (#2, p. #1) \switchcolumn #5 (#3) % normally I have \cite[#1]{#2}
\end{singlespace}
\end{paracol}
\end{quote}
}

\begin{document}
\lipsum[1-3]\footnote{foo}
\kt{PAGE}{BOOK}{TRANSLATOR}{\lipsum[1]}{\lipsum[1]}
\end{document}

我已经看到了那里的问题:使用 paracol 包解决脚注问题。我粘贴了 David-Carlisle 在他的回答中给出的代码,即使我真的不明白,现在脚注已经消失了在相关页面上。

消失的脚注的 MWE:

\documentclass[12pt,a4paper,titlepage,final]{report}

\usepackage[utf8]{inputenc}
\usepackage[frenchb]{babel}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[babel=true]{csquotes}
\usepackage{setspace}
\usepackage{lipsum}
\usepackage{relsize}
\usepackage{paracol}

\makeatletter
\newbox\mybox
\def\pcol@makenormalcol{%
  \ifvoid\footins 
  \else
\global\setbox\mybox\box\footins
   \fi
\setbox\@outputbox\box\@holdpg
  \let\@elt\relax
  \xdef\@freelist{\@freelist\@midlist}%
  \global\let\@midlist\@empty
  \@combinefloats}

\makeatother

\newcommand{\kt}[5]{
\begin{quote}
%\setcolumnwidth{.1\textwidth,.1\textwidth}[1,2]
\setlength{\columnsep}{-.12\textwidth}
\begin{paracol}{2}
\begin{singlespace}
\sloppy \smaller \og {\itshape  #4} \fg (#2, p. #1) \switchcolumn #5 (#3)
%\begin{flushright}trad. #3 \end{flushright} % normally I have \cite[#1]{#2}
\end{singlespace}
\end{paracol}
\end{quote}
}

\begin{document}
\lipsum[1-3]\footnote{foo}
\kt{PAGE}{BOOK}{TRANSLATOR}{\lipsum[1]}{\lipsum[1]}
\end{document}

第二次编辑:

它似乎与 touhami 的建议一起使用:

\footnotelayout{m}

我不太明白这个命令是如何工作的,我以为它只适用于脚注里面翻译的文本,但事实上,它解决了我的问题,即使脚注是外部我的 \kt 环境。

谢谢 !

答案1

multicol并且longtable不是为此类用途而设计的,并且table环境不允许分页。

paracol这是一个带有包的解决方案

\documentclass[12pt,a4paper,final]{report}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{relsize}

\usepackage{paracol,lipsum}

\usepackage[frenchb]{babel}



%\columnratio{.5}
%\columnsep =10pt
\newcommand{\kt}[5]{%
\sloppy
\begin{paracol}{2}
\smaller \og {\itshape  #4} \fg    %  becarful here as \lipsum end with \par
\switchcolumn
#5
\end{paracol}
\begin{flushright} #2, p. #1, trad. #3 \end{flushright}}

\begin{document}
\lipsum[1-3]
\kt{PAGE}{BOOK}{TRANSLATOR}{\lipsum[1-2]}{\lipsum[1-2]}


\end{document}

相关内容