如何正确定位Listing?

如何正确定位Listing?

我遇到类似以下代码的情况:

\documentclass{article}

\usepackage[T1]{fontenc}
\usepackage{inconsolata}

\usepackage{color}
\usepackage{graphicx}

\definecolor{pblue}{rgb}{0.13,0.13,1}
\definecolor{pgreen}{rgb}{0,0.5,0}
\definecolor{pred}{rgb}{0.9,0,0}
\definecolor{pgrey}{rgb}{0.46,0.45,0.48}

\usepackage{minted}
\usepackage{listings}
\lstset{language=Java,
  showspaces=false,
  showtabs=false,
  breaklines=true,
  showstringspaces=false,
  breakatwhitespace=true,
  commentstyle=\color{pgreen},
  keywordstyle=\color{pblue},
  stringstyle=\color{pred},
  basicstyle=\ttfamily,
  moredelim=[il][\textcolor{pgrey}]{$$},
  moredelim=[is][\textcolor{pgrey}]{\%\%}{\%\%}
}

\makeatletter
\AtBeginDocument{\let\c@listing\c@lstlisting}
\makeatother

\begin{document}

Eos ea harum labores scaevola, mea autem vivendo interesset ne, vis verterem patrioque at. Et adhuc malis perpetua quo. Aperiri deseruisse qui in, sea nihil aperiri et. Per tale dolore apeirian at, nam reque liber meliore id.

Ne impetus percipitur mea, noster animal sanctus vix et. In ridens sapientem cum, ex cum facer commodo patrioque. Alia tractatos complectitur eam ut. Ius eu luptatum probatus efficiantur, cibo debitis his at, an usu illud numquam iudicabit. In hendrerit interpretaris est, ex eum consequat eloquentiam, est augue scriptorem ut. Et iusto mnesarchum appellantur eam.

Causae appetere te cum, conceptam disputationi te eam. Per ne duis indoctum, ius idque veniam scaevola ne. Nominavi erroribus constituam at pri, ea ius eruditi adversarium, duo omnis quando id. Dicta fabellas persecuti has id, eu sea simul deleniti, ipsum aeterno dolorem an vim. Cu ullum apeirian legendos eos, vim autem appetere ocurreret ut.

Iisque eligendi ius at. Mutat veritus ne mel. Quo cu quis populo. Usu sensibus partiendo interesset ei.

Semper inciderint ut sed, vix id inani recusabo torquatos. Reque impedit assentior est ea, ex maluisset expetendis vel. Wisi albucius philosophia at per. Aeque volutpat ullamcorper ne nec, ea pro bonorum abhorreant. Commodo fuisset sit no.

Ne mei intellegat definitiones, persius atomorum constituam te eam. Te mandamus dissentiet qui, no sanctus lucilius eum, prodesset tincidunt eu has. Duo an movet vivendum eloquentiam, vix te vide eius imperdiet. Case doctus sea at, vim ex sapientem quaerendum. At sale aliquam efficiantur vim.

Adhuc viris aperiam est in, eius postea habemus vis te. Usu et aliquam dissentias. Sea ad melius lucilius lobortis, an has quas adipiscing, est ex delenit partiendo. Alia detraxit vim eu. An eam prima expetenda, per melius incorrupte elaboraret no.

Ne mei intellegat definitiones, persius atomorum constituam te eam. Te mandamus dissentiet qui, no sanctus lucilius eum, prodesset tincidunt eu has. Duo an movet vivendum eloquentiam, vix te vide eius imperdiet. Case doctus sea at, vim ex sapientem quaerendum. At sale aliquam efficiantur vim.

\begin{figure}[!ht]
\centering
%Insere Figura
\includegraphics[width=0.9 \columnwidth]{img/tex.png}
\caption{Tex Stackexchange}
\label{fig:tex}
\end{figure}

\begin{lstlisting}[caption={Description of Java code},label=useless, language=Java]
/**
 * This is a doc comment.
 */
package com.ociweb.jnb.lombok;

import java.util.Date;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NonNull;

$$@Data
$$@EqualsAndHashCode(exclude={"address","city","state","zip"})
public class Person {
    enum Gender { Male, Female }

    // another comment

    %%@NonNull%% private String firstName;
    %%@NonNull%% private String lastName;
    %%@NonNull%% private final Gender gender;
    %%@NonNull%% private final Date dateOfBirth;

    private String ssn;
    private String address;
    private String city;
    private String state;
    private String zip;
}
\end{lstlisting}

Listing \ref{useless} contains an example of a listing

Euismod meliore duo te, at vivendo officiis per. Ea verterem lucilius urbanitas duo, nibh autem tamquam eu sea. Feugait mediocrem vel an, eu graecis tibique vulputate pro. Ne aperiri facilis scriptorem vix. Ad sed causae virtute antiopam, te usu suas sale neglegentur, tation quidam delenit has ne.

Ut eirmod viderer usu, te eius nulla minimum vix. Elit audire cum id, sit eros erroribus te. An melius blandit concludaturque his. Qui putent accommodare signiferumque cu, tamquam accusam tincidunt his in. Lorem sententiae ad vis.

In quo alii ceteros evertitur. Vim ea officiis corrumpit, est te meis euismod. Nec cu utroque meliore, at reque solet voluptatibus sea. Latine scripta eum ut, id vidit euismod tibique eos.

\end{document}

通过划分页面,将图像放置在代码的中间:

在此处输入图片描述

在这种情况下,如何正确定位列表和图像?

答案1

答案取决于你想如何处理对象以及一个对象相对于另一个对象的预期最终位置,而这并未在问题中指定。

一种选择是使用float列表选项;这样,它会被视为浮动,不会被分割(但也不会跨页):

\documentclass{article}

\usepackage[T1]{fontenc}
\usepackage{inconsolata}

\usepackage{color}
\usepackage{graphicx}

\definecolor{pblue}{rgb}{0.13,0.13,1}
\definecolor{pgreen}{rgb}{0,0.5,0}
\definecolor{pred}{rgb}{0.9,0,0}
\definecolor{pgrey}{rgb}{0.46,0.45,0.48}

\usepackage{minted}
\usepackage{listings}
\lstset{language=Java,
  showspaces=false,
  showtabs=false,
  breaklines=true,
  showstringspaces=false,
  breakatwhitespace=true,
  commentstyle=\color{pgreen},
  keywordstyle=\color{pblue},
  stringstyle=\color{pred},
  basicstyle=\ttfamily,
  moredelim=[il][\textcolor{pgrey}]{$$},
  moredelim=[is][\textcolor{pgrey}]{\%\%}{\%\%}
}

\makeatletter
\AtBeginDocument{\let\c@listing\c@lstlisting}
\makeatother

\begin{document}

Eos ea harum labores scaevola, mea autem vivendo interesset ne, vis verterem patrioque at. Et adhuc malis perpetua quo. Aperiri deseruisse qui in, sea nihil aperiri et. Per tale dolore apeirian at, nam reque liber meliore id.

Ne impetus percipitur mea, noster animal sanctus vix et. In ridens sapientem cum, ex cum facer commodo patrioque. Alia tractatos complectitur eam ut. Ius eu luptatum probatus efficiantur, cibo debitis his at, an usu illud numquam iudicabit. In hendrerit interpretaris est, ex eum consequat eloquentiam, est augue scriptorem ut. Et iusto mnesarchum appellantur eam.

Causae appetere te cum, conceptam disputationi te eam. Per ne duis indoctum, ius idque veniam scaevola ne. Nominavi erroribus constituam at pri, ea ius eruditi adversarium, duo omnis quando id. Dicta fabellas persecuti has id, eu sea simul deleniti, ipsum aeterno dolorem an vim. Cu ullum apeirian legendos eos, vim autem appetere ocurreret ut.

Iisque eligendi ius at. Mutat veritus ne mel. Quo cu quis populo. Usu sensibus partiendo interesset ei.

Semper inciderint ut sed, vix id inani recusabo torquatos. Reque impedit assentior est ea, ex maluisset expetendis vel. Wisi albucius philosophia at per. Aeque volutpat ullamcorper ne nec, ea pro bonorum abhorreant. Commodo fuisset sit no.

Ne mei intellegat definitiones, persius atomorum constituam te eam. Te mandamus dissentiet qui, no sanctus lucilius eum, prodesset tincidunt eu has. Duo an movet vivendum eloquentiam, vix te vide eius imperdiet. Case doctus sea at, vim ex sapientem quaerendum. At sale aliquam efficiantur vim.

Adhuc viris aperiam est in, eius postea habemus vis te. Usu et aliquam dissentias. Sea ad melius lucilius lobortis, an has quas adipiscing, est ex delenit partiendo. Alia detraxit vim eu. An eam prima expetenda, per melius incorrupte elaboraret no.

Ne mei intellegat definitiones, persius atomorum constituam te eam. Te mandamus dissentiet qui, no sanctus lucilius eum, prodesset tincidunt eu has. Duo an movet vivendum eloquentiam, vix te vide eius imperdiet. Case doctus sea at, vim ex sapientem quaerendum. At sale aliquam efficiantur vim.

\begin{figure}
\centering
%Insere Figura
\includegraphics[width=0.9 \columnwidth]{example-image-a}
\caption{Tex Stackexchange}
\label{fig:tex}
\end{figure}

\begin{lstlisting}[caption={Description of Java code},label=useless, language=Java,float]
/**
 * This is a doc comment.
 */
package com.ociweb.jnb.lombok;

import java.util.Date;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NonNull;

$$@Data
$$@EqualsAndHashCode(exclude={"address","city","state","zip"})
public class Person {
    enum Gender { Male, Female }

    // another comment

    %%@NonNull%% private String firstName;
    %%@NonNull%% private String lastName;
    %%@NonNull%% private final Gender gender;
    %%@NonNull%% private final Date dateOfBirth;

    private String ssn;
    private String address;
    private String city;
    private String state;
    private String zip;
}
\end{lstlisting}

Listing \ref{useless} contains an example of a listing

Euismod meliore duo te, at vivendo officiis per. Ea verterem lucilius urbanitas duo, nibh autem tamquam eu sea. Feugait mediocrem vel an, eu graecis tibique vulputate pro. Ne aperiri facilis scriptorem vix. Ad sed causae virtute antiopam, te usu suas sale neglegentur, tation quidam delenit has ne.

Ut eirmod viderer usu, te eius nulla minimum vix. Elit audire cum id, sit eros erroribus te. An melius blandit concludaturque his. Qui putent accommodare signiferumque cu, tamquam accusam tincidunt his in. Lorem sententiae ad vis.

In quo alii ceteros evertitur. Vim ea officiis corrumpit, est te meis euismod. Nec cu utroque meliore, at reque solet voluptatibus sea. Latine scripta eum ut, id vidit euismod tibique eos.

\end{document}

在此处输入图片描述

另一个选择是使用图形的另一个位置说明符;例如,使用 [!hbp] 可以得到:

在此处输入图片描述

尝试改变位置说明符直到获得满足您需求的布局。

另一种选择是将图形视为 内的静态对象,例如,使用或包minipage中的 \¢aptionof 提供标题:captioncapt-of

\documentclass{article}

\usepackage[T1]{fontenc}
\usepackage{inconsolata}

\usepackage{color}
\usepackage{graphicx}
\usepackage{caption}

\definecolor{pblue}{rgb}{0.13,0.13,1}
\definecolor{pgreen}{rgb}{0,0.5,0}
\definecolor{pred}{rgb}{0.9,0,0}
\definecolor{pgrey}{rgb}{0.46,0.45,0.48}

\usepackage{minted}
\usepackage{listings}
\lstset{language=Java,
  showspaces=false,
  showtabs=false,
  breaklines=true,
  showstringspaces=false,
  breakatwhitespace=true,
  commentstyle=\color{pgreen},
  keywordstyle=\color{pblue},
  stringstyle=\color{pred},
  basicstyle=\ttfamily,
  moredelim=[il][\textcolor{pgrey}]{$$},
  moredelim=[is][\textcolor{pgrey}]{\%\%}{\%\%}
}

\makeatletter
\AtBeginDocument{\let\c@listing\c@lstlisting}
\makeatother

\begin{document}

Eos ea harum labores scaevola, mea autem vivendo interesset ne, vis verterem patrioque at. Et adhuc malis perpetua quo. Aperiri deseruisse qui in, sea nihil aperiri et. Per tale dolore apeirian at, nam reque liber meliore id.

Ne impetus percipitur mea, noster animal sanctus vix et. In ridens sapientem cum, ex cum facer commodo patrioque. Alia tractatos complectitur eam ut. Ius eu luptatum probatus efficiantur, cibo debitis his at, an usu illud numquam iudicabit. In hendrerit interpretaris est, ex eum consequat eloquentiam, est augue scriptorem ut. Et iusto mnesarchum appellantur eam.

Causae appetere te cum, conceptam disputationi te eam. Per ne duis indoctum, ius idque veniam scaevola ne. Nominavi erroribus constituam at pri, ea ius eruditi adversarium, duo omnis quando id. Dicta fabellas persecuti has id, eu sea simul deleniti, ipsum aeterno dolorem an vim. Cu ullum apeirian legendos eos, vim autem appetere ocurreret ut.

Iisque eligendi ius at. Mutat veritus ne mel. Quo cu quis populo. Usu sensibus partiendo interesset ei.

Semper inciderint ut sed, vix id inani recusabo torquatos. Reque impedit assentior est ea, ex maluisset expetendis vel. Wisi albucius philosophia at per. Aeque volutpat ullamcorper ne nec, ea pro bonorum abhorreant. Commodo fuisset sit no.

Ne mei intellegat definitiones, persius atomorum constituam te eam. Te mandamus dissentiet qui, no sanctus lucilius eum, prodesset tincidunt eu has. Duo an movet vivendum eloquentiam, vix te vide eius imperdiet. Case doctus sea at, vim ex sapientem quaerendum. At sale aliquam efficiantur vim.

Adhuc viris aperiam est in, eius postea habemus vis te. Usu et aliquam dissentias. Sea ad melius lucilius lobortis, an has quas adipiscing, est ex delenit partiendo. Alia detraxit vim eu. An eam prima expetenda, per melius incorrupte elaboraret no.

Ne mei intellegat definitiones, persius atomorum constituam te eam. Te mandamus dissentiet qui, no sanctus lucilius eum, prodesset tincidunt eu has. Duo an movet vivendum eloquentiam, vix te vide eius imperdiet. Case doctus sea at, vim ex sapientem quaerendum. At sale aliquam efficiantur vim.

\begin{lstlisting}[caption={Description of Java code},label=useless, language=Java]
/**
 * This is a doc comment.
 */
package com.ociweb.jnb.lombok;

import java.util.Date;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NonNull;

$$@Data
$$@EqualsAndHashCode(exclude={"address","city","state","zip"})
public class Person {
    enum Gender { Male, Female }

    // another comment

    %%@NonNull%% private String firstName;
    %%@NonNull%% private String lastName;
    %%@NonNull%% private final Gender gender;
    %%@NonNull%% private final Date dateOfBirth;

    private String ssn;
    private String address;
    private String city;
    private String state;
    private String zip;
}
\end{lstlisting}

\noindent
\begin{minipage}{\textwidth}
\begin{center}
%Insere Figura
\includegraphics[width=0.9 \columnwidth]{example-image-a}
\captionof{figure}{Tex Stackexchange}
\label{fig:tex}
\end{center}
\end{minipage}

Listing \ref{useless} contains an example of a listing

Euismod meliore duo te, at vivendo officiis per. Ea verterem lucilius urbanitas duo, nibh autem tamquam eu sea. Feugait mediocrem vel an, eu graecis tibique vulputate pro. Ne aperiri facilis scriptorem vix. Ad sed causae virtute antiopam, te usu suas sale neglegentur, tation quidam delenit has ne.

Ut eirmod viderer usu, te eius nulla minimum vix. Elit audire cum id, sit eros erroribus te. An melius blandit concludaturque his. Qui putent accommodare signiferumque cu, tamquam accusam tincidunt his in. Lorem sententiae ad vis.

In quo alii ceteros evertitur. Vim ea officiis corrumpit, est te meis euismod. Nec cu utroque meliore, at reque solet voluptatibus sea. Latine scripta eum ut, id vidit euismod tibique eos.

\end{document}

在此处输入图片描述

当然,这些修改应该在文件进入最后阶段时进行。

相关内容