
為什麼表格中的對角線超出框內,如何修復?
\documentclass[a4paper,twoside,12pt]{book}
\usepackage{placeins}
\usepackage{slashbox,pict2e}
\usepackage{amsmath,amssymb,mathptmx}
\begin{document}
\FloatBarrier
\begin{table}[h!]
\centering
\caption{Tabel $Q\cap M'$}
\begin{tabular}{|@{}c|c|c|c|c|}
\hline
\backslashbox{\tabular{@{}l@{}}$Q\in\mathfrak{p}$\endtabular}{$M'\in P(A)$}
& $\varnothing$& $\{1\}$& $\{2\}$&$\{1,2\}$\\
\hline
$\varnothing$&$\varnothing$&$\varnothing$&$\varnothing$&$\varnothing$\\
\hline
$\{1\}$&$\varnothing$&$\{1\}$&$\varnothing$&$\{1\}$\\
\hline\hline
$\varnothing$&$\varnothing$&$\varnothing$&$\varnothing$&$\varnothing$\\
\hline
$\{2\}$&$\varnothing$&$\varnothing$&$\{2\}$&$\{2\}$\\
\hline
\end{tabular}
\label{tabelksmanna}
\end{table}
\FloatBarrier
\end{document}
答案1
首先,我認為該slashbox
軟體包已被棄用,並且不再是 TeXLive 的一部分。相反,使用該diagbox
包。
@{}
其次,您可以透過省略環境參數中的粒子來解決遇到的問題tabular
。即,替換
\begin{tabular}{|@{}c|c|c|c|c|}
和
\begin{tabular}{|c|c|c|c|c|}
更一般地說,您可能需要重新考慮以表格方式顯示資訊的方法。
當我看你的桌子時,我首先看到的是很多很多垂直和水平線。需要付出不小的努力才能開始發現什麼裡面所有那些小(監獄)牢房。
請考慮採用更開放、更吸引人的「外觀」來呈現表格材料。您可以先省略所有垂直線,只保留幾條但間隔良好的水平線,如下例所示。 (順便問一下,第三行資料是不是第一行資料的重複?如果是的話,第三行就是多餘的,可以省略吧?)
我很確定您的讀者會欣賞您的努力 - 並透過實際費心查看內容表的。讓讀者吸收您提供的資訊必須被視為撰寫成功論文的一部分,對嗎? :-)
\documentclass[a4paper,twoside,12pt]{book}
\usepackage{diagbox,amsmath,amssymb}
\usepackage{newtxtext,newtxmath} % mathptmx is very old
\usepackage{booktabs} % new
\usepackage[skip=0.333\baselineskip]{caption} % optional
\begin{document}
\begin{table}[h!]
\centering
\caption{Tabel $Q\cap M'$}
\label{tabelksmanna}
\begin{tabular}{|c|c|c|c|c|}
\hline
\backslashbox{\tabular{@{}l@{}}$Q\in\mathfrak{p}$\endtabular}{$M'\in P(A)$}
& $\varnothing$& $\{1\}$& $\{2\}$&$\{1,2\}$\\
\hline
$\varnothing$&$\varnothing$&$\varnothing$&$\varnothing$&$\varnothing$\\
\hline
$\{1\}$&$\varnothing$&$\{1\}$&$\varnothing$&$\{1\}$\\
\hline\hline
$\varnothing$&$\varnothing$&$\varnothing$&$\varnothing$&$\varnothing$\\
\hline
$\{2\}$&$\varnothing$&$\varnothing$&$\{2\}$&$\{2\}$\\
\hline
\end{tabular}
\bigskip
\caption{Same material, rearranged}
%% Use an 'array' env. since all contents are math-y
$\begin{array}{@{}lcccc@{}}
\toprule
Q\in\mathfrak{p} & \multicolumn{4}{c@{}}{M'\in P(A)}\\
\cmidrule(l){2-5}
& \varnothing & \{1\} & \{2\} &\{1,2\} \\
\midrule
\varnothing&\varnothing&\varnothing&\varnothing&\varnothing\\
\{1\} & \varnothing & \{1\} & \varnothing & \{1\} \\
\addlinespace
\varnothing&\varnothing&\varnothing&\varnothing&\varnothing\\
\{2\}&\varnothing&\varnothing&\{2\}&\{2\}\\
\bottomrule
\end{array}$
\end{table}
\end{document}
答案2
其中有自己的內建指令{NiceTabular}
。nicematrix
\diagbox
\documentclass[a4paper,twoside,12pt]{book}
\usepackage{amssymb}
\usepackage{newtxtext,newtxmath}
\usepackage[skip=0.333\baselineskip]{caption}
\usepackage{nicematrix}
\begin{document}
\begin{table}[h!]
\centering
\caption{Tabel $Q\cap M'$}
\label{tabelksmanna}
\begin{NiceTabular}{w{c}{22mm}cccc}[vlines]
\Hline
\rule{0pt}{9mm}
\diagbox{\footnotesize $Q\in\mathfrak{p}$}{\footnotesize $M'\in P(A)$}
& $\varnothing$& $\{1\}$& $\{2\}$&$\{1,2\}$\\
\Hline
$\varnothing$&$\varnothing$&$\varnothing$&$\varnothing$&$\varnothing$\\
\Hline
$\{1\}$&$\varnothing$&$\{1\}$&$\varnothing$&$\{1\}$\\
\Hline\Hline
$\varnothing$&$\varnothing$&$\varnothing$&$\varnothing$&$\varnothing$\\
\Hline
$\{2\}$&$\varnothing$&$\varnothing$&$\{2\}$&$\{2\}$\\
\Hline
\end{NiceTabular}
\end{table}
\end{document}