并排放置两列文本,其中一列溢出

并排放置两列文本,其中一列溢出

首先,全面披露:这是我在这个网站上提出的第一个问题,所以提前道歉。

问题:我想要一个 Latex 命令,它接受两个文档并以以下方式呈现它们。两段文本应并排显示(以两列的方式),然后根据两段文本中较长的那一段再次切换到一列。笔记这两个文本可能很长,而且确实跨越多页。我可以访问这两个输入文档,但我希望尽可能少地修改它们,理想情况下解决方案根本不应该改变它们。

解决方案的极其逼真的草图。

+-----------------+
|   Shared Title  |
+--------+--------+
|        |        |
|        |        |
|  Left  |  Right |
|  Text  |  Text  |
|        |        |
|        |        |
|        |        |
+--------+--------+
    ~pagebreak~ 
+--------+--------+
|  Left  |  Right |
|  Text  |  Text  |
|        +--------|
|                 |
|  Trailing End   |
|  of Left Text   |
+--------+--------+

我目前得到的:感谢以下问题这个我能够使用以下代码将两个文本并排放置。

\newcommand{\sidebyside}[2]
{
    \begin{paracol}{2}
    \begin{tcolorbox}[blanker, breakable, width=\linewidth]
        #1
    \end{tcolorbox}
    \switchcolumn
    \begin{tcolorbox}[blanker, breakable, width=\linewidth]
        #2
    \end{tcolorbox}
    \end{paracol}   
}

我稍后可以在文档中通过如下调用使用它:

\sidebyside{\input{left_text}}{\input{right_text}}

但是,使用此设置,无论出现哪个文本,较长的文本都会继续出现在其自己的列中,而我希望它打破两列布局并继续使用整个页面。我的想法是修改上一个命令,以仅打印两个输入之一的一部分,以使其长度与最短相匹配,如下所示:

\newcommand{\sidebyside}[2]
{
    % Somehow measure which of #1 and #2 is longer
    \begin{paracol}{2}
    \begin{tcolorbox}[blanker, breakable, width=\linewidth]
        % Part of #1 with length matched to #2
    \end{tcolorbox}
    \switchcolumn
    \begin{tcolorbox}[blanker, breakable, width=\linewidth]
        % Part of #2 with length matched to #1
    \end{tcolorbox}
    \end{paracol}

    % Put here the remaining trail of either #1 and #2
}

我面临的主要子问题是:“如何测量两个输入中哪个更长?”“如何根据给定的目标长度仅打印部分输入?”

我上面描述的方法可能注定会失败,所以我愿意接受任何解决方案。我正在使用 Overleaf 作为在线协作的一部分。

相关内容