首先,全面披露:这是我在这个网站上提出的第一个问题,所以提前道歉。
问题:我想要一个 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 作为在线协作的一部分。