tabularx и rotatebox: вертикальное центрирование на странице

tabularx и rotatebox: вертикальное центрирование на странице

У меня есть таблица tabularx, повернутая на 90 градусов с помощью rotatebox, содержащаяся на рисунке.

Что-то мешает LaTeX центрировать рисунок на странице:закрывать, но немного слишком близко к верху страницы.

Кто-нибудь знает, что здесь происходит? Любая помощь будет высоко оценена.

МВЭ:

\documentclass[11pt, a4paper]{book}
\usepackage{pifont,tabularx,adjustbox,booktabs}

\begin{document}

\begin{figure}
    \newcolumntype{R}[2]{%
    >{\adjustbox{angle=#1,lap=\width-(#2)}\bgroup}%
    l%
    <{\egroup}%
}
\newcommand*\rot{\multicolumn{1}{R{30}{1em}}}
\newcommand*\sq{\mathbin{\vcenter{\hbox{\rule{.2ex}{.2ex}}}}}

\scriptsize
\rotatebox[origin=bl]{90}{
\begin{tabularx}{\textwidth}{lcccccccccccccccccccc}
& \multicolumn{18}{c}{\textsc{Data 1}}\\
 & \rot{Name A} & \rot{Name B} & \rot{Name C} & \rot{Name D} & \rot{Name E} & \rot{Name F} & \rot{Name G} & \rot{Name H} & \rot{Name I} & \rot{Name J} & \rot{Name K} & \rot{Name L} & \rot{Name M} & \rot{Name N} & \rot{Name O} & \rot{Name P} & \rot{Name Q} & \rot{Name R} & \\
\cmidrule{2-20}
\textsc{Data 2} & & & & & & & & & & & & & & & & & & & \\
Name S & $\sq$ & $\sq$ & $\sq$ & $\sq$ & $\sq$ & $\sq$ & $\sq$ & $\sq$ & $\sq$ & $\sq$ & $\sq$ & $\sq$ & $\sq$ & $\sq$ & $\sq$ & $\sq$ & $\sq$ & \ding{51} & \\
\end{tabularx}
}
    \caption{This is a caption.}
\end{figure}

\end{document}

решение1

Ваша таблица шире, чем \textwidth. Однако tabularx имеет смысл только в том случае, если вы используете спецификатор столбца X.

\documentclass[11pt, a4paper]{book}
\usepackage{pifont,tabularx,adjustbox,booktabs}
\usepackage{showframe}

\begin{document}

\begin{figure}
    \newcolumntype{R}[2]{%
            >{\adjustbox{angle=#1,lap=\width-(#2)}\bgroup}%
            l%
            <{\egroup}%
        }
        \newcommand*\rot{\multicolumn{1}{R{30}{1em}}}
        \newcommand*\sq{\mathbin{\vcenter{\hbox{\rule{.2ex}{.2ex}}}}}
        \scriptsize\centering
        \rotatebox[origin=bl]{90}{%
            \begin{tabular}{lcccccccccccccccccccc}
                & \multicolumn{18}{c}{\textsc{Data 1}}\\
                & \rot{Name A} & \rot{Name B} & \rot{Name C} & \rot{Name D} & \rot{Name E} & \rot{Name F} & 
                \rot{Name G} & \rot{Name H} & \rot{Name I} & \rot{Name J} & \rot{Name K} & \rot{Name L} & 
                \rot{Name M} & \rot{Name N} & \rot{Name O} & \rot{Name P} & \rot{Name Q} & \rot{Name R} & \\
                \cmidrule{2-20}
                \textsc{Data 2} & & & & & & & & & & & & & & & & & & & \\
                Name S & $\sq$ & $\sq$ & $\sq$ & $\sq$ & $\sq$ & $\sq$ & $\sq$ & $\sq$ & $\sq$ & $\sq$ & 
                $\sq$ & $\sq$ & $\sq$ & $\sq$ & $\sq$ & $\sq$ & $\sq$ & \ding{51} & \\
            \end{tabular}%
        }
        \caption{This is a caption.}
    \end{figure}

\end{document}

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

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