我有一份双面文档,想添加一些环绕图。具体做法是我想在左页上环绕章节标题。
这个例子展示了第二部分的问题。第一和第三部分一切正常。
梅威瑟:
\documentclass[12pt,a4paper,twoside,openright]{scrbook}
\usepackage{wrapfig}
\usepackage{graphicx}
\usepackage{caption}
\usepackage[english]{babel}
\usepackage{blindtext}
\begin{document}
\chapter{First Chapter}
\section{First Section}
\begin{wrapfigure}[14]{o}{0.4\linewidth}
\begin{center}
\includegraphics[width=0.75\linewidth]{picture}
\end{center}
\vspace*{-1em}
\captionsetup{width=0.75\linewidth}
\caption[short]{long.}
\end{wrapfigure}
\blindtext[5]
\section{Second Section}
\begin{wrapfigure}[14]{o}{0.4\linewidth}
\begin{center}
\includegraphics[width=0.75\linewidth]{picture}
\end{center}
\vspace*{-1em}
\captionsetup{width=0.75\linewidth}
\caption[short]{long.}
\end{wrapfigure}
\blindtext
\section{Third Section}
\begin{wrapfigure}[14]{o}{0.4\linewidth}
\begin{center}
\includegraphics[width=0.75\linewidth]{picture}
\end{center}
\vspace*{-1em}
\captionsetup{width=0.75\linewidth}
\caption[short]{long.}
\end{wrapfigure}
\blindtext
\end{document}
结果:
答案1
您想要获得的东西不可能仅通过 来实现wrapfigure
。因为解决方案可以将章节标题括入\parbox
:
\documentclass[12pt,a4paper,twoside,openright]{scrbook}
\usepackage{wrapfig}
\usepackage[demo]{graphicx}
\usepackage{caption}
\usepackage[english]{babel}
\usepackage{blindtext}
\usepackage{refcount}
\newcounter{secalign}
\newcommand{\secmove}{
\refstepcounter{secalign}
\label{secmove-\thesecalign}
\mbox{}\par\noindent%
\ifodd\getpagerefnumber{secmove-\thesecalign}
\parbox{#1}{#2}
\else
\hfill\parbox{#1}{#2}
\fi}
\begin{document}
\chapter{First Chapter}
\secmove{0.58\linewidth}{\section{First Section}}
\begin{wrapfigure}[11]{o}{0.4\linewidth}
\centering
\includegraphics[width=0.75\linewidth]{picture}
\captionsetup{skip=0.5ex, width=0.75\linewidth}
\caption[short]{long.}
\end{wrapfigure}
\blindtext[5]
\secmove{0.58\linewidth}{\section{Second Section}}
\begin{wrapfigure}[11]{o}{0.4\linewidth}
\centering
\includegraphics[width=0.75\linewidth]{picture}
\captionsetup{skip=0.5ex, width=0.75\linewidth}
\caption[short]{long.}
\end{wrapfigure}
\blindtext
\secmove{0.58\linewidth}{\section{Third Section}}
\begin{wrapfigure}[11]{o}{0.4\linewidth}
\centering
\includegraphics[width=0.75\linewidth]{picture}
\captionsetup{skip=0.5ex, width=0.75\linewidth}
\caption[short]{long.}
\end{wrapfigure}
\blindtext[2]
\end{document}
上述代码中的解决方案知道各部分的标题位于哪一页(奇数页还是偶数页),但是它需要至少编译两次。
注意:您声称部分位置正确,实际上是由于错误wrapfigure
设置而意外发生的(您声明它使用与图旁的文本相同的更多行号),
除此之外,我还对您的代码做了以下(题外话)更改:
- 广告
\captionsetup
选项skip=0.5ex
和删除\vspace*{-1em}
全部wrapfigure
- 替换
\begin{centering}
为\centering
,并以此删除图像上方和下方的额外垂直空间 - 擦除
\end{centering}
wrapfigure
删除和(或真实文本)之间的空行\blindtext
。这很重要,因为将其括起来sections
会parbox
失去删除parindent
以下文本的能力。