表格的两列布局

表格的两列布局

我有一张包含多行但只有一列的表格。该列本身是算法的系数,因此只是一个数字。

目前,使用该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)

相关内容