«Универсальный» подход для подцифр внутри среды перечисления/детализации?

«Универсальный» подход для подцифр внутри среды перечисления/детализации?

Я хотел найти "универсальный" способ вставки изображений в среду itemize. Сначала я просто использовал figures+subfigures, и это работало хорошо, за исключением случаев, когда есть разрыв страницы. Изображения должны быть после первого элемента

\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так, чтобы возможные позиции включали текущее местоположение.

Таким образом, латекс идет на некоторые ухищрения, чтобы нормализовать набор текста, так что он ненетвыглядят как часть списка, например, текущий уровень отступа отбрасывается, поскольку вы не хотите, чтобы рисунок на странице 4 имел отступ только потому, что исходный код оказался в источнике списка.

Поэтому, если изображения являются частью маркированных элементов, то естественным решением будет просто использовать их \includegraphicsнапрямую или, если вы действительно хотите подпись, использовать мини-страницу \linewidthи, \captionofкак вы показываете, хотя обычно лучше вставлять разрыв абзаца (пустую строку) не \\перед мини-страницей, или поместить их внутрь, \begin{center}что добавит некоторое вертикальное смещение.

решение2

Это решение создает myfigureсреду, позволяющую subfigures и \captions внутри a 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} 

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