我有这个代码,但是环境放在了页面顶部、各部分之上。
\documentclass[a4paper,11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{graphicx}
\usepackage{placeins}
\usepackage{listings}
\usepackage[usenames]{color}
\lstnewenvironment{codice_c++}[1][]
{\lstset{basicstyle=\small\ttfamily, columns=fullflexible,
keywordstyle=\color{red}\bfseries, commentstyle=\color{blue},
language=C++, basicstyle=\small,
numbers=left, numberstyle=\tiny,
stepnumber=1, numbersep=5pt, frame=shadowbox, float=*, #1}}{}
\begin{document}
\tableofcontents
\newpage
\section{s1}
\subsection{ss1}
\begin{codice_c++}[caption={c1}]
.....
\end{codice_c++}
\end{document}
答案1
您有一些选择。由于您使用列表作为浮动,因此您可以使用float=h
选项
\begin{codice_c++}[float=h,,caption={c1}]
此外,由于您正在使用placeins
,因此您可以使用\usepackage[section]{placeins}
从而限制部分内(所有)浮点数的位置。
代码:
\documentclass[a4paper,11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{graphicx}
%\usepackage[section]{placeins} %% this will put all floats within their respective sections.
\usepackage{listings}
\usepackage[usenames]{color}
\lstnewenvironment{codice_c++}[1][]
{\lstset{basicstyle=\small\ttfamily, columns=fullflexible,
keywordstyle=\color{red}\bfseries, commentstyle=\color{blue},
language=C++, basicstyle=\small,
numbers=left, numberstyle=\tiny,
stepnumber=1, numbersep=5pt, frame=shadowbox, float=*, #1}}{}
\begin{document}
\tableofcontents
\newpage
\section{s1}
\subsection{ss1}
\begin{codice_c++}[float=h,,caption={c1}] %%% you may also use htbp
.....
\end{codice_c++}
\end{document}
如果您决定不浮动列表,您可以使用caption
包及其captionof
宏来插入标题,但这是另一回事。