枚举/逐项列举环境中的子图的“通用”方法?

枚举/逐项列举环境中的子图的“通用”方法?

我想找到一种在 itemize 环境中插入图像的“通用”方法。起初我只是使用 figures+subfigures,效果很好,除非有分页符。图像应该放在第一个 item 之后

\documentclass[12pt,a4paper,oneside]{report} % Tipo de documento
\usepackage[T1]{fontenc}    % Codificación del documento
\usepackage[utf8]{inputenc} % Codificación del documento
\usepackage{amsmath}        % Paquete de herramientas matemáticas
\usepackage{graphicx}       % Facilita la inclusión de imágenes 
\usepackage{float}          % Posición de figuras
\usepackage{enumitem}
\usepackage{caption} %% cambia los captiones de figras
\usepackage{subcaption}
\usepackage{lipsum}
\begin{document}
    \chapter{Chap test}
    \section{Section 1}
    \begin{enumerate}
        \item \lipsum[7-8]\\
        \begin{figure}[h!]
            \centering
            \begin{subfigure}[b]{0.45\textwidth}
                \centering
                \fbox{\includegraphics[width=\textwidth]{sinc1}}\\
                \caption{blablabla }
            \end{subfigure}
            \hspace{.5cm}
            \begin{subfigure}[b]{0.45\textwidth}
                \centering
                \fbox{\includegraphics[width=\textwidth]{sinc2}}
                \caption{bleblelbe}
            \end{subfigure}
            \caption{bliblibli}
            \label{fig}
        \end{figure}
        \item \lipsum[5]
    \end{enumerate}
\end{document} 

在此处输入图片描述

因此我决定使用 minipage,它可以在分页符上工作,但它不能开箱即用,因为您需要验证在没有分页符的情况下它是否离上面的段落太近,必须添加垂直空间,否则它看起来像这样:

\documentclass[12pt,a4paper,oneside]{report} % Tipo de documento
\usepackage[T1]{fontenc}    % Codificación del documento
\usepackage[utf8]{inputenc} % Codificación del documento
\usepackage{graphicx}       % Facilita la inclusión de imágenes 
\usepackage{enumerate}      % Conf. extra a las enumeraciones
\usepackage{caption} %% cambia los captiones de figras
\usepackage{subcaption}
\usepackage{lipsum}
\usepackage{amsmath}   

\begin{document}
    \chapter{Chap test}
    \section{Section 1}
    \begin{enumerate}
        \item \lipsum[5-3]\\
        \begin{minipage}{\linewidth}
            \centering
            \captionsetup{type=figure,justification=centering}
            \begin{minipage}[b]{0.4\linewidth}
                \centering
                \fbox{\includegraphics[width=\linewidth]{sinc1}}
                \subcaption{blalblabla}
                \label{fig1}
            \end{minipage}
            \hfill
            \begin{minipage}[b]{0.4\linewidth}
                \centering
                \fbox{\includegraphics[width=\linewidth]{sinc2}}
                \subcaption{bleblelbebe}
                \label{fig2}
            \end{minipage}
            \captionof{figure}{bliblbibli}
            \label{fig3}
        \end{minipage}
        \item \lipsum[5]
    \end{enumerate}
\end{document} 

在此处输入图片描述

我知道,就所有意图和目的而言,迷你页面解决方案都很好用,即使我决定添加垂直空间,无论是否需要,但它仍然有点触发我的强迫症。所以,我正在寻找其他人的建议/想法。尽管如此,我希望这能帮助那些和我处境相同的人。

答案1

的整个目的figure是将内容从文档流中取出,使其成为可以放置在其他位置的浮动插入,即使您包含h以便可能的位置包括当前位置。

因此,LaTeX 会尽最大努力来规范排版,以便不是看起来像列表的一部分,当前缩进级别被丢弃,例如,因为您不希望第 4 页的图形被缩进,只是因为源代码恰好位于列表的源中。

因此,如果图像是标记项目的一部分,那么自然的做法就是\includegraphics直接使用,或者如果您真的想要一个标题,那么可以使用一个小页面,就像您展示的\linewidth那样\captionof,尽管通常最好在小页面之前有一个段落分隔符(空白行)\\,或者将它们放在里面\begin{center},这样会增加一些垂直偏移。

答案2

此解决方案创建了一个myfigure环境,允许subfigures 和\captions 位于 内minipage。未尝试强制标题编号按顺序排列。

\documentclass[12pt,a4paper,oneside]{report} % Tipo de documento
\usepackage[T1]{fontenc}    % Codificación del documento
\usepackage[utf8]{inputenc} % Codificación del documento
\usepackage{graphicx}       % Facilita la inclusión de imágenes 
\usepackage{enumerate}      % Conf. extra a las enumeraciones
\usepackage{caption} %% cambia los captiones de figras
\usepackage{subcaption}
\usepackage{lipsum}
\usepackage{amsmath}

\makeatletter
\newenvironment{myfigure}{\par\vskip\intextsep\minipage{\linewidth}%
  \def\@captype{figure}}%
{\endminipage\par\vskip\intextsep}
\makeatother

\begin{document}
    \chapter{Chap test}
    \section{Section 1}
    \begin{enumerate}
        \item \lipsum[5-3]
        \begin{myfigure}
            \centering
            \captionsetup{type=figure,justification=centering}
            \begin{subfigure}[b]{0.4\linewidth}
                \centering
                \fbox{\includegraphics[width=\linewidth]{example-image-a}}
                \subcaption{blalblabla}
                \label{fig1}
            \end{subfigure}
            \hfill
            \begin{subfigure}[b]{0.4\linewidth}
                \centering
                \fbox{\includegraphics[width=\linewidth]{example-image-b}}
                \subcaption{bleblelbebe}
                \label{fig2}
            \end{subfigure}
            \caption{bliblbibli}
            \label{fig3}
        \end{myfigure}
        \item \lipsum[5]
    \end{enumerate}
\end{document} 

相关内容