Когда я использую 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}
МВЭ №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}
МВЭ №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}
МВЭ №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}
редактировать:добавить случай 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 (с некоторым текстом-заглушкой), а справа — вывод моего кода: