モードで、複数ページの長い表 (一部のセルに長いテキストがある) を垂直方向に中央揃えにしようとしています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
1 つの環境、およびsidewaystable 環境ごとに 1 つの環境) の使用を検討してください。おそらく、3 つの (?) 表すべてに対して 1 つの環境だけが必要になるでしょう。その場合、この環境を最終ページに配置することになるでしょう。sidewaystable
tabularx
tablenotes
tablennotes
また、すべての 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 つの環境に収められたsidewaystable
3 つの環境を使用するレイアウトに変更する必要があります。table[p]
landscape