В этом видеофрагменте мы научимся обрамлять таблицы и рисунки в специальные окружения, которые сделают их плавающими объектами. То есть не просто какими-то элементами внутри строки, а серьезными отдельными элементами в структуре текста, имеющими свой номер, заголовок и располагающимися каким-то особым… распологающихся каким-то особым образом. У меня есть заготовка большой таблицы. Давайте я сначала создам новый раздел. "Плавающие объекты". У меня есть заготовка большой таблицы, которая у вас также будет в шаблоне, чтобы не тратить время на ее набор, я ее просто вставлю. Давайте изучим, как она устроена. Во-первых, здесь есть также окружение \begin{tabular} и \end{tabular}, внутри которого используется много всяких необычных вещей, которые мы раньше не делали, но об этом мы чуть позже поговорим. Но вокруг этого окружения \begin{tabular} … \end{tabular} есть, во-первых, окружение \begin{center} … \end{center}, а вокруг него есть окружение \begin{table} … \end{table}. Такая вложенная структура позволяет сделать плавающий объект, то есть отдельную таблицу со своим номером, выровненную по центру и расположенную не случайным образом в тексте, а так, как таблица должна располагаться. Давайте посмотрим, будем читать это сверху вниз. Во-первых, \begin{table}. Это начало окружения, в котором создаются плавающие таблицы. Если вы вспомните, как обычно выглядят таблицы в книжках, то вы обратите внимание на то, что они зачастую расположены не там, где они упоминаются. То есть, если где-то встречается фраза "Cм. в таблице 2", то это не значит, что таблица 2 будет прямо здесь. Может быть, она будет прижата к низу этой страницы, или к верху, или даже окажется на следующей странице. Или, если она достаточно большая, окажется в конце главы. Именно это позволяет делать окружение table. То есть подбирать расположение таблицы так, чтобы она смотрелась наилучшим образом. Вот у команды \begin{table} есть необязательный аргумент, который указывает LaTeX, где желательно расположить эту таблицу. Здесь у меня стоит буква h, что означает here - "здесь". То есть расположить таблицу нужно там, где есть на нее ссылка. Не факт, что LaTeX послушается этого указания, потому что может оказаться, что некоторые правила будут нарушены. Скажем, расположение таблицы прямо здесь, заставляет ее вылезти за границу листа. Тогда таблица здесь не будет расположена. Или расположение таблицы прямо здесь сделает так, что под ней останется всего 1 строчка на этой странице, а потом будет переход на новую страницу. Это тоже не очень хорошо. Поэтому, может быть, несмотря на это указание, таблица окажется в начале следующей страницы или в конце этой. Если я настаиваю на том, чтобы страница была именно здесь, а LaTeX считает, что это нехорошо, то я могу разрешить ему ослабить некоторые требования к тому, как таблица может быть расположена, но при этом повысить вероятность, что она окажется там, где мне нужно. Для этого я могу поставить восклицательный знак рядом с командой h. Тогда таблица с большей вероятностью окажется там, где встречается ее описание в тексте. Дальше: \begin{center} … \end{center} - это окружение, которое, как нетрудно догадаться, выравнивает всё, что внутри него, по центру страницы. Мы более подробно познакомимся с этим окружением и другими аналогичными окружениями в следующем занятии, когда будем изучать общие принципы работы с текстом. Ну а сейчас довольно просто видеть, как оно используется. Просто всё, что внутри него, выравнивается по центру. Следующее, что идет в описании объекта table - это заголовок, \caption. Заголовок может быть как под таблицей, так и над таблицей, вот вы видите, что он здесь встречается еще раз закомментированный. Если его тут раскомментировать и закомментировать сверху, то заголовок отобразится под таблицей. У команды \caption есть обязательный аргумент и необязательный. Обязательный идет в фигурных скобках, как вы уже, наверное, понимаете. А необязательный - в квадратных, то есть всё, что в квадратных, я мог и не писать. Но в фигурных скобках должно быть заглавие таблицы, которое отобразится рядом с ней. То есть там будет написано: таблица 1, и дальше заголовок этой таблицы. Если этот заголовок, например, слишком длинный, а мне нужно где-то еще на эту таблицу сослаться, скажем, у меня в конце будет список таблиц, и я хочу, чтобы там оказался сокращенный заголовок этой таблицы, а не тот заголовок, там, 5 строчек, которые я сейчас здесь напишу, то я могу указать его в необязательном аргументе. Это очень просто работает. Дальше идет команда \label. Уже знакомая нам команда, которая ставит метку рядом с этой таблицей, на которую я могу ссылаться. Скажем, я могу написать здесь: "Смотри таблицу". И дальше сослаться на нее. Мне команда… программа TeXstudio уже предлагает выбрать, на что сослаться. И правильно предлагает. Я поставил ей метку "tab:mytab", и номер ее теперь должен подставиться здесь автоматически. Дальше, внутри, ну то есть после команды \label, начинается, собственно, описание самой таблицы. Так же, как мы делали его до этого с помощью окружения \begin{tabular} … \end{tabular}. Здесь написано много всего, в том числе того, что мы еще не видели, и, чтобы было проще, я запущу это на обработку и буду, глядя то в левую часть, то в правую, описывать, что означают те или иные команды. Ну, во-первых, можно заметить, что таблица получила номер. Таблица 1. Что здесь отобразился тот вариант ее заголовка, который был в обязательном аргументе команды \caption, и что ссылка тоже правильно подставилась. Здесь написано: "Смотри таблицу 1". Итак, что в этой таблице интересного? Во-первых, давайте обратим внимание как устроено описание столбцов в обязательном аргументе команды \begin{tabular}. Тут почти все столбцы выровнены по центру, и только два, а именно пятый, вот этот, и восьмой выровнены не по центру. Пятый - по левому краю, восьмой - по правому. Больше ничего необычного. Между любыми двумя столбцами есть горизонтальная линия, а между четвертым и пятым, вот здесь, даже двойная горизонтальная линия… вертикальная линия, извините, вертикальная, конечно. Итак, начинается само тело таблицы. Начинается с команды \hline - это значит, что горизонтальная линейка будет над первым… над первой строкой. Первая строка незамысловатая. Просто натуральные числа одно за другим перечислены. Переход на новую строку, горизонтальная линейка. То есть над второй строкой так же будет горизонтальная линейка. Дальше начинается интересное. Во второй строке, в третьем столбце мы видим команду \multicolumn. Эта команда, как можно догадаться, делает слияние ячеек. Слияние ячеек в одной строке. То есть слияние нескольких столбцов в той строке, в которой мы сейчас находимся. У нее есть три обязательных аргумента. Первый обязательный аргумент - это то, сколько столбцов нужно слить. У меня здесь написано три. Эта команда встретилась в третьем столбце, то есть сейчас третий, четвертый и пятый столбцы окажутся вместе, в одной ячейке. Дальше. Второй аргумент - это то, как нужно оформить этот столбец, с точно тем же синтаксисом, как это делается в обязательном аргументе команды \begin{tabular}. Здесь написано, что это должна быть ячейка, выровненная по центру, с верикальными границами слева и справа от нее. Ну и наконец, третий аргумент - это то, что должно быть написано в этой объединенной ячейке. У меня здесь написано, что это с третьего по пятый столбик. Можно посмотреть в правой части экрана, что получается. Действительно, в первом, во втором… во второй строке столбцы с третьего по пятый оказались вместе. И дальше таблица продолжается как ни в чем не бывало. Так, после этой строки идет не обычная команда \hline, которая нарисовала бы горизонтальную линейку над всей третьей строкой, а идут две команды \cline. Команды \cline - это то, что позволяет нарисовать горизонтальную линейку не вдоль всей строки, а вдоль определенных столбцов. Вот, например, здесь написано \cline{1-7} и \cline{9-10}. Это значит, что горизонтальная линейка рисуется через все столбцы кроме восьмого. В восьмом можно видеть, что линейки не оказалось. Иногда это бывает полезно. Заметьте, что это не две объединенные ячейки вот здесь. То есть в восьмом столбце нет объединенных ячеек. Это просто отсутствие линейки. Ячеек, тем не менее, две, они разные. Так, ну следующая строка, опять же, просто перечисление натуральных чисел, но только, смотрите, две команды \hline одна за другой. Это позволяет нарисовать двойную линейку вот здесь, видите? И даже если присмотреться под лупой, то таблица как бы разделилась на две части благодаря тому, что я здесь два раза написал \hline. Так, ну в следующей строке опять ничего интересного. А дальше начинается \multirow. \multirow - это команда, аналогичная команде \multicolumn. Она делает слияние нескольких строк, в отличие от \multicolumn, которая делает слияние нескольких столбцов. Но устроена она очень похоже. В первом обязательном аргументе мне нужно указать, сколько строк нужно слить. Здесь написано три - это значит, что три следующих строки в этом столбце будут едиными. В следующем аргументе нужно указать ширину получившегося столбца. Если указать звездочку, как я здесь сделал, то ширина будет естественной, то есть ширина сама подстроится под текст, который окажется в этой ячейке. Можно было написать здесь, там, три сантиметра, скажем, и ширина подобралась бы соответствующим образом. Ну и содержимое объединенной ячейки в третьем обязательном аргументе. Так, ну дальше снова идет… Да, дальше, дальше я вынужден был написать команду \cline, потому что мне не нужна вот здесь вот линейка, проходящая через первый… через первую ячейку. Мне нужно, чтобы она начиналась со второй, поэтому здесь написана команда \cline. Всё это выглядит довольно страшно, то есть кажется, что для того чтобы сделать простую таблицу, нужно предпринять кучу манипуляций и запомнить множество команд и, вообще, мучиться. Но, к счастью, программы, предназначенные для работы с LaTeX, скажем, вот эта программа TeXstudio, а также множество инструментов в интернете, ссылки на которые вы найдете в материалах к этому уроку, помогают облегчить эту задачу и предоставляют интерфейс, похожий на интерфейс Word и Excel для создания таблиц. И затем конвертировать его в формат LaTeX.