Диагональная линия в таблице выходит за рамки

Диагональная линия в таблице выходит за рамки

Почему диагональная линия в таблице выходит за рамки и как это исправить?

введите описание изображения здесь

\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}

Вывод кода выше

Связанный контент