表格:如果水平方向太长,则继续下一行

表格:如果水平方向太长,则继续下一行

我编写了一个 Python 程序,可以读取电子表格中的列,并为学生生成 LaTeX 格式的反馈表,如下所示:

在此处输入图片描述

我的问题是列数是可变的,并且取决于我选择的任务。

有时,列太多会导致生成的乳胶表超出页面边缘:

在此处输入图片描述

理想情况下,我希望乳胶能够识别表格已超出页面边缘并将其继续放在下面。

有什么办法吗?否则,我将需要编写一些必须事先将其切碎的代码,这并不理想。

编辑:表格的宽度事先是未知的:它取决于问题的数量和问题的描述,因此由 LaTeX 自动确定的动态延续更好。

答案1

不要使用一个表格,而要使用多个表格。在表格之间添加 \hspace{0pt} 以获取断点,并使用 \raggedright:

\documentclass{article}
\textwidth=10cm
\begin{document}
\raggedright
\begin{tabular}{l}
\hline
Q1\\
Beta Decay Equation\\
\hline
yes\\\hline
\end{tabular}\hspace{0pt}%
\begin{tabular}{l}
\hline
Q1\\
Beta Decay Equation\\
\hline
yes\\\hline
\end{tabular}\hspace{0pt}%
\begin{tabular}{l}
\hline
Q1\\
Beta Decay Equation\\
\hline
yes\\\hline
\end{tabular}\hspace{0pt}%
\end{document}

在此处输入图片描述

答案2

如果表格总是有 3 行,您也可以更改为垂直并使用longtable

\documentclass[]{article}

\usepackage{amssymb,longtable}

\begin{document}
\begin{longtable}{l|lc}
    Q1 & Beta Decay Equations & \checkmark\\
    Q2 & Alpha Decay Equations & \checkmark\\
    Q3 & Changes to the Nucleus & \checkmark
\end{longtable}
\end{document}

相关内容