我想找到一种在 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
环境,允许subfigure
s 和\caption
s 位于 内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}