我希望能够定义一个定理类环境,该环境具有与普通定理相同的间距,但不用于trivlist
获取间距。原因是我想将 放置wrapfigure
在此类定理的右侧(我将使用它作为示例、练习等),而这在列表(类)环境中是不可能的。
\documentclass[a4paper]{article}
\usepackage{graphicx, wrapfig, lipsum}
\newcounter{exercise}[section]
\renewcommand{\theexercise}{\thesection.\arabic{exercise}}
\newenvironment{exercise}[1][]{\refstepcounter{exercise}\par\medskip
\textbf{Exercise~\theexercise}\quad}{}{\medskip}
\begin{document}
\section{Section One}
\begin{wrapfigure}{r}{0pt}
\includegraphics[scale=0.5]{example-image-c}
\end{wrapfigure}
\begin{exercise}
Vivamus vehicula leo a justo. Quisque nec augue.
Morbi mauris wisi, aliquet vitae. Vivamus vehicula leo a justo.
Quisque nec augue. Morbi mauris wisi, aliquet vitae.
\end{exercise}
\clearpage
\section{Section Two}
\begin{wrapfigure}{r}{0pt}
\includegraphics[scale=0.5]{example-image-c}
\end{wrapfigure}
\begin{exercise}
\lipsum[66-67]
\end{exercise}
\end{document}
奇怪的是,换行对我的示例文本不起作用,但对 lipsum 段落起作用。
是否有可能(具有中等程度的 LaTeX 知识)定义这样一个环境,使其上下间距同样稳健,并且段落换行正确?——你能告诉我怎么做吗?
我确实需要这个并感谢任何帮助。
答案1
Wrapfig 是使用\everypar
和实现的。在练习中 \parshape
添加终止会有所帮助,但这可能只适用于该环境。\par
\WFclear
当 wrapfig 出现混乱时,未记录的宏会阻止它继续运行。
\documentclass[a4paper]{article}
\usepackage{graphicx, wrapfig, lipsum}
\newcounter{exercise}[section]
\renewcommand{\theexercise}{\thesection.\arabic{exercise}}
\newenvironment{exercise}[1][]{\refstepcounter{exercise}\par
\textbf{Exercise~\theexercise}\quad}{\par}
\intextsep=0pt% easy solution
\begin{document}
\section{Section One}
\begin{wrapfigure}{r}{0pt}
\raisebox{-\intextsep}[\dimexpr \height-2\intextsep][\depth]{% alternate solution
\includegraphics[scale=0.5]{example-image-c}}%
\end{wrapfigure}
\begin{exercise}
Vivamus vehicula leo a justo. Quisque nec augue.
Morbi mauris wisi, aliquet vitae. Vivamus vehicula leo a justo.
Quisque nec augue. Morbi mauris wisi, aliquet vitae.
\end{exercise}
\WFclear
\clearpage
\section{Section Two}
\begin{wrapfigure}{r}{0pt}
\raisebox{-\intextsep}[\dimexpr \height-2\intextsep][\depth]{% negative depth not useful
\includegraphics[scale=0.5]{example-image-c}}%
\end{wrapfigure}
\begin{exercise}
Vivamus vehicula leo a justo. Quisque nec augue.
Morbi mauris wisi, aliquet vitae. Vivamus vehicula leo a justo.
Quisque nec augue. Morbi mauris wisi, aliquet vitae.
\end{exercise}
\sloppy
\lipsum[1]
\WFclear
\lipsum[2]
\end{document}