如何在表格外写字符?

如何在表格外写字符?

我有一张表格,我想知道如何在表格外面、在表格周围写特定的文字。

一个简单的例子是这样的:

表格上方:abc

表格右侧:def

表格左侧:ghi

桌子下面:jkl

以使这些字母分别与行和列对齐的方式。

\begin{document}

\begin{table}[H]
    \centering
    \begin{tabular}{|c|c|c|}
\hline
        a & b & c \\
        \hline
        d & e & f \\
        \hline
        h & i & j \\
        \hline
    \end{tabular}

\end{table}

\end{document}

有人能告诉我怎样做吗?

提前致谢

答案1

也许不是最优雅的,但有效:

\documentclass{article}
\usepackage{float}

\begin{document}

\begin{table}[H]
    \centering
    \newcommand{\myline}{\cline{2-4}}
    \newcommand{\noline}[1]{\multicolumn{1}{c}{#1}}
    \begin{tabular}{c|c|c|c|c}
        \noline{} & \noline{a} & \noline{b} & \noline{c} & \\
        \myline
        g & a & b & c & d \\
        \myline
        h & d & e & f & e \\
        \myline
        i & h & i & j & f \\
        \myline
        \noline{} & \noline{j} & \noline{k} & \noline{l} &
    \end{tabular}
\end{table}

\end{document}

在此处输入图片描述

一些评论:

  • |我在左右各加了一列,前后没有竖线。所以这些列在表格的“外框”之外。
  • 我没有以 a 开始或结束,\hline因此第一行和最后一行位于表格的“外框”之外。
  • 我使用\cline{2-4}而不是\hline让垂直线不延伸到最外面的两列。
  • 我用来\multicolumn{1}{c}删除第一行和最后一行单元格周围的垂直线。

答案2

只是为了好玩,使用 tikz 矩阵的版本:

在此处输入图片描述

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix}

\begin{document}

\begin{tikzpicture}[cell/.style={rectangle,draw=black}, nodes in empty cells]
  \matrix(table)[
  matrix of nodes,
  row sep =-\pgflinewidth,
  column sep = -\pgflinewidth,
  nodes={anchor=center,text height=2ex,text depth=0.25ex, minimum width=1cm, fill=none, draw=black},
  column 1/.style = {nodes={draw=none}},
  column 5/.style = {nodes={draw=none}},
  row 1/.style={nodes={draw=none}},
  row 5/.style={nodes={draw=none}},
  ] 
  {  & a & b & c &   \\
   g & a & b & c & d \\
   h & d & e & f & e \\
   i & h & i & j & f \\
     & j & k & l &  \\
  };
\end{tikzpicture}

\end{document}

答案3

与。{NiceTabular}nicematrix

\documentclass{article}
\usepackage{nicematrix}

\begin{document}

\begin{NiceTabular}{ccc}[first-row,last-row,first-col,last-col,hvlines]
  & a & b & c \\
g & a & b & c & d \\
h & d & e & f & e \\
i & h & i & j & f \\
  & j & k & l \\
\end{NiceTabular}

\end{document}

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

上述代码的输出

答案4

tabularray

\documentclass{article}
\usepackage{tabularray}

\begin{document}

\section{Manually}

\begin{tblr}{
hline{2-6} = {2-4}{solid},
vline{2-5} = {2-5}{solid},
}
  & 1 & 2 & 3 &  \\
a & X & Y & Z & b\\
c & U & S & T & d\\
e & N & M & O & f\\
g & J & K & L & h\\
  & i & ii & iii & \\
\end{tblr}

\section{Automated}

\begin{tblr}{
hline{2-\value{rowcount}} = {2-\numexpr\value{colcount}-1}{solid},
vline{2-\value{colcount}} = {2-\numexpr\value{rowcount}-1}{solid},
}
  & 1 & 2 & 3 &  \\
a & X & Y & Z & b\\
c & U & S & T & d\\
e & N & M & O & f\\
g & J & K & L & h\\
  & i & ii & iii & \\
\end{tblr}

\end{document}

相关内容