在 wrapfigure 和 figure 环境之间切换

在 wrapfigure 和 figure 环境之间切换

我尝试使用布尔控制来实现在wrapfigurefigure环境之间的切换。但出于某种原因,wrapfigure 并没有做它应该做的事情 - 被包装起来,而是被放在文本的末尾。

在此处输入图片描述

\documentclass{article}
\usepackage{graphicx}
\usepackage{wrapfig}
\usepackage{lipsum}
\usepackage{ifthen}
\newboolean{Figure} 
\setboolean{Figure}{true}

\newenvironment{WrapFigure}[3]
{
\ifthenelse{\boolean{Figure}}{\begin{wrapfigure}[#1]{#2}{#3}}{\begin{figure}}   
        }
        {   
\ifthenelse{\boolean{Figure}}{\end{wrapfigure}}{\end{figure}}       
}

\begin{document}

\lipsum[1-2]
\begin{WrapFigure}{14}{r}{0.35\linewidth}
    \centering
    \includegraphics[draft,width=0.38\linewidth]{NICE Figure.pdf}
    \caption{XXXXXXXX XXXXXXXXXXXXXX XXXXXXXXXXXXX }
\end{WrapFigure}
\lipsum[1-2]

\end{document}

答案1

您正在使用周围组wrapfigure,这会使它窒息。

\documentclass{article}
\usepackage{graphicx}
\usepackage{wrapfig}
\usepackage{lipsum}
\usepackage{ifthen}
\usepackage{xparse}

\newboolean{Figure} 
\setboolean{Figure}{true}

\NewDocumentEnvironment{WrapFigure}{omm}
 {%
  \ifFigure
    \IfNoValueTF{#1}
      {\wrapfloat{figure}{#2}{#3}}
      {\wrapfloat{figure}[#1]{#2}{#3}}%
  \else
    \figure
  \fi
 }
 {%
  \ifFigure
    \endwrapfloat
  \else
    \endfigure
  \fi
 }

\begin{document}

\lipsum[1-2]

\begin{WrapFigure}[14]{r}{0.35\linewidth}
    \centering
    \includegraphics[draft,width=0.38\linewidth]{NICE Figure.pdf}
    \caption{XXXXXXXX XXXXXXXXXXXXXX XXXXXXXXXXXXX }
\end{WrapFigure}

\lipsum[1-2]

\end{document}

\ifFigure我认为,在这种情况下,语法更简单)。使用xparse很容易保留 的语法wrapfig

在此处输入图片描述

相关内容