
Я включил картинку 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