![endfloat оставляет место даже при отключенном тексте маркера](https://rvso.com/image/298806/endfloat%20%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%BB%D1%8F%D0%B5%D1%82%20%D0%BC%D0%B5%D1%81%D1%82%D0%BE%20%D0%B4%D0%B0%D0%B6%D0%B5%20%D0%BF%D1%80%D0%B8%20%D0%BE%D1%82%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%BD%D0%BE%D0%BC%20%D1%82%D0%B5%D0%BA%D1%81%D1%82%D0%B5%20%D0%BC%D0%B0%D1%80%D0%BA%D0%B5%D1%80%D0%B0.png)
Я использую 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}