我怎样才能用粗线条重现这张表格?

我怎样才能用粗线条重现这张表格?

我正在尝试重现该表:

带有较粗的第一条垂直线和水平线的表格

(抱歉,手机拍的照片太差了)

我不知道如何得到稍微粗一点的最左边和最上面的线。

这是我目前所拥有的一个简单的例子:

\documentclass[a4paper,12pt]{article}

\begin{document}

\begin{tabular}{c|c|c|c|c|c}
    $*$ & $a$ & $b$ & $c$ & $d$ & $e$ \\\hline
    $a$ & $a$ & $b$ & $c$ & $b$ & $d$ \\\hline
    $b$ & $b$ & $c$ & $a$ & $e$ & $c$ \\\hline
    $c$ & $c$ & $a$ & $b$ & $b$ & $a$ \\\hline
    $d$ & $b$ & $e$ & $b$ & $e$ & $d$ \\\hline
    $e$ & $d$ & $b$ & $a$ & $d$ & $c$
\end{tabular}

\end{document}

有没有简单的方法可以使最左边和最上面的线条变粗?

答案1

您可以像下面这样定义一个加厚版本\hline和一个加厚|的新列类型。两者都基于原始代码,只是厚度从\arrayrulewidth改为1pt

\documentclass[a4paper,png]{standalone}
\usepackage{array}

\makeatletter
\newcommand{\thickhline}{%
    \noalign {\ifnum 0=`}\fi \hrule height 1pt
    \futurelet \reserved@a \@xhline
}
\newcolumntype{"}{@{\hskip\tabcolsep\vrule width 1pt\hskip\tabcolsep}}
\makeatother


\begin{document}

\begin{tabular}{c"c|c|c|c|c}
    $*$ & $a$ & $b$ & $c$ & $d$ & $e$ \\\thickhline
    $a$ & $a$ & $b$ & $c$ & $b$ & $d$ \\\hline
    $b$ & $b$ & $c$ & $a$ & $e$ & $c$ \\\hline
    $c$ & $c$ & $a$ & $b$ & $b$ & $a$ \\\hline
    $d$ & $b$ & $e$ & $b$ & $e$ & $d$ \\\hline
    $e$ & $d$ & $b$ & $a$ & $d$ & $c$
\end{tabular}

\end{document}

结果


根据此处的要求,提供以下厚版的定义\cline

\newcommand{\thickcline}[1]{%
    \@thickcline #1\@nil%
}

\def\@thickcline#1-#2\@nil{%
  \omit
  \@multicnt#1%
  \advance\@multispan\m@ne
  \ifnum\@multicnt=\@ne\@firstofone{&\omit}\fi
  \@multicnt#2%
  \advance\@multicnt-#1%
  \advance\@multispan\@ne
  \leaders\hrule\@height1pt\hfill
  \cr
  \noalign{\vskip-1pt}%
}

答案2

包裹tabu通过垂直线和命令的可选参数提供这样的修改\tabucline

\documentclass[a4paper,12pt]{article}
\usepackage{tabu}
\begin{document}

\begin{tabu}{c|[2pt]c|c|c|c|c}
    $*$ & $a$ & $b$ & $c$ & $d$ & $e$ \\\tabucline[2pt]{-}
    $a$ & $a$ & $b$ & $c$ & $b$ & $d$ \\\hline
    $b$ & $b$ & $c$ & $a$ & $e$ & $c$ \\\hline
    $c$ & $c$ & $a$ & $b$ & $b$ & $a$ \\\hline
    $d$ & $b$ & $e$ & $b$ & $e$ & $d$ \\\hline
    $e$ & $d$ & $b$ & $a$ & $d$ & $c$
\end{tabu}

\end{document}

但是,要制作美观的表格,请避免使用垂直线,并尽量少用水平线。为此,我推荐使用 booktabs 包。通过谷歌,您会找到很多示例。

答案3

{NiceTabular}这是使用 的解决方案nicematrix。该环境类似于经典的{tabular}( array),但在单元格、行和列下创建 PGF/Tikz 节点。可以使用这些节点在 中使用 Tikz 绘制您想要的任何规则\CodeAfter

\documentclass{article}
\usepackage{nicematrix,tikz}

\begin{document}

$\begin{NiceArray}{cccccc}[hvlines-except-borders]
    * & a & b & c & d & e \\
    a & a & b & c & b & d \\
    b & b & c & a & e & c \\
    c & c & a & b & b & a \\
    d & b & e & b & e & d \\
    e & d & b & a & d & c
\CodeAfter
    \tikz \draw [thick, line cap = round] (2-|1) -- (2-|last) (1-|2) -- (last-|2) ; 
\end{NiceArray}$

\end{document}

您需要多次编译(因为nicematrix在后台使用 PGF/Tikz 节点)。

第一个代码的输出

使用最新版本nicematrix(2022-07-16 的 v. 6.11),还可以定义具有任何所需 Tikz 特性的命令(用于水平规则)和字母(用于垂直规则)。

\documentclass[a4paper,12pt]{article}
\usepackage{nicematrix,tikz}

\begin{document}

\NiceMatrixOptions
  {
    custom-line = 
     {
       letter = I , % for the vertical rules
       command = boldhline , % the horizontal rules 
       total-width = 1 pt , 
       tikz = { line width = 1 pt } 
     }
  }

\begin{NiceTabular}{cIc|c|c|c|c}
    $*$ & $a$ & $b$ & $c$ & $d$ & $e$ \\\boldhline
    $a$ & $a$ & $b$ & $c$ & $b$ & $d$ \\\hline
    $b$ & $b$ & $c$ & $a$ & $e$ & $c$ \\\hline
    $c$ & $c$ & $a$ & $b$ & $b$ & $a$ \\\hline
    $d$ & $b$ & $e$ & $b$ & $e$ & $d$ \\\hline
    $e$ & $d$ & $b$ & $a$ & $d$ & $c$
\end{NiceTabular}

\end{document}

输出并不完全相同,因为现在为规则的宽度(水平和垂直)保留了一个空间。

在此处输入图片描述

相关内容