我想制作一个翻译文本的命令。我希望有两列相对的文本:左边是原文,右边是译文,后面是文本信息。
我已经制作了两种命令,它们运行得很好,除非文本太长,或者文本中有分页符:
\kt正在使用多色包,带有分页符,我在第一页的两列中都有原始文本,并且翻译从第二页开始,因此它们并不位于彼此的前面。
\ktt正在使用表格环境,但为了避免表格中的分页符,它会将翻译后的文本进一步移动,并且不尊重我想要的书写顺序(即使使用 [h!])。例如,在我的 MWE 中:我写了
- 一个正常的段落,
- 翻译的文本,
- 加粗的段落,
但文档显示的顺序是 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}