複数ページの長い表を横向きページで中央揃えにする

複数ページの長い表を横向きページで中央揃えにする

モードで、複数ページの長い表 (一部のセルに長いテキストがある) を垂直方向に中央揃えにしようとしていますlandscapexltabularと を使用し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パッケージとその環境 (ページごとにsidewaystable1 つの環境、およびsidewaystable 環境ごとに 1 つの環境) の使用を検討してください。おそらく、3 つの (?) 表すべてに対して 1 つの環境だけが必要になるでしょう。その場合、この環境を最終ページに配置することになるでしょう。sidewaystabletabularxtablenotestablennotes

また、すべての sidewaystable 環境で共通のテーブル番号を生成するために、captionパッケージとそのディレクティブの使用を検討してください。\ContinuedFloat

次のスクリーンショットは、3 つのテーブル フラグメントすべてがページ内で垂直方向に中央揃えになっていることを示しています。

ここに画像の説明を入力してください


ここに画像の説明を入力してください


ここに画像の説明を入力してください

\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}。次に、 の3つのインスタンスすべてを `\begin{tabularx}{\linewidth} に変更します\begin{tabularx}{\textwidth}。最後に、全体のレイアウトを から に変更します。

% 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 つの環境を使用するレイアウトから、1 つの環境に収められたsidewaystable3 つの環境を使用するレイアウトに変更する必要があります。table[p]landscape

関連情報