我经常使用这种形式的包裹图,但我注意到有时会遇到这个问题。
\documentclass[pdftex,10pt,a4paper]{book}
\setlength{\oddsidemargin}{0 mm}
\setlength{\topmargin}{0 mm}
%\setlength{\headheight}{7 mm} %latezza capotesta
%\setlength{\headsep}{9 mm}
\setlength{\evensidemargin}{0 mm}
\setlength{\marginparwidth}{0 mm} %% per le note a bordo?
\setlength{\textheight}{230mm} %Altezza Testo
\setlength{\textwidth}{150mm}
\usepackage[demo]{graphicx}
\usepackage{wrapfig}
\usepackage{mwe}
\usepackage{caption}
\usepackage{lipsum}
\begin{document}
\lipsum[1-1]
\begin{wrapfigure}[11]{l}[\dimexpr \marginparwidth]{5.5cm}
\centering\raisebox{\dimexpr \topskip-\height}{%
\includegraphics[width=5.0cm]{example-image-a}}
\captionof{figure}{Titolo dell'immagine casuale}
\end{wrapfigure}\hfil
\lipsum[2-3]
\begin{wrapfigure}[11]{r}[\dimexpr \marginparwidth]{5.5cm}
\centering\raisebox{\dimexpr \topskip-\height}{%
\includegraphics[width=5.0cm]{example-image-a}}
\captionof{figure}{Titolo dell'immagine casuale}
\end{wrapfigure}\hfil
\lipsum[4-5]
\end{document}
对此有什么建议吗?
答案1
替代:
\documentclass[pdftex,10pt,a4paper]{book}
\usepackage[textheight=230mm,
textwidth=150mm,
marginparwidth=0mm]{geometry} % for defining page layout
\usepackage{graphicx}
\usepackage{wrapfig}
\setlength{\intextsep}{0pt} % <--- push image to top of paragraph
\usepackage{caption}
%---------------- show page layout. don't use in a real document!
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------%
\usepackage{blindtext} % wrapfigure doesn't work well with lipsum
\begin{document}
\begin{wrapfigure}[12]{l}{0.4\linewidth}% explicit reserved space for wrapfigure
\includegraphics[width=\linewidth]{example-image-duck}
\caption{Titolo dell'immagine casuale}
\end{wrapfigure}
\blindtext[1]
\begin{wrapfigure}{r}{5.5cm}% implicit reserved space for wrapfigure
\centering
\includegraphics[width=5.0cm]{example-image-a}
\caption{Titolo dell'immagine casuale}
\end{wrapfigure}
\blindtext[2]
\end{document}
答案2
看起来您主要担心的是底部的过度打印,但您手动指定了要换行的行数。因此,要么[11]
完全省略该参数,要么将其更改为[12]
。
还有其他您没有用红色圈出的问题。
每个 wrapfig 的开头附近都有一个空的单行段落,在输出中显示为空行。如果这不是故意的,请删除导致\hfil
这种情况的 。
并\raisebox
没有达到您想要的效果(关于页面顶部的定位)。我猜您想减少 wrapfig 周围的垂直间隙。因此,请使用\setlength{\intextsep}{4pt}
或其他长度。
使用\captionof
是不必要的,但不会造成任何损害。(我怀疑它会破坏 width 的自动宽度功能0pt
,但它似乎有效。)
我不知道为什么要指定边距悬垂,并将边距宽度设置为零。只需省略该可选参数即可。
总而言之,我认为你太过努力了。你可以使用
\lipsum[1-1]
\setlength\intextsep{4pt}
\begin{wrapfigure}{l}{5.5cm}
\centering
\includegraphics[width=5.0cm]{example-image-a}
\caption{Titolo dell'immagine casuale}
\end{wrapfigure}
\lipsum[2-3]
答案3
这似乎效果更好:
\documentclass[pdftex,10pt,a4paper]{book}
\setlength{\oddsidemargin}{0 mm}
\setlength{\topmargin}{0 mm}
%\setlength{\headheight}{7 mm} %latezza capotesta
%\setlength{\headsep}{9 mm}
\setlength{\evensidemargin}{0 mm}
\setlength{\marginparwidth}{0 mm} %% per le note a bordo?
\setlength{\textheight}{230mm} %Altezza Testo
\setlength{\textwidth}{150mm}
\usepackage[demo]{graphicx}
\usepackage{wrapfig}
\usepackage{mwe}
\usepackage{caption}
\usepackage{lipsum}
\begin{document}
\lipsum[1-1]
\begin{wrapfigure}{l}[\dimexpr \marginparwidth]{5.5cm}
\centering\raisebox{\dimexpr \topskip-\height}{%
\includegraphics[width=5.0cm]{example-image-a}}
\caption{Titolo dell'immagine casuale}
\end{wrapfigure}\hfil
\lipsum[2-3]
\begin{wrapfigure}{r}[\dimexpr \marginparwidth]{5.5cm}
\centering\raisebox{\dimexpr \topskip-\height}{%
\includegraphics[width=5.0cm]{example-image-a}}
\caption{Titolo dell'immagine casuale}
\end{wrapfigure}\hfil
\lipsum[4-5]
\end{document}
避免\captionof{}{}
并仅使用\caption{}
(wrapfigure 环境处理标题本身但可能无法识别\captionof
)...此外,通过提供线条的可选参数11
...你“强制”该行为...