创建自定义表格

创建自定义表格

有没有办法制作类似表格的东西,这样我们在循环中将每一列放在一行中,然后以自定义格式呈现它们。像这样

\begin{custom_tabular}
l1c1 & l1c2 & l1c3 \\
l2c1 & l2c2 & l2c3
\end{custom_tabular}

并以自定义格式呈现元素,例如

\textbf{l1c1}: l1c2$^{l1c3}$

针对所有行。预期输出:

在此处输入图片描述

答案1

你可以这样做包裹collcell它允许您将每列的条目传递给命令以进行进一步处理:

在此处输入图片描述

下面我定义了两种新的列类型。H列类型用于标题列,E列类型用于指数列。中间列只是一个普通的l,但带有一个,@{}以消除此列与包含指数的后续列之间的列分隔。

参考:

我之前的一个回答在表格中自定义“单元格环境”还显示:

  • 如何使用包裹array,它肯定可以容纳标题列

      \newcolumntype{H}{>{\bfseries}l<{:}}%
    

    但不确定如何让上标列起作用。

  • 一种不需要任何附加包的方法,通过定义宏来处理每一行。但是,这需要更改表的每一行。

代码:

\documentclass{article}
\usepackage{collcell}

\newcommand{\HeaderColumn}[1]{\textbf{#1:}}
\newcommand{\ExponentColumn}[1]{${}^{#1}$}%

\newcolumntype{H}{>{\collectcell\HeaderColumn}{l}<{\endcollectcell}}
\newcolumntype{E}{>{\collectcell\ExponentColumn}{l}<{\endcollectcell}}

\begin{document}
  \begin{tabular}{H l@{} E}
    l1c1 & l1c2 & l1c3 \\
    l2c1 & l2c2 & l2c3
  \end{tabular}
\end{document}

答案2

这正是\halignTeX 原语所做的。

\halign{{\bf#\unskip}: &#\unskip&$^{#}$\cr
l1c1 & l1c2 & l1c3 \cr
l2c1 & l2c2 & l2c3 \cr
}

相关内容