endfloat оставляет место даже при отключенном тексте маркера

endfloat оставляет место даже при отключенном тексте маркера

Я использую endfloatдля обработки всех моих таблиц в конце моего документа. Я также использую опцию подавления внутритекстовых маркеров. Однако, endfloatпохоже, все равно вставляет пробел там, где должен был быть маркер (по сути, создавая ненужный пробел между моими абзацами). Причина этого в тегах центрирования. Их удаление решает проблему. Почему это происходит? MWE:

\documentclass[english]{article}
\usepackage[nolists,tablesfirst,nomarkers]{endfloat}


\begin{document}
Some text here Some text here Some text here Some text here Some text
here Some text here Some text here Some text here Some text here Some
text here Some text here Some text here Some text here Some text here
Some text here Some text here Some text here Some text here Some text
here Some text here Some text here Some text here Some text here Some
text here Some text here Some text here Some text here Some text here
Some text here 

\begin{center}
\begin{table}
\protect\caption{My Table}


\begin{tabular}{|c|c|c|c|c|}
\hline 
a &  &  &  & \tabularnewline
\hline 
\hline 
 & b &  &  & \tabularnewline
\hline 
 &  &  &  & \tabularnewline
\hline 
 &  &  &  & \tabularnewline
\hline 
 &  &  &  & \tabularnewline
\hline 
\end{tabular}
\end{table}

\par\end{center}

Some more text here Some more text here Some more text here Some more
text here Some more text here Some more text here Some more text here
Some more text here Some more text here Some more text here Some more
text here Some more text here Some more text here Some more text here
Some more text here Some more text here Some more text here Some more
text here Some more text here Some more text here 
\end{document}

решение1

Это пространство вызвано centerсредой. centerСреда определяется как trivlist(или просто как list)

\def\center{\trivlist \centering\item\relax}
\def\endcenter{\endtrivlist}

Как вы можете видеть, это \trivlistвокруг \centering. Эффект \trivlistзаключается в добавлении \topsepи \partopsepт. д. Определения этих вещей см. в latex.ltx. В заключение, centerсреда добавляет вертикальное пространство сверху и снизу, которое в некоторых случаях (как в этом) не нужно.

Далее, таблица, содержащаяся внутри centerокружения, плавает (будет помещена в конец), но окружение centerостается там, где оно есть. Пробел (связанный с centerокружением) также остается в исходном положении и tableбудет находиться вне centerокружения и, следовательно, не будет центрирован.

Избегайте этих пробелов, используя только \centering.

\documentclass[english]{article}
\usepackage[nolists,tablesfirst,nomarkers]{endfloat}


\begin{document}
Some text here Some text here Some text here Some text here Some text
here Some text here Some text here Some text here Some text here Some
text here Some text here Some text here Some text here Some text here
Some text here Some text here Some text here Some text here Some text
here Some text here Some text here Some text here Some text here Some
text here Some text here Some text here Some text here Some text here
Some text here

%\begin{center}
\begin{table}
\caption{My Table}    %% no need of \protect use \caption[short title] instead

\centering         %%<--- here
\begin{tabular}{|c|c|c|c|c|}
\hline
a &  &  &  & \tabularnewline
\hline
\hline
 & b &  &  & \tabularnewline
\hline
 &  &  &  & \tabularnewline
\hline
 &  &  &  & \tabularnewline
\hline
 &  &  &  & \tabularnewline
\hline
\end{tabular}
\end{table}

%\par\end{center}

Some more text here Some more text here Some more text here Some more
text here Some more text here Some more text here Some more text here
Some more text here Some more text here Some more text here Some more
text here Some more text here Some more text here Some more text here
Some more text here Some more text here Some more text here Some more
text here Some more text here Some more text here
\end{document}

введите описание изображения здесь

Связанный контент