我有一张包含多行但只有一列的表格。该列本身是算法的系数,因此只是一个数字。
目前,使用该longtable
包进行排版时,它看起来有些不太理想。我希望对其进行排版,以便表格看起来有两列,其语义类似于两列文档布局(文本从上到下,左列到右列)。
虽然我可以尝试手动模拟效果(通过使用两列表格),但每次更改分页时都需要进行大量的手动调整。
有没有什么办法可以解决这个问题?
更新 我附上了一个例子来说明我的意思(图片取自一篇旧的科学论文)。数据本身跨越两页(只显示了第一页)。
答案1
使用tabbing
环境而不是longtable
。它可以在模式中设置\twocolumn
。定义制表位后,第一行将被删除。但是,如果您可以在 \ttfamily 中设置所有行,则您不需要任何操作,一切都会好起来。或者将第一个“C(..) = ”放在固定宽度的框中。它也被格式化,因为所有数字的宽度都相同。
\documentclass[11pt]{article}
\usepackage[utf8]{inputenc}
\textheight=5cm
\def\Z{\phantom{0}}
\begin{document}
\twocolumn
\small\ttfamily
\begin{tabbing}
C(10) \== \=5.0000000000000-001 \\\kill
C(\Z1) \>=\> 0.0000000000000+000 \\
C(\Z2) \>=\> 5.0000000000000-001 \\
C(\Z3) \>=\> 0.0000000000000+000 \\
C(\Z4) \>=\> 5.0000000000000-001 \\
C(\Z5) \>=\> 0.0000000000000+000 \\
C(\Z6) \>=\> 5.0000000000000-001 \\
C(\Z7) \>=\> 0.0000000000000+000 \\
C(\Z8) \>=\> 5.0000000000000-001 \\
C(\Z9) \>=\> 0.0000000000000+000 \\
C(10) \>=\> 5.0000000000000-001 \\
C(11) \>=\> 0.0000000000000+000 \\
C(12) \>=\> 5.0000000000000-001 \\
C(13) \>=\> 0.0000000000000+000 \\
C(14) \>=\> 5.0000000000000-001 \\
C(15) \>=\> 0.0000000000000+000 \\
C(16) \>=\> 5.0000000000000-001 \\
C(17) \>=\> 5.0000000000000-001 \\
C(18) \>=\> 5.0000000000000-001 \\
C(19) \>=\> 5.0000000000000-001 \\
C(20) \>=\> 5.0000000000000-001 \\
\end{tabbing}
\end{document}
答案2
这是一个利用嵌套tabular
环境的解决方案。
\documentclass[11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{xspace}
%% tables
\RequirePackage{array}
\RequirePackage{booktabs}
\RequirePackage{longtable, graphicx}
\usepackage{amsmath}[2000/07/18]
\gdef\Z{\phantom{0}}
\begin{document}
\small
\begin{tabular}{|l|c|}
\begin{tabular}[t]{rlr}
C(\Z1) & = & 0.0000000000000+000 \\
C(\Z2) & = & 5.0000000000000-001 \\
C(\Z3) & = & 0.0000000000000+000 \\
C(\Z4) & = & 5.0000000000000-001 \\
C(\Z5) & = & 0.0000000000000+000 \\
C(\Z6) & = & 5.0000000000000-001 \\
C(\Z7) & = & 0.0000000000000+000 \\
C(\Z8) & = & 5.0000000000000-001 \\
C(\Z9) & = & 0.0000000000000+000 \\
C(10) & = & 5.0000000000000-001 \\
\end{tabular}&
\begin{tabular}[t]{rlll}
C(11) & = & 0.0000000000000+000 \\
C(12) & = & 5.0000000000000-001 \\
C(13) & = & 0.0000000000000+000 \\
C(14) & = & 5.0000000000000-001 \\
C(15) & = & 0.0000000000000+000 \\
C(16) & = & 5.0000000000000-001 \\
C(17) & = & 5.0000000000000-001 \\
C(18) & = & 5.0000000000000-001 \\
C(19) & = & 5.0000000000000-001 \\
C(20) & = & 5.0000000000000-001 \\
\end{tabular}
\end{tabular}
\end{document}
如果您以编程方式生成系数,则需要设计一些分页方法。您还可以改进上面的代码,我尽可能保持代码简单,以便清晰易懂,方法是使用格式化命令对齐小数和数字的符号。我使用了一个宏\Z
来对齐\phantom
数字。C( 1)
C(10)