我有一张表格,我想知道如何在表格外面、在表格周围写特定的文字。
一个简单的例子是这样的:
表格上方: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}