Неправильная ширина текста после wrapfigure

Неправильная ширина текста после wrapfigure

Я включил картинку wrapfigureи все в порядке - проблема в том, что в моей следующей формуле окружения формула совершенно неправильная! Мне кажется, что ширина, которую я установил в окружении, wrapfigureтакже влияет на формулу. Как мне вернуть ширину к стандартной?

Вот мой код:

\documentclass{book}
\usepackage{graphicx}
\usepackage{amsthm}
\usepackage{wrapfig}
\usepackage{mdframed}

\newtheoremstyle{mystyle}{}{}{}{}{}{}{0.5em}{}
\theoremstyle{mystyle}
\newmdtheoremenv{formel}{Formel}

\begin{document}
\begin{wrapfigure}{l}{8cm}
  \includegraphics[scale=0.48]{example-image-a}
\end{wrapfigure}
text text text text text text text text text text text text text text text text
text text text text text text text text text text text text text text text text
\begin{formel}[Formel]
$1+1=2$
\end{formel}
\end{document}

Итак, обтекание текста вокруг фигуры в порядке, но тогда ширина формулы неправильная. Мне кажется, что она textwidthустановлена ​​в wrapfigure's textwidth, что приводит к неправильному отображению.

решение1

Чтобы процитировать руководствообертываниефигпакет, страница 1:

Вы не должны указывать a wrapfigureв любом типе среды списка или или непосредственно перед или сразу после одного. Можно следовать за списком, если \parмежду ними есть пустая строка ( ).

[...]

\linewidthтеперь корректируется в пределах переносимого текста, но поскольку его можно задать только для целых абзацев за раз, после переноса он будет сохранять неправильное значение, пока абзац не будет завершен.

И на странице 2:

По эстетическим причинам только простой текст должен обтекать рисунок. Названия разделов и большие уравнения выглядят плохо; списки плохи, если рисунок находится слева. (Все это работает правильно, просто выглядит не очень хорошо.) Маленькие уравнения выглядят хорошо.

Таким образом: Поставьте a \parперед \begin{formel}:

\documentclass{book}
\usepackage{graphicx}
\usepackage{amsthm}
\usepackage{wrapfig}
\usepackage{mdframed}

\newtheoremstyle{mystyle}{}{}{}{}{}{}{0.5em}{}
\theoremstyle{mystyle}
\newmdtheoremenv{formel}{Formel}

%\usepackage{picins}

\begin{document}
\begin{wrapfigure}{l}{8cm}
  \includegraphics[scale=0.48]{example-image-a}
\end{wrapfigure}
text 
\par
\makeatletter
\loop
\ifnum\c@WF@wrappedlines>3
\hspace*{1sp}\newline
\advance\c@WF@wrappedlines by -1
\repeat
\makeatother
\par
\begin{formel}[Formel]
$1+1=2$
\end{formel}
\end{document}

Если текст, который нужно перенести, слишком короткий, формула будет помещена в перенесенный текст, где она, конечно, имеет меньшую ширину. (И \usepackage{picins}необходим дополнительный файл, иначе формула будет напечатана «поверх» изображения.) Использование \c@WF@wrappedlinesпакета wrapfig и автоматическая вставка соответствующего количества пустых строк исправляют эту проблему.

решение2

Заключите wrapfigв minipage. Обычно

\begin{minipage}
\begin{wrapfig}
...
\end{wrapfig}
...text... to be wrapped
\end{minipage}
..more text which should be normal

Связанный контент