表格中的组合标题单元格

表格中的组合标题单元格

这个问题与至少另外两个问题密切相关,即:数字表, 和slashbox 替代品

我所追求的是 OP 中第一个提到的问题(下面重新包含)的图片中行标题和列标题的水平和垂直对齐。

两个问题的答案中都有一些印刷方面的问题没有得到满足:

  1. $n$标题以与列内容相同的方式水平对齐。
  2. $k$标题在其容器框中右对齐,并与其行内容垂直对齐。

如何才能实现这一目标呢?

我对实现这一目标的任何方法都很感兴趣;无论是 Plain、LaTeX、Context、Lua、PGF/TikZ……无论什么!


为了实现这一目标,我用简单的英语描述步骤如下:

  1. 输入$n$降低的 -header,例如 1em,以便它获得列的自然宽度,以及序言中指定的正确格式(例如,居中或左对齐)。但表现得好像什么都没做,这样它就不会占用后面的空间。
  2. 输入$k$-header flush right。垂直对齐应该自动与行内容对齐。同样,这可能不会占用任何空间,所以就当什么都没做一样。
  3. 将上述两个框合并为一个实体,\hss(?)彼此分开,并从框的自然宽度(理想情况下与整个列的自然宽度相同?)右下角到左上角划一条线。

但由于我的 TeX 功底严重欠缺,我无法用 TeX 表达这些要求。更不用说理解这是否是正确的方法了!

答案1

请考虑下图: 替代文本

最小宽度,需要让两个单词对齐,并在它们之间有一个斜线,即两个单词的总宽度加上一点边距。

可以通过向其中一个单词添加适当宽度的支柱来实现对齐,如下面的代码所示(基本示例来自slashbox 替代品)。

\documentclass{article}
\usepackage{slashbox,booktabs,xcolor,amsmath}
\begin{document}
\noindent
\begin{tabular}{|l||*{5}{c|}}\hline
\backslashbox{\colorbox{orange}{Class venue $(w_1)$}}{\colorbox{yellow}{\vrule height4.8ex width0pt Date $(w_2)$}}
&\makebox[3em]{5/31}&\makebox[3em]{6/1}&\makebox[3em]{6/2}
&\makebox[3em]{6/3}&\makebox[3em]{6/4}\\\hline\hline
Meeting Room &&&&&\\\hline
Auditorium &&&&&\\\hline
Seminar Room &&&&&\\\hline
\end{tabular}
\end{document}

我确信,只要有一点毅力,我们的一位数学家成员就能证明,构造印刷正确的斜线框是不可能的!

答案2

\documentclass{article}

\usepackage{picture,slashbox}

\begin{document}

\begin{tabular}{@{}c|*6c} 
\backslashbox[0pt][l]{}{}
  & \makebox(0,0)[lb]{\put(-1.25\tabcolsep,0){\llap{k}}}%
a & 0 & 1 & 2 & 3 \\\hline
\makebox(0,0){\put(0,2.25\normalbaselineskip){\rlap{n}}}%
0 & b & 1 & 2 & 3 & 4\\
1 & c & 1 & 2 & 3 & 4\\
2 & d & 1 & 2 & 3 & 4\\
\end{tabular}

\end{document}

替代文本

相关内容