Иногда, если рисунок или таблица занимают не очень много места, бывает удобно
разместить их не отдельным блоком, сверху и снизу от которого идут абзацы,
а внутри текста, скажем, выровненным справа или слева, так,
чтобы текст обтекал картинку или небольшую
таблицу, которую вы хотите в него вставить.
Для этого существует пакет, который был подключен в преамбуле, это пакет wrapfig,
который позволяет делать обтекание таблиц и рисунков с текстом.
Вот как он работает.
Я могу начать писать здесь \begin{wrapfigure}.
У окружения wrapfigure есть два обязательных аргумента:
первый аргумент - это ответ на вопрос, слева или
справа должна быть наша картинка, которую мы будем обтекать текстом.
Давайте я поставлю слева букву l.
Если мне нужно было, чтобы картинка была справа, а текст
ее слева обтекал, тогда бы я здесь поставил букву r.
Есть также возможность поставить здесь букву o
или букву i, которые означают, внутренняя сторона или внешняя.
Если вы делаете книгу, в которой
асимметричные поля, то есть, вернее, симметричные
поля, наоборот: разные на четных и
нечетных страницах, то там это может быть важно.
Чтобы таблица или рисунок, который, вы хотите,
чтобы обтекался текстом, был рядом с полями,
которые на внешнем краю, или с полями,
которые - внутренний край рядом с переплетом.
Здесь я не делаю ничего такого, поэтому я ограничусь
командой l, то есть чтобы картинка была слева.
Второй аргумент у этой команды - это ширина,
которую нужно отвести на эту картинку.
Я отведу на эту картинку половину
ширины строки.
Здесь команда \linewidth означает то же самое, что команда
\textwidth, которую мы использовали в одном из предыдущих фрагментов.
Однако команда \linewidth может меняться с
изменением ширины блока, в котором мы находимся.
Скажем, если мы оформляем какую-то цитату или мы временно перешли в набор текста
с помощью обтекания или в двух колонках, то \linewidth сократится соответственно.
Сейчас мы увидим это на примере.
Здесь можно было написать \textwidth
совершенно без ущерба для результата.
То есть было бы то же самое.
Так.
Ну, что мне нужно написать внутри?
Мне нужно сделать так,
чтобы здесь появилась картинка.
То есть я могу написать \includegraphics и вставить сюда какую-нибудь картинку.
У меня есть какие-то картинки.
Вот, например, картинка logo.pdf.
Давайте я напишу здесь, что надо
вставить картинку logo, которую уже вставляли. Так.
Но мне нужно, чтобы эта картинка, как-то, имела такой же
размер, как отведенное для нее место. Это очень просто делается.
Естественно, что мне нужно подобрать ширину.
Ну, можно подобрать тут разными способами: можно было бы подобрать
с помощью аргумента scale, то есть думать, во
сколько раз нужно увеличить или уменьшить эту исходную
картинку, чтобы ее размер подобрался такой, какой нужно.
Но гораздо проще указать, какой должна быть ширина.
Потому что высота подберется автоматически, а ширину мы знаем,
потому что мы выделили ей ровно половину от ширины строки.
Здесь я могу написать width=\linewidth.
У меня \linewidth сократилась в 2 раза, когда
я выделил этой картинке половину от ширины строки.
То есть, когда я писал выше половину от
\linewidth - это была половина от основной строки.
Но теперь мы находимся в более узком блоке, который должна занимать картинка.
Соответственно, теперь я могу написать, что эта картинка должна занимать
всю ширину строки, потому что строка стала в 2 раза уже.
Ну, давайте... Да, давайте еще напишем
здесь заголовок. В заголовке напишем
"Картинка с обтеканием".
И запустим.
Так, ну, картинка выглядит нелохо, но не видно,
чтоб она… чтобы ее что-то обтекало. У нас нет текста.
Давайте возьмем откуда-нибудь какой-нибудь текст,
скажем, оттуда же, откуда взяли картинку.
Вот здесь есть неплохой текст.
Я его скопирую.
И вставлю сюда непосредственно после того,
как у меня закончилось окружение wrapfigure.
Давайте посмотрим, что получится.
Вот, получилось обтекание.
Так,
как мы и ожидали, половина, ровно половина строки,
была выделена картинке, и вторую половину строки занял текст.
Если мне кажется, что картинка слишком большая, то я могу сократить ширину,
которая ей отведена. Здесь была половина ширины строки -
давайте оставим ей треть. Примерно треть.
Вот, видно, что она стала уже, и обтекание, соответственно,
изменилось, и она сама по себе сжалась, потому что
мы задали ширину самой картинки в команде \includegraphics,
как равную ширине блоков, в которых мы сейчас находимся.
То есть выделенного ей пространства шириной одну треть от ширины строки.
Сделать, чтобы аналогичным образом обтеканию текстом
подверглась таблица, можно очень похожим способом.
Для этого используется окружение не wrapfigure,
как было с картинкой, а, как можно догадаться, wraptable.
\begin{wraptable} … \end{wraptable}.
у wraptable такие же аргументы, как у wrapfigure, то есть устроены точно так же.
Первый аргумент - это где должна быть таблица: справа или слева.
Давайте для разнообразия я напишу, что она должна быть справа.
А второй аргумент - это сколько она должна занимать по ширине.
Давайте я напишу 0.5 от той же самой \linewidth.