Стиль и интервал вокруг плавающей надписи для листинга

Стиль и интервал вокруг плавающей надписи для листинга

Когда я использую newfloatпакет вместо floatпакета, похоже, возникают некоторые побочные эффекты с llncsи/или listings.

Дело 1:При использовании floatпакета плавающая подпись листингов форматируется неправильно, но интервал между подписью и листингом правильный, как показано в MWE #1.

Случай 2:При использовании newfloatпакета плавающая подпись листингов форматируется правильно, но между заголовком и листингом есть дополнительный интервал, как показано в MWE #2. (Этот интервал не определен классом документа, как можно увидеть в среде рисунка.)

Случай 3:Это пространство также представлено пакетом субтитров, как можно увидеть в MWE #3. (только предположение, см. комментарии)

Случай 4:Использование опции float окружения listingsтакже не вариант, так как оставляет пробел в тексте, откуда он уплывает. См. MWE #4.

Как можно добиться того же стиля и интервалов для листинга, что и для рисунка?

МВЭ №1

\documentclass{llncs}
\usepackage{listings}

\usepackage{float}
\floatstyle{plaintop}
\newfloat{lstfloat}{tb}{lop}
\floatname{lstfloat}{Listing}

\lstset{
   aboveskip=0pt,
   belowskip=0pt
}

\begin{document}
\begin{lstfloat}
 \caption{Code Caption}
 \begin{lstlisting}
  My listing here seom more text here
 \end{lstlisting}
\end{lstfloat}

\begin{figure}
 \caption{Text}
 \centering Hello
\end{figure}
\end{document}

MWE 1 с нарушенными стилями подписей, но без пробелов после подписи к спискам

МВЭ №2

\documentclass{llncs}
\usepackage{listings}

\usepackage{newfloat}
\DeclareFloatingEnvironment[fileext=lop,placement={tb},name=Listing]{lstfloat}

\lstset{
   aboveskip=0pt,
   belowskip=0pt
}

\begin{document}
\begin{lstfloat}
 \caption{Code Caption}
 \begin{lstlisting}
  My listing here seom more text here
 \end{lstlisting}
\end{lstfloat}

\begin{figure}
 \caption{Text}
 \centering Hello
\end{figure}
\end{document}

MWE 2 с правильными стилями подписей, но нежелательными интервалами после подписей к спискам

МВЭ №3

\documentclass{llncs}
\usepackage{listings}

\usepackage{caption}

\usepackage{float}
\floatstyle{plaintop}
\newfloat{lstfloat}{tb}{lop}
\floatname{lstfloat}{Listing}

\lstset{
   aboveskip=0pt,
   belowskip=0pt
}

\begin{document}
\begin{lstfloat}
 \caption{Code Caption}
 \begin{lstlisting}
  My listing here seom more text here
 \end{lstlisting}
\end{lstfloat}

\begin{figure}
 \caption{Text}
 \centering Hello
\end{figure}
\end{document}

MWE 3 с нарушенными стилями подписей и нежелательными интервалами после подписей к спискам

МВЭ №4

\documentclass{llncs}
\usepackage{lipsum}
\usepackage{listings}

\lstset{
   aboveskip=0pt,
   belowskip=0pt
}

\begin{document}
\lipsum[1]

\begin{lstlisting}[float=tb,caption={Code Caption}]
 My listing here seom more text here
\end{lstlisting}

\lipsum[1]

\begin{figure}[tb]
 \caption{Text}
 \centering Hello
\end{figure}

\lipsum[1]
\end{document}

MWE 4 использует плавающие списки, но при этом в тексте остается пробел.

редактировать:добавить случай 4 и mwe #4 правка2:переместить уведомление о последующем действии вниз

Это продолжение моего вопроса:Сделать имя плавающего объекта жирным

решение1

С его помощью skip=0ptвы сможете избежать любого вертикального пространства, добавляемого captionупаковкой.

\documentclass{llncs}
\usepackage{listings}

\usepackage{newfloat}
\DeclareFloatingEnvironment[fileext=lop,placement={tb},name=Listing]{lstfloat}
\usepackage{caption}
\captionsetup[lstfloat]{labelfont={bf},name={Listing},labelsep=period, skip=0pt}
\captionsetup[figure]{labelfont={bf},name={Fig.},labelsep=period}
\lstset{
   aboveskip=0pt,
   belowskip=0pt
}
\usepackage{mwe}% for testing purpose only
\begin{document}
\blindtext% for testing purpose only
\begin{lstfloat}
 \caption{Code Caption}
 \begin{lstlisting}
  My listing here seom more text here
 \end{lstlisting}
\end{lstfloat}
\blindtext% for testing purpose only
\begin{figure}
 \caption{Text}
 \centering Hello
\end{figure}
\blindtext% for testing purpose only
\end{document}

Здесь слева MWE #1 (с некоторым текстом-заглушкой), а справа — вывод моего кода:

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

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