여러 페이지로 구성된 긴 테이블(일부 셀에 긴 텍스트가 있음)을 모드에서 세로로 가운데에 맞추려고 합니다 landscape
. 나는 이 테이블을 만들기 위해 xltabular
와 를 사용합니다. threeparttablex
테이블이 성공적으로 생성될 수 있지만(MWE 아래에서 찾아보세요) 페이지의 수직 중앙에 표시되지 않습니다(스크린샷 첨부).
\centering
다른 게시물에서 언급한 대로 , \begin{center}
, \vfill
및 을 시도했지만 \vspace*{\fill}
분명히 이들 중 어느 것도 이 목적에 적합하지 않습니다. 이 문제에 대한 조언이나 해결책을 주시면 매우 감사하겠습니다.
MWE는 다음과 같습니다.
\documentclass[12pt]{article}
\usepackage[margin=1in]{geometry}
\usepackage{xltabular,threeparttablex}
\usepackage{booktabs}
\usepackage{pdflscape}
\usepackage{lipsum}
\begin{document}
\begin{landscape}
\begin{ThreePartTable}
\begin{TableNotes}
$^*$ \lipsum[1]
\end{TableNotes}
\begin{xltabular}{\linewidth}{p{2cm}XX}
\caption{TableName.} \\
\toprule
Column1 & Column2 & Column3 \\ \midrule
\endfirsthead
\multicolumn{3}{c}{Table \thetable~({\it continued})} \\[1pt]
\toprule
Column1 & Column2 & Column3 \\ \midrule
\endhead
\bottomrule
\multicolumn{6}{r}{\footnotesize ({\it continued on next page})}
\endfoot
\bottomrule
\insertTableNotes
\endlastfoot
Row1 & \lipsum[1] & \lipsum[1] \\
Row2 & \lipsum[2] & \lipsum[2] \\
Row3 & \lipsum[3] & \lipsum[3] \\
Row4 & \lipsum[4] & \lipsum[4]
\end{xltabular}
\end{ThreePartTable}
\end{landscape}
\end{document}
답변1
테이블 조각의 수직 중심화가 가장 중요해 보이기 때문에 단일 xltabular
환경을 기반으로 테이블을 생성하는 것을 포기해야 할 수도 있습니다. 대신 rotating
패키지와 해당 sidewaystable
환경(페이지당 하나의 sidewaystable
환경, tabularx
측면 테이블당 하나의 환경) 을 사용하는 것을 고려할 수 있습니다 . 아마도 tablenotes
세 개의(?) 테이블 모두에 대해 하나의 환경만 필요할 것입니다 . 그렇다면 이 tablennotes
환경을 마지막 페이지에 배치하고 싶을 것입니다 .
그리고 모든 측면에서 사용 가능한 환경에서 공통 테이블 번호를 생성하기 위해 caption
패키지와 해당 지시어를 사용하는 방법을 살펴보세요 .\ContinuedFloat
다음 스크린샷에서는 세 개의 테이블 조각이 모두 페이지 내에서 세로 중앙에 위치한다는 것을 보여주기를 바랍니다.
\documentclass[12pt]{article}
\usepackage[margin=1in]{geometry}
\usepackage{tabularx} % for 'tabularx' env. and 'X' col. type
\usepackage{ragged2e} % for '\RaggedRight' macro
\newcolumntype{L}{>{\RaggedRight}X} % suppress full justification
\usepackage{rotating} % for 'sidewaystable' environment
\usepackage{threeparttable}
\usepackage{booktabs}
\usepackage{caption} % for '\ContinuedFloat' macro
\usepackage{lipsum} % for filler text
\begin{document}
% first page
\begin{sidewaystable}
\begin{threeparttable}
\caption{TableName.}
\begin{tabularx}{\textwidth}{@{} p{2cm} LL @{}}
\toprule
Column1 & Column2 & Column3 \\
\midrule
Row1 & \lipsum[1]\tnote{**} & \lipsum[1] \\
\midrule[\heavyrulewidth]
\multicolumn{3}{r@{}}{\footnotesize(continued on next page)}
\end{tabularx}
\end{threeparttable}
\end{sidewaystable}
% second page
\begin{sidewaystable}
\begin{threeparttable}
\ContinuedFloat
\caption{TableName, part 2 of 3.}
\begin{tabularx}{\textwidth}{@{} p{2cm} LL @{}}
\toprule
Column1 & Column2 & Column3 \\
\midrule
Row2 & \lipsum[2]\tnote{$\dagger$} & \lipsum[2] \\
\addlinespace
Row3 & \lipsum[3] & \lipsum[3]\tnote{$\ddagger$} \\
\midrule[\heavyrulewidth]
\multicolumn{3}{r@{}}{\footnotesize(continued on next page)}
\end{tabularx}
\end{threeparttable}
\end{sidewaystable}
% third page
\begin{sidewaystable}
\begin{threeparttable}
\ContinuedFloat
\caption{TableName, part 3 of 3.}
\begin{tabularx}{\textwidth}{@{} p{2cm} LL @{}}
\toprule
Column1 & Column2 & Column3 \\
\midrule
Row4 & \lipsum[4]\tnote{\S} & \lipsum[4] \\
\bottomrule
\end{tabularx}
\bigskip
\footnotesize
\RaggedRight
\begin{tablenotes}[flushleft]
\item[**] \lipsum[1][1-10]
\smallskip
\item[$\dagger$] \lipsum[2][1-10]
\smallskip
\item[$\ddagger$] \lipsum[3][1-10]
\smallskip
\item[\S] \lipsum[4][1-10]
\end{tablenotes}
\end{threeparttable}
\end{sidewaystable}
\end{document}
부록가로 모드에서 테이블을 조판하는 것뿐만 아니라 PDF 뷰어를 갖는 것에 대한 OP의 후속 질문을 해결하기 위해표시하다가로 모드의 페이지.
이 sidewaystable
메서드는 콘텐츠를 가로 모드로 배치합니다. 그러나 발견한 바와 같이 PDF 뷰어에게화면상 디스플레이가로 모드 테이블의 세로 모드에서 가로 모드까지.
이것이 달성하려는 효과라면 다음과 같이 진행하는 것이 좋습니다. 먼저, 서문에서 \usepackage{rotating}
로 변경합니다 \usepackage{pdflscape}
. 둘째, 세 인스턴스를 모두 \begin{tabularx}{\textwidth}
`\begin{tabularx}{\linewidth}로 변경합니다. 셋째, 전체 레이아웃을 다음과 같이 변경합니다.
% first page
\begin{sidewaystable}
...
\end{sidewaystable}
% second page
\begin{sidewaystable}
...
\end{sidewaystable}
% third page
\begin{sidewaystable}
...
\end{sidewaystable}
에게
\begin{landscape}
% first page
\begin{table}[p]
...
\end{table}
% second page
\begin{table}[p]
...
\end{table}
% third page
\begin{table}[p]
...
\end{table}
\end{landscape}
다르게 말하면 전체 레이아웃을 3개 환경 사용에서 단일 환경에 포함된 sidewaystable
3개 환경 사용으로 변경해야 합니다 .table[p]
landscape