
Ist es möglich, ein Inside (z. B. Longtable oder eine andere Umgebung) hinzuzufügen, \vspace{-\baselineskip}
das wirksam wird, bevor die Umgebung startet? MWE, das keine Wirkung hat.
\documentclass{article}
\usepackage{longtable}
\usepackage{blindtext}
\begin{document}
\blindtext
\begin{longtable}{ll}
\vspace{-\baselineskip} \\ % this has no effect
% why \\ are really needed since caption has them?
\caption{testing table} \\
\hline
aaaa & bbbb \\
cccc & dddd \\
\hline
\end{longtable}
\end{document}
Es gibt ein MWE mit dem Problem einer fehlerhaften Referenz im LOT.
\documentclass[captions=tableheading]{scrartcl}
\usepackage{blindtext}
\usepackage{hyperref}
\usepackage{tabu,longtable}
%\usepackage{threeparttable} % the package below already loads it
\usepackage[referable]{threeparttablex}
\usepackage{booktabs}
\usepackage{caption}
\usepackage{etoolbox}
\makeatletter
\chardef\TPT@@@asteriskcatcode=\catcode`*
\catcode`*=11
\expandafter\patchcmd\csname\string\threeparttable\endcsname
{\TPT@hookin{tabular}}
{\TPT@hookin{tabular}\TPT@hookin{tabu}} % allow threeparttable with tabu
{}{}
\catcode`*=\TPT@@@asteriskcatcode
\makeatother
\makeatletter % fix referencing of LOT while using longtabu
\newcounter{dummy}
\newcommand{\setdummy}{\refstepcounter{dummy} \\}
\let\oldlongtabu\longtabu\def\dummytabu{\vspace{-\baselineskip}\oldlongtabu} % correct the \\ in \setdummy
\def\enddummytabu{\endlongtabu}
\def\dummycap{\setdummy\caption}
\makeatother
\begin{document}
\listoftables
\bigskip
\blindtext
% LOT reference does not work
\begin{ThreePartTable}
\begin{TableNotes}
\footnotesize
\item[a] \label{tn:aa} A note
\item[b] Another note
\end{TableNotes}
\begin{longtabu}{ll}
\caption{A long table 1}
\label{tab:test1} \\
\toprule
Column 1 & Column 2 \\
\midrule
\endfirsthead
\toprule
Column 1 & Column 2 \\
\midrule
\endhead
\cmidrule{2-2}
\multicolumn{2}{r}{\textit{continued}}
\endfoot
\bottomrule
\insertTableNotes
\endlastfoot
% the contents of the table
A& B\tnotex{tn:aa} \\
\midrule
%\newpage % just testing page break
C\tnote{b} & D \\
\end{longtabu}
\end{ThreePartTable}
\blindtext
% LOT reference works fine
\begin{ThreePartTable}
\begin{TableNotes}
\footnotesize
\item[a] \label{tn:bb} A note
\item[b] Another note
\end{TableNotes}
\begin{longtable}{ll}
\caption{A long table 2}
\label{tab:test2} \\
\toprule
Column 1 & Column 2 \\
\midrule
\endfirsthead
\toprule
Column 1 & Column 2 \\
\midrule
\endhead
\cmidrule{2-2}
\multicolumn{2}{r}{\textit{continued}}
\endfoot
\bottomrule
\insertTableNotes
\endlastfoot
% the contents of the table
A& B\tnotex{tn:bb} \\
\midrule
%\newpage % just testing page break
C\tnote{b} & D \\
\end{longtable}
\end{ThreePartTable}
\blindtext
% LOT reference works fine (with vskip correction)
\begin{ThreePartTable}
\begin{TableNotes}
\footnotesize
\item[a] \label{tn:cc} A note
\item[b] Another note
\end{TableNotes}
\begin{dummytabu}{ll}
\dummycap{A long table 3}
\label{tab:test3} \\
\toprule
Column 1 & Column 2 \\
\midrule
\endfirsthead
\toprule
Column 1 & Column 2 \\
\midrule
\endhead
\cmidrule{2-2}
\multicolumn{2}{r}{\textit{continued}}
\endfoot
\bottomrule
\insertTableNotes
\endlastfoot
% the contents of the table
A& B\tnotex{tn:cc} \\
\midrule
%\newpage % just testing page break
C\tnote{b} & D \\
\end{dummytabu}
\end{ThreePartTable}
\blindtext
\end{document}
Antwort1
Benutz einfach
\begin{ThreePartTable}
\begin{TableNotes}
\footnotesize
\item[a] \label{tn:aa} A note
\item[b] Another note
\end{TableNotes}
\begin{longtabu}{ll}
\noalign{\phantomsection}
\caption{A long table 1}
\label{tab:test1} \\
\toprule
...
Die Links scheinen zu funktionieren und es wird kein zusätzlicher Platz hinzugefügt.
Antwort2
longtable
fügt einen Vskip der Länge \LTpre
(Standardwert \bigskipammount
) vor der Tabelle ein, um den vertikalen Abstand vor der Tabelle zu ändern, ändern Sie diese Länge mit \setlength
oder \addtolength
. Die Verwendung \vspace
an der von Ihnen angezeigten Position fügt es in die erste Zelle der ersten Zeile ein, die ein Eintrag ist, l
also ein horizontales Feld, in dem ein vertikaler Sprung nichts bewirkt. Der Effekt besteht also nur darin,hinzufügeneine leere Zeile vor der Tabelle, obwohl nominell ein negativer Abstand angegeben wurde.