下面,longtable
在解决方案环境中,表格是不可拆分的。那么,如何让\newpage
表格拆分成两页呢?
\documentclass[answers]{exam}
\usepackage{longtable}
\usepackage{caption,booktabs,siunitx,multicol}
\begin{document}
\begin{questions}
\question some question
\begin{solution}
\setlength\LTleft{0pt}
\setlength\LTright{0pt}
\begin{longtable}{
@{\extracolsep{\fill}}
lr
*{2}{%
S[table-format=2.2,
round-precision=2,round-mode=places,
round-integer-to-decimal=true]%
}@{}}
\toprule
\multicolumn{2}{c}{H1 and H2} & H3 & H4 \\
\midrule\endhead
left & right & 78.79 & 23.45 \\
\newpage
left & right & 78.79 & 23.45 \\
\bottomrule
\end{longtable}
\end{solution}
\end{questions}
\end{document}
答案1
它似乎与 longtable 无关,这是一个简单的解决方案
aaa
\pagebreak
bbb
分页符同样被忽略。解决方案设置在一个框中,似乎该类并不总是将其取消装箱以允许分页。
作为指向可能的解决方案的指针,此版本(仅添加了 vspace)中断,但末尾可能有一个不需要的长白色块。
\documentclass[answers]{exam}
\usepackage{longtable}
\newbox\mybox
\usepackage{caption,booktabs,siunitx,multicol}
\begin{document}
\setbox\mybox\vbox{
}
\begin{questions}
\question some question
\begin{solution}
\setlength\LTleft{0pt}
\setlength\LTright{0pt}
\begin{longtable}{
@{\extracolsep{\fill}}
lr
*{2}{%
S[table-format=2.2,
round-precision=2,round-mode=places,
round-integer-to-decimal=true]%
}@{}}
\toprule
\multicolumn{2}{c}{H1 and H2} & H3 & H4 \\
\midrule\endhead
left & right & 78.79 & 23.45 \\
\newpage
left & right & 78.79 & 23.45 \\
\bottomrule
\end{longtable}
\vspace{\textheight}
\end{solution}
\end{questions}
\end{document}
请注意,如果在框中使用 longtable,通常可以使断言起作用,但永远不会添加表头和表尾,因此预计第二页上会缺少表头(并且无法使用 longtable 真正修复)