版本 1
在这个版本中,我把全宽浮动图像外部环境enumerate
。
\begin{enumerate}
\item
\MarginFig
\lipsum[1]
\end{enumerate}
\FullFig
\begin{enumerate}[resume]
\item
\lipsum[1]
\item
\MarginFig
\lipsum[1]
\end{enumerate}
版本 2
在这个版本中,我把它里面环境enumerate
。
\begin{enumerate}
\item
\MarginFig
\lipsum[1]
\item
\FullFig
\lipsum[1]
\item
\MarginFig
\lipsum[1]
\end{enumerate}
完整的 MWE 如下:
\documentclass[12pt]{book}
\usepackage[
a4paper,
vmargin=2cm,
outermargin=9cm,
innermargin=2cm,
marginparwidth=7cm,
marginparsep=20pt
]{geometry}
\usepackage{graphicx}
\usepackage{marginfix}
\usepackage{caption}
\usepackage{lipsum}
\usepackage{ifoddpage}
\usepackage{microtype}
\usepackage{enumitem}
\newcounter{temp}
\setcounter{temp}{0}
\newcommand\MarginFig{%
\marginpar{\includegraphics[width=\marginparwidth]{example-image-a}
\captionof{figure}{This is an image A. This is subject to change without notice. Be careful my friend!}
\addtocounter{temp}{1}
\label{fig:\arabic{temp}}}}
\newcommand\FullFig{%
\begin{figure}[hbtp]
\checkoddpage
\edef\side{\ifoddpage l\else r\fi}%
\makebox[\textwidth][\side]{%
\parbox{\dimexpr\textwidth+\marginparwidth+\marginparsep\relax}{%
\includegraphics[width=\linewidth]{example-image-b}
\caption{This is an image B. This is subject to change without notice. Be careful my friend!}
\addtocounter{temp}{1}
\label{fig:\arabic{temp}}}}
\end{figure}
}
\begin{document}
% Version 1
\begin{enumerate}
\item
\MarginFig
\lipsum[1]
\end{enumerate}
\FullFig
\begin{enumerate}[resume]
\item
\lipsum[1]
\item
\MarginFig
\lipsum[1]
\end{enumerate}
\newpage
% Version 2
\begin{enumerate}
\item
\MarginFig
\lipsum[1]
\item
\FullFig
\lipsum[1]
\item
\MarginFig
\lipsum[1]
\end{enumerate}
\end{document}
一个版本的 PDF 输出与另一个版本的 PDF 输出略有不同。放置全宽浮动图像时建议使用哪一个?请告诉我原因。
注意:这个问题是为了避免边距浮动图像和全宽浮动图像出现不良行为的可能性。
答案1
如果需要纠正两者之间的任何布局差异,可以进行纠正。
重要的是,就实际而言,文档标记应反映文档的语义。在第一个版本中,图像是周围文本的一部分,为两个枚举提供上下文。在第二个版本中,图像是一个项目的文本的一部分。因此,在实际文本中,应该清楚使用哪个。对于lipsum
生成的文本,实际上不可能说清楚。