我对 LaTeX 还只是个初学者,我只用过 LaTeX 来完成概率与统计和物理课程的家庭作业。随着我尝试学习更多有用的命令,我的格式每周都在慢慢改进。现在,我想重新创建教授在本周的作业集中使用的表格。
我的文档中目前有以下代码:
\renewcommand{\arraystretch}{1.5}
\begin{center}
\begin{tabular}
{|m{.75cm}|m{.75cm}|m{.75cm}|m{.75cm}|m{.75cm}|m{.75cm}|}
\hline
\multicolumn{5}{|c|}{$\mathbf{Toilet \ Paper}$}\\
\hline
& $\mathbf{0}$ & $\mathbf{1}$ & $\mathbf{2}$ & $\mathbf{3}$ \\
\hline
$\mathbf{0}$ & 0.31 & 0.22 & 0.09 & 0.04\\
\hline
$\mathbf{1}$ & 0.15 & 0.05 & 0.04 & 0.01\\
\hline
$\mathbf{2}$ & 0.04 & 0.03 & 0.01 & 0.01\\
\hline
\end{tabular}
\end{center}
我希望能够缩短包含“卫生纸”列标题的行,以便它不包含最左边的列。我还想为行标题添加“Wipes”,类似于参考图片中的“W”。有什么想法吗?我认为重要的是要注意,在输入的代码中,我使用了 longtable、array 和 amsmath 包。
编辑:这是我的第一篇帖子。我愿意听取关于如何格式化或在这类问题中还包含哪些内容的建议。谢谢!
答案1
我建议使用新包tabularray
。有了它,表格定制就非常容易了:
\documentclass{article}
\usepackage{tabularray}
\begin{document}
\begin{center}
\begin{tblr}{
colspec={cQ[c,m,.75cm]Q[c,m,.75cm]Q[c,m,.75cm]Q[c,m,.75cm]Q[c,m,.75cm]},
row{1-2} = {font=\bfseries},
column{1-2} = {font=\bfseries},
vline{2} = {3-5}{solid},
vline{3-7} = {2-5}{solid},
abovesep=4pt}
& &\SetCell[c=4]{c}{\bfseries Toilet Paper}\\
\cline{3-6}
& & 0 & 1&2 &3 \\
\cline{2-6}
\SetCell[r=3]{c}Wipes& 0 & 0.31 & 0.22 & 0.09 & 0.04\\
\cline{2-6}
& 1 & 0.15 & 0.05 & 0.04 & 0.01\\
\cline{2-6}
& 2 & 0.04 & 0.03 & 0.01 & 0.01\\
\cline{2-6}
\end{tblr}
\end{center}
\end{document}
答案2
这里有一个解决方案,它使用 (a) 环境array
而不是tabular
环境(这样我就不用使用大量$
符号来启动和终止内联数学模式了)和 (b) 使用w
列类型而不是m
列类型。我选择了后者,因为似乎不需要自动换行符。
\textbf{T}
(我把用\textbf{To...}
和\textbf{W}
替换留给读者作为练习\textbf{Wi...}
。)
\documentclass{article}
\usepackage{array} % for w column type
% two handy shortcut macros:
\newcommand{\blank}{\multicolumn{1}{c}{}}
\newcommand{\blankx}{\multicolumn{1}{c|}{}}
\begin{document}
\[
\renewcommand{\arraystretch}{1.75}
% your prof actually seems to have used "\setlength\extrarowheight{8pt}"
\begin{array}{ c | c | *{4}{wc{7.5mm}|} }
\blank & \blank & \multicolumn{4}{c}{\textbf{T}}\\
\cline{3-6}
\blank & \blankx & \mathbf{0} & \mathbf{1} & \mathbf{2} & \mathbf{3} \\
\cline{2-6}
& \mathbf{0} & 0.31 & 0.22 & 0.09 & 0.04\\
\cline{2-6}
\textbf{W} & \mathbf{1} & 0.15 & 0.05 & 0.04 & 0.01\\
\cline{2-6}
& \mathbf{2} & 0.04 & 0.03 & 0.01 & 0.01\\
\cline{2-6}
\end{array}
\]
\end{document}
答案3
这是一个{NiceTabular}
使用 的解决方案nicematrix
。
在该环境中,键hvlines
会绘制所有规则,但“外部”行和列(由键first-row
和指定)以及空角(使用first-col
键时)除外。corners
\documentclass{article}
\usepackage{nicematrix}
\begin{document}
\begin{center}
\renewcommand{\arraystretch}{1.3}
\begin{NiceTabular}
[first-row,first-col,hvlines,corners,columns-width=auto]
{>{\bfseries}ccccc}
& &\Block{1-4}{\bfseries Toilet Paper}\\
& & \RowStyle{\bfseries} 0 & 1 & 2 &3 \\
& 0 & 0.31 & 0.22 & 0.09 & 0.04\\
\bfseries Wipes & 1 & 0.15 & 0.05 & 0.04 & 0.01\\
& 2 & 0.04 & 0.03 & 0.01 & 0.01\\
\end{NiceTabular}
\end{center}
\end{document}
您需要进行多次编译(因为nicematrix
在后台使用了 PGF/TikZ 节点)。