![使用 KOMA 脚本正确地将 threeparttable 旁边的标题顶部对齐](https://linux22.com/image/265747/%E4%BD%BF%E7%94%A8%20KOMA%20%E8%84%9A%E6%9C%AC%E6%AD%A3%E7%A1%AE%E5%9C%B0%E5%B0%86%20threeparttable%20%E6%97%81%E8%BE%B9%E7%9A%84%E6%A0%87%E9%A2%98%E9%A1%B6%E9%83%A8%E5%AF%B9%E9%BD%90.png)
没有 ,事情看起来也很好threeparttable
。
取消注释 threeparttable 和 tablenotes 会导致标题上升到上一段。
\documentclass{scrbook}
%
\usepackage[english]{babel}
\usepackage{caption}
\usepackage{threeparttable}
\usepackage{lipsum}
%
\KOMAoptions{captions=topbeside}
\setcapindent*{0pt}%
\begin{document}
\chapter{Crapper}
\lipsum[1]
\begin{table}[h]%
\label{tab:psource:final-params}%
\begin{captionbeside}{This is the captions which should be top aligned}[l]%
\raisebox{\dimexpr0.5\baselineskip-0.5\totalheight\relax}{%
%\begin{threeparttable}
\begin{tabular}{cccc}
\hline
Test & Test & Test & Test \\
Test & Test & Test & Test\tnote{1} \\
Test & Test & Test & Test \\
Test & Test & Test & Test \\
Test & Test & Test & Test\tnote{2} \\
\hline
\end{tabular}
% \begin{tablenotes}
% \item[1]{Test note}
% \item[2]{Test note}
% \end{tablenotes}
%\end{threeparttable}%
}%
\end{captionbeside}
\end{table}
\end{document}
答案1
不需要;在的可选参数中\raisebox
使用(顶部对齐) ,并且(从t
tabular
\firsthline
array
包)而不是第一个\hline
:
\documentclass{scrbook}
%
\usepackage[english]{babel}
\usepackage{caption}
\usepackage{threeparttable,array}
\usepackage{lipsum}
%
\KOMAoptions{captions=topbeside}
\setcapindent*{0pt}%
\begin{document}
\chapter{Test}
\lipsum[1]
\begin{table}%
\label{tab:psource:final-params}%
\begin{captionbeside}{This is the caption which is now top aligned}[l]%
\begin{threeparttable}
\begin{tabular}[t]{cccc}
\firsthline
Test & Test & Test & Test \\
Test & Test & Test & Test\tnote{1} \\
Test & Test & Test & Test \\
Test & Test & Test & Test \\
Test & Test & Test & Test\tnote{2} \\
\hline
\end{tabular}
\begin{tablenotes}
\item[1]{Test note}
\item[2]{Test note}
\end{tablenotes}
\end{threeparttable}%
\end{captionbeside}
\end{table}
\end{document}
如果您决定将该booktabs
包用于您的表格(我建议这样做),那么就需要做一些额外的工作:在下面的例子中,我定义了一个混合了和\firsttoprule
功能的命令:\firsthline
\toprule
\documentclass{scrbook}
%
\usepackage[english]{babel}
\usepackage{caption}
\usepackage{threeparttable,array,booktabs}
\usepackage{lipsum}
%
\KOMAoptions{captions=topbeside}
\setcapindent*{0pt}%
\makeatletter
\newcommand\firsttoprule{%
\multicolumn1c{%
\global\backup@length\ht\@arstrutbox
\global\advance\backup@length\dp\@arstrutbox
\global\advance\backup@length\arrayrulewidth
\raise\extratabsurround\copy\@arstrutbox
}\\[-\backup@length]\toprule
}
\makeatother
\begin{document}
\chapter{Test}
\lipsum[1]
\begin{table}[h]%
\label{tab:psource:final-params}%
\begin{captionbeside}{This is the caption which is now top aligned}[l]%
\begin{threeparttable}[t]
\begin{tabular}[t]{cccc}
\firsttoprule
Test & Test & Test & Test \\
Test & Test & Test & Test\tnote{1} \\
Test & Test & Test & Test \\
Test & Test & Test & Test \\
Test & Test & Test & Test\tnote{2} \\
\bottomrule
\end{tabular}
\begin{tablenotes}
\item[1]{Test note}
\item[2]{Test note}
\end{tablenotes}
\end{threeparttable}%
\end{captionbeside}
\end{table}
\end{document}