Краткое содержание
Это занятие открывает пятый раздел курса, посвящённый таблицам и рисункам. Оно объясняет, для чего нужен раздел: набирать данные, изображения и рисунки научной работы так, чтобы они читались так же ясно, как её текст, нумеровались и упоминались в ссылках так же, как её разделы и уравнения, и находили своё место на странице без того, чтобы автор задавал его вручную; представляет пять его занятий и нить, которая их связывает, от простейшей таблицы до первого рисунка в TikZ; уточняет, что считается известным из предыдущих разделов; напоминает, откуда происходят научные таблицы и графики и какое правило экономии ими управляет; формулирует задачу, которую решает раздел: таблица или рисунок, сделанные по привычкам текстового процессора, компилируются без жалоб и плохо читаются; и показывает, что те же инструменты служат лаборатории, статистическому исследованию, историческому архиву и комментарию к текстам.
Цели обучения
- Описывать последовательность содержания раздела и объяснять, что каждое занятие даёт следующему.
- Распознавать, что раздел считает известным из предыдущих, и при необходимости повторять это.
- Объяснять на примере, почему таблица с полной сеткой читается хуже, чем таблица, набранная немногими горизонтальными линейками.
- Распознавать в своих дисциплинах таблицы, изображения и рисунки, набирать которые учит раздел.
Входной тест
Прежде чем проходить раздел, полезно определить исходный уровень. Этот тест является самопроверкой: он не оценивается, и его единственная цель состоит в том, чтобы направить занятия. Его первые два вопроса повторяют то, что раздел считает известным из предыдущих; следующие десять по два и по порядку касаются пяти занятий раздела. Тот, кто никогда не набирал таблицу и не вставлял изображение в LaTeX, не должен рассчитывать ответить на них верно: каждый ответ, верный или нет, объясняет суть дела и называет занятие, где она разбирается. Те же навыки проверяются снова в конце, на итоговом занятии.
Перед началом раздела оцени свою отправную точку. Это короткая самопроверка: она не оценивается, а результат хранится только в твоём браузере.
Вопрос 1Из предыдущих разделовАвтор добавляет рисунок с подписью в документ, где есть
\listoffigures, компилирует только один раз, и рисунок не появляется в списке, хотя в тексте он есть. Что происходит?\listoffiguresвходит в ядро LaTeX.Именно подпись и записывает строку списка.Удаление ничего не даёт: следующий проход запишет его снова.Как и оглавление, списки рисунков и таблиц записываются при одном проходе и читаются при следующем, причём без предупреждения, когда они устарели.Повторить: Разделы, оглавление и приложения
Вопрос 2Из предыдущих разделовВ тексте отчёта написано «по данным Иванова & Петрова», и компиляция останавливается с сообщением «
Misplaced alignment tab character &». Почему?Знак можно напечатать; ошибка в том, что он написан без обратной косой черты.Знак зарезервирован в ядре, с amsmath или без него.Ошибка в знаке, а не в ссылке.Выравнивание есть таблица:&разделяет ячейки, а\\завершает строки. То же правило управляет таблицами этого раздела.Повторить: Многострочные уравнения
Вопрос 3Таблица с
\begin{tabular}{lr}выдаёт «Extra alignment tab has been changed to\cr» на строке, в которой ровно один&. Где вероятнее всего ошибка?В указанной строке столько ячеек, сколько нужно; расширенное описание скрывает пропуск и оставляет смешанную строку.Один&как раз нужен для двух столбцов; сообщение относится к строке таблицы, а не к строке исходного кода.Ошибку выдаёт движок, и без booktabs она такая же.Без конца строки предыдущая строка таблицы продолжается в указанной, и та добавляет второй&к строке из двух столбцов.Повторить: Удобочитаемые таблицы
Вопрос 4Столбец, объявленный как
S[table-format=2.2], получает ячейки 3,5, 12,25 и 140,8. Что происходит?Эту ошибку дают символы, которые не являются числами, например заголовок без фигурных скобок.siunitx по умолчанию не округляет и не отбрасывает цифры.Формат задаёт место; то, что в него не помещается, сдвигается.siunitx не предупреждает, когда число превышает зарезервированное место: он набирает его за пределами этого места, а движок отмечает лишь слишком широкий бокс.Повторить: Удобочитаемые таблицы
Вопрос 5В таблице
{lrrrr}первая строка\multicolumn{2}{c}{Контроль} & \multicolumn{2}{c}{Опыт} \\, а под ней\cmidrule(lr){2-3} \cmidrule(lr){4-5}. Документ компилируется без ошибок и предупреждений. Что видно?Эту ошибку даёт строка, в которой ячеек больше, чем столбцов; здесь их четыре из пяти.LaTeX не знает, что первый столбец не входит ни в одну группу; каждый\multicolumnначинается там, где кончается предыдущая ячейка.\cmidruleпроводит линейку и не двигает текст.Не хватает начального&. Строка, в которой ячеек меньше, чем столбцов, допустима, поэтому движок не предупреждает; линейки зависят только от написанных номеров.Повторить: Сложные и длинные таблицы
Вопрос 6Таблицу в девяносто строк пишут через
longtableвнутри окруженияtable, чтобы отцентрировать её. Что происходит?Внутри плавающего объекта она разорваться не может.Установленная версия ошибки не выдаёт; в этом и опасность.Ничто её не масштабирует; она уходит за нижний край страницы.Плавающий объект есть бокс, который не разрывается, и longtable не считает это ошибкой. Окружениеtableубирают: longtable и так центрируется и имеет свою\caption.Повторить: Сложные и длинные таблицы
Вопрос 7Пишут
\includegraphics[angle=90,width=4cm]{obrazec}для фотографии с пропорциями 4:3, шире, чем выше. Какого размера она получится?Так было бы при[width=4cm,angle=90]: ширина задаётся до поворота.Здесь забыт поворот: ширина задаётся после него.Искажение бывает, только если ширину и высоту задать одновременно безkeepaspectratio.graphicx применяет параметры в порядке записи: сначала поворачивает, и изображение получает пропорции 3:4, а затем задаёт ширину уже повёрнутого изображения.Повторить: Изображения в документе
Вопрос 8В папке
figuresлежат старыйplot.pdfи обновлённыйplot.png, а в исходном коде написано\includegraphics{figures/plot}. Что происходит?Движок смотрит не на даты, а на фиксированный порядок расширений.Такой ошибки нет: неоднозначность разрешается молча.Эта ошибка возникает при расширениях, которые движок не умеет встраивать, например.svg.Без расширения движок пробует.pdfраньше, чем.png, и берёт первый найденный файл.Повторить: Изображения в документе
Вопрос 9В отчёте написано «как видно на рисунке ниже» рядом с
\begin{figure}[htbp]. В чём проблема?Буквы обозначают допустимые места, а не порядок; если здесь рисунок не помещается, он уйдёт в другое место.[H]закрепил бы его ценой пустот на страницах; решение в ссылке по номеру.Как раз может: в этом и состоит плавание.Рисунок нельзя разделить между страницами, и движок ставит его туда, где он помещается; номер есть единственное, что не меняет смысла, когда рисунок перемещается.Повторить: Плавающие рисунки и таблицы
Вопрос 10При
\usepackage[russian]{babel},\setlocalecaption{russian}{figure}{Рисунок}и cleveref, загруженном без параметров и без\crefname, подпись гласит «Рисунок 1». Что пишет\cref{fig:setup}?Этого можно было бы ожидать, но так не происходит: у cleveref свой словарь.cleveref не читает никаких названий babel, ни изменённых, ни заданных по умолчанию.Ошибки нет: без параметра и без\crefnamecleveref пишет английские названия. Ошибки как раз даёт параметрrussian.Сказанное babel меняет подпись, но до cleveref не доходит.Повторить: Плавающие рисунки и таблицы
Вопрос 11Испанский документ с
\usepackage[spanish]{babel}и\usepackage{tikz}падает на первой строке рисунка,\draw[->] (0,0) -- (1,0);, с сообщением «Argument of \language@active@arg> has an extra }». Чего не хватает?Ошибка та же при любом порядке: сокращение остаётся активным внутри рисунка.->есть базовый наконечник; без arrows.meta сообщение было бы «Unknown arrow tip kind».Она в строке есть; сообщение говорит об активном аргументе языка, а не о незавершённом пути.Библиотека babel в TikZ возвращает знакам их обычное значение внутри рисунков; порядок пакетов этого не исправляет. В русском документе она нужна для подписей библиотеки quotes, потому что русский модуль перехватывает двойную кавычку.Повторить: Рисунки в TikZ
Вопрос 12Что рисует
\draw (0,0) -- ++(2,0) -- +(0,1) -- +(-1,0);?Так было бы с++на каждом шаге.Ничто не замыкает путь; для этого пишут-- cycle.Они смешиваются без труда; разница в том, обновляют ли они опорную точку.+отсчитывается от последней точки, заданной через++, здесь (2,0), и не меняет её.Повторить: Рисунки в TikZ
Загрузка содержимого…