![Longtable、带有 threeparttable 的注释和标题问题](https://linux22.com/image/381593/Longtable%E3%80%81%E5%B8%A6%E6%9C%89%20threeparttable%20%E7%9A%84%E6%B3%A8%E9%87%8A%E5%92%8C%E6%A0%87%E9%A2%98%E9%97%AE%E9%A2%98.png)
我有一张表格,其内容超过一页。所以我决定使用该longtable
包。不幸的是,标题和注释存在一些问题,threeparttable
我无法解决。
第一张图片:
第二张图片:
“Tab. 0.1:标题”超出了左边距。解决这个问题的一个可能方法是使用
\setlength\LTleft{0pt}
,但是有没有更优雅的方法(包选项?)?标题非常靠近表格顶部。是否有选项可以将文档中所有表格的标题和表格之间的距离增加
2ex
?底部的注释(仅限此项)应与左边距对齐,并且上标 b 和“注释”之间应有更多空间。
附加问题:有时当我使用长表时,页码不会改变。第一页后面的页面不是第 2 页,而是第 1 页!?在 MWE 中它可以正常工作,但在我的大型 LaTeX 文档中会出现此问题。
梅威瑟:
\documentclass[
a4paper,
bibliography=totoc,
toc=listof,
chapterentrydots=on,
listof=entryprefix
]{scrbook}
\usepackage[showframe]{geometry}
\usepackage{lipsum}
\usepackage{scrhack}
\usepackage[utf8]{inputenc}
\usepackage{textcomp}
\usepackage[T1]{fontenc}
\usepackage[english,german,ngerman]{babel}
\usepackage[babel,german=quotes,threshold=1]{csquotes}
\usepackage[language=autobib,
%backend=biber
]{biblatex}
\usepackage{lmodern}
\usepackage{scrlayer-scrpage}
\usepackage{microtype}
\usepackage{ragged2e}
\usepackage{everysel}
\usepackage{footmisc}
\usepackage{etoolbox}
\usepackage{booktabs}
\usepackage{tabularx}
\usepackage{tabulary}
\usepackage{longtable}
\usepackage{tabu}
\usepackage{array}
\usepackage[
format=hang,
skip=2.5pt,
justification=RaggedRight,
singlelinecheck=off,
labelfont=bf,
font=footnotesize,
textfont=footnotesize,
twoside,
labelsep=colon
]
{caption}
\usepackage{enumerate}
\usepackage{enumitem}
\usepackage{graphicx}
\usepackage[normalem]{ulem}
\usepackage{threeparttable}
\usepackage{threeparttablex}
\usepackage{setspace}
\renewcaptionname{ngerman}{\figurename}{Abb.}
\renewcaptionname{ngerman}{\tablename}{Tab.}
\begin{document}
\begin{ThreePartTable}
\begin{TableNotes}
\small
\item[a] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
\item[b] yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
\item[]
\item[] \uline{Note}: \lipsum[1]
\end{TableNotes}
%\setlength\LTleft{0pt} %<============= How to remove?
\footnotesize
\begin{longtable}[htb]{p{0.025\textwidth} p{0.63\textwidth} p{0.2575\textwidth}}
\caption[Caption]
{\textbf{Caption}}
\label{Caption}
\\%[2ex] %<======== How to remove 2ex? The space between tables and caption should always be the same!
\toprule
& \textbf{aaaaaaaa} & \textbf{bbbbbbb} \\
\midrule
\endfirsthead
%%%
\multicolumn{3}{l}{{cont.}} \\
\toprule
& \textbf{aaaaaaaa} & \textbf{bbbbbbb} \\
\midrule
%%%
\endhead
\midrule
\multicolumn{3}{r}{{next page}} \\
\endfoot
\bottomrule
\insertTableNotes
\endlastfoot
%%%
x & xxxxxxxxxxxxxxx\tnote{a} & xxx\\
%%%
y & yyyyyyyyyyyyyyy\tnote{b} & yyy\\
%%%
x & \lipsum[1-4] & xxx\tnote{a}\\
%%%
y & \lipsum[5] & yyy\tnote{b}\\
%%%
\end{longtable}
\end{ThreePartTable}
\end{document}
答案1
让我们从您的前两个问题开始:
i)有一个包选项,例如margin=1em
,标题移动到右侧。
ii)该选项skip
确实控制标题和表格之间的跳过,但你需要告诉 KOMA-script 不要触碰它,方法是使用全球的选项origlongtable
和 captionsetup position=above
。此外,将 skip 设置为更大的值,例如skip=1em
。
除此之外,如果您不需要 tabu、tabularx 和 tabulary,请不要加载它们。
\documentclass[
a4paper,
bibliography=totoc,
toc=listof,
chapterentrydots=on,
listof=entryprefix,
origlongtable
]{scrbook}
%\usepackage[showframe]{geometry}
\usepackage{lipsum}
%\usepackage{scrhack}
\usepackage[utf8]{inputenc}
\usepackage{textcomp}
\usepackage[T1]{fontenc}
\usepackage[english,ngerman]{babel}
\usepackage[babel,german=quotes,threshold=1]{csquotes}
\usepackage[language=autobib,
%backend=biber
]{biblatex}
\usepackage{lmodern}
\usepackage{scrlayer-scrpage}
%\usepackage{microtype}
\usepackage{ragged2e}
\usepackage{everysel}
\usepackage{footmisc}
\usepackage{etoolbox}
\usepackage{booktabs}
%\usepackage{tabularx}
%\usepackage{tabulary}
\usepackage{longtable}
%\usepackage{tabu}
\usepackage{array}
\usepackage{caption}
\captionsetup[longtable]{
format=hang,
skip=1em,
justification=raggedright,
singlelinecheck=off,
labelfont=bf,
font=footnotesize,
textfont=footnotesize,
twoside,
labelsep=colon,
margin=1em,
position=above,
}
\usepackage{enumerate}
\usepackage{enumitem}
\usepackage{graphicx}
\usepackage[normalem]{ulem}
%\usepackage{threeparttable}
\usepackage{threeparttablex}
\usepackage{setspace}
\renewcaptionname{ngerman}{\figurename}{Abb.}
%\renewcaptionname{ngerman}{\tablename}{Tab.}
\begin{document}
\begin{ThreePartTable}
\begin{TableNotes}
\small
\item[a] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
\item[b] yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
\item[]
\item[] \uline{Note}: \lipsum[1]
\end{TableNotes}
%\setlength\LTleft{0pt} %<============= How to remove?
\footnotesize
\begin{longtable}[htb]{p{0.025\textwidth} p{0.63\textwidth} p{0.2575\textwidth}}
\caption[Caption1]
{\textbf{Caption}}
\label{tab:caaaption}
\\%[2ex] %<======== How to remove 2ex? The space between tables and caption should always be the same!
\toprule
& \textbf{aaaaaaaa} & \textbf{bbbbbbb} \\
\midrule
\endfirsthead
%%%
\multicolumn{3}{l}{{cont.}} \\
\toprule
& \textbf{aaaaaaaa} & \textbf{bbbbbbb} \\
\midrule
%%%
\endhead
\midrule
\multicolumn{3}{r}{{next page}} \\
\endfoot
\bottomrule
\insertTableNotes
\endlastfoot
%%%
x & xxxxxxxxxxxxxxx\tnote{a} & xxx\\
%%%
y & yyyyyyyyyyyyyyy\tnote{b} & yyy\\
%%%
x & \lipsum[1-4] & xxx\tnote{a}\\
%%%
y & \lipsum[5] & yyy\tnote{b}\\
%%%
\end{longtable}
\end{ThreePartTable}
\end{document}