在橫向頁面中居中多頁長表格

在橫向頁面中居中多頁長表格

我試圖在該landscape模式下垂直居中一個多頁長表格(其中一些單元格具有長文本)。我用xltabularthreeparttablex來製作這張桌子。雖然可以成功產生表格(請在 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​​每個 sidewaystable 環境一個環境。據推測,您只需要一個tablenotes環境來容納所有三個(?)表;如果是這樣,您可能希望將此tablennotes環境放在最後一頁。

並且,請考慮使用該caption套件及其\ContinuedFloat指令在所有 sidewaystable 環境中產生通用表號。

希望以下螢幕截圖能夠示範所有三個表格片段在頁面內垂直居中。

在此輸入影像描述


在此輸入影像描述


在此輸入影像描述

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

附錄解決OP的後續問題,不僅要在橫向模式下排版表格,還要有pdf檢視器展示橫向模式下的頁面。

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環境中。

相關內容